Skip to content

Commit cb4297f

Browse files
committed
fixup! Refactor: Use dynamic allocation for RSA test buffers
1 parent a1d7c8d commit cb4297f

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
@@ -22737,15 +22737,22 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t decodedCertCache_test(void)
2273722737
static wc_test_ret_t rsa_flatten_test(RsaKey* key)
2273822738
{
2273922739
wc_test_ret_t ret;
22740+
#if !defined(WOLFSSL_NO_MALLOC)
2274022741
byte* e = NULL;
2274122742
byte* n = NULL;
22743+
#else
22744+
byte e[RSA_TEST_BYTES];
22745+
byte n[RSA_TEST_BYTES];
22746+
#endif
2274222747
word32 eSz = RSA_TEST_BYTES;
2274322748
word32 nSz = RSA_TEST_BYTES;
2274422749

22750+
#if !defined(WOLFSSL_NO_MALLOC)
2274522751
e = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2274622752
n = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2274722753
if (e == NULL || n == NULL)
2274822754
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_flatten);
22755+
#endif
2274922756

2275022757
/* Parameter Validation testing. */
2275122758
ret = wc_RsaFlattenPublicKey(NULL, e, &eSz, n, &nSz);
@@ -22786,8 +22793,10 @@ static wc_test_ret_t rsa_flatten_test(RsaKey* key)
2278622793
ret = 0;
2278722794

2278822795
exit_rsa_flatten:
22796+
#if !defined(WOLFSSL_NO_MALLOC)
2278922797
XFREE(e, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2279022798
XFREE(n, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
22799+
#endif
2279122800
return ret;
2279222801
}
2279322802
#endif /* NO_ASN */
@@ -22799,22 +22808,31 @@ static wc_test_ret_t rsa_export_key_test(RsaKey* key)
2279922808
wc_test_ret_t ret;
2280022809
byte e[3];
2280122810
word32 eSz = sizeof(e);
22811+
#if !defined(WOLFSSL_NO_MALLOC)
2280222812
byte* n = NULL;
22803-
word32 nSz = RSA_TEST_BYTES;
2280422813
byte* d = NULL;
22805-
word32 dSz = RSA_TEST_BYTES;
2280622814
byte* p = NULL;
22807-
word32 pSz = RSA_TEST_BYTES/2;
2280822815
byte* q = NULL;
22816+
#else
22817+
byte n[RSA_TEST_BYTES];
22818+
byte d[RSA_TEST_BYTES];
22819+
byte p[RSA_TEST_BYTES/2];
22820+
byte q[RSA_TEST_BYTES/2];
22821+
#endif
22822+
word32 nSz = RSA_TEST_BYTES;
22823+
word32 dSz = RSA_TEST_BYTES;
22824+
word32 pSz = RSA_TEST_BYTES/2;
2280922825
word32 qSz = RSA_TEST_BYTES/2;
2281022826
word32 zero = 0;
2281122827

22828+
#if !defined(WOLFSSL_NO_MALLOC)
2281222829
n = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281322830
d = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281422831
p = (byte*)XMALLOC(RSA_TEST_BYTES/2, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281522832
q = (byte*)XMALLOC(RSA_TEST_BYTES/2, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2281622833
if (n == NULL || d == NULL || p == NULL || q == NULL)
2281722834
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_export);
22835+
#endif
2281822836

2281922837
ret = wc_RsaExportKey(NULL, e, &eSz, n, &nSz, d, &dSz, p, &pSz, q, &qSz);
2282022838
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
@@ -22875,10 +22893,12 @@ static wc_test_ret_t rsa_export_key_test(RsaKey* key)
2287522893
ret = 0;
2287622894

2287722895
exit_rsa_export:
22896+
#if !defined(WOLFSSL_NO_MALLOC)
2287822897
XFREE(n, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2287922898
XFREE(d, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2288022899
XFREE(p, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2288122900
XFREE(q, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
22901+
#endif
2288222902
return ret;
2288322903
}
2288422904
#endif /* !HAVE_FIPS && !NO_ASN && !WOLFSSL_RSA_VERIFY_ONLY */
@@ -22907,11 +22927,14 @@ static wc_test_ret_t rsa_sig_test(RsaKey* key, word32 keyLen, int modLen, WC_RNG
2290722927
};
2290822928
word32 inLen = (word32)XSTRLEN((char*)in);
2290922929
word32 outSz = RSA_TEST_BYTES;
22930+
#if !defined(WOLFSSL_NO_MALLOC)
2291022931
byte* out = NULL;
22911-
2291222932
out = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
2291322933
if (out == NULL)
2291422934
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), exit_rsa_sig);
22935+
#else
22936+
byte out[RSA_TEST_BYTES];
22937+
#endif
2291522938

2291622939
/* Parameter Validation testing. */
2291722940
ret = wc_SignatureGetSize(WC_SIGNATURE_TYPE_NONE, key, keyLen);
@@ -23078,7 +23101,9 @@ static wc_test_ret_t rsa_sig_test(RsaKey* key, word32 keyLen, int modLen, WC_RNG
2307823101
ret = 0;
2307923102

2308023103
exit_rsa_sig:
23104+
#if !defined(WOLFSSL_NO_MALLOC)
2308123105
XFREE(out, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
23106+
#endif
2308223107
return ret;
2308323108
}
2308423109
#endif /* !NO_SIG_WRAPPER && !NO_SHA256 */
@@ -64285,7 +64310,11 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6428564310

6428664311
word32 sigSz;
6428764312
WOLFSSL_SMALL_STACK_STATIC const byte in[] = TEST_STRING;
64313+
#if !defined(WOLFSSL_NO_MALLOC)
6428864314
byte* out = NULL;
64315+
#else
64316+
byte out[RSA_TEST_BYTES];
64317+
#endif
6428964318

6429064319
#if !defined(USE_CERT_BUFFERS_1024) && !defined(USE_CERT_BUFFERS_2048) && \
6429164320
!defined(USE_CERT_BUFFERS_3072) && !defined(USE_CERT_BUFFERS_4096) && \
@@ -64323,9 +64352,11 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6432364352
if (tmp == NULL)
6432464353
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, exit_onlycb);
6432564354
#endif
64355+
#if !defined(WOLFSSL_NO_MALLOC)
6432664356
out = (byte*)XMALLOC(RSA_TEST_BYTES, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
6432764357
if (out == NULL)
6432864358
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, exit_onlycb);
64359+
#endif
6432964360

6433064361
#ifdef USE_CERT_BUFFERS_1024
6433164362
XMEMCPY(tmp, client_key_der_1024, (size_t)sizeof_client_key_der_1024);
@@ -64419,7 +64450,9 @@ static wc_test_ret_t rsa_onlycb_test(myCryptoDevCtx *ctx)
6441964450
#else
6442064451
wc_FreeRsaKey(key);
6442164452
#endif
64453+
#if !defined(WOLFSSL_NO_MALLOC)
6442264454
XFREE(out, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
64455+
#endif
6442364456

6442464457
#endif
6442564458
return ret;

0 commit comments

Comments
 (0)