Bug 1316261 - Configure trust anchors list to be empty for WebRTC, r?drno, a=gchang draft
authorMartin Thomson <martin.thomson@gmail.com>
Tue, 29 Nov 2016 14:00:29 +1100
changeset 445106 e6288e84ac3f79f876a06f02e644c87985ea0fc3
parent 445105 80ef38cf3deb49fdb391cd48bf7668509305a4dc
child 538432 2c8aa1ee25bc4e6dc3c5679ed5bac4721b8bc672
push id37411
push usermartin.thomson@gmail.com
push dateTue, 29 Nov 2016 03:34:58 +0000
reviewersdrno, gchang
bugs1316261
milestone51.0
Bug 1316261 - Configure trust anchors list to be empty for WebRTC, r?drno, a=gchang MozReview-Commit-ID: CEdShfGj7tE
config/external/nss/nss.symbols
media/mtransport/transportlayerdtls.cpp
--- a/config/external/nss/nss.symbols
+++ b/config/external/nss/nss.symbols
@@ -682,16 +682,17 @@ SSL_PeerStapledOCSPResponses
 SSL_ResetHandshake
 SSL_SetCanFalseStartCallback
 SSL_SetDowngradeCheckVersion
 SSL_SetNextProtoNego
 SSL_SetPKCS11PinArg
 SSL_SetSockPeerID
 SSL_SetSRTPCiphers
 SSL_SetStapledOCSPResponses
+SSL_SetTrustAnchors
 SSL_SetURL
 SSL_ShutdownServerSessionIDCache
 SSL_SNISocketConfigHook
 SSL_VersionRangeGet
 SSL_VersionRangeGetDefault
 SSL_VersionRangeGetSupported
 SSL_VersionRangeSet
 SSL_VersionRangeSetDefault
--- a/media/mtransport/transportlayerdtls.cpp
+++ b/media/mtransport/transportlayerdtls.cpp
@@ -509,16 +509,23 @@ bool TransportLayerDtls::Setup() {
     rv = SSL_ConfigSecureServer(ssl_fd, identity_->cert(),
                                 identity_->privkey(),
                                 identity_->auth_type());
     if (rv != SECSuccess) {
       MOZ_MTLOG(ML_ERROR, "Couldn't set identity");
       return false;
     }
 
+    UniqueCERTCertList zero_certs(CERT_NewCertList());
+    rv = SSL_SetTrustAnchors(ssl_fd.get(), zero_certs.get());
+    if (rv != SECSuccess) {
+        MOZ_MTLOG(ML_ERROR, "Couldn't set trust anchors");
+        return false;
+    }
+
     // Insist on a certificate from the client
     rv = SSL_OptionSet(ssl_fd, SSL_REQUEST_CERTIFICATE, PR_TRUE);
     if (rv != SECSuccess) {
       MOZ_MTLOG(ML_ERROR, "Couldn't request certificate");
       return false;
     }
 
     rv = SSL_OptionSet(ssl_fd, SSL_REQUIRE_CERTIFICATE, PR_TRUE);