7 #ifndef SECP256K1_SCALAR_IMPL_H
8 #define SECP256K1_SCALAR_IMPL_H
17 #if defined HAVE_CONFIG_H
21 #if defined(EXHAUSTIVE_TEST_ORDER)
23 #elif defined(SECP256K1_WIDEMUL_INT128)
25 #elif defined(SECP256K1_WIDEMUL_INT64)
28 #error "Please select wide multiplication implementation"
41 #if defined(EXHAUSTIVE_TEST_ORDER)
42 # if EXHAUSTIVE_TEST_ORDER == 13
43 # define EXHAUSTIVE_TEST_LAMBDA 9
44 # elif EXHAUSTIVE_TEST_ORDER == 199
45 # define EXHAUSTIVE_TEST_LAMBDA 92
47 # error No known lambda for the specified exhaustive test group order.
65 0x5363AD4CUL, 0xC05C30E0UL, 0xA5261C02UL, 0x8812645AUL,
66 0x122E22EAUL, 0x20816678UL, 0xDF02967CUL, 0x1B23BD72UL
126 0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
127 0xE4437ED6UL, 0x010E8828UL, 0x6F547FA9UL, 0x0ABFE4C3UL
130 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFEUL,
131 0x8A280AC5UL, 0x0774346DUL, 0xD765CDA8UL, 0x3DB1562CUL
134 0x3086D221UL, 0xA7D46BCDUL, 0xE86C90E4UL, 0x9284EB15UL,
135 0x3DAA8A14UL, 0x71E8CA7FUL, 0xE893209AUL, 0x45DBB031UL
138 0xE4437ED6UL, 0x010E8828UL, 0x6F547FA9UL, 0x0ABFE4C4UL,
139 0x221208ACUL, 0x9DF506C6UL, 0x1571B4AEUL, 0x8AC47F71UL
154 secp256k1_scalar_split_lambda_verify(r1, r2,
k);
265 unsigned char buf1[32];
266 unsigned char buf2[32];
269 static const unsigned char k1_bound[32] = {
270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
271 0xa2, 0xa8, 0x91, 0x8c, 0xa8, 0x5b, 0xaf, 0xe2, 0x20, 0x16, 0xd0, 0xb9, 0x17, 0xe4, 0xdd, 0x77
275 static const unsigned char k2_bound[32] = {
276 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
277 0x8a, 0x65, 0x28, 0x7b, 0xd4, 0x71, 0x79, 0xfb, 0x2b, 0xe0, 0x88, 0x46, 0xce, 0xa2, 0x67, 0xed