From b787465b426498c82887bfe5e10adf6d919631e0 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 27 Mar 2019 10:27:09 -0600 Subject: [PATCH] adjust TLS 1.3 capable check --- src/internal.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/internal.c b/src/internal.c index f971fe18d..f66985b79 100644 --- a/src/internal.c +++ b/src/internal.c @@ -17869,6 +17869,30 @@ exit_dpk: return ret; } +#ifdef WOLFSSL_TLS13 + /* returns 1 if able to do TLS 1.3 otherwise 0 */ + static int TLSv1_3_Capable(WOLFSSL* ssl) + { + #ifndef WOLFSSL_TLS13 + return 0; + #else + int ret = 0; + + if (IsAtLeastTLSv1_3(ssl->ctx->method->version)) { + ret = 1; + } + + #ifdef OPENSSL_EXTRA + if ((wolfSSL_get_options(ssl) & SSL_OP_NO_TLSv1_3)) { + /* option set at run time to disable TLS 1.3 */ + ret = 0; + } + #endif + return ret; + #endif + } +#endif /* WOLFSSL_TLS13 */ + int CompleteServerHello(WOLFSSL* ssl) { int ret; @@ -17878,7 +17902,7 @@ exit_dpk: TLS13_DOWNGRADE_SZ - 1; byte vers = ssl->arrays->serverRandom[RAN_LEN - 1]; #ifdef WOLFSSL_TLS13 - if (IsAtLeastTLSv1_3(ssl->ctx->method->version)) { + if (TLSv1_3_Capable(ssl)) { /* TLS v1.3 capable client not allowed to downgrade when * connecting to TLS v1.3 capable server unless cipher suite * demands it.