Merge pull request #8586 from douzzer/20250321-siphash-armasm

20250321-siphash-armasm
pull/8588/head
David Garske 2025-03-23 14:00:17 -07:00 committed by GitHub
commit 0cc0bb0afe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 96 additions and 77 deletions

View File

@ -13814,8 +13814,6 @@ static int ProcessCSR_ex(WOLFSSL* ssl, byte* input, word32* inOutIdx,
#if defined(HAVE_CERTIFICATE_STATUS_REQUEST)
TLSX* ext = TLSX_Find(ssl->extensions, TLSX_STATUS_REQUEST);
CertificateStatusRequest* csr;
#else
(void)idx;
#endif
#ifdef WOLFSSL_SMALL_STACK
CertStatus* status;
@ -13844,6 +13842,8 @@ static int ProcessCSR_ex(WOLFSSL* ssl, byte* input, word32* inOutIdx,
ssl->status_request = 0;
break;
}
#else
(void)idx;
#endif
#ifdef HAVE_CERTIFICATE_STATUS_REQUEST_V2

View File

@ -62,6 +62,10 @@ int wc_falcon_sign_msg(const byte* in, word32 inLen,
falcon_key* key, WC_RNG* rng)
{
int ret = 0;
#ifdef HAVE_LIBOQS
OQS_SIG *oqssig = NULL;
size_t localOutLen = 0;
#endif
/* sanity check on arguments */
if ((in == NULL) || (out == NULL) || (outLen == NULL) || (key == NULL)) {
@ -83,9 +87,6 @@ int wc_falcon_sign_msg(const byte* in, word32 inLen,
#endif
#ifdef HAVE_LIBOQS
OQS_SIG *oqssig = NULL;
size_t localOutLen = 0;
if ((ret == 0) && (!key->prvKeySet)) {
ret = BAD_FUNC_ARG;
}
@ -161,6 +162,9 @@ int wc_falcon_verify_msg(const byte* sig, word32 sigLen, const byte* msg,
word32 msgLen, int* res, falcon_key* key)
{
int ret = 0;
#ifdef HAVE_LIBOQS
OQS_SIG *oqssig = NULL;
#endif
if (key == NULL || sig == NULL || msg == NULL || res == NULL) {
return BAD_FUNC_ARG;
@ -181,8 +185,6 @@ int wc_falcon_verify_msg(const byte* sig, word32 sigLen, const byte* msg,
#endif
#ifdef HAVE_LIBOQS
OQS_SIG *oqssig = NULL;
if ((ret == 0) && (!key->pubKeySet)) {
ret = BAD_FUNC_ARG;
}
@ -708,12 +710,12 @@ int wc_falcon_export_key(falcon_key* key, byte* priv, word32 *privSz,
*/
int wc_falcon_check_key(falcon_key* key)
{
int ret = 0;
if (key == NULL) {
return BAD_FUNC_ARG;
}
int ret = 0;
/* The public key is also decoded and stored within the private key buffer
* behind the private key. Hence, we can compare both stored public keys. */
if (key->level == 1) {

View File

@ -582,7 +582,7 @@ int wc_SipHash(const unsigned char* key, const unsigned char* in, word32 inSz,
return 0;
}
#elif !defined(WOLFSSL_NO_ASM) && defined(__GNUC__) && defined(__aarch64__) && \
#elif defined(WOLFSSL_ARMASM) && defined(__GNUC__) && defined(__aarch64__) && \
(WOLFSSL_SIPHASH_CROUNDS == 1 || WOLFSSL_SIPHASH_CROUNDS == 2) && \
(WOLFSSL_SIPHASH_DROUNDS == 2 || WOLFSSL_SIPHASH_DROUNDS == 4)

View File

@ -5911,12 +5911,13 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t sm3_test(void)
byte hashGet[WC_SM3_DIGEST_SIZE];
byte hashCopy[WC_SM3_DIGEST_SIZE];
wc_test_ret_t ret = 0;
WOLFSSL_ENTER("sm3_test");
testVector a, b, c;
testVector test_sm3[3];
int times = sizeof(test_sm3) / sizeof(struct testVector), i;
WOLFSSL_ENTER("sm3_test");
a.input = "";
a.output = "\x1a\xb2\x1d\x83\x55\xcf\xa1\x7f\x8e\x61\x19\x48\x31\xe8\x1a"
"\x8f\x22\xbe\xc8\xc7\x28\xfe\xfb\x74\x7e\xd0\x35\xeb\x50\x82"
@ -6143,37 +6144,37 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
/* Parameter Validation testing. */
ret = wc_HashInit(NULL, WC_HASH_TYPE_SHA256);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashUpdate(NULL, WC_HASH_TYPE_SHA256, NULL, sizeof(data));
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashUpdate(hash, WC_HASH_TYPE_SHA256, NULL, sizeof(data));
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashUpdate(NULL, WC_HASH_TYPE_SHA256, data, sizeof(data));
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashFinal(NULL, WC_HASH_TYPE_SHA256, NULL);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashFinal(hash, WC_HASH_TYPE_SHA256, NULL);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashFinal(NULL, WC_HASH_TYPE_SHA256, out);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
/* Try invalid hash algorithms. */
for (i = 0; i < (int)(sizeof(typesBad)/sizeof(*typesBad)); i++) {
ret = wc_HashInit(hash, typesBad[i]);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
ret = wc_HashUpdate(hash, typesBad[i], data, sizeof(data));
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
ret = wc_HashFinal(hash, typesBad[i], out);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
wc_HashFree(hash, typesBad[i]);
}
@ -6187,49 +6188,49 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
}
ret = wc_HashInit(hash, typesGood[i]);
if (ret != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
ret = wc_HashUpdate(hash, typesGood[i], data, sizeof(data));
if (ret != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
ret = wc_HashFinal(hash, typesGood[i], out);
if (ret != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
wc_HashFree(hash, typesGood[i]);
digestSz = wc_HashGetDigestSize(typesGood[i]);
if (exp_ret < 0 && digestSz != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
if (exp_ret == 0 && digestSz < 0)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
if (exp_ret == 0) {
ret = wc_Hash(typesGood[i], data, sizeof(data), hashOut,
(word32)digestSz - 1);
if (ret != WC_NO_ERR_TRACE(BUFFER_E))
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
}
ret = wc_Hash(typesGood[i], data, sizeof(data), hashOut, (word32)digestSz);
if (ret != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
if (exp_ret == 0 && XMEMCMP(out, hashOut, (word32)digestSz) != 0)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
ret = wc_HashGetBlockSize(typesGood[i]);
if (exp_ret < 0 && ret != exp_ret)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
if (exp_ret == 0 && ret < 0)
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
#if !defined(NO_ASN) || !defined(NO_DH) || defined(HAVE_ECC)
ret = wc_HashGetOID(typesGood[i]);
if (ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG) ||
(exp_ret == 0 && ret == WC_NO_ERR_TRACE(HASH_TYPE_E)) ||
(exp_ret != 0 && ret != WC_NO_ERR_TRACE(HASH_TYPE_E))) {
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
}
hashType = wc_OidGetHash(ret);
if (exp_ret == 0 && hashType != typesGood[i])
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
#endif /* !defined(NO_ASN) || !defined(NO_DH) || defined(HAVE_ECC) */
}
@ -6239,7 +6240,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
(ret != WC_NO_ERR_TRACE(BUFFER_E)) &&
(ret != WC_NO_ERR_TRACE(HASH_TYPE_E)))
{
return WC_TEST_RET_ENC_I(i);
ERROR_OUT(WC_TEST_RET_ENC_I(i), out);
}
}
@ -6249,19 +6250,19 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
hashType = wc_OidGetHash(646); /* Md2h */
#ifdef WOLFSSL_MD2
if (hashType != WC_HASH_TYPE_MD2)
return WC_TEST_RET_ENC_NC;
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#else
if (hashType != WC_HASH_TYPE_NONE)
return WC_TEST_RET_ENC_NC;
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
ret = wc_HashGetOID(WC_HASH_TYPE_MD5_SHA);
@ -6269,22 +6270,22 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetOID(WC_HASH_TYPE_MD4);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashGetOID(WC_HASH_TYPE_NONE);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
hashType = wc_OidGetHash(0);
if (hashType != WC_HASH_TYPE_NONE)
return WC_TEST_RET_ENC_NC;
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif /* !defined(NO_ASN) || !defined(NO_DH) || defined(HAVE_ECC) */
ret = wc_HashGetBlockSize(WC_HASH_TYPE_MD2);
@ -6292,22 +6293,22 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetDigestSize(WC_HASH_TYPE_MD2);
#ifdef WOLFSSL_MD2
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetBlockSize(WC_HASH_TYPE_MD4);
@ -6315,33 +6316,33 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetDigestSize(WC_HASH_TYPE_MD4);
#ifndef NO_MD4
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetBlockSize(WC_HASH_TYPE_MD5_SHA);
#if !defined(NO_MD5) && !defined(NO_SHA)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetBlockSize(WC_HASH_TYPE_BLAKE2B);
@ -6349,77 +6350,81 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetDigestSize(WC_HASH_TYPE_BLAKE2B);
#if defined(HAVE_BLAKE2) || defined(HAVE_BLAKE2S)
if (ret == WC_NO_ERR_TRACE(HASH_TYPE_E) ||
ret == WC_NO_ERR_TRACE(BAD_FUNC_ARG))
{
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}
#else
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = wc_HashGetBlockSize(WC_HASH_TYPE_NONE);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
ret = wc_HashGetDigestSize(WC_HASH_TYPE_NONE);
if (ret != WC_NO_ERR_TRACE(BAD_FUNC_ARG))
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#if !defined(NO_CERTS) && !defined(NO_ASN)
#if defined(WOLFSSL_MD2) && !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
ret = wc_GetCTC_HashOID(WC_HASH_TYPE_MD2);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifndef NO_MD5
ret = wc_GetCTC_HashOID(WC_MD5);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifndef NO_SHA
ret = wc_GetCTC_HashOID(WC_SHA);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifdef WOLFSSL_SHA224
ret = wc_GetCTC_HashOID(WC_SHA224);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifndef NO_SHA256
ret = wc_GetCTC_HashOID(WC_SHA256);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifdef WOLFSSL_SHA384
ret = wc_GetCTC_HashOID(WC_SHA384);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
#ifdef WOLFSSL_SHA512
ret = wc_GetCTC_HashOID(WC_SHA512);
if (ret == 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
#endif
ret = wc_GetCTC_HashOID(-1);
if (ret != 0)
return WC_TEST_RET_ENC_EC(ret);
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
ret = 0;
out:
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
(void)wc_HashDelete(hash, &hash);
#endif
return 0;
return ret;
}
#endif /* !NO_HASH_WRAPPER */
@ -6547,6 +6552,11 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hmac_sha_test(void)
wc_test_ret_t ret;
int times = sizeof(test_hmac) / sizeof(testVector), i;
#if FIPS_VERSION3_GE(6,0,0)
int allowShortKeyWithFips = 1;
#endif
WOLFSSL_ENTER("hmac_sha_test");
/* Following test vectors are from RFC 2202 section 3 */
@ -6581,9 +6591,6 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hmac_sha_test(void)
test_hmac[1] = b;
test_hmac[2] = c;
test_hmac[3] = d;
#if FIPS_VERSION3_GE(6,0,0)
int allowShortKeyWithFips = 1;
#endif
for (i = 0; i < times; ++i) {
#if defined(HAVE_CAVIUM) || (defined(HAVE_FIPS) && FIPS_VERSION3_LT(6,0,0))
@ -50499,12 +50506,19 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t cmac_test(void)
}
#endif
#if !defined(HAVE_FIPS) || FIPS_VERSION3_GE(6,0,0)
(void)wc_CmacFree(cmac);
#endif
}
ret = 0;
out:
#if !defined(HAVE_FIPS) || FIPS_VERSION3_GE(6,0,0)
(void)wc_CmacFree(cmac);
#endif
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
XFREE(cmac, HEAP_HINT, DYNAMIC_TYPE_CMAC);
#endif
@ -58318,22 +58332,21 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t prime_test(void)
WC_RNG rng;
WOLFSSL_ENTER("prime_test");
ret = mp_init_multi(n, p1, p2, p3, NULL, NULL);
if (ret != 0)
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
if ((n == NULL) ||
(p1 == NULL) ||
(p2 == NULL) ||
(p3 == NULL))
ERROR_OUT(MEMORY_E, out);
ERROR_OUT(WC_TEST_RET_ENC_EC(MEMORY_E), out);
#endif
ret = wc_InitRng(&rng);
if (ret != 0)
ret = WC_TEST_RET_ENC_EC(ret);
if (ret == 0) {
ret = mp_init_multi(n, p1, p2, p3, NULL, NULL);
if (ret != 0)
ret = WC_TEST_RET_ENC_EC(ret);
}
if (ret == 0)
ret = GenerateP(p1, p2, p3,
ecPairsA, sizeof(ecPairsA) / sizeof(ecPairsA[0]), kA);

View File

@ -2847,6 +2847,10 @@ extern void uITRON4_free(void *p) ;
/* default is SP Math. */
#define WOLFSSL_SP_MATH_ALL
#endif
#elif defined(WOLFCRYPT_FIPS_RAND)
#ifndef NO_BIG_INT
#define NO_BIG_INT
#endif
#else
/* FIPS 140-2 or older */
/* Default to fast math (tfm.c), but allow heap math (integer.c) */