diff --git a/security/manager/ssl/src/nsNSSCallbacks.cpp b/security/manager/ssl/src/nsNSSCallbacks.cpp index bd7a16f9f8..742167b0d1 100644 --- a/security/manager/ssl/src/nsNSSCallbacks.cpp +++ b/security/manager/ssl/src/nsNSSCallbacks.cpp @@ -1242,11 +1242,16 @@ void HandshakeCallback(PRFileDesc* fd, void* client_data) { } PRBool siteSupportsSafeRenego; - rv = SSL_HandshakeNegotiatedExtension(fd, ssl_renegotiation_info_xtn, - &siteSupportsSafeRenego); - MOZ_ASSERT(rv == SECSuccess); - if (rv != SECSuccess) { - siteSupportsSafeRenego = false; + if (channelInfo.protocolVersion != SSL_LIBRARY_VERSION_TLS_1_3) { + rv = SSL_HandshakeNegotiatedExtension(fd, ssl_renegotiation_info_xtn, + &siteSupportsSafeRenego); + MOZ_ASSERT(rv == SECSuccess); + if (rv != SECSuccess) { + siteSupportsSafeRenego = false; + } + } else { + // TLS 1.3 dropped support for renegotiation. + siteSupportsSafeRenego = true; } bool renegotiationUnsafe = !siteSupportsSafeRenego && ioLayerHelpers.treatUnsafeNegotiationAsBroken();