[tor-commits] [tor-browser/tor-browser-78.11.0esr-10.5-1] squash! Bug 28005: Implement .onion alias urlbar rewrites

sysrqb at torproject.org sysrqb at torproject.org
Thu Jun 24 13:21:47 UTC 2021


commit 9cb771f3026c5303e2700e392826a9e028e9b2d5
Author: Matthew Finkel <sysrqb at torproject.org>
Date:   Mon Jun 21 20:17:21 2021 +0000

    squash! Bug 28005: Implement .onion alias urlbar rewrites
    
    Bug 40456: Update the SecureDrop HTTPS-Everywhere update channel
    Bug 40478: Onion alias url rewrite is broken
---
 .../onionservices/HttpsEverywhereControl.jsm       | 32 ++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/browser/components/onionservices/HttpsEverywhereControl.jsm b/browser/components/onionservices/HttpsEverywhereControl.jsm
index c91db3e8de87..d673de4cd6e5 100644
--- a/browser/components/onionservices/HttpsEverywhereControl.jsm
+++ b/browser/components/onionservices/HttpsEverywhereControl.jsm
@@ -10,7 +10,7 @@ const { ExtensionMessaging } = ChromeUtils.import(
 const { setTimeout } = ChromeUtils.import("resource://gre/modules/Timer.jsm");
 
 const EXTENSION_ID = "https-everywhere-eff at eff.org";
-const SECUREDROP_TOR_ONION_CHANNEL = {
+const SECUREDROP_TOR_ONION_CHANNEL_2020 = {
   name: "SecureDropTorOnion",
   jwk: {
     kty: "RSA",
@@ -24,6 +24,20 @@ const SECUREDROP_TOR_ONION_CHANNEL = {
   replaces_default_rulesets: false,
 };
 
+const SECUREDROP_TOR_ONION_CHANNEL = {
+  name: "SecureDropTorOnion2021",
+  jwk: {
+    kty: "RSA",
+    e: "AQAB",
+    n:
+      "vsC7BNafkRe8Uh1DUgCkv6RbPQMdJgAKKnWdSqQd7tQzU1mXfmo_k1Py_2MYMZXOWmqSZ9iwIYkykZYywJ2VyMGve4byj1sLn6YQoOkG8g5Z3V4y0S2RpEfmYumNjTzfq8nxtLnwjaYd4sCUd5wa0SzeLrpRQuXo2bF3QuUF2xcbLJloxX1MmlsMMCdBc-qGNonLJ7bpn_JuyXlDWy1Fkeyw1qgjiOdiRIbMC1x302zgzX6dSrBrNB8Cpsh-vCE0ZjUo8M9caEv06F6QbYmdGJHM0ZZY34OHMSNdf-_qUKIV_SuxuSuFE99tkAeWnbWpyI1V-xhVo1sc7NzChP8ci2TdPvI3_0JyAuCvL6zIFqJUJkZibEUghhg6F09-oNJKpy7rhUJq7zZyLXJsvuXnn0gnIxfjRvMcDfZAKUVMZKRdw7fwWzwQril4Ib0MQOVda9vb_4JMk7Gup-TUI4sfuS4NKwsnKoODIO-2U5QpJWdtp1F4AQ1pBv8ajFl1WTrVGvkRGK0woPWaO6pWyJ4kRnhnxrV2FyNNt3JSR-0JEjhFWws47kjBvpr0VRiVRFppKA-plKs4LPlaaCff39TleYmY3mETe3w1GIGc2Lliad32Jpbx496IgDe1K3FMBEoKFZfhmtlRSXft8NKgSzPt2zkatM9bFKfaCYRaSy7akbk",
+  },
+  update_path_prefix: "https://securedrop.org/https-everywhere-2021/",
+  scope:
+    "^https?:\\/\\/[a-z0-9-]+(?:\\.[a-z0-9-]+)*\\.securedrop\\.tor\\.onion\\/",
+  replaces_default_rulesets: false,
+};
+
 class HttpsEverywhereControl {
   constructor() {
     this._extensionMessaging = null;
@@ -56,6 +70,20 @@ class HttpsEverywhereControl {
     // for that here.
     await HttpsEverywhereControl.wait();
 
+    try {
+      // Delete the previous channel signing key, and add the new one below.
+      await this._sendMessage(
+        "delete_update_channel",
+        SECUREDROP_TOR_ONION_CHANNEL_2020.name
+      );
+    } catch (e) {
+      if (retries <= 0) {
+        throw new Error("Could not uninstall SecureDropTorOnion update channel");
+      }
+      await this.installTorOnionUpdateChannel(retries - 1);
+      return;
+    }
+
     try {
       // TODO: we may want a way to "lock" this update channel, so that it cannot be modified
       // by the user via UI, but I think this is not possible at the time of writing via
@@ -89,7 +117,7 @@ class HttpsEverywhereControl {
    * Returns the timestamp of the last .tor.onion update channel update.
    */
   async getRulesetTimestamp() {
-    const rulesets = await this._sendMessage("get_ruleset_timestamps");
+    const rulesets = await this._sendMessage("get_update_channel_timestamps");
     const securedrop =
       rulesets &&
       rulesets.find(([{ name }]) => name === SECUREDROP_TOR_ONION_CHANNEL.name);



More information about the tor-commits mailing list