version 1.12, 2015/09/11 20:55:59 |
version 1.13, 2015/09/12 15:49:53 |
|
|
#include "./testdsa.h" |
#include "./testdsa.h" |
#include "./testrsa.h" |
#include "./testrsa.h" |
|
|
#define BUFSIZE (1024*8+1) |
#define BUFSIZE (1024*8+64) |
int run = 0; |
int run = 0; |
|
|
static int mr = 0; |
static int mr = 0; |
|
|
static void print_result(int alg, int run_no, int count, double time_used); |
static void print_result(int alg, int run_no, int count, double time_used); |
static int do_multi(int multi); |
static int do_multi(int multi); |
|
|
#define ALGOR_NUM 30 |
#define ALGOR_NUM 33 |
#define SIZE_NUM 5 |
#define SIZE_NUM 5 |
#define RSA_NUM 4 |
#define RSA_NUM 4 |
#define DSA_NUM 3 |
#define DSA_NUM 3 |
|
|
"aes-128 cbc", "aes-192 cbc", "aes-256 cbc", |
"aes-128 cbc", "aes-192 cbc", "aes-256 cbc", |
"camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc", |
"camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc", |
"evp", "sha256", "sha512", "whirlpool", |
"evp", "sha256", "sha512", "whirlpool", |
"aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash" }; |
"aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash", |
|
"aes-128 gcm", "aes-256 gcm", "chacha20 poly1305", |
|
}; |
static double results[ALGOR_NUM][SIZE_NUM]; |
static double results[ALGOR_NUM][SIZE_NUM]; |
static int lengths[SIZE_NUM] = {16, 64, 256, 1024, 8 * 1024}; |
static int lengths[SIZE_NUM] = {16, 64, 256, 1024, 8 * 1024}; |
static double rsa_results[RSA_NUM][2]; |
static double rsa_results[RSA_NUM][2]; |
|
|
#define D_IGE_192_AES 27 |
#define D_IGE_192_AES 27 |
#define D_IGE_256_AES 28 |
#define D_IGE_256_AES 28 |
#define D_GHASH 29 |
#define D_GHASH 29 |
|
#define D_AES_128_GCM 30 |
|
#define D_AES_256_GCM 31 |
|
#define D_CHACHA20_POLY1305 32 |
double d = 0.0; |
double d = 0.0; |
long c[ALGOR_NUM][SIZE_NUM]; |
long c[ALGOR_NUM][SIZE_NUM]; |
#define R_DSA_512 0 |
#define R_DSA_512 0 |
|
|
doit[D_CBC_128_AES] = 1; |
doit[D_CBC_128_AES] = 1; |
doit[D_CBC_192_AES] = 1; |
doit[D_CBC_192_AES] = 1; |
doit[D_CBC_256_AES] = 1; |
doit[D_CBC_256_AES] = 1; |
} else if (strcmp(*argv, "ghash") == 0) { |
} else if (strcmp(*argv, "ghash") == 0) |
doit[D_GHASH] = 1; |
doit[D_GHASH] = 1; |
} else |
else if (strcmp(*argv,"aes-128-gcm") == 0) |
|
doit[D_AES_128_GCM]=1; |
|
else if (strcmp(*argv,"aes-256-gcm") == 0) |
|
doit[D_AES_256_GCM]=1; |
|
else |
#endif |
#endif |
#ifndef OPENSSL_NO_CAMELLIA |
#ifndef OPENSSL_NO_CAMELLIA |
if (strcmp(*argv, "camellia") == 0) { |
if (strcmp(*argv, "camellia") == 0) { |
|
|
doit[D_CBC_256_CML] = 1; |
doit[D_CBC_256_CML] = 1; |
} else |
} else |
#endif |
#endif |
|
#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) |
|
if (strcmp(*argv,"chacha20-poly1305") == 0) |
|
doit[D_CHACHA20_POLY1305]=1; |
|
else |
|
#endif |
if (strcmp(*argv, "rsa") == 0) { |
if (strcmp(*argv, "rsa") == 0) { |
rsa_doit[R_RSA_512] = 1; |
rsa_doit[R_RSA_512] = 1; |
rsa_doit[R_RSA_1024] = 1; |
rsa_doit[R_RSA_1024] = 1; |
|
|
BIO_printf(bio_err, "rc2-cbc "); |
BIO_printf(bio_err, "rc2-cbc "); |
#endif |
#endif |
#ifndef OPENSSL_NO_BF |
#ifndef OPENSSL_NO_BF |
BIO_printf(bio_err, "bf-cbc"); |
BIO_printf(bio_err, "bf-cbc "); |
#endif |
#endif |
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_SEED) || !defined(OPENSSL_NO_RC2) || \ |
|
!defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_RC5) |
|
BIO_printf(bio_err, "\n"); |
|
#endif |
|
#ifndef OPENSSL_NO_DES |
#ifndef OPENSSL_NO_DES |
BIO_printf(bio_err, "des-cbc des-ede3 "); |
BIO_printf(bio_err, "des-cbc des-ede3\n"); |
#endif |
#endif |
#ifndef OPENSSL_NO_AES |
#ifndef OPENSSL_NO_AES |
BIO_printf(bio_err, "aes-128-cbc aes-192-cbc aes-256-cbc "); |
BIO_printf(bio_err, "aes-128-cbc aes-192-cbc aes-256-cbc "); |
BIO_printf(bio_err, "aes-128-ige aes-192-ige aes-256-ige "); |
BIO_printf(bio_err, "aes-128-ige aes-192-ige aes-256-ige\n"); |
|
BIO_printf(bio_err, "aes-128-gcm aes-256-gcm "); |
#endif |
#endif |
#ifndef OPENSSL_NO_CAMELLIA |
#ifndef OPENSSL_NO_CAMELLIA |
BIO_printf(bio_err, "\n"); |
BIO_printf(bio_err, "\n"); |
|
|
#ifndef OPENSSL_NO_RC4 |
#ifndef OPENSSL_NO_RC4 |
BIO_printf(bio_err, "rc4"); |
BIO_printf(bio_err, "rc4"); |
#endif |
#endif |
|
#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) |
|
BIO_printf(bio_err," chacha20-poly1305"); |
|
#endif |
BIO_printf(bio_err, "\n"); |
BIO_printf(bio_err, "\n"); |
|
|
BIO_printf(bio_err, "rsa512 rsa1024 rsa2048 rsa4096\n"); |
BIO_printf(bio_err, "rsa512 rsa1024 rsa2048 rsa4096\n"); |
|
|
BIO_printf(bio_err, "dsa512 dsa1024 dsa2048\n"); |
BIO_printf(bio_err, "dsa512 dsa1024 dsa2048\n"); |
BIO_printf(bio_err, "ecdsap160 ecdsap192 ecdsap224 ecdsap256 ecdsap384 ecdsap521\n"); |
BIO_printf(bio_err, "ecdsap160 ecdsap192 ecdsap224 ecdsap256 ecdsap384 ecdsap521\n"); |
BIO_printf(bio_err, "ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n"); |
BIO_printf(bio_err, "ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n"); |
BIO_printf(bio_err, "ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571\n"); |
BIO_printf(bio_err, "ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571 ecdsa\n"); |
BIO_printf(bio_err, "ecdsa\n"); |
|
BIO_printf(bio_err, "ecdhp160 ecdhp192 ecdhp224 ecdhp256 ecdhp384 ecdhp521\n"); |
BIO_printf(bio_err, "ecdhp160 ecdhp192 ecdhp224 ecdhp256 ecdhp384 ecdhp521\n"); |
BIO_printf(bio_err, "ecdhk163 ecdhk233 ecdhk283 ecdhk409 ecdhk571\n"); |
BIO_printf(bio_err, "ecdhk163 ecdhk233 ecdhk283 ecdhk409 ecdhk571\n"); |
BIO_printf(bio_err, "ecdhb163 ecdhb233 ecdhb283 ecdhb409 ecdhb571\n"); |
BIO_printf(bio_err, "ecdhb163 ecdhb233 ecdhb283 ecdhb409 ecdhb571 ecdh\n"); |
BIO_printf(bio_err, "ecdh\n"); |
|
|
|
#ifndef OPENSSL_NO_IDEA |
#ifndef OPENSSL_NO_IDEA |
BIO_printf(bio_err, "idea "); |
BIO_printf(bio_err, "idea "); |
|
|
print_result(D_GHASH, j, count, d); |
print_result(D_GHASH, j, count, d); |
} |
} |
CRYPTO_gcm128_release(ctx); |
CRYPTO_gcm128_release(ctx); |
|
} |
|
if (doit[D_AES_128_GCM]) { |
|
const EVP_AEAD *aead = EVP_aead_aes_128_gcm(); |
|
static const unsigned char nonce[32] = {0}; |
|
size_t buf_len, nonce_len; |
|
EVP_AEAD_CTX ctx; |
|
|
|
EVP_AEAD_CTX_init(&ctx, aead, key32, EVP_AEAD_key_length(aead), |
|
EVP_AEAD_DEFAULT_TAG_LENGTH, NULL); |
|
nonce_len = EVP_AEAD_nonce_length(aead); |
|
|
|
for (j = 0; j < SIZE_NUM; j++) { |
|
print_message(names[D_AES_128_GCM],c[D_AES_128_GCM][j],lengths[j]); |
|
Time_F(START); |
|
for (count = 0, run = 1; COND(c[D_AES_128_GCM][j]); count++) |
|
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE, nonce, |
|
nonce_len, buf, lengths[j], NULL, 0); |
|
d=Time_F(STOP); |
|
print_result(D_AES_128_GCM,j,count,d); |
|
} |
|
EVP_AEAD_CTX_cleanup(&ctx); |
|
} |
|
|
|
if (doit[D_AES_256_GCM]) { |
|
const EVP_AEAD *aead = EVP_aead_aes_256_gcm(); |
|
static const unsigned char nonce[32] = {0}; |
|
size_t buf_len, nonce_len; |
|
EVP_AEAD_CTX ctx; |
|
|
|
EVP_AEAD_CTX_init(&ctx, aead, key32, EVP_AEAD_key_length(aead), |
|
EVP_AEAD_DEFAULT_TAG_LENGTH, NULL); |
|
nonce_len = EVP_AEAD_nonce_length(aead); |
|
|
|
for (j = 0; j < SIZE_NUM; j++) { |
|
print_message(names[D_AES_256_GCM],c[D_AES_256_GCM][j],lengths[j]); |
|
Time_F(START); |
|
for (count = 0, run = 1; COND(c[D_AES_256_GCM][j]); count++) |
|
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE, nonce, |
|
nonce_len, buf, lengths[j], NULL, 0); |
|
d=Time_F(STOP); |
|
print_result(D_AES_256_GCM, j, count, d); |
|
} |
|
EVP_AEAD_CTX_cleanup(&ctx); |
|
} |
|
#endif |
|
#if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) |
|
if (doit[D_CHACHA20_POLY1305]) { |
|
const EVP_AEAD *aead = EVP_aead_chacha20_poly1305(); |
|
static const unsigned char nonce[32] = {0}; |
|
size_t buf_len, nonce_len; |
|
EVP_AEAD_CTX ctx; |
|
|
|
EVP_AEAD_CTX_init(&ctx, aead, key32, EVP_AEAD_key_length(aead), |
|
EVP_AEAD_DEFAULT_TAG_LENGTH, NULL); |
|
nonce_len = EVP_AEAD_nonce_length(aead); |
|
|
|
for (j = 0; j < SIZE_NUM; j++) { |
|
print_message(names[D_CHACHA20_POLY1305], |
|
c[D_CHACHA20_POLY1305][j], lengths[j]); |
|
Time_F(START); |
|
for (count = 0, run = 1; COND(c[D_CHACHA20_POLY1305][j]); count++) |
|
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE, nonce, |
|
nonce_len, buf, lengths[j], NULL, 0); |
|
d=Time_F(STOP); |
|
print_result(D_CHACHA20_POLY1305, j, count, d); |
|
} |
|
EVP_AEAD_CTX_cleanup(&ctx); |
} |
} |
#endif |
#endif |
#ifndef OPENSSL_NO_CAMELLIA |
#ifndef OPENSSL_NO_CAMELLIA |