modules: Port bitcoin-core/secp256k1#1735 to zkp-specific code
This commit is contained in:
@@ -182,7 +182,7 @@ int secp256k1_ecdsa_anti_exfil_signer_commit(const secp256k1_context* ctx, secp2
|
|||||||
secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &rj, &k);
|
secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &rj, &k);
|
||||||
secp256k1_ge_set_gej(&r, &rj);
|
secp256k1_ge_set_gej(&r, &rj);
|
||||||
secp256k1_ecdsa_s2c_opening_save(opening, &r);
|
secp256k1_ecdsa_s2c_opening_save(opening, &r);
|
||||||
secp256k1_memclear(nonce32, 32);
|
secp256k1_memclear_explicit(nonce32, 32);
|
||||||
secp256k1_scalar_clear(&k);
|
secp256k1_scalar_clear(&k);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ static void secp256k1_pedersen_scalar_set_u64(secp256k1_scalar *sec, uint64_t va
|
|||||||
value <<= 8;
|
value <<= 8;
|
||||||
}
|
}
|
||||||
secp256k1_scalar_set_b32(sec, data, NULL);
|
secp256k1_scalar_set_b32(sec, data, NULL);
|
||||||
secp256k1_memclear(data, 32);
|
secp256k1_memclear_explicit(data, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void secp256k1_pedersen_ecmult_small(secp256k1_gej *r, uint64_t gn, const secp256k1_ge* genp) {
|
static void secp256k1_pedersen_ecmult_small(secp256k1_gej *r, uint64_t gn, const secp256k1_ge* genp) {
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ int secp256k1_borromean_sign(const secp256k1_ecmult_gen_context *ecmult_gen_ctx,
|
|||||||
secp256k1_scalar_clear(&ens);
|
secp256k1_scalar_clear(&ens);
|
||||||
secp256k1_ge_clear(&rge);
|
secp256k1_ge_clear(&rge);
|
||||||
secp256k1_gej_clear(&rgej);
|
secp256k1_gej_clear(&rgej);
|
||||||
secp256k1_memclear(tmp, 33);
|
secp256k1_memclear_explicit(tmp, 33);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ SECP256K1_INLINE static int secp256k1_rangeproof_genrand(secp256k1_scalar *sec,
|
|||||||
secp256k1_rfc6979_hmac_sha256_finalize(&rng);
|
secp256k1_rfc6979_hmac_sha256_finalize(&rng);
|
||||||
secp256k1_rfc6979_hmac_sha256_clear(&rng);
|
secp256k1_rfc6979_hmac_sha256_clear(&rng);
|
||||||
secp256k1_scalar_clear(&acc);
|
secp256k1_scalar_clear(&acc);
|
||||||
secp256k1_memclear(tmp, 32);
|
secp256k1_memclear_explicit(tmp, 32);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +270,7 @@ SECP256K1_INLINE static int secp256k1_rangeproof_sign_impl(const secp256k1_ecmul
|
|||||||
if (!secp256k1_rangeproof_genrand(sec, s, prep, rsizes, rings, nonce, commit, proof, len, genp)) {
|
if (!secp256k1_rangeproof_genrand(sec, s, prep, rsizes, rings, nonce, commit, proof, len, genp)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
secp256k1_memclear(prep, 4096);
|
secp256k1_memclear_explicit(prep, 4096);
|
||||||
for (i = 0; i < rings; i++) {
|
for (i = 0; i < rings; i++) {
|
||||||
/* Sign will overwrite the non-forged signature, move that random value into the nonce. */
|
/* Sign will overwrite the non-forged signature, move that random value into the nonce. */
|
||||||
k[i] = s[i * 4 + secidx[i]];
|
k[i] = s[i * 4 + secidx[i]];
|
||||||
@@ -332,7 +332,7 @@ SECP256K1_INLINE static int secp256k1_rangeproof_sign_impl(const secp256k1_ecmul
|
|||||||
}
|
}
|
||||||
VERIFY_CHECK(len <= *plen);
|
VERIFY_CHECK(len <= *plen);
|
||||||
*plen = len;
|
*plen = len;
|
||||||
secp256k1_memclear(prep, 4096);
|
secp256k1_memclear_explicit(prep, 4096);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -473,7 +473,7 @@ SECP256K1_INLINE static int secp256k1_rangeproof_rewind_inner(secp256k1_scalar *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
*mlen = offset;
|
*mlen = offset;
|
||||||
secp256k1_memclear(prep, 4096);
|
secp256k1_memclear_explicit(prep, 4096);
|
||||||
for (i = 0; i < 128; i++) {
|
for (i = 0; i < 128; i++) {
|
||||||
secp256k1_scalar_clear(&s_orig[i]);
|
secp256k1_scalar_clear(&s_orig[i]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,11 +55,11 @@ SECP256K1_INLINE static int secp256k1_surjection_genrand(secp256k1_scalar *s, si
|
|||||||
secp256k1_sha256_clear(&sha256_en);
|
secp256k1_sha256_clear(&sha256_en);
|
||||||
secp256k1_scalar_set_b32(&s[i], sec_input, &overflow);
|
secp256k1_scalar_set_b32(&s[i], sec_input, &overflow);
|
||||||
if (overflow == 1) {
|
if (overflow == 1) {
|
||||||
secp256k1_memclear(sec_input, 32);
|
secp256k1_memclear_explicit(sec_input, 32);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
secp256k1_memclear(sec_input, 32);
|
secp256k1_memclear_explicit(sec_input, 32);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ int secp256k1_whitelist_sign(const secp256k1_context* ctx, secp256k1_whitelist_s
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
secp256k1_scalar_set_b32(&non, nonce32, &overflow);
|
secp256k1_scalar_set_b32(&non, nonce32, &overflow);
|
||||||
secp256k1_memclear(nonce32, 32);
|
secp256k1_memclear_explicit(nonce32, 32);
|
||||||
if (overflow || secp256k1_scalar_is_zero(&non)) {
|
if (overflow || secp256k1_scalar_is_zero(&non)) {
|
||||||
count++;
|
count++;
|
||||||
continue;
|
continue;
|
||||||
@@ -80,7 +80,7 @@ int secp256k1_whitelist_sign(const secp256k1_context* ctx, secp256k1_whitelist_s
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
secp256k1_memclear(seckey32, 32);
|
secp256k1_memclear_explicit(seckey32, 32);
|
||||||
}
|
}
|
||||||
/* Actually sign */
|
/* Actually sign */
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|||||||
Reference in New Issue
Block a user