summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-04-23 18:59:41 +0000
committertb <>2023-04-23 18:59:41 +0000
commitaedbb67da548df0585f48b0c49d758c2366fea7f (patch)
tree8e2ef0fc4362e087ab7be216976b0cd6db4b81a4
parentfb7a7adad4b566192144a21e4c93b739671b0cae (diff)
downloadopenbsd-aedbb67da548df0585f48b0c49d758c2366fea7f.tar.gz
openbsd-aedbb67da548df0585f48b0c49d758c2366fea7f.tar.bz2
openbsd-aedbb67da548df0585f48b0c49d758c2366fea7f.zip
Fix the client test and the tlsext test to work with randomized
TLS extensions (this involves unrandomizing the extension order for the tests that rely on golden numbers.
-rw-r--r--src/regress/lib/libssl/client/Makefile4
-rw-r--r--src/regress/lib/libssl/client/clienttest.c9
-rw-r--r--src/regress/lib/libssl/tlsext/tlsexttest.c12
3 files changed, 21 insertions, 4 deletions
diff --git a/src/regress/lib/libssl/client/Makefile b/src/regress/lib/libssl/client/Makefile
index 5a54f80914..c8a05690a0 100644
--- a/src/regress/lib/libssl/client/Makefile
+++ b/src/regress/lib/libssl/client/Makefile
@@ -1,7 +1,7 @@
1# $OpenBSD: Makefile,v 1.3 2021/08/30 17:34:01 tb Exp $ 1# $OpenBSD: Makefile,v 1.4 2023/04/23 18:59:41 tb Exp $
2 2
3PROG= clienttest 3PROG= clienttest
4LDADD= -lssl -lcrypto 4LDADD= ${SSL_INT} -lcrypto
5DPADD= ${LIBSSL} ${LIBCRYPTO} 5DPADD= ${LIBSSL} ${LIBCRYPTO}
6WARNINGS= Yes 6WARNINGS= Yes
7CFLAGS+= -DLIBRESSL_INTERNAL -Werror 7CFLAGS+= -DLIBRESSL_INTERNAL -Werror
diff --git a/src/regress/lib/libssl/client/clienttest.c b/src/regress/lib/libssl/client/clienttest.c
index b0486d95f0..8ecc54467f 100644
--- a/src/regress/lib/libssl/client/clienttest.c
+++ b/src/regress/lib/libssl/client/clienttest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: clienttest.c,v 1.39 2022/07/19 20:16:50 tb Exp $ */ 1/* $OpenBSD: clienttest.c,v 1.40 2023/04/23 18:59:41 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -41,6 +41,8 @@
41 41
42#define TLS1_3_VERSION_ONLY (TLS1_3_VERSION | 0x10000) 42#define TLS1_3_VERSION_ONLY (TLS1_3_VERSION | 0x10000)
43 43
44int tlsext_linearize_build_order(SSL *);
45
44static const uint8_t cipher_list_dtls1[] = { 46static const uint8_t cipher_list_dtls1[] = {
45 0xc0, 0x14, 0xc0, 0x0a, 0x00, 0x39, 0xff, 0x85, 47 0xc0, 0x14, 0xc0, 0x0a, 0x00, 0x39, 0xff, 0x85,
46 0x00, 0x88, 0x00, 0x81, 0x00, 0x35, 0x00, 0x84, 48 0x00, 0x88, 0x00, 0x81, 0x00, 0x35, 0x00, 0x84,
@@ -649,6 +651,11 @@ client_hello_test(int testno, const struct client_hello_test *cht)
649 goto failure; 651 goto failure;
650 } 652 }
651 653
654 if (!tlsext_linearize_build_order(ssl)) {
655 fprintf(stderr, "failed to linearize build order");
656 goto failure;
657 }
658
652 BIO_up_ref(rbio); 659 BIO_up_ref(rbio);
653 BIO_up_ref(wbio); 660 BIO_up_ref(wbio);
654 SSL_set_bio(ssl, rbio, wbio); 661 SSL_set_bio(ssl, rbio, wbio);
diff --git a/src/regress/lib/libssl/tlsext/tlsexttest.c b/src/regress/lib/libssl/tlsext/tlsexttest.c
index 923c50d5aa..f5241c8f62 100644
--- a/src/regress/lib/libssl/tlsext/tlsexttest.c
+++ b/src/regress/lib/libssl/tlsext/tlsexttest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tlsexttest.c,v 1.79 2022/11/26 16:08:57 tb Exp $ */ 1/* $OpenBSD: tlsexttest.c,v 1.80 2023/04/23 18:59:41 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -36,6 +36,7 @@ struct tls_extension_funcs {
36const struct tls_extension *tls_extension_find(uint16_t, size_t *); 36const struct tls_extension *tls_extension_find(uint16_t, size_t *);
37const struct tls_extension_funcs *tlsext_funcs(const struct tls_extension *, 37const struct tls_extension_funcs *tlsext_funcs(const struct tls_extension *,
38 int); 38 int);
39int tlsext_linearize_build_order(SSL *);
39 40
40static int 41static int
41tls_extension_funcs(int type, const struct tls_extension_funcs **client_funcs, 42tls_extension_funcs(int type, const struct tls_extension_funcs **client_funcs,
@@ -3223,6 +3224,11 @@ test_tlsext_clienthello_build(void)
3223 goto err; 3224 goto err;
3224 } 3225 }
3225 3226
3227 if (!tlsext_linearize_build_order(ssl)) {
3228 FAIL("failed to linearize build order");
3229 goto err;
3230 }
3231
3226 if (!tls_extension_funcs(TLSEXT_TYPE_supported_versions, &client_funcs, 3232 if (!tls_extension_funcs(TLSEXT_TYPE_supported_versions, &client_funcs,
3227 &server_funcs)) 3233 &server_funcs))
3228 errx(1, "failed to fetch supported versions funcs"); 3234 errx(1, "failed to fetch supported versions funcs");
@@ -3339,6 +3345,10 @@ test_tlsext_serverhello_build(void)
3339 FAIL("failed to create SSL"); 3345 FAIL("failed to create SSL");
3340 goto err; 3346 goto err;
3341 } 3347 }
3348 if (!tlsext_linearize_build_order(ssl)) {
3349 FAIL("failed to linearize build order");
3350 goto err;
3351 }
3342 if ((ssl->session = SSL_SESSION_new()) == NULL) { 3352 if ((ssl->session = SSL_SESSION_new()) == NULL) {
3343 FAIL("failed to create session"); 3353 FAIL("failed to create session");
3344 goto err; 3354 goto err;