Skip to content

Commit c7d0454

Browse files
committed
add verification for scalars
secp256k1_scalar_verify checks that scalars are reduced mod the group order
1 parent ad15215 commit c7d0454

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/scalar.h

+3
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,7 @@ static void secp256k1_scalar_mul_shift_var(secp256k1_scalar *r, const secp256k1_
9999
/** If flag is true, set *r equal to *a; otherwise leave it. Constant-time. Both *r and *a must be initialized.*/
100100
static void secp256k1_scalar_cmov(secp256k1_scalar *r, const secp256k1_scalar *a, int flag);
101101

102+
/** Check invariants on a scalar (no-op unless VERIFY is enabled). */
103+
static void secp256k1_scalar_verify(const secp256k1_scalar *r);
104+
102105
#endif /* SECP256K1_SCALAR_H */

src/scalar_impl.h

+8
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ static int secp256k1_scalar_set_b32_seckey(secp256k1_scalar *r, const unsigned c
3333
return (!overflow) & (!secp256k1_scalar_is_zero(r));
3434
}
3535

36+
static void secp256k1_scalar_verify(const secp256k1_scalar *r) {
37+
#ifdef VERIFY
38+
VERIFY_CHECK(secp256k1_scalar_check_overflow(r) == 0);
39+
#endif
40+
41+
(void)r;
42+
}
43+
3644
#if defined(EXHAUSTIVE_TEST_ORDER)
3745
/* Begin of section generated by sage/gen_exhaustive_groups.sage. */
3846
# if EXHAUSTIVE_TEST_ORDER == 7

0 commit comments

Comments
 (0)