Two new Curve25519 implementations (generic "i31" code, and optimised code with MUL31).
This commit is contained in:
parent
3655193439
commit
89ea3b1876
6 changed files with 1211 additions and 12 deletions
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -687,40 +687,60 @@ test_speed_ec_inner(const char *name,
|
|||
static void
|
||||
test_speed_ec_p256_m15(void)
|
||||
{
|
||||
test_speed_ec_inner("EC m15 P-256",
|
||||
test_speed_ec_inner("EC p256_m15",
|
||||
&br_ec_p256_m15, &br_secp256r1);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_prime_i15(void)
|
||||
{
|
||||
test_speed_ec_inner("EC i15 P-256", &br_ec_prime_i15, &br_secp256r1);
|
||||
test_speed_ec_inner("EC i15 P-384", &br_ec_prime_i15, &br_secp384r1);
|
||||
test_speed_ec_inner("EC i15 P-521", &br_ec_prime_i15, &br_secp521r1);
|
||||
test_speed_ec_inner("EC prime_i15 P-256",
|
||||
&br_ec_prime_i15, &br_secp256r1);
|
||||
test_speed_ec_inner("EC prime_i15 P-384",
|
||||
&br_ec_prime_i15, &br_secp384r1);
|
||||
test_speed_ec_inner("EC prime_i15 P-521",
|
||||
&br_ec_prime_i15, &br_secp521r1);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_prime_i31(void)
|
||||
{
|
||||
test_speed_ec_inner("EC i31 P-256", &br_ec_prime_i31, &br_secp256r1);
|
||||
test_speed_ec_inner("EC i31 P-384", &br_ec_prime_i31, &br_secp384r1);
|
||||
test_speed_ec_inner("EC i31 P-521", &br_ec_prime_i31, &br_secp521r1);
|
||||
test_speed_ec_inner("EC prime_i31 P-256",
|
||||
&br_ec_prime_i31, &br_secp256r1);
|
||||
test_speed_ec_inner("EC prime_i31 P-384",
|
||||
&br_ec_prime_i31, &br_secp384r1);
|
||||
test_speed_ec_inner("EC prime_i31 P-521",
|
||||
&br_ec_prime_i31, &br_secp521r1);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_c25519_i15(void)
|
||||
{
|
||||
test_speed_ec_inner("EC i15 C25519",
|
||||
test_speed_ec_inner("EC c25519_i15",
|
||||
&br_ec_c25519_i15, &br_curve25519);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_c25519_i31(void)
|
||||
{
|
||||
test_speed_ec_inner("EC c25519_i31",
|
||||
&br_ec_c25519_i31, &br_curve25519);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_c25519_m15(void)
|
||||
{
|
||||
test_speed_ec_inner("EC m15 C25519",
|
||||
test_speed_ec_inner("EC c25519_m15",
|
||||
&br_ec_c25519_m15, &br_curve25519);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ec_c25519_m31(void)
|
||||
{
|
||||
test_speed_ec_inner("EC c25519_m31",
|
||||
&br_ec_c25519_m31, &br_curve25519);
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_ecdsa_inner(const char *name,
|
||||
const br_ec_impl *impl, const br_ec_curve_def *cd,
|
||||
|
|
@ -1259,11 +1279,13 @@ static const struct {
|
|||
STU(rsa_i15),
|
||||
STU(rsa_i31),
|
||||
STU(rsa_i32),
|
||||
STU(ec_p256_m15),
|
||||
STU(ec_prime_i15),
|
||||
STU(ec_prime_i31),
|
||||
STU(ec_p256_m15),
|
||||
STU(ec_c25519_i15),
|
||||
STU(ec_c25519_i31),
|
||||
STU(ec_c25519_m15),
|
||||
STU(ec_c25519_m31),
|
||||
STU(ecdsa_p256_m15),
|
||||
STU(ecdsa_i15),
|
||||
STU(ecdsa_i31),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue