/*
- * 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
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
#include <string.h>
#include "ssltestlib.h"
#include "testutil.h"
-#include "../ssl/packet_locl.h"
+#include "internal/packet.h"
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);
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,
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.
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))
sappdataseen = cappdataseen = badccs = badvers = badsessid = 0;
chsessidlen = 0;
- if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
- &sctx, &cctx, cert, privkey)))
+ if (!TEST_true(create_ssl_ctx_pair(NULL, TLS_server_method(),
+ TLS_client_method(), TLS1_VERSION, 0,
+ &sctx, &cctx, cert, privkey))
+ || !TEST_true(SSL_CTX_set_max_early_data(sctx,
+ SSL3_RT_MAX_PLAIN_LENGTH)))
goto err;
/*
if ((tst >= 3 && tst <= 5) || tst >= 9) {
/* HRR handshake */
+#if defined(OPENSSL_NO_EC)
+# if !defined(OPENSSL_NO_DH)
+ if (!TEST_true(SSL_CTX_set1_groups_list(sctx, "ffdhe3072")))
+ goto err;
+# endif
+#else
if (!TEST_true(SSL_CTX_set1_groups_list(sctx, "P-256")))
goto err;
+#endif
}
s_to_c_fbio = BIO_new(bio_f_watchccs_filter());
return ret;
}
+OPT_TEST_DECLARE_USAGE("certfile privkeyfile\n")
+
int setup_tests(void)
{
+ if (!test_skip_common_options()) {
+ TEST_error("Error parsing test options\n");
+ return 0;
+ }
+
if (!TEST_ptr(cert = test_get_argument(0))
|| !TEST_ptr(privkey = test_get_argument(1)))
return 0;