xref: /aosp_15_r20/external/cronet/third_party/rust/chromium_crates_io/vendor/wycheproof-0.4.0/src/dsa.rs (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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