diff options
Diffstat (limited to 'src/tool/speed.cc')
-rw-r--r-- | src/tool/speed.cc | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/tool/speed.cc b/src/tool/speed.cc index ab17c2f..307b0b9 100644 --- a/src/tool/speed.cc +++ b/src/tool/speed.cc @@ -36,16 +36,9 @@ #endif #include "../crypto/test/scoped_types.h" +#include "internal.h" -extern "C" { -// These values are DER encoded, RSA private keys. -extern const uint8_t kDERRSAPrivate2048[]; -extern size_t kDERRSAPrivate2048Len; -extern const uint8_t kDERRSAPrivate4096[]; -extern size_t kDERRSAPrivate4096Len; -} - // TimeResults represents the results of benchmarking a function. struct TimeResults { // num_calls is the number of function calls done in the time period. @@ -414,9 +407,9 @@ bool Speed(const std::vector<std::string> &args) { selected = args[0]; } - RSA *key = NULL; - const uint8_t *inp = kDERRSAPrivate2048; - if (NULL == d2i_RSAPrivateKey(&key, &inp, kDERRSAPrivate2048Len)) { + RSA *key = RSA_private_key_from_bytes(kDERRSAPrivate2048, + kDERRSAPrivate2048Len); + if (key == NULL) { fprintf(stderr, "Failed to parse RSA key.\n"); ERR_print_errors_fp(stderr); return false; @@ -427,10 +420,22 @@ bool Speed(const std::vector<std::string> &args) { } RSA_free(key); - key = NULL; + key = RSA_private_key_from_bytes(kDERRSAPrivate3Prime2048, + kDERRSAPrivate3Prime2048Len); + if (key == NULL) { + fprintf(stderr, "Failed to parse RSA key.\n"); + ERR_print_errors_fp(stderr); + return false; + } - inp = kDERRSAPrivate4096; - if (NULL == d2i_RSAPrivateKey(&key, &inp, kDERRSAPrivate4096Len)) { + if (!SpeedRSA("RSA 2048 (3 prime, e=3)", key, selected)) { + return false; + } + + RSA_free(key); + key = RSA_private_key_from_bytes(kDERRSAPrivate4096, + kDERRSAPrivate4096Len); + if (key == NULL) { fprintf(stderr, "Failed to parse 4096-bit RSA key.\n"); ERR_print_errors_fp(stderr); return 1; |