pub const PKE_DK_SEED_BYTES: usize = 32;
pub const KEM_SIGMA_BYTES: usize = 16;
pub const KEM_SEED_KEM_BYTES: usize = 48;
#[must_use]
pub const fn kem_secret_key_serialized_len(ek_pke_len: usize) -> usize {
ek_pke_len + PKE_DK_SEED_BYTES + KEM_SIGMA_BYTES + KEM_SEED_KEM_BYTES
}
pub const HQC128_PUBLIC_KEY_BYTES: usize = 2241;
pub const HQC128_CIPHERTEXT_BYTES: usize = 4433;
pub const HQC128_SECRET_KEY_BYTES: usize = kem_secret_key_serialized_len(HQC128_PUBLIC_KEY_BYTES);
pub const HQC192_PUBLIC_KEY_BYTES: usize = 4522;
pub const HQC192_CIPHERTEXT_BYTES: usize = 8978;
pub const HQC192_SECRET_KEY_BYTES: usize = kem_secret_key_serialized_len(HQC192_PUBLIC_KEY_BYTES);
pub const HQC256_PUBLIC_KEY_BYTES: usize = 7245;
pub const HQC256_CIPHERTEXT_BYTES: usize = 14421;
pub const HQC256_SECRET_KEY_BYTES: usize = kem_secret_key_serialized_len(HQC256_PUBLIC_KEY_BYTES);
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn kem_secret_lengths_match_explicit_sums() {
assert_eq!(HQC128_SECRET_KEY_BYTES, 2241 + 32 + 16 + 48);
assert_eq!(HQC192_SECRET_KEY_BYTES, 4522 + 32 + 16 + 48);
assert_eq!(HQC256_SECRET_KEY_BYTES, 7245 + 32 + 16 + 48);
}
}