Added new 64-bit implementations of Curve25519 and P-256.

This commit is contained in:
Thomas Pornin 2018-12-18 23:56:16 +01:00
parent b2a08e908d
commit f0ddbc32f0
9 changed files with 4538 additions and 0 deletions

View file

@ -8569,6 +8569,40 @@ test_EC_p256_m31(void)
(uint32_t)1 << BR_EC_secp256r1);
}
static void
test_EC_p256_m62(void)
{
const br_ec_impl *ec;
ec = br_ec_p256_m62_get();
if (ec != NULL) {
test_EC_KAT("EC_p256_m62", ec,
(uint32_t)1 << BR_EC_secp256r1);
test_EC_keygen("EC_p256_m62", ec,
(uint32_t)1 << BR_EC_secp256r1);
} else {
printf("Test EC_p256_m62: UNAVAILABLE\n");
printf("Test EC_p256_m62 keygen: UNAVAILABLE\n");
}
}
static void
test_EC_p256_m64(void)
{
const br_ec_impl *ec;
ec = br_ec_p256_m64_get();
if (ec != NULL) {
test_EC_KAT("EC_p256_m64", ec,
(uint32_t)1 << BR_EC_secp256r1);
test_EC_keygen("EC_p256_m64", ec,
(uint32_t)1 << BR_EC_secp256r1);
} else {
printf("Test EC_p256_m64: UNAVAILABLE\n");
printf("Test EC_p256_m64 keygen: UNAVAILABLE\n");
}
}
const struct {
const char *scalar_le;
const char *u_in;
@ -8714,6 +8748,22 @@ test_EC_c25519_m62(void)
}
}
static void
test_EC_c25519_m64(void)
{
const br_ec_impl *ec;
ec = br_ec_c25519_m64_get();
if (ec != NULL) {
test_EC_c25519("EC_c25519_m64", ec);
test_EC_keygen("EC_c25519_m64", ec,
(uint32_t)1 << BR_EC_curve25519);
} else {
printf("Test EC_c25519_m64: UNAVAILABLE\n");
printf("Test EC_c25519_m64 keygen: UNAVAILABLE\n");
}
}
static const unsigned char EC_P256_PUB_POINT[] = {
0x04, 0x60, 0xFE, 0xD4, 0xBA, 0x25, 0x5A, 0x9D,
0x31, 0xC9, 0x61, 0xEB, 0x74, 0xC6, 0x35, 0x6D,
@ -9381,11 +9431,14 @@ static const struct {
STU(EC_prime_i31),
STU(EC_p256_m15),
STU(EC_p256_m31),
STU(EC_p256_m62),
STU(EC_p256_m64),
STU(EC_c25519_i15),
STU(EC_c25519_i31),
STU(EC_c25519_m15),
STU(EC_c25519_m31),
STU(EC_c25519_m62),
STU(EC_c25519_m64),
STU(ECDSA_i15),
STU(ECDSA_i31),
STU(modpow_i31),