Skip to content

Commit 07b7321

Browse files
committed
Fix valgrind tests
1 parent cac1662 commit 07b7321

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/ctime_tests.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,6 @@ static void run_tests(secp256k1_context *ctx, unsigned char *key) {
421421
CHECK(secp256k1_ec_pubkey_serialize(ctx, id[1], &size, &pk[1], SECP256K1_EC_COMPRESSED));
422422

423423
/* shares_gen */
424-
SECP256K1_CHECKMEM_UNDEFINE(key, 32);
425-
SECP256K1_CHECKMEM_UNDEFINE(key2, 32);
426424
SECP256K1_CHECKMEM_UNDEFINE(seed[0], 32);
427425
SECP256K1_CHECKMEM_UNDEFINE(seed[1], 32);
428426
ret = secp256k1_frost_shares_gen(ctx, shares[0], vss_commitment[0], pok[0], seed[0], 2, 2, id_ptr);
@@ -431,6 +429,8 @@ static void run_tests(secp256k1_context *ctx, unsigned char *key) {
431429
ret = secp256k1_frost_shares_gen(ctx, shares[1], vss_commitment[1], pok[1], seed[1], 2, 2, id_ptr);
432430
SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret));
433431
CHECK(ret == 1);
432+
SECP256K1_CHECKMEM_UNDEFINE(&shares[0][0], sizeof(shares[0][0]));
433+
SECP256K1_CHECKMEM_UNDEFINE(&shares[1][0], sizeof(shares[1][0]));
434434
/* share_agg */
435435
SECP256K1_CHECKMEM_DEFINE(&vss_commitment[0][0], sizeof(secp256k1_pubkey));
436436
SECP256K1_CHECKMEM_DEFINE(&vss_commitment[0][1], sizeof(secp256k1_pubkey));
@@ -441,6 +441,7 @@ static void run_tests(secp256k1_context *ctx, unsigned char *key) {
441441
ret = secp256k1_frost_share_agg(ctx, &agg_share, share_ptr, vss_ptr, pok_ptr, 2, 2, id_ptr[0]);
442442
SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret));
443443
CHECK(ret == 1);
444+
SECP256K1_CHECKMEM_UNDEFINE(&agg_share, sizeof(&agg_share));
444445
CHECK(secp256k1_frost_compute_pubshare(ctx, &pubshare[0], 2, id_ptr[0], vss_ptr, 2));
445446
CHECK(secp256k1_frost_compute_pubshare(ctx, &pubshare[1], 2, id_ptr[1], vss_ptr, 2));
446447
CHECK(secp256k1_frost_pubkey_gen(ctx, &cache, pubshares_ptr, 2, id_ptr));
@@ -456,10 +457,9 @@ static void run_tests(secp256k1_context *ctx, unsigned char *key) {
456457
SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret));
457458
CHECK(ret == 1);
458459
/* partial_sign */
460+
/* Make sure that previous tests don't undefine msg. It's not used as a secret here. */
461+
SECP256K1_CHECKMEM_DEFINE(msg, sizeof(msg));
459462
CHECK(secp256k1_frost_nonce_process(ctx, &session, pubnonce_ptr, 2, msg, id_ptr[0], id_ptr, &cache, &adaptor) == 1);
460-
ret = secp256k1_keypair_create(ctx, &keypair, key);
461-
SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret));
462-
CHECK(ret == 1);
463463
ret = secp256k1_frost_partial_sign(ctx, &partial_sig, &secnonce[0], &agg_share, &session, &cache);
464464
SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret));
465465
CHECK(ret == 1);

src/modules/frost/keygen_impl.h

+2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ static void secp256k1_frost_share_save(secp256k1_frost_share* share, secp256k1_s
8181
static int secp256k1_frost_share_load(const secp256k1_context* ctx, secp256k1_scalar *s, const secp256k1_frost_share* share) {
8282
int overflow;
8383

84+
/* The magic is non-secret so it can be declassified to allow branching. */
85+
secp256k1_declassify(ctx, &share->data[0], 4);
8486
ARG_CHECK(secp256k1_memcmp_var(&share->data[0], secp256k1_frost_share_magic, 4) == 0);
8587
secp256k1_scalar_set_b32(s, &share->data[4], &overflow);
8688
/* Parsed shares cannot overflow */

0 commit comments

Comments
 (0)