X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=test%2Ftest_speed.c;h=eb1b9646f516536a0ff7d8d11e2a40c0493fd683;hp=f7c7b0bbbb50b04b5a430ddad799ea4a9bdc72d6;hb=4b6046412bf927d6424f20fc7ee495bb96dbd227;hpb=966078b3373a273f8417ede42ecab32a414dc109 diff --git a/test/test_speed.c b/test/test_speed.c index f7c7b0b..eb1b964 100644 --- a/test/test_speed.c +++ b/test/test_speed.c @@ -1038,6 +1038,32 @@ test_speed_ec_p256_m31(void) &br_ec_p256_m31, &br_secp256r1); } +static void +test_speed_ec_p256_m62(void) +{ + const br_ec_impl *ec; + + ec = br_ec_p256_m62_get(); + if (ec != NULL) { + test_speed_ec_inner("EC p256_m62", ec, &br_secp256r1); + } else { + printf("%-30s UNAVAILABLE\n", "EC p256_m62"); + } +} + +static void +test_speed_ec_p256_m64(void) +{ + const br_ec_impl *ec; + + ec = br_ec_p256_m64_get(); + if (ec != NULL) { + test_speed_ec_inner("EC p256_m64", ec, &br_secp256r1); + } else { + printf("%-30s UNAVAILABLE\n", "EC p256_m64"); + } +} + static void test_speed_ec_prime_i15(void) { @@ -1088,6 +1114,32 @@ test_speed_ec_c25519_m31(void) &br_ec_c25519_m31, &br_curve25519); } +static void +test_speed_ec_c25519_m62(void) +{ + const br_ec_impl *ec; + + ec = br_ec_c25519_m62_get(); + if (ec != NULL) { + test_speed_ec_inner("EC c25519_m62", ec, &br_curve25519); + } else { + printf("%-30s UNAVAILABLE\n", "EC c25519_m62"); + } +} + +static void +test_speed_ec_c25519_m64(void) +{ + const br_ec_impl *ec; + + ec = br_ec_c25519_m64_get(); + if (ec != NULL) { + test_speed_ec_inner("EC c25519_m64", ec, &br_curve25519); + } else { + printf("%-30s UNAVAILABLE\n", "EC c25519_m64"); + } +} + static void test_speed_ecdsa_inner(const char *name, const br_ec_impl *impl, const br_ec_curve_def *cd, @@ -1191,6 +1243,38 @@ test_speed_ecdsa_p256_m31(void) &br_ecdsa_i31_vrfy_asn1); } +static void +test_speed_ecdsa_p256_m62(void) +{ + const br_ec_impl *ec; + + ec = br_ec_p256_m62_get(); + if (ec != NULL) { + test_speed_ecdsa_inner("ECDSA m62 P-256", + ec, &br_secp256r1, + &br_ecdsa_i31_sign_asn1, + &br_ecdsa_i31_vrfy_asn1); + } else { + printf("%-30s UNAVAILABLE\n", "ECDSA m62 P-256"); + } +} + +static void +test_speed_ecdsa_p256_m64(void) +{ + const br_ec_impl *ec; + + ec = br_ec_p256_m64_get(); + if (ec != NULL) { + test_speed_ecdsa_inner("ECDSA m64 P-256", + ec, &br_secp256r1, + &br_ecdsa_i31_sign_asn1, + &br_ecdsa_i31_vrfy_asn1); + } else { + printf("%-30s UNAVAILABLE\n", "ECDSA m64 P-256"); + } +} + static void test_speed_ecdsa_i15(void) { @@ -1229,14 +1313,20 @@ static void test_speed_i31(void) { static const unsigned char bp[] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + /* A 521-bit prime integer (order of the P-521 curve). */ + 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84, - 0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51 + 0xFF, 0xFA, 0x51, 0x86, 0x87, 0x83, 0xBF, 0x2F, + 0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09, + 0xA5, 0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C, + 0x47, 0xAE, 0xBB, 0x6F, 0xB7, 0x1E, 0x91, 0x38, + 0x64, 0x09 }; unsigned char tmp[60 + sizeof bp]; - uint32_t p[10], x[10], y[10], z[10], uu[30], p0i; + uint32_t p[20], x[20], y[20], z[20], uu[60], p0i; int i; long num; @@ -1596,12 +1686,18 @@ 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_p256_m15), STU(ecdsa_p256_m31), + STU(ecdsa_p256_m62), + STU(ecdsa_p256_m64), STU(ecdsa_i15), STU(ecdsa_i31),