1use super::*;
4
5define_test_set!(
6 "ECDSA verify",
7 "ecdsa_verify_schema.json",
8 "ecdsa_p1363_verify_schema.json",
9 "ecdsa_bitcoin_verify_schema.json"
10);
11
12define_algorithm_map!("ECDSA" => Ecdsa);
13
14define_test_set_names!(
15 EcdsaBrainpool224r1Sha224P1363 => "ecdsa_brainpoolP224r1_sha224_p1363",
16 EcdsaBrainpool224r1Sha224 => "ecdsa_brainpoolP224r1_sha224",
17 EcdsaBrainpool224r1Sha3_224 => "ecdsa_brainpoolP224r1_sha3_224",
18 EcdsaBrainpool256r1Sha256P1363 => "ecdsa_brainpoolP256r1_sha256_p1363",
19 EcdsaBrainpool256r1Sha256 => "ecdsa_brainpoolP256r1_sha256",
20 EcdsaBrainpool256r1Sha3_256 => "ecdsa_brainpoolP256r1_sha3_256",
21 EcdsaBrainpool320r1Sha3_384 => "ecdsa_brainpoolP320r1_sha3_384",
22 EcdsaBrainpool320r1Sha384P1363 => "ecdsa_brainpoolP320r1_sha384_p1363",
23 EcdsaBrainpool320r1Sha384 => "ecdsa_brainpoolP320r1_sha384",
24 EcdsaBrainpool384r1Sha3_384 => "ecdsa_brainpoolP384r1_sha3_384",
25 EcdsaBrainpool384r1Sha384P1363 => "ecdsa_brainpoolP384r1_sha384_p1363",
26 EcdsaBrainpool384r1Sha384 => "ecdsa_brainpoolP384r1_sha384",
27 EcdsaBrainpool512r1Sha3_512 => "ecdsa_brainpoolP512r1_sha3_512",
28 EcdsaBrainpool512r1Sha512P1363 => "ecdsa_brainpoolP512r1_sha512_p1363",
29 EcdsaBrainpool512r1Sha512 => "ecdsa_brainpoolP512r1_sha512",
30 EcdsaSecp160k1Sha256P1363 => "ecdsa_secp160k1_sha256_p1363",
31 EcdsaSecp160k1Sha256 => "ecdsa_secp160k1_sha256",
32 EcdsaSecp160r1Sha256P1363 => "ecdsa_secp160r1_sha256_p1363",
33 EcdsaSecp160r1Sha256 => "ecdsa_secp160r1_sha256",
34 EcdsaSecp160r2Sha256P1363 => "ecdsa_secp160r2_sha256_p1363",
35 EcdsaSecp160r2Sha256 => "ecdsa_secp160r2_sha256",
36 EcdsaSecp192k1Sha256P1363 => "ecdsa_secp192k1_sha256_p1363",
37 EcdsaSecp192k1Sha256 => "ecdsa_secp192k1_sha256",
38 EcdsaSecp192r1Sha256P1363 => "ecdsa_secp192r1_sha256_p1363",
39 EcdsaSecp192r1Sha256 => "ecdsa_secp192r1_sha256",
40 EcdsaSecp224k1Sha224P1363 => "ecdsa_secp224k1_sha224_p1363",
41 EcdsaSecp224k1Sha224 => "ecdsa_secp224k1_sha224",
42 EcdsaSecp224k1Sha256P1363 => "ecdsa_secp224k1_sha256_p1363",
43 EcdsaSecp224k1Sha256 => "ecdsa_secp224k1_sha256",
44 EcdsaSecp224r1Sha224P1363 => "ecdsa_secp224r1_sha224_p1363",
45 EcdsaSecp224r1Sha224 => "ecdsa_secp224r1_sha224",
46 EcdsaSecp224r1Sha256P1363 => "ecdsa_secp224r1_sha256_p1363",
47 EcdsaSecp224r1Sha256 => "ecdsa_secp224r1_sha256",
48 EcdsaSecp224r1Sha3_224 => "ecdsa_secp224r1_sha3_224",
49 EcdsaSecp224r1Sha3_256 => "ecdsa_secp224r1_sha3_256",
50 EcdsaSecp224r1Sha3_512 => "ecdsa_secp224r1_sha3_512",
51 EcdsaSecp224r1Sha512P1363 => "ecdsa_secp224r1_sha512_p1363",
52 EcdsaSecp224r1Sha512 => "ecdsa_secp224r1_sha512",
53 EcdsaSecp224r1Shake128P1363 => "ecdsa_secp224r1_shake128_p1363",
54 EcdsaSecp224r1Shake128 => "ecdsa_secp224r1_shake128",
55 EcdsaSecp256k1Sha256Bitcoin => "ecdsa_secp256k1_sha256_bitcoin",
56 EcdsaSecp256k1Sha256P1363 => "ecdsa_secp256k1_sha256_p1363",
57 EcdsaSecp256k1Sha256 => "ecdsa_secp256k1_sha256",
58 EcdsaSecp256k1Sha3_256 => "ecdsa_secp256k1_sha3_256",
59 EcdsaSecp256k1Sha3_512 => "ecdsa_secp256k1_sha3_512",
60 EcdsaSecp256k1Sha512P1363 => "ecdsa_secp256k1_sha512_p1363",
61 EcdsaSecp256k1Sha512 => "ecdsa_secp256k1_sha512",
62 EcdsaSecp256k1Shake128P1363 => "ecdsa_secp256k1_shake128_p1363",
63 EcdsaSecp256k1Shake128 => "ecdsa_secp256k1_shake128",
64 EcdsaSecp256k1Shake256P1363 => "ecdsa_secp256k1_shake256_p1363",
65 EcdsaSecp256k1Shake256 => "ecdsa_secp256k1_shake256",
66 EcdsaSecp256r1Sha256P1363 => "ecdsa_secp256r1_sha256_p1363",
67 EcdsaSecp256r1Sha256 => "ecdsa_secp256r1_sha256",
68 EcdsaSecp256r1Sha3_256 => "ecdsa_secp256r1_sha3_256",
69 EcdsaSecp256r1Sha3_512 => "ecdsa_secp256r1_sha3_512",
70 EcdsaSecp256r1Sha512P1363 => "ecdsa_secp256r1_sha512_p1363",
71 EcdsaSecp256r1Sha512 => "ecdsa_secp256r1_sha512",
72 EcdsaSecp256r1Shake128P1363 => "ecdsa_secp256r1_shake128_p1363",
73 EcdsaSecp256r1Shake128 => "ecdsa_secp256r1_shake128",
74 EcdsaSecp256r1Webcrypto => "ecdsa_secp256r1_webcrypto",
75 EcdsaSecp384r1Sha256 => "ecdsa_secp384r1_sha256",
76 EcdsaSecp384r1Sha3_384 => "ecdsa_secp384r1_sha3_384",
77 EcdsaSecp384r1Sha3_512 => "ecdsa_secp384r1_sha3_512",
78 EcdsaSecp384r1Sha384P1363 => "ecdsa_secp384r1_sha384_p1363",
79 EcdsaSecp384r1Sha384 => "ecdsa_secp384r1_sha384",
80 EcdsaSecp384r1Sha512P1363 => "ecdsa_secp384r1_sha512_p1363",
81 EcdsaSecp384r1Sha512 => "ecdsa_secp384r1_sha512",
82 EcdsaSecp384r1Shake256P1363 => "ecdsa_secp384r1_shake256_p1363",
83 EcdsaSecp384r1Shake256 => "ecdsa_secp384r1_shake256",
84 EcdsaSecp384r1Webcrypto => "ecdsa_secp384r1_webcrypto",
85 EcdsaSecp521r1Sha3_512 => "ecdsa_secp521r1_sha3_512",
86 EcdsaSecp521r1Sha512P1363 => "ecdsa_secp521r1_sha512_p1363",
87 EcdsaSecp521r1Sha512 => "ecdsa_secp521r1_sha512",
88 EcdsaSecp521r1Shake256P1363 => "ecdsa_secp521r1_shake256_p1363",
89 EcdsaSecp521r1Shake256 => "ecdsa_secp521r1_shake256",
90 EcdsaSecp521r1Webcrypto => "ecdsa_secp521r1_webcrypto",
91);
92
93define_test_flags!(
94 ArithmeticError,
95 BerEncodedSignature,
96 EdgeCasePublicKey,
97 EdgeCaseShamirMultiplication,
98 GroupIsomorphism,
99 IntegerOverflow,
100 InvalidEncoding,
101 InvalidSignature,
102 InvalidTypesInSignature,
103 MissingZero,
104 ModifiedInteger,
105 ModifiedSignature,
106 ModularInverse,
107 PointDuplication,
108 RangeCheck,
109 SignatureSize,
110 SignatureMalleabilityBitcoin,
111 SmallRandS,
112 SpecialCaseHash,
113 Untruncatedhash,
114 ValidSignature,
115);
116
117define_test_group_type_id!(
118 "EcdsaVerify" => Ecdsa,
119 "EcdsaP1363Verify" => EcdsaP1363,
120 "EcdsaBitcoinVerify" => EcdsaBitcoin,
121);
122
123define_test_group!(
124 "publicKeyJwk" => jwk: Option<EcdsaPublicJwk>,
125 "publicKey" => key: EcdsaPublic,
126 "publicKeyDer" => der: ByteString,
127 "publicKeyPem" => pem: String,
128 "sha" => hash: HashFunction,
129);
130
131define_test!(msg: ByteString, sig: ByteString);