Skip to content

Commit d4cf3f2

Browse files
committed
Introduce SECP256K1_B macro for curve b coefficient
1 parent ab8bbfe commit d4cf3f2

File tree

2 files changed

+6
-21
lines changed

2 files changed

+6
-21
lines changed

sage/gen_exhaustive_groups.sage

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ def output_generator(g, name):
7272
print(")")
7373

7474
def output_b(b):
75-
print("static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(")
76-
print(" 0x%08x, 0x%08x, 0x%08x, 0x%08x," % tuple((int(b) >> (32 * (7 - i))) & 0xffffffff for i in range(4)))
77-
print(" 0x%08x, 0x%08x, 0x%08x, 0x%08x" % tuple((int(b) >> (32 * (7 - i))) & 0xffffffff for i in range(4, 8)))
78-
print(");")
75+
print(f"# define SECP256K1_B {int(b)}")
7976

8077
print()
8178
print()
@@ -104,15 +101,13 @@ for f in sorted(gens.keys()):
104101
print(f"# {'if' if first else 'elif'} EXHAUSTIVE_TEST_ORDER == {f}")
105102
first = False
106103
print(f"static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_{f};")
107-
print("")
108104
output_b(b)
109105
print("# else")
110106
print("# error No known generator for the specified exhaustive test group order.")
111107
print("# endif")
112108
print("#else")
113109
print()
114110
print("static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G;")
115-
print("")
116111
output_b(7)
117112
print()
118113
print("#endif")

src/group_impl.h

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,33 +42,23 @@
4242
#if defined(EXHAUSTIVE_TEST_ORDER)
4343
# if EXHAUSTIVE_TEST_ORDER == 13
4444
static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_13;
45-
46-
static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
47-
0x00000000, 0x00000000, 0x00000000, 0x00000000,
48-
0x00000000, 0x00000000, 0x00000000, 0x00000002
49-
);
45+
# define SECP256K1_B 2
5046
# elif EXHAUSTIVE_TEST_ORDER == 199
5147
static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_199;
52-
53-
static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
54-
0x00000000, 0x00000000, 0x00000000, 0x00000000,
55-
0x00000000, 0x00000000, 0x00000000, 0x00000004
56-
);
48+
# define SECP256K1_B 4
5749
# else
5850
# error No known generator for the specified exhaustive test group order.
5951
# endif
6052
#else
6153

6254
static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G;
63-
64-
static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
65-
0x00000000, 0x00000000, 0x00000000, 0x00000000,
66-
0x00000000, 0x00000000, 0x00000000, 0x00000007
67-
);
55+
# define SECP256K1_B 7
6856

6957
#endif
7058
/* End of section generated by sage/gen_exhaustive_groups.size. */
7159

60+
static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(0, 0, 0, 0, 0, 0, 0, SECP256K1_B);
61+
7262
static void secp256k1_ge_set_gej_zinv(secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zi) {
7363
secp256k1_fe zi2;
7464
secp256k1_fe zi3;

0 commit comments

Comments
 (0)