Fix clienthellotest with TLSv1.3
authorMatt Caswell <matt@openssl.org>
Wed, 7 Feb 2018 10:55:02 +0000 (10:55 +0000)
committerMatt Caswell <matt@openssl.org>
Wed, 7 Feb 2018 21:34:18 +0000 (21:34 +0000)
If TLSv1.3 is enabled and combined with other options that extend the
size of the ClientHello, then the clienthello test can sometimes fail
because the ClientHello has grown too large. Part of the purpose of the
test is to check that the padding extension works properly. This requires
the ClientHello size to be kept within certain bounds.

By restricting the number of ciphersuites sent we can reduce the size of
the ClientHello.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5266)

test/clienthellotest.c

index 88e0a1c66aa00932f9b8b9ad76d6c2428ea163d4..f3e9588e5113aa68c79e78cabadb05acbcab7afc 100644 (file)
@@ -87,6 +87,15 @@ static int test_client_hello(int currtest)
         break;
 
     case TEST_ADD_PADDING_AND_PSK:
+        /*
+         * In this case we're doing TLSv1.3 and we're sending a PSK so the
+         * ClientHello is already going to be quite long. To avoid getting one
+         * that is too long for this test we use a restricted ciphersuite list
+         */
+        if (!TEST_true(SSL_CTX_set_cipher_list(ctx,
+                                               "TLS13-AES-128-GCM-SHA256")))
+            goto end;
+         /* Fall through */
     case TEST_ADD_PADDING:
     case TEST_PADDING_NOT_NEEDED:
         SSL_CTX_set_options(ctx, SSL_OP_TLSEXT_PADDING);