Skip to content

Commit 26f95c5

Browse files
committed
f feed seckey that is actually signed with (i.e. perhaps negated) into nonce functions
1 parent 2b36bf7 commit 26f95c5

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/modules/schnorrsig/main_impl.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ int secp256k1_schnorrsig_sign(const secp256k1_context* ctx, secp256k1_schnorrsig
5555
secp256k1_sha256 sha;
5656
int overflow;
5757
unsigned char buf[32];
58+
unsigned char seckey_tmp[32];
5859

5960
VERIFY_CHECK(ctx != NULL);
6061
ARG_CHECK(secp256k1_ecmult_gen_context_is_built(&ctx->ecmult_gen_ctx));
@@ -82,11 +83,15 @@ int secp256k1_schnorrsig_sign(const secp256k1_context* ctx, secp256k1_schnorrsig
8283
secp256k1_scalar_negate(&x, &x);
8384
}
8485

85-
if (!noncefp(buf, msg32, seckey, (unsigned char *) "BIPSchnorrDerive", (void*)ndata, 0)) {
86+
secp256k1_scalar_get_b32(seckey_tmp, &x);
87+
if (!noncefp(buf, msg32, seckey_tmp, (unsigned char *) "BIPSchnorrDerive", (void*)ndata, 0)) {
8688
memset(sig, 0, sizeof(*sig));
89+
memset(seckey_tmp, 0, sizeof(seckey_tmp));
8790
secp256k1_scalar_clear(&x);
8891
return 0;
8992
}
93+
memset(seckey_tmp, 0, sizeof(seckey_tmp));
94+
9095
secp256k1_scalar_set_b32(&k, buf, NULL);
9196
if (secp256k1_scalar_is_zero(&k)) {
9297
memset(sig, 0, sizeof(*sig));

0 commit comments

Comments
 (0)