Test ssl_pthread_server
Test ssl_pthread_server with both TLS 1.2 and TLS 1.3.
Test against both OpenSSL and GnuTLS.
In the server, flush more often. Otherwise, when stdout is redirected to a
file, the server gets killed before it writes important information, such as
the logs that we expect in the test cases.
Clean up compile-time requirements in ssl_pthread_server.c: any certificate-based
key exchange is ok, so don't insist on built-in RSA.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/opt-testcases/sample.sh b/tests/opt-testcases/sample.sh
index 82a95b8..4684172 100644
--- a/tests/opt-testcases/sample.sh
+++ b/tests/opt-testcases/sample.sh
@@ -118,3 +118,47 @@
-c "Description:.*TLS1.3" \
-S "error" \
-C "ERROR"
+
+requires_protocol_version tls12
+run_test "Sample: ssl_pthread_server, openssl client, TLS 1.2" \
+ -P 4433 \
+ "$PROGRAMS_DIR/ssl_pthread_server" \
+ "$O_CLI -tls1_2" \
+ 0 \
+ -s "Successful connection using: TLS-" \
+ -c "New, TLSv1.2, Cipher is" \
+ -S "error" \
+ -C "ERROR"
+
+requires_protocol_version tls12
+run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.2" \
+ -P 4433 \
+ "$PROGRAMS_DIR/ssl_pthread_server" \
+ "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
+ 0 \
+ -s "Successful connection using: TLS-" \
+ -c "Description:.*TLS1.2" \
+ -S "error" \
+ -C "ERROR"
+
+requires_protocol_version tls13
+run_test "Sample: ssl_pthread_server, openssl client, TLS 1.3" \
+ -P 4433 \
+ "$PROGRAMS_DIR/ssl_pthread_server" \
+ "$O_CLI -tls1_3" \
+ 0 \
+ -s "Successful connection using: TLS1-3-" \
+ -c "New, TLSv1.3, Cipher is" \
+ -S "error" \
+ -C "ERROR"
+
+requires_protocol_version tls13
+run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.3" \
+ -P 4433 \
+ "$PROGRAMS_DIR/ssl_pthread_server" \
+ "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
+ 0 \
+ -s "Successful connection using: TLS1-3-" \
+ -c "Description:.*TLS1.3" \
+ -S "error" \
+ -C "ERROR"
diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh
index 7715254..ca1b6ca 100755
--- a/tests/ssl-opt.sh
+++ b/tests/ssl-opt.sh
@@ -500,6 +500,7 @@
requires_config_enabled MBEDTLS_SSL_CLI_C
requires_certificate_authentication
;;
+ *"programs/ssl/ssl_pthread_server "*|\
*"programs/ssl/ssl_server "*)
requires_config_enabled MBEDTLS_CTR_DRBG_C
requires_config_enabled MBEDTLS_ENTROPY_C
@@ -509,6 +510,11 @@
;;
esac
+ case " $CMD_LINE " in
+ *"programs/ssl/ssl_pthread_server "*)
+ requires_config_enabled MBEDTLS_THREADING_PTHREAD;;
+ esac
+
case "$CMD_LINE" in
*[-_\ =]psk*|*[-_\ =]PSK*) :;; # No certificate requirement with PSK
*/server5*|\