[tor-commits] [torbirdy/master] Enable encrypted email headers (#21880)

sukhbir at torproject.org sukhbir at torproject.org
Tue Jul 11 16:52:16 UTC 2017


commit 4fd21e7c854d25c4ebf158bf287ddd3e05ae6b9c
Author: Sukhbir Singh <sukhbir at torproject.org>
Date:   Tue Jul 11 12:23:09 2017 -0400

    Enable encrypted email headers (#21880)
    
    See the ticket above for more information on what encrypted email
    headers are and how they work. This setting can be disabled using
    TorBirdy's preferences.
---
 chrome/content/preferences.js  | 21 +++++++++++++++++++--
 chrome/content/preferences.xul |  1 +
 chrome/locale/en/torbirdy.dtd  |  2 ++
 components/torbirdy.js         |  6 ++++++
 4 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/chrome/content/preferences.js b/chrome/content/preferences.js
index 8a91ddb..3906c67 100644
--- a/chrome/content/preferences.js
+++ b/chrome/content/preferences.js
@@ -372,6 +372,15 @@ if (!org.torbirdy.prefs) org.torbirdy.prefs = new function() {
       pub.prefs.setBoolPref(pub.prefBranch + 'enigmail.confirmemail', false);
     }
 
+    // Protected email headers - default: true
+    var enigmailProtectedPref = "extensions.enigmail.protectHeaders";
+    if (pub.enigmailProtected.checked) {
+      pub.prefs.setBoolPref(enigmailProtectedPref, false);
+      pub.prefs.setBoolPref(pub.prefBranch + 'enigmail.protected', false);
+    } else {
+      pub.prefs.setBoolPref(enigmailProtectedPref, true);
+      pub.prefs.setBoolPref(pub.prefBranch + 'enigmail.protected', true);
+    }
   };
 
   /*
@@ -396,6 +405,7 @@ if (!org.torbirdy.prefs) org.torbirdy.prefs = new function() {
     pub.enigmailKeyId = document.getElementById('torbirdy-enigmail-throwkeyid');
     pub.enigmailKeyserver = document.getElementById('torbirdy-enigmail-keyserver');
     pub.enigmailConfirmEmail = document.getElementById('torbirdy-confirm-email');
+    pub.enigmailProtected = document.getElementById('torbirdy-enigmail-protected');
     // Security.
     pub.secureRenegotiation = document.getElementById('torbirdy-renegotiation');
 
@@ -420,7 +430,7 @@ if (!org.torbirdy.prefs) org.torbirdy.prefs = new function() {
     }
 
     /*
-     PROXY
+     Proxy
     */
     // Load the preference values.
     var anonService = pub.prefs.getIntPref(pub.prefBranch + 'proxy');
@@ -486,7 +496,7 @@ if (!org.torbirdy.prefs) org.torbirdy.prefs = new function() {
       pub.fetchAllMails.checked = false;
     }
 
-    // Enigmal settings
+    // Enigmail
     // --throw-keyids - default: false
     if (pub.prefs.getBoolPref(pub.prefBranch + 'enigmail.throwkeyid')) {
       pub.enigmailKeyId.checked = true;
@@ -501,6 +511,13 @@ if (!org.torbirdy.prefs) org.torbirdy.prefs = new function() {
       pub.enigmailConfirmEmail.checked = false;
     }
 
+    // Protected email headers - default: true
+    if (pub.prefs.getBoolPref(pub.prefBranch + 'enigmail.protected')) {
+      pub.enigmailProtected.checked = false;
+    } else {
+      pub.enigmailProtected.checked = true;
+    }
+
     // Keyserver.
     var enigmailKeyserver = pub.customBranch + 'extensions.enigmail.keyserver';
     if (pub.prefs.prefHasUserValue(enigmailKeyserver)) {
diff --git a/chrome/content/preferences.xul b/chrome/content/preferences.xul
index 8db7230..2e3c168 100644
--- a/chrome/content/preferences.xul
+++ b/chrome/content/preferences.xul
@@ -136,6 +136,7 @@
           <vbox>
             <checkbox accesskey="&torbirdy.prefs.confirmemail.key;" id="torbirdy-confirm-email" label="&torbirdy.prefs.confirmemail.label;"/>
             <checkbox accesskey="&torbirdy.prefs.enigmail_throwkeyid.key;" id="torbirdy-enigmail-throwkeyid" label="&torbirdy.prefs.enigmail_throwkeyid.label;"/>
+            <checkbox accesskey="&torbirdy.prefs.enigmail_protected.key;" id="torbirdy-enigmail-protected" label="&torbirdy.prefs.enigmail_protected.label;"/>
             <separator class="thin" orient="horizontal"/>
             <vbox>
               <label accesskey="&torbirdy.prefs.enigmail.keyserver.key;" control="torbirdy-enigmail-keyserver" value="&torbirdy.prefs.enigmail.keyserver.label;"/>
diff --git a/chrome/locale/en/torbirdy.dtd b/chrome/locale/en/torbirdy.dtd
index 26d357e..c88803a 100644
--- a/chrome/locale/en/torbirdy.dtd
+++ b/chrome/locale/en/torbirdy.dtd
@@ -38,6 +38,8 @@
 <!ENTITY torbirdy.prefs.startup_folder.key "l">
 <!ENTITY torbirdy.prefs.enigmail_throwkeyid.label "Do not put the recipient key IDs into encrypted messages [default: put]">
 <!ENTITY torbirdy.prefs.enigmail_throwkeyid.key "r">
+<!ENTITY torbirdy.prefs.enigmail_protected.label "Disable encrypted email headers [default: enabled]">
+<!ENTITY torbirdy.prefs.enigmail_protected.key "d">
 <!ENTITY torbirdy.prefs.confirmemail.label "Confirm before sending email if Enigmail is enabled [default: do not confirm]">
 <!ENTITY torbirdy.prefs.confirmemail.key "c">
 <!ENTITY torbirdy.prefs.emailwizard.label "Enable Thunderbird's automatic email configuration wizard [default: disabled]">
diff --git a/components/torbirdy.js b/components/torbirdy.js
index e6177ba..4dafef9 100644
--- a/components/torbirdy.js
+++ b/components/torbirdy.js
@@ -279,6 +279,12 @@ var TorBirdyPrefs = {
   "extensions.enigmail.keyserver": "hkp://jirk5u4osbsr34t5.onion",
   // Force GnuPG to use SHA512.
   "extensions.enigmail.mimeHashAlgorithm": 5,
+  // Use encrypted email headers in Enigmail (Memory Hole standard)
+  // See https://bugs.torproject.org/21880 for the discussion as to why we are
+  // setting this in TorBirdy.  This preference is enabled by default but can
+  // be turned off (disabled) in TorBirdy's preferences if desired.
+  "extensions.enigmail.protectHeaders": true,
+  "extensions.enigmail.protectedSubjectText": "Encrypted Message",
 
   /*
     Chat and Calendar



More information about the tor-commits mailing list