7 #ifndef _SECP256K1_FIELD_IMPL_H_ 8 #define _SECP256K1_FIELD_IMPL_H_ 10 #if defined HAVE_CONFIG_H 16 #if defined(USE_FIELD_10X26) 18 #elif defined(USE_FIELD_5X52) 21 #error "Please select field implementation" 41 secp256k1_fe x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1;
74 for (j=0; j<11; j++) {
80 for (j=0; j<22; j++) {
86 for (j=0; j<44; j++) {
92 for (j=0; j<88; j++) {
98 for (j=0; j<44; j++) {
104 for (j=0; j<3; j++) {
112 for (j=0; j<23; j++) {
116 for (j=0; j<6; j++) {
130 secp256k1_fe x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1;
145 for (j=0; j<3; j++) {
151 for (j=0; j<3; j++) {
157 for (j=0; j<2; j++) {
163 for (j=0; j<11; j++) {
169 for (j=0; j<22; j++) {
175 for (j=0; j<44; j++) {
181 for (j=0; j<88; j++) {
187 for (j=0; j<44; j++) {
193 for (j=0; j<3; j++) {
201 for (j=0; j<23; j++) {
205 for (j=0; j<5; j++) {
209 for (j=0; j<3; j++) {
213 for (j=0; j<2; j++) {
220 #if defined(USE_FIELD_INV_BUILTIN) 222 #elif defined(USE_FIELD_INV_NUM) 225 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL,
226 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFEUL, 0xFFFFFC2EUL
229 static const unsigned char prime[32] = {
230 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
231 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
232 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
233 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFC,0x2F
252 #error "Please select field inverse implementation" #define VERIFY_CHECK(cond)
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_num_set_bin(secp256k1_num *r, const unsigned char *a, unsigned int alen)
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m)
static SECP256K1_INLINE int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b)
static void secp256k1_num_mod_inverse(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *m)
#define SECP256K1_FE_CONST(d7, d6, d5, d4, d3, d2, d1, d0)
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a)
static int secp256k1_fe_sqrt_var(secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a)
static int secp256k1_fe_set_b32(secp256k1_fe *r, const unsigned char *a)
static void secp256k1_fe_inv_all_var(size_t len, secp256k1_fe *r, const secp256k1_fe *a)
static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a)
static void secp256k1_num_get_bin(unsigned char *r, unsigned int rlen, const secp256k1_num *a)
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r)