@@ -393,17 +393,25 @@ static int secp256k1_musig_compute_noncehash(unsigned char *noncehash, secp256k1
393
393
return 1 ;
394
394
}
395
395
396
- static int secp256k1_musig_nonce_process_internal (int * fin_nonce_parity , unsigned char * fin_nonce , secp256k1_scalar * b , secp256k1_gej * aggnoncej , const unsigned char * agg_pk32 , const unsigned char * msg ) {
396
+ static int secp256k1_musig_nonce_process_internal (const secp256k1_context * ctx , int * fin_nonce_parity , unsigned char * fin_nonce , secp256k1_scalar * b , secp256k1_gej * aggnoncej , secp256k1_ge * aggnonce , const unsigned char * agg_pk32 , const unsigned char * msg , const secp256k1_pubkey * adaptor ) {
397
397
unsigned char noncehash [32 ];
398
398
secp256k1_ge fin_nonce_pt ;
399
399
secp256k1_gej fin_nonce_ptj ;
400
- secp256k1_ge aggnonce [2 ];
401
400
402
- secp256k1_ge_set_gej (& aggnonce [0 ], & aggnoncej [0 ]);
403
- secp256k1_ge_set_gej (& aggnonce [1 ], & aggnoncej [1 ]);
401
+ /* Add public adaptor to nonce */
402
+ if (adaptor != NULL ) {
403
+ secp256k1_ge adaptorp ;
404
+ if (!secp256k1_pubkey_load (ctx , & adaptorp , adaptor )) {
405
+ return 0 ;
406
+ }
407
+ secp256k1_gej_add_ge_var (& aggnoncej [0 ], & aggnoncej [0 ], & adaptorp , NULL );
408
+ secp256k1_ge_set_gej (& aggnonce [0 ], & aggnoncej [0 ]);
409
+ }
410
+
404
411
if (!secp256k1_musig_compute_noncehash (noncehash , aggnonce , agg_pk32 , msg )) {
405
412
return 0 ;
406
413
}
414
+
407
415
/* fin_nonce = aggnonce[0] + b*aggnonce[1] */
408
416
secp256k1_scalar_set_b32 (b , noncehash , NULL );
409
417
secp256k1_ecmult (& fin_nonce_ptj , & aggnoncej [1 ], b , NULL );
@@ -442,15 +450,8 @@ int secp256k1_musig_nonce_process(const secp256k1_context* ctx, secp256k1_musig_
442
450
}
443
451
secp256k1_gej_set_ge (& aggnonce_ptj [0 ], & aggnonce_pt [0 ]);
444
452
secp256k1_gej_set_ge (& aggnonce_ptj [1 ], & aggnonce_pt [1 ]);
445
- /* Add public adaptor to nonce */
446
- if (adaptor != NULL ) {
447
- secp256k1_ge adaptorp ;
448
- if (!secp256k1_pubkey_load (ctx , & adaptorp , adaptor )) {
449
- return 0 ;
450
- }
451
- secp256k1_gej_add_ge_var (& aggnonce_ptj [0 ], & aggnonce_ptj [0 ], & adaptorp , NULL );
452
- }
453
- if (!secp256k1_musig_nonce_process_internal (& session_i .fin_nonce_parity , fin_nonce , & session_i .noncecoef , aggnonce_ptj , agg_pk32 , msg32 )) {
453
+
454
+ if (!secp256k1_musig_nonce_process_internal (ctx , & session_i .fin_nonce_parity , fin_nonce , & session_i .noncecoef , aggnonce_ptj , aggnonce_pt , agg_pk32 , msg32 , adaptor )) {
454
455
return 0 ;
455
456
}
456
457
0 commit comments