7 #ifndef _SECP256K1_GROUP_IMPL_H_ 8 #define _SECP256K1_GROUP_IMPL_H_ 20 0x79BE667EUL, 0xF9DCBBACUL, 0x55A06295UL, 0xCE870B07UL,
21 0x029BFCDBUL, 0x2DCE28D9UL, 0x59F2815BUL, 0x16F81798UL,
22 0x483ADA77UL, 0x26A3C465UL, 0x5DA4FBFCUL, 0x0E1108A8UL,
23 0xFD17B448UL, 0xA6855419UL, 0x9C47D08FUL, 0xFB10D4B8UL
87 for (i = 0; i < len; i++) {
98 for (i = 0; i < len; i++) {
100 if (!a[i].infinity) {
303 secp256k1_fe z22, z12, u1, u2, s1, s2, h, i, i2, h2, h3, t;
356 secp256k1_fe z12, u1, u2, s1, s2, h, i, i2, h2, h3, t;
405 secp256k1_fe az, z12, u1, u2, s1, s2, h, i, i2, h2, h3, t;
463 secp256k1_fe zz, u1, u2, s1, s2, t, tt,
m,
n, q, rr;
465 int infinity, degenerate;
615 #ifdef USE_ENDOMORPHISM 618 0x7ae96a2bul, 0x657c0710ul, 0x6e64479eul, 0xac3434e9ul,
619 0x9cf04975ul, 0x12f58995ul, 0xc1396c28ul, 0x719501eeul
#define VERIFY_CHECK(cond)
static SECP256K1_INLINE void secp256k1_fe_clear(secp256k1_fe *a)
static int secp256k1_fe_is_zero(const secp256k1_fe *a)
static void secp256k1_fe_mul(secp256k1_fe *r, const secp256k1_fe *a, const secp256k1_fe *SECP256K1_RESTRICT b)
static void secp256k1_fe_normalize_var(secp256k1_fe *r)
static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *s)
static void secp256k1_ge_set_gej_var(secp256k1_ge *r, secp256k1_gej *a)
static void secp256k1_ge_neg(secp256k1_ge *r, const secp256k1_ge *a)
static void secp256k1_gej_double_var(secp256k1_gej *r, const secp256k1_gej *a, secp256k1_fe *rzr)
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m)
static void secp256k1_fe_from_storage(secp256k1_fe *r, const secp256k1_fe_storage *a)
static SECP256K1_INLINE void secp256k1_gej_double_nonzero(secp256k1_gej *r, const secp256k1_gej *a, secp256k1_fe *rzr)
static void secp256k1_gej_add_ge_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_ge *b, secp256k1_fe *rzr)
static void secp256k1_gej_clear(secp256k1_gej *r)
static void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const secp256k1_fe_storage *a, int flag)
static void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag)
static int secp256k1_ge_set_xquad_var(secp256k1_ge *r, const secp256k1_fe *x)
static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a)
static void secp256k1_fe_set_int(secp256k1_fe *r, int a)
static void secp256k1_ge_set_table_gej_var(size_t len, secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zr)
static void secp256k1_fe_to_storage(secp256k1_fe_storage *r, const secp256k1_fe *a)
#define SECP256K1_FE_CONST(d7, d6, d5, d4, d3, d2, d1, d0)
static int secp256k1_gej_is_valid_var(const secp256k1_gej *a)
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_mul_int(secp256k1_fe *r, int a)
static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_ge *b)
static int secp256k1_ge_is_infinity(const secp256k1_ge *a)
static int secp256k1_fe_is_odd(const secp256k1_fe *a)
static void secp256k1_gej_set_ge(secp256k1_gej *r, const secp256k1_ge *a)
static int secp256k1_gej_eq_x_var(const secp256k1_fe *x, const secp256k1_gej *a)
static const secp256k1_ge secp256k1_ge_const_g
static void secp256k1_ge_from_storage(secp256k1_ge *r, const secp256k1_ge_storage *a)
static void secp256k1_ge_set_xy(secp256k1_ge *r, const secp256k1_fe *x, const secp256k1_fe *y)
static void secp256k1_gej_set_infinity(secp256k1_gej *r)
static void secp256k1_gej_neg(secp256k1_gej *r, const secp256k1_gej *a)
static void secp256k1_ge_set_all_gej_var(size_t len, secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_callback *cb)
static int secp256k1_fe_sqrt_var(secp256k1_fe *r, const secp256k1_fe *a)
static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *x, int odd)
static void secp256k1_fe_inv_all_var(size_t len, secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_normalize_weak(secp256k1_fe *r)
static int secp256k1_fe_normalizes_to_zero(secp256k1_fe *r)
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a)
#define SECP256K1_GE_CONST(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
static SECP256K1_INLINE void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const secp256k1_ge_storage *a, int flag)
static void secp256k1_gej_add_zinv_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_ge *b, const secp256k1_fe *bzinv)
static int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b)
static void secp256k1_ge_to_storage(secp256k1_ge_storage *r, const secp256k1_ge *a)
static int secp256k1_gej_is_infinity(const secp256k1_gej *a)
static void secp256k1_ge_set_gej_zinv(secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zi)
static void secp256k1_fe_normalize(secp256k1_fe *r)
static int secp256k1_ge_is_valid_var(const secp256k1_ge *a)
static void secp256k1_ge_globalz_set_table_gej(size_t len, secp256k1_ge *r, secp256k1_fe *globalz, const secp256k1_gej *a, const secp256k1_fe *zr)
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a)
static SECP256K1_INLINE void * checked_malloc(const secp256k1_callback *cb, size_t size)
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_gej_add_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_gej *b, secp256k1_fe *rzr)
static void secp256k1_ge_clear(secp256k1_ge *r)
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r)