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

Bug#931126: marked as done (buster-pu: package enigmail/2:2.0.12+ds1-1~deb10u1)



Your message dated Sat, 07 Sep 2019 14:34:49 +0100
with message-id <[🔎] f49e2985d8466065c49c03185c24465a32228fb5.camel@adam-barratt.org.uk>
and subject line Closing bugs for fixes including in 10.1 point release
has caused the Debian Bug report #931126,
regarding buster-pu: package enigmail/2:2.0.12+ds1-1~deb10u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
931126: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931126
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
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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
-/gMDAtfSz5hVoDvp4Vugj4T3VQk8mJ3uYDZmPbNL8SK18VTIVpd3xgrjTP+JEtB+
-aw1WQK4Qik0BdKAu9Lv6wz4u/QNC8q4x3lBcoYleD6iXRL2Tpnh7RcEakIoxIeFH
-joBTZOI+v0HUlyVvSkIaEhE60UvdX+If9p9sx5+uHdYRRfOkM3SZMxLxCUVHMp1e
-ZBcmW+x9UiyA07wXyvAhlS2/iTijDtQFRqK8xs9w7zn0A12afksGtPEL7J5MRqQs
-BuxUrWSKVQ3DkgWXd56qEtbKuklKXe9t93eMPvcFQ2ZVhgic436dygtpNgkGliVq
-Di83wUjorTZFMeC0uhvQ2akfQxvj5TgYoI0rFABvn/6He1LBSWyiu6ZK1nC1PKUc
-KLGQGfq+kbHwJg3q0wIJ5+e1v6hZ9HClhaRsR4ADnTDnp3mGqPxDWvQox1S2+ESx
-8N6AcZ+q47D78IE4EzF4LyQ0g9FdDiNsPwqN4oS2/ZkXb/IbFoVoottU7915KqZO
-6kiJvpMcZrs4TJ4zR++CGBEvJDfUE4RoQHQe/XLA1RJXIwXr3kWPvB2Tc16vdhkh
-LZ9z/HOrPW6SI/UwVYFHpmJIYj3nHdjGcyWwz0KmQ3H5+AYe36afwJws6TFx/QLi
-fqlOkcaBaiQwpcpuSX2y4rTgcjDEaVdPGmvs2m5vKv66a8yybIl2P0veVTutGtC8
-DfQaggqZWQYHmXXvGUnBM+H9YSBJ2g3W3w51fKcN2FtX42OsVxXqZkqlGR2zBE00
-ilVZmiv6ajV9mmO7W8EV9TPqjrYuEDf2M57LllQ7OB1p1v6CtqIyVSL/Jak6ckMT
-5VdqMoup6ib5j4CR+C4i7Btu+gkXhW775l/jbFlUXKE5Vn+LAAIOpxiVZ2Z7azL6
-sNwxtfmpaTAgIvHGSysgPeXeEN3fgTsfZ0PYaqlEHggsYDDU4XvXIOKcUmrr6zEI
-KXeeS0+V3nxSIb9kQHYZyUFvNv98gCCj0wgNl+LoVJ9NvMkaOrCS0jkRaxJicQfa
-bu4XL9XbUBESuHvG6jiK6DNlhT1j3qFFcRBO7COI3OQ0JD7Y1XPYYR48EP69Fwe0
-82LZH5dq9kslpn8VsuygTum9jYFnE5UVLfmjbroFu9YlLE54T0CdZ4UQEWTrZiuz
-TXYf13FaVEgfAim+hjdUUVSCptsX2crC7Vrsk/xMjT2ETU1w/yZb5BVoCvbK/eaf
-sqQAPGElSp0YlI/mgpbc5rRQzcSXghenjOol/gJM0MbFJuyQ93sLW0Gi7zEeBxQi
-aO/Ua4F4VhPilPf+T66fNMM0bG29X5j41eRrN0m1ly4M+jOOIyocLcUamgFsRDTe
-XG9kHZUylAJqNMwQvDzbVSTbHKjhOTa3PyinrTwauYiQP6fIbd4JWkIW88cBynbR
-IHHCYYGxZoDUDd366QyNHKTd5wxw1MicK54tUDcUVDq8NKC+yGuGi6WLYt4WdNEg
-pYb/MzxGRzbhVEHNbfFEr5e706VcQlglpPcMTUctzRVF18wWHzPVbHdZiTBXdr0t
-hJkRNaAvnmQMvP0bXk+QDGW24Z66Yz0X2YzFo4Rdp/MAm/1KwagIu0hIGbwk8egq
-tq6Q5zyyiSp7dVvcNAPaEzEKZXRSrSjyNwQw0CHI940SRgK5JDkAMHZWK8vg8Ih4
-DR7m69XmYXwvTScrQqkFa+8XIb5QqeH7W3Qe4aKiC6QOJav/ptYLZ+s1TTzeIOA8
-5zxhWPj81YgifDtWPc4MG+Y0QuSzMdMue+/oJUt6lyQmtCthbm9ueW1vdXMgc3Ry
-aWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BBMBCgAnBQJVR5ubAhsD
-BQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc4xHEt/4P/1zf
-/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi72Dwug6
-a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywMdSfTAXa+popNccD5yPCJ
-VBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCq
-lmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0
-rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7
-UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNY
-Vfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV
-0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4
-IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbKqemK8D0rbaoxJq5RLkwU
-6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdgoWv9xZU7asdsm5cpHpy7
-lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYnQc+BFVHm5sBEADBX28bR5Qx
-brGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8k0A8fcLkZC
-SBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS/Rwy
-18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim
-+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP
-6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhj
-lR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHo
-CUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8
-LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNf
-E9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJ
-DuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr5HctpLgwvLVKCeDfU8nc
-hzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQAB/gMDAtfSz5hVoDvp4ZpoCdrR
-S4An9JABiMWCTG4IUYuShVQKJJR3KtZ0C5D4gH4BUlEGDsUtY3/6deakvzedbVxv
-mb59QoU8GuHZ/iWAlsY+37YIBu9kbywIFDDGJeD9th9cXPpuQ31kEvwE37gsNn5p
-IB38oB3mgWoLi2nH4AAVNZXPNBTJ7rS1pi69v4BepUTbglb805ypmWJllzhyRUvm
-DAU/8cu0cPWaaBU4s8Mi7SLv2s+i9EPYNzDkBEy7RYvZApP7G8x447iYPRvmaFnB
-Fd3Ctpd3xkZhZatDV6MJCEfssIdy5yARV4zwCcZ5JDGXGlxoiPH6A3b11SwPOEMv
-QJ0PRZ334XLK93hwzxjYKBJ8hBrR2oPvRUOAVs2/J8JSASYrufyqkXnYJ1EBnP3H
-5TwbjRQ9Qmg1ScFCzTfYgu5emiIF5LFAfTasZGSJvjrXFVeocCswHUvHztzJmpbt
-BAov3Lw6lBkxdvhZomyx74CGOnyz/eFD/khvIV/oms5lR8NNrkpkRGZ/xCN8Kmau
-KhRBebGVEITzOWJQHz0QMhuTloVvtDbDDgqW8gH8eVQJkQCDw8Wd79uj0kw1Xaln
-nseFPLCRNRN0js7cCGW95fVtawRNBCNYambNCLthkBfzT0+1/ULRC2JrP1rutr6D
-sye0S44kNyXKhM72Hamu4XygYlzRsYQflv2PgypjVmkdcZ2rwomMVdqQll3Q7jde
-kWKDpKdx7lR2pnDoXmn43VR1X4uD1PHab56tYE0JUrKDgqZJqzCwJXc3FcPV7LgD
-8pISoMZJ5+84UiRBvNN7N24kpLd9k97Iz29qY6u86Uy/f7/X77qur58r6K04vTfH
-8nA/ybc/9Ube6oyQ44A2NEwBrP3NUA6lHNPeaYBO2RGxTJJU2Edxuy3bJMpEkBhU
-CeWWIZnuxojF+pGjiPLArVZg6Mahc0GlYoiA66cxTuoGHM/wO5Xl0f33L0jny3Kv
-I9OWvUJbKs+J8G6q0zorl5nNmPpTwGYLJkUKhLtMhjS+jf5XA7b5jN1079/oToXu
-Xsfl6J7vnwJt7gglLRpK8iw3xlF4X4AWodBLj36HEyOgTimJXLt2fdpIrkiutUFF
-qdWdZeK+sII8ZAyrfgvwxvmairFK3ylbPwA340jsRQeA8boOOSiDV0cPOszQi1Rt
-Ygnae9or6faA3lqe+fRQi5JsmnJ1jLMe0mxw1mMOR4YLCMjgBc0CTMkY5kmCykA7
-NCQBec2Fueu9cxsu7LJO4+OAUF+i+G/BWPzvWqyJrLk52tME2TxyVL5PRZvqAcrK
-CV+d9IKxH4Ng40qPXL1gM27wWrrFa6RGq12oGvTqkVcomImzqK1ASSPWU3bSYiOy
-2JOQvjLxjQw6emNYG09SlKrzNmXlbrZ4BfolL4eI8H2+3+UG4l/cXxPnLEeQzkvu
-XuW5yajWoNBocEICcopmv8QgpwgiTUstmOTMFXD1EbVasonaH5R+wxBMB4Y1K+ot
-eRawIyFA75FO8HCPoTBe5+Qb6G8+5i7nsgDtHG337G8JFz3hE3U++90zbYxxtjYx
-Y2PYHfOwsDE8IDu1ZqzuB7lgrNADzOzelhSrcaW/jNHPGlxcsPTXl7S2QazgIPqk
-kZ9g4ceXSsZOV9Yl4Bu2ODeUiVeYGGEXwJ7WAKNvaR3bMbhl+iwIQFy3A12/fz0w
-B16C9qp7P9+5FEFWjlqi/28dSfECiDD4X4iyEe+sWTS86Cv0VsL300dIUQPIs65d
-ddkrIkcpM4jyabKTZcltiQIlBBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc
-4xHEo+UP/02AIUR0349zGk9a4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0Zoq
-TO8A0uFmEhCkw++reQcWOz1Nn+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq
-7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/EC
-THxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mli
-vy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfn
-Rn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUh
-XYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkK
-G8ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23Mz
-Ts1hhwgIy4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3
-gJgH0QONrUaRY84/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+w
-p1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K
-=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


--- End Message ---
--- Begin Message ---
Version: 10.1

Hi,

The fixes referenced by each of these bugs were included in today's
buster point release.

Regards,

Adam

--- End Message ---

Reply to: