diff -Nru enigmail-1.9.1/configure enigmail-1.9.7/configure --- enigmail-1.9.1/configure 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/configure 2017-05-13 16:09:37.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for enigmail 1.9.1. +# Generated by GNU Autoconf 2.69 for enigmail 1.9.4. # # Report bugs to . # @@ -579,8 +579,8 @@ # Identity of this package. PACKAGE_NAME='enigmail' PACKAGE_TARNAME='enigmail' -PACKAGE_VERSION='1.9.1' -PACKAGE_STRING='enigmail 1.9.1' +PACKAGE_VERSION='1.9.4' +PACKAGE_STRING='enigmail 1.9.4' PACKAGE_BUGREPORT='https://www.enigmail.net' PACKAGE_URL='' @@ -1195,7 +1195,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures enigmail 1.9.1 to adapt to many kinds of systems. +\`configure' configures enigmail 1.9.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1261,7 +1261,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of enigmail 1.9.1:";; + short | recursive ) echo "Configuration of enigmail 1.9.4:";; esac cat <<\_ACEOF @@ -1343,7 +1343,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -enigmail configure 1.9.1 +enigmail configure 1.9.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1360,7 +1360,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by enigmail $as_me 1.9.1, which was +It was created by enigmail $as_me 1.9.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2595,7 +2595,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by enigmail $as_me 1.9.1, which was +This file was extended by enigmail $as_me 1.9.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2648,7 +2648,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -enigmail config.status 1.9.1 +enigmail config.status 1.9.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru enigmail-1.9.1/configure.ac enigmail-1.9.7/configure.ac --- enigmail-1.9.1/configure.ac 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/configure.ac 2017-05-13 16:09:37.000000000 +0000 @@ -2,7 +2,7 @@ AC_PREREQ(2.61) min_automake_version="1.10" -AC_INIT([enigmail],[1.9.1], [https://www.enigmail.net]) +AC_INIT([enigmail],[1.9.4], [https://www.enigmail.net]) AC_PATH_PROG(PYTHON, "python2") diff -Nru enigmail-1.9.1/debian/changelog enigmail-1.9.7/debian/changelog --- enigmail-1.9.1/debian/changelog 2016-03-28 22:10:47.000000000 +0000 +++ enigmail-1.9.7/debian/changelog 2017-05-16 17:05:27.000000000 +0000 @@ -1,3 +1,103 @@ +enigmail (2:1.9.7-1~ubuntu0.16.04.1) xenial-security; urgency=medium + + * Backport to yakkety + * Revert "bump to debhelper 10" + + -- Chris Coulson Tue, 16 May 2017 18:05:27 +0100 + +enigmail (2:1.9.7-1) unstable; urgency=medium + + * new upstream bugfix release + + -- Daniel Kahn Gillmor Sun, 14 May 2017 09:06:48 -0400 + +enigmail (2:1.9.6-2) unstable; urgency=medium + + * pulled a bugfix from upstream, refreshed patches + + -- Daniel Kahn Gillmor Wed, 16 Nov 2016 07:30:05 +0900 + +enigmail (2:1.9.6-1) unstable; urgency=medium + + * new upstream release + + -- Daniel Kahn Gillmor Sun, 06 Nov 2016 17:27:51 -0500 + +enigmail (2:1.9.5-7) unstable; urgency=medium + + * fix "exchange repair" variant format of e-mail + + -- Daniel Kahn Gillmor Tue, 01 Nov 2016 13:48:33 -0400 + +enigmail (2:1.9.5-6) unstable; urgency=medium + + * refresh patches from upstream enigmail-1.9-branch + + -- Daniel Kahn Gillmor Mon, 31 Oct 2016 11:53:16 -0400 + +enigmail (2:1.9.5-5) unstable; urgency=medium + + * fix query for getKeyFileType (Closes: #842212) + + -- Daniel Kahn Gillmor Thu, 27 Oct 2016 11:08:05 -0400 + +enigmail (2:1.9.5-4) unstable; urgency=medium + + * avoid parallel build failures + + -- Daniel Kahn Gillmor Mon, 24 Oct 2016 14:48:38 -0400 + +enigmail (2:1.9.5-3) unstable; urgency=medium + + * more patches from upstream + * bump to debhelper 10 (no changes needed) + + -- Daniel Kahn Gillmor Wed, 19 Oct 2016 13:43:43 -0400 + +enigmail (2:1.9.5-2) unstable; urgency=medium + + * include two patches from upstream + + -- Daniel Kahn Gillmor Tue, 13 Sep 2016 00:29:56 +0200 + +enigmail (2:1.9.5-1) unstable; urgency=medium + + * new upstream release + + -- Daniel Kahn Gillmor Tue, 06 Sep 2016 01:11:28 -0400 + +enigmail (2:1.9.4-1) unstable; urgency=medium + + * new upstream release + + -- Daniel Kahn Gillmor Tue, 05 Jul 2016 15:20:07 -0400 + +enigmail (2:1.9.3-2) unstable; urgency=medium + + * pulled more fixes from upstream + + -- Daniel Kahn Gillmor Mon, 27 Jun 2016 15:52:03 -0400 + +enigmail (2:1.9.3-1) unstable; urgency=medium + + * new upstream release + + -- Daniel Kahn Gillmor Fri, 03 Jun 2016 15:25:05 -0400 + +enigmail (2:1.9.2-1) unstable; urgency=medium + + * new upstream release + * drop old upstream patches, pull more fixes from upstream + + -- Daniel Kahn Gillmor Thu, 26 May 2016 16:22:26 -0400 + +enigmail (2:1.9.1-2) unstable; urgency=medium + + * changed dependencies to acknowledge newer versions of gnupg. + * bumped Standards-Version to 3.9.8 (no changes needed) + + -- Daniel Kahn Gillmor Tue, 19 Apr 2016 16:45:04 -0400 + enigmail (2:1.9.1-1) unstable; urgency=medium * new upstream release diff -Nru enigmail-1.9.1/debian/control enigmail-1.9.7/debian/control --- enigmail-1.9.1/debian/control 2016-03-28 22:08:53.000000000 +0000 +++ enigmail-1.9.7/debian/control 2017-05-16 17:05:27.000000000 +0000 @@ -11,15 +11,15 @@ perl, python, zip -Standards-Version: 3.9.7 +Standards-Version: 3.9.8 Homepage: https://www.enigmail.net/ Vcs-Git: https://anonscm.debian.org/git/pkg-mozext/enigmail.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-mozext/enigmail.git/ +Vcs-Browser: https://anonscm.debian.org/git/pkg-mozext/enigmail.git/ Package: enigmail Architecture: all Depends: gnupg-agent, - gnupg2, + gnupg (>= 2) | gnupg2, ${misc:Depends}, ${shlibs:Depends}, ${xpi:Depends} diff -Nru enigmail-1.9.1/debian/copyright enigmail-1.9.7/debian/copyright --- enigmail-1.9.1/debian/copyright 2016-03-28 22:08:53.000000000 +0000 +++ enigmail-1.9.7/debian/copyright 2016-10-30 18:42:28.000000000 +0000 @@ -11,12 +11,9 @@ Files: ipc/Makefile ipc/modules/Makefile - ipc/src/Makefile - ipc/src/subprocess.c lang/Makefile Makefile package/Makefile - package/mimeDecrypt.js package/mimeEncrypt.js package/mimeVerify.jsm public/Makefile @@ -38,10 +35,6 @@ Copyright: 2001-2012 David M. Beazley (Dabeaz LLC) License: BSD-3-clause -Files: package/enigprefs-service.js -Copyright: 2003 Patrick Brunschwig -License: MPL-1.1 or GPL - Files: debian/* Copyright: 2013-2014 Daniel Kahn Gillmor License: MPL-1.1 or GPL-2.0+ or LGPL-2.1+ @@ -1000,14 +993,6 @@ On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". -License: GPL - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation. - . - On Debian systems, the complete text of the GNU General - Public License can be found in "/usr/share/common-licenses/GPL". - License: LGPL-2.1+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by diff -Nru enigmail-1.9.1/debian/gbp.conf enigmail-1.9.7/debian/gbp.conf --- enigmail-1.9.1/debian/gbp.conf 2016-03-28 22:08:53.000000000 +0000 +++ enigmail-1.9.7/debian/gbp.conf 2016-10-30 18:42:28.000000000 +0000 @@ -1,2 +1,9 @@ [DEFAULT] upstream-vcs-tag = enigmail-%(version)s +pristine-tar = True + +[import-orig] +filter = [ + 'configure', + ] +filter-pristine-tar = False diff -Nru enigmail-1.9.1/debian/patches/0001-avoid-eslint-during-buildtest.patch enigmail-1.9.7/debian/patches/0001-avoid-eslint-during-buildtest.patch --- enigmail-1.9.1/debian/patches/0001-avoid-eslint-during-buildtest.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0001-avoid-eslint-during-buildtest.patch 2017-05-14 13:05:23.000000000 +0000 @@ -10,7 +10,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 2e631d7..6f5debf 100644 +index 2e20109..3e0008a 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ unit: diff -Nru enigmail-1.9.1/debian/patches/0002-check-that-attachIcon-is-visible-before-manipulating.patch enigmail-1.9.7/debian/patches/0002-check-that-attachIcon-is-visible-before-manipulating.patch --- enigmail-1.9.1/debian/patches/0002-check-that-attachIcon-is-visible-before-manipulating.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0002-check-that-attachIcon-is-visible-before-manipulating.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -From: Patrick Brunschwig -Date: Sat, 26 Mar 2016 16:33:31 +0100 -Subject: check that attachIcon is visible before manipulating it - ---- - ui/content/enigmailMsgComposeOverlay.js | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ui/content/enigmailMsgComposeOverlay.js b/ui/content/enigmailMsgComposeOverlay.js -index 30e8035..5e44f1a 100644 ---- a/ui/content/enigmailMsgComposeOverlay.js -+++ b/ui/content/enigmailMsgComposeOverlay.js -@@ -710,7 +710,9 @@ Enigmail.msg = { - this.statusAttachOwnKey = EnigmailLocale.getString("attachOwnKeyNo"); - } - } -- attachIcon.setAttribute("tooltiptext", this.statusAttachOwnKey); -+ -+ if (attachIcon) -+ attachIcon.setAttribute("tooltiptext", this.statusAttachOwnKey); - - }, - diff -Nru enigmail-1.9.1/debian/patches/0002-ensure-that-everything-is-built-before-building-the-.patch enigmail-1.9.7/debian/patches/0002-ensure-that-everything-is-built-before-building-the-.patch --- enigmail-1.9.1/debian/patches/0002-ensure-that-everything-is-built-before-building-the-.patch 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0002-ensure-that-everything-is-built-before-building-the-.patch 2017-05-14 13:05:23.000000000 +0000 @@ -0,0 +1,27 @@ +From: Daniel Kahn Gillmor +Date: Mon, 24 Oct 2016 14:45:06 -0400 +Subject: ensure that everything is built before building the XPI. + +When building in parallel avoid a race condition. Without this fix, +"make -j4" sometimes fails. + +See, for example: + +https://buildd.debian.org/status/fetch.php?pkg=enigmail&arch=all&ver=2%3A1.9.5-3&stamp=1477332121&file=log +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 3e0008a..6b70cb4 100644 +--- a/Makefile ++++ b/Makefile +@@ -29,7 +29,7 @@ dirs: $(DIRS) + $(DIRS): + $(MAKE) -C $@ + +-xpi: ++xpi: $(DIRS) + $(srcdir)/util/genxpi $(XPIFILE) $(XPI_MODULE_VERS) $(DIST) $(srcdir) $(XPI_MODULE) $(ENABLE_LANG) + + check: diff -Nru enigmail-1.9.1/debian/patches/0003-removed-mandatory-requirement-to-have-micalg-paramet.patch enigmail-1.9.7/debian/patches/0003-removed-mandatory-requirement-to-have-micalg-paramet.patch --- enigmail-1.9.1/debian/patches/0003-removed-mandatory-requirement-to-have-micalg-paramet.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0003-removed-mandatory-requirement-to-have-micalg-paramet.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -From: Patrick Brunschwig -Date: Mon, 28 Mar 2016 19:46:35 +0200 -Subject: removed mandatory requirement to have micalg parameter (micalg is - auto-detected by GnuPG) - ---- - package/mimeVerify.jsm | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/package/mimeVerify.jsm b/package/mimeVerify.jsm -index c44f8c1..920d067 100644 ---- a/package/mimeVerify.jsm -+++ b/package/mimeVerify.jsm -@@ -153,13 +153,12 @@ MimeVerify.prototype = { - - // Eat up CRLF's. - contentTypeLine = contentTypeLine.replace(/[\r\n]/g, ""); -- LOCAL_DEBUG("mimeVerify.jsm: parseContentType: " + contentTypeLine + "\n"); -+ EnigmailLog.DEBUG("mimeVerify.jsm: parseContentType: " + contentTypeLine + "\n"); - - if (contentTypeLine.search(/multipart\/signed/i) >= 0 && -- contentTypeLine.search(/micalg\s*=\s*[\"\']?pgp-[\"\']?/i) > 0 && - contentTypeLine.search(/protocol\s*=\s*[\'\"]application\/pgp-signature[\"\']/i) > 0) { - -- LOCAL_DEBUG("mimeVerify.jsm: parseContentType: found PGP/MIME signed message\n"); -+ EnigmailLog.DEBUG("mimeVerify.jsm: parseContentType: found PGP/MIME signed message\n"); - this.foundMsg = true; - let hdr = EnigmailFuncs.getHeaderData(contentTypeLine); - hdr.boundary = hdr.boundary || ""; diff -Nru enigmail-1.9.1/debian/patches/0004-handle-situation-with-EnigmailVerify.lastMsgWindow-b.patch enigmail-1.9.7/debian/patches/0004-handle-situation-with-EnigmailVerify.lastMsgWindow-b.patch --- enigmail-1.9.1/debian/patches/0004-handle-situation-with-EnigmailVerify.lastMsgWindow-b.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0004-handle-situation-with-EnigmailVerify.lastMsgWindow-b.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -From: Patrick Brunschwig -Date: Sun, 27 Mar 2016 18:44:02 +0200 -Subject: handle situation with EnigmailVerify.lastMsgWindow being null - ---- - package/pgpmimeHandler.js | 28 ++++++++++++++++++++++++++-- - 1 file changed, 26 insertions(+), 2 deletions(-) - -diff --git a/package/pgpmimeHandler.js b/package/pgpmimeHandler.js -index 1e7b04e..be5c378 100644 ---- a/package/pgpmimeHandler.js -+++ b/package/pgpmimeHandler.js -@@ -88,14 +88,38 @@ PgpMimeHandler.prototype = { - onStopRequest: function(request, win, status) {}, - - handleSmime: function(uri) { -+ let headerSink; - this.contentHandler = throwErrors; - - if (uri) { - uri = uri.QueryInterface(Ci.nsIURI).clone(); - } -- let headerSink = EnigmailVerify.lastMsgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink); -+ -+ if (EnigmailVerify.lastMsgWindow) { -+ headerSink = EnigmailVerify.lastMsgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink); -+ } -+ else { -+ let domWin = this.getMessengerWindow(); -+ headerSink = domWin.msgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink); -+ } -+ - headerSink.handleSMimeMessage(uri); -- } -+ }, -+ -+ getMessengerWindow: function() { -+ let windowManager = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator); -+ -+ let winEnum = windowManager.getEnumerator(null); -+ -+ while (winEnum.hasMoreElements()) { -+ let thisWin = winEnum.getNext(); -+ if (thisWin.location.href.search(/\/messenger.xul$/) > 0) { -+ return thisWin; -+ } -+ } -+ -+ return null; -+ }, - }; - - diff -Nru enigmail-1.9.1/debian/patches/0005-fixed-CSS-syntax-errors.patch enigmail-1.9.7/debian/patches/0005-fixed-CSS-syntax-errors.patch --- enigmail-1.9.1/debian/patches/0005-fixed-CSS-syntax-errors.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0005-fixed-CSS-syntax-errors.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -From: Patrick Brunschwig -Date: Mon, 28 Mar 2016 20:10:11 +0200 -Subject: fixed CSS syntax errors - ---- - ui/content/keyDetailsDlg.xul | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ui/content/keyDetailsDlg.xul b/ui/content/keyDetailsDlg.xul -index 3ed1a0e..d315f4b 100644 ---- a/ui/content/keyDetailsDlg.xul -+++ b/ui/content/keyDetailsDlg.xul -@@ -66,7 +66,7 @@ - - - -- -+ - - - diff -Nru enigmail-1.9.1/debian/patches/0006-refresh-key-list-after-change-in-key-details-dialog.patch enigmail-1.9.7/debian/patches/0006-refresh-key-list-after-change-in-key-details-dialog.patch --- enigmail-1.9.1/debian/patches/0006-refresh-key-list-after-change-in-key-details-dialog.patch 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/0006-refresh-key-list-after-change-in-key-details-dialog.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -From: Patrick Brunschwig -Date: Mon, 28 Mar 2016 20:10:20 +0200 -Subject: refresh key list after change in key details dialog; - fixed some wrong method declaration comments - ---- - package/windows.jsm | 14 ++++++++++---- - ui/content/enigmailKeyManager.js | 4 +++- - 2 files changed, 13 insertions(+), 5 deletions(-) - -diff --git a/package/windows.jsm b/package/windows.jsm -index 9d03fd7..e46a23e 100644 ---- a/package/windows.jsm -+++ b/package/windows.jsm -@@ -296,7 +296,8 @@ const EnigmailWindows = { - * @win - |object| holding the parent window for the dialog - * @userIdArr - |array| of |strings| containing the User IDs - * @keyIdArr - |array| of |strings| containing the key IDs (eg. "0x12345678") to change -- * no return value -+ * -+ * @return Boolean - true if expiry date was changed; false otherwise - */ - editKeyExpiry: function(win, userIdArr, keyIdArr) { - const inputObj = { -@@ -317,7 +318,8 @@ const EnigmailWindows = { - * @win - |object| holding the parent window for the dialog - * @userIdArr - |array| of |strings| containing the User IDs - * @keyIdArr - |array| of |strings| containing the key IDs (eg. "0x12345678") to change -- * no return value -+ * -+ * @return Boolean - true if key trust was changed; false otherwise - */ - editKeyTrust: function(win, userIdArr, keyIdArr) { - const inputObj = { -@@ -339,7 +341,8 @@ const EnigmailWindows = { - * @win - |object| holding the parent window for the dialog - * @userId - |string| containing the User ID (for displaing in the dialog only) - * @keyId - |string| containing the key ID (eg. "0x12345678") -- * no return value -+ * -+ * @return Boolean - true if key was signed; false otherwise - */ - signKey: function(win, userId, keyId) { - const inputObj = { -@@ -412,7 +415,8 @@ const EnigmailWindows = { - * @keyId - |string| containing the key ID (eg. "0x12345678") - * @refresh - |boolean| if true, cache is cleared and the key data is loaded from GnuPG - * -- * no return value -+ * @return Boolean - true: keylist needs to be refreshed -+ * - false: no need to refresh keylist - */ - openKeyDetails: function(win, keyId, refresh) { - const keyListObj = {}; -@@ -434,6 +438,8 @@ const EnigmailWindows = { - if (resultObj.refresh) { - EnigmailKeyRing.clearCache(); - } -+ -+ return resultObj.refresh; - }, - - /** -diff --git a/ui/content/enigmailKeyManager.js b/ui/content/enigmailKeyManager.js -index 1f01efa..cbd2091 100644 ---- a/ui/content/enigmailKeyManager.js -+++ b/ui/content/enigmailKeyManager.js -@@ -465,7 +465,9 @@ function enigmailSelectAllKeys() { - function enigmailKeyDetails() { - var keyList = enigmailGetSelectedKeys(); - if (keyList.length > 0) { -- EnigmailWindows.openKeyDetails(window, gKeyList[keyList[0]].keyId, false); -+ if (EnigmailWindows.openKeyDetails(window, gKeyList[keyList[0]].keyId, false)) { -+ enigmailRefreshKeys(); -+ } - } - } - diff -Nru enigmail-1.9.1/debian/patches/series enigmail-1.9.7/debian/patches/series --- enigmail-1.9.1/debian/patches/series 2016-03-28 22:09:56.000000000 +0000 +++ enigmail-1.9.7/debian/patches/series 2017-05-14 13:05:23.000000000 +0000 @@ -1,6 +1,2 @@ 0001-avoid-eslint-during-buildtest.patch -0002-check-that-attachIcon-is-visible-before-manipulating.patch -0003-removed-mandatory-requirement-to-have-micalg-paramet.patch -0004-handle-situation-with-EnigmailVerify.lastMsgWindow-b.patch -0005-fixed-CSS-syntax-errors.patch -0006-refresh-key-list-after-change-in-key-details-dialog.patch +0002-ensure-that-everything-is-built-before-building-the-.patch diff -Nru enigmail-1.9.1/.eslintrc.js enigmail-1.9.7/.eslintrc.js --- enigmail-1.9.1/.eslintrc.js 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/.eslintrc.js 2017-05-13 16:09:37.000000000 +0000 @@ -12,14 +12,14 @@ "no-unused-vars": 0, "no-empty": 0, "comma-dangle": 0, - "consistent-return": 2, + "consistent-return": 0, "block-scoped-var": 2, "dot-notation": 2, "no-alert": 2, "no-caller": 2, "no-case-declarations": 2, "no-div-regex": 2, - "no-empty-label": 2, + "no-labels": 2, "no-empty-pattern": 2, "no-eq-null": 2, "no-eval": 2, diff -Nru enigmail-1.9.1/lang/ar/am-enigprefs.properties enigmail-1.9.7/lang/ar/am-enigprefs.properties --- enigmail-1.9.1/lang/ar/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/ar/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=خصوصية OpenPGP diff -Nru enigmail-1.9.1/lang/bg/am-enigprefs.properties enigmail-1.9.7/lang/bg/am-enigprefs.properties --- enigmail-1.9.1/lang/bg/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/bg/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP Security diff -Nru enigmail-1.9.1/lang/ca/am-enigprefs.properties enigmail-1.9.7/lang/ca/am-enigprefs.properties --- enigmail-1.9.1/lang/ca/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/ca/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Seguretat OpenPGP diff -Nru enigmail-1.9.1/lang/cs/am-enigprefs.properties enigmail-1.9.7/lang/cs/am-enigprefs.properties --- enigmail-1.9.1/lang/cs/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/cs/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP/Enigmail diff -Nru enigmail-1.9.1/lang/de/am-enigprefs.properties enigmail-1.9.7/lang/de/am-enigprefs.properties --- enigmail-1.9.1/lang/de/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/de/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP-Sicherheit diff -Nru enigmail-1.9.1/lang/el/am-enigprefs.properties enigmail-1.9.7/lang/el/am-enigprefs.properties --- enigmail-1.9.1/lang/el/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/el/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Ασφάλεια OpenPGP diff -Nru enigmail-1.9.1/lang/es-ES/am-enigprefs.properties enigmail-1.9.7/lang/es-ES/am-enigprefs.properties --- enigmail-1.9.1/lang/es-ES/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/es-ES/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Seguridad OpenPGP diff -Nru enigmail-1.9.1/lang/fi/am-enigprefs.properties enigmail-1.9.7/lang/fi/am-enigprefs.properties --- enigmail-1.9.1/lang/fi/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/fi/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP-turvallisuus diff -Nru enigmail-1.9.1/lang/fi/enigmail.dtd enigmail-1.9.7/lang/fi/enigmail.dtd --- enigmail-1.9.1/lang/fi/enigmail.dtd 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/fi/enigmail.dtd 2017-05-13 16:09:37.000000000 +0000 @@ -93,6 +93,8 @@ + + @@ -114,22 +116,26 @@ - + - - + + + + - + - + - + + + @@ -155,10 +161,10 @@ - + - + @@ -187,6 +193,8 @@ + + @@ -201,6 +209,7 @@ + @@ -316,12 +325,16 @@ + + + + @@ -329,6 +342,9 @@ + + + @@ -377,6 +393,7 @@ + @@ -434,6 +451,9 @@ allekirjoitukset riippumatta tilistä tai käyttäjätunnuksesta"> + + + @@ -453,16 +473,16 @@ import. The entry for private keys can be left empty if the first file contains both private and public keys."> - - + + Kiitos Enigmail-tiimin puolesta."> - - + + diff -Nru enigmail-1.9.1/lang/fr/am-enigprefs.properties enigmail-1.9.7/lang/fr/am-enigprefs.properties --- enigmail-1.9.1/lang/fr/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/fr/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Sécurité OpenPGP diff -Nru enigmail-1.9.1/lang/gd/am-enigprefs.properties enigmail-1.9.7/lang/gd/am-enigprefs.properties --- enigmail-1.9.1/lang/gd/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/gd/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Tèarainteachd OpenPGP diff -Nru enigmail-1.9.1/lang/gl/am-enigprefs.properties enigmail-1.9.7/lang/gl/am-enigprefs.properties --- enigmail-1.9.1/lang/gl/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/gl/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Seguridade OpenPGP diff -Nru enigmail-1.9.1/lang/gl/enigmail.dtd enigmail-1.9.7/lang/gl/enigmail.dtd --- enigmail-1.9.1/lang/gl/enigmail.dtd 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/gl/enigmail.dtd 2017-05-13 16:09:37.000000000 +0000 @@ -279,7 +279,7 @@ - + diff -Nru enigmail-1.9.1/lang/gl/enigmail.properties enigmail-1.9.7/lang/gl/enigmail.properties --- enigmail-1.9.1/lang/gl/enigmail.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/gl/enigmail.properties 2017-05-13 16:09:37.000000000 +0000 @@ -21,7 +21,7 @@ repeatSuffixPlural=veces máis. noRepeat=\n\nEsta alerta non se repetirá até que actualice Enigmail. pgpNotSupported=Semella que está a usar Enigmail xunto con PGP 6.x\n\nDesafortunadamente, PGP 6.x ten problemas que impiden que Enigmail traballe correctamente. Ademais, Enigmail xa non acepta PGP 6.x. Cambie a GnuPG (GPG) no seu lugar.\n\nSe precisa axuda para cambiar a GnuPG, comprobe a sección da Axuda no sitio web de Enigmail. -initErr.howToFixIt=Para poder usar o Enigmail, precisa instalar o GnuPG. Se aínda non o ten, o xeito máis doado de instalalo é usando o botón inferior do «Asistente de configuración». +initErr.howToFixIt=Para poder usar o Enigmail, precisa instalar o GnuPG. Se aínda non o ten, o xeito máis doado de\ninstalalo é usando o botón inferior do «Asistente de configuración». initErr.setupWizard.button=Configurar o a&sistente passphraseCleared=O contrasinal foi borrado. cannotClearPassphrase=Está usando unha ferramenta non estándar (como gnome-keyring) para manexar os contrasinais. Por este motivo non é posíbel limpar o contrasinal desde o Enigmail. @@ -346,7 +346,7 @@ importKeyFile=Importar o ficheiro coa chave OpenPGP gnupgFile=Ficheiros GnuPG saveRevokeCertAs=Crear e gardar certificado de revogación -revokeCertOK=Creouse con éxito o certificado de revogación. Pode usalo para invalidar a súa chave pública, p.e. en caso de que perda a súa chave privada.\n\nTransfírao a un medio que poida almacenarse dun xeito seguro como un CD ou un disco floppy. Se alguén ten acceso a este certificado pode utilizalo para volver a súa chave inútil. +revokeCertOK=Creouse con éxito o certificado de revogación. Pode usalo para invalidar a súa chave pública, p.e. en caso de que perda a súa chave privada.\n\nTransfírao a un medio que poida almacenarse dun xeito seguro como un CD ou un lapis USB. Se alguén ten acceso a este certificado pode utilizalo para volver a súa chave inútil. revokeCertFailed=Non se puido crear o certificado de revogación. addUidOK=O ID do usuario foi engadido correctamente addUidFailed=Produciuse un fallou ao engadir o ID de usuario diff -Nru enigmail-1.9.1/lang/hr/am-enigprefs.properties enigmail-1.9.7/lang/hr/am-enigprefs.properties --- enigmail-1.9.1/lang/hr/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/hr/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Nizovi korišteni u Mozilla upravitelju računa\n\nOpenPGP sigurnost diff -Nru enigmail-1.9.1/lang/hu/am-enigprefs.properties enigmail-1.9.7/lang/hu/am-enigprefs.properties --- enigmail-1.9.1/lang/hu/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/hu/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP adatbiztonság diff -Nru enigmail-1.9.1/lang/hu/enigmail.dtd enigmail-1.9.7/lang/hu/enigmail.dtd --- enigmail-1.9.1/lang/hu/enigmail.dtd 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/hu/enigmail.dtd 2017-05-13 16:09:37.000000000 +0000 @@ -1,13 +1,13 @@ - + - + - + @@ -23,9 +23,9 @@ - + - + @@ -60,7 +60,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -92,8 +92,8 @@ - - + + @@ -140,25 +140,25 @@ - - - - + + + + - - - + + + - - + + - + @@ -176,61 +176,61 @@ - - + + - - - + + + - + - - + + - - + +MEGJEGYZÉS: A kulcskészítés hosszabb ideig is eltarthat. Ne lépjen ki a levelezőből, amíg a kulcskészítés folyamatban van. Ha aktívan használja a számítógépet a kulcskészítés közben, a szükséges véletlenszerű adatok gyorsabban keletkeznek, így a folyamat gyorsul. A program értesítést ad a kulcs elkészültéről."> - + - + - - - - + + + + - + - + - - - - - - - - - + + + + + + + + + - - + + - + @@ -244,13 +244,13 @@ - + - - + + - + @@ -262,21 +262,21 @@ - + - - + + - - - + + + @@ -299,12 +299,11 @@ - - - + + + @@ -314,11 +313,11 @@ - + - + @@ -327,96 +326,96 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - - - - + + + + + - - + + - + - - + + - + - - - - + + + + - - - + + + - + - - + + - - + + - + @@ -455,12 +454,12 @@ - + - + @@ -618,14 +617,14 @@ "> - + Köszönjük, hogy az Enigmail programot használja."> - + @@ -642,7 +641,7 @@ - + -adatok mentése a régi számítógépről ennek a tündérnek a segítségével, +adatok mentése a régi számítógépről ezen varázsló segítségével, -adatok betöltése az új számítógépen a Beállítás Tündér segítségével. +adatok betöltése az új számítógépen a Beállításvarázsló segítségével. "> @@ -663,5 +662,5 @@ Másolja át a létrehozott fájlt az új számítógépre, majd indítsa el -a Thunderbird levelezőklienst és az Enigmail menüből válassza ki a Beállítás Tündért"> +a Thunderbird levelezőklienst, és az Enigmail menüből válassza ki a Beállításvarázslót"> diff -Nru enigmail-1.9.1/lang/hu/enigmail.properties enigmail-1.9.7/lang/hu/enigmail.properties --- enigmail-1.9.1/lang/hu/enigmail.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/hu/enigmail.properties 2017-05-13 16:09:37.000000000 +0000 @@ -29,12 +29,12 @@ debugLog.title=Enigmail hibanapló error.photoPathNotReadable=A(z) „%S” fénykép elérési útja nem olvasható. # Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Az Enigmail új verziójának beállításai jelentősen eltérnek a régebbi verziótól. A régi beállítások átvétele az új verzióba megtörtént. Mindazonáltal nem minden esetben működik tökéletesen. Kérjem ellenőrizzen minden beállítást az új verzióban. +enigmailCommon.versionSignificantlyChanged=Az Enigmail új verziójának beállításai jelentősen eltérnek a régebbi verziótól. A régi beállítások átvétele az új verzióba megtörtént, mindazonáltal nem minden esetben működik tökéletesen. Ellenőrizzen minden beállítást az új verzióban. enigmailCommon.checkPreferences=Beállítások ellenőrzése… preferences.defaultToPgpMime=Megváltozott az Enigmail alapértelmezett üzenetkódolása a beágyazott PGP beállításról a PGP/MIME beállításra. Ajánlott az új alapértelmezett érték megtartása.\n\nHa ennek ellenére a beágyazott PGP szeretné használni, akkor azt a Postafiók beállításai párbeszédablakban az \nOpenPGP biztonság részben teheti meg. usingVersion=A használatban levő Enigmail verziószáma: %S usingAgent=A titkosításhoz és visszafejtéshez a(z) %1$S program %2$S példányát használja. -agentError=HIBA: Sikertelen az Enigmime szolgáltatás elérése! +agentError=HIBA: Sikertelen az Enigmail alapszolgáltatás elérése! accessError=Hiba az Enigmail szolgáltatás elérésekor onlyGPG=A kulcskészítés csak a GPG-vel működik (PGP-vel nem)! keygenComplete=A kulcs elkészült. A következő azonosító tartozik az aláíráshoz: „%S”. @@ -47,11 +47,11 @@ passUserName=Adja meg a felhasználónevet ehhez az azonosítóhoz keygen.missingUserName=Nincs a megadott néven szereplő postafiók. A Postafiók beállításainál adja meg nevét a „Név” mezőben. keygen.passCharProblem=A jelmondatban különleges (például ékezetes) karaktereket használt. Sajnos ez más alkalmazásoknál gondot okozhat. Válasszon olyan jelmondatot, amelyben csak ezek a karakterek szerepelnek:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Technikai okokból a jelmondata nem kezdődhet vagy zárulhat szóköz karakterrel. +passSpaceProblem=Technikai okokból a jelmondata nem kezdődhet vagy végződhet szóköz karakterrel. changePassFailed=A jelmondat megváltoztatása nem sikerült. -keyConfirm=Létre kíván hozni nyilvános és titkos kulcsot „%S” részére? +keyConfirm=Létre kíván hozni nyilvános és titkos kulcsokat „%S” részére? keyMan.button.generateKey=&Kulcs létrehozása -keyAbort=Meg kívánja szakítani a kulcs létrehozását? +keyAbort=Megszakítja a kulcs létrehozását? keyMan.button.generateKeyAbort=&Megszakítás keyMan.button.generateKeyContinue=&Folytatás expiryTooLong=Nem hozhat létre 100 évnél később lejáró kulcsot. @@ -65,7 +65,7 @@ enigHeader=Enigmail: enigContentNote=Enigmail: *A levél mellékletei nem lettek aláírva vagy titkosítva*\n\n possiblyPgpMime=Lehetséges, hogy az üzenet PGP/MIME-mal titkosított vagy aláírt. Kattintson a „Visszafejtés” gombra az ellenőrzéshez. -noDecrypted=Nincs mentendő visszafejtett levél!\nHasználja a Fájl menü Mentés parancsát. +noDecrypted=Nincs mentendő visszafejtett levél!\nHasználja a Fájl menü Mentés parancsát noMessage=Nincs mentendő üzenet. useButton=Kattintson a Visszafejtés gombra a levél visszafejtéséhez. saveHeader=Enigmail: Visszafejtett levél mentése @@ -89,7 +89,7 @@ windowLocked=Szerkesztőablak zárolva; küldés megszakítva sendUnencrypted=Enigmail indítási hiba.\nElküldi titkosítás nélkül az üzenetet? composeSpecifyEmail=Adja meg az elsődleges e-mail címét, amely a kimenő levelek aláírásának kulcsaként lesz kiválasztva.\n Ha üresen hagyja, úgy a levél feladójának címe lesz kiválasztva az aláírás kulcsaként. -sendingHiddenRcpt=Ennek az üzenetnek rejtett másolat címzettjei is vannak. Amennyiben az üzenet titkosításra kerül, a rejtet másolat címzettjei el lesznek rejtve, de néhány termék (például: PGP Corp.) felhasználója nem tudja majd visszafejteni az üzenetet. Ennek megfelelően nem javasolt rejtett másolat címzetteket megadni a titkosított üzenetekben. +sendingHiddenRcpt=Ennek az üzenetnek rejtett másolat címzettjei is vannak. Amennyiben az üzenet titkosításra kerül, a rejtett másolat címzettjei el lesznek rejtve, de néhány termék (például: PGP Corp.) felhasználója nem tudja majd visszafejteni az üzenetet. Ennek megfelelően nem javasolt rejtett másolat címzetteket megadni a titkosított üzenetekben. sendWithHiddenBcc=Rejtett másolat címzettjeinek elrejtése sendWithShownBcc=Hagyományos titkosítás sendingNews=Titkosított üzenetküldés megszakítva.\n\nAz üzenetet nem lehet titkosítani, mivel hírcsoport is szerepel a címzettek között. Küldje el ismét az üzenetet titkosítás nélkül. diff -Nru enigmail-1.9.1/lang/it/am-enigprefs.properties enigmail-1.9.7/lang/it/am-enigprefs.properties --- enigmail-1.9.1/lang/it/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/it/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP diff -Nru enigmail-1.9.1/lang/ja/am-enigprefs.properties enigmail-1.9.7/lang/ja/am-enigprefs.properties --- enigmail-1.9.1/lang/ja/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/ja/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP セキュリティ diff -Nru enigmail-1.9.1/lang/ko/am-enigprefs.properties enigmail-1.9.7/lang/ko/am-enigprefs.properties --- enigmail-1.9.1/lang/ko/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/ko/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP 보안 diff -Nru enigmail-1.9.1/lang/lt/am-enigprefs.properties enigmail-1.9.7/lang/lt/am-enigprefs.properties --- enigmail-1.9.1/lang/lt/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/lt/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP saugumas diff -Nru enigmail-1.9.1/lang/nb-NO/am-enigprefs.properties enigmail-1.9.7/lang/nb-NO/am-enigprefs.properties --- enigmail-1.9.1/lang/nb-NO/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/nb-NO/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP Sikkerhet diff -Nru enigmail-1.9.1/lang/nl/am-enigprefs.properties enigmail-1.9.7/lang/nl/am-enigprefs.properties --- enigmail-1.9.1/lang/nl/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/nl/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP-beveiliging diff -Nru enigmail-1.9.1/lang/nl/enigmail.dtd enigmail-1.9.7/lang/nl/enigmail.dtd --- enigmail-1.9.1/lang/nl/enigmail.dtd 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/nl/enigmail.dtd 2017-05-13 16:09:37.000000000 +0000 @@ -76,7 +76,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -233,10 +233,10 @@ - - + + - + @@ -264,7 +264,7 @@ - + @@ -331,7 +331,7 @@ - + @@ -389,7 +389,7 @@ - + @@ -426,7 +426,7 @@ - + diff -Nru enigmail-1.9.1/lang/nl/enigmail.properties enigmail-1.9.7/lang/nl/enigmail.properties --- enigmail-1.9.1/lang/nl/enigmail.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/nl/enigmail.properties 2017-05-13 16:09:37.000000000 +0000 @@ -20,7 +20,7 @@ repeatSuffixSingular=keer herhalen. repeatSuffixPlural=keren herhalen. noRepeat=\n\nDeze waarschuwing zal niet herhaald worden tot u Enigmail bijwerkt. -pgpNotSupported=U gebruikt Enigmail samen met PGP 6.x\n\nJammer genoeg zijn er een aantal problemen met PGP 6.x die Enigmail weerhouden om correct te functioneren. Daarom ondersteunt Enigmail PGP 6.x niet meer; u kunt GnuPG (GPG) in de plaats gebruiken.\n\nAls u hulp nodig hebt om naar GnuPG over te schakelen, controleer dan de helpsectie op de website van Enigmail. +pgpNotSupported=U gebruikt Enigmail samen met PGP 6.x\n\nJammer genoeg zijn er een aantal problemen met PGP 6.x die Enigmail ervan weerhouden om correct te functioneren. Daarom ondersteunt Enigmail PGP 6.x niet meer; u kunt GnuPG (GPG) daarvoor in de plaats gebruiken.\n\nAls u hulp nodig hebt om naar GnuPG over te schakelen, controleer dan de helpsectie op de website van Enigmail. initErr.howToFixIt=Om Enigmail te gebruiken heeft u GnuPG nodig. Als u GnuPG nog niet heeft geïnstalleerd, kunt u op ‘Installatieassistent’ klikken. initErr.setupWizard.button=&Installatieassistent passphraseCleared=De wachtwoordzin is vergeten. diff -Nru enigmail-1.9.1/lang/pl/am-enigprefs.properties enigmail-1.9.7/lang/pl/am-enigprefs.properties --- enigmail-1.9.1/lang/pl/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/pl/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP diff -Nru enigmail-1.9.1/lang/pt-BR/am-enigprefs.properties enigmail-1.9.7/lang/pt-BR/am-enigprefs.properties --- enigmail-1.9.1/lang/pt-BR/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/pt-BR/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Segurança OpenPGP diff -Nru enigmail-1.9.1/lang/pt-BR/enigmail.dtd enigmail-1.9.7/lang/pt-BR/enigmail.dtd --- enigmail-1.9.1/lang/pt-BR/enigmail.dtd 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/pt-BR/enigmail.dtd 2017-05-13 16:09:37.000000000 +0000 @@ -23,7 +23,9 @@ + + @@ -36,11 +38,17 @@ + + + + + + @@ -57,17 +65,23 @@ + + + + + + @@ -88,17 +102,24 @@ + + + + + + + @@ -115,6 +136,7 @@ + @@ -122,19 +144,38 @@ + Segurança OṕenPGP)"> + + + + + + + + + + + + + + + + + + @@ -146,6 +187,7 @@ + @@ -169,6 +211,12 @@ + + + + + + @@ -182,6 +230,8 @@ + + @@ -196,6 +246,8 @@ + + @@ -214,6 +266,8 @@ + + @@ -303,6 +357,7 @@ + @@ -373,6 +428,9 @@ + + + @@ -381,6 +439,8 @@ + + @@ -393,6 +453,9 @@ + + + @@ -440,6 +503,12 @@ + + + + + + @@ -462,7 +531,12 @@ + + NÃO são recomendados."> + + + @@ -473,9 +547,16 @@ + + Obrigado por utilizar o Enigmail."> + + + + + @@ -487,3 +568,10 @@ + + + + + + + diff -Nru enigmail-1.9.1/lang/pt-BR/enigmail.properties enigmail-1.9.7/lang/pt-BR/enigmail.properties --- enigmail-1.9.1/lang/pt-BR/enigmail.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/pt-BR/enigmail.properties 2017-05-13 16:09:37.000000000 +0000 @@ -13,11 +13,14 @@ dlg.button.continue=Con&tinuar dlg.button.skip=Pular (&S) dlg.button.view=&Visualizar +dlg.button.retry=&Tentar Novamente +dlg.button.ignore=&Ignorar repeatPrefix=\n\nEste alerta irá se repetir %S repeatSuffixSingular=vez. repeatSuffixPlural=vezes. noRepeat=\n\nEste alerta não irá se repetir até que você atualize o Enigmail. pgpNotSupported=Você parece estar utilizando o Enigmail juntamente com o PGP 6.x\n\nInfelizmente, o PGP 6.x possui alguns problemas que previnem o Enigmail de funcionar corretamente. Portanto, o Enigmail não suporta mais o PGP 6.x; por favor mude para o GnuPG (GPG) para utilizar o Enigmail.\n\nSe você precisar de ajuda para trocar para o GnuPG, leia a seção de Ajuda na página do Enigmail. +initErr.setupWizard.button=&Setup passphraseCleared=A senha foi removida. noPhotoAvailable=Foto não disponível debugLog.title=Enigmail Debug Log @@ -73,6 +76,7 @@ signature.verifyFailed=A assinatura para o anexo %S não pode ser verificada attachment.noMatchToSignature=Não foi possível encontrar o arquivo de assinatura correspondente ao anexo '%S' attachment.noMatchFromSignature=Não foi possível encontrar o anexo correspondente ao arquivo de assinatura '%S' +fixBrokenExchangeMsg.failed=Não obteve êxito reparando a mensagem keysToExport=Selecione as Chaves OpenPGP a Inserir keysToUse=Selecione a(s) Chave(s) OpenPGP que serão utilizadas para %S pubKey=Chave pública para %S\n @@ -96,8 +100,14 @@ pgpMime_sMime.dlg.pgpMime.button=Utilizar &PGP/MIME pgpMime_sMime.dlg.sMime.button=Utilizar &S/MIME errorKeyUnusable=Não foi possível encontrar uma chave OpenPGP válida e não expirada para o endereço de email ou ID de chave '%S'.\nVerifique se você possui uma chave OpenPGP válida, e que as suas configurações de conta apontam para esta chave. +msgCompose.toolbarTxt.signAndEncrypt=Essa mensagem será assinada e encriptada +msgCompose.toolbarTxt.signOnly=Essa mensagem será assinada +msgCompose.toolbarTxt.encryptOnly=Essa mensagem será encriptada # note: should end with double newline: sendAborted=Operação de envio abortada.\n\n +keyNotFound=Chave '%S' não encontrada +keyRevoked=Chave '%S' revogada +keyExpired=Chave '%S' expirada statPGPMIME=PGP/MIME statSigned=ASSINADA statEncrypted=CRIPTOGRAFADA @@ -109,6 +119,17 @@ msgCompose.button.sendUnencrypted=Enviar Mensagem &Sem Criptografia recipientsSelectionHdr=Selecione os Destinatários para Criptografia configureNow=Você ainda não configurou a segurança Enigmail para a identidade selecionada. Deseja fazer isto agora? +encryptOff=Encriptação: DESLIGADA +encryptOnWithReason=Encriptação: LIGADA (%S) +encryptOffWithReason=Encriptação: DESLIGADA (%S) +encryptOn=Encriptação: LIGADA +signOn=Assinar: LIGADO +signOff=Assinar: DESLIGADO +signOnWithReason=Assinar: LIGADO (%S) +signOffWithReason=Assinar: DESLIGADO (%S) +reasonEnabledByDefault=Habilitar por padrão +reasonManuallyForced=forçar manualmente +reasonByAutoEncryption=forçado por auto encriptação # should not be used anymore: encryptYes=A mensagem será criptografada encryptNo=A mensagem não será criptografada @@ -197,6 +218,8 @@ fewerKeysThanRecipients=Você selecionou um número de chaves menor que o número de destinatários. Você tem certeza de que a lista de chaves de criptografia está completa? userSel.button.goBack=Selecionar mais chaves userSel.secretKeySel.title=Selecionar uma Chave Secreta OpenPGP para Assinar Suas Mensagens +userSel.problemNoKey=Chave inválida +userSel.problemMultipleKeys=Multiplas chaves # should be same as thunderbird ENTITY sendLaterCmd.label: sendLaterCmd.label=Enviar depois # Strings used in enigmailAttachmentDialog.js @@ -326,6 +349,8 @@ keyAlgorithm_3=RSA keyAlgorithm_16=ELG keyAlgorithm_17=DSA +keyAlgorithm_18=ECDH +keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyUsageEncrypt=Criptografar keyUsageSign=Assinar @@ -368,3 +393,7 @@ errorType.SecurityCertificate=O certificado de segurança apresentado pelo web service não é mais válido. errorType.SecurityProtocol=O protocolo de segurança utilizado pelo web service é desconhecido. errorType.Network=Ocorreu um erro de rede. +# filter stuff +filter.folderRequired=Você deve selecionar o diretório desejado +filter.decryptCopy.label=Criar uma Copia decriptada (Enigmail) +saveLogFile.title=Salvar Arquivo de Log diff -Nru enigmail-1.9.1/lang/pt-PT/am-enigprefs.properties enigmail-1.9.7/lang/pt-PT/am-enigprefs.properties --- enigmail-1.9.1/lang/pt-PT/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/pt-PT/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Segurança OpenPGP diff -Nru enigmail-1.9.1/lang/ru/am-enigprefs.properties enigmail-1.9.7/lang/ru/am-enigprefs.properties --- enigmail-1.9.1/lang/ru/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/ru/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Защита OpenPGP diff -Nru enigmail-1.9.1/lang/sk/am-enigprefs.properties enigmail-1.9.7/lang/sk/am-enigprefs.properties --- enigmail-1.9.1/lang/sk/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/sk/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP Security diff -Nru enigmail-1.9.1/lang/sl/am-enigprefs.properties enigmail-1.9.7/lang/sl/am-enigprefs.properties --- enigmail-1.9.1/lang/sl/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/sl/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Varnost OpenPGP diff -Nru enigmail-1.9.1/lang/sq/am-enigprefs.properties enigmail-1.9.7/lang/sq/am-enigprefs.properties --- enigmail-1.9.1/lang/sq/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/sq/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Siguri OpenPGP diff -Nru enigmail-1.9.1/lang/sv-SE/am-enigprefs.properties enigmail-1.9.7/lang/sv-SE/am-enigprefs.properties --- enigmail-1.9.1/lang/sv-SE/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/sv-SE/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP Säkerhet diff -Nru enigmail-1.9.1/lang/tr/am-enigprefs.properties enigmail-1.9.7/lang/tr/am-enigprefs.properties --- enigmail-1.9.1/lang/tr/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/tr/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP Güvenliği diff -Nru enigmail-1.9.1/lang/vi/am-enigprefs.properties enigmail-1.9.7/lang/vi/am-enigprefs.properties --- enigmail-1.9.1/lang/vi/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/vi/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=Bảo mật cho OpenPGP diff -Nru enigmail-1.9.1/lang/zh-CN/am-enigprefs.properties enigmail-1.9.7/lang/zh-CN/am-enigprefs.properties --- enigmail-1.9.1/lang/zh-CN/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/zh-CN/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP 安全 diff -Nru enigmail-1.9.1/lang/zh-TW/am-enigprefs.properties enigmail-1.9.7/lang/zh-TW/am-enigprefs.properties --- enigmail-1.9.1/lang/zh-TW/am-enigprefs.properties 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/lang/zh-TW/am-enigprefs.properties 2017-05-13 16:09:37.000000000 +0000 @@ -1,2 +1,2 @@ -# Strings used in the Mozill AccountManager +# used in the AccountManager prefPanel-enigprefs=OpenPGP 安全性 diff -Nru enigmail-1.9.1/Makefile enigmail-1.9.7/Makefile --- enigmail-1.9.1/Makefile 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/Makefile 2017-05-13 16:09:37.000000000 +0000 @@ -3,7 +3,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. XPI_MODULE = enigmail -XPI_MODULE_VERS = 1.9.1 +XPI_MODULE_VERS = 1.9.7 DEPTH = . diff -Nru enigmail-1.9.1/package/attachment.jsm enigmail-1.9.7/package/attachment.jsm --- enigmail-1.9.1/package/attachment.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/attachment.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -26,7 +26,7 @@ const args = EnigmailGpg.getStandardArgs(true). concat(EnigmailPassword.command()). - concat(["--list-packets"]); + concat(["--decrypt"]); const listener = EnigmailExecution.newSimpleListener( function _stdin(pipe) { @@ -36,6 +36,8 @@ pipe.close(); }); + listener.stdout = function(data) {}; + const proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, args, false, parent, listener, {}); if (!proc) { @@ -44,9 +46,12 @@ proc.wait(); - const matches = listener.stdoutData.match(/:literal data packet:\r?\n.*name="(.*)",/m); - if (matches && (matches.length > 1)) { - var filename = escape(matches[1]).replace(/%5Cx/g, "%"); + const matches = listener.stderrData.match(/^(\[GNUPG:\] PLAINTEXT [0-9]+ [0-9]+ )(.*)$/m); + if (matches && (matches.length > 2)) { + var filename = matches[2]; + if (filename.indexOf(" ") > 0) { + filename = filename.replace(/ .*$/, ""); + } return EnigmailData.convertToUnicode(unescape(filename), "utf-8"); } else { diff -Nru enigmail-1.9.1/package/clipboard.jsm enigmail-1.9.7/package/clipboard.jsm --- enigmail-1.9.1/package/clipboard.jsm 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-1.9.7/package/clipboard.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -0,0 +1,108 @@ +/*global Components: false */ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +"use strict"; + +var EXPORTED_SYMBOLS = ["EnigmailClipboard"]; + +// Import the Services module for future use, if we're not in +// a browser window where it's already loaded. +Components.utils.import('resource://gre/modules/Services.jsm'); + +const Ci = Components.interfaces; +const Cc = Components.classes; + +// Create a constructor for the built-in supports-string class. +const nsSupportsString = Components.Constructor("@mozilla.org/supports-string;1", "nsISupportsString"); + +function SupportsString(str) { + // Create an instance of the supports-string class + var res = nsSupportsString(); + + // Store the JavaScript string that we want to wrap in the new nsISupportsString object + res.data = str; + return res; +} + +// Create a constructor for the built-in transferable class +const nsTransferable = Components.Constructor("@mozilla.org/widget/transferable;1", "nsITransferable"); + +// Create a wrapper to construct an nsITransferable instance and set its source to the given window, when necessary +function Transferable(source) { + let res = nsTransferable(); + if ('init' in res) { + // When passed a Window object, find a suitable privacy context for it. + if (source instanceof Ci.nsIDOMWindow) + source = source.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation); + + res.init(source); + } + return res; +} + +var EnigmailClipboard = { + + /** + * Get the content string of a clipboard + * + * @param window : nsIWindow or nsIDOMWindow of caller + * @param clipBoardType: Number - clipboard type according to nsIClipboard + * + * @return String - content of clipBoard + */ + + getClipboardContent: function(window, clipBoardType) { + if (!window) throw "erorr - window must not be null"; + + let clipBoard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard); + let data = {}; + let cBoardContent = ""; + + if (clipBoardType !== clipBoard.kSelectionClipboard || clipBoard.supportsSelectionClipboard()) { + try { + let transferable = Transferable(window); + transferable.addDataFlavor("text/unicode"); + clipBoard.getData(transferable, clipBoardType); + let flavour = {}; + let length = {}; + transferable.getAnyTransferData(flavour, data, length); + cBoardContent = data.value.QueryInterface(Ci.nsISupportsString).data; + } + catch (ex) {} + } + return cBoardContent; + }, + + /** + * Set the global (and if available, the selection clipboard) + * + * @param str: String - data to set + * @param clipBoardType: Number - clipboard type according to nsIClipboard. + * If not provided, the global plus the selection clipboard will be used + * + * @return Boolean: true - success / false - failure + */ + setClipboardContent: function(str, clipBoardType) { + let useClipboard = clipBoardType; + if (clipBoardType === undefined) { + useClipboard = Ci.nsIClipboard.kGlobalClipboard; + } + try { + let clipBoard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard); + let clipBoardHlp = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper); + clipBoardHlp.copyStringToClipboard(str, useClipboard); + if (clipBoard.supportsSelectionClipboard() && + (useClipboard === Ci.nsIClipboard.kSelectionClipboard || clipBoardType === undefined)) { + clipBoardHlp.copyStringToClipboard(str, Ci.nsIClipboard.kSelectionClipboard); + } + } + catch (ex) { + return false; + } + return true; + } +}; diff -Nru enigmail-1.9.1/package/decryptPermanently.jsm enigmail-1.9.7/package/decryptPermanently.jsm --- enigmail-1.9.1/package/decryptPermanently.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/decryptPermanently.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -161,6 +161,10 @@ return; } + if (!("content-type" in mime.headers)) { + mime.headers["content-type"] = ["text/plain"]; + } + var ct = getContentType(getHeaderValue(mime, 'content-type')); var pt = getProtocol(getHeaderValue(mime, 'content-type')); diff -Nru enigmail-1.9.1/package/encryption.jsm enigmail-1.9.7/package/encryption.jsm --- enigmail-1.9.1/package/encryption.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/encryption.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -207,7 +207,7 @@ if (encrypt) { keyList = keyList.reduce(function _f(p, keyObj) { - if (keyObj.getEncryptionValidity().keyValid) p.push(keyObj); + if (keyObj && keyObj.getEncryptionValidity().keyValid) p.push(keyObj); return p; }, []); } diff -Nru enigmail-1.9.1/package/execution.jsm enigmail-1.9.7/package/execution.jsm --- enigmail-1.9.1/package/execution.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/execution.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -144,6 +144,10 @@ return exitCode; }, + /** + * Execute a command and return the output from stdout + * No input and no statusFlags are returned. + */ simpleExecCmd: function(command, args, exitCodeObj, errorMsgObj) { EnigmailLog.WRITE("execution.jsm: EnigmailExecution.simpleExecCmd: command = " + command + " " + args.join(" ") + "\n"); @@ -183,6 +187,10 @@ return outputData; }, + /** + * Execute a command and return the output from stdout. + * Accepts input and returns error message and statusFlags. + */ execCmd: function(command, args, input, exitCodeObj, statusFlagsObj, statusMsgObj, errorMsgObj, retStatusObj) { EnigmailLog.WRITE("execution.jsm: EnigmailExecution.execCmd: subprocess = '" + command.path + "'\n"); diff -Nru enigmail-1.9.1/package/fixExchangeMsg.jsm enigmail-1.9.7/package/fixExchangeMsg.jsm --- enigmail-1.9.1/package/fixExchangeMsg.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/fixExchangeMsg.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -252,7 +252,7 @@ return null; } - mimeHdr.initialize(bodyData.substr(encData, 500)); + mimeHdr.initialize(bodyData.substr(encData, 5000)); ct = mimeHdr.extractHeader("content-type", false); if (!ct || ct.search(/application\/octet-stream/i) < 0) { EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: wrong content-type of PGP/MIME data\n"); @@ -295,7 +295,7 @@ let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - mimeHdr.initialize(bodyData.substr(encData, 500)); + mimeHdr.initialize(bodyData.substr(encData, 5000)); let ct = mimeHdr.extractHeader("content-type", false); if (!ct || ct.search(/application\/pgp-encrypted/i) < 0) { EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: wrong content-type of PGP/MIME data\n"); diff -Nru enigmail-1.9.1/package/funcs.jsm enigmail-1.9.7/package/funcs.jsm --- enigmail-1.9.1/package/funcs.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/funcs.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -346,9 +346,10 @@ let a2 = mime2.split(/./); for (let i = 0; i < Math.min(a1.length, a2.length); i++) { - if (Number(mime1[i]) < Number(mime2[i])) return -1; - if (Number(mime1[i]) > Number(mime2[i])) return 1; + if (Number(a1[i]) < Number(a2[i])) return -1; + if (Number(a1[i]) > Number(a2[i])) return 1; } + if (a2.length > a1.length) return -2; if (a2.length < a1.length) return 2; return 0; diff -Nru enigmail-1.9.1/package/gpgAgent.jsm enigmail-1.9.7/package/gpgAgent.jsm --- enigmail-1.9.1/package/gpgAgent.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/gpgAgent.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -474,7 +474,7 @@ catch (ex) {} if (!agentPath) { - let gpgPath = gpgPath + "\\pub"; + let gpgPath = "C:\\Program Files\\GnuPG\\pub"; agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike()); } } @@ -584,7 +584,12 @@ let filePath = cloneOrNull(EnigmailGpgAgent.agentPath); - if (filePath) filePath = filePath.parent; + if (filePath) { + // try to get the install directory of gpg/gpg2 executable + filePath.normalize(); + filePath = filePath.parent; + } + if (filePath) { filePath.append(fileName); if (filePath.exists()) { diff -Nru enigmail-1.9.1/package/gpg.jsm enigmail-1.9.7/package/gpg.jsm --- enigmail-1.9.1/package/gpg.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/gpg.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -64,6 +64,7 @@ autostart-gpg-agent - is gpg-agent started automatically by gpg (true for gpg >= 2.0.16) keygen-passphrase - can the passphrase be specified when generating keys (false for gpg 2.1 and 2.1.1) windows-photoid-bug - is there a bug in gpg with the output of photoid on Windows (true for gpg < 2.0.16) + genkey-no-protection - is "%no-protection" supported for generting keys (true for gpg >= 2.1) @return: depending on featureName - Boolean unless specified differently: (true if feature is available / false otherwise) @@ -93,6 +94,8 @@ return vc.compare(gpgVersion, "2.0.16") >= 0; case 'keygen-passphrase': return vc.compare(gpgVersion, "2.1") < 0 || vc.compare(gpgVersion, "2.1.2") >= 0; + case 'genkey-no-protection': + return vc.compare(gpgVersion, "2.1") > 0; case 'windows-photoid-bug': return vc.compare(gpgVersion, "2.0.16") < 0; } diff -Nru enigmail-1.9.1/package/installGnuPG.jsm enigmail-1.9.7/package/installGnuPG.jsm --- enigmail-1.9.1/package/installGnuPG.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/installGnuPG.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -1,5 +1,5 @@ /*global Components: false, escape: false, unescape: false, Uint8Array: false */ -/*jshint -W097 */ +/* eslint no-invalid-this: 0 */ /* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -36,6 +36,7 @@ Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */ Cu.import("resource://enigmail/app.jsm"); /*global EnigmailApp: false */ Cu.import("resource://enigmail/promise.jsm"); /*global Promise: false */ +Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */ const Cc = Components.classes; const Ci = Components.interfaces; @@ -51,13 +52,6 @@ const queryUrl = "https://www.enigmail.net/service/getGnupdDownload.svc"; -function getTempDir() { - let ds = Cc[DIR_SERV_CONTRACTID].getService(); - let dsprops = ds.QueryInterface(Ci.nsIProperties); - let tmpFile = dsprops.get("TmpD", Ci.nsIFile); - - return tmpFile; -} function toHexString(charCode) { return ("0" + charCode.toString(16)).slice(-2); @@ -290,6 +284,44 @@ this.installerFile.remove(false); }, + /** + * Create the gpg4win installer config file + * @return nsIFile - config object file + */ + createGpg4WinCfgFile: function() { + EnigmailLog.DEBUG("installGnuPG.jsm: createGpg4WinCfgFile\n"); + + let tmpFile = EnigmailFiles.getTempDirObj().clone(); + tmpFile.append("gpg4win.ini"); + tmpFile.createUnique(tmpFile.NORMAL_FILE_TYPE, EXEC_FILE_PERMS); + + let dataStr = "[gpg4win]\r\n"; + + let cfgKeys = [ + "inst_gpgol", + "inst_gpgex", + "inst_kleopatra", + "inst_gpa", + "inst_claws_mail", + "inst_compendium", + "inst_desktop", + "inst_quick_launch_bar" + ]; + + // disable optional components by default + for (let i of cfgKeys) { + dataStr += " " + i + " = false\r\n"; + } + + dataStr += " inst_start_menu = true\r\n"; + + if (EnigmailFiles.writeFileContents(tmpFile, dataStr)) { + return tmpFile; + } + + return null; + }, + installWindows: function(deferred) { EnigmailLog.DEBUG("installGnuPG.jsm: installWindows\n"); @@ -312,9 +344,20 @@ } }; + this.gpg4WinCfgFile = this.createGpg4WinCfgFile(); + + let cfgFile = EnigmailFiles.getFilePath(this.gpg4WinCfgFile); + let params = []; + + if (cfgFile) { + if (cfgFile.indexOf('"') >= 0) cfgFile = '"' + cfgFile + '"'; + params.push('/C=' + cfgFile); + } + + EnigmailLog.DEBUG("installGnuPG.jsm: installWindows: executing " + this.installerFile.path + " " + params.join(" ") + "\n"); var proc = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); proc.init(this.installerFile); - proc.runwAsync([], 0, obs, false); + proc.runwAsync(params, params.length, obs, false); } catch (ex) { deferred.reject("Installer could not be started"); @@ -325,6 +368,7 @@ cleanupWindows: function() { EnigmailLog.DEBUG("installGnuPG.jsm: cleanupWindows - remove package\n"); this.installerFile.remove(false); + if (this.gpg4WinCfgFile) this.gpg4WinCfgFile.remove(false); }, installUnix: function() {}, @@ -364,15 +408,16 @@ let deferred = Promise.defer(); function reqListener() { - if (typeof(on.responseXML) == "object") { - EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: got: " + on.responseText + "\n"); - if (!on.responseXML) { + // "this" is set by the calling XMLHttpRequest + if (typeof(this.responseXML) == "object") { + EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: got: " + this.responseText + "\n"); + if (!this.responseXML) { onError({ type: "Network" }); return; } - let doc = on.responseXML.firstChild; + let doc = this.responseXML.firstChild; self.url = unescape(doc.getAttribute("url")); self.hash = sanitizeHash(doc.getAttribute("hash")); self.command = sanitizeFileName(doc.getAttribute("command")); @@ -458,10 +503,8 @@ self.progressListener.onDownloaded(); try { - // this line used to read: - // performInstall(this.response).then(function _f() { performCleanup(); }); - // but since this.response is never actually set anywhere, it should always be null - performInstall(null).then(function _f() { + // "this" is set by the calling XMLHttpRequest + performInstall(this.response).then(function _f() { performCleanup(); }); } @@ -480,7 +523,7 @@ try { var flags = 0x02 | 0x08 | 0x20; var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); - self.installerFile = getTempDir(); + self.installerFile = EnigmailFiles.getTempDirObj().clone(); switch (EnigmailOS.getOS()) { case "Darwin": diff -Nru enigmail-1.9.1/package/install.rdf enigmail-1.9.7/package/install.rdf --- enigmail-1.9.1/package/install.rdf 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/install.rdf 2017-05-13 16:09:37.000000000 +0000 @@ -5,7 +5,7 @@ {847b3a00-7ab1-11d4-8f02-006008948af5} - 1.9.1 + 1.9.7 2 true @@ -16,7 +16,7 @@ {3550f703-e582-4d05-9a08-453d09bdfdc6} 38.0 - 46.0 + 56.0 @@ -24,7 +24,7 @@ {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} 2.35 - 2.43 + 2.53 returns "xyz" + * + * @return: String containing the protocol parameter; or null + */ + + getProtocol: function(contentTypeStr) { + contentTypeStr = contentTypeStr.replace(/[\r\n]/g, ""); + let proto = ""; + let ct = contentTypeStr.split(/;/); + for (let i = 0; i < ct.length; i++) { + if (ct[i].search(/[ \t]*protocol[ \t]*=/i) >= 0) { + proto = ct[i]; + break; + } + } + proto = proto.replace(/\s*protocol\s*=/i, "").replace(/[\'\"]/g, ""); + return proto; + }, + + /*** * determine the "charset" part of a mail content type. * * @contentTypeStr: the string containing all parts of a content-type. diff -Nru enigmail-1.9.1/package/mimeVerify.jsm enigmail-1.9.7/package/mimeVerify.jsm --- enigmail-1.9.1/package/mimeVerify.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/mimeVerify.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -29,6 +29,7 @@ const Ci = Components.interfaces; const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; +const PGPMIME_PROTO = "application/pgp-signature"; const maxBufferLen = 102400; @@ -36,7 +37,12 @@ var gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); // MimeVerify Constructor -function MimeVerify() { +function MimeVerify(protocol) { + if (!protocol) { + protocol = PGPMIME_PROTO; + } + + this.protocol = protocol; this.verifyEmbedded = false; this.partiallySigned = false; this.inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); @@ -57,8 +63,10 @@ this.lastMsgUri = msgUriSpec; }, - newVerifier: function() { - let v = new MimeVerify(); + newVerifier: function(protocol) { + EnigmailLog.DEBUG("mimeVerify.jsm: newVerifier: " + (protocol || "null") + "\n"); + + let v = new MimeVerify(protocol); return v; }, @@ -153,13 +161,14 @@ // Eat up CRLF's. contentTypeLine = contentTypeLine.replace(/[\r\n]/g, ""); - LOCAL_DEBUG("mimeVerify.jsm: parseContentType: " + contentTypeLine + "\n"); + EnigmailLog.DEBUG("mimeVerify.jsm: parseContentType: " + contentTypeLine + "\n"); + + let protoRx = RegExp("protocol\\s*=\\s*[\\'\\\"]" + this.protocol + "[\\\"\\']", "i"); if (contentTypeLine.search(/multipart\/signed/i) >= 0 && - contentTypeLine.search(/micalg\s*=\s*[\"\']?pgp-[\"\']?/i) > 0 && - contentTypeLine.search(/protocol\s*=\s*[\'\"]application\/pgp-signature[\"\']/i) > 0) { + contentTypeLine.search(protoRx) > 0) { - LOCAL_DEBUG("mimeVerify.jsm: parseContentType: found PGP/MIME signed message\n"); + EnigmailLog.DEBUG("mimeVerify.jsm: parseContentType: found MIME signed message\n"); this.foundMsg = true; let hdr = EnigmailFuncs.getHeaderData(contentTypeLine); hdr.boundary = hdr.boundary || ""; @@ -271,22 +280,27 @@ if (this.readMode === 3) { // signature data - let xferEnc = this.getContentTransferEncoding(); - if (xferEnc.search(/base64/i) >= 0) { - let bound = this.getBodyPart(); - this.keepData = EnigmailData.decodeBase64(this.keepData.substring(bound.start, bound.end)) + "\n"; - } - else if (xferEnc.search(/quoted-printable/i) >= 0) { - let bound = this.getBodyPart(); - let qp = this.keepData.substring(bound.start, bound.end); - this.keepData = EnigmailData.decodeQuotedPrintable(qp) + "\n"; - } + if (this.protocol === PGPMIME_PROTO) { + let xferEnc = this.getContentTransferEncoding(); + if (xferEnc.search(/base64/i) >= 0) { + let bound = this.getBodyPart(); + this.keepData = EnigmailData.decodeBase64(this.keepData.substring(bound.start, bound.end)) + "\n"; + } + else if (xferEnc.search(/quoted-printable/i) >= 0) { + let bound = this.getBodyPart(); + let qp = this.keepData.substring(bound.start, bound.end); + this.keepData = EnigmailData.decodeQuotedPrintable(qp) + "\n"; + } + // extract signature data + let s = Math.max(this.keepData.search(/^-----BEGIN PGP /m), 0); + let e = Math.max(this.keepData.search(/^-----END PGP /m), this.keepData.length - 30); + this.sigData = this.keepData.substring(s, e + 30); + } + else { + this.sigData = ""; + } - // extract signature data - let s = Math.max(this.keepData.search(/^-----BEGIN PGP /m), 0); - let e = Math.max(this.keepData.search(/^-----END PGP /m), this.keepData.length - 30); - this.sigData = this.keepData.substring(s, e + 30); this.keepData = ""; this.readMode = 4; // ignore any further data } @@ -299,6 +313,9 @@ start = 0; } let end = this.keepData.indexOf("--" + this.boundary + "--") - 1; + if (end < 0) { + end = this.keepData.length; + } return { start: start, @@ -346,7 +363,7 @@ }, onStopRequest: function() { - LOCAL_DEBUG("mimeVerify.jsm: onStopRequest\n"); + EnigmailLog.DEBUG("mimeVerify.jsm: onStopRequest\n"); this.msgWindow = EnigmailVerify.lastMsgWindow; this.msgUriSpec = EnigmailVerify.lastMsgUri; @@ -355,12 +372,20 @@ this.backgroundJob = false; + // don't try to verify if no message found // if (this.verifyEmbedded && (!this.foundMsg)) return; // TODO - check + if (this.readMode < 4) { + // we got incomplete data; simply return what we got + this.returnData(this.signedData.length > 0 ? this.signedData : this.keepData); + + return; + } + this.protectedHeaders = EnigmailMime.extractProtectedHeaders(this.signedData); - if (this.protectedHeaders && this.protectedHeaders.startPos >= 0 && this.protectedHeaders > this.protectedHeaders.startPos) { + if (this.protectedHeaders && this.protectedHeaders.startPos >= 0 && this.protectedHeaders.endPos > this.protectedHeaders.startPos) { let r = this.signedData.substr(0, this.protectedHeaders.startPos) + this.signedData.substr(this.protectedHeaders.endPos); this.returnData(r); } @@ -428,32 +453,35 @@ } } - var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); - var win = windowManager.getMostRecentWindow(null); - - // create temp file holding signature data - this.sigFile = EnigmailFiles.getTempDirObj(); - this.sigFile.append("data.sig"); - this.sigFile.createUnique(this.sigFile.NORMAL_FILE_TYPE, 0x180); - EnigmailFiles.writeFileContents(this.sigFile, this.sigData, 0x180); - - var statusFlagsObj = {}; - var errorMsgObj = {}; - - this.proc = EnigmailDecryption.decryptMessageStart(win, true, true, this, - statusFlagsObj, errorMsgObj, - EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(this.sigFile))); - - if (this.pipe) { - EnigmailLog.DEBUG("Closing pipe\n"); // always log this one - this.pipe.close(); + if (this.protocol === PGPMIME_PROTO) { + var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); + var win = windowManager.getMostRecentWindow(null); + + // create temp file holding signature data + this.sigFile = EnigmailFiles.getTempDirObj(); + this.sigFile.append("data.sig"); + this.sigFile.createUnique(this.sigFile.NORMAL_FILE_TYPE, 0x180); + EnigmailFiles.writeFileContents(this.sigFile, this.sigData, 0x180); + + var statusFlagsObj = {}; + var errorMsgObj = {}; + + this.proc = EnigmailDecryption.decryptMessageStart(win, true, true, this, + statusFlagsObj, errorMsgObj, + EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(this.sigFile))); + + if (this.pipe) { + EnigmailLog.DEBUG("mimeVerify.jsm: onStopRequest: closing pipe\n"); // always log this one + this.pipe.close(); + } + else + this.closePipe = true; } - else - this.closePipe = true; }, // return data to libMime returnData: function(data) { + EnigmailLog.DEBUG("mimeVerify.jsm: returnData: " + data.length + " bytes\n"); let m = data.match(/^(content-type: +)([\w\/]+)/im); if (m && m.length >= 3) { @@ -461,7 +489,8 @@ if (contentType.search(/^text/i) === 0) { // add multipart/mixed boundary to work around TB bug (empty forwarded message) let bound = EnigmailMime.createBoundary(); - data = 'Content-Type: multipart/mixed; boundary="' + bound + '"\n\n--' + + data = 'Content-Type: multipart/mixed; boundary="' + bound + '"\n' + + 'Content-Disposition: inline\n\n--' + bound + '\n' + data + '\n--' + bound + '--\n'; @@ -545,7 +574,7 @@ let headerSink = this.msgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink); if (this.protectedHeaders) { - headerSink.modifyMessageHeaders(this.uri, JSON.stringify(this.protectedHeaders.newHeaders)); + headerSink.modifyMessageHeaders(this.uri, JSON.stringify(this.protectedHeaders.newHeaders), this.mimePartNumber); } if (headerSink) { diff -Nru enigmail-1.9.1/package/pgpmimeHandler.js enigmail-1.9.7/package/pgpmimeHandler.js --- enigmail-1.9.1/package/pgpmimeHandler.js 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/pgpmimeHandler.js 2017-05-13 16:09:37.000000000 +0000 @@ -1,5 +1,4 @@ /*global Components: false */ -/*jshint -W097 */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -16,6 +15,7 @@ Components.utils.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */ Components.utils.import("resource://enigmail/mimeDecrypt.jsm"); /*global EnigmailMimeDecrypt: false */ Components.utils.import("resource://enigmail/mimeVerify.jsm"); /*global EnigmailVerify: false */ +Components.utils.import("resource://enigmail/mime.jsm"); /*global EnigmailMime: false */ const Cc = Components.classes; const Ci = Components.interfaces; @@ -27,6 +27,10 @@ // handler for PGP/MIME encrypted and PGP/MIME signed messages // data is processed from libmime -> nsPgpMimeProxy +var gConv; +var inStream; +var gLastEncryptedUri = ""; + const throwErrors = { onDataAvailable: function() { throw "error"; @@ -39,6 +43,74 @@ } }; +/** + * UnknownProtoHandler is a default handler for unkonwn protocols. It ensures that the + * signed message part is always displayed without any further action. + */ +function UnknownProtoHandler() { + if (!gConv) { + gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); + } + + if (!inStream) { + inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); + } +} + +UnknownProtoHandler.prototype = { + onStartRequest: function(request) { + this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); + this.mimeSvc.onStartRequest(null, null); + this.bound = EnigmailMime.getBoundary(this.mimeSvc.contentType); + /* + readMode: + 0: before message + 1: inside message + 2: afer message + */ + this.readMode = 0; + }, + + onDataAvailable: function(req, sup, stream, offset, count) { + if (count > 0) { + inStream.init(stream); + let data = inStream.read(count); + let l = data.replace(/\r\n/g, "\n").split(/\n/); + + if (data.search(/\n$/) >= 0) { + l.pop(); + } + + let startIndex = 0; + let endIndex = l.length; + + if (this.readMode < 2) { + for (let i = 0; i < l.length; i++) { + if (l[i].indexOf("--") === 0 && l[i].indexOf(this.bound) === 2) { + ++this.readMode; + if (this.readMode === 1) { + startIndex = i + 1; + } + else if (this.readMode === 2) { + endIndex = i - 1; + } + } + } + + if (this.readMode >= 1 && startIndex < l.length) { + let out = l.slice(startIndex, endIndex).join("\n") + "\n"; + gConv.setData(out, out.length); + this.mimeSvc.onDataAvailable(null, null, gConv, 0, out.length); + } + } + } + }, + + onStopRequest: function() { + this.mimeSvc.onStopRequest(null, null, 0); + } +}; + function PgpMimeHandler() { EnigmailLog.DEBUG("mimeDecrypt.js: PgpMimeHandler()\n"); // always log this one @@ -53,16 +125,28 @@ inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream), onStartRequest: function(request, uri) { - if (!EnigmailCore.getService()) // Ensure Enigmail is initialized + let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); + let ct = mimeSvc.contentType; + + if (!EnigmailCore.getService()) { + // Ensure Enigmail is initialized + if (ct.search(/application\/(x-)?pkcs7-signature/i) > 0) { + return this.handleSmime(uri); + } return null; + } + EnigmailLog.DEBUG("pgpmimeHandler.js: onStartRequest\n"); + EnigmailLog.DEBUG("pgpmimeHandler.js: ct= " + ct + "\n"); - let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - let ct = mimeSvc.contentType; let cth = null; if (ct.search(/^multipart\/encrypted/i) === 0) { // PGP/MIME encrypted message + if (uri) { + let u = uri.QueryInterface(Ci.nsIURI); + gLastEncryptedUri = u.spec; + } cth = new EnigmailMimeDecrypt(); } else if (ct.search(/^multipart\/signed/i) === 0) { @@ -70,12 +154,29 @@ // PGP/MIME signed message cth = EnigmailVerify.newVerifier(); } - else { + else if (ct.search(/application\/(x-)?pkcs7-signature/i) > 0) { // S/MIME signed message - return this.handleSmime(uri); + let lastUriSpec = ""; + if (uri) { + let u = uri.QueryInterface(Ci.nsIURI); + lastUriSpec = u.spec; + } + if (lastUriSpec !== gLastEncryptedUri && EnigmailVerify.lastMsgWindow) { + // if message is displayed then handle like S/MIME message + return this.handleSmime(uri); + } + else { + // otherwise just make sure message body is returned + cth = EnigmailVerify.newVerifier("application/(x-)?pkcs7-signature"); + } } } + if (!cth) { + EnigmailLog.ERROR("pgpmimeHandler.js: unknown protocol for content-type: " + ct + "\n"); + cth = new UnknownProtoHandler(); + } + if (cth) { this.onDataAvailable = cth.onDataAvailable.bind(cth); this.onStopRequest = cth.onStopRequest.bind(cth); @@ -93,9 +194,25 @@ if (uri) { uri = uri.QueryInterface(Ci.nsIURI).clone(); } + let headerSink = EnigmailVerify.lastMsgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink); headerSink.handleSMimeMessage(uri); - } + }, + + getMessengerWindow: function() { + let windowManager = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator); + + let winEnum = windowManager.getEnumerator(null); + + while (winEnum.hasMoreElements()) { + let thisWin = winEnum.getNext(); + if (thisWin.location.href.search(/\/messenger.xul$/) > 0) { + return thisWin; + } + } + + return null; + }, }; diff -Nru enigmail-1.9.1/package/windows.jsm enigmail-1.9.7/package/windows.jsm --- enigmail-1.9.1/package/windows.jsm 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/package/windows.jsm 2017-05-13 16:09:37.000000000 +0000 @@ -191,6 +191,35 @@ }, /** + * If the Key Manager is open, dispatch an event to tell the key + * manager to refresh the displayed keys + */ + + keyManReloadKeys: function() { + let windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); + let winName = "enigmail:KeyManager"; + let spec = "chrome://enigmail/content/enigmailKeygen.xul"; + + let winEnum = windowManager.getEnumerator(null); + let recentWin = null; + while (winEnum.hasMoreElements() && !recentWin) { + let thisWin = winEnum.getNext(); + if (thisWin.location.href == spec) { + recentWin = thisWin; + break; + } + if (winName && thisWin.name && thisWin.name == winName) { + let evt = new thisWin.Event("reload-keycache", { + "bubbles": true, + "cancelable": false + }); + thisWin.dispatchEvent(evt); + break; + } + } + }, + + /** * Display the key creation window * * no return value @@ -198,7 +227,7 @@ openKeyGen: function() { EnigmailWindows.openWin("enigmail:generateKey", "chrome://enigmail/content/enigmailKeygen.xul", - "chrome,modal,resizable=yes"); + "chrome,resizable=yes"); }, /** @@ -296,7 +325,8 @@ * @win - |object| holding the parent window for the dialog * @userIdArr - |array| of |strings| containing the User IDs * @keyIdArr - |array| of |strings| containing the key IDs (eg. "0x12345678") to change - * no return value + * + * @return Boolean - true if expiry date was changed; false otherwise */ editKeyExpiry: function(win, userIdArr, keyIdArr) { const inputObj = { @@ -317,7 +347,8 @@ * @win - |object| holding the parent window for the dialog * @userIdArr - |array| of |strings| containing the User IDs * @keyIdArr - |array| of |strings| containing the key IDs (eg. "0x12345678") to change - * no return value + * + * @return Boolean - true if key trust was changed; false otherwise */ editKeyTrust: function(win, userIdArr, keyIdArr) { const inputObj = { @@ -339,7 +370,8 @@ * @win - |object| holding the parent window for the dialog * @userId - |string| containing the User ID (for displaing in the dialog only) * @keyId - |string| containing the key ID (eg. "0x12345678") - * no return value + * + * @return Boolean - true if key was signed; false otherwise */ signKey: function(win, userId, keyId) { const inputObj = { @@ -412,7 +444,8 @@ * @keyId - |string| containing the key ID (eg. "0x12345678") * @refresh - |boolean| if true, cache is cleared and the key data is loaded from GnuPG * - * no return value + * @return Boolean - true: keylist needs to be refreshed + * - false: no need to refresh keylist */ openKeyDetails: function(win, keyId, refresh) { const keyListObj = {}; @@ -434,6 +467,8 @@ if (resultObj.refresh) { EnigmailKeyRing.clearCache(); } + + return resultObj.refresh; }, /** diff -Nru enigmail-1.9.1/thunderbird-enigmail.metainfo.xml enigmail-1.9.7/thunderbird-enigmail.metainfo.xml --- enigmail-1.9.1/thunderbird-enigmail.metainfo.xml 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-1.9.7/thunderbird-enigmail.metainfo.xml 2017-05-13 16:09:37.000000000 +0000 @@ -0,0 +1,17 @@ + + + + thunderbird-enigmail + mozilla-thunderbird.desktop + Enigmail + + OpenPGP message encryption and authentication for Thunderbird and SeaMonkey. + + https://www.enigmail.net + CC0-1.0 + MPL-2.0 + patrick@enigmail.net + diff -Nru enigmail-1.9.1/ui/content/enigmailAlertDlg.js enigmail-1.9.7/ui/content/enigmailAlertDlg.js --- enigmail-1.9.1/ui/content/enigmailAlertDlg.js 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/ui/content/enigmailAlertDlg.js 2017-05-13 16:09:37.000000000 +0000 @@ -12,6 +12,9 @@ const Cc = Components.classes; const Ci = Components.interfaces; +Components.utils.import("resource://enigmail/clipboard.jsm"); /*global EnigmailClipboard: false */ + + EnigInitCommon("enigmailAlertDlg"); function onLoad() { @@ -151,8 +154,7 @@ function copyToClipbrd() { let s = window.getSelection().toString(); - let clip = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper); - clip.copyString(s); + EnigmailClipboard.setClipboardContent(s); } function onKeyPress(event) { diff -Nru enigmail-1.9.1/ui/content/enigmailCommon.js enigmail-1.9.7/ui/content/enigmailCommon.js --- enigmail-1.9.1/ui/content/enigmailCommon.js 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/ui/content/enigmailCommon.js 2017-05-13 16:09:37.000000000 +0000 @@ -57,9 +57,6 @@ const ENIG_MIME_CONTRACTID = "@mozilla.org/mime;1"; const ENIG_WMEDIATOR_CONTRACTID = "@mozilla.org/rdf/datasource;1?name=window-mediator"; const ENIG_ASS_CONTRACTID = "@mozilla.org/appshell/appShellService;1"; -const ENIG_CLIPBOARD_CONTRACTID = "@mozilla.org/widget/clipboard;1"; -const ENIG_CLIPBOARD_HELPER_CONTRACTID = "@mozilla.org/widget/clipboardhelper;1"; -const ENIG_TRANSFERABLE_CONTRACTID = "@mozilla.org/widget/transferable;1"; const ENIG_LOCALE_SVC_CONTRACTID = "@mozilla.org/intl/nslocaleservice;1"; const ENIG_DATE_FORMAT_CONTRACTID = "@mozilla.org/intl/scriptabledateformat;1"; const ENIG_ACCOUNT_MANAGER_CONTRACTID = "@mozilla.org/messenger/account-manager;1"; diff -Nru enigmail-1.9.1/ui/content/enigmailFilterEditorOverlay.js enigmail-1.9.7/ui/content/enigmailFilterEditorOverlay.js --- enigmail-1.9.1/ui/content/enigmailFilterEditorOverlay.js 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/ui/content/enigmailFilterEditorOverlay.js 2017-05-13 16:09:37.000000000 +0000 @@ -8,11 +8,15 @@ "use strict"; -/* global gActionListOrdered: false */ +/* global gActionListOrdered: false, checkActionsReorder: true */ Components.utils.import("resource://enigmail/timer.jsm"); /*global EnigmailTimer: false */ -var enigmail_origCheckActionsReorder = function() { +// Overwrite the original checkActionsReorder function + +var enigmail_origCheckActionsReorder = checkActionsReorder; + +checkActionsReorder = function() { enigmail_origCheckActionsReorder(); EnigmailTimer.setTimeout(EnigmailFilterEditor.checkMoveAction.bind(EnigmailFilterEditor), 0); }; diff -Nru enigmail-1.9.1/ui/content/enigmailFilterEditorOverlay.xul enigmail-1.9.7/ui/content/enigmailFilterEditorOverlay.xul --- enigmail-1.9.1/ui/content/enigmailFilterEditorOverlay.xul 2016-03-06 12:03:48.000000000 +0000 +++ enigmail-1.9.7/ui/content/enigmailFilterEditorOverlay.xul 2017-05-13 16:09:37.000000000 +0000 @@ -18,7 +18,7 @@