@@ -395,6 +395,7 @@ static void secp256k1_nonce_function_musig(secp256k1_scalar *k, const unsigned c
395
395
int secp256k1_musig_nonce_gen_internal (const secp256k1_context * ctx , secp256k1_musig_secnonce * secnonce , secp256k1_musig_pubnonce * pubnonce , const unsigned char * input_nonce , const unsigned char * seckey , const secp256k1_pubkey * pubkey , const unsigned char * msg32 , const secp256k1_musig_keyagg_cache * keyagg_cache , const unsigned char * extra_input32 ) {
396
396
secp256k1_scalar k [2 ];
397
397
secp256k1_ge nonce_pts [2 ];
398
+ secp256k1_gej nonce_ptj [2 ];
398
399
int i ;
399
400
unsigned char pk_ser [33 ];
400
401
size_t pk_ser_len = sizeof (pk_ser );
@@ -445,12 +446,13 @@ int secp256k1_musig_nonce_gen_internal(const secp256k1_context* ctx, secp256k1_m
445
446
secp256k1_musig_secnonce_invalidate (ctx , secnonce , !ret );
446
447
447
448
for (i = 0 ; i < 2 ; i ++ ) {
448
- secp256k1_gej nonce_ptj ;
449
- secp256k1_ecmult_gen (& ctx -> ecmult_gen_ctx , & nonce_ptj , & k [i ]);
450
- secp256k1_ge_set_gej (& nonce_pts [i ], & nonce_ptj );
451
- secp256k1_declassify (ctx , & nonce_pts [i ], sizeof (nonce_pts [i ]));
449
+ secp256k1_ecmult_gen (& ctx -> ecmult_gen_ctx , & nonce_ptj [i ], & k [i ]);
452
450
secp256k1_scalar_clear (& k [i ]);
453
451
}
452
+ secp256k1_ge_set_all_gej (nonce_pts , nonce_ptj , 2 );
453
+ for (i = 0 ; i < 2 ; i ++ ) {
454
+ secp256k1_declassify (ctx , & nonce_pts [i ], sizeof (nonce_pts [i ]));
455
+ }
454
456
/* None of the nonce_pts will be infinity because k != 0 with overwhelming
455
457
* probability */
456
458
secp256k1_musig_pubnonce_save (pubnonce , nonce_pts );
0 commit comments