diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c index b82e9c0b9..851e284ad 100644 --- a/wolfcrypt/benchmark/benchmark.c +++ b/wolfcrypt/benchmark/benchmark.c @@ -8435,13 +8435,12 @@ static const unsigned char rsa_3072_sig[] = { #endif #endif /* WOLFSSL_RSA_VERIFY_INLINE || WOLFSSL_RSA_PUBLIC_ONLY */ -#ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC -static void bench_rsa_helper(int useDeviceID, RsaKey *rsaKey[BENCH_MAX_PENDING], +static void bench_rsa_helper(int useDeviceID, + WC_ARRAY_ARG(rsaKey, + RsaKey, + BENCH_MAX_PENDING, + sizeof(RsaKey)), word32 rsaKeySz) -#else -static void bench_rsa_helper(int useDeviceID, RsaKey rsaKey[1][BENCH_MAX_PENDING], - word32 rsaKeySz) -#endif { int ret = 0, i, times, count = 0, pending = 0; word32 idx = 0; @@ -8791,7 +8790,7 @@ void bench_rsa(int useDeviceID) } if (rsaKeySz > 0) { - bench_rsa_helper(useDeviceID, &rsaKey[0], rsaKeySz); + bench_rsa_helper(useDeviceID, rsaKey, rsaKeySz); } (void)bytes; diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index a61fef3f0..383455e7f 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -36876,7 +36876,7 @@ static const byte xmss_pub[XMSS_SHA256_PUBLEN] = 0xC9,0xB7,0x39,0x4E }; -static const byte xmss_msg[32] = +static /* not const */ byte xmss_msg[32] = { 0x07,0x9F,0x80,0x86,0xDB,0x76,0x27,0xDF, 0xED,0x5B,0x2A,0x81,0x60,0x60,0x7D,0xB4, @@ -36886,7 +36886,7 @@ static const byte xmss_msg[32] = /* This was actually the 5th signature produced from * xmss_fast test in xmss-reference. */ -static const byte xmss_sig[2500] = +static /* not const */ byte xmss_sig[2500] = { 0x00,0x00,0x00,0x05,0xF0,0x15,0x34,0xBA, 0x92,0x03,0x6A,0xB9,0xA5,0x23,0x86,0x11, diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 856868480..692f11337 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -587,6 +587,8 @@ typedef struct w64wrapper { #define WC_DECLARE_HEAP_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ VAR_TYPE* VAR_NAME[VAR_ITEMS]; \ int idx##VAR_NAME = 0, inner_idx_##VAR_NAME + #define WC_HEAP_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) \ + VAR_TYPE* VAR_NAME[VAR_ITEMS] #define WC_ALLOC_HEAP_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ for (idx##VAR_NAME=0; idx##VAR_NAME<(VAR_ITEMS); idx##VAR_NAME++) { \ (VAR_NAME)[idx##VAR_NAME] = (VAR_TYPE*)XMALLOC(VAR_SIZE, (HEAP), DYNAMIC_TYPE_TMP_BUFFER); \ @@ -641,6 +643,8 @@ typedef struct w64wrapper { XFREE(VAR_NAME, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT) #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ WC_DECLARE_HEAP_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) + #define WC_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) \ + WC_HEAP_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) #define WC_ALLOC_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ WC_ALLOC_HEAP_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) #define WC_CALLOC_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ @@ -658,6 +662,8 @@ typedef struct w64wrapper { #define WC_FREE_VAR(VAR_NAME, HEAP) WC_DO_NOTHING /* nothing to free, its stack */ #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ VAR_TYPE VAR_NAME[VAR_ITEMS][(VAR_SIZE) / sizeof(VAR_TYPE)] /* // NOLINT(bugprone-sizeof-expression) */ + #define WC_ARRAY_ARG(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE) \ + VAR_TYPE VAR_NAME[VAR_ITEMS][(VAR_SIZE) / sizeof(VAR_TYPE)] /* // NOLINT(bugprone-sizeof-expression) */ #define WC_ALLOC_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) WC_DO_NOTHING #define WC_CALLOC_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) XMEMSET(VAR_NAME, 0, sizeof(VAR_NAME)) #define WC_ARRAY_OK(VAR_NAME) 1