Skip to content

Commit 362a374

Browse files
committed
fixup! Refactor: Use dynamic allocation for RSA test buffers
1 parent 3b0b50e commit 362a374

1 file changed

Lines changed: 37 additions & 4 deletions

File tree

wolfcrypt/test/test.c

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22739,15 +22739,22 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t decodedCertCache_test(void)
2273922739
static wc_test_ret_t rsa_flatten_test(RsaKey* key)
2274022740
{
2274122741
wc_test_ret_t ret;
22742+
#if !defined(WOLFSSL_NO_MALLOC)
2274222743
byte* e = NULL;
2274322744
byte* n = NULL;
22745+
#else
22746+
byte e[RSA_TEST_BYTES];
22747+
byte n[RSA_TEST_BYTES];
22748+
#endif
2274422749
word32 eSz = RSA_TEST_BYTES;
2274522750
word32 nSz = RSA_TEST_BYTES;
2274622751

22752+
#if !defined(WOLFSSL_NO_MALLOC)
2274722753
e = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2274822754
n = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2274922755
if (e == NULL || n == NULL)
2275022756
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_flatten);
22757+
#endif
2275122758

2275222759
/* Parameter Validation testing. */
2275322760
ret = wc_RsaFlattenPublicKey(NULL, e, &eSz, n, &nSz);
@@ -22788,8 +22795,10 @@ static wc_test_ret_t rsa_flatten_test(RsaKey* key)
2278822795
ret = 0;
2278922796

2279022797
exit_rsa_flatten:
22798+
#if !defined(WOLFSSL_NO_MALLOC)
2279122799
XFREE(e, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2279222800
XFREE(n, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
22801+
#endif
2279322802
return ret;
2279422803
}
2279522804
#endif /* NO_ASN */
@@ -22801,22 +22810,31 @@ static wc_test_ret_t rsa_export_key_test(RsaKey* key)
2280122810
wc_test_ret_t ret;
2280222811
byte e[3];
2280322812
word32 eSz = sizeof(e);
22813+
#if !defined(WOLFSSL_NO_MALLOC)
2280422814
byte* n = NULL;
22805-
word32 nSz = RSA_TEST_BYTES;
2280622815
byte* d = NULL;
22807-
word32 dSz = RSA_TEST_BYTES;
2280822816
byte* p = NULL;
22809-
word32 pSz = RSA_TEST_BYTES/2;
2281022817
byte* q = NULL;
22818+
#else
22819+
byte n[RSA_TEST_BYTES];
22820+
byte d[RSA_TEST_BYTES];
22821+
byte p[RSA_TEST_BYTES/2];
22822+
byte q[RSA_TEST_BYTES/2];
22823+
#endif
22824+
word32 nSz = RSA_TEST_BYTES;
22825+
word32 dSz = RSA_TEST_BYTES;
22826+
word32 pSz = RSA_TEST_BYTES/2;
2281122827
word32 qSz = RSA_TEST_BYTES/2;
2281222828
word32 zero = 0;
2281322829

22830+
#if !defined(WOLFSSL_NO_MALLOC)
2281422831
n = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281522832
d = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281622833
p = (byte*)XMALLOC(RSA_TEST_BYTES/2, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281722834
q = (byte*)XMALLOC(RSA_TEST_BYTES/2, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281822835
if (n == NULL || d == NULL || p == NULL || q == NULL)
2281922836
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_export);
22837+
#endif
2282022838

2282122839
ret = wc_RsaExportKey(NULL, e, &eSz, n, &nSz, d, &dSz, p, &pSz, q, &qSz);
2282222840
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
@@ -22877,10 +22895,12 @@ static wc_test_ret_t rsa_export_key_test(RsaKey* key)
2287722895
ret = 0;
2287822896

2287922897
exit_rsa_export:
22898+
#if !defined(WOLFSSL_NO_MALLOC)
2288022899
XFREE(n, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2288122900
XFREE(d, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2288222901
XFREE(p, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2288322902
XFREE(q, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
22903+
#endif
2288422904
return ret;
2288522905
}
2288622906
#endif /* !HAVE_FIPS && !NO_ASN && !WOLFSSL_RSA_VERIFY_ONLY */
@@ -22909,11 +22929,14 @@ static wc_test_ret_t rsa_sig_test(RsaKey* key, word32 keyLen, int modLen, WC_RNG
2290922929
};
2291022930
word32 inLen = (word32)XSTRLEN((char*)in);
2291122931
word32 outSz = RSA_TEST_BYTES;
22932+
#if !defined(WOLFSSL_NO_MALLOC)
2291222933
byte* out = NULL;
22913-
2291422934
out = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2291522935
if (out == NULL)
2291622936
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_sig);
22937+
#else
22938+
byte out[RSA_TEST_BYTES];
22939+
#endif
2291722940

2291822941
/* Parameter Validation testing. */
2291922942
ret = wc_SignatureGetSize(WC_SIGNATURE_TYPE_NONE, key, keyLen);
@@ -23080,7 +23103,9 @@ static wc_test_ret_t rsa_sig_test(RsaKey* key, word32 keyLen, int modLen, WC_RNG
2308023103
ret = 0;
2308123104

2308223105
exit_rsa_sig:
23106+
#if !defined(WOLFSSL_NO_MALLOC)
2308323107
XFREE(out, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
23108+
#endif
2308423109
return ret;
2308523110
}
2308623111
#endif /* !NO_SIG_WRAPPER && !NO_SHA256 */
@@ -64320,7 +64345,11 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6432064345

6432164346
word32 sigSz;
6432264347
WOLFSSL_SMALL_STACK_STATIC const byte in[] = TEST_STRING;
64348+
#if !defined(WOLFSSL_NO_MALLOC)
6432364349
byte* out = NULL;
64350+
#else
64351+
byte out[RSA_TEST_BYTES];
64352+
#endif
6432464353

6432564354
#if !defined(USE_CERT_BUFFERS_1024) && !defined(USE_CERT_BUFFERS_2048) && \
6432664355
!defined(USE_CERT_BUFFERS_3072) && !defined(USE_CERT_BUFFERS_4096) && \
@@ -64358,9 +64387,11 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6435864387
if (tmp == NULL)
6435964388
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, exit_onlycb);
6436064389
#endif
64390+
#if !defined(WOLFSSL_NO_MALLOC)
6436164391
out = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
6436264392
if (out == NULL)
6436364393
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, exit_onlycb);
64394+
#endif
6436464395

6436564396
#ifdef USE_CERT_BUFFERS_1024
6436664397
XMEMCPY(tmp, client_key_der_1024, (size_t)sizeof_client_key_der_1024);
@@ -64454,7 +64485,9 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6445464485
#else
6445564486
wc_FreeRsaKey(key);
6445664487
#endif
64488+
#if !defined(WOLFSSL_NO_MALLOC)
6445764489
XFREE(out, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
64490+
#endif
6445864491

6445964492
#endif
6446064493
return ret;

0 commit comments

Comments
 (0)