Skip to content

Commit

Permalink
Introduce SECP256K1_B macro for curve b coefficient
Browse files Browse the repository at this point in the history
  • Loading branch information
sipa committed Jan 13, 2023
1 parent 4934aa7 commit ce60785
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 26 deletions.
7 changes: 1 addition & 6 deletions sage/gen_exhaustive_groups.sage
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,7 @@ def output_generator(g, name):
print(")")

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

print()
print("To be put in src/group_impl.h:")
Expand Down Expand Up @@ -128,7 +125,6 @@ for f in sorted(solutions.keys()):
first = False
print()
print(f"static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_{f};")
print("")
output_b(b)
print()
print("# else")
Expand All @@ -137,7 +133,6 @@ print("# endif")
print("#else")
print()
print("static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G;")
print("")
output_b(7)
print()
print("#endif")
Expand Down
26 changes: 6 additions & 20 deletions src/group_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,45 +49,31 @@
# if EXHAUSTIVE_TEST_ORDER == 7

static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_7;

static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000006
);
#define SECP256K1_B 6

# elif EXHAUSTIVE_TEST_ORDER == 13

static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_13;

static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000002
);
#define SECP256K1_B 2

# elif EXHAUSTIVE_TEST_ORDER == 199

static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G_ORDER_199;

static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000004
);
#define SECP256K1_B 4

# else
# error No known generator for the specified exhaustive test group order.
# endif
#else

static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_G;

static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000007
);
#define SECP256K1_B 7

#endif
/* End of section generated by sage/gen_exhaustive_groups.sage. */

static const secp256k1_fe secp256k1_fe_const_b = SECP256K1_FE_CONST(0, 0, 0, 0, 0, 0, 0, SECP256K1_B);

static void secp256k1_ge_set_gej_zinv(secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zi) {
secp256k1_fe zi2;
secp256k1_fe zi3;
Expand Down

0 comments on commit ce60785

Please sign in to comment.