Bug 1305561 - Do not check renego extension when TLS version is 1.3. r=keeler draft
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Tue, 27 Sep 2016 20:06:22 +0900
changeset 418329 32e1e28bad773bd7333468b6f93d01cc05ab4321
parent 417914 66a77b9bfe5dcacd50eccf85de7c0e7e15ce0ffd
child 532334 379d0fe4c400642644cda8aee9688a2f20946ecf
push id30670
push userVYV03354@nifty.ne.jp
push dateWed, 28 Sep 2016 11:06:10 +0000
reviewerskeeler
bugs1305561
milestone52.0a1
Bug 1305561 - Do not check renego extension when TLS version is 1.3. r=keeler MozReview-Commit-ID: JtT6hLcbl3W
security/manager/ssl/nsNSSCallbacks.cpp
--- a/security/manager/ssl/nsNSSCallbacks.cpp
+++ b/security/manager/ssl/nsNSSCallbacks.cpp
@@ -1185,21 +1185,26 @@ void HandshakeCallback(PRFileDesc* fd, v
           infoObject->IsFullHandshake()
             ? Telemetry::SSL_SYMMETRIC_CIPHER_FULL
             : Telemetry::SSL_SYMMETRIC_CIPHER_RESUMED,
           cipherInfo.symCipher);
     }
   }
 
   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();
 
 
   /* Set the SSL Status information */
   RefPtr<nsSSLStatus> status(infoObject->SSLStatus());
   if (!status) {