Add _fe_verify_magnitude (no-op unless VERIFY is enabled)
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
This commit is contained in:
parent
690b0fc05a
commit
4e9661fc42
@ -352,4 +352,7 @@ static int secp256k1_fe_is_square_var(const secp256k1_fe *a);
|
|||||||
/** Check invariants on a field element (no-op unless VERIFY is enabled). */
|
/** Check invariants on a field element (no-op unless VERIFY is enabled). */
|
||||||
static void secp256k1_fe_verify(const secp256k1_fe *a);
|
static void secp256k1_fe_verify(const secp256k1_fe *a);
|
||||||
|
|
||||||
|
/** Check that magnitude of a is at most m (no-op unless VERIFY is enabled). */
|
||||||
|
static void secp256k1_fe_verify_magnitude(const secp256k1_fe *a, int m);
|
||||||
|
|
||||||
#endif /* SECP256K1_FIELD_H */
|
#endif /* SECP256K1_FIELD_H */
|
||||||
|
@ -159,6 +159,7 @@ static int secp256k1_fe_sqrt(secp256k1_fe * SECP256K1_RESTRICT r, const secp256k
|
|||||||
|
|
||||||
#ifndef VERIFY
|
#ifndef VERIFY
|
||||||
static void secp256k1_fe_verify(const secp256k1_fe *a) { (void)a; }
|
static void secp256k1_fe_verify(const secp256k1_fe *a) { (void)a; }
|
||||||
|
static void secp256k1_fe_verify_magnitude(const secp256k1_fe *a, int m) { (void)a; (void)m; }
|
||||||
#else
|
#else
|
||||||
static void secp256k1_fe_impl_verify(const secp256k1_fe *a);
|
static void secp256k1_fe_impl_verify(const secp256k1_fe *a);
|
||||||
static void secp256k1_fe_verify(const secp256k1_fe *a) {
|
static void secp256k1_fe_verify(const secp256k1_fe *a) {
|
||||||
@ -172,6 +173,12 @@ static void secp256k1_fe_verify(const secp256k1_fe *a) {
|
|||||||
secp256k1_fe_impl_verify(a);
|
secp256k1_fe_impl_verify(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void secp256k1_fe_verify_magnitude(const secp256k1_fe *a, int m) {
|
||||||
|
VERIFY_CHECK(m >= 0);
|
||||||
|
VERIFY_CHECK(m <= 32);
|
||||||
|
VERIFY_CHECK(a->magnitude <= m);
|
||||||
|
}
|
||||||
|
|
||||||
static void secp256k1_fe_impl_normalize(secp256k1_fe *r);
|
static void secp256k1_fe_impl_normalize(secp256k1_fe *r);
|
||||||
SECP256K1_INLINE static void secp256k1_fe_normalize(secp256k1_fe *r) {
|
SECP256K1_INLINE static void secp256k1_fe_normalize(secp256k1_fe *r) {
|
||||||
secp256k1_fe_verify(r);
|
secp256k1_fe_verify(r);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user