Skip to content

Commit d88ab84

Browse files
authored
Merge pull request #9311 from SparkiDev/regression_fixes_19
Regression testing
2 parents 058686b + c111c5b commit d88ab84

8 files changed

Lines changed: 264 additions & 19 deletions

File tree

src/tls.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7437,8 +7437,10 @@ static int TLSX_CA_Names_Parse(WOLFSSL *ssl, const byte* input,
74377437

74387438
if (ret == 0) {
74397439
CopyDecodedName(name, cert, ASN_SUBJECT);
7440-
if (wolfSSL_sk_X509_NAME_push(ssl->peer_ca_names, name) <= 0)
7440+
if (wolfSSL_sk_X509_NAME_push(ssl->peer_ca_names, name) <= 0) {
7441+
wolfSSL_X509_NAME_free(name);
74417442
ret = MEMORY_ERROR;
7443+
}
74427444
}
74437445

74447446
if (didInit)

src/x509.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,9 +1057,8 @@ WOLFSSL_X509_EXTENSION* wolfSSL_X509_set_ext(WOLFSSL_X509* x509, int loc)
10571057

10581058
if (((ext->obj->dynamic & WOLFSSL_ASN1_DYNAMIC_DATA) != 0) ||
10591059
(ext->obj->obj == NULL)) {
1060+
byte* tmp;
10601061
#ifdef WOLFSSL_NO_REALLOC
1061-
byte* tmp = NULL;
1062-
10631062
tmp = (byte*)XMALLOC(objSz, NULL, DYNAMIC_TYPE_ASN1);
10641063
if (tmp != NULL && ext->obj->obj != NULL) {
10651064
XMEMCPY(tmp, ext->obj->obj, ext->obj->objSz);
@@ -1070,8 +1069,11 @@ WOLFSSL_X509_EXTENSION* wolfSSL_X509_set_ext(WOLFSSL_X509* x509, int loc)
10701069
}
10711070
ext->obj->obj = tmp;
10721071
#else
1073-
ext->obj->obj = (byte*)XREALLOC((byte*)ext->obj->obj, objSz,
1074-
NULL, DYNAMIC_TYPE_ASN1);
1072+
tmp = (byte*)XREALLOC((byte*)ext->obj->obj, objSz, NULL,
1073+
DYNAMIC_TYPE_ASN1);
1074+
if (tmp != NULL) {
1075+
ext->obj->obj = tmp;
1076+
}
10751077
#endif
10761078
if (ext->obj->obj == NULL) {
10771079
wolfSSL_X509_EXTENSION_free(ext);

tests/api/test_ocsp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ int test_ocsp_basic_verify(void)
360360

361361
#if defined(HAVE_OCSP) && defined(HAVE_SSL_MEMIO_TESTS_DEPENDENCIES) && \
362362
defined(HAVE_CERTIFICATE_STATUS_REQUEST) && !defined(WOLFSSL_NO_TLS12) && \
363-
defined(OPENSSL_ALL)
363+
defined(OPENSSL_ALL) && !defined(WOLFSSL_SMALL_CERT_VERIFY)
364364

365365
struct _test_ocsp_status_callback_ctx {
366366
byte* ocsp_resp;

tests/api/test_tls13.c

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1913,23 +1913,54 @@ int test_tls13_rpk_handshake(void)
19131913

19141914

19151915
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && defined(WOLFSSL_TLS13) && \
1916-
defined(WOLFSSL_HAVE_MLKEM)
1916+
defined(WOLFSSL_HAVE_MLKEM) && !defined(WOLFSSL_MLKEM_NO_ENCAPSULATE) && \
1917+
!defined(WOLFSSL_MLKEM_NO_DECAPSULATE) && \
1918+
!defined(WOLFSSL_MLKEM_NO_MAKE_KEY)
19171919
static void test_tls13_pq_groups_ctx_ready(WOLFSSL_CTX* ctx)
19181920
{
1921+
#ifndef WOLFSSL_NO_ML_KEM_1024
19191922
#ifdef WOLFSSL_MLKEM_KYBER
19201923
int group = WOLFSSL_KYBER_LEVEL5;
19211924
#else
19221925
int group = WOLFSSL_ML_KEM_1024;
1926+
#endif /* WOLFSSL_MLKEM_KYBER */
1927+
#elif !defined(WOLFSSL_NO_ML_KEM_768)
1928+
#ifdef WOLFSSL_MLKEM_KYBER
1929+
int group = WOLFSSL_KYBER_LEVEL3;
1930+
#else
1931+
int group = WOLFSSL_ML_KEM_768;
1932+
#endif /* WOLFSSL_MLKEM_KYBER */
1933+
#else
1934+
#ifdef WOLFSSL_MLKEM_KYBER
1935+
int group = WOLFSSL_KYBER_LEVEL1;
1936+
#else
1937+
int group = WOLFSSL_ML_KEM_512;
1938+
#endif /* WOLFSSL_MLKEM_KYBER */
19231939
#endif
1940+
19241941
AssertIntEQ(wolfSSL_CTX_set_groups(ctx, &group, 1), WOLFSSL_SUCCESS);
19251942
}
19261943

19271944
static void test_tls13_pq_groups_on_result(WOLFSSL* ssl)
19281945
{
1946+
#ifndef WOLFSSL_NO_ML_KEM_1024
19291947
#ifdef WOLFSSL_MLKEM_KYBER
19301948
AssertStrEQ(wolfSSL_get_curve_name(ssl), "KYBER_LEVEL5");
19311949
#else
19321950
AssertStrEQ(wolfSSL_get_curve_name(ssl), "ML_KEM_1024");
1951+
#endif /* WOLFSSL_MLKEM_KYBER */
1952+
#elif !defined(WOLFSSL_NO_ML_KEM_768)
1953+
#ifdef WOLFSSL_MLKEM_KYBER
1954+
AssertStrEQ(wolfSSL_get_curve_name(ssl), "KYBER_LEVEL3");
1955+
#else
1956+
AssertStrEQ(wolfSSL_get_curve_name(ssl), "ML_KEM_768");
1957+
#endif /* WOLFSSL_MLKEM_KYBER */
1958+
#else
1959+
#ifdef WOLFSSL_MLKEM_KYBER
1960+
AssertStrEQ(wolfSSL_get_curve_name(ssl), "KYBER_LEVEL1");
1961+
#else
1962+
AssertStrEQ(wolfSSL_get_curve_name(ssl), "ML_KEM_512");
1963+
#endif /* WOLFSSL_MLKEM_KYBER */
19331964
#endif
19341965
}
19351966
#endif
@@ -1938,7 +1969,9 @@ int test_tls13_pq_groups(void)
19381969
{
19391970
EXPECT_DECLS;
19401971
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && defined(WOLFSSL_TLS13) && \
1941-
defined(WOLFSSL_HAVE_MLKEM)
1972+
defined(WOLFSSL_HAVE_MLKEM) && !defined(WOLFSSL_MLKEM_NO_ENCAPSULATE) && \
1973+
!defined(WOLFSSL_MLKEM_NO_DECAPSULATE) && \
1974+
!defined(WOLFSSL_MLKEM_NO_MAKE_KEY)
19421975
callback_functions func_cb_client;
19431976
callback_functions func_cb_server;
19441977

tests/api/test_tls_ext.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ int test_wolfSSL_DisableExtendedMasterSecret(void)
134134
!defined(NO_CERTS) && !defined(NO_TLS) && (defined(OPENSSL_EXTRA) || \
135135
defined(OPENSSL_EXTRA_X509_SMALL)) && (defined(OPENSSL_ALL) || \
136136
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && \
137-
(defined(WOLFSSL_TLS13) || !defined(WOLFSSL_NO_TLS12))
137+
(defined(WOLFSSL_TLS13) || !defined(WOLFSSL_NO_TLS12)) && \
138+
defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
138139
struct client_cb_arg {
139140
WOLF_STACK_OF(X509_NAME) *names1;
140141
WOLF_STACK_OF(X509_NAME) *names2;
@@ -160,7 +161,8 @@ int test_certificate_authorities_certificate_request(void) {
160161
!defined(NO_CERTS) && !defined(NO_TLS) && (defined(OPENSSL_EXTRA) || \
161162
defined(OPENSSL_EXTRA_X509_SMALL)) && (defined(OPENSSL_ALL) || \
162163
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && \
163-
(defined(WOLFSSL_TLS13) || !defined(WOLFSSL_NO_TLS12))
164+
(defined(WOLFSSL_TLS13) || !defined(WOLFSSL_NO_TLS12)) && \
165+
defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
164166
struct test_params {
165167
method_provider client_meth;
166168
method_provider server_meth;
@@ -270,6 +272,9 @@ int test_certificate_authorities_certificate_request(void) {
270272
ExpectIntEQ(2, wolfSSL_sk_X509_NAME_num(names1));
271273
ExpectIntEQ(1, wolfSSL_sk_X509_NAME_num(names2));
272274

275+
#if !defined(NO_DH)
276+
SetDH(ssl_srv);
277+
#endif
273278

274279
/* Certs will be loaded in callback */
275280
wolfSSL_CTX_set_cert_cb(ctx_cli,
@@ -304,7 +309,8 @@ int test_certificate_authorities_certificate_request(void) {
304309
!defined(WOLFSSL_NO_CA_NAMES) && !defined(NO_BIO) && \
305310
!defined(NO_CERTS) && (defined(OPENSSL_EXTRA) || \
306311
defined(OPENSSL_EXTRA_X509_SMALL)) && (defined(OPENSSL_ALL) || \
307-
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && defined(WOLFSSL_TLS13)
312+
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && \
313+
defined(WOLFSSL_TLS13) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
308314
static int certificate_authorities_server_cb(WOLFSSL *ssl, void *_arg) {
309315
WOLF_STACK_OF(X509_NAME) **names_out = (WOLF_STACK_OF(X509_NAME) **)_arg;
310316
WOLF_STACK_OF(X509_NAME) *names = wolfSSL_get0_peer_CA_list(ssl);
@@ -323,7 +329,8 @@ int test_certificate_authorities_client_hello(void) {
323329
!defined(WOLFSSL_NO_CA_NAMES) && !defined(NO_BIO) && \
324330
!defined(NO_CERTS) && (defined(OPENSSL_EXTRA) || \
325331
defined(OPENSSL_EXTRA_X509_SMALL)) && (defined(OPENSSL_ALL) || \
326-
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && defined(WOLFSSL_TLS13)
332+
defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)) && \
333+
defined(WOLFSSL_TLS13) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
327334

328335
struct test_params {
329336
method_provider client_meth;

wolfcrypt/benchmark/benchmark.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5333,6 +5333,7 @@ void bench_aesxts(void)
53335333
goto exit;
53345334
}
53355335

5336+
#ifdef HAVE_AES_DECRYPT
53365337
RESET_MULTI_VALUE_STATS_VARS();
53375338

53385339
bench_stats_start(&count, &start);
@@ -5356,6 +5357,7 @@ void bench_aesxts(void)
53565357
#ifdef MULTI_VALUE_STATISTICS
53575358
bench_multi_value_stats(max, min, sum, squareSum, runs);
53585359
#endif
5360+
#endif
53595361

53605362
exit:
53615363

@@ -8201,6 +8203,7 @@ void bench_ascon_hash(void)
82018203

82028204
#ifdef WOLFSSL_CMAC
82038205

8206+
#if defined(WOLFSSL_AES_128) || defined(WOLFSSL_AES_256)
82048207
static void bench_cmac_helper(word32 keySz, const char* outMsg, int useDeviceID)
82058208
{
82068209
Cmac cmac;
@@ -8273,6 +8276,7 @@ static void bench_cmac_helper(word32 keySz, const char* outMsg, int useDeviceID)
82738276
bench_multi_value_stats(max, min, sum, squareSum, runs);
82748277
#endif
82758278
}
8279+
#endif
82768280

82778281
void bench_cmac(int useDeviceID)
82788282
{
@@ -8282,7 +8286,7 @@ void bench_cmac(int useDeviceID)
82828286
#ifdef WOLFSSL_AES_256
82838287
bench_cmac_helper(32, "AES-256-CMAC", useDeviceID);
82848288
#endif
8285-
8289+
(void)useDeviceID;
82868290
}
82878291
#endif /* WOLFSSL_CMAC */
82888292

wolfcrypt/src/aes.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13222,7 +13222,7 @@ int wc_AesXtsEncryptSector(XtsAes* aes, byte* out, const byte* in,
1322213222
return wc_AesXtsEncrypt(aes, out, in, sz, (const byte*)i, WC_AES_BLOCK_SIZE);
1322313223
}
1322413224

13225-
13225+
#ifdef HAVE_AES_DECRYPT
1322613226
/* Same process as wc_AesXtsDecrypt but uses a word64 type as the tweak value
1322713227
* instead of a byte array. This just converts the word64 to a byte array.
1322813228
*
@@ -13249,6 +13249,7 @@ int wc_AesXtsDecryptSector(XtsAes* aes, byte* out, const byte* in, word32 sz,
1324913249

1325013250
return wc_AesXtsDecrypt(aes, out, in, sz, (const byte*)i, WC_AES_BLOCK_SIZE);
1325113251
}
13252+
#endif
1325213253

1325313254
#ifdef WOLFSSL_AESNI
1325413255

@@ -13791,6 +13792,7 @@ int wc_AesXtsEncryptFinal(XtsAes* xaes, byte* out, const byte* in, word32 sz,
1379113792

1379213793
#endif /* WOLFSSL_AESXTS_STREAM */
1379313794

13795+
#ifdef HAVE_AES_DECRYPT
1379413796

1379513797
/* Same process as encryption but use aes_decrypt key.
1379613798
*
@@ -14230,6 +14232,7 @@ int wc_AesXtsDecryptFinal(XtsAes* xaes, byte* out, const byte* in, word32 sz,
1423014232
}
1423114233

1423214234
#endif /* WOLFSSL_AESXTS_STREAM */
14235+
#endif /* HAVE_AES_DECRYPT */
1423314236
#endif
1423414237

1423514238
/* Same as wc_AesXtsEncryptSector but the sector gets incremented by one every
@@ -14282,6 +14285,8 @@ int wc_AesXtsEncryptConsecutiveSectors(XtsAes* aes, byte* out, const byte* in,
1428214285
return ret;
1428314286
}
1428414287

14288+
#ifdef HAVE_AES_DECRYPT
14289+
1428514290
/* Same as wc_AesXtsEncryptConsecutiveSectors but Aes key is AES_DECRYPTION type
1428614291
*
1428714292
* xaes AES keys to use for block decrypt
@@ -14330,6 +14335,7 @@ int wc_AesXtsDecryptConsecutiveSectors(XtsAes* aes, byte* out, const byte* in,
1433014335

1433114336
return ret;
1433214337
}
14338+
#endif /* HAVE_AES_DECRYPT */
1433314339
#endif /* WOLFSSL_AES_XTS */
1433414340

1433514341
#ifdef WOLFSSL_AES_SIV

0 commit comments

Comments
 (0)