@@ -38,6 +38,13 @@ void test_batch_sha256_tagged(void) {
38
38
#define N_TWK_CHECKS 10
39
39
#define N_TERMS (N_TWK_CHECKS + 2*N_SIGS)
40
40
void test_batch_api (void ) {
41
+ secp256k1_batch * batch_none ;
42
+ secp256k1_batch * batch_sign ;
43
+ secp256k1_batch * batch_vrfy ;
44
+ secp256k1_batch * batch_both ;
45
+ secp256k1_batch * batch_sttc ;
46
+ unsigned char aux_rand16 [32 ];
47
+ int ecount ;
41
48
42
49
#ifdef ENABLE_MODULE_EXTRAKEYS
43
50
unsigned char sk [32 ];
@@ -62,39 +69,33 @@ void test_batch_api(void) {
62
69
secp256k1_context * sign = secp256k1_context_create (SECP256K1_CONTEXT_SIGN );
63
70
secp256k1_context * vrfy = secp256k1_context_create (SECP256K1_CONTEXT_VERIFY );
64
71
secp256k1_context * both = secp256k1_context_create (SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY );
65
- secp256k1_context * sttc = secp256k1_context_clone (secp256k1_context_no_precomp );
66
- secp256k1_batch * batch_none ;
67
- secp256k1_batch * batch_sign ;
68
- secp256k1_batch * batch_vrfy ;
69
- secp256k1_batch * batch_both ;
70
- secp256k1_batch * batch_sttc ;
71
- unsigned char aux_rand16 [32 ];
72
- int ecount ;
73
-
74
- secp256k1_context_set_error_callback (none , counting_illegal_callback_fn , & ecount );
75
- secp256k1_context_set_error_callback (sign , counting_illegal_callback_fn , & ecount );
76
- secp256k1_context_set_error_callback (vrfy , counting_illegal_callback_fn , & ecount );
77
- secp256k1_context_set_error_callback (both , counting_illegal_callback_fn , & ecount );
78
- secp256k1_context_set_error_callback (sttc , counting_illegal_callback_fn , & ecount );
79
- secp256k1_context_set_illegal_callback (none , counting_illegal_callback_fn , & ecount );
80
- secp256k1_context_set_illegal_callback (sign , counting_illegal_callback_fn , & ecount );
81
- secp256k1_context_set_illegal_callback (vrfy , counting_illegal_callback_fn , & ecount );
82
- secp256k1_context_set_illegal_callback (both , counting_illegal_callback_fn , & ecount );
83
- secp256k1_context_set_illegal_callback (sttc , counting_illegal_callback_fn , & ecount );
72
+ secp256k1_context * sttc = malloc (sizeof (* secp256k1_context_no_precomp ));
73
+ memcpy (sttc , secp256k1_context_no_precomp , sizeof (secp256k1_context ));
74
+
75
+ secp256k1_context_set_error_callback (none , counting_callback_fn , & ecount );
76
+ secp256k1_context_set_error_callback (sign , counting_callback_fn , & ecount );
77
+ secp256k1_context_set_error_callback (vrfy , counting_callback_fn , & ecount );
78
+ secp256k1_context_set_error_callback (both , counting_callback_fn , & ecount );
79
+ secp256k1_context_set_error_callback (sttc , counting_callback_fn , & ecount );
80
+ secp256k1_context_set_illegal_callback (none , counting_callback_fn , & ecount );
81
+ secp256k1_context_set_illegal_callback (sign , counting_callback_fn , & ecount );
82
+ secp256k1_context_set_illegal_callback (vrfy , counting_callback_fn , & ecount );
83
+ secp256k1_context_set_illegal_callback (both , counting_callback_fn , & ecount );
84
+ secp256k1_context_set_illegal_callback (sttc , counting_callback_fn , & ecount );
84
85
85
86
/* 16 byte auxiliary randomness */
86
- secp256k1_testrand256 (aux_rand16 );
87
+ testrand256 (aux_rand16 );
87
88
memset (& aux_rand16 [16 ], 0 , 16 );
88
89
89
90
#ifdef ENABLE_MODULE_EXTRAKEYS
90
91
/* generate keypair data */
91
- secp256k1_testrand256 (sk );
92
+ testrand256 (sk );
92
93
CHECK (secp256k1_keypair_create (sign , & keypair , sk ) == 1 );
93
94
CHECK (secp256k1_keypair_xonly_pub (sign , & pk , NULL , & keypair ) == 1 );
94
95
95
96
/* generate N_TWK_CHECKS tweak check data (tweaked_pk, tweaked_pk_parity, tweak) */
96
97
for (i = 0 ; i < N_TWK_CHECKS ; i ++ ) {
97
- secp256k1_testrand256 (tweak [i ]);
98
+ testrand256 (tweak [i ]);
98
99
CHECK (secp256k1_xonly_pubkey_tweak_add (vrfy , & tmp_pk , & pk , tweak [i ]));
99
100
CHECK (secp256k1_xonly_pubkey_from_pubkey (vrfy , & tmp_xonly_pk , & tweaked_pk_parity [i ], & tmp_pk ));
100
101
CHECK (secp256k1_xonly_pubkey_serialize (vrfy , tweaked_pk [i ], & tmp_xonly_pk ));
@@ -105,7 +106,7 @@ void test_batch_api(void) {
105
106
#ifdef ENABLE_MODULE_SCHNORRSIG
106
107
/* generate N_SIGS schnorr verify data (msg, sig) */
107
108
for (i = 0 ; i < N_SIGS ; i ++ ) {
108
- secp256k1_testrand256 (msg [i ]);
109
+ testrand256 (msg [i ]);
109
110
CHECK (secp256k1_schnorrsig_sign32 (sign , sig [i ], msg [i ], & keypair , NULL ) == 1 );
110
111
CHECK (secp256k1_schnorrsig_verify (vrfy , sig [i ], msg [i ], sizeof (msg [i ]), & pk ));
111
112
}
0 commit comments