@@ -160,14 +160,17 @@ void musig_api_tests(secp256k1_scratch_space *scratch) {
160
160
secp256k1_context * none = secp256k1_context_create (SECP256K1_CONTEXT_NONE );
161
161
secp256k1_context * sign = secp256k1_context_create (SECP256K1_CONTEXT_SIGN );
162
162
secp256k1_context * vrfy = secp256k1_context_create (SECP256K1_CONTEXT_VERIFY );
163
+ secp256k1_context * sttc = secp256k1_context_clone (secp256k1_context_no_precomp );
163
164
int ecount ;
164
165
165
166
secp256k1_context_set_error_callback (none , counting_illegal_callback_fn , & ecount );
166
167
secp256k1_context_set_error_callback (sign , counting_illegal_callback_fn , & ecount );
167
168
secp256k1_context_set_error_callback (vrfy , counting_illegal_callback_fn , & ecount );
169
+ secp256k1_context_set_error_callback (sttc , counting_illegal_callback_fn , & ecount );
168
170
secp256k1_context_set_illegal_callback (none , counting_illegal_callback_fn , & ecount );
169
171
secp256k1_context_set_illegal_callback (sign , counting_illegal_callback_fn , & ecount );
170
172
secp256k1_context_set_illegal_callback (vrfy , counting_illegal_callback_fn , & ecount );
173
+ secp256k1_context_set_illegal_callback (sttc , counting_illegal_callback_fn , & ecount );
171
174
172
175
memset (max64 , 0xff , sizeof (max64 ));
173
176
memset (& invalid_keypair , 0 , sizeof (invalid_keypair ));
@@ -280,34 +283,36 @@ void musig_api_tests(secp256k1_scratch_space *scratch) {
280
283
CHECK (secp256k1_musig_nonce_gen (vrfy , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 1 );
281
284
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 1 );
282
285
CHECK (ecount == 0 );
283
- CHECK (secp256k1_musig_nonce_gen (sign , NULL , & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
286
+ CHECK (secp256k1_musig_nonce_gen (sttc , & secnonce [ 0 ] , & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
284
287
CHECK (ecount == 1 );
285
- CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], NULL , session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
288
+ CHECK (secp256k1_musig_nonce_gen (sign , NULL , & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
286
289
CHECK (ecount == 2 );
287
- CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], NULL , sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
290
+ CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], NULL , session_id [0 ], sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
288
291
CHECK (ecount == 3 );
292
+ CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], NULL , sk [0 ], msg , & keyagg_cache , max64 ) == 0 );
293
+ CHECK (ecount == 4 );
289
294
CHECK (memcmp_and_randomize (secnonce [0 ].data , zeros68 , sizeof (secnonce [0 ].data )) == 0 );
290
295
/* no seckey and session_id is 0 */
291
296
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], zeros68 , NULL , msg , & keyagg_cache , max64 ) == 0 );
292
- CHECK (ecount == 3 );
297
+ CHECK (ecount == 4 );
293
298
CHECK (memcmp_and_randomize (secnonce [0 ].data , zeros68 , sizeof (secnonce [0 ].data )) == 0 );
294
299
/* session_id 0 is fine when a seckey is provided */
295
300
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], zeros68 , sk [0 ], msg , & keyagg_cache , max64 ) == 1 );
296
301
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], NULL , msg , & keyagg_cache , max64 ) == 1 );
297
- CHECK (ecount == 3 );
302
+ CHECK (ecount == 4 );
298
303
/* invalid seckey */
299
304
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], max64 , msg , & keyagg_cache , max64 ) == 0 );
300
305
CHECK (memcmp_and_randomize (secnonce [0 ].data , zeros68 , sizeof (secnonce [0 ].data )) == 0 );
301
- CHECK (ecount == 3 );
306
+ CHECK (ecount == 4 );
302
307
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], NULL , & keyagg_cache , max64 ) == 1 );
303
- CHECK (ecount == 3 );
308
+ CHECK (ecount == 4 );
304
309
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , NULL , max64 ) == 1 );
305
- CHECK (ecount == 3 );
306
- CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & invalid_keyagg_cache , max64 ) == 0 );
307
310
CHECK (ecount == 4 );
311
+ CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & invalid_keyagg_cache , max64 ) == 0 );
312
+ CHECK (ecount == 5 );
308
313
CHECK (memcmp_and_randomize (secnonce [0 ].data , zeros68 , sizeof (secnonce [0 ].data )) == 0 );
309
314
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], sk [0 ], msg , & keyagg_cache , NULL ) == 1 );
310
- CHECK (ecount == 4 );
315
+ CHECK (ecount == 5 );
311
316
312
317
/* Every in-argument except session_id can be NULL */
313
318
CHECK (secp256k1_musig_nonce_gen (sign , & secnonce [0 ], & pubnonce [0 ], session_id [0 ], NULL , NULL , NULL , NULL ) == 1 );
@@ -583,6 +588,7 @@ void musig_api_tests(secp256k1_scratch_space *scratch) {
583
588
secp256k1_context_destroy (none );
584
589
secp256k1_context_destroy (sign );
585
590
secp256k1_context_destroy (vrfy );
591
+ secp256k1_context_destroy (sttc );
586
592
}
587
593
588
594
void musig_nonce_bitflip (unsigned char * * args , size_t n_flip , size_t n_bytes ) {
0 commit comments