Made m64 implementations of elliptic curves the default (when available).
This commit is contained in:
parent
f0ddbc32f0
commit
d5acc4f590
2 changed files with 37 additions and 6 deletions
|
|
@ -29,10 +29,14 @@ api_generator(int curve, size_t *len)
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.generator(curve, len);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.generator(curve, len);
|
return br_ec_p256_m31.generator(curve, len);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.generator(curve, len);
|
return br_ec_c25519_m64.generator(curve, len);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.generator(curve, len);
|
return br_ec_c25519_m31.generator(curve, len);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -46,10 +50,14 @@ api_order(int curve, size_t *len)
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.order(curve, len);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.order(curve, len);
|
return br_ec_p256_m31.order(curve, len);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.order(curve, len);
|
return br_ec_c25519_m64.order(curve, len);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.order(curve, len);
|
return br_ec_c25519_m31.order(curve, len);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -63,10 +71,14 @@ api_xoff(int curve, size_t *len)
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.xoff(curve, len);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.xoff(curve, len);
|
return br_ec_p256_m31.xoff(curve, len);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.xoff(curve, len);
|
return br_ec_c25519_m64.xoff(curve, len);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.xoff(curve, len);
|
return br_ec_c25519_m31.xoff(curve, len);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -81,10 +93,14 @@ api_mul(unsigned char *G, size_t Glen,
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.mul(G, Glen, kb, kblen, curve);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.mul(G, Glen, kb, kblen, curve);
|
return br_ec_p256_m31.mul(G, Glen, kb, kblen, curve);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.mul(G, Glen, kb, kblen, curve);
|
return br_ec_c25519_m64.mul(G, Glen, kb, kblen, curve);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.mul(G, Glen, kb, kblen, curve);
|
return br_ec_c25519_m31.mul(G, Glen, kb, kblen, curve);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -99,10 +115,14 @@ api_mulgen(unsigned char *R,
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.mulgen(R, x, xlen, curve);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.mulgen(R, x, xlen, curve);
|
return br_ec_p256_m31.mulgen(R, x, xlen, curve);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.mulgen(R, x, xlen, curve);
|
return br_ec_c25519_m64.mulgen(R, x, xlen, curve);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.mulgen(R, x, xlen, curve);
|
return br_ec_c25519_m31.mulgen(R, x, xlen, curve);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -118,11 +138,16 @@ api_muladd(unsigned char *A, const unsigned char *B, size_t len,
|
||||||
{
|
{
|
||||||
switch (curve) {
|
switch (curve) {
|
||||||
case BR_EC_secp256r1:
|
case BR_EC_secp256r1:
|
||||||
|
#if BR_INT128 || BR_UMUL128
|
||||||
|
return br_ec_p256_m64.muladd(A, B, len,
|
||||||
|
x, xlen, y, ylen, curve);
|
||||||
|
#else
|
||||||
return br_ec_p256_m31.muladd(A, B, len,
|
return br_ec_p256_m31.muladd(A, B, len,
|
||||||
x, xlen, y, ylen, curve);
|
x, xlen, y, ylen, curve);
|
||||||
|
#endif
|
||||||
case BR_EC_curve25519:
|
case BR_EC_curve25519:
|
||||||
#if BR_INT128 || BR_UMUL128
|
#if BR_INT128 || BR_UMUL128
|
||||||
return br_ec_c25519_m62.muladd(A, B, len,
|
return br_ec_c25519_m64.muladd(A, B, len,
|
||||||
x, xlen, y, ylen, curve);
|
x, xlen, y, ylen, curve);
|
||||||
#else
|
#else
|
||||||
return br_ec_c25519_m31.muladd(A, B, len,
|
return br_ec_c25519_m31.muladd(A, B, len,
|
||||||
|
|
|
||||||
|
|
@ -519,6 +519,12 @@ static const struct {
|
||||||
(const void *(*)(void))&br_rsa_i62_pkcs1_vrfy_get },
|
(const void *(*)(void))&br_rsa_i62_pkcs1_vrfy_get },
|
||||||
{ "ec_c25519_m62", "m62",
|
{ "ec_c25519_m62", "m62",
|
||||||
(const void *(*)(void))&br_ec_c25519_m62_get },
|
(const void *(*)(void))&br_ec_c25519_m62_get },
|
||||||
|
{ "ec_c25519_m64", "m64",
|
||||||
|
(const void *(*)(void))&br_ec_c25519_m64_get },
|
||||||
|
{ "ec_p256_m62", "m62",
|
||||||
|
(const void *(*)(void))&br_ec_p256_m62_get },
|
||||||
|
{ "ec_p256_m64", "m64",
|
||||||
|
(const void *(*)(void))&br_ec_p256_m64_get },
|
||||||
{ 0, 0, 0, }
|
{ 0, 0, 0, }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue