speed.c: add ghash benchmark [from HEAD].
This commit is contained in:
parent
2357ae17e7
commit
db896db5a7
28
apps/speed.c
28
apps/speed.c
@ -183,6 +183,7 @@
|
|||||||
#ifndef OPENSSL_NO_ECDH
|
#ifndef OPENSSL_NO_ECDH
|
||||||
#include <openssl/ecdh.h>
|
#include <openssl/ecdh.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
#ifdef OPENSSL_FIPS
|
#ifdef OPENSSL_FIPS
|
||||||
#define BF_set_key private_BF_set_key
|
#define BF_set_key private_BF_set_key
|
||||||
@ -227,7 +228,7 @@ 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);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ALGOR_NUM 29
|
#define ALGOR_NUM 30
|
||||||
#define SIZE_NUM 5
|
#define SIZE_NUM 5
|
||||||
#define RSA_NUM 4
|
#define RSA_NUM 4
|
||||||
#define DSA_NUM 3
|
#define DSA_NUM 3
|
||||||
@ -242,7 +243,7 @@ static const char *names[ALGOR_NUM]={
|
|||||||
"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"};
|
"aes-128 ige","aes-192 ige","aes-256 ige","ghash"};
|
||||||
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};
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
@ -482,6 +483,7 @@ int MAIN(int argc, char **argv)
|
|||||||
#define D_IGE_128_AES 26
|
#define D_IGE_128_AES 26
|
||||||
#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
|
||||||
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
|
||||||
@ -907,6 +909,10 @@ int MAIN(int argc, char **argv)
|
|||||||
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)
|
||||||
|
{
|
||||||
|
doit[D_GHASH]=1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_CAMELLIA
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
@ -1277,6 +1283,7 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_IGE_128_AES][0]=count;
|
c[D_IGE_128_AES][0]=count;
|
||||||
c[D_IGE_192_AES][0]=count;
|
c[D_IGE_192_AES][0]=count;
|
||||||
c[D_IGE_256_AES][0]=count;
|
c[D_IGE_256_AES][0]=count;
|
||||||
|
c[D_GHASH][0]=count;
|
||||||
|
|
||||||
for (i=1; i<SIZE_NUM; i++)
|
for (i=1; i<SIZE_NUM; i++)
|
||||||
{
|
{
|
||||||
@ -1471,7 +1478,7 @@ int MAIN(int argc, char **argv)
|
|||||||
# error "You cannot disable DES on systems without SIGALRM."
|
# error "You cannot disable DES on systems without SIGALRM."
|
||||||
#endif /* OPENSSL_NO_DES */
|
#endif /* OPENSSL_NO_DES */
|
||||||
#else
|
#else
|
||||||
#define COND(c) (run)
|
#define COND(c) (run && count<0x7fffffff)
|
||||||
#define COUNT(d) (count)
|
#define COUNT(d) (count)
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
signal(SIGALRM,sig_done);
|
signal(SIGALRM,sig_done);
|
||||||
@ -1767,7 +1774,22 @@ int MAIN(int argc, char **argv)
|
|||||||
print_result(D_IGE_256_AES,j,count,d);
|
print_result(D_IGE_256_AES,j,count,d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (doit[D_GHASH])
|
||||||
|
{
|
||||||
|
GCM128_CONTEXT *ctx = CRYPTO_gcm128_new(&aes_ks1,(block128_f)AES_encrypt);
|
||||||
|
CRYPTO_gcm128_setiv (ctx,(unsigned char *)"0123456789ab",12);
|
||||||
|
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_GHASH],c[D_GHASH][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_GHASH][j]); count++)
|
||||||
|
CRYPTO_gcm128_aad(ctx,buf,lengths[j]);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_GHASH,j,count,d);
|
||||||
|
}
|
||||||
|
CRYPTO_gcm128_release(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_CAMELLIA
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
Loading…
x
Reference in New Issue
Block a user