Two new Curve25519 implementations (generic "i31" code, and optimised code with MUL31).

This commit is contained in:
Thomas Pornin 2017-01-15 23:16:18 +01:00
parent 3655193439
commit 89ea3b1876
6 changed files with 1211 additions and 12 deletions

View file

@ -5004,12 +5004,24 @@ test_EC_c25519_i15(void)
test_EC_c25519("EC_c25519_i15", &br_ec_c25519_i15);
}
static void
test_EC_c25519_i31(void)
{
test_EC_c25519("EC_c25519_i31", &br_ec_c25519_i31);
}
static void
test_EC_c25519_m15(void)
{
test_EC_c25519("EC_c25519_m15", &br_ec_c25519_m15);
}
static void
test_EC_c25519_m31(void)
{
test_EC_c25519("EC_c25519_m31", &br_ec_c25519_m31);
}
static const unsigned char EC_P256_PUB_POINT[] = {
0x04, 0x60, 0xFE, 0xD4, 0xBA, 0x25, 0x5A, 0x9D,
0x31, 0xC9, 0x61, 0xEB, 0x74, 0xC6, 0x35, 0x6D,
@ -5555,9 +5567,10 @@ static const struct {
STU(EC_prime_i15),
STU(EC_prime_i31),
STU(EC_p256_m15),
/* STU(EC_prime_i32), */
STU(EC_c25519_i15),
STU(EC_c25519_i31),
STU(EC_c25519_m15),
STU(EC_c25519_m31),
STU(ECDSA_i15),
STU(ECDSA_i31),
{ 0, 0 }