1use super::*;
4
5define_test_set!(
6 "ECDH",
7 "ecdh_test_schema.json",
8 "ecdh_ecpoint_test_schema.json"
9);
10
11define_algorithm_map!("ECDH" => Ecdh);
12
13define_test_set_names!(
14 EcdhBrainpool224r1 => "ecdh_brainpoolP224r1",
15 EcdhBrainpool256r1 => "ecdh_brainpoolP256r1",
16 EcdhBrainpool320r1 => "ecdh_brainpoolP320r1",
17 EcdhBrainpool384r1 => "ecdh_brainpoolP384r1",
18 EcdhBrainpool512r1 => "ecdh_brainpoolP512r1",
19 EcdhSecp224r1 => "ecdh_secp224r1",
20 EcdhSecp256k1 => "ecdh_secp256k1",
21 EcdhSecp256r1 => "ecdh_secp256r1",
22 EcdhSecp384r1 => "ecdh_secp384r1",
23 EcdhSecp521r1 => "ecdh_secp521r1",
24 EcdhSecp224r1Ecpoint => "ecdh_secp224r1_ecpoint",
25 EcdhSecp256r1Ecpoint => "ecdh_secp256r1_ecpoint",
26 EcdhSecp384r1Ecpoint => "ecdh_secp384r1_ecpoint",
27 EcdhSecp521r1Ecpoint => "ecdh_secp521r1_ecpoint",
28);
29
30define_test_flags!(
31 AdditionChain,
32 "CVE-2017-8932" => GolangScalarmulBug,
33 "CVE_2017_10176" => JavaAdditionChainBug,
34 CompressedPoint,
35 CompressedPublic,
36 EdgeCaseDoubling,
37 EdgeCaseEphemeralKey,
38 EdgeCaseSharedSecret,
39 InvalidAsn,
40 InvalidCompressedPublic,
41 InvalidCurveAttack,
42 InvalidEncoding,
43 InvalidPublic,
44 InvalidPem,
45 IsomorphicPublicKey,
46 GroupIsomorphism,
47 LargeCofactor,
48 "Modified curve parameter" => ModifiedCurveParameter,
49 ModifiedCofactor,
50 ModifiedGenerator,
51 ModifiedGroup,
52 ModifiedPrime,
53 ModifiedPublicPoint,
54 NegativeCofactor,
55 Normal,
56 UnnamedCurve,
57 UnusedParam,
58 WeakPublicKey,
59 WrongCurve,
60 WrongOrder,
61);
62
63#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Deserialize)]
64pub enum EcdhEncoding {
65 #[serde(rename = "asn")]
66 Asn1,
67 #[serde(rename = "ecpoint")]
68 EcPoint,
69}
70
71define_test_group_type_id!(
72 "EcdhTest" => Ecdh,
73 "EcdhEcpointTest" => EcdhEcpoint,
74);
75
76define_test_group!(curve: EllipticCurve, encoding: EcdhEncoding);
77
78define_test!(
79 "public" => public_key: ByteString,
80 "private" => private_key: ByteString,
81 "shared" => shared_secret: ByteString,
82);