forked from wolfSSL/wolfssl
Fix for SHA3 benchmark digest size for 224. Fix for building track and debug memory together. Fix for hash test order of SHA256 wrong. Fix for asn SkipObjectId missing, when RSA and ECC disabled. Enhancement to allow individual bench calls with bench init/free.
This commit is contained in:
@@ -177,10 +177,8 @@
|
||||
#include <wolfssl/certs_test.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_BLAKE2
|
||||
#include <wolfssl/wolfcrypt/blake2.h>
|
||||
void bench_blake2(void);
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
@@ -190,62 +188,6 @@
|
||||
|
||||
#include "wolfcrypt/benchmark/benchmark.h"
|
||||
|
||||
void bench_des(int);
|
||||
void bench_idea(void);
|
||||
void bench_arc4(int);
|
||||
void bench_hc128(void);
|
||||
void bench_rabbit(void);
|
||||
void bench_chacha(void);
|
||||
void bench_chacha20_poly1305_aead(void);
|
||||
void bench_aescbc(int);
|
||||
void bench_aesgcm(int);
|
||||
void bench_aesccm(void);
|
||||
void bench_aesctr(void);
|
||||
void bench_poly1305(void);
|
||||
void bench_camellia(void);
|
||||
|
||||
void bench_md5(int);
|
||||
void bench_sha(int);
|
||||
void bench_sha224(int);
|
||||
void bench_sha256(int);
|
||||
void bench_sha384(int);
|
||||
void bench_sha512(int);
|
||||
void bench_sha3_224(int);
|
||||
void bench_sha3_256(int);
|
||||
void bench_sha3_384(int);
|
||||
void bench_sha3_512(int);
|
||||
int bench_ripemd(void);
|
||||
void bench_cmac(void);
|
||||
void bench_scrypt(void);
|
||||
|
||||
void bench_rsaKeyGen(int);
|
||||
void bench_rsa(int);
|
||||
void bench_dh(int);
|
||||
#ifdef HAVE_ECC
|
||||
void bench_eccMakeKey(int);
|
||||
void bench_ecc(int);
|
||||
#ifdef HAVE_ECC_ENCRYPT
|
||||
void bench_eccEncrypt(void);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_CURVE25519
|
||||
void bench_curve25519KeyGen(void);
|
||||
#ifdef HAVE_CURVE25519_SHARED_SECRET
|
||||
void bench_curve25519KeyAgree(void);
|
||||
#endif /* HAVE_CURVE25519_SHARED_SECRET */
|
||||
#endif /* HAVE_CURVE25519 */
|
||||
#ifdef HAVE_ED25519
|
||||
void bench_ed25519KeyGen(void);
|
||||
void bench_ed25519KeySign(void);
|
||||
#endif
|
||||
#ifdef HAVE_NTRU
|
||||
void bench_ntru(void);
|
||||
void bench_ntruKeyGen(void);
|
||||
#endif
|
||||
#ifndef WC_NO_RNG
|
||||
void bench_rng(void);
|
||||
#endif /* WC_NO_RNG */
|
||||
|
||||
#ifdef WOLFSSL_CURRTIME_REMAP
|
||||
#define current_time WOLFSSL_CURRTIME_REMAP
|
||||
#elif !defined(HAVE_STACK_SIZE)
|
||||
@@ -954,13 +896,7 @@ static void* benchmarks_do(void* args)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* so embedded projects can pull in tests on their own */
|
||||
#ifdef HAVE_STACK_SIZE
|
||||
THREAD_RETURN WOLFSSL_THREAD benchmark_test(void* args)
|
||||
#else
|
||||
int benchmark_test(void *args)
|
||||
#endif
|
||||
int benchmark_init(void)
|
||||
{
|
||||
int ret = 0;
|
||||
int block_size;
|
||||
@@ -970,12 +906,9 @@ int benchmark_test(void *args)
|
||||
WOLFMEM_GENERAL, 1);
|
||||
if (ret != 0) {
|
||||
printf("unable to load static memory %d\n", ret);
|
||||
EXIT_TEST(EXIT_FAILURE);
|
||||
}
|
||||
#endif /* WOLFSSL_STATIC_MEMORY */
|
||||
|
||||
(void)args;
|
||||
|
||||
wolfCrypt_Init();
|
||||
|
||||
bench_stats_init();
|
||||
@@ -991,7 +924,6 @@ int benchmark_test(void *args)
|
||||
ret = wc_InitNetRandom(wnrConfigFile, NULL, 5000);
|
||||
if (ret != 0) {
|
||||
printf("Whitewood netRandom config init failed %d\n", ret);
|
||||
EXIT_TEST(EXIT_FAILURE);
|
||||
}
|
||||
#endif /* HAVE_WNR */
|
||||
|
||||
@@ -1005,7 +937,7 @@ int benchmark_test(void *args)
|
||||
bench_cipher = (byte*)XMALLOC(block_size, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
if (bench_plain == NULL || bench_cipher == NULL) {
|
||||
printf("Benchmark block buffer alloc failed!\n");
|
||||
EXIT_TEST(EXIT_FAILURE);
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
XMEMSET(bench_plain, 0, block_size);
|
||||
XMEMSET(bench_cipher, 0, block_size);
|
||||
@@ -1015,7 +947,7 @@ int benchmark_test(void *args)
|
||||
bench_iv = (byte*)XMALLOC(sizeof(bench_iv_buf), HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
if (bench_key == NULL || bench_iv == NULL) {
|
||||
printf("Benchmark cipher buffer alloc failed!\n");
|
||||
EXIT_TEST(EXIT_FAILURE);
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
XMEMCPY(bench_key, bench_key_buf, sizeof(bench_key_buf));
|
||||
XMEMCPY(bench_iv, bench_iv_buf, sizeof(bench_iv_buf));
|
||||
@@ -1023,6 +955,50 @@ int benchmark_test(void *args)
|
||||
(void)bench_key;
|
||||
(void)bench_iv;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int benchmark_free(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
XFREE(bench_plain, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
XFREE(bench_cipher, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
#ifdef WOLFSSL_ASYNC_CRYPT
|
||||
XFREE(bench_key, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
XFREE(bench_iv, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WNR
|
||||
ret = wc_FreeNetRandom();
|
||||
if (ret < 0) {
|
||||
printf("Failed to free netRandom context %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
bench_stats_free();
|
||||
|
||||
if ((ret = wolfCrypt_Cleanup()) != 0) {
|
||||
printf("error %d with wolfCrypt_Cleanup\n", ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* so embedded projects can pull in tests on their own */
|
||||
#ifdef HAVE_STACK_SIZE
|
||||
THREAD_RETURN WOLFSSL_THREAD benchmark_test(void* args)
|
||||
#else
|
||||
int benchmark_test(void *args)
|
||||
#endif
|
||||
{
|
||||
int ret;
|
||||
|
||||
(void)args;
|
||||
|
||||
ret = benchmark_init();
|
||||
if (ret != 0)
|
||||
EXIT_TEST(ret);
|
||||
|
||||
#if defined(WOLFSSL_ASYNC_CRYPT) && !defined(WC_NO_ASYNC_THREADING)
|
||||
{
|
||||
@@ -1060,26 +1036,7 @@ int benchmark_test(void *args)
|
||||
benchmarks_do(NULL);
|
||||
#endif
|
||||
|
||||
XFREE(bench_plain, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
XFREE(bench_cipher, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
#ifdef WOLFSSL_ASYNC_CRYPT
|
||||
XFREE(bench_key, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
XFREE(bench_iv, HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WNR
|
||||
ret = wc_FreeNetRandom();
|
||||
if (ret < 0) {
|
||||
printf("Failed to free netRandom context %d\n", ret);
|
||||
EXIT_TEST(EXIT_FAILURE);
|
||||
}
|
||||
#endif
|
||||
|
||||
bench_stats_free();
|
||||
|
||||
if (wolfCrypt_Cleanup() != 0) {
|
||||
printf("error with wolfCrypt_Cleanup\n");
|
||||
}
|
||||
ret = benchmark_free();
|
||||
|
||||
EXIT_TEST(ret);
|
||||
}
|
||||
@@ -2136,7 +2093,7 @@ void bench_sha3_224(int doAsync)
|
||||
Sha3 hash[BENCH_MAX_PENDING];
|
||||
double start;
|
||||
int ret, i, count = 0, times;
|
||||
DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, SHA224_DIGEST_SIZE, HEAP_HINT);
|
||||
DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, SHA3_224_DIGEST_SIZE, HEAP_HINT);
|
||||
|
||||
bench_async_begin();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user