From 2c0450a7446853298070fcd2f9e1db463ce35bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20BR=C3=89ZOT?= Date: Thu, 23 May 2024 16:45:14 +0200 Subject: [PATCH] use pqc_kyber without hazmat feature --- Cargo.toml | 2 +- src/core/postquantum/kyber.rs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d777d307..db28d598 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ serialization = [] [dependencies] cosmian_crypto_core = { git="https://github.com/Cosmian/crypto_core.git", branch="develop", default-features = false, features = ["ser", "sha3", "aes", "curve25519"] } -pqc_kyber = { version = "0.4", features = ["std", "hazmat"] } +pqc_kyber = { version = "0.7", features = ["std", "kyber768"] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", features = ["preserve_order"] } tiny-keccak = { version = "2.0.2", features = ["shake", "kmac"] } diff --git a/src/core/postquantum/kyber.rs b/src/core/postquantum/kyber.rs index 33e2cd82..798ca1fd 100644 --- a/src/core/postquantum/kyber.rs +++ b/src/core/postquantum/kyber.rs @@ -7,13 +7,13 @@ use std::ops::{Deref, DerefMut}; use crate::Error; use cosmian_crypto_core::{bytes_ser_de::Serializable, reexport::rand_core::CryptoRngCore, Secret}; -use pqc_kyber::{ - KYBER_CIPHERTEXTBYTES, KYBER_INDCPA_PUBLICKEYBYTES, KYBER_INDCPA_SECRETKEYBYTES, - KYBER_PUBLICKEYBYTES, KYBER_SECRETKEYBYTES, KYBER_SSBYTES, -}; +use pqc_kyber::{KYBER_CIPHERTEXTBYTES, KYBER_PUBLICKEYBYTES, KYBER_SECRETKEYBYTES, KYBER_SSBYTES}; use super::KemTrait; +const KYBER_INDCPA_PUBLICKEYBYTES: usize = KYBER_PUBLICKEYBYTES; +const KYBER_INDCPA_SECRETKEYBYTES: usize = 1152; + /// Kyber public key length #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct PublicKey(Box<[u8; Self::LENGTH]>); @@ -205,7 +205,7 @@ impl KemTrait for Kyber { &self, rng: &mut impl CryptoRngCore, ) -> Result<(Self::SecretKey, Self::PublicKey), Self::Error> { - let mut keypair = pqc_kyber::keypair(rng); + let mut keypair = pqc_kyber::keypair(rng)?; Ok(( SecretKey::from(&mut keypair.secret), PublicKey::from(keypair.public),