Skip to main content

wycheproof_ng_bls/
lib.rs

1//! BLS-12-381 tests
2
3use wycheproof_ng_core::*;
4
5define_test_set!(
6    "BLS",
7    "bls_sig_verify_schema.json",
8    "bls_hash_to_g2_schema.json",
9    "bls_aggregate_verify_schema.json"
10);
11
12define_test_set_names!(
13    BlsSigG2BasicVerify => "bls_sig_g2_basic_verify",
14    BlsSigG2PopVerify => "bls_sig_g2_pop_verify",
15    BlsHashToG2 => "bls_hash_to_g2",
16    BlsSigG2AggregateVerify => "bls_sig_g2_aggregate_verify",
17);
18
19define_algorithm_map!("BLS" => Bls);
20
21define_test_flags!(
22    EmptyAggregate,
23    EmptyMessage,
24    FieldBoundary,
25    HashToG2,
26    IdentityPoint,
27    InvalidEncoding,
28    InvalidFlags,
29    InvalidSignature,
30    LargeMessage,
31    MinimalInput,
32    MismatchedCount,
33    NotInSubgroup,
34    NotOnCurve,
35    SignatureMalleability,
36    TruncatedSignature,
37    Valid,
38    ValidAggregate,
39    WrongDST,
40    WrongKey,
41    WrongMessage,
42);
43
44define_test_group_type_id!(
45    "BlsSigVerify" => BlsSigVerify,
46    "BlsHashToG2" => BlsHashToG2,
47    "BlsAggregateVerify" => BlsAggregateVerify,
48);
49
50define_test_group!(
51    "publicKey" => public_key: Option<serde_json::Value>,
52    ciphersuite: Option<String>,
53    dst: Option<String>,
54);
55
56define_test!(
57    msg: Option<ByteString>,
58    sig: Option<ByteString>,
59    expected: Option<ByteString>,
60    "pubkeys" => pubkeys: Option<Vec<ByteString>>,
61    "messages" => messages: Option<Vec<ByteString>>,
62);