Skip to content

Commit d5acc4f

Browse files
committed
Made m64 implementations of elliptic curves the default (when available).
1 parent f0ddbc3 commit d5acc4f

File tree

2 files changed

+37
-6
lines changed

2 files changed

+37
-6
lines changed

src/ec/ec_all_m31.c

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,14 @@ api_generator(int curve, size_t *len)
2929
{
3030
switch (curve) {
3131
case BR_EC_secp256r1:
32+
#if BR_INT128 || BR_UMUL128
33+
return br_ec_p256_m64.generator(curve, len);
34+
#else
3235
return br_ec_p256_m31.generator(curve, len);
36+
#endif
3337
case BR_EC_curve25519:
3438
#if BR_INT128 || BR_UMUL128
35-
return br_ec_c25519_m62.generator(curve, len);
39+
return br_ec_c25519_m64.generator(curve, len);
3640
#else
3741
return br_ec_c25519_m31.generator(curve, len);
3842
#endif
@@ -46,10 +50,14 @@ api_order(int curve, size_t *len)
4650
{
4751
switch (curve) {
4852
case BR_EC_secp256r1:
53+
#if BR_INT128 || BR_UMUL128
54+
return br_ec_p256_m64.order(curve, len);
55+
#else
4956
return br_ec_p256_m31.order(curve, len);
57+
#endif
5058
case BR_EC_curve25519:
5159
#if BR_INT128 || BR_UMUL128
52-
return br_ec_c25519_m62.order(curve, len);
60+
return br_ec_c25519_m64.order(curve, len);
5361
#else
5462
return br_ec_c25519_m31.order(curve, len);
5563
#endif
@@ -63,10 +71,14 @@ api_xoff(int curve, size_t *len)
6371
{
6472
switch (curve) {
6573
case BR_EC_secp256r1:
74+
#if BR_INT128 || BR_UMUL128
75+
return br_ec_p256_m64.xoff(curve, len);
76+
#else
6677
return br_ec_p256_m31.xoff(curve, len);
78+
#endif
6779
case BR_EC_curve25519:
6880
#if BR_INT128 || BR_UMUL128
69-
return br_ec_c25519_m62.xoff(curve, len);
81+
return br_ec_c25519_m64.xoff(curve, len);
7082
#else
7183
return br_ec_c25519_m31.xoff(curve, len);
7284
#endif
@@ -81,10 +93,14 @@ api_mul(unsigned char *G, size_t Glen,
8193
{
8294
switch (curve) {
8395
case BR_EC_secp256r1:
96+
#if BR_INT128 || BR_UMUL128
97+
return br_ec_p256_m64.mul(G, Glen, kb, kblen, curve);
98+
#else
8499
return br_ec_p256_m31.mul(G, Glen, kb, kblen, curve);
100+
#endif
85101
case BR_EC_curve25519:
86102
#if BR_INT128 || BR_UMUL128
87-
return br_ec_c25519_m62.mul(G, Glen, kb, kblen, curve);
103+
return br_ec_c25519_m64.mul(G, Glen, kb, kblen, curve);
88104
#else
89105
return br_ec_c25519_m31.mul(G, Glen, kb, kblen, curve);
90106
#endif
@@ -99,10 +115,14 @@ api_mulgen(unsigned char *R,
99115
{
100116
switch (curve) {
101117
case BR_EC_secp256r1:
118+
#if BR_INT128 || BR_UMUL128
119+
return br_ec_p256_m64.mulgen(R, x, xlen, curve);
120+
#else
102121
return br_ec_p256_m31.mulgen(R, x, xlen, curve);
122+
#endif
103123
case BR_EC_curve25519:
104124
#if BR_INT128 || BR_UMUL128
105-
return br_ec_c25519_m62.mulgen(R, x, xlen, curve);
125+
return br_ec_c25519_m64.mulgen(R, x, xlen, curve);
106126
#else
107127
return br_ec_c25519_m31.mulgen(R, x, xlen, curve);
108128
#endif
@@ -118,11 +138,16 @@ api_muladd(unsigned char *A, const unsigned char *B, size_t len,
118138
{
119139
switch (curve) {
120140
case BR_EC_secp256r1:
141+
#if BR_INT128 || BR_UMUL128
142+
return br_ec_p256_m64.muladd(A, B, len,
143+
x, xlen, y, ylen, curve);
144+
#else
121145
return br_ec_p256_m31.muladd(A, B, len,
122146
x, xlen, y, ylen, curve);
147+
#endif
123148
case BR_EC_curve25519:
124149
#if BR_INT128 || BR_UMUL128
125-
return br_ec_c25519_m62.muladd(A, B, len,
150+
return br_ec_c25519_m64.muladd(A, B, len,
126151
x, xlen, y, ylen, curve);
127152
#else
128153
return br_ec_c25519_m31.muladd(A, B, len,

tools/names.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,12 @@ static const struct {
519519
(const void *(*)(void))&br_rsa_i62_pkcs1_vrfy_get },
520520
{ "ec_c25519_m62", "m62",
521521
(const void *(*)(void))&br_ec_c25519_m62_get },
522+
{ "ec_c25519_m64", "m64",
523+
(const void *(*)(void))&br_ec_c25519_m64_get },
524+
{ "ec_p256_m62", "m62",
525+
(const void *(*)(void))&br_ec_p256_m62_get },
526+
{ "ec_p256_m64", "m64",
527+
(const void *(*)(void))&br_ec_p256_m64_get },
522528
{ 0, 0, 0, }
523529
};
524530

0 commit comments

Comments
 (0)