commit 4fd21e7c854d25c4ebf158bf287ddd3e05ae6b9c Author: Sukhbir Singh sukhbir@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