diff options
Diffstat (limited to 'tests/resume.c')
-rw-r--r-- | tests/resume.c | 38 |
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); |