summaryrefslogtreecommitdiff
path: root/tests/resume.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2016-03-31 10:29:59 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2016-03-31 13:28:49 +0200
commit56ed8adbbd9ebfad2baa44ae46ba4bf68abb7c57 (patch)
tree704a79d22dbfd52e5d5ed68d22112b6bcf9cbdf0 /tests/resume.c
parentbce688e262be66af47a92b9344819fcbe0520d39 (diff)
downloadgnutls-56ed8adbbd9ebfad2baa44ae46ba4bf68abb7c57.tar.gz
tests: check whether resumption data from resumed session work
Diffstat (limited to 'tests/resume.c')
-rw-r--r--tests/resume.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/resume.c b/tests/resume.c
index 724c0aea7b..d7951036a3 100644
--- a/tests/resume.c
+++ b/tests/resume.c
@@ -72,6 +72,7 @@ struct params_res {
int first_no_ext_master;
int second_no_ext_master;
int try_alpn;
+ int try_resumed_data;
};
pid_t child;
@@ -82,6 +83,12 @@ struct params_res resume_tests[] = {
.enable_session_ticket_server = 0,
.enable_session_ticket_client = 0,
.expect_resume = 1},
+ {.desc = "try to resume from db using resumed session's data",
+ .enable_db = 1,
+ .enable_session_ticket_server = 0,
+ .enable_session_ticket_client = 0,
+ .try_resumed_data = 1,
+ .expect_resume = 1},
{.desc = "try to resume from db and check ALPN",
.enable_db = 1,
.enable_session_ticket_server = 0,
@@ -107,6 +114,12 @@ struct params_res resume_tests[] = {
.enable_session_ticket_server = 1,
.enable_session_ticket_client = 1,
.expect_resume = 1},
+ {.desc = "try to resume from session ticket using resumed session's data",
+ .enable_db = 0,
+ .enable_session_ticket_server = 1,
+ .enable_session_ticket_client = 1,
+ .try_resumed_data = 1,
+ .expect_resume = 1},
{.desc = "try to resume from session ticket (ext master secret -> none)",
.enable_db = 0,
.enable_session_ticket_server = 1,
@@ -330,6 +343,14 @@ static void client(int sds[], struct params_res *params)
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) {
@@ -493,6 +514,7 @@ static void server(int sds[], struct params_res *params)
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, 20 * 1000);
+
do {
ret = gnutls_handshake(session);
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);