Add a test for setting initial SNI in CH but not using it with early_data
authorMatt Caswell <matt@openssl.org>
Wed, 11 Oct 2017 13:42:25 +0000 (14:42 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 12 Oct 2017 14:19:49 +0000 (15:19 +0100)
Test for the bug where early_data is not accepted by the server when it
does not have an SNI callback set up, but the client sent a servername in
the initial ClientHello establishing the session.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/4519)

test/sslapitest.c

index 5299d5794bd056f43cd94c866970aeaa773ae032..c1137b08a54fc8c97f631b61927d86cad72ab466 100644 (file)
@@ -1507,6 +1507,16 @@ static int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl,
                                       NULL, NULL)))
         return 0;
 
+    /*
+     * For one of the run throughs (doesn't matter which one), we'll try sending
+     * some SNI data in the initial ClientHello. This will be ignored (because
+     * there is no SNI cb set up by the server), so it should not impact
+     * early_data.
+     */
+    if (idx == 1
+            && !TEST_true(SSL_set_tlsext_host_name(*clientssl, "localhost")))
+        return 0;
+
     if (idx == 2) {
         /* Create the PSK */
         const SSL_CIPHER *cipher = NULL;