Skip to content

Commit f762a42

Browse files
adjust test case for CI tests after additional sanity check
1 parent 7d62319 commit f762a42

4 files changed

Lines changed: 43 additions & 6 deletions

File tree

tests/api/test_evp_cipher.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2195,7 +2195,7 @@ int test_wolfssl_EVP_sm4_ecb(void)
21952195
};
21962196
byte cipherText[sizeof(plainText) + SM4_BLOCK_SIZE];
21972197
byte decryptedText[sizeof(plainText) + SM4_BLOCK_SIZE];
2198-
EVP_CIPHER_CTX* ctx;
2198+
EVP_CIPHER_CTX* ctx = NULL;
21992199
int outSz;
22002200

22012201
XMEMSET(key, 0, sizeof(key));
@@ -2251,7 +2251,7 @@ int test_wolfssl_EVP_sm4_cbc(void)
22512251
};
22522252
byte cipherText[sizeof(plainText) + SM4_BLOCK_SIZE];
22532253
byte decryptedText[sizeof(plainText) + SM4_BLOCK_SIZE];
2254-
EVP_CIPHER_CTX* ctx;
2254+
EVP_CIPHER_CTX* ctx = NULL;
22552255
int outSz;
22562256

22572257
XMEMSET(key, 0, sizeof(key));
@@ -2319,7 +2319,7 @@ int test_wolfssl_EVP_sm4_ctr(void)
23192319
byte plainText[] = {0xDE, 0xAD, 0xBE, 0xEF};
23202320
byte cipherText[sizeof(plainText)];
23212321
byte decryptedText[sizeof(plainText)];
2322-
EVP_CIPHER_CTX* ctx;
2322+
EVP_CIPHER_CTX* ctx = NULL;
23232323
int outSz;
23242324

23252325
XMEMSET(key, 0, sizeof(key));

tests/api/test_evp_pkey.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,11 +1594,17 @@ static int test_wolfSSL_EVP_PKEY_sign_verify(int keyType)
15941594
WOLFSSL_SUCCESS);
15951595

15961596
if (keyType == EVP_PKEY_EC) {
1597+
#if (!defined(HAVE_FIPS) || FIPS_VERSION_GT(7,0)) && !defined(HAVE_SELFTEST)
15971598
/* wolfSSL differs from OpenSSL in that it treats a hash of all 0's as a
15981599
* fatal error and does not attempt to verify */
15991600
ExpectIntEQ(EVP_PKEY_verify(
16001601
ctx_verify, sig, siglen, zero, SHA256_DIGEST_LENGTH),
16011602
WC_NO_ERR_TRACE(WOLFSSL_FATAL_ERROR));
1603+
#else
1604+
ExpectIntEQ(EVP_PKEY_verify(
1605+
ctx_verify, sig, siglen, zero, SHA256_DIGEST_LENGTH),
1606+
WC_NO_ERR_TRACE(WOLFSSL_FAILURE));
1607+
#endif
16021608
}
16031609
else {
16041610
ExpectIntEQ(EVP_PKEY_verify(

wolfcrypt/test/test.c

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36756,7 +36756,12 @@ static wc_test_ret_t ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerif
3675636756
#if !defined(ECC_TIMING_RESISTANT) || (defined(ECC_TIMING_RESISTANT) && \
3675736757
!defined(WC_NO_RNG) && !defined(WOLFSSL_KCAPI_ECC))
3675836758
#ifdef HAVE_ECC_SIGN
36759-
/* test DSA sign hash with zeros */
36759+
/* WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST: build rejects all-zero digest,
36760+
* so test expects failure. */
36761+
#ifdef WOLFSSL_SM2
36762+
if (curve_id != ECC_SM2P256V1)
36763+
#endif
36764+
{
3676036765
for (i = 0; i < (int)ECC_DIGEST_SIZE; i++) {
3676136766
digest[i] = 0;
3676236767
}
@@ -36770,13 +36775,17 @@ static wc_test_ret_t ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerif
3677036775
ret = wc_ecc_sign_hash(digest, ECC_DIGEST_SIZE, sig, &x, rng,
3677136776
userA);
3677236777
} while (ret == WC_NO_ERR_TRACE(WC_PENDING_E));
36778+
#ifdef WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST
3677336779
if (ret == 0) {
3677436780
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), done);
3677536781
}
3677636782
else {
36777-
/* reset ret value, was expecting a failure */
3677836783
ret = 0;
3677936784
}
36785+
#else
36786+
if (ret != 0)
36787+
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), done);
36788+
#endif
3678036789
TEST_SLEEP();
3678136790

3678236791
#ifdef HAVE_ECC_VERIFY
@@ -36789,17 +36798,24 @@ static wc_test_ret_t ecc_test_curve_size(WC_RNG* rng, int keySize, int testVerif
3678936798
ret = wc_ecc_verify_hash(sig, x, digest, ECC_DIGEST_SIZE,
3679036799
&verify, userA);
3679136800
} while (ret == WC_NO_ERR_TRACE(WC_PENDING_E));
36801+
#ifdef WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST
3679236802
if (ret == 0) {
3679336803
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), done);
3679436804
}
3679536805
else {
36796-
/* reset ret value, was expecting a failure */
3679736806
ret = 0;
3679836807
}
3679936808
if (verify == 1)
3680036809
ERROR_OUT(WC_TEST_RET_ENC_NC, done);
36810+
#else
36811+
if (ret != 0)
36812+
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), done);
36813+
if (verify != 1)
36814+
ERROR_OUT(WC_TEST_RET_ENC_NC, done);
36815+
#endif
3680136816
TEST_SLEEP();
3680236817
#endif /* HAVE_ECC_VERIFY */
36818+
}
3680336819

3680436820
/* test DSA sign hash with sequence (0,1,2,3,4,...) */
3680536821
for (i = 0; i < (int)ECC_DIGEST_SIZE; i++) {

wolfssl/wolfcrypt/settings.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3514,6 +3514,21 @@ extern void uITRON4_free(void *p) ;
35143514
#undef NO_DH
35153515
#endif
35163516

3517+
/* Base wolfCrypt rejects an all-zero ECC digest on sign/verify. Builds whose
3518+
* sign/verify path can't enforce that (HW offload firmware) */
3519+
#if defined(HAVE_ECC) && defined(HAVE_ECC_SIGN) && \
3520+
!defined(WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST)
3521+
#define WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST
3522+
#if defined(WOLFSSL_CRYPTOCELL) || defined(WOLFSSL_SE050) || \
3523+
defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A) || \
3524+
defined(WOLFSSL_KCAPI_ECC) || defined(WOLFSSL_SILABS_SE_ACCEL) || \
3525+
defined(WOLFSSL_XILINX_CRYPT_VERSAL) || defined(PLUTON_CRYPTO_ECC) || \
3526+
defined(HAVE_SELFTEST) || \
3527+
(defined(HAVE_FIPS) && FIPS_VERSION3_LT(7,0,0))
3528+
#undef WC_TEST_NO_ECC_SIGN_VERIFY_ZERO_DIGEST
3529+
#endif
3530+
#endif
3531+
35173532
/* Asynchronous Crypto */
35183533
#ifdef WOLFSSL_ASYNC_CRYPT
35193534
#if !defined(HAVE_CAVIUM) && !defined(HAVE_INTEL_QA) && \

0 commit comments

Comments
 (0)