summaryrefslogtreecommitdiff
path: root/tests/resume.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/resume.c')
-rw-r--r--tests/resume.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/tests/resume.c b/tests/resume.c
index cc46e294ef..11073721b3 100644
--- a/tests/resume.c
+++ b/tests/resume.c
@@ -83,6 +83,7 @@ struct params_res {
pid_t child;
struct params_res resume_tests[] = {
+#ifndef TLS13
{.desc = "try to resume from db",
.enable_db = 1,
.enable_session_ticket_server = 0,
@@ -114,6 +115,7 @@ struct params_res resume_tests[] = {
.expect_resume = 0,
.first_no_ext_master = 1,
.second_no_ext_master = 0},
+#endif
{.desc = "try to resume from session ticket",
.enable_db = 0,
.enable_session_ticket_server = 1,
@@ -125,6 +127,7 @@ struct params_res resume_tests[] = {
.enable_session_ticket_client = 1,
.try_resumed_data = 1,
.expect_resume = 1},
+#ifndef TLS13
{.desc = "try to resume from session ticket (ext master secret -> none)",
.enable_db = 0,
.enable_session_ticket_server = 1,
@@ -169,6 +172,7 @@ struct params_res resume_tests[] = {
.enable_db = 1,
.try_sni = 1,
.expect_resume = 1},
+#endif
{.desc = "try to resume with ticket and same SNI",
.enable_session_ticket_server = 1,
.enable_session_ticket_client = 1,
@@ -288,6 +292,9 @@ static void verify_group(gnutls_session_t session, gnutls_group_t *group, unsign
#ifdef TLS12
# define VERS_STR "+VERS-TLS1.2"
#endif
+#ifdef TLS13
+# define VERS_STR "-VERS-ALL:+VERS-TLS1.3"
+#endif
static void client(int sds[], struct params_res *params)
{
@@ -412,24 +419,7 @@ static void client(int sds[], struct params_res *params)
ext_master_secret_check = 0;
if (t == 0) {
ext_master_secret_check = gnutls_session_ext_master_secret_status(session);
-
- /* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
- if (ret < 0)
- fail("Getting resume data failed\n");
-
} else { /* the second time we connect */
- if (params->try_resumed_data) {
- gnutls_free(session_data.data);
- ret =
- gnutls_session_get_data2(session,
- &session_data);
- if (ret < 0)
- fail("Getting resume data failed\n");
- }
-
/* check if we actually resumed the previous session */
if (gnutls_session_is_resumed(session) != 0) {
if (params->expect_resume) {
@@ -454,7 +444,9 @@ static void client(int sds[], struct params_res *params)
gnutls_record_send(session, MSG, strlen(MSG));
- ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ do {
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ } while (ret == GNUTLS_E_AGAIN);
if (ret == 0) {
if (debug)
success
@@ -473,6 +465,16 @@ static void client(int sds[], struct params_res *params)
fputs("\n", stdout);
}
+ if (t == 0 || params->try_resumed_data) {
+ gnutls_free(session_data.data);
+ /* get the session data size */
+ ret =
+ gnutls_session_get_data2(session,
+ &session_data);
+ if (ret < 0)
+ fail("Getting resume data failed\n");
+ }
+
gnutls_bye(session, GNUTLS_SHUT_RDWR);
close(sd);