diff --git a/ml-dsa/tests/proptests.rs b/ml-dsa/tests/proptests.rs index 8e62fca2..9e07f6d2 100644 --- a/ml-dsa/tests/proptests.rs +++ b/ml-dsa/tests/proptests.rs @@ -1,6 +1,6 @@ use hybrid_array::AsArrayRef; use ml_dsa::{ - KeyGen, KeyPair, MlDsa44, MlDsa65, MlDsa87, Signature, + EncodedSigningKey, KeyGen, KeyPair, MlDsa44, MlDsa65, MlDsa87, Signature, SigningKey, signature::{Signer, Verifier}, }; use proptest::prelude::*; @@ -19,6 +19,11 @@ prop_compose! { MlDsa65::from_seed(seed_bytes.as_array_ref()) } } +prop_compose! { + fn mldsa65_encoded_signing_key()(bytes in any::<[u8; 4032]>()) -> EncodedSigningKey { + EncodedSigningKey::::try_from(bytes.as_slice()).unwrap() + } +} prop_compose! { fn mldsa87_keypair()(seed_bytes in any::<[u8; 32]>()) -> KeyPair { MlDsa87::from_seed(seed_bytes.as_array_ref()) @@ -45,6 +50,11 @@ proptest! { round_trip_test!(MlDsa44, keypair); } + #[test] + fn mldsa64_decode(encoded_signing_key in mldsa65_encoded_signing_key()) { + let _sk = SigningKey::::decode(&encoded_signing_key); + } + #[test] fn mldsa65_round_trip(keypair in mldsa65_keypair()) { round_trip_test!(MlDsa65, keypair);