Abstract out verify logic for fe_add_int
This commit is contained in:
parent
89e324c6b9
commit
4371f98346
@ -99,6 +99,7 @@ static const secp256k1_fe secp256k1_const_beta = SECP256K1_FE_CONST(
|
|||||||
# define secp256k1_fe_inv_var secp256k1_fe_impl_inv_var
|
# define secp256k1_fe_inv_var secp256k1_fe_impl_inv_var
|
||||||
# define secp256k1_fe_get_bounds secp256k1_fe_impl_get_bounds
|
# define secp256k1_fe_get_bounds secp256k1_fe_impl_get_bounds
|
||||||
# define secp256k1_fe_half secp256k1_fe_impl_half
|
# define secp256k1_fe_half secp256k1_fe_impl_half
|
||||||
|
# define secp256k1_fe_add_int secp256k1_fe_impl_add_int
|
||||||
#endif /* !defined(VERIFY) */
|
#endif /* !defined(VERIFY) */
|
||||||
|
|
||||||
/** Normalize a field element.
|
/** Normalize a field element.
|
||||||
@ -213,7 +214,11 @@ static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a);
|
|||||||
*/
|
*/
|
||||||
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
|
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
|
||||||
|
|
||||||
/** Adds a small integer (up to 0x7FFF) to r. The resulting magnitude increases by one. */
|
/** Add a small integer to a field element.
|
||||||
|
*
|
||||||
|
* Performs {r += a}. The magnitude of r increases by 1, and normalized is cleared.
|
||||||
|
* a must be in range [0,0xFFFF].
|
||||||
|
*/
|
||||||
static void secp256k1_fe_add_int(secp256k1_fe *r, int a);
|
static void secp256k1_fe_add_int(secp256k1_fe *r, int a);
|
||||||
|
|
||||||
/** Multiply a field element with a small integer.
|
/** Multiply a field element with a small integer.
|
||||||
|
@ -389,16 +389,8 @@ SECP256K1_INLINE static void secp256k1_fe_impl_add(secp256k1_fe *r, const secp25
|
|||||||
r->n[9] += a->n[9];
|
r->n[9] += a->n[9];
|
||||||
}
|
}
|
||||||
|
|
||||||
SECP256K1_INLINE static void secp256k1_fe_add_int(secp256k1_fe *r, int a) {
|
SECP256K1_INLINE static void secp256k1_fe_impl_add_int(secp256k1_fe *r, int a) {
|
||||||
secp256k1_fe_verify(r);
|
|
||||||
VERIFY_CHECK(a >= 0);
|
|
||||||
VERIFY_CHECK(a <= 0x7FFF);
|
|
||||||
r->n[0] += a;
|
r->n[0] += a;
|
||||||
#ifdef VERIFY
|
|
||||||
r->magnitude += 1;
|
|
||||||
r->normalized = 0;
|
|
||||||
secp256k1_fe_verify(r);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(USE_EXTERNAL_ASM)
|
#if defined(USE_EXTERNAL_ASM)
|
||||||
|
@ -334,16 +334,8 @@ SECP256K1_INLINE static void secp256k1_fe_impl_mul_int(secp256k1_fe *r, int a) {
|
|||||||
r->n[4] *= a;
|
r->n[4] *= a;
|
||||||
}
|
}
|
||||||
|
|
||||||
SECP256K1_INLINE static void secp256k1_fe_add_int(secp256k1_fe *r, int a) {
|
SECP256K1_INLINE static void secp256k1_fe_impl_add_int(secp256k1_fe *r, int a) {
|
||||||
secp256k1_fe_verify(r);
|
|
||||||
VERIFY_CHECK(a >= 0);
|
|
||||||
VERIFY_CHECK(a <= 0x7FFF);
|
|
||||||
r->n[0] += a;
|
r->n[0] += a;
|
||||||
#ifdef VERIFY
|
|
||||||
r->magnitude += 1;
|
|
||||||
r->normalized = 0;
|
|
||||||
secp256k1_fe_verify(r);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SECP256K1_INLINE static void secp256k1_fe_impl_add(secp256k1_fe *r, const secp256k1_fe *a) {
|
SECP256K1_INLINE static void secp256k1_fe_impl_add(secp256k1_fe *r, const secp256k1_fe *a) {
|
||||||
|
@ -220,6 +220,16 @@ SECP256K1_INLINE static void secp256k1_fe_set_int(secp256k1_fe *r, int a) {
|
|||||||
secp256k1_fe_verify(r);
|
secp256k1_fe_verify(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void secp256k1_fe_impl_add_int(secp256k1_fe *r, int a);
|
||||||
|
SECP256K1_INLINE static void secp256k1_fe_add_int(secp256k1_fe *r, int a) {
|
||||||
|
VERIFY_CHECK(0 <= a && a <= 0x7FFF);
|
||||||
|
secp256k1_fe_verify(r);
|
||||||
|
secp256k1_fe_impl_add_int(r, a);
|
||||||
|
r->magnitude += 1;
|
||||||
|
r->normalized = 0;
|
||||||
|
secp256k1_fe_verify(r);
|
||||||
|
}
|
||||||
|
|
||||||
static void secp256k1_fe_impl_clear(secp256k1_fe *a);
|
static void secp256k1_fe_impl_clear(secp256k1_fe *a);
|
||||||
SECP256K1_INLINE static void secp256k1_fe_clear(secp256k1_fe *a) {
|
SECP256K1_INLINE static void secp256k1_fe_clear(secp256k1_fe *a) {
|
||||||
a->magnitude = 0;
|
a->magnitude = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user