Loading apps/speed.c +28 −2 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ #define BUFSIZE (1024*16+1) #define MAX_MISALIGNMENT 63 #define ALGOR_NUM 30 #define ALGOR_NUM 31 #define SIZE_NUM 6 #define RSA_NUM 7 #define DSA_NUM 3 Loading Loading @@ -192,6 +192,7 @@ static int AES_cbc_256_encrypt_loop(void *args); static int AES_ige_192_encrypt_loop(void *args); static int AES_ige_256_encrypt_loop(void *args); static int CRYPTO_gcm128_aad_loop(void *args); static int RAND_bytes_loop(void *args); static int EVP_Update_loop(void *args); static int EVP_Update_loop_ccm(void *args); static int EVP_Digest_loop(void *args); Loading Loading @@ -226,7 +227,8 @@ static const char *names[ALGOR_NUM] = { "aes-128 cbc", "aes-192 cbc", "aes-256 cbc", "camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc", "evp", "sha256", "sha512", "whirlpool", "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash" "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash", "rand" }; static double results[ALGOR_NUM][SIZE_NUM]; Loading Loading @@ -397,6 +399,7 @@ const OPTIONS speed_options[] = { #define D_IGE_192_AES 27 #define D_IGE_256_AES 28 #define D_GHASH 29 #define D_RAND 30 static OPT_PAIR doit_choices[] = { #ifndef OPENSSL_NO_MD2 {"md2", D_MD2}, Loading Loading @@ -462,6 +465,7 @@ static OPT_PAIR doit_choices[] = { {"cast5", D_CBC_CAST}, #endif {"ghash", D_GHASH}, {"rand", D_RAND}, {NULL} }; Loading Loading @@ -835,6 +839,17 @@ static int CRYPTO_gcm128_aad_loop(void *args) return count; } static int RAND_bytes_loop(void *args) { loopargs_t *tempargs = *(loopargs_t **) args; unsigned char *buf = tempargs->buf; int count; for (count = 0; COND(c[D_RAND][testnum]); count++) RAND_bytes(buf, lengths[testnum]); return count; } static long save_count = 0; static int decrypt = 0; static int EVP_Update_loop(void *args) Loading Loading @@ -1698,6 +1713,7 @@ int speed_main(int argc, char **argv) c[D_IGE_192_AES][0] = count; c[D_IGE_256_AES][0] = count; c[D_GHASH][0] = count; c[D_RAND][0] = count; for (i = 1; i < SIZE_NUM; i++) { long l0, l1; Loading @@ -1716,6 +1732,7 @@ int speed_main(int argc, char **argv) c[D_SHA512][i] = c[D_SHA512][0] * 4 * l0 / l1; c[D_WHIRLPOOL][i] = c[D_WHIRLPOOL][0] * 4 * l0 / l1; c[D_GHASH][i] = c[D_GHASH][0] * 4 * l0 / l1; c[D_RAND][i] = c[D_RAND][0] * 4 * l0 / l1; l0 = (long)lengths[i - 1]; Loading Loading @@ -2296,6 +2313,15 @@ int speed_main(int argc, char **argv) } } #endif if (doit[D_RAND]) { for (testnum = 0; testnum < SIZE_NUM; testnum++) { print_message(names[D_RAND], c[D_RAND][testnum], lengths[testnum]); Time_F(START); count = run_benchmark(async_jobs, RAND_bytes_loop, loopargs); d = Time_F(STOP); print_result(D_RAND, testnum, count, d); } } if (doit[D_EVP]) { if (multiblock && evp_cipher) { Loading doc/man1/speed.pod +2 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,8 @@ B<openssl speed> This command is used to test the performance of cryptographic algorithms. To see the list of supported algorithms, use the I<list --digest-commands> or I<list --cipher-commands> command. or I<list --cipher-commands> command. The global CSPRNG is denoted by the I<rand> algorithm name. =head1 OPTIONS Loading Loading
apps/speed.c +28 −2 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ #define BUFSIZE (1024*16+1) #define MAX_MISALIGNMENT 63 #define ALGOR_NUM 30 #define ALGOR_NUM 31 #define SIZE_NUM 6 #define RSA_NUM 7 #define DSA_NUM 3 Loading Loading @@ -192,6 +192,7 @@ static int AES_cbc_256_encrypt_loop(void *args); static int AES_ige_192_encrypt_loop(void *args); static int AES_ige_256_encrypt_loop(void *args); static int CRYPTO_gcm128_aad_loop(void *args); static int RAND_bytes_loop(void *args); static int EVP_Update_loop(void *args); static int EVP_Update_loop_ccm(void *args); static int EVP_Digest_loop(void *args); Loading Loading @@ -226,7 +227,8 @@ static const char *names[ALGOR_NUM] = { "aes-128 cbc", "aes-192 cbc", "aes-256 cbc", "camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc", "evp", "sha256", "sha512", "whirlpool", "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash" "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash", "rand" }; static double results[ALGOR_NUM][SIZE_NUM]; Loading Loading @@ -397,6 +399,7 @@ const OPTIONS speed_options[] = { #define D_IGE_192_AES 27 #define D_IGE_256_AES 28 #define D_GHASH 29 #define D_RAND 30 static OPT_PAIR doit_choices[] = { #ifndef OPENSSL_NO_MD2 {"md2", D_MD2}, Loading Loading @@ -462,6 +465,7 @@ static OPT_PAIR doit_choices[] = { {"cast5", D_CBC_CAST}, #endif {"ghash", D_GHASH}, {"rand", D_RAND}, {NULL} }; Loading Loading @@ -835,6 +839,17 @@ static int CRYPTO_gcm128_aad_loop(void *args) return count; } static int RAND_bytes_loop(void *args) { loopargs_t *tempargs = *(loopargs_t **) args; unsigned char *buf = tempargs->buf; int count; for (count = 0; COND(c[D_RAND][testnum]); count++) RAND_bytes(buf, lengths[testnum]); return count; } static long save_count = 0; static int decrypt = 0; static int EVP_Update_loop(void *args) Loading Loading @@ -1698,6 +1713,7 @@ int speed_main(int argc, char **argv) c[D_IGE_192_AES][0] = count; c[D_IGE_256_AES][0] = count; c[D_GHASH][0] = count; c[D_RAND][0] = count; for (i = 1; i < SIZE_NUM; i++) { long l0, l1; Loading @@ -1716,6 +1732,7 @@ int speed_main(int argc, char **argv) c[D_SHA512][i] = c[D_SHA512][0] * 4 * l0 / l1; c[D_WHIRLPOOL][i] = c[D_WHIRLPOOL][0] * 4 * l0 / l1; c[D_GHASH][i] = c[D_GHASH][0] * 4 * l0 / l1; c[D_RAND][i] = c[D_RAND][0] * 4 * l0 / l1; l0 = (long)lengths[i - 1]; Loading Loading @@ -2296,6 +2313,15 @@ int speed_main(int argc, char **argv) } } #endif if (doit[D_RAND]) { for (testnum = 0; testnum < SIZE_NUM; testnum++) { print_message(names[D_RAND], c[D_RAND][testnum], lengths[testnum]); Time_F(START); count = run_benchmark(async_jobs, RAND_bytes_loop, loopargs); d = Time_F(STOP); print_result(D_RAND, testnum, count, d); } } if (doit[D_EVP]) { if (multiblock && evp_cipher) { Loading
doc/man1/speed.pod +2 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,8 @@ B<openssl speed> This command is used to test the performance of cryptographic algorithms. To see the list of supported algorithms, use the I<list --digest-commands> or I<list --cipher-commands> command. or I<list --cipher-commands> command. The global CSPRNG is denoted by the I<rand> algorithm name. =head1 OPTIONS Loading