Add an Ed448 malleability test
[openssl.git] / test / tls13ccstest.c
index ef4a75ba351199625ef752c6a25052324565f221..92e9d598ca7fbac3fbf3a551ee9dc97886edb084 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
  *
  * Licensed under the OpenSSL license (the "License").  You may not use
  * this file except in compliance with the License.  You can obtain a copy
 static char *cert = NULL;
 static char *privkey = NULL;
 
-BIO *s_to_c_fbio = NULL, *c_to_s_fbio = NULL;
-int chseen = 0, shseen = 0, sccsseen = 0, ccsaftersh = 0, ccsbeforesh = 0;
-int sappdataseen = 0, cappdataseen = 0, badccs = 0, badvers = 0, badsessid = 0;
+static BIO *s_to_c_fbio = NULL, *c_to_s_fbio = NULL;
+static int chseen = 0, shseen = 0, sccsseen = 0, ccsaftersh = 0;
+static int ccsbeforesh = 0, sappdataseen = 0, cappdataseen = 0, badccs = 0;
+static int badvers = 0, badsessid = 0;
 
-unsigned char chsessid[SSL_MAX_SSL_SESSION_ID_LENGTH];
-size_t chsessidlen = 0;
+static unsigned char chsessid[SSL_MAX_SSL_SESSION_ID_LENGTH];
+static size_t chsessidlen = 0;
 
 static int watchccs_new(BIO *bi);
 static int watchccs_free(BIO *a);
@@ -36,7 +37,7 @@ static int watchccs_puts(BIO *bp, const char *str);
 
 static BIO_METHOD *method_watchccs = NULL;
 
-static const BIO_METHOD *bio_f_watchccs_filter()
+static const BIO_METHOD *bio_f_watchccs_filter(void)
 {
     if (method_watchccs == NULL) {
         method_watchccs = BIO_meth_new(BIO_TYPE_WATCHCCS_FILTER,
@@ -117,7 +118,7 @@ static int watchccs_write(BIO *bio, const char *in, int inl)
                 return 0;
             if (msgtype == SSL3_MT_CLIENT_HELLO) {
                 chseen++;
-                expectedrecvers = TLS1_VERSION;
+
                 /*
                  * Skip legacy_version (2 bytes) and Random (32 bytes) to read
                  * session_id.
@@ -127,6 +128,8 @@ static int watchccs_write(BIO *bio, const char *in, int inl)
                     return 0;
 
                 if (chseen == 1) {
+                    expectedrecvers = TLS1_VERSION;
+
                     /* Save the session id for later */
                     chsessidlen = PACKET_remaining(&sessionid);
                     if (!PACKET_copy_bytes(&sessionid, chsessid, chsessidlen))
@@ -252,7 +255,10 @@ static int test_tls13ccs(int tst)
     chsessidlen = 0;
 
     if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
-                                       &sctx, &cctx, cert, privkey)))
+                                       TLS1_VERSION, TLS_MAX_VERSION,
+                                       &sctx, &cctx, cert, privkey))
+        || !TEST_true(SSL_CTX_set_max_early_data(sctx,
+                                                 SSL3_RT_MAX_PLAIN_LENGTH)))
         goto err;
 
     /*