7 #ifndef SECP256K1_SCALAR_REPR_IMPL_H 8 #define SECP256K1_SCALAR_REPR_IMPL_H 30 return secp256k1_scalar_get_bits(
a, offset,
count);
36 *r = (*
a + *b) % EXHAUSTIVE_TEST_ORDER;
40 static void secp256k1_scalar_cadd_bit(
secp256k1_scalar *r,
unsigned int bit,
int flag) {
51 static void secp256k1_scalar_set_b32(
secp256k1_scalar *r,
const unsigned char *b32,
int *overflow) {
55 for (i = 0; i < 32; i++) {
56 *r = (*r * 0x100) + b32[i];
57 if (*r >= EXHAUSTIVE_TEST_ORDER) {
59 *r %= EXHAUSTIVE_TEST_ORDER;
62 if (overflow) *overflow = over;
65 static void secp256k1_scalar_get_b32(
unsigned char *bin,
const secp256k1_scalar*
a) {
67 bin[28] = *
a >> 24; bin[29] = *
a >> 16; bin[30] = *
a >> 8; bin[31] = *
a;
78 *r = EXHAUSTIVE_TEST_ORDER - *
a;
87 return *
a > EXHAUSTIVE_TEST_ORDER / 2;
91 if (flag) secp256k1_scalar_negate(r, r);
96 *r = (*
a * *b) % EXHAUSTIVE_TEST_ORDER;
103 ret = *r & ((1 << n) - 1);
122 *r = (*r & mask0) | (*
a & mask1);
128 for (i = 0; i < EXHAUSTIVE_TEST_ORDER; i++)
129 if ((i * *x) % EXHAUSTIVE_TEST_ORDER == 1)
137 secp256k1_scalar_inverse(r, x);
#define VERIFY_CHECK(cond)
mdb_size_t count(MDB_cursor *cur)
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
#define SECP256K1_CHECKMEM_CHECK_VERIFY(p, len)