Hello community, here is the log from the commit of package enigmail for openSUSE:Factory checked in at 2018-05-29 10:48:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/enigmail (Old) and /work/SRC/openSUSE:Factory/.enigmail.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "enigmail" Tue May 29 10:48:46 2018 rev:26 rq:612612 version:2.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/enigmail/enigmail.changes 2018-05-22 17:02:13.595647951 +0200 +++ /work/SRC/openSUSE:Factory/.enigmail.new/enigmail.changes 2018-05-29 10:48:58.479515672 +0200 @@ -1,0 +2,10 @@ +Sun May 27 18:03:30 UTC 2018 - [email protected] + +- enigmail 2.0.6: + * Replies to a partially encrypted message may have revealed + protected information - no longer display PGP/MIME message + part followed by unencrypted data (bsc#1094781) + * Fix signature Spoofing via Inline-PGP in HTML Mails + * Fix filter actions forgetting selected mail folder names + +------------------------------------------------------------------- Old: ---- enigmail-2.0.5.tar.gz enigmail-2.0.5.tar.gz.asc New: ---- enigmail-2.0.6.tar.gz enigmail-2.0.6.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ enigmail.spec ++++++ --- /var/tmp/diff_new_pack.G6hOl1/_old 2018-05-29 10:48:58.911499734 +0200 +++ /var/tmp/diff_new_pack.G6hOl1/_new 2018-05-29 10:48:58.915499587 +0200 @@ -18,7 +18,7 @@ Name: enigmail -Version: 2.0.5 +Version: 2.0.6 Release: 0 Summary: OpenPGP addon for Thunderbird and SeaMonkey License: MPL-2.0 ++++++ enigmail-2.0.5.tar.gz -> enigmail-2.0.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/Makefile new/enigmail/Makefile --- old/enigmail/Makefile 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/Makefile 2018-05-27 11:50:32.000000000 +0200 @@ -3,7 +3,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. XPI_MODULE = enigmail -XPI_MODULE_VERS = 2.0.5 +XPI_MODULE_VERS = 2.0.6 DEPTH = . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/configure new/enigmail/configure --- old/enigmail/configure 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/configure 2018-05-27 11:50:32.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for enigmail 2.0.5. +# Generated by GNU Autoconf 2.69 for enigmail 2.0.6. # # Report bugs to <https://www.enigmail.net>. # @@ -579,8 +579,8 @@ # Identity of this package. PACKAGE_NAME='enigmail' PACKAGE_TARNAME='enigmail' -PACKAGE_VERSION='2.0.5' -PACKAGE_STRING='enigmail 2.0.5' +PACKAGE_VERSION='2.0.6' +PACKAGE_STRING='enigmail 2.0.6' 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 2.0.5 to adapt to many kinds of systems. +\`configure' configures enigmail 2.0.6 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 2.0.5:";; + short | recursive ) echo "Configuration of enigmail 2.0.6:";; esac cat <<\_ACEOF @@ -1343,7 +1343,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -enigmail configure 2.0.5 +enigmail configure 2.0.6 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 2.0.5, which was +It was created by enigmail $as_me 2.0.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/configure.ac new/enigmail/configure.ac --- old/enigmail/configure.ac 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/configure.ac 2018-05-27 11:50:32.000000000 +0200 @@ -2,7 +2,7 @@ AC_PREREQ(2.61) min_automake_version="1.10" -AC_INIT([enigmail],[2.0.5], [https://www.enigmail.net]) +AC_INIT([enigmail],[2.0.6], [https://www.enigmail.net]) AC_PATH_PROG(PYTHON, "python2") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/constants.jsm new/enigmail/package/constants.jsm --- old/enigmail/package/constants.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/constants.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -64,6 +64,7 @@ UI_PGP_MIME: 0x08, UI_TEST: 0x10, UI_RESTORE_STRICTLY_MIME: 0x20, + UI_IGNORE_MDC_ERROR: 0x40, // force decryption, even if we got an MDC error /* Send message flags */ SEND_SIGNED: 0x0001, // 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/decryption.jsm new/enigmail/package/decryption.jsm --- old/enigmail/package/decryption.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/decryption.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -413,7 +413,7 @@ * Decrypts a PGP ciphertext and returns the the plaintext * *in @parent a window object - *in @uiFlags see flag options in EnigmailConstants.idl, UI_INTERACTIVE, UI_ALLOW_KEY_IMPORT + *in @uiFlags see flag options in EnigmailConstants, UI_INTERACTIVE, UI_ALLOW_KEY_IMPORT *in @cipherText a string containing a PGP Block *out @signatureObj *out @exitCodeObj contains the exit code @@ -557,7 +557,11 @@ // do not return anything if gpg signales DECRYPTION_FAILED // (which could be possible in case of MDC errors) - if (retStatusObj.statusFlags & EnigmailConstants.DECRYPTION_FAILED) { + if ((uiFlags & EnigmailConstants.UI_IGNORE_MDC_ERROR) && + (retStatusObj.statusFlags & EnigmailConstants.MISSING_MDC)) { + EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptMessage: ignoring MDC error\n"); + } + else if (retStatusObj.statusFlags & EnigmailConstants.DECRYPTION_FAILED) { plainText = ""; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/errorHandling.jsm new/enigmail/package/errorHandling.jsm --- old/enigmail/package/errorHandling.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/errorHandling.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -309,7 +309,7 @@ c.statusFlags |= EnigmailConstants.DECRYPTION_FAILED; // be sure to fail c.flag = EnigmailConstants.MISSING_MDC; EnigmailLog.DEBUG("errorHandling.jsm: missing MDC!\n"); - c.retStatusObj.statusMsg += EnigmailLocale.getString("missingMdcError") + "\n"; + c.retStatusObj.statusMsg += EnigmailLocale.getString("mdcError") + "\n"; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/install.rdf new/enigmail/package/install.rdf --- old/enigmail/package/install.rdf 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/install.rdf 2018-05-27 11:50:32.000000000 +0200 @@ -5,7 +5,7 @@ <Description about="urn:mozilla:install-manifest"> <em:id>{847b3a00-7ab1-11d4-8f02-006008948af5}</em:id> - <em:version>2.0.5</em:version> + <em:version>2.0.6</em:version> <em:type>2</em:type> <!-- type = extension --> <em:bootstrap>true</em:bootstrap> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/mime.jsm new/enigmail/package/mime.jsm --- old/enigmail/package/mime.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/mime.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -371,7 +371,7 @@ */ isRegularMimeStructure: function(mimePartNumber, uriSpec) { if (mimePartNumber.length === 0) return true; - if (mimePartNumber.search(/^1(\.1)*$/) === 0) return true; + if (mimePartNumber === "1") return true; if (!uriSpec) return true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/mimeDecrypt.jsm new/enigmail/package/mimeDecrypt.jsm --- old/enigmail/package/mimeDecrypt.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/mimeDecrypt.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -432,9 +432,15 @@ EnigmailConstants.UI_PGP_MIME, this.returnStatus); - if ((this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_FAILED) || - !(this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_OKAY)) { - this.decryptedData = ""; + let mdcError = ((this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_FAILED) || + !(this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_OKAY)); + + if (!(this.uri && this.uri.spec.search(/[&?]header=enigmailConvert/) >= 0)) { + // don't return decrypted data if decryption failed (because it's likely an MDC error), + // unless we are called for permanent decryption + if (mdcError) { + this.decryptedData = ""; + } } this.displayStatus(); @@ -448,7 +454,8 @@ // don't remember the last message if it contains an embedded PGP/MIME message // to avoid ending up in a loop if (this.mimePartNumber === "1" && - this.decryptedData.search(/^Content-Type:[\t ]+multipart\/encrypted/mi) < 0) { + this.decryptedData.search(/^Content-Type:[\t ]+multipart\/encrypted/mi) < 0 && + !mdcError) { LAST_MSG.lastMessageData = this.decryptedData; LAST_MSG.lastMessageURI = currMsg; LAST_MSG.lastStatus = this.returnStatus; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/persistentCrypto.jsm new/enigmail/package/persistentCrypto.jsm --- old/enigmail/package/persistentCrypto.jsm 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/package/persistentCrypto.jsm 2018-05-27 11:50:32.000000000 +0200 @@ -19,7 +19,6 @@ Cu.import("resource://enigmail/armor.jsm"); /*global EnigmailArmor: false */ Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */ Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */ -Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */ Cu.import("resource://enigmail/glodaUtils.jsm"); /*global GlodaUtils: false */ Cu.import("resource:///modules/MailUtils.js"); /*global MailUtils: false */ Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */ @@ -42,6 +41,7 @@ const getGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); const getDecryption = EnigmailLazy.loader("enigmail/decryption.jsm", "EnigmailDecryption"); +const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); const Cc = Components.classes; const Ci = Components.interfaces; @@ -577,13 +577,17 @@ EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: decryption OK\n"); exitCode = 0; } + else if (statusFlagsObj.value & (EnigmailConstants.DECRYPTION_FAILED | EnigmailConstants.MISSING_MDC)) { + EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: decryption without MDC protection\n"); + exitCode = 0; + } else if (statusFlagsObj.value & EnigmailConstants.DECRYPTION_FAILED) { EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: decryption failed\n"); // since we cannot find out if the user wants to cancel // we should ask let msg = EnigmailLocale.getString("converter.decryptAtt.failed", [attachment.name, self.subject]); - if (!EnigmailDialog.confirmDlg(null, msg, + if (!getDialog().confirmDlg(null, msg, EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) { o.status = STATUS_FAILURE; resolve(o); @@ -889,7 +893,8 @@ var signatureObj = {}; signatureObj.value = ""; - var uiFlags = EnigmailConstants.UI_INTERACTIVE | EnigmailConstants.UI_UNVERIFIED_ENC_OK; + const uiFlags = EnigmailConstants.UI_INTERACTIVE | EnigmailConstants.UI_UNVERIFIED_ENC_OK | + EnigmailConstants.UI_IGNORE_MDC_ERROR; var plaintexts = []; var blocks = EnigmailArmor.locateArmoredBlocks(mime.body); @@ -929,17 +934,20 @@ keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj); if (!plaintext || plaintext.length === 0) { if (statusFlagsObj.value & EnigmailConstants.DISPLAY_MESSAGE) { - EnigmailDialog.alert(null, errorMsgObj.value); + getDialog().alert(null, errorMsgObj.value); this.foundPGP = -1; return -1; } + if (statusFlagsObj.value & (EnigmailConstants.DECRYPTION_FAILED | EnigmailConstants.MISSING_MDC)) { + EnigmailLog.DEBUG("persistentCrypto.jsm: decryptINLINE: no MDC protection, decrypting anyway\n"); + } if (statusFlagsObj.value & EnigmailConstants.DECRYPTION_FAILED) { // since we cannot find out if the user wants to cancel // we should ask let msg = EnigmailLocale.getString("converter.decryptBody.failed", this.subject); - if (!EnigmailDialog.confirmDlg(null, msg, + if (!getDialog().confirmDlg(null, msg, EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) { this.foundPGP = -1; return -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/ui/content/enigmailFilterEditorOverlay.js new/enigmail/ui/content/enigmailFilterEditorOverlay.js --- old/enigmail/ui/content/enigmailFilterEditorOverlay.js 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/ui/content/enigmailFilterEditorOverlay.js 2018-05-27 11:50:32.000000000 +0200 @@ -9,6 +9,7 @@ "use strict"; /* global gActionListOrdered: false, checkActionsReorder: true */ +/* global nsMsgFilterAction: false, gFilterActionStrings: false, gFilterActionList: true */ Components.utils.import("resource://enigmail/timer.jsm"); /*global EnigmailTimer: false */ @@ -16,6 +17,16 @@ var EnigmailFilterEditor = { onLoad: function() { let self = this; + + if ("arguments" in window && window.arguments[0]) { + let args = window.arguments[0]; + + if ("filter" in args) { + // editing a filter + this.reInitialize(args.filter); + } + } + // Overwrite the original checkActionsReorder function this.enigmail_origCheckActionsReorder = checkActionsReorder; @@ -33,6 +44,26 @@ EnigmailFilterEditor = undefined; }, + reInitialize: function(filter) { + while (gFilterActionList.firstChild) { + gFilterActionList.removeChild(gFilterActionList.firstChild); + } + + let numActions = filter.actionCount; + for (let actionIndex = 0; actionIndex < numActions; actionIndex++) { + let filterAction = filter.getActionAt(actionIndex); + + var newActionRow = document.createElement('listitem'); + newActionRow.setAttribute('initialActionIndex', actionIndex); + newActionRow.className = 'ruleaction'; + gFilterActionList.appendChild(newActionRow); + newActionRow.setAttribute('value', + filterAction.type == nsMsgFilterAction.Custom ? + filterAction.customId : gFilterActionStrings[filterAction.type]); + newActionRow.setAttribute('onfocus', 'this.storeFocus();'); + } + }, + checkMoveAction: function() { let dlg = document.getElementById("FilterEditor"); let acceptButton = dlg.getButton("accept"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/ui/content/enigmailMessengerOverlay.js new/enigmail/ui/content/enigmailMessengerOverlay.js --- old/enigmail/ui/content/enigmailMessengerOverlay.js 2018-05-21 17:21:59.000000000 +0200 +++ new/enigmail/ui/content/enigmailMessengerOverlay.js 2018-05-27 11:50:32.000000000 +0200 @@ -1097,6 +1097,9 @@ Enigmail.hdrView.displayPepStatus(pEpResult.rating, pEpResult.fpr, null, pEpResult.persons); } else { + if ((head.length > 0) || (tail.length > 0)) { + statusFlags |= EnigmailConstants.PARTIALLY_PGP; + } Enigmail.hdrView.updateHdrIcons(exitCode, statusFlags, keyIdObj.value, userIdObj.value, sigDetailsObj.value, errorMsg,
