[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#931126: unblock: enigmail/2:2.0.11+ds1-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Control: affects -1 src:enigmail
X-debbugs-cc: Salvatore Bonaccorso <carnil@debian.org>, Moritz Mühlenhoff <jmm@inutil.org>

Please unblock package enigmail

enigmail 2:2.0.11+ds1-2 includes several usability and security fixes
from upstream, including a fix for CVE-2019-12269 (debian bug #929363).

The debdiff is attached.

unblock enigmail/2:2.0.11+ds1-2

About half of this bulky debdiff is upstream fixes to the test suite,
which has been improved; this is useful for our own testing, and it
should have no effect on the functionality of the package.

Some of the code in debian/patches is also obsolete thanks to the new
upstream version.  In particular,
debian/patches/0005-avoid-OpenPGP.js-during-key-file-import.patch is now
much simpler -- it now rips out a chunk of unusable code (that
references OpenPGP.js, see #787774) and doesn't need to add very much,
because of adoption of the same gpg-based strategy by upstream.

Thanks for your work on fine-tuning the debian Buster release!

       --dkg

diff --git enigmail-2:2.0.10+ds1-1/configure.ac enigmail-2:2.0.11+ds1-2/configure.ac
index 4db7ecc57..e64eff0c1 100644
--- enigmail-2:2.0.10+ds1-1/configure.ac
+++ enigmail-2:2.0.11+ds1-2/configure.ac
@@ -2,7 +2,7 @@
 AC_PREREQ(2.61)
 min_automake_version="1.10"
 
-AC_INIT([enigmail],[2.0.10], [https://www.enigmail.net])
+AC_INIT([enigmail],[2.0.11], [https://www.enigmail.net])
 
 
 AC_PATH_PROG(PYTHON, "python2")
diff --git enigmail-2:2.0.10+ds1-1/debian/changelog enigmail-2:2.0.11+ds1-2/debian/changelog
index 5baba4f74..234181b12 100644
--- enigmail-2:2.0.10+ds1-1/debian/changelog
+++ enigmail-2:2.0.11+ds1-2/debian/changelog
@@ -1,3 +1,17 @@
+enigmail (2:2.0.11+ds1-2) unstable; urgency=medium
+
+  * minimize legacy-display protected headers for encrypted mails
+
+ -- Daniel Kahn Gillmor <dkg@fifthhorseman.net>  Thu, 30 May 2019 15:40:57 -0400
+
+enigmail (2:2.0.11+ds1-1) unstable; urgency=medium
+
+  * new upstream release
+  * refresh patches
+  * use the older import-show with --dry-run instead of show-only
+
+ -- Daniel Kahn Gillmor <dkg@fifthhorseman.net>  Thu, 23 May 2019 17:06:35 -0400
+
 enigmail (2:2.0.10+ds1-1) unstable; urgency=medium
 
   * new upstream release
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0005-avoid-OpenPGP.js-during-key-file-import.patch enigmail-2:2.0.11+ds1-2/debian/patches/0005-avoid-OpenPGP.js-during-key-file-import.patch
index 4496a5ce1..a52cf709a 100644
--- enigmail-2:2.0.10+ds1-1/debian/patches/0005-avoid-OpenPGP.js-during-key-file-import.patch
+++ enigmail-2:2.0.11+ds1-2/debian/patches/0005-avoid-OpenPGP.js-during-key-file-import.patch
@@ -7,15 +7,18 @@ contingent on GnuPG's mechanisms for reporting standalone revocation
 certs:
 
 https://dev.gnupg.org/T4018
+
+This means we depend on a more recent version (or a patched version)
+of GnuPG than upstream enigmail does.
 ---
- package/key.jsm | 92 +++++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 57 insertions(+), 35 deletions(-)
+ package/key.jsm | 58 ++-------------------------------------------------------
+ 1 file changed, 2 insertions(+), 56 deletions(-)
 
 diff --git a/package/key.jsm b/package/key.jsm
-index f7976dc..85572cc 100644
+index 0b4a0ef..565273f 100644
 --- a/package/key.jsm
 +++ b/package/key.jsm
-@@ -128,7 +128,8 @@ var EnigmailKey = {
+@@ -137,7 +137,8 @@ var EnigmailKey = {
     *          - id (key ID)
     *          - fpr
     *          - name (the UID of the key)
@@ -24,106 +27,66 @@ index f7976dc..85572cc 100644
 +   *          - revoke? (boolean, true if contains a revocation cert, undefined is the same as false)
     */
    getKeyListFromKeyBlock: function(keyBlockStr, errorMsgObj, interactive = true) {
-     EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock\n");
-@@ -148,46 +149,67 @@ var EnigmailKey = {
- 
-     let keyList = [];
+     EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock()\n");
+@@ -150,61 +151,6 @@ var EnigmailKey = {
+     let keyList = getGpgKeyData(keyBlockStr);
      let key = {};
--    for (let b of blocks) {
--      let m = EnigmailOpenPGP.openpgp.message.readArmored(b);
+ 
+-    if (keyList.length === 0) {
+-      EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock: no data from GnuPG\n");
+-      if (keyBlockStr.search(/-----BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK-----/) >= 0) {
+-        blocks = this.splitArmoredBlocks(keyBlockStr);
+-      } else {
+-        isBinary = true;
+-        blocks = [EnigmailOpenPGP.enigmailFuncs.bytesToArmor(EnigmailOpenPGP.openpgp.enums.armor.public_key, keyBlockStr)];
+-      }
 -
--      for (let i = 0; i < m.packets.length; i++) {
--        let packetType = EnigmailOpenPGP.openpgp.enums.read(EnigmailOpenPGP.openpgp.enums.packet, m.packets[i].tag);
--        switch (packetType) {
--          case "publicKey":
--          case "secretKey":
--            key = {
--              id: m.packets[i].getKeyId().toHex().toUpperCase(),
--              fpr: m.packets[i].getFingerprint().toUpperCase(),
--              name: null,
--              isSecret: false
--            };
+-      for (let b of blocks) {
+-        let m = EnigmailOpenPGP.openpgp.message.readArmored(b);
 -
--            if (!(key.id in keyList)) {
--              keyList[key.id] = key;
-+      for (let b of blocks) {
-+        let args = EnigmailGpg.getStandardArgs(true).concat(["--no-verbose", "--with-colons", "--dry-run", "--no-keyring", "--no-options", "--import-options", "import-show", "--import"]);
-+        const exitCodeObj = {};
-+        const statusMsgObj = {};
-+        const errorMsgObj = {};
-+
-+        let packetStr = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, b, exitCodeObj, {}, statusMsgObj, errorMsgObj);
-+        let packetArr = packetStr.split("\n");
-+
-+        let keyId = null;
-+        for (let i = 0; i < packetArr.length; i++) {
-+          let packetDetails = packetArr[i].split(":");
-+          switch (packetDetails[0]) {
-+          case "pub":
-+          case "sec":
-+            keyId = packetDetails[4].toUpperCase();
-+
-+            if (!(keyId in keyList)) {
-+              keyList[keyId] = {
-+                id: keyId,
-+                fpr: null,
-+                name: null,
-+                isSecret: false
-+              };
-+            }
-+            if (packetDetails[0] === "sec") {
-+              keyList[keyId].isSecret = true;
-             }
- 
--            if (packetType === "secretKey") {
--              keyList[key.id].isSecret = true;
-+            break;
-+          case "fpr":
-+            let fpr = packetDetails[9].toUpperCase();
-+            if (keyId == null) {
-+              EnigmailLog.ERROR("keyId is Null with fingerprint " + fpr);
-+            } else if (fpr.substr(-keyId.length) != keyId) {
-+              EnigmailLog.ERROR("Fingerprint " + fpr + " does not match key ID " + keyId);
-+            } else if (!keyId in keyList) {
-+              EnigmailLog.ERROR("Key ID " + keyId + " not already in list when processing fingerprint " + fpr);
-+            } else {
-+              keyList[keyId].fpr = fpr;
-             }
-             break;
--          case "userid":
--            if (!key.name) {
--              key.name = m.packets[i].userid.replace(/[\r\n]+/g, " ");
-+          case "uid":
-+            if (!keyList[keyId].name) {
-+              // this value is escaped to fit in the
-+              // colon+newline-delimited format.  should we try to
-+              // unescape this?  if so, should we clean up any
-+              // resulting \r or \n into spaces?
-+              keyList[keyId].name = packetDetails[9];
-             }
-             break;
--          case "signature":
--            if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) {
--              let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase();
--              if (keyId in keyList) {
--                keyList[keyId].revoke = true;
+-        for (let i = 0; i < m.packets.length; i++) {
+-          let packetType = EnigmailOpenPGP.openpgp.enums.read(EnigmailOpenPGP.openpgp.enums.packet, m.packets[i].tag);
+-          switch (packetType) {
+-            case "publicKey":
+-            case "secretKey":
+-              key = {
+-                id: m.packets[i].getKeyId().toHex().toUpperCase(),
+-                fpr: m.packets[i].getFingerprint().toUpperCase(),
+-                name: null,
+-                isSecret: false
+-              };
+-
+-              if (!(key.id in keyList)) {
+-                keyList[key.id] = key;
 -              }
--              else {
--                keyList[keyId] = {
--                  revoke: true,
--                  id: keyId
--                };
+-
+-              if (packetType === "secretKey") {
+-                keyList[key.id].isSecret = true;
+-              }
+-              break;
+-            case "userid":
+-              if (!key.name) {
+-                key.name = m.packets[i].userid.replace(/[\r\n]+/g, " ");
 -              }
-+          case "rvs":
-+            keyId = packetDetails[4].toUpperCase();
-+            if (keyId in keyList) {
-+              keyList[keyId].revoke = true;
-+            }
-+            else {
-+              keyList[keyId] = {
-+                revoke: true,
-+                id: keyId
-+              };
-             }
-             break;
-         }
+-              break;
+-            case "signature":
+-              if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) {
+-                let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase();
+-                if (keyId in keyList) {
+-                  keyList[keyId].revoke = true;
+-                } else {
+-                  keyList[keyId] = {
+-                    revoke: true,
+-                    id: keyId
+-                  };
+-                }
+-              }
+-              break;
+-          }
+-        }
+-      }
+-    }
+-
+     let retArr = [];
+     for (let k in keyList) {
+       retArr.push(keyList[k]);
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0010-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch enigmail-2:2.0.11+ds1-2/debian/patches/0010-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch
index ea0098737..020ac1060 100644
--- enigmail-2:2.0.10+ds1-1/debian/patches/0010-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch
+++ enigmail-2:2.0.11+ds1-2/debian/patches/0010-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch
@@ -86,10 +86,10 @@ index ea6a869..b62be8c 100644
    },
  
 diff --git a/package/gpg.jsm b/package/gpg.jsm
-index 232cb9a..f921c5e 100644
+index 0ca6140..05045ab 100644
 --- a/package/gpg.jsm
 +++ b/package/gpg.jsm
-@@ -383,6 +383,116 @@ var EnigmailGpg = {
+@@ -386,6 +386,116 @@ var EnigmailGpg = {
      }
    },
  
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0012-tests-wrap-individual-tests-in-key-test-with-withTes.patch enigmail-2:2.0.11+ds1-2/debian/patches/0011-tests-wrap-individual-tests-in-key-test-with-withTes.patch
similarity index 100%
rename from debian/patches/0012-tests-wrap-individual-tests-in-key-test-with-withTes.patch
rename to debian/patches/0011-tests-wrap-individual-tests-in-key-test-with-withTes.patch
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0012-Use-the-older-import-show-with-dry-run-instead-of-sh.patch enigmail-2:2.0.11+ds1-2/debian/patches/0012-Use-the-older-import-show-with-dry-run-instead-of-sh.patch
new file mode 100644
index 000000000..eced83e4c
--- /dev/null
+++ enigmail-2:2.0.11+ds1-2/debian/patches/0012-Use-the-older-import-show-with-dry-run-instead-of-sh.patch
@@ -0,0 +1,38 @@
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Thu, 23 May 2019 16:04:51 -0400
+Subject: Use the older "import-show" with "--dry-run" instead of "show-only"
+
+"--import-options import-show" was introduced in 2.1.14.
+
+"--import-options show-only" was introduced in 2.1.23.
+
+This gives broader compatibility.
+
+The version test for the "import-show" feature is itself probably
+wrong, but this patch doesn't address it.
+
+Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+---
+ package/key.jsm | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/package/key.jsm b/package/key.jsm
+index 565273f..32ded1f 100644
+--- a/package/key.jsm
++++ b/package/key.jsm
+@@ -219,7 +219,7 @@ function getGpgKeyData(armorKeyString) {
+ 
+   EnigmailLog.DEBUG("key.jsm: getGpgKeyData()\n");
+   let command = EnigmailGpg.agentPath;
+-  let args = EnigmailGpg.getStandardArgs(false).concat(["--no-tty", "--batch", "--no-verbose", "--dry-run", "--with-fingerprint", "--with-colons", "--import-options", "show-only", "--import"]);
++  let args = EnigmailGpg.getStandardArgs(false).concat(["--no-tty", "--batch", "--no-verbose", "--dry-run", "--with-fingerprint", "--with-colons", "--import-options", "import-show", "--dry-run", "--import"]);
+ 
+   let statusFlagsObj = {};
+   let statusMsgObj = {};
+@@ -288,4 +288,4 @@ function getGpgKeyData(armorKeyString) {
+   }
+ 
+   return keyList;
+-}
+\ No newline at end of file
++}
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0012-fixed-locale-bug.patch enigmail-2:2.0.11+ds1-2/debian/patches/0012-fixed-locale-bug.patch
deleted file mode 100644
index e7ca58504..000000000
--- enigmail-2:2.0.10+ds1-1/debian/patches/0012-fixed-locale-bug.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Patrick Brunschwig <patrick@enigmail.net>
-Date: Thu, 28 Mar 2019 08:08:40 +0100
-Subject: fixed locale bug
-
-(cherry picked from commit 332488bf85b40c94a9da24d9db69a96e756dfb9b)
----
- lang/da/enigmail.dtd | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/lang/da/enigmail.dtd b/lang/da/enigmail.dtd
-index 6cd2d3a..b8423a6 100755
---- a/lang/da/enigmail.dtd
-+++ b/lang/da/enigmail.dtd
-@@ -757,9 +757,9 @@
- <!ENTITY enigmail.setupWiz.pgImportSettings.title    "">
- <!ENTITY enigmail.setupWiz.pgImportSettings.desc     "Enigmail giver mulighed for at overføre alle dens indstillinger, herunder din OpenPGP
- nøgler til en ny computer. Dette sker i to trin:
--<Html: ol>
--<html: li> Eksporter dine data fra din gamle computer ved hjælp af backupguiden fra Enigmail præferencerne</html:li>
--<html: li> Importer dataene til din nye computer ved hjælp af denne guiden.</html:li>
-+<html:ol>
-+<html:li> Eksporter dine data fra din gamle computer ved hjælp af backupguiden fra Enigmail præferencerne</html:li>
-+<html:li> Importer dataene til din nye computer ved hjælp af denne guiden.</html:li>
- </html:ol>">
- <!ENTITY enigmail.setupWiz.pgImportSettings.fileName "">
- <!ENTITY enigmail.setupWiz.pgImportSettings.importing "">
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/0013-protected-headers-only-put-Subject-in-the-legacy-dis.patch enigmail-2:2.0.11+ds1-2/debian/patches/0013-protected-headers-only-put-Subject-in-the-legacy-dis.patch
new file mode 100644
index 000000000..862c6b31f
--- /dev/null
+++ enigmail-2:2.0.11+ds1-2/debian/patches/0013-protected-headers-only-put-Subject-in-the-legacy-dis.patch
@@ -0,0 +1,65 @@
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Thu, 30 May 2019 15:16:26 -0400
+Subject: protected headers: only put Subject in the legacy-display part
+
+When protecting headers for outbound encrypted e-mail, enigmail
+creates a "legacy-display" text/rfc822-headers part.  That part is
+intended to be visible for users who read the e-mail in an MUA that is
+capable of decryption but not capable of directly handling the
+protected headers.
+
+The purpose of the legacy-display part is to make potentially-hidden
+aspects of the e-mail visible to these legacy users.
+
+Since the Subject header is protected by stubbing it out externally,
+it is appropriate to include it in the legacy-display part.
+
+The other headers, however, are *not* stubbed or stripped externally,
+so there is no reason to include them in the legacy-display part.
+
+This change limits the legacy-display part to only the Subject line.
+If other headers were stubbed or stripped, then they should be handled
+in the same fashion as the Subject header, but at the moment, only the
+Subject is protected in this way.
+
+Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+---
+ package/mimeEncrypt.jsm | 14 +-------------
+ 1 file changed, 1 insertion(+), 13 deletions(-)
+
+diff --git a/package/mimeEncrypt.jsm b/package/mimeEncrypt.jsm
+index 7473bab..a04304f 100644
+--- a/package/mimeEncrypt.jsm
++++ b/package/mimeEncrypt.jsm
+@@ -293,22 +293,10 @@ PgpMimeEncrypt.prototype = {
+       }
+     };
+ 
+-    // visible headers list
+-    let vH = [
+-      'from',
+-      'to',
+-      'subject',
+-      'cc'
+-    ];
+-
+     for (let i in h) {
+       if (this.msgCompFields[i] && this.msgCompFields[i].length > 0) {
+         allHdr += jsmime.headeremitter.emitStructuredHeader(h[i].field, h[i].parser(this.msgCompFields[i]), {});
+       }
+-
+-      if (vH.indexOf(i) >= 0 && this.msgCompFields[i].length > 0) {
+-        visibleHdr += jsmime.headeremitter.emitStructuredHeader(h[i].field, h[i].parser(this.msgCompFields[i]), {});
+-      }
+     }
+ 
+     if (this.enigmailFlags.originalSubject && this.enigmailFlags.originalSubject.length > 0) {
+@@ -332,7 +320,7 @@ PgpMimeEncrypt.prototype = {
+       allHdr + '\r\n' +
+       "--" + this.encHeader + "\r\n";
+ 
+-    if (this.cryptoMode == MIME_ENCRYPTED && this.enigmailFlags.sendFlags & EnigmailConstants.ENCRYPT_HEADERS) {
++    if (this.cryptoMode == MIME_ENCRYPTED && this.enigmailFlags.sendFlags & EnigmailConstants.ENCRYPT_HEADERS && visibleHdr) {
+       w += 'Content-Type: text/rfc822-headers; protected-headers="v1"\r\n' +
+         'Content-Disposition: inline\r\n\r\n' +
+         visibleHdr +
diff --git enigmail-2:2.0.10+ds1-1/debian/patches/series enigmail-2:2.0.11+ds1-2/debian/patches/series
index 2bc0101a5..786f46051 100644
--- enigmail-2:2.0.10+ds1-1/debian/patches/series
+++ enigmail-2:2.0.11+ds1-2/debian/patches/series
@@ -8,5 +8,6 @@
 0008-enable-the-use-of-extra-file-descriptors-and-test-th.patch
 0009-add-test-to-do-symmetric-encryption-decryption-with-.patch
 0010-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch
-0012-tests-wrap-individual-tests-in-key-test-with-withTes.patch
-0012-fixed-locale-bug.patch
+0011-tests-wrap-individual-tests-in-key-test-with-withTes.patch
+0012-Use-the-older-import-show-with-dry-run-instead-of-sh.patch
+0013-protected-headers-only-put-Subject-in-the-legacy-dis.patch
diff --git enigmail-2:2.0.10+ds1-1/lang/da/enigmail.dtd enigmail-2:2.0.11+ds1-2/lang/da/enigmail.dtd
index 6cd2d3abf..b8423a642 100755
--- enigmail-2:2.0.10+ds1-1/lang/da/enigmail.dtd
+++ enigmail-2:2.0.11+ds1-2/lang/da/enigmail.dtd
@@ -757,9 +757,9 @@
 <!ENTITY enigmail.setupWiz.pgImportSettings.title    "">
 <!ENTITY enigmail.setupWiz.pgImportSettings.desc     "Enigmail giver mulighed for at overføre alle dens indstillinger, herunder din OpenPGP
 nøgler til en ny computer. Dette sker i to trin:
-<Html: ol>
-<html: li> Eksporter dine data fra din gamle computer ved hjælp af backupguiden fra Enigmail præferencerne</html:li>
-<html: li> Importer dataene til din nye computer ved hjælp af denne guiden.</html:li>
+<html:ol>
+<html:li> Eksporter dine data fra din gamle computer ved hjælp af backupguiden fra Enigmail præferencerne</html:li>
+<html:li> Importer dataene til din nye computer ved hjælp af denne guiden.</html:li>
 </html:ol>">
 <!ENTITY enigmail.setupWiz.pgImportSettings.fileName "">
 <!ENTITY enigmail.setupWiz.pgImportSettings.importing "">
diff --git enigmail-2:2.0.10+ds1-1/package/decryption.jsm enigmail-2:2.0.11+ds1-2/package/decryption.jsm
index 4bed06457..41d237db7 100644
--- enigmail-2:2.0.10+ds1-1/package/decryption.jsm
+++ enigmail-2:2.0.11+ds1-2/package/decryption.jsm
@@ -528,7 +528,7 @@ var EnigmailDecryption = {
       pgpBlock = pgpBlock.replace(/\r?\n\r?\n/g, "\n");
     }
 
-    var head = cipherText.substr(0, beginIndexObj.value);
+    const head = "";
     var tail = cipherText.substr(endIndexObj.value + 1,
       cipherText.length - endIndexObj.value - 1);
 
@@ -616,8 +616,7 @@ var EnigmailDecryption = {
     }
     blockSeparationObj.value = retStatusObj.blockSeparation;
 
-    if ((head.search(/\S/) >= 0) ||
-      (tail.search(/\S/) >= 0)) {
+    if (tail.search(/\S/) >= 0) {
       statusFlagsObj.value |= EnigmailConstants.PARTIALLY_PGP;
     }
 
diff --git enigmail-2:2.0.10+ds1-1/package/gpg.jsm enigmail-2:2.0.11+ds1-2/package/gpg.jsm
index 232cb9a9a..0ca614066 100644
--- enigmail-2:2.0.10+ds1-1/package/gpg.jsm
+++ enigmail-2:2.0.11+ds1-2/package/gpg.jsm
@@ -135,6 +135,7 @@ var EnigmailGpg = {
    supports-wkd         - does gpg support wkd (web key directory) (true for gpg >= 2.1.19)
    export-result        - does gpg print EXPORTED when exporting keys (true for gpg >= 2.1.10)
    decryption-info      - does gpg print DECRYPTION_INFO (true for gpg >= 2.0.19)
+   supports-show-only   - does gpg support --import-options show-only (true for gpg >= 2.0)
 
    @return: depending on featureName - Boolean unless specified differently:
    (true if feature is available / false otherwise)
@@ -185,6 +186,8 @@ var EnigmailGpg = {
         return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.19");
       case "supports-wkd":
         return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.19");
+      case "supports-show-only":
+        return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0");
     }
 
     return undefined;
diff --git enigmail-2:2.0.10+ds1-1/package/install.rdf enigmail-2:2.0.11+ds1-2/package/install.rdf
index 56a99acfc..d9f482749 100644
--- enigmail-2:2.0.10+ds1-1/package/install.rdf
+++ enigmail-2:2.0.11+ds1-2/package/install.rdf
@@ -5,7 +5,7 @@
 
   <Description about="urn:mozilla:install-manifest">
     <em:id>{847b3a00-7ab1-11d4-8f02-006008948af5}</em:id>
-    <em:version>2.0.10</em:version>
+    <em:version>2.0.11</em:version>
     <em:type>2</em:type> <!-- type = extension -->
     <em:bootstrap>true</em:bootstrap>
 
diff --git enigmail-2:2.0.10+ds1-1/package/key.jsm enigmail-2:2.0.11+ds1-2/package/key.jsm
index f7976dc69..0b4a0ef30 100644
--- enigmail-2:2.0.10+ds1-1/package/key.jsm
+++ enigmail-2:2.0.11+ds1-2/package/key.jsm
@@ -28,6 +28,18 @@ Cu.import("resource://enigmail/lazy.jsm"); /*global EnigmailLazy: false */
 const getKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing");
 const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog");
 
+const ENTRY_ID = 0;
+const KEY_TRUST_ID = 1;
+const KEY_SIZE_ID = 2;
+const KEY_ALGO_ID = 3;
+const KEY_ID = 4;
+const CREATED_ID = 5;
+const EXPIRY_ID = 6;
+const UID_ID = 7;
+const OWNERTRUST_ID = 8;
+const USERID_ID = 9;
+const SIG_TYPE_ID = 10;
+const KEY_USE_FOR_ID = 11;
 
 var EnigmailKey = {
   /**
@@ -55,8 +67,7 @@ var EnigmailKey = {
     if (matchb && (matchb.length > 3)) {
       EnigmailLog.DEBUG("enigmailCommon.jsm:: Enigmail.extractPubkey: NO_PUBKEY 0x" + matchb[3] + "\n");
       return matchb[2] + matchb[3];
-    }
-    else {
+    } else {
       return null;
     }
   },
@@ -74,8 +85,7 @@ var EnigmailKey = {
       if (key.keyTrust === "r") {
         // Key has already been revoked
         getDialog().info(null, EnigmailLocale.getString("revokeKeyAlreadyRevoked", keyId));
-      }
-      else {
+      } else {
 
         let userId = key.userId + " - 0x" + key.keyId;
         if (!getDialog().confirmDlg(null,
@@ -89,8 +99,7 @@ var EnigmailKey = {
           getDialog().alert(null, errorMsgObj.value);
         }
       }
-    }
-    else {
+    } else {
       // Suitable key for revocation certificate is not present in keyring
       getDialog().alert(null, EnigmailLocale.getString("revokeKeyNotPresent", keyId));
     }
@@ -131,70 +140,71 @@ var EnigmailKey = {
    *          - state (one of "old" [existing key], "new" [new key], "invalid" [key cannot not be imported])
    */
   getKeyListFromKeyBlock: function(keyBlockStr, errorMsgObj, interactive = true) {
-    EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock\n");
+    EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock()\n");
 
     let blocks;
     let isBinary = false;
 
     errorMsgObj.value = "";
 
-    if (keyBlockStr.search(/-----BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK-----/) >= 0) {
-      blocks = this.splitArmoredBlocks(keyBlockStr);
-    }
-    else {
-      isBinary = true;
-      blocks = [EnigmailOpenPGP.enigmailFuncs.bytesToArmor(EnigmailOpenPGP.openpgp.enums.armor.public_key, keyBlockStr)];
-    }
-
-    let keyList = [];
+    let keyList = getGpgKeyData(keyBlockStr);
     let key = {};
-    for (let b of blocks) {
-      let m = EnigmailOpenPGP.openpgp.message.readArmored(b);
-
-      for (let i = 0; i < m.packets.length; i++) {
-        let packetType = EnigmailOpenPGP.openpgp.enums.read(EnigmailOpenPGP.openpgp.enums.packet, m.packets[i].tag);
-        switch (packetType) {
-          case "publicKey":
-          case "secretKey":
-            key = {
-              id: m.packets[i].getKeyId().toHex().toUpperCase(),
-              fpr: m.packets[i].getFingerprint().toUpperCase(),
-              name: null,
-              isSecret: false
-            };
-
-            if (!(key.id in keyList)) {
-              keyList[key.id] = key;
-            }
-
-            if (packetType === "secretKey") {
-              keyList[key.id].isSecret = true;
-            }
-            break;
-          case "userid":
-            if (!key.name) {
-              key.name = m.packets[i].userid.replace(/[\r\n]+/g, " ");
-            }
-            break;
-          case "signature":
-            if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) {
-              let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase();
-              if (keyId in keyList) {
-                keyList[keyId].revoke = true;
+
+    if (keyList.length === 0) {
+      EnigmailLog.DEBUG("key.jsm: getKeyListFromKeyBlock: no data from GnuPG\n");
+      if (keyBlockStr.search(/-----BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK-----/) >= 0) {
+        blocks = this.splitArmoredBlocks(keyBlockStr);
+      } else {
+        isBinary = true;
+        blocks = [EnigmailOpenPGP.enigmailFuncs.bytesToArmor(EnigmailOpenPGP.openpgp.enums.armor.public_key, keyBlockStr)];
+      }
+
+      for (let b of blocks) {
+        let m = EnigmailOpenPGP.openpgp.message.readArmored(b);
+
+        for (let i = 0; i < m.packets.length; i++) {
+          let packetType = EnigmailOpenPGP.openpgp.enums.read(EnigmailOpenPGP.openpgp.enums.packet, m.packets[i].tag);
+          switch (packetType) {
+            case "publicKey":
+            case "secretKey":
+              key = {
+                id: m.packets[i].getKeyId().toHex().toUpperCase(),
+                fpr: m.packets[i].getFingerprint().toUpperCase(),
+                name: null,
+                isSecret: false
+              };
+
+              if (!(key.id in keyList)) {
+                keyList[key.id] = key;
+              }
+
+              if (packetType === "secretKey") {
+                keyList[key.id].isSecret = true;
+              }
+              break;
+            case "userid":
+              if (!key.name) {
+                key.name = m.packets[i].userid.replace(/[\r\n]+/g, " ");
               }
-              else {
-                keyList[keyId] = {
-                  revoke: true,
-                  id: keyId
-                };
+              break;
+            case "signature":
+              if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) {
+                let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase();
+                if (keyId in keyList) {
+                  keyList[keyId].revoke = true;
+                } else {
+                  keyList[keyId] = {
+                    revoke: true,
+                    id: keyId
+                  };
+                }
               }
-            }
-            break;
+              break;
+          }
         }
       }
     }
 
-
     let retArr = [];
     for (let k in keyList) {
       retArr.push(keyList[k]);
@@ -256,3 +266,80 @@ var EnigmailKey = {
   }
 
 };
+
+
+function getGpgKeyData(armorKeyString) {
+  if (!EnigmailGpg.getGpgFeature("supports-show-only")) return [];
+
+  EnigmailLog.DEBUG("key.jsm: getGpgKeyData()\n");
+  let command = EnigmailGpg.agentPath;
+  let args = EnigmailGpg.getStandardArgs(false).concat(["--no-tty", "--batch", "--no-verbose", "--dry-run", "--with-fingerprint", "--with-colons", "--import-options", "show-only", "--import"]);
+
+  let statusFlagsObj = {};
+  let statusMsgObj = {};
+  let exitCodeObj = {};
+  let errorMsgObj = {};
+
+  let output = EnigmailExecution.execCmd(command, args, armorKeyString, exitCodeObj, statusFlagsObj, statusMsgObj, errorMsgObj);
+
+  let lines = output.split(/\r?\n/);
+  let key = {};
+  let keyId = "";
+  let keyList = [];
+  /*
+  pub:u:256:22:84F83BE88C892606:1525969855:1683649855::u:::scESC:::::ed25519:::0:
+  fpr:::::::::AFE1B65C5F39ACA7960B22CD84F83BE88C892606:
+  uid:u::::1525969914::22DB32406212400B52CDC74DA2B33418637430F1::Patrick (ECC) <patrick@enigmail.net>::::::::::0:
+  uid:u::::1525969855::F70B7A77F085AA7BA003D6AFAB6FF0DB1FC901B0::enigmail <patrick@enigmail.net>::::::::::0:
+  sub:u:256:18:329DAB3350400C40:1525969855:1683649855:::::e:::::cv25519::
+  fpr:::::::::3B154538D4DFAA19BDADAAD0329DAB3350400C40:
+  */
+
+  for (let i = 0; i < lines.length; i++) {
+    const lineTokens = lines[i].split(/:/);
+
+    switch (lineTokens[ENTRY_ID]) {
+      case "pub":
+      case "sec":
+        key = {
+          id: lineTokens[KEY_ID],
+          fpr: null,
+          name: null,
+          isSecret: false
+        };
+
+        if (!(key.id in keyList)) {
+          keyList[key.id] = key;
+        }
+
+        if (lineTokens[ENTRY_ID] === "sec") {
+          keyList[key.id].isSecret = true;
+        }
+        break;
+      case "fpr":
+        if (!key.fpr) {
+          key.fpr = lineTokens[USERID_ID];
+        }
+        break;
+      case "uid":
+        if (!key.name) {
+          key.name = lineTokens[USERID_ID];
+        }
+        break;
+      case "rvs":
+      case "rvk":
+        keyId = lineTokens[KEY_ID];
+        if (keyId in keyList) {
+          keyList[keyId].revoke = true;
+        } else {
+          keyList[keyId] = {
+            revoke: true,
+            id: keyId
+          };
+        }
+        break;
+    }
+  }
+
+  return keyList;
+}
\ No newline at end of file
diff --git enigmail-2:2.0.10+ds1-1/package/tests/encryption-test.js enigmail-2:2.0.11+ds1-2/package/tests/encryption-test.js
index 5e75fddf4..4a0fe27e4 100644
--- enigmail-2:2.0.10+ds1-1/package/tests/encryption-test.js
+++ enigmail-2:2.0.11+ds1-2/package/tests/encryption-test.js
@@ -92,4 +92,4 @@ test(withTestGpgHome(withEnigmail(function shouldGetErrorReason() {
   expected = EnigmailLocale.getString("errorOwnKeyUnusable", "nobody@notfound.net");
   Assert.equal(r.errorMsg, expected);
 
-})));
+})));
\ No newline at end of file
diff --git enigmail-2:2.0.10+ds1-1/package/tests/installGnuPG-test.js enigmail-2:2.0.11+ds1-2/package/tests/installGnuPG-test.js
index bd18a8e78..2e3e1c014 100644
--- enigmail-2:2.0.10+ds1-1/package/tests/installGnuPG-test.js
+++ enigmail-2:2.0.11+ds1-2/package/tests/installGnuPG-test.js
@@ -17,7 +17,7 @@ testing("installGnuPG.jsm"); /*global EnigmailInstallGnuPG: false, Installer: fa
 test(function shouldCheckHashSum() {
   let inst = new Installer(null);
   inst.installerFile = do_get_file("resources/dev-strike.asc", false);
-  inst.hash = "041af0b00ea712bf5ebe349e5cceda148e0797539ee85acd8e06ac8921c6667d"; // SHA256 sum of installerFile
+  inst.hash = "15bc9d49f716dfb467c4e69241e4161df4aa3004ab0a21cd616fb2f4e46f0cd3"; // SHA256 sum of installerFile
 
   Assert.ok(inst.checkHashSum());
-});
+});
\ No newline at end of file
diff --git enigmail-2:2.0.10+ds1-1/package/tests/keyRing-test.js enigmail-2:2.0.11+ds1-2/package/tests/keyRing-test.js
index 380cd97e1..11d107b87 100644
--- enigmail-2:2.0.10+ds1-1/package/tests/keyRing-test.js
+++ enigmail-2:2.0.11+ds1-2/package/tests/keyRing-test.js
@@ -41,10 +41,10 @@ test(withTestGpgHome(withEnigmail(function shouldGetKeyListEntryOfKey() {
   // Output from GnuPG varies sligtly between different versions (new output data is added
   // at the end of the list). Therefore each line is only compared to the length provided below
   let expectedListing = [
-    "pub:-:4096:1:781617319CE311C4:1430756251:1556986651::-:::scESC:",
+    "pub:-:4096:1:781617319CE311C4:1430756251:::-:::scESC:",
     "fpr:::::::::65537E212DC19025AD38EDB2781617319CE311C4:",
-    "uid:-::::1430756251::DB54FB278F6AE719DE0DE881B17D4C762F5752A9::anonymous strike <strike.devtest@gmail.com>:",
-    "sub:-:4096:1:D535623BB60E9E71:1430756251:1556986651:::::e:"
+    "uid:-::::1557592308::DB54FB278F6AE719DE0DE881B17D4C762F5752A9::anonymous strike <strike.devtest@gmail.com>:",
+    "sub:-:4096:1:D535623BB60E9E71:1430756251::::::e:"
   ];
 
   let keyDetList = keyDetails.split(/\n\r?/);
@@ -124,7 +124,6 @@ test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails(
     JSUnit.createStubWindow(),
     false,
     "-----BEGIN PGP PUBLIC KEY BLOCK-----" +
-    "\n" + "Comment: GPGTools - https://gpgtools.org"; +
     "\n" +
     "\n" + "mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" +
     "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" +
@@ -137,48 +136,48 @@ test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails(
     "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" +
     "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" +
     "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" +
-    "\n" + "tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9" +
-    "\n" + "BBMBCgAnBQJVR5ubAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ" +
-    "\n" + "EHgWFzGc4xHEt/4P/1zf/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrW" +
-    "\n" + "LDPqxSbotXTXi72Dwug6a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywM" +
-    "\n" + "dSfTAXa+popNccD5yPCJVBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy" +
-    "\n" + "+m2bXb1pTbg6OpqDIPCqlmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ" +
-    "\n" + "+E8Khyha2tfz1WFPmoy0rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6Gc" +
-    "\n" + "NcZnuvnZVBbjCpqXtDJ7UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB" +
-    "\n" + "8Z75FACi7d65Kp8Q6sNYVfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu" +
-    "\n" + "5TmYriLyAvfyoyeMhRjV0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+ca" +
-    "\n" + "P75XoVUyXmIpC/UZTrF4IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbK" +
-    "\n" + "qemK8D0rbaoxJq5RLkwU6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdg" +
-    "\n" + "oWv9xZU7asdsm5cpHpy7lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYuQIN" +
-    "\n" + "BFVHm5sBEADBX28bR5QxbrGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BY" +
-    "\n" + "tOqqP7Dur8k0A8fcLkZCSBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn" +
-    "\n" + "0dLqpVXJRqMt3ULS/Rwy18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6R" +
-    "\n" + "W5lhbG8WFJfCniFuRnim+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoB" +
-    "\n" + "ckT701sMs2pk48O5Y/vP6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mq" +
-    "\n" + "i4YIQsuF3NfS13+U2lhjlR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSF" +
-    "\n" + "IAiqVl6pdlSBU84bOLHoCUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7" +
-    "\n" + "TxrHAQ/O1fJnGZNBRgn8LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0" +
-    "\n" + "vtwBPLrRbbRhy6Z77BNfE9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZx" +
-    "\n" + "Q8xOUfstsAR1TM+JboXJDuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr" +
-    "\n" + "5HctpLgwvLVKCeDfU8nchzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQABiQIl" +
-    "\n" + "BBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc4xHEo+UP/02AIUR0349zGk9a" +
-    "\n" + "4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0ZoqTO8A0uFmEhCkw++reQcWOz1N" +
-    "\n" + "n+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq7oWYwlxsgVGCMDYE0TOMN8p/" +
-    "\n" + "Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/ECTHxqi9UKc68qHNVH9ZgtTXnm" +
-    "\n" + "gLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mlivy+UW6XN0WBE0oetKjT8/Cb1" +
-    "\n" + "dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfnRn9JG1aSXNYB/xZWzCBdykZp" +
-    "\n" + "+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUhXYoYc7232RkNSiiKndeJNryv" +
-    "\n" + "TowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkKG8ydHKFEFObtsTLaut4lHTtx" +
-    "\n" + "n+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23MzTs1hhwgIy4+UejU/Yeny6VkB" +
-    "\n" + "odA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3gJgH0QONrUaRY84/hil05T4E" +
-    "\n" + "nUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+wp1ovyC/fp5XjZaLHcyPAWAXK" +
-    "\n" + "LBn4tb400iHp7byO85tF/H0OOI1K" +
-    "\n" + "=CVNK" +
+    "\n" + "tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQJO" +
+    "\n" + "BBMBCgA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEZVN+IS3BkCWtOO2y" +
+    "\n" + "eBYXMZzjEcQFAlzW+PQACgkQeBYXMZzjEcTLFBAApEsiJaTaDIQ539ZlsHZE0Fcu" +
+    "\n" + "Wlo0buZhUAG6XvL8U+J9JQ9B5z9hpbPdYiRgaJScxOA4h8V2sNPS1n0u1mBaW3sd" +
+    "\n" + "dTHLnUb75Mwh+1AgNhIDybyFVtvdOUVzvcNvQ+HoQDGgf8KgsqD8BiPatA+v3R/B" +
+    "\n" + "JQH07pa7w6rb9d1RHYDGaNcmzP1zUrf84vrrXvW+VGdUxR9jM7PanD9nJkXyFmeK" +
+    "\n" + "NNOTqq4+ofYbc9a6huo+rvb6zWAHiPkD0Phz7cLknmY2oE4Mxc0UAchAlmZ/ElQD" +
+    "\n" + "xThq3wFi0DrIficnjnf1044Q9jTcVgiYFNr171pFpKUeAsq6Nn+3K3cjVqSNfn3G" +
+    "\n" + "v9fIKEy6P4UQdhxl7VkP1oaON9FINPYcnHd5QImUFX30odE3r7v5C9TNPDgfQ+nm" +
+    "\n" + "SKIpBdnAnkJbpEfVmQ5qOZ793hoH+w7YQxo6ijyYmRB+DEGTXjIiv7u/8JjyXJFw" +
+    "\n" + "j3rblmmczYQT3ch2QZQ/+kFqf1VpiE2ORpNI5WfVlovFgLsSu0uaEuQt9N0PJ/7t" +
+    "\n" + "sxVVT+hFZV57oS1z5VO51LpkIV46GhCNdlkRTlKGDj3j97bWcs8UY8O128W/P/CI" +
+    "\n" + "67BzUTw5uTWBB6tEK+yLBiRuiRyEPgOFrUs4lP/qJVbonJtph9NYnC2HGD62Mx9G" +
+    "\n" + "sgNr3hL/LDYyew7Zsoy5Ag0EVUebmwEQAMFfbxtHlDFusY1U9PeMzrQhP6b8ZMsf" +
+    "\n" + "qWbg5xmiYB6P9esE5xf/QFi06qo/sO6vyTQDx9wuRkJIGx7Wbp+98AKjxVt66e/g" +
+    "\n" + "itJPkWBeHttg9mx4jLlTtefR0uqlVclGoy3dQtL9HDLXxfHyP2xckkMAoipngwfC" +
+    "\n" + "AGSc954GcPhobpskC4EQjpFbmWFsbxYUl8KeIW5GeKb5UPq5x/3fHc2QvRNZjSXQ" +
+    "\n" + "9tR1b3awt+IqnWebP7V1GgFyRPvTWwyzamTjw7lj+8/o4QPMXOMZ0DWv1iRuVeM3" +
+    "\n" + "1XGFI3TRaWZyrUOoRTfr4yqLhghCy4Xc19LXf5TaWGOVHkelHF0Mx8eMViWTmGU6" +
+    "\n" + "26+imx5hOUzKQWXwPvLSpIUgCKpWXql2VIFTzhs4segJQZ6ez5SXubRRKHBl1WYy" +
+    "\n" + "J8XD98nAhJkjwPm8aQzesTtPGscBD87V8mcZk0FGCfwuOdmNEYD+7V/B6m0VjQ3L" +
+    "\n" + "M7mU7NNYjocEmXWExq97aXS+3AE8utFttGHLpnvsE18T1rbDtjhoV6yGMSlbETxt" +
+    "\n" + "AjIysEZpFqJDaWleYDpdhnFDzE5R+y2wBHVMz4luhckO5PD5iFpVrZbtn9HN202d" +
+    "\n" + "qFYIKOm0WrrQO6CAvAAaeOvkdy2kuDC8tUoJ4N9TydyHMKQvseKSHYsLvJJRH9XM" +
+    "\n" + "5FqD9OSPFhFHABEBAAGJAjYEGAEKACACGwwWIQRlU34hLcGQJa047bJ4FhcxnOMR" +
+    "\n" + "xAUCXNb5GQAKCRB4FhcxnOMRxC5aD/9ibGiHb2c4ZKL0FBPZ5kPrBAWmxhXWEILc" +
+    "\n" + "Y2J/NZn3QeXbBnfA7NBs8vpjPjSazz/I+eOEKNZ07oq35EARG/v9X3JYu60q+Bo9" +
+    "\n" + "557W3K2csFAxSGzHz1EyPiYMVb/p8+R+3WK7QlVffc4+8lLCal+tTjwCVCmtWHsg" +
+    "\n" + "Kh2ctZVmeiP+ovJ7gjfVdNO6KRceOU25ZzEWoh4t0/K6Hmshcjtwt/43Nlg3GywA" +
+    "\n" + "QJq+lj3s5Lgm1mXdrktZV1iszu72aBFxH+qi66AjPk/kTabNJ7OxNca+5+v6Smwi" +
+    "\n" + "N3/9goW1VyLt7wV2YWpAE+ihq86U+efRseml9WFicOOBDL9ivwVVi5XUy1RS56Qk" +
+    "\n" + "o81Uolc1my/FZ75EGrdpORVXt8Uus/oNaX7LY2rKXSA3NzOIgtmfJzRkREsP6Uuf" +
+    "\n" + "w2npZFWCuPVtttw5I9n+EEcuSGvyEREtv8LpUlUIksJ5M+Mhxje7O94XPqHrPozK" +
+    "\n" + "fPwAuFygazVGCPvbZQohsHRKsq93a2T4gQ32Fo2SQLnY3+wh3qt1cnj29Hla9HVt" +
+    "\n" + "yPcvcN/nAC5IJkbrp8SV8zKSYBiwEcs1nc3Nan1byo8m1Up4+HlAyz70oMzUHThd" +
+    "\n" + "Znr5k9Xl24h14LlZfk450yj6CvVFilhH8wwQ7WRSzqAhTp6i/N9KXUHOczdXf7Zt" +
+    "\n" + "J14nd8wqFA==" +
+    "\n" + "=Hflu" +
     "\n" + "-----END PGP PUBLIC KEY BLOCK-----" +
     "\n" + "-----BEGIN PGP PRIVATE KEY BLOCK-----" +
-    "\n" + "Comment: GPGTools - https://gpgtools.org"; +
     "\n" +
-    "\n" + "lQc+BFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" +
+    "\n" + "lQdGBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" +
     "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" +
     "\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" +
     "\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" +
@@ -189,98 +188,99 @@ test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails(
     "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" +
     "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" +
     "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" +
-    "\n" + "/gMDAtfSz5hVoDvp4Vugj4T3VQk8mJ3uYDZmPbNL8SK18VTIVpd3xgrjTP+JEtB+" +
-    "\n" + "aw1WQK4Qik0BdKAu9Lv6wz4u/QNC8q4x3lBcoYleD6iXRL2Tpnh7RcEakIoxIeFH" +
-    "\n" + "joBTZOI+v0HUlyVvSkIaEhE60UvdX+If9p9sx5+uHdYRRfOkM3SZMxLxCUVHMp1e" +
-    "\n" + "ZBcmW+x9UiyA07wXyvAhlS2/iTijDtQFRqK8xs9w7zn0A12afksGtPEL7J5MRqQs" +
-    "\n" + "BuxUrWSKVQ3DkgWXd56qEtbKuklKXe9t93eMPvcFQ2ZVhgic436dygtpNgkGliVq" +
-    "\n" + "Di83wUjorTZFMeC0uhvQ2akfQxvj5TgYoI0rFABvn/6He1LBSWyiu6ZK1nC1PKUc" +
-    "\n" + "KLGQGfq+kbHwJg3q0wIJ5+e1v6hZ9HClhaRsR4ADnTDnp3mGqPxDWvQox1S2+ESx" +
-    "\n" + "8N6AcZ+q47D78IE4EzF4LyQ0g9FdDiNsPwqN4oS2/ZkXb/IbFoVoottU7915KqZO" +
-    "\n" + "6kiJvpMcZrs4TJ4zR++CGBEvJDfUE4RoQHQe/XLA1RJXIwXr3kWPvB2Tc16vdhkh" +
-    "\n" + "LZ9z/HOrPW6SI/UwVYFHpmJIYj3nHdjGcyWwz0KmQ3H5+AYe36afwJws6TFx/QLi" +
-    "\n" + "fqlOkcaBaiQwpcpuSX2y4rTgcjDEaVdPGmvs2m5vKv66a8yybIl2P0veVTutGtC8" +
-    "\n" + "DfQaggqZWQYHmXXvGUnBM+H9YSBJ2g3W3w51fKcN2FtX42OsVxXqZkqlGR2zBE00" +
-    "\n" + "ilVZmiv6ajV9mmO7W8EV9TPqjrYuEDf2M57LllQ7OB1p1v6CtqIyVSL/Jak6ckMT" +
-    "\n" + "5VdqMoup6ib5j4CR+C4i7Btu+gkXhW775l/jbFlUXKE5Vn+LAAIOpxiVZ2Z7azL6" +
-    "\n" + "sNwxtfmpaTAgIvHGSysgPeXeEN3fgTsfZ0PYaqlEHggsYDDU4XvXIOKcUmrr6zEI" +
-    "\n" + "KXeeS0+V3nxSIb9kQHYZyUFvNv98gCCj0wgNl+LoVJ9NvMkaOrCS0jkRaxJicQfa" +
-    "\n" + "bu4XL9XbUBESuHvG6jiK6DNlhT1j3qFFcRBO7COI3OQ0JD7Y1XPYYR48EP69Fwe0" +
-    "\n" + "82LZH5dq9kslpn8VsuygTum9jYFnE5UVLfmjbroFu9YlLE54T0CdZ4UQEWTrZiuz" +
-    "\n" + "TXYf13FaVEgfAim+hjdUUVSCptsX2crC7Vrsk/xMjT2ETU1w/yZb5BVoCvbK/eaf" +
-    "\n" + "sqQAPGElSp0YlI/mgpbc5rRQzcSXghenjOol/gJM0MbFJuyQ93sLW0Gi7zEeBxQi" +
-    "\n" + "aO/Ua4F4VhPilPf+T66fNMM0bG29X5j41eRrN0m1ly4M+jOOIyocLcUamgFsRDTe" +
-    "\n" + "XG9kHZUylAJqNMwQvDzbVSTbHKjhOTa3PyinrTwauYiQP6fIbd4JWkIW88cBynbR" +
-    "\n" + "IHHCYYGxZoDUDd366QyNHKTd5wxw1MicK54tUDcUVDq8NKC+yGuGi6WLYt4WdNEg" +
-    "\n" + "pYb/MzxGRzbhVEHNbfFEr5e706VcQlglpPcMTUctzRVF18wWHzPVbHdZiTBXdr0t" +
-    "\n" + "hJkRNaAvnmQMvP0bXk+QDGW24Z66Yz0X2YzFo4Rdp/MAm/1KwagIu0hIGbwk8egq" +
-    "\n" + "tq6Q5zyyiSp7dVvcNAPaEzEKZXRSrSjyNwQw0CHI940SRgK5JDkAMHZWK8vg8Ih4" +
-    "\n" + "DR7m69XmYXwvTScrQqkFa+8XIb5QqeH7W3Qe4aKiC6QOJav/ptYLZ+s1TTzeIOA8" +
-    "\n" + "5zxhWPj81YgifDtWPc4MG+Y0QuSzMdMue+/oJUt6lyQmtCthbm9ueW1vdXMgc3Ry" +
-    "\n" + "aWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BBMBCgAnBQJVR5ubAhsD" +
-    "\n" + "BQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc4xHEt/4P/1zf" +
-    "\n" + "/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi72Dwug6" +
-    "\n" + "a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywMdSfTAXa+popNccD5yPCJ" +
-    "\n" + "VBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCq" +
-    "\n" + "lmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0" +
-    "\n" + "rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7" +
-    "\n" + "UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNY" +
-    "\n" + "Vfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV" +
-    "\n" + "0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4" +
-    "\n" + "IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbKqemK8D0rbaoxJq5RLkwU" +
-    "\n" + "6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdgoWv9xZU7asdsm5cpHpy7" +
-    "\n" + "lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYnQc+BFVHm5sBEADBX28bR5Qx" +
-    "\n" + "brGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8k0A8fcLkZC" +
-    "\n" + "SBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS/Rwy" +
-    "\n" + "18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim" +
-    "\n" + "+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP" +
-    "\n" + "6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhj" +
-    "\n" + "lR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHo" +
-    "\n" + "CUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8" +
-    "\n" + "LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNf" +
-    "\n" + "E9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJ" +
-    "\n" + "DuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr5HctpLgwvLVKCeDfU8nc" +
-    "\n" + "hzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQAB/gMDAtfSz5hVoDvp4ZpoCdrR" +
-    "\n" + "S4An9JABiMWCTG4IUYuShVQKJJR3KtZ0C5D4gH4BUlEGDsUtY3/6deakvzedbVxv" +
-    "\n" + "mb59QoU8GuHZ/iWAlsY+37YIBu9kbywIFDDGJeD9th9cXPpuQ31kEvwE37gsNn5p" +
-    "\n" + "IB38oB3mgWoLi2nH4AAVNZXPNBTJ7rS1pi69v4BepUTbglb805ypmWJllzhyRUvm" +
-    "\n" + "DAU/8cu0cPWaaBU4s8Mi7SLv2s+i9EPYNzDkBEy7RYvZApP7G8x447iYPRvmaFnB" +
-    "\n" + "Fd3Ctpd3xkZhZatDV6MJCEfssIdy5yARV4zwCcZ5JDGXGlxoiPH6A3b11SwPOEMv" +
-    "\n" + "QJ0PRZ334XLK93hwzxjYKBJ8hBrR2oPvRUOAVs2/J8JSASYrufyqkXnYJ1EBnP3H" +
-    "\n" + "5TwbjRQ9Qmg1ScFCzTfYgu5emiIF5LFAfTasZGSJvjrXFVeocCswHUvHztzJmpbt" +
-    "\n" + "BAov3Lw6lBkxdvhZomyx74CGOnyz/eFD/khvIV/oms5lR8NNrkpkRGZ/xCN8Kmau" +
-    "\n" + "KhRBebGVEITzOWJQHz0QMhuTloVvtDbDDgqW8gH8eVQJkQCDw8Wd79uj0kw1Xaln" +
-    "\n" + "nseFPLCRNRN0js7cCGW95fVtawRNBCNYambNCLthkBfzT0+1/ULRC2JrP1rutr6D" +
-    "\n" + "sye0S44kNyXKhM72Hamu4XygYlzRsYQflv2PgypjVmkdcZ2rwomMVdqQll3Q7jde" +
-    "\n" + "kWKDpKdx7lR2pnDoXmn43VR1X4uD1PHab56tYE0JUrKDgqZJqzCwJXc3FcPV7LgD" +
-    "\n" + "8pISoMZJ5+84UiRBvNN7N24kpLd9k97Iz29qY6u86Uy/f7/X77qur58r6K04vTfH" +
-    "\n" + "8nA/ybc/9Ube6oyQ44A2NEwBrP3NUA6lHNPeaYBO2RGxTJJU2Edxuy3bJMpEkBhU" +
-    "\n" + "CeWWIZnuxojF+pGjiPLArVZg6Mahc0GlYoiA66cxTuoGHM/wO5Xl0f33L0jny3Kv" +
-    "\n" + "I9OWvUJbKs+J8G6q0zorl5nNmPpTwGYLJkUKhLtMhjS+jf5XA7b5jN1079/oToXu" +
-    "\n" + "Xsfl6J7vnwJt7gglLRpK8iw3xlF4X4AWodBLj36HEyOgTimJXLt2fdpIrkiutUFF" +
-    "\n" + "qdWdZeK+sII8ZAyrfgvwxvmairFK3ylbPwA340jsRQeA8boOOSiDV0cPOszQi1Rt" +
-    "\n" + "Ygnae9or6faA3lqe+fRQi5JsmnJ1jLMe0mxw1mMOR4YLCMjgBc0CTMkY5kmCykA7" +
-    "\n" + "NCQBec2Fueu9cxsu7LJO4+OAUF+i+G/BWPzvWqyJrLk52tME2TxyVL5PRZvqAcrK" +
-    "\n" + "CV+d9IKxH4Ng40qPXL1gM27wWrrFa6RGq12oGvTqkVcomImzqK1ASSPWU3bSYiOy" +
-    "\n" + "2JOQvjLxjQw6emNYG09SlKrzNmXlbrZ4BfolL4eI8H2+3+UG4l/cXxPnLEeQzkvu" +
-    "\n" + "XuW5yajWoNBocEICcopmv8QgpwgiTUstmOTMFXD1EbVasonaH5R+wxBMB4Y1K+ot" +
-    "\n" + "eRawIyFA75FO8HCPoTBe5+Qb6G8+5i7nsgDtHG337G8JFz3hE3U++90zbYxxtjYx" +
-    "\n" + "Y2PYHfOwsDE8IDu1ZqzuB7lgrNADzOzelhSrcaW/jNHPGlxcsPTXl7S2QazgIPqk" +
-    "\n" + "kZ9g4ceXSsZOV9Yl4Bu2ODeUiVeYGGEXwJ7WAKNvaR3bMbhl+iwIQFy3A12/fz0w" +
-    "\n" + "B16C9qp7P9+5FEFWjlqi/28dSfECiDD4X4iyEe+sWTS86Cv0VsL300dIUQPIs65d" +
-    "\n" + "ddkrIkcpM4jyabKTZcltiQIlBBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc" +
-    "\n" + "4xHEo+UP/02AIUR0349zGk9a4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0Zoq" +
-    "\n" + "TO8A0uFmEhCkw++reQcWOz1Nn+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq" +
-    "\n" + "7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/EC" +
-    "\n" + "THxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mli" +
-    "\n" + "vy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfn" +
-    "\n" + "Rn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUh" +
-    "\n" + "XYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkK" +
-    "\n" + "G8ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23Mz" +
-    "\n" + "Ts1hhwgIy4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3" +
-    "\n" + "gJgH0QONrUaRY84/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+w" +
-    "\n" + "p1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K" +
-    "\n" + "=h0dN" +
+    "\n" + "/gcDAqej/ZYOzi3Q/yc57TFfSlCcWayO9LTkmpm9VN8nQGAhJ5n/1h8ezRHccB9+" +
+    "\n" + "2dYIVks7daTkc072rBRqlMzlxXKkQlRhtRkShX3kb1ypbLc6hRd8AoEkpuOSxBnP" +
+    "\n" + "8yXJwTQtFDGGIiGQfhXdJijEgbqo4oEFlSfyVOsHN/dwsjz3DLNlnBn/ZnEJ3kZp" +
+    "\n" + "w3XE/d+O4zxdQfmrCFaBzl5W0Hd9Sg42N5lZRX87J+BRSoyLbrI4Z/YoIIFiSJUr" +
+    "\n" + "8Flti0P2zeMuLBnOGUuN6NJgtui8wWZ3QT9tq1Nj8D/YwXosCjW/rE+x9p5EIamk" +
+    "\n" + "N13R/BNzJUdvmPOo2YrHri1+B2UUeSwlSKB+6UzOGESYpHOHvLSGRhwuPsjB/ZuB" +
+    "\n" + "x3nDnLEDmZ9ihDFO1uU5QoDZX1QR0I/1GBTlrwNMnFWkyqfV7L1jzLnHf1lDbl+M" +
+    "\n" + "xs6P7aRdHJBfD400CryY58nqWOOvrrMle7B4mykMAhQ8kwXivKECnKoL/PLqYNP+" +
+    "\n" + "tyLn5aiWzS+WxzHDhNI7ysQenVSGLej2HatbdbVIi/aum+HMctQ/J4MFd0rmmmIy" +
+    "\n" + "k46j99LOGZuWz+rmPA7A5W7NkwrT8tAcLEkkVZVf0NHdnstysFEMJbmluGp5JTwz" +
+    "\n" + "V8xDhE3T/nzV3Vpt6PPylfT2SVx2dXUHNBZAmlahyAWLm8tveu+B12czWeWzWp6B" +
+    "\n" + "SytyqNY6EJl5nGa+znlIy9k4jpo58QhLixPw9jOvd95IqaR9tigJEbjNOWBjoxrG" +
+    "\n" + "9UqyPcG/wzQ0LEYO6Ms5DH3sqKtEJ4OvJnX3DkvQRKQHVJI1wu3bFr9s1PzNaRbt" +
+    "\n" + "J0agUUxxbxYw0EHFnS/tmXdo5cbswg7JXeyhyHku8aDfZXJ9qTTwj+mxm1iCDmTm" +
+    "\n" + "f2Jxt8R4BLV36sZZ0+nYDFfoxBfh3Z7M55gBcfDKKe1NqOJa3Pf0A+fUhVjD/zf5" +
+    "\n" + "xAGkxh1esYrCLUHOtxiu9uyyMwkUpA+G9sf0copFMp8hgjVzA1LLGFk/tx+X1lfk" +
+    "\n" + "D68/Ts9N2+jQlChG2mNPeLGoPzMbEztYWcYykA0uqtO0R+qya8FxGqZx8SpQVMor" +
+    "\n" + "x8qOFLNGNZ4PLSZsrv5+jTXcLvJ4gMV7qnMcrHaNTvuoxGwWdHLlhi3kcuQKuj+r" +
+    "\n" + "WAauHW/E7tjNHhO9CGj59445bm5LkyaUeczaHGv881IQEbqLwwc73IbzIq0uoeqa" +
+    "\n" + "VzsJM8FXmxR1/Mmn2uyCxog7FJioBgeKDtQMI0hW/99OVTvG7LtW++QnPbOD1YDw" +
+    "\n" + "qt4tX3MTvkq+rVn+0gCcg7c58d+RTb1Y6Hd8x2VYRHu26gzNHDvgJjALPCM7epSC" +
+    "\n" + "A2tqaj6bNNqTYZ/iRc/BIIVQ5SodCWvQmoQG86uSSs/yu1iZrFqXoYxHPfTAQmgd" +
+    "\n" + "tKR8d68wuJWPBfYjD7osUyN/EXL+XNnF50NsL3RiY79fMWVyQBIB9vswF5ST8mOk" +
+    "\n" + "AvZaUlVYssNZ5bpGTXkpwXWWOWogsZo1MJKJ3aNRZD1UhHTBm9JZA2zDomhA0G6U" +
+    "\n" + "9p9CosSOMFyQ5QXSVc+7uQ/ZcU4FzghD1riAuVlp7XlXhp5qlMm67X4/MZoYDEIN" +
+    "\n" + "s03X2fACnwc4HAbz7qbf8tyNyC113C4wP185A0Y3f5KTj/885A9IyL7KjtDVIXHB" +
+    "\n" + "XKThpOmzzc8csWU23oBiSk4noxyX9piwiHBztC8XuOxF/kKfI/wR69f25D4tmfUH" +
+    "\n" + "4bjJRpUylZtgfR4i4CmZx/GZ5jefAnw2Rl4M/oPJRav+oPqY6zXx2qG0K2Fub255" +
+    "\n" + "bW91cyBzdHJpa2UgPHN0cmlrZS5kZXZ0ZXN0QGdtYWlsLmNvbT6JAk4EEwEKADgC" +
+    "\n" + "GwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AWIQRlU34hLcGQJa047bJ4FhcxnOMR" +
+    "\n" + "xAUCXNb49AAKCRB4FhcxnOMRxMsUEACkSyIlpNoMhDnf1mWwdkTQVy5aWjRu5mFQ" +
+    "\n" + "Abpe8vxT4n0lD0HnP2Gls91iJGBolJzE4DiHxXaw09LWfS7WYFpbex11McudRvvk" +
+    "\n" + "zCH7UCA2EgPJvIVW2905RXO9w29D4ehAMaB/wqCyoPwGI9q0D6/dH8ElAfTulrvD" +
+    "\n" + "qtv13VEdgMZo1ybM/XNSt/zi+ute9b5UZ1TFH2Mzs9qcP2cmRfIWZ4o005Oqrj6h" +
+    "\n" + "9htz1rqG6j6u9vrNYAeI+QPQ+HPtwuSeZjagTgzFzRQByECWZn8SVAPFOGrfAWLQ" +
+    "\n" + "Osh+JyeOd/XTjhD2NNxWCJgU2vXvWkWkpR4Cyro2f7crdyNWpI1+fca/18goTLo/" +
+    "\n" + "hRB2HGXtWQ/Who430Ug09hycd3lAiZQVffSh0Tevu/kL1M08OB9D6eZIoikF2cCe" +
+    "\n" + "QlukR9WZDmo5nv3eGgf7DthDGjqKPJiZEH4MQZNeMiK/u7/wmPJckXCPetuWaZzN" +
+    "\n" + "hBPdyHZBlD/6QWp/VWmITY5Gk0jlZ9WWi8WAuxK7S5oS5C303Q8n/u2zFVVP6EVl" +
+    "\n" + "XnuhLXPlU7nUumQhXjoaEI12WRFOUoYOPeP3ttZyzxRjw7Xbxb8/8IjrsHNRPDm5" +
+    "\n" + "NYEHq0Qr7IsGJG6JHIQ+A4WtSziU/+olVuicm2mH01icLYcYPrYzH0ayA2veEv8s" +
+    "\n" + "NjJ7DtmyjJ0HRgRVR5ubARAAwV9vG0eUMW6xjVT094zOtCE/pvxkyx+pZuDnGaJg" +
+    "\n" + "Ho/16wTnF/9AWLTqqj+w7q/JNAPH3C5GQkgbHtZun73wAqPFW3rp7+CK0k+RYF4e" +
+    "\n" + "22D2bHiMuVO159HS6qVVyUajLd1C0v0cMtfF8fI/bFySQwCiKmeDB8IAZJz3ngZw" +
+    "\n" + "+GhumyQLgRCOkVuZYWxvFhSXwp4hbkZ4pvlQ+rnH/d8dzZC9E1mNJdD21HVvdrC3" +
+    "\n" + "4iqdZ5s/tXUaAXJE+9NbDLNqZOPDuWP7z+jhA8xc4xnQNa/WJG5V4zfVcYUjdNFp" +
+    "\n" + "ZnKtQ6hFN+vjKouGCELLhdzX0td/lNpYY5UeR6UcXQzHx4xWJZOYZTrbr6KbHmE5" +
+    "\n" + "TMpBZfA+8tKkhSAIqlZeqXZUgVPOGzix6AlBnp7PlJe5tFEocGXVZjInxcP3ycCE" +
+    "\n" + "mSPA+bxpDN6xO08axwEPztXyZxmTQUYJ/C452Y0RgP7tX8HqbRWNDcszuZTs01iO" +
+    "\n" + "hwSZdYTGr3tpdL7cATy60W20Ycume+wTXxPWtsO2OGhXrIYxKVsRPG0CMjKwRmkW" +
+    "\n" + "okNpaV5gOl2GcUPMTlH7LbAEdUzPiW6FyQ7k8PmIWlWtlu2f0c3bTZ2oVggo6bRa" +
+    "\n" + "utA7oIC8ABp46+R3LaS4MLy1Sgng31PJ3IcwpC+x4pIdiwu8klEf1czkWoP05I8W" +
+    "\n" + "EUcAEQEAAf4HAwI25oIFjb2KSf83GqZT0bDGDDuLAmJDv1MPOMSgLb1gRGWzyeWC" +
+    "\n" + "1+KXC/by4JP2zXbaLffFFLHg5Bfv+LHghnXPdZ/NoDKPR0tdnqiqP+9JNhAgOpZl" +
+    "\n" + "RP0sL9sNiCWn6Kx5bmMIvOi5yaCabZIbYVwMnx+3jTEgN3SBYa1T92MuqLQP6J5A" +
+    "\n" + "kJ2rF/QWx3Q/BOduS3/qjlUDbilDtrMogU9o//Sui/veAK+fjrCMcaq3f4AUKV8A" +
+    "\n" + "84E8C3l9OlyqCmM3SWO/69/fu+s+0DhPT67dPJykAoq97x9LfG7GSOk/3WIYXVfT" +
+    "\n" + "5Kuf88E0aYIb7BkOSBvz7LtJOWTgnBwSJyWlb6sRMMLb4hWHPehNc4UdXcaBxU4b" +
+    "\n" + "BSbtXBHpuLEeoOh4gqVisY901OOUERsFJqt5xe9CciTbwVXqkaU6Ofj0HBfLiUyZ" +
+    "\n" + "R6cIYCBEK+C6SfYaUUn98gOGx/b9dtzJM8fyDYdYaC6CS01BvyPglzBOXkCyh9r7" +
+    "\n" + "/sMm6JKeMXUNI86BqztfYyLVBgKHE5L88dfgQtUd+morUaK3iBvIrBpFUllDsUcp" +
+    "\n" + "03I1kX/8ZFJMqoqHOhzk0gYrJjkV6dvV4w+DrA0nelZjoWvER/Rf5lU5495RI3A1" +
+    "\n" + "64DLSPW/N6fyQZnnf0noJjwZBVO0U3q8f2fBWY8EgZrlvxS7K5yVlwFNc/YRLSwx" +
+    "\n" + "Qmitt8ZSaUs+J9vBkz1w7xJegSjReb1aGasNg+Rt89RKQQGFwIk0YVZQUcKyLgA2" +
+    "\n" + "5xQ1CC2N9z4du+B2Iwb+smq4DJEzg4/fo5ZDqWN165zAToqzmKE2+rR5q5Ix6gqQ" +
+    "\n" + "RUwMu/TY/mNwnIOuGMWGZMZ+F0IiwwxgopjMjMqaOmp9pwDlOoTEvvXcWDvBTejX" +
+    "\n" + "A+X5efeTOWd+7FgY4KsYV1j07YnxYKvnHvnE6qtl5qi5GFxEbr6L7T1jTG5GJAfS" +
+    "\n" + "cBQadQej47UF5lCZz81HN2MhoYDI8MlbvssrQuCQjtg+SHpoxPanoEkANZ9NoSg5" +
+    "\n" + "jLztpUD726s0ygBVVasTv/DpdEyrQ4qEiL8RezPwHoKmXg0hCT3ocS567Ye9/SFT" +
+    "\n" + "4vxFkbryqYDsiKntA2osbz+eHhjtIIMqNJuyqT/WWwi3HOQ0C/SfDDKAmev3RtWb" +
+    "\n" + "HCG4fJnEuSE4pZ3GuBaeIaNjRbb1Hdj57k3Wg2mUC9HEQDGXhSoVPrEl6dLDbNF8" +
+    "\n" + "0sNBBjdjmjchidiBaSBiN2WqBRcwq7t5xnr0iRXX4v/N6qPzqkkzojP24Qn2FANS" +
+    "\n" + "Lz+pDW/sAsa8hz8Wn67CE9SVVEMfCk64xxA+npmEjBBapP7cbVzw7zOQTCJiVD+M" +
+    "\n" + "rKjxJqzppp90VHhdoyF4xfZ+iB9D1ehteGJBIGRpouaQmfxQHhk5/h8UOX3kJTrl" +
+    "\n" + "mLfzNlMwUVrxRhREE1ycbne0pkpblvlg5ZuVugbFF7iKLvaJeOz73IPbcRpnFfFt" +
+    "\n" + "fsi6jcflDi9ZO9Nm2kPsGZL9yF8dzb/RTY7e9W4m0hXUtTeAWJmpah6Z0Dp1IYU8" +
+    "\n" + "wmypqiBqunpX8tZWlDc9a3UDAfp3aN2I1E7wvqf25cD7ZoipVJcOUcE+sfAERsLO" +
+    "\n" + "clSAbf4YO94Q1VD5Po+tlULmRWEsxlCZPfg2OSyFFSe2D3Y7N5fztuKfOUbyZjoh" +
+    "\n" + "rTHoCMOIeAs/R74/6Rq8f1kRsd7fmlDzhw5X89yccgYv+YfFrJrhkRUo9xNE6aW4" +
+    "\n" + "38o3seR1U5lWEr4yogPJ+tglEUamXr50RuFX/e49x1FHUpNCx3ES4B9hQV+myvMZ" +
+    "\n" + "iQI2BBgBCgAgAhsMFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAlzW+RkACgkQeBYX" +
+    "\n" + "MZzjEcQuWg//Ymxoh29nOGSi9BQT2eZD6wQFpsYV1hCC3GNifzWZ90Hl2wZ3wOzQ" +
+    "\n" + "bPL6Yz40ms8/yPnjhCjWdO6Kt+RAERv7/V9yWLutKvgaPeee1tytnLBQMUhsx89R" +
+    "\n" + "Mj4mDFW/6fPkft1iu0JVX33OPvJSwmpfrU48AlQprVh7ICodnLWVZnoj/qLye4I3" +
+    "\n" + "1XTTuikXHjlNuWcxFqIeLdPyuh5rIXI7cLf+NzZYNxssAECavpY97OS4JtZl3a5L" +
+    "\n" + "WVdYrM7u9mgRcR/qouugIz5P5E2mzSezsTXGvufr+kpsIjd//YKFtVci7e8FdmFq" +
+    "\n" + "QBPooavOlPnn0bHppfVhYnDjgQy/Yr8FVYuV1MtUUuekJKPNVKJXNZsvxWe+RBq3" +
+    "\n" + "aTkVV7fFLrP6DWl+y2Nqyl0gNzcziILZnyc0ZERLD+lLn8Np6WRVgrj1bbbcOSPZ" +
+    "\n" + "/hBHLkhr8hERLb/C6VJVCJLCeTPjIcY3uzveFz6h6z6Mynz8ALhcoGs1Rgj722UK" +
+    "\n" + "IbB0SrKvd2tk+IEN9haNkkC52N/sId6rdXJ49vR5WvR1bcj3L3Df5wAuSCZG66fE" +
+    "\n" + "lfMykmAYsBHLNZ3NzWp9W8qPJtVKePh5QMs+9KDM1B04XWZ6+ZPV5duIdeC5WX5O" +
+    "\n" + "OdMo+gr1RYpYR/MMEO1kUs6gIU6eovzfSl1BznM3V3+2bSdeJ3fMKhQ=" +
+    "\n" + "=HPTr" +
     "\n" + "-----END PGP PRIVATE KEY BLOCK-----",
     null, {});
   const keyDetails = EnigmailKeyRing.getValidUids("0xD535623BB60E9E71").join("\n");
@@ -301,9 +301,9 @@ test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails(
     "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L");
 
   Assert.equal(pubKey.keyData.substr(-52),
-    "p1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K");
+    "CvVFilhH8wwQ7WRSzqAhTp6i/N9KXUHOczdXf7ZtJ14nd8wqFA==");
 
-  Assert.equal(pubKey.keyData.length, 2972);
+  Assert.equal(pubKey.keyData.length, 3020);
 
 
 
@@ -368,11 +368,11 @@ test(withTestGpgHome(withEnigmail(function shouldExportKey() {
   EnigmailKeyRing.getAllKeys();
 
   let pub = EnigmailKeyRing.extractKey(false, "0x781617319CE311C4", null, {}, {}).replace(/\r\n/g, "\n");
-  Assert.equal(pub.substr(-50), "/H0OOI1K\n=CVNK\n-----END PGP PUBLIC KEY BLOCK-----\n");
+  Assert.equal(pub.substr(-50), "d8wqFA==\n=Hflu\n-----END PGP PUBLIC KEY BLOCK-----\n");
 
   let pubAndSec = EnigmailKeyRing.extractKey(true, "strike.devtest@gmail.com", null, {}, {}).replace(/\r\n/g, "\n");
   Assert.equal(pubAndSec.substr(-37), "\n-----END PGP PRIVATE KEY BLOCK-----\n");
-  Assert.equal(pubAndSec.split(/\n/).length, 159);
+  Assert.equal(pubAndSec.split(/\n/).length, 160);
 })));
 
 
@@ -674,9 +674,8 @@ test(withLogFiles(withTestGpgHome(withEnigmail(function shouldImportFromFileAndG
   const importResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj);
   Assert.assertContains(importedKeysObj.value, "CC68572FE740754B38D758D1227073A53A6FA857");
   Assert.equal(importResult, 0, errorMsgObj);
-  const output = { 
-    "alice@example.org":
-      "mQGNBFhoRoABDADJFyP60NvQWTE1e5+UVBy5jXyaRHsQrr5Zufoe3qcBC7eR27ngsdc2RhFY5PW/" +
+  const output = {
+    "alice@example.org": "mQGNBFhoRoABDADJFyP60NvQWTE1e5+UVBy5jXyaRHsQrr5Zufoe3qcBC7eR27ngsdc2RhFY5PW/" +
       "2gLtS7fnwHTXS5xGbUUnjEZHeI1YLAgojxVrl4roR9dUNCArkqeJ3A2qx/9fhjzLgehmQDJyTjTn" +
       "jTEoPsHizAmnnfuAQIrdiqwqyFRols+CVhb7rELUS4PsFTxX+p/w0UDiAHmPs0yXo6YZeFMW4xCL" +
       "Wng35jRAui0Bz1ImG6tttqJDaWxz/RYn+otLpqFWLGR3ohp13Mddm4fksVFWPcynFhoJrwRjUcmL" +
@@ -729,8 +728,7 @@ test(withLogFiles(withTestGpgHome(withEnigmail(function shouldImportFromFileAndG
       "FEQwORk9HrbeImH/e2MvsGZ+UClLPHtBw9XsveIZ18Xk+8YgGbg5gaU5FlytWEyooKAplBbh5wzO" +
       "XKcnZrAxUr+ZjqC7YhskjettjoI3Y03C7LmjIocBpF9bGnO0YZvctnOwHxhAAOeP2dm+rgpUApHy" +
       "cBT1Hh+hwH0QlY6iafgVCG6gzwGk5uXjHe+wf71sjWhZ3mRi7E6CD9KkYHVMqW78",
-    "alice@example.net":
-      "mQGNBFhoRoABDADJFyP60NvQWTE1e5+UVBy5jXyaRHsQrr5Zufoe3qcBC7eR27ngsdc2RhFY5PW/" +
+    "alice@example.net": "mQGNBFhoRoABDADJFyP60NvQWTE1e5+UVBy5jXyaRHsQrr5Zufoe3qcBC7eR27ngsdc2RhFY5PW/" +
       "2gLtS7fnwHTXS5xGbUUnjEZHeI1YLAgojxVrl4roR9dUNCArkqeJ3A2qx/9fhjzLgehmQDJyTjTn" +
       "jTEoPsHizAmnnfuAQIrdiqwqyFRols+CVhb7rELUS4PsFTxX+p/w0UDiAHmPs0yXo6YZeFMW4xCL" +
       "Wng35jRAui0Bz1ImG6tttqJDaWxz/RYn+otLpqFWLGR3ohp13Mddm4fksVFWPcynFhoJrwRjUcmL" +
@@ -791,10 +789,10 @@ test(withLogFiles(withTestGpgHome(withEnigmail(function shouldImportFromFileAndG
     Assert.equal(k.exitCode, 0);
     Assert.equal(k.errorMsg, "");
     EnigmailLog.DEBUG(" -> address: " + address +
-                      "\n -> wanted: " + output[address] +
-                      "\n ->    got: " + k.keyData +
-                      "\n");
+      "\n -> wanted: " + output[address] +
+      "\n ->    got: " + k.keyData +
+      "\n");
 
     Assert.equal(k.keyData, output[address]);
   }
-}))));
+}))));
\ No newline at end of file
diff --git enigmail-2:2.0.10+ds1-1/package/tests/resources/dev-strike.asc enigmail-2:2.0.11+ds1-2/package/tests/resources/dev-strike.asc
index 94ca9c732..fc35a1540 100644
--- enigmail-2:2.0.10+ds1-1/package/tests/resources/dev-strike.asc
+++ enigmail-2:2.0.11+ds1-2/package/tests/resources/dev-strike.asc
@@ -1,5 +1,4 @@
 -----BEGIN PGP PUBLIC KEY BLOCK-----
-Comment: GPGTools - https://gpgtools.org
 
 mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe
 tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K
@@ -12,41 +11,42 @@ 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
-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
-LBn4tb400iHp7byO85tF/H0OOI1K
-=CVNK
+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
+J14nd8wqFA==
+=Hflu
 -----END PGP PUBLIC KEY BLOCK-----
diff --git enigmail-2:2.0.10+ds1-1/package/tests/resources/dev-strike.sec enigmail-2:2.0.11+ds1-2/package/tests/resources/dev-strike.sec
index 907a1c291..3b7981e94 100644
--- enigmail-2:2.0.10+ds1-1/package/tests/resources/dev-strike.sec
+++ enigmail-2:2.0.11+ds1-2/package/tests/resources/dev-strike.sec
@@ -1,7 +1,6 @@
 -----BEGIN PGP PRIVATE KEY BLOCK-----
-Comment: GPGTools - https://gpgtools.org
 
-lQc+BFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe
+lQdGBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe
 tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K
 TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L
 cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA
@@ -12,96 +11,97 @@ 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
-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
-=h0dN
+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
+=HPTr
 -----END PGP PRIVATE KEY BLOCK-----
diff --git enigmail-2:2.0.10+ds1-1/package/wkdLookup.jsm enigmail-2:2.0.11+ds1-2/package/wkdLookup.jsm
index 045b13fba..37057032e 100644
--- enigmail-2:2.0.10+ds1-1/package/wkdLookup.jsm
+++ enigmail-2:2.0.11+ds1-2/package/wkdLookup.jsm
@@ -16,6 +16,7 @@ const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
+Cu.importGlobalProperties(["XMLHttpRequest"]);
 Cu.import("resource://gre/modules/Sqlite.jsm"); /* global Sqlite: false */
 Cu.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false*/
 Cu.import("resource://enigmail/funcs.jsm"); /* global EnigmailFuncs: false*/
@@ -56,9 +57,9 @@ var EnigmailWkdLookup = {
       }
 
       Promise.all(emails.map(
-        function(mailAddr) {
-          return self.determineLastAttempt(mailAddr.trim().toLowerCase());
-        }))
+          function(mailAddr) {
+            return self.determineLastAttempt(mailAddr.trim().toLowerCase());
+          }))
         .then(function(checks) {
           let toCheck = [];
 
@@ -68,8 +69,7 @@ var EnigmailWkdLookup = {
             if (checks[i]) {
               EnigmailLog.DEBUG("wkdLookup.jsm: findKeys: recheck " + emails[i] + "\n");
               toCheck.push(emails[i]);
-            }
-            else {
+            } else {
               EnigmailLog.DEBUG("wkdLookup.jsm: findKeys: skip check " + emails[i] + "\n");
             }
           }
@@ -90,13 +90,11 @@ var EnigmailWkdLookup = {
               if (gotKeys.length > 0) {
                 importDownloadedKeys(gotKeys);
                 resolve(true);
-              }
-              else
+              } else
                 resolve(false);
 
             });
-          }
-          else {
+          } else {
             resolve(false);
           }
 
@@ -142,45 +140,16 @@ var EnigmailWkdLookup = {
     });
   },
 
-  /**
-   * get the download URL for an email address for WKD or domain-specific locations
-   *
-   * @param {String} email: email address
-   *
-   * @return URL
-   */
-
-  getDownloadUrlFromEmail: async function(email) {
-    email = email.toLowerCase().trim();
-
-    let at = email.indexOf("@");
-
-    let domain = email.substr(at + 1);
-    let user = email.substr(0, at);
-
-    var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
-    converter.charset = "UTF-8";
-    var data = converter.convertToByteArray(user, {});
-
-    var ch = Components.classes["@mozilla.org/security/hash;1"].createInstance(Components.interfaces.nsICryptoHash);
-    ch.init(ch.SHA1);
-    ch.update(data, data.length);
-    let gotHash = ch.finish(false);
-    let encodedHash = EnigmailZBase32.encode(gotHash);
-
-    let url = "https://"; + domain + "/.well-known/openpgpkey/hu/" + encodedHash;
-    return url;
-  },
-
-  /**
+   /**
    * get the WKD URL for an email address
    *
    * @param email: String - email address
+   * @param advancedMethod: Boolean - use "advanced" method as specifed in draft 08
    *
    * @return String: URL (or null if not possible)
    */
 
-  getWkdUrlFromEmail: function(email) {
+  getWkdUrlFromEmail: function(email, advancedMethod) {
     email = email.toLowerCase().trim();
     let at = email.indexOf("@");
 
@@ -197,53 +166,71 @@ var EnigmailWkdLookup = {
     let gotHash = ch.finish(false);
     let encodedHash = EnigmailZBase32.encode(gotHash);
 
-    let url = "https://"; + domain + "/.well-known/openpgpkey/hu/" + encodedHash;
+    let url = "";
+
+    if (advancedMethod) {
+      url = "https://openpgpkey."; + domain + "/.well-known/openpgpkey/" + domain + "/hu/" + encodedHash + "?l=" + escape(user);
+    } else {
+      url = "https://"; + domain + "/.well-known/openpgpkey/hu/" + encodedHash + "?l=" + escape(user);
+    }
     return url;
   },
 
   downloadWkdKey: async function(email) {
-    EnigmailLog.DEBUG("wkdLookup.jsm: downloadWkdKey(" + email + ")\n");
+    EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey(" + email + ")\n");
+
+    let keyData = await this.doWkdKeyDownload(email, true);
 
-    if (!window) {
-      let appShellSvc = Cc["@mozilla.org/appshell/appShellService;1"].getService(Ci.nsIAppShellService);
-      window = appShellSvc.hiddenDOMWindow;
+    if (!keyData) {
+      keyData = await this.doWkdKeyDownload(email, false);
     }
 
-    let url = await EnigmailWkdLookup.getDownloadUrlFromEmail(email);
+    return keyData;
+  },
 
-    let hdrs = new window.Headers();
-    hdrs.append('Authorization', 'Basic ' + btoa("no-user:"));
-    hdrs.append('Content-Type', 'application/octet-stream');
+  doWkdKeyDownload: function(email, advancedMethod) {
+    EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload(" + email + ", " + advancedMethod + ")\n");
 
-    let myRequest = new window.Request(url, {
-      method: 'GET',
-      headers: hdrs,
-      mode: 'cors',
-      //redirect: 'error',
-      redirect: 'follow',
-      cache: 'default'
-    });
+    return new Promise((resolve, reject) => {
+      let oReq = new XMLHttpRequest();
 
-    let response;
-    try {
-      EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey: requesting " + url + "\n");
-      response = await window.fetch(myRequest);
-      if (!response.ok) {
-        return null;
+      oReq.addEventListener("load", function _f() {
+        EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: data for " + email + "\n");
+        if (oReq.status !== 200) {
+          resolve(null);
+        }
+        else {
+          try {
+            let keyData = EnigmailData.arrayBufferToString(oReq.response);
+            resolve(keyData);
+          } catch (ex) {
+            EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: error " + ex.toString() + "\n");
+            resolve(null);
+          }
+        }
+      });
+
+      oReq.addEventListener("error", (e) => {
+          EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: error for " + email + "\n");
+          EnigmailLog.DEBUG("   got error: " + e + "\n");
+          resolve(null);
+        },
+        false);
+
+      try {
+        let url = EnigmailWkdLookup.getWkdUrlFromEmail(email, advancedMethod);
+        EnigmailLog.DEBUG(`wkdLookup.jsm: doWkdKeyDownload: requesting ${url}\n`);
+
+        oReq.overrideMimeType("application/octet-stream");
+        oReq.responseType = "arraybuffer";
+        oReq.open("GET", url, true);
+        oReq.setRequestHeader('Authorization', 'Basic ' + btoa("no-user:"));
+
+        oReq.send();
+      } catch (ex) {
+        EnigmailLog.DEBUG("   got error: " + ex.toString() + "\n");
       }
-    } catch (ex) {
-      EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey: error " + ex.toString() + "\n");
-      return null;
-    }
-
-    try {
-      let keyData = EnigmailData.arrayBufferToString(await response.arrayBuffer());
-      EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey: got data for " + email + "\n");
-      return keyData;
-    } catch (ex) {
-      EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey: error " + ex.toString() + "\n");
-      return null;
-    }
+    });
   }
 };
 
@@ -263,8 +250,7 @@ function checkDatabaseStructure(connection) {
       EnigmailLog.DEBUG("wkdLookup.jsm: checkDatabaseStructure - success\n");
       if (!exists) {
         return createAutoKeyLocateTable(connection);
-      }
-      else {
+      } else {
         return PromiseUtils.defer();
       }
     },
@@ -344,4 +330,4 @@ function importDownloadedKeys(keysArr) {
   }
 
   EnigmailKeyRing.importKey(null, false, keyData, "", {}, {});
-}
+}
\ No newline at end of file
diff --git enigmail-2:2.0.10+ds1-1/ui/content/enigmailMessengerOverlay.js enigmail-2:2.0.11+ds1-2/ui/content/enigmailMessengerOverlay.js
index f1959c2f0..f1d10bfa5 100644
--- enigmail-2:2.0.10+ds1-1/ui/content/enigmailMessengerOverlay.js
+++ enigmail-2:2.0.11+ds1-2/ui/content/enigmailMessengerOverlay.js
@@ -852,6 +852,13 @@ Enigmail.msg = {
     if (bodyElement.firstChild) {
       let node = bodyElement.firstChild;
       while (node) {
+        if (node.firstChild &&
+          node.firstChild.nodeName == "LEGEND" &&
+          node.firstChild.className == "mimeAttachmentHeaderName") {
+          // we reached the area where inline attachments are displayed
+          // --> don't try to decrypt displayed inline attachments
+          break;
+        }
         if (node.nodeName == "DIV") {
           foundIndex = node.textContent.indexOf(findStr);
 
@@ -950,12 +957,10 @@ Enigmail.msg = {
       }
     }
 
-    // extract text preceeding and/or following armored block
+    // extract text following armored block
     var head = "";
     var tail = "";
     if (findStr) {
-      head = msgText.substring(0, msgText.indexOf(findStr)).replace(/^[\n\r\s]*/, "");
-      head = head.replace(/[\n\r\s]*$/, "");
       var endStart = msgText.indexOf("-----END PGP");
       var nextLine = msgText.substring(endStart).search(/[\n\r]/);
       if (nextLine > 0) {
@@ -1095,9 +1100,8 @@ Enigmail.msg = {
     if (!msgUriSpec || (displayedUriSpec == msgUriSpec)) {
       if (EnigmailPEPAdapter.usingPep() && pEpResult) {
         Enigmail.hdrView.displayPepStatus(pEpResult.rating, pEpResult.fpr, null, pEpResult.persons);
-      }
-      else {
-        if ((head.length > 0) || (tail.length > 0)) {
+      } else {
+        if (tail.length > 0) {
           statusFlags |= EnigmailConstants.PARTIALLY_PGP;
         }
         Enigmail.hdrView.updateHdrIcons(exitCode, statusFlags, keyIdObj.value, userIdObj.value,
@@ -1216,20 +1220,11 @@ Enigmail.msg = {
     }
 
     var msgRfc822Text = "";
-    if (head || tail) {
-      if (head) {
-        // print a warning if the signed or encrypted part doesn't start
-        // quite early in the message
-        let matches = head.match(/(\n)/g);
-        if (matches && matches.length > 10) {
-          msgRfc822Text = EnigmailData.convertFromUnicode(EnigmailLocale.getString("notePartEncrypted"), charset) + "\n\n";
-        }
-        msgRfc822Text += head + "\n\n";
-      }
+    if (tail) {
       msgRfc822Text += EnigmailData.convertFromUnicode(EnigmailLocale.getString("beginPgpPart"), charset) + "\n\n";
     }
     msgRfc822Text += plainText;
-    if (head || tail) {
+    if (tail) {
       msgRfc822Text += "\n\n" + EnigmailData.convertFromUnicode(EnigmailLocale.getString("endPgpPart"), charset) + "\n\n" + tail;
     }
 
@@ -1262,17 +1257,11 @@ Enigmail.msg = {
 
       while (node) {
         if (node.nodeName == "DIV") {
-          foundIndex = node.textContent.indexOf(findStr);
-
-          if (foundIndex >= 0) {
-            if (node.textContent.indexOf(findStr + " LICENSE AUTHORIZATION") == foundIndex)
-              foundIndex = -1;
-          }
-          if (foundIndex >= 0) {
-            node.innerHTML = EnigmailFuncs.formatPlaintextMsg(EnigmailData.convertToUnicode(messageContent, charset));
-            Enigmail.msg.movePEPsubject();
-            return;
-          }
+          // for safety reasons, we replace the complete visible message with 
+          // the decrypted or signed part (bug 983)
+          node.innerHTML = EnigmailFuncs.formatPlaintextMsg(EnigmailData.convertToUnicode(messageContent, charset));
+          Enigmail.msg.movePEPsubject();
+          return;
         }
         node = node.nextSibling;
       }
@@ -1282,17 +1271,9 @@ Enigmail.msg = {
       foundIndex = -1;
       while (node) {
         if (node.nodeName == "PRE") {
-          foundIndex = node.textContent.indexOf(findStr);
-
-          if (foundIndex >= 0) {
-            if (node.textContent.indexOf(findStr + " LICENSE AUTHORIZATION") == foundIndex)
-              foundIndex = -1;
-          }
-          if (foundIndex >= 0) {
-            node.innerHTML = EnigmailFuncs.formatPlaintextMsg(EnigmailData.convertToUnicode(messageContent, charset));
-            Enigmail.msg.movePEPsubject();
-            return;
-          }
+          node.innerHTML = EnigmailFuncs.formatPlaintextMsg(EnigmailData.convertToUnicode(messageContent, charset));
+          Enigmail.msg.movePEPsubject();
+          return;
         }
         node = node.nextSibling;
       }
diff --git enigmail-2:2.0.10+ds1-1/ui/content/enigmailMsgComposeOverlay.js enigmail-2:2.0.11+ds1-2/ui/content/enigmailMsgComposeOverlay.js
index 1b6651362..c54639a9f 100644
--- enigmail-2:2.0.10+ds1-1/ui/content/enigmailMsgComposeOverlay.js
+++ enigmail-2:2.0.11+ds1-2/ui/content/enigmailMsgComposeOverlay.js
@@ -4775,7 +4775,7 @@ Enigmail.msg = {
     var beginIndex = beginIndexObj.value;
     var endIndex = endIndexObj.value;
 
-    var head = docText.substr(0, beginIndex);
+    const head = "";
     var tail = docText.substr(endIndex + 1);
 
     var pgpBlock = docText.substr(beginIndex, endIndex - beginIndex + 1);

Attachment: signature.asc
Description: PGP signature


Reply to: