1 //! DSA verification tests 2 3 use super::*; 4 5 define_test_set!( 6 "DSA verify", 7 "dsa_verify_schema.json", 8 "dsa_p1363_verify_schema.json" 9 ); 10 11 define_algorithm_map!("DSA" => Dsa); 12 13 define_test_set_names!( 14 Dsa2048_224Sha224 => "dsa_2048_224_sha224", 15 Dsa2048_224Sha256 => "dsa_2048_224_sha256", 16 Dsa2048_256Sha256 => "dsa_2048_256_sha256", 17 Dsa3072_256Sha256 => "dsa_3072_256_sha256", 18 Dsa2048_224Sha224P1363 => "dsa_2048_224_sha224_p1363", 19 Dsa2048_224Sha256P1363 => "dsa_2048_224_sha256_p1363", 20 Dsa2048_256Sha256P1363 => "dsa_2048_256_sha256_p1363", 21 Dsa3072_256Sha256P1363 => "dsa_3072_256_sha256_p1363", 22 DsaMisc => "dsa" 23 ); 24 25 define_test_flags!(EdgeCase, NoLeadingZero); 26 27 define_typeid!(TestKeyTypeId => "DsaPublicKey"); 28 29 #[derive(Debug, Clone, Hash, Eq, PartialEq, Deserialize)] 30 #[serde(deny_unknown_fields)] 31 pub struct TestKey { 32 #[serde(deserialize_with = "vec_from_hex")] 33 pub g: Vec<u8>, 34 #[serde(rename = "keySize")] 35 pub key_size: usize, 36 #[serde(deserialize_with = "vec_from_hex")] 37 pub p: Vec<u8>, 38 #[serde(deserialize_with = "vec_from_hex")] 39 pub q: Vec<u8>, 40 #[serde(rename = "type")] 41 typ: TestKeyTypeId, 42 #[serde(deserialize_with = "vec_from_hex")] 43 pub y: Vec<u8>, 44 } 45 46 define_typeid!(TestGroupTypeId => "DsaVerify", "DsaP1363Verify"); 47 48 define_test_group!( 49 key: TestKey, 50 "keyDer" => der: Vec<u8> | "vec_from_hex", 51 "keyPem" => pem: String, 52 "sha" => hash: HashFunction, 53 ); 54 55 define_test!(msg: Vec<u8>, sig: Vec<u8>); 56