[tor-commits] [torbutton/master] Bug 1624: Use nsIDOMCrypto::logout() if available.

mikeperry at torproject.org mikeperry at torproject.org
Sat Mar 12 21:54:09 UTC 2011


commit c3e547482161b45bfdab76be7471acbc54510ad7
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Sat Mar 12 13:52:42 2011 -0800

    Bug 1624: Use nsIDOMCrypto::logout() if available.
    
    This is the new official way of clearing SSL Session IDs and other TLS state.
---
 src/chrome/content/torbutton.js |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 3fe8145..5170be1 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1562,13 +1562,22 @@ function torbutton_update_status(mode, force_update) {
         auth.clearAll();
     }
 
-    // This clears the SSL Identifier Cache.
-    // See https://bugzilla.mozilla.org/show_bug.cgi?id=448747 and
-    // http://mxr.mozilla.org/security/source/security/manager/ssl/src/nsNSSComponent.cpp#2134
-    m_tb_prefs.setBoolPref("security.enable_ssl2", 
-            !m_tb_prefs.getBoolPref("security.enable_ssl2"));
-    m_tb_prefs.setBoolPref("security.enable_ssl2", 
-            !m_tb_prefs.getBoolPref("security.enable_ssl2"));
+    try {
+      var secMgr = Cc["@mozilla.org/security/crypto;1"].
+                   getService(Ci.nsIDOMCrypto);
+      secMgr.logout();
+      torbutton_log(3, "nsIDOMCrypto logout succeeded");
+    } catch(e) {
+      torbutton_log(4, "Failed to use nsIDOMCrypto to clear SSL Session ids. Falling back to old method. Error: "+e);
+
+      // This clears the SSL Identifier Cache.
+      // See https://bugzilla.mozilla.org/show_bug.cgi?id=448747 and
+      // http://mxr.mozilla.org/security/source/security/manager/ssl/src/nsNSSComponent.cpp#2134
+      m_tb_prefs.setBoolPref("security.enable_ssl2", 
+          !m_tb_prefs.getBoolPref("security.enable_ssl2"));
+      m_tb_prefs.setBoolPref("security.enable_ssl2", 
+          !m_tb_prefs.getBoolPref("security.enable_ssl2"));
+    }
 
     // This clears the undo tab history.
     var tabs = m_tb_prefs.getIntPref("browser.sessionstore.max_tabs_undo");



More information about the tor-commits mailing list