pub const ML_KEM_768_CIPHERTEXT_LEN: usize = 1088;
pub const ML_KEM_768_PUBLIC_KEY_LEN: usize = 1184;
pub const ML_KEM_768_SHARED_SECRET_LEN: usize = 32;
pub const X25519_SHARE_LEN: usize = 32;
pub const X25519_SHARED_SECRET_LEN: usize = 32;
pub const HKDF_SHA256_OUTPUT_LEN: usize = 32;
pub const AES_256_GCM_NONCE_LEN: usize = 12;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn every_size_constant_is_non_zero() {
assert_ne!(ML_KEM_768_CIPHERTEXT_LEN, 0);
assert_ne!(ML_KEM_768_PUBLIC_KEY_LEN, 0);
assert_ne!(ML_KEM_768_SHARED_SECRET_LEN, 0);
assert_ne!(X25519_SHARE_LEN, 0);
assert_ne!(X25519_SHARED_SECRET_LEN, 0);
assert_ne!(HKDF_SHA256_OUTPUT_LEN, 0);
assert_ne!(AES_256_GCM_NONCE_LEN, 0);
}
#[test]
fn ml_kem_768_ciphertext_is_1088_bytes_per_fips_203() {
assert_eq!(ML_KEM_768_CIPHERTEXT_LEN, 1088);
}
#[test]
fn hkdf_sha256_output_is_32_bytes() {
assert_eq!(HKDF_SHA256_OUTPUT_LEN, 32);
}
#[test]
fn shared_secret_lengths_align_for_concat_combiner() {
assert_eq!(ML_KEM_768_SHARED_SECRET_LEN, 32);
assert_eq!(X25519_SHARED_SECRET_LEN, 32);
assert_eq!(HKDF_SHA256_OUTPUT_LEN, 32);
}
}