Skip to content

Commit

Permalink
Create a SECP256K1_ECMULT_TABLE_VERIFY macro.
Browse files Browse the repository at this point in the history
  • Loading branch information
roconnor-blockstream committed Jan 19, 2022
1 parent a731200 commit b797a50
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions src/ecmult_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,13 @@ static void secp256k1_ecmult_odd_multiples_table(int n, secp256k1_ge *pre_a, sec
secp256k1_fe_mul(z, &ai.z, &d.z);
}

#define SECP256K1_ECMULT_TABLE_VERIFY(n,w) \
VERIFY_CHECK(((n) & 1) == 1); \
VERIFY_CHECK((n) >= -((1 << ((w)-1)) - 1)); \
VERIFY_CHECK((n) <= ((1 << ((w)-1)) - 1));

SECP256K1_INLINE static void secp256k1_ecmult_table_get_ge(secp256k1_ge *r, const secp256k1_ge *pre, int n, int w) {
VERIFY_CHECK((n & 1) == 1);
VERIFY_CHECK(n >= -((1 << (w-1)) - 1));
VERIFY_CHECK(n <= ((1 << (w-1)) - 1));
SECP256K1_ECMULT_TABLE_VERIFY(n,w)
if (n > 0) {
*r = pre[(n-1)/2];
} else {
Expand All @@ -127,9 +130,7 @@ SECP256K1_INLINE static void secp256k1_ecmult_table_get_ge(secp256k1_ge *r, cons
}

SECP256K1_INLINE static void secp256k1_ecmult_table_get_ge_lambda(secp256k1_ge *r, const secp256k1_ge *pre, const secp256k1_fe *x, int n, int w) {
VERIFY_CHECK((n & 1) == 1);
VERIFY_CHECK(n >= -((1 << (w-1)) - 1));
VERIFY_CHECK(n <= ((1 << (w-1)) - 1));
SECP256K1_ECMULT_TABLE_VERIFY(n,w)
if (n > 0) {
secp256k1_ge_set_xy(r, &x[(n-1)/2], &pre[(n-1)/2].y);
} else {
Expand All @@ -139,9 +140,7 @@ SECP256K1_INLINE static void secp256k1_ecmult_table_get_ge_lambda(secp256k1_ge *
}

SECP256K1_INLINE static void secp256k1_ecmult_table_get_ge_storage(secp256k1_ge *r, const secp256k1_ge_storage *pre, int n, int w) {
VERIFY_CHECK((n & 1) == 1);
VERIFY_CHECK(n >= -((1 << (w-1)) - 1));
VERIFY_CHECK(n <= ((1 << (w-1)) - 1));
SECP256K1_ECMULT_TABLE_VERIFY(n,w)
if (n > 0) {
secp256k1_ge_from_storage(r, &pre[(n-1)/2]);
} else {
Expand Down

0 comments on commit b797a50

Please sign in to comment.