From 1d5b99eecc7aba06d0ffab4bcfaaa785aaf7d3bc Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Thu, 6 Dec 2018 09:41:22 +1000 Subject: [PATCH] Send EMS extension in ClientHello when downgradable from TLSv1.3 --- src/tls.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tls.c b/src/tls.c index a916eae4d..654788a55 100644 --- a/src/tls.c +++ b/src/tls.c @@ -9382,7 +9382,7 @@ int TLSX_GetRequestSize(WOLFSSL* ssl, byte msgType, word16* pLength) #ifdef HAVE_EXTENDED_MASTER if (msgType == client_hello && ssl->options.haveEMS && - !IsAtLeastTLSv1_3(ssl->version)) { + (!IsAtLeastTLSv1_3(ssl->version) || ssl->options.downgrade)) { length += HELLO_EXT_SZ; } #endif @@ -9483,7 +9483,8 @@ int TLSX_WriteRequest(WOLFSSL* ssl, byte* output, byte msgType, word16* pOffset) #ifdef HAVE_EXTENDED_MASTER if (msgType == client_hello && ssl->options.haveEMS && - !IsAtLeastTLSv1_3(ssl->version)) { + (!IsAtLeastTLSv1_3(ssl->version) || ssl->options.downgrade)) { + WOLFSSL_MSG("EMS extension to write"); c16toa(HELLO_EXT_EXTMS, output + offset); offset += HELLO_EXT_TYPE_SZ; c16toa(0, output + offset); @@ -9728,6 +9729,7 @@ int TLSX_WriteResponse(WOLFSSL *ssl, byte* output, byte msgType, word16* pOffset #ifdef HAVE_EXTENDED_MASTER if (ssl->options.haveEMS && msgType == server_hello && !IsAtLeastTLSv1_3(ssl->version)) { + WOLFSSL_MSG("EMS extension to write"); c16toa(HELLO_EXT_EXTMS, output + offset); offset += HELLO_EXT_TYPE_SZ; c16toa(0, output + offset);