From 961ec25a8392415f3e1d3e88a43e81c12d716e72 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Mon, 10 Mar 2025 15:10:29 +0100 Subject: [PATCH] musig: Fix clearing of pubnonces Fixes a silent merge conflict between #1614 and #1579. --- src/modules/musig/session_impl.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/musig/session_impl.h b/src/modules/musig/session_impl.h index fd09df6c82..d8dcd00c95 100644 --- a/src/modules/musig/session_impl.h +++ b/src/modules/musig/session_impl.h @@ -445,12 +445,18 @@ static int secp256k1_musig_nonce_gen_internal(const secp256k1_context* ctx, secp secp256k1_musig_secnonce_save(secnonce, k, &pk); secp256k1_musig_secnonce_invalidate(ctx, secnonce, !ret); + /* Compute pubnonce as two gejs */ for (i = 0; i < 2; i++) { secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &nonce_ptj[i], &k[i]); secp256k1_scalar_clear(&k[i]); - secp256k1_gej_clear(&nonce_ptj); } + + /* Batch convert to two public ges */ secp256k1_ge_set_all_gej(nonce_pts, nonce_ptj, 2); + for (i = 0; i < 2; i++) { + secp256k1_gej_clear(&nonce_ptj[i]); + } + for (i = 0; i < 2; i++) { secp256k1_declassify(ctx, &nonce_pts[i], sizeof(nonce_pts[i])); }