From fffd3adc30b41b632a4cdb2eccd00b7913a9d815 Mon Sep 17 00:00:00 2001 From: Anthony Hu Date: Mon, 12 Dec 2022 11:30:01 -0500 Subject: [PATCH 1/2] Warn that renegotiation in TLS 1.3 requires session ticket. --- examples/client/client.c | 13 ++++++++++++- examples/server/server.c | 6 ++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/examples/client/client.c b/examples/client/client.c index 80a0e0ee8..2b7fc44ff 100644 --- a/examples/client/client.c +++ b/examples/client/client.c @@ -2772,6 +2772,12 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args) } } +#ifndef HAVE_SESSION_TICKET + if ((version >= 4) && resumeSession) { + fprintf(stderr, "Can't do TLS 1.3 resumption; need session tickets!\n"); + } +#endif + #ifdef HAVE_WNR if (wc_InitNetRandom(wnrConfigFile, NULL, 5000) != 0) err_sys("can't load whitewood net random config file"); @@ -4268,7 +4274,12 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args) } #endif - wolfSSL_set_session(sslResume, session); + if (wolfSSL_set_session(sslResume, session) != WOLFSSL_SUCCESS) { + wolfSSL_free(sslResume); sslResume = NULL; + wolfSSL_CTX_free(ctx); ctx = NULL; + err_sys("error setting the session for resumption"); + } + #if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE) if (flatSession) { diff --git a/examples/server/server.c b/examples/server/server.c index ef9b52900..20d8ebe68 100644 --- a/examples/server/server.c +++ b/examples/server/server.c @@ -2302,6 +2302,12 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args) } } +#ifndef HAVE_SESSION_TICKET + if ((version >= 4) && resume) { + fprintf(stderr, "Can't do TLS 1.3 resumption; need session tickets!\n"); + } +#endif + #ifdef HAVE_WNR if (wc_InitNetRandom(wnrConfigFile, NULL, 5000) != 0) err_sys_ex(runWithErrors, "can't load whitewood net random config " From b017795413abffcab8e4d11f3f6678225b7ca6e7 Mon Sep 17 00:00:00 2001 From: Anthony Hu Date: Mon, 12 Dec 2022 11:44:27 -0500 Subject: [PATCH 2/2] Remove changes around wolfSSL_set_session() as it breaks tests. --- examples/client/client.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/examples/client/client.c b/examples/client/client.c index 2b7fc44ff..aa69ec7d9 100644 --- a/examples/client/client.c +++ b/examples/client/client.c @@ -4274,12 +4274,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args) } #endif - if (wolfSSL_set_session(sslResume, session) != WOLFSSL_SUCCESS) { - wolfSSL_free(sslResume); sslResume = NULL; - wolfSSL_CTX_free(ctx); ctx = NULL; - err_sys("error setting the session for resumption"); - } - + wolfSSL_set_session(sslResume, session); #if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE) if (flatSession) {