diff options
author | Daiki Ueno <dueno@redhat.com> | 2018-04-17 13:32:18 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2018-05-26 04:12:04 +0000 |
commit | 4d2c44d049cd360d8cb925d8e40645d4c6b44cfc (patch) | |
tree | 3131f611b73a1033dbc5dfaa5234e8296297752c /tests/resume.c | |
parent | f6b1a99b05c590d4f9d43a0891e6ddb70886926e (diff) | |
download | gnutls-4d2c44d049cd360d8cb925d8e40645d4c6b44cfc.tar.gz |
tests: exercise TLS 1.3 session resumption
This requires a few changes to the resume.c test: because
NewSessionTicket is a post-handshake message,
gnutls_session_get_data2() needs to be called after sending the first
application data. Also, when GNUTLS_E_AGAIN, gnutls_record_recv()
needs to retry.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
Diffstat (limited to 'tests/resume.c')
-rw-r--r-- | tests/resume.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/resume.c b/tests/resume.c index cc46e294ef..b23dbe1a28 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) { @@ -454,7 +461,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 |