#[cfg(feature = "ml-kem-512")]
use fips203::ml_kem_512;
use fips203::traits::{KeyGen, SerDes};
use rand_chacha::rand_core::SeedableRng;
use rand_core::RngCore;
#[test]
#[cfg(feature = "ml-kem-512")]
fn fails_512() {
let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(123);
for _i in 0..100 {
let mut bad_ek_bytes = [0u8; ml_kem_512::EK_LEN];
rng.fill_bytes(&mut bad_ek_bytes);
let bad_ek = ml_kem_512::EncapsKey::try_from_bytes(bad_ek_bytes);
assert!(bad_ek.is_err());
let mut bad_ct_bytes = [0u8; ml_kem_512::CT_LEN];
rng.fill_bytes(&mut bad_ct_bytes);
let _bad_ct = ml_kem_512::CipherText::try_from_bytes(bad_ct_bytes);
let mut bad_dk_bytes = [0u8; ml_kem_512::DK_LEN];
rng.fill_bytes(&mut bad_dk_bytes);
let bad_dk = ml_kem_512::DecapsKey::try_from_bytes(bad_dk_bytes);
assert!(bad_dk.is_err());
assert!(!ml_kem_512::KG::validate_keypair_with_rng_vartime(
&mut rng,
&bad_ek_bytes,
&bad_dk_bytes
));
}
}