Skip to content

Commit a631611

Browse files
Merge pull request wolfSSL#9716 from SparkiDev/regression_fixes_22
Regression test fixes
2 parents ba3653d + bc9e371 commit a631611

27 files changed

+516
-271
lines changed

.github/workflows/os-check.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ jobs:
7171
'--enable-sessionexport --enable-dtls --enable-dtls13',
7272
'--enable-sessionexport',
7373
'--disable-examples CPPFLAGS=-DWOLFSSL_NO_MALLOC',
74+
'CPPFLAGS=-DNO_WOLFSSL_CLIENT',
75+
'CPPFLAGS=-DNO_WOLFSSL_SERVER',
76+
'CPPFLAGS=-DWOLFSSL_NO_CLIENT_AUTH',
77+
'CPPFLAGS=''-DNO_WOLFSSL_CLIENT -DWOLFSSL_NO_CLIENT_AUTH''',
78+
'CPPFLAGS=''-DNO_WOLFSSL_SERVER -DWOLFSSL_NO_CLIENT_AUTH''',
79+
'--enable-all CPPFLAGS=-DNO_WOLFSSL_CLIENT',
80+
'--enable-all CPPFLAGS=-DNO_WOLFSSL_SERVER',
81+
'--enable-all CPPFLAGS=-DWOLFSSL_NO_CLIENT_AUTH',
82+
'--enable-all CPPFLAGS=''-DNO_WOLFSSL_CLIENT -DWOLFSSL_NO_CLIENT_AUTH''',
83+
'--enable-all CPPFLAGS=''-DNO_WOLFSSL_SERVER -DWOLFSSL_NO_CLIENT_AUTH''',
7484
]
7585
name: make check
7686
if: github.repository_owner == 'wolfssl'

examples/client/client.c

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,8 +1209,10 @@ static const char* client_usage_msg[][79] = {
12091209
#endif
12101210
"-l <str> Cipher suite list (: delimited)\n", /* 8 */
12111211
#ifndef NO_CERTS
1212+
#ifndef WOLFSSL_NO_CLIENT_AUTH
12121213
"-c <file> Certificate file, default", /* 9 */
12131214
"-k <file> Key file, default", /* 10 */
1215+
#endif
12141216
"-A <file> Certificate Authority file, default", /* 11 */
12151217
#endif
12161218
#ifndef NO_DH
@@ -1261,7 +1263,7 @@ static const char* client_usage_msg[][79] = {
12611263
" The string parameter is optional.\n", /* 29 */
12621264
#endif
12631265
"-f Fewer packets/group messages\n", /* 30 */
1264-
#ifndef NO_CERTS
1266+
#if !defined(NO_CERTS) && !defined(WOLFSSL_NO_CLIENT_AUTH)
12651267
"-x Disable client cert/key loading\n", /* 31 */
12661268
#endif
12671269
"-X Driven by eXternal test case\n", /* 32 */
@@ -1329,7 +1331,8 @@ static const char* client_usage_msg[][79] = {
13291331
#ifdef HAVE_CURVE25519
13301332
"-t Use X25519 for key exchange\n", /* 56 */
13311333
#endif
1332-
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
1334+
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH) && \
1335+
!defined(WOLFSSL_NO_CLIENT_AUTH)
13331336
"-Q Support requesting certificate post-handshake\n", /* 57 */
13341337
#endif
13351338
#ifdef WOLFSSL_EARLY_DATA
@@ -1467,8 +1470,10 @@ static const char* client_usage_msg[][79] = {
14671470
#endif
14681471
"-l <str> 暗号スイートリスト (区切り文字 :)\n", /* 8 */
14691472
#ifndef NO_CERTS
1473+
#ifndef WOLFSSL_NO_CLIENT_AUTH
14701474
"-c <file> 証明書ファイル, 既定値", /* 9 */
14711475
"-k <file> 鍵ファイル, 既定値", /* 10 */
1476+
#endif
14721477
"-A <file> 認証局ファイル, 既定値", /* 11 */
14731478
#endif
14741479
#ifndef NO_DH
@@ -1518,7 +1523,7 @@ static const char* client_usage_msg[][79] = {
15181523
"-i <str> クライアント主導のネゴシエーションを強制する\n", /* 29 */
15191524
#endif
15201525
"-f より少ないパケット/グループメッセージを使用する\n",/* 30 */
1521-
#ifndef NO_CERTS
1526+
#if !defined(NO_CERTS) && !defined(WOLFSSL_NO_CLIENT_AUTH)
15221527
"-x クライアントの証明書/鍵のロードを無効する\n", /* 31 */
15231528
#endif
15241529
"-X 外部テスト・ケースにより動作する\n", /* 32 */
@@ -1589,7 +1594,8 @@ static const char* client_usage_msg[][79] = {
15891594
#ifdef HAVE_CURVE25519
15901595
"-t X25519を鍵交換に使用する\n", /* 56 */
15911596
#endif
1592-
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
1597+
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH) && \
1598+
!defined(WOLFSSL_NO_CLIENT_AUTH)
15931599
"-Q ポストハンドシェークの証明要求をサポートする\n", /* 57 */
15941600
#endif
15951601
#ifdef WOLFSSL_EARLY_DATA
@@ -1766,8 +1772,10 @@ static void Usage(void)
17661772
#endif
17671773
printf("%s", msg[++msgid]); /* -l */
17681774
#ifndef NO_CERTS
1775+
#ifndef WOLFSSL_NO_CLIENT_AUTH
17691776
printf("%s %s\n", msg[++msgid], cliCertFile); /* -c */
17701777
printf("%s %s\n", msg[++msgid], cliKeyFile); /* -k */
1778+
#endif
17711779
printf("%s %s\n", msg[++msgid], caCertFile); /* -A */
17721780
#endif
17731781
#ifndef NO_DH
@@ -1805,7 +1813,7 @@ static void Usage(void)
18051813
printf("%s", msg[++msgid]); /* -i */
18061814
#endif
18071815
printf("%s", msg[++msgid]); /* -f */
1808-
#ifndef NO_CERTS
1816+
#if !defined(NO_CERTS) && !defined(WOLFSSL_NO_CLIENT_AUTH)
18091817
printf("%s", msg[++msgid]); /* -x */
18101818
#endif
18111819
printf("%s", msg[++msgid]); /* -X */
@@ -1868,7 +1876,8 @@ static void Usage(void)
18681876
#ifdef HAVE_CURVE25519
18691877
printf("%s", msg[++msgid]); /* -t */
18701878
#endif
1871-
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
1879+
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH) && \
1880+
!defined(WOLFSSL_NO_CLIENT_AUTH)
18721881
printf("%s", msg[++msgid]); /* -Q */
18731882
#endif
18741883
#ifdef WOLFSSL_EARLY_DATA
@@ -2823,7 +2832,8 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
28232832

28242833
case 'Q' :
28252834
#if defined(WOLFSSL_TLS13) && \
2826-
defined(WOLFSSL_POST_HANDSHAKE_AUTH)
2835+
defined(WOLFSSL_POST_HANDSHAKE_AUTH) && \
2836+
!defined(WOLFSSL_NO_CLIENT_AUTH)
28272837
postHandAuth = 1;
28282838
#endif
28292839
break;

scripts/crl-revoked.test

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
#!/usr/bin/env bash
22

3+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
4+
&& exit 1
5+
6+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
7+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
8+
exit 77
9+
fi
10+
311
#crl.test
412
# if we can, isolate the network namespace to eliminate port collisions.
513
if [[ -n "$NETWORK_UNSHARE_HELPER" ]]; then

scripts/dtlscid.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@
33
# dtlscid.test
44
# Copyright wolfSSL 2022-2024
55

6+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
7+
&& exit 0
8+
9+
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
10+
&& exit 0
11+
12+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
13+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
14+
exit 77
15+
fi
16+
17+
if ! ./examples/server/server | grep "Server not compiled in!" ; then
18+
echo 'skipping crl-revoked.test because server not compiled in.' 1>&2
19+
exit 77
20+
fi
21+
622
# if we can, isolate the network namespace to eliminate port collisions.
723
if [[ -n "$NETWORK_UNSHARE_HELPER" ]]; then
824
if [[ -z "$NETWORK_UNSHARE_HELPER_CALLED" ]]; then

scripts/ocsp-stapling-with-ca-as-responder.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,22 @@ if [[ -z "${RETRIES_REMAINING-}" ]]; then
2323
export RETRIES_REMAINING=2
2424
fi
2525

26+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
27+
&& exit 1
28+
29+
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
30+
&& exit 1
31+
32+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
33+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
34+
exit 77
35+
fi
36+
37+
if ! ./examples/server/server | grep "Server not compiled in!" ; then
38+
echo 'skipping crl-revoked.test because server not compiled in.' 1>&2
39+
exit 77
40+
fi
41+
2642
if ! ./examples/client/client -V | grep -q 3; then
2743
echo 'skipping ocsp-stapling-with-ca-as-responder.test because TLS1.2 is not available.' 1>&2
2844
exit 77

scripts/ocsp-stapling.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,22 @@ if test "$WOLFSSL_EXTERNAL_TEST" == "0"; then
1717
exit 77
1818
fi
1919

20+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
21+
&& exit 1
22+
23+
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
24+
&& exit 1
25+
26+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
27+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
28+
exit 77
29+
fi
30+
31+
if ! ./examples/server/server | grep "Server not compiled in!" ; then
32+
echo 'skipping crl-revoked.test because server not compiled in.' 1>&2
33+
exit 77
34+
fi
35+
2036
if ! ./examples/client/client -V | grep -q 3; then
2137
echo 'skipping ocsp-stapling.test because TLS1.2 is not available.' 1>&2
2238
exit 77

scripts/ocsp-stapling2.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ if [[ -z "${RETRIES_REMAINING-}" ]]; then
2424
export RETRIES_REMAINING=2
2525
fi
2626

27+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
28+
&& exit 1
29+
30+
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
31+
&& exit 1
32+
33+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
34+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
35+
exit 77
36+
fi
37+
38+
if ! ./examples/server/server | grep "Server not compiled in!" ; then
39+
echo 'skipping crl-revoked.test because server not compiled in.' 1>&2
40+
exit 77
41+
fi
42+
2743
if ! ./examples/client/client -V | grep -q 3; then
2844
echo 'skipping ocsp-stapling2.test because TLS1.2 is not available.' 1>&2
2945
exit 77

scripts/ocsp-stapling_tls13multi.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ if [[ -z "${RETRIES_REMAINING-}" ]]; then
2424
export RETRIES_REMAINING=2
2525
fi
2626

27+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
28+
&& exit 1
29+
30+
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
31+
&& exit 1
32+
33+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
34+
echo 'skipping crl-revoked.test because client not compiled in.' 1>&2
35+
exit 77
36+
fi
37+
38+
if ! ./examples/server/server | grep "Server not compiled in!" ; then
39+
echo 'skipping crl-revoked.test because server not compiled in.' 1>&2
40+
exit 77
41+
fi
42+
2743
if ! ./examples/client/client -V | grep -q 4; then
2844
tls13=no
2945

scripts/pkcallbacks.test

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
#pkcallbacks.test
44

5+
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
6+
&& exit 1
7+
8+
if ! ./examples/client/client | grep "Client not compiled in!" ; then
9+
echo 'skipping pkcallbacks.test because client not compiled in.' 1>&2
10+
exit 77
11+
fi
12+
513
# if we can, isolate the network namespace to eliminate port collisions.
614
if [[ -n "$NETWORK_UNSHARE_HELPER" ]]; then
715
if [[ -z "$NETWORK_UNSHARE_HELPER_CALLED" ]]; then

scripts/psk.test

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ fi
8888
if [ $? -eq 0 ]; then
8989
exit 0
9090
fi
91+
./examples/client/client '-?' 2>&1 | grep -- 'Disable client cert/key loading'
92+
if [ $? -eq 0 ]; then
93+
CLIENT_AUTH_ENABLED=1
94+
fi
9195

9296
# Usual psk server / psk client. This use case is tested in
9397
# tests/unit.test and is used here for just checking if PSK is enabled
@@ -144,19 +148,21 @@ if [ $? -ne 0 ]; then
144148
fi
145149
echo ""
146150

147-
# check fail if no auth, psk server with non psk client
148-
echo "Checking fail when not sending peer cert"
149-
port=0
150-
./examples/server/server -j -R "$ready_file" -p $port &
151-
server_pid=$!
152-
create_port
153-
./examples/client/client -x -p $port
154-
RESULT=$?
155-
remove_ready_file
156-
if [ $RESULT -eq 0 ]; then
157-
echo -e "\n\nClient connected when supposed to fail"
158-
do_cleanup
159-
exit 1
151+
if [ "$CLIENT_AUTH_ENABLED" != "" ]; then
152+
# check fail if no auth, psk server with non psk client
153+
echo "Checking fail when not sending peer cert"
154+
port=0
155+
./examples/server/server -j -R "$ready_file" -p $port &
156+
server_pid=$!
157+
create_port
158+
./examples/client/client -x -p $port
159+
RESULT=$?
160+
remove_ready_file
161+
if [ $RESULT -eq 0 ]; then
162+
echo -e "\n\nClient connected when supposed to fail"
163+
do_cleanup
164+
exit 1
165+
fi
160166
fi
161167
fi
162168

0 commit comments

Comments
 (0)