Hello community, here is the log from the commit of package enigmail for openSUSE:Factory checked in at 2018-04-04 11:08:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/enigmail (Old) and /work/SRC/openSUSE:Factory/.enigmail.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "enigmail" Wed Apr 4 11:08:42 2018 rev:21 rq:593311 version:2.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/enigmail/enigmail.changes 2018-03-28 10:30:49.894232083 +0200 +++ /work/SRC/openSUSE:Factory/.enigmail.new/enigmail.changes 2018-04-04 11:09:11.171847087 +0200 @@ -1,0 +2,10 @@ +Tue Apr 3 16:28:50 UTC 2018 - astieger@suse.com + +- enigmail 2.0.1, addressing several issues found in 2.0: + * S/MIME signing/encryption not working correctly, if Enigmail + is not enabled for an account + * Emails fail to decrypt if the sender address contains brackets + * Autocrypt-headers may flip manually created per-recipient rules + * The key manager does not load if no key on the keyring + +------------------------------------------------------------------- Old: ---- enigmail-2.0.tar.gz enigmail-2.0.tar.gz.asc New: ---- enigmail-2.0.1.tar.gz enigmail-2.0.1.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ enigmail.spec ++++++ --- /var/tmp/diff_new_pack.gYohI6/_old 2018-04-04 11:09:12.899784468 +0200 +++ /var/tmp/diff_new_pack.gYohI6/_new 2018-04-04 11:09:12.903784323 +0200 @@ -18,7 +18,7 @@ Name: enigmail -Version: 2.0 +Version: 2.0.1 Release: 0 Summary: OpenPGP addon for Thunderbird and SeaMonkey License: MPL-2.0 ++++++ enigmail-2.0.tar.gz -> enigmail-2.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/Makefile new/enigmail/Makefile --- old/enigmail/Makefile 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/Makefile 2018-04-02 13:33:37.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 +XPI_MODULE_VERS = 2.0.1 DEPTH = . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/configure new/enigmail/configure --- old/enigmail/configure 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/configure 2018-04-02 13:33:37.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. +# Generated by GNU Autoconf 2.69 for enigmail 2.0.1. # # 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' -PACKAGE_STRING='enigmail 2.0' +PACKAGE_VERSION='2.0.1' +PACKAGE_STRING='enigmail 2.0.1' 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 to adapt to many kinds of systems. +\`configure' configures enigmail 2.0.1 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:";; + short | recursive ) echo "Configuration of enigmail 2.0.1:";; 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 +enigmail configure 2.0.1 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, which was +It was created by enigmail $as_me 2.0.1, 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/lang/de/enigmail.properties new/enigmail/lang/de/enigmail.properties --- old/enigmail/lang/de/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/de/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Unterstützung für Autocrypt upgradeInfo.autocrypt.desc=Enigmail unterstützt nun <a href="https://autocrypt.org/">Autocrypt</a>, einen neuen Standard zur Verteilung von Schlüsseln als Teil der gesendeten Nachrichten. Enigmail importiert automatisch Schlüssel aus Autocrypt-kompatiblen Nachrichten, so dass im Laufe der Zeit immer mehr E-Mails verschlüsselt werden können. upgradeInfo.pEp.title=Neuer p≡p Junior-Modus (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail enthält jetzt einen <a href="https://pep-project.org/">p≡p</a> Junior-Modus. Derzeit müssen Sie dazu p≡p manuell installieren; dies wird sich in einer zukünftigen Version ändern. Der p≡p Junior-Modus ermöglicht es Ihnen, die OpenPGP-Verschlüsselung so transparent wie möglich zu nutzen; Sie müssen sich nicht mehr um die Schlüsselverwaltung und die Synchronisation von Schlüsseln zwischen Geräten kümmern. +upgradeInfo.pEp.desc=Enigmail enthält jetzt einen <a href="https://pep-project.org/">p≡p</a> Junior-Modus. Der p≡p Junior-Modus ermöglicht es Ihnen, die OpenPGP-Verschlüsselung so transparent wie möglich zu nutzen; Sie müssen sich nicht mehr um die Schlüsselverwaltung und die Synchronisation von Schlüsseln zwischen Geräten kümmern. upgradeInfo.bottom.desc=Bitte beachten Sie <a href="https://enigmail.net/home/docu.php">unsere Dokumentation</a>, um Hilfe zur Verwendung von Enigmail zu erhalten. pep.missingGnuPG=Für die Verwendung von Enigmail/p≡p wird GnuPG benötigt. Da wir es nicht finden konnten, schlagen wir vor, es für Sie herunterzuladen und zu installieren. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/es-ES/enigmail.properties new/enigmail/lang/es-ES/enigmail.properties --- old/enigmail/lang/es-ES/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/es-ES/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Soporte para Autocrypt upgradeInfo.autocrypt.desc=Enigmail ahora soporta <a href="https://autocrypt.org/">Autocrypt</a>, un nuevo estándar para distribuir claves como parte de mensajes enviados. Enigmail importa claves automáticamente desde mensajes compatibles con Autocrypt, de forma que con el tiempo se pueden cifrar cada vez más correos electrónicos. upgradeInfo.pEp.title=Nuevo Modo Junior de p≡p (pretty Easy privacy) -upgradeInfo.pEp.desc=Enigmail ahora contiene un Modo Junior de <a href="https://pep-project.org/">p≡p</a>. En la actualidad necesita instalar p≡p manualmente para este propósito; esto cambiará en una futura versión. El Modo Junior de p≡p le permite usar cifrado OpenPGP de la forma más transparente posible; no tendrá que atender la administración de claves y la sincronización de claves entre dispositivos nunca más. +upgradeInfo.pEp.desc=Enigmail ahora contiene un Modo Junior de <a href="https://pep-project.org/">p≡p</a>. El Modo Junior de p≡p le permite usar cifrado OpenPGP de la forma más transparente posible; no tendrá que atender la administración de claves y la sincronización de claves entre dispositivos nunca más. upgradeInfo.bottom.desc=Por favor, visite <a href="https://enigmail.net/home/docu.php">nuestra documentación</a> para ayuda en el uso de Enigmail. pep.missingGnuPG=Para usar Enigmail/p≡p, se requiere GnuPG. Como no pudimos encontrarlo, sugerimos descargarlo e instalarlo para usted. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/fr/enigmail.dtd new/enigmail/lang/fr/enigmail.dtd --- old/enigmail/lang/fr/enigmail.dtd 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/fr/enigmail.dtd 2018-04-02 13:33:37.000000000 +0200 @@ -725,7 +725,7 @@ <!ENTITY enigmail.setupWiz.pgKeyCreate.subtitle "Créer une nouvelle biclé"> <!ENTITY enigmail.setupWiz.pgKeyCreate.descTwoKeys "Cette boîte de dialogue créera deux clés :"> <!ENTITY enigmail.setupWiz.pgKeyCreate.descPub "Votre <html:b>clé publique permet html:baux autres de vous envoyer des courriels chiffrés. Vous pouvez la distribuer à tout le monde."> -<!ENTITY enigmail.setupWiz.pgKeyCreate.descSec1 "Votre <html:b>clé privéehtml:b html:bvous permet de déchiffrer ces courriels et d’envoyer des courriels signés. Vous ne devriez la donner à personne."> +<!ENTITY enigmail.setupWiz.pgKeyCreate.descSec1 "Votre <html:b>clé privée html:bvous permet de déchiffrer ces courriels et d’envoyer des courriels signés. Vous ne devriez la donner à personne."> <!ENTITY enigmail.setupWiz.pgKeyCreate.descSec2 "Votre <html:b>clé privée html:bvous permet de déchiffrer ces courriels et d’envoyer des courriels signés. Vous ne devriez la donner à personne. Pour protéger votre clé privée, vous serez invité à saisir une phrase de passe dans les deux boîtes de dialogue suivantes."> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/fr/enigmail.properties new/enigmail/lang/fr/enigmail.properties --- old/enigmail/lang/fr/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/fr/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Prise en charge d’Autocrypt upgradeInfo.autocrypt.desc=Enigmail prend désormais en charge <a href="https://autocrypt.org/">Autocrypt</a>, une nouvelle norme pour distribuer des clés comme faisant partie des messages envoyés. Enigmail importe automatiquement les clés des messages conformes à Autocrypt, permettant ainsi de chiffrer de plus en plus de courriels avec le temps. upgradeInfo.pEp.title=Nouveau mode p≡p junior (confidentialité plutôt facile [Pretty Easy Privacy]). -upgradeInfo.pEp.desc=Enigmail contient désormais un mode <a href="https://pep-project.org/">p≡p</a> junior. Vous devez actuellement installer p≡p pour pouvoir l’utiliser, mais cela changera dans une version future. Le mode p≡p junior vous permet d’utiliser le chiffrement OpenPGP de manière aussi transparente que possible ; vous n’avez plus à vous soucier de la gestion des clés ni de leurs synchronisations entre vos appareils. +upgradeInfo.pEp.desc=Enigmail contient désormais un mode <a href="https://pep-project.org/">p≡p</a> junior. Le mode p≡p junior vous permet d’utiliser le chiffrement OpenPGP de manière aussi transparente que possible ; vous n’avez plus à vous soucier de la gestion des clés ni de leurs synchronisations entre vos appareils. upgradeInfo.bottom.desc=Veuillez consulter <a href="https://enigmail.net/home/docu.php">notre documentation</a> pour obtenir de l’aide sur l’utilisation d’Enigmail. pep.missingGnuPG=Afin d’utiliser Enigmail ou p≡p, GnuPG est exigé. Comme nous ne l’avons pas trouvé, nous vous suggérons de le télécharger et de l’installer pour vous. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/gd/enigmail.properties new/enigmail/lang/gd/enigmail.properties --- old/enigmail/lang/gd/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/gd/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Taic ri Autocrypt upgradeInfo.autocrypt.desc=Cuiridh Enigmail taic ri <a href="https://autocrypt.org/">Autocrypt</a> a-nis, seo stannard ùr a chum sgaoileadh iuchraichean mar phàirt de theachdaireachdan a thèid a chur. Ion-phortaichidh Enigmail iuchraichean o theachdaireachdan a ghèilleas ri Autocrypt gu fèin-obrachail ach an gabh barrachd phost-d a chrioptachadh san àm ri teachd. upgradeInfo.pEp.title=Modh p≡p furasta ùr (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Tha modh furasta <a href="https://pep-project.org/">p≡p</a> aig Enigmail a-nis. Feumaidh tu p≡p a stàladh a làimh aig an àm seo; tha sinn ag amas piseach a chur air sin san àm ri teachd. Leigidh am modh furasta p≡p leat crioptachadh OpenPGP a chleachdadh air dòigh as soilleire; cha leig thu leas bodraigeadh le stiùireadh no sioncronachadh nan iuchraichean eadar uidheaman tuilleadh. +upgradeInfo.pEp.desc=Tha modh furasta <a href="https://pep-project.org/">p≡p</a> aig Enigmail a-nis. Leigidh am modh furasta p≡p leat crioptachadh OpenPGP a chleachdadh air dòigh as soilleire; cha leig thu leas bodraigeadh le stiùireadh no sioncronachadh nan iuchraichean eadar uidheaman tuilleadh. upgradeInfo.bottom.desc=Tadhail air an <a href="https://enigmail.net/home/docu.php">docamaideadh</a> againn airson cobhair le cleachdadh Enigmail. pep.missingGnuPG=Feumaidh GnuPG a bhith agad mus urrainn dhut Enigmail/p≡p a chleachdadh. Cha do lorg sinn e agus mholamaid gun luchdaich sinn a-nuas is gun stàlaich sinn e air do shon. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/gl/enigmail.properties new/enigmail/lang/gl/enigmail.properties --- old/enigmail/lang/gl/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/gl/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Compatibilidade para o Autocrypt upgradeInfo.autocrypt.desc=O Enigmail xa é compatíbel co <a href="https://autocrypt.org/">Autocrypt</a>, un novo estándar para distribuír chaves como parte das mensaxes enviadas. O Enigmail importa automaticamente estas chaves das mensaxes que cumpren coas normas do Autocrypt, deste xeito cada vez máis correos electrónicos poderán ser cifrados. upgradeInfo.pEp.title=Novo modo Junior do p≡p (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail xa dispón do Modo Junior <a href="https://pep-project.org/">p≡p</a>. Con este propósito debe instalar manualmente o p≡p; isto cambiará en futuras versións. O Modo Junior p≡p permítelle usar o cifrado OpenPGP con tanta transparencia como é posíbel; vostede xa non precisa preocuparse da xestión e sincronización de chaves entre dispositivos. +upgradeInfo.pEp.desc=Enigmail xa dispón do Modo Junior <a href="https://pep-project.org/">p≡p</a>. O Modo Junior p≡p permítelle usar o cifrado OpenPGP con tanta transparencia como é posíbel; vostede xa non precisa preocuparse da xestión e sincronización de chaves entre dispositivos. upgradeInfo.bottom.desc=Lea a <a href="https://enigmail.net/home/docu.php">nosa documentación</a> para obter axuda no uso do Enigmail. # pep.missingGnuPG=In order to use Enigmail/p≡p, GnuPG is required. As we could not find it, we suggest to download and install it for you. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/ja/enigmail.properties new/enigmail/lang/ja/enigmail.properties --- old/enigmail/lang/ja/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/ja/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Autocrypt のサポート upgradeInfo.autocrypt.desc=Enigmail は新たな鍵配布標準である <a href="https://autocrypt.org/">Autocrypt</a> をサポートします。Enigmail は Autocrypt に適合したメッセージから自動的に鍵をインポートすることで、メッセージの暗号化を推進します。 upgradeInfo.pEp.title=p≡p (Pretty Easy Privacy) のサポート -upgradeInfo.pEp.desc=Enigmail は <a href="https://pep-project.org/">p≡p Junior Mode</a> をサポートします。現時点では p≡p を手作業でインストールする必要がありますが、将来的に改善される見込みです。p≡p Junior Mode では、OpenPGP によるメッセージの暗号化を透過的に提供します。つまり、鍵の管理やデバイス間での鍵の同期を気にする必要がなくなります。 +upgradeInfo.pEp.desc=Enigmail は <a href="https://pep-project.org/">p≡p Junior Mode</a> をサポートします。p≡p Junior Mode では、OpenPGP によるメッセージの暗号化を透過的に提供します。つまり、鍵の管理やデバイス間での鍵の同期を気にする必要がなくなります。 upgradeInfo.bottom.desc=Enigmail 利用に関する詳細なヘルプは、<a href="https://enigmail.net/home/docu.php">オンラインドキュメント</a> を参照してください。 pep.missingGnuPG=Enigmail/p≡p を利用するためには GnuPG が必要ですが、あなたの環境に GnuPG がインストールされていることを確認できませんでした。GnuPG をダウンロード・インストールすることをお勧めします diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/nl/enigmail.properties new/enigmail/lang/nl/enigmail.properties --- old/enigmail/lang/nl/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/nl/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Ondersteuning voor Autocrypt upgradeInfo.autocrypt.desc=Enigmail ondersteunt nu <a href="https://autocrypt.org/">Autocrypt</a>, een nieuwe standaard om sleutels te verspreiden als onderdeel van verzonden berichten. Enigmail importeert sleutels van Autocrypt-compatibele berichten automatisch, zodat na verloop van tijd meer en meer berichten versleuteld kunnen worden. upgradeInfo.pEp.title=Nieuwe p≡p-juniormodus (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail heeft nu een <a href="https://pep-project.org/">p≡p</a>-juniormodus. Momenteel moet u hiervoor handmatig p≡p installeren; dit zal in toekomstige versies veranderen. Met de p≡p-juniormodus kunt u OpenPGP-versleuteling zo transparant als mogelijk gebruiken; u hoeft zich niet meer te bekommeren om sleutelbeheer en het synchroniseren van sleutels tussen apparaten. +upgradeInfo.pEp.desc=Enigmail heeft nu een <a href="https://pep-project.org/">p≡p</a>-juniormodus. Met de p≡p-juniormodus kunt u OpenPGP-versleuteling zo transparant als mogelijk gebruiken; u hoeft zich niet meer te bekommeren om sleutelbeheer en het synchroniseren van sleutels tussen apparaten. upgradeInfo.bottom.desc=Bezoek <a href="https://enigmail.net/home/docu.php">onze documentatie</a> voor hulp over het gebruik van Enigmail. pep.missingGnuPG=Om Enigmail/p≡p te gebruiken, is GunPG vereist. Omdat we het niet konden vinden, stellen wij voor het voor u te downloaden en installeren. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/pt-BR/enigmail.properties new/enigmail/lang/pt-BR/enigmail.properties --- old/enigmail/lang/pt-BR/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/pt-BR/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Suporte para Auto-encriptação upgradeInfo.autocrypt.desc=O Enigmail agora suporta <a href="https://autocrypt.org/">Criptografia Automática</a>, um novo padrão para distribuir as chave como parte das mensagens enviadas. O Enigmail automaticamente importa as chaves de mensagens compatíveis com a Criptografia Automatica, desta forma mais e mais emials poderão ser criptografados com o passar do tempo. upgradeInfo.pEp.title=Novo p≡p Modo Junior (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail agora contém um modo Júnior <a href="https://pep-project.org/">p≡p</a>. No momento você precisa instalar manualmente o p≡p para este propósito; Isto mudará nas futuras versões. O p≡p modo júnior permite que você use a criptografia OpenPGP o mais transparente possível; você não precisa mais se preocupar com a gerência de chaves e com a sincronização de chaves entre os dispositivos. +upgradeInfo.pEp.desc=Enigmail agora contém um modo Júnior <a href="https://pep-project.org/">p≡p</a>. O p≡p modo júnior permite que você use a criptografia OpenPGP o mais transparente possível; você não precisa mais se preocupar com a gerência de chaves e com a sincronização de chaves entre os dispositivos. upgradeInfo.bottom.desc=Por favor acesse <a href="https://enigmail.net/home/docu.php">noss documentação</a>para obter ajuda no uso do Enigmail. pep.missingGnuPG=Para poder usar o Enigmail/p≡p, o GnuPG é pré-requisito. Assim como não o encontramos instalado, nós sugerimos baixar e fazer a instalação. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/sq/enigmail.properties new/enigmail/lang/sq/enigmail.properties --- old/enigmail/lang/sq/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/sq/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Mbulim për Autocrypt-in upgradeInfo.autocrypt.desc=Enigmail-i tani mbulon <a href="https://autocrypt.org/">Autocrypt</a>, një standard i ri për shpërndarje të kyçeve si pjesë e mesazhit të dërguar. Enigmail-i importon vetvetiu kyçe nga mesazhe që janë në pajtim me Autocrypt-in, në mënyrë që me kalimin e kohës, të mund të fshehtëzohen gjithnjë e më shumë email-e. upgradeInfo.pEp.title=p≡p Junior Mode (Pretty Easy Privacy) e re -upgradeInfo.pEp.desc=Enigmail-i tani përmban një <a href="https://pep-project.org/">p≡p</a> Junior Mode. Për këtë qëllim, hëpërhë lypset të instaloni dorazi p≡p; në versionet e ardhshme kjo do të ndryshojë. p≡p Junior Mode ju lejon të përdorni fshehtëzim OpenPGP në mënyrën më transparente të mundshme; s’keni pse e çani më kokën për administrim kyçesh dhe njëkohësim kyçesh mes pajisjesh. +upgradeInfo.pEp.desc=Enigmail-i tani përmban një <a href="https://pep-project.org/">p≡p</a> Junior Mode. p≡p Junior Mode ju lejon të përdorni fshehtëzim OpenPGP në mënyrën më transparente të mundshme; s’keni pse e çani më kokën për administrim kyçesh dhe njëkohësim kyçesh mes pajisjesh. upgradeInfo.bottom.desc=Për ndihmë rreth përdorimit të Enigmail-it, ju lutemi, vizitoni <a href="https://enigmail.net/home/docu.php">dokumentimin tonë</a>. pep.missingGnuPG=Që të mund të përdorni Enigmail/p≡p, GnuPG-ja është i domosdoshëm. Ngaqë nuk e gjetëm, këshillojmë të shkarkohet dhe të instalohet për ju. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/lang/sv-SE/enigmail.properties new/enigmail/lang/sv-SE/enigmail.properties --- old/enigmail/lang/sv-SE/enigmail.properties 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/lang/sv-SE/enigmail.properties 2018-04-02 13:33:37.000000000 +0200 @@ -785,7 +785,7 @@ upgradeInfo.autocrypt.title=Stöd för Autocrypt upgradeInfo.autocrypt.desc=Enigmail stöder nu <a href="https://autocrypt.org/">Autocrypt</a>, en ny standard för att distribuera nycklar som en del i att skicka meddelanden. Enigmail importerar automatiskt nycklar från Autocrypt-kompatibla meddelanden, så att fler och fler e-postmeddelanden över tiden kan krypteras. upgradeInfo.pEp.title=Nytt p≡p Junior-läge (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail innehåller nu ett <a href="https://pep-project.org/">p≡p</a> Junior-läge. Du behöver för närvarande manuellt installera p≡p för detta ändamål; detta kommer att förändras i en framtida version. p≡p Junior-läge låter dig använda OpenPGP-kryptering så transparent som möjligt; du behöver inte ta hand om nyckelhantering och synkronisering av nycklar mellan enheter längre. +upgradeInfo.pEp.desc=Enigmail innehåller nu ett <a href="https://pep-project.org/">p≡p</a> Junior-läge. p≡p Junior-läge låter dig använda OpenPGP-kryptering så transparent som möjligt; du behöver inte ta hand om nyckelhantering och synkronisering av nycklar mellan enheter längre. upgradeInfo.bottom.desc=Besök <a href="https://enigmail.net/home/docu.php">vår dokumention</a> för hjälp med att använda Enigmail. pep.missingGnuPG=För att kunna använda Enigmail/p≡p krävs GnuPG. Eftersom vi inte kunde hitta det, föreslår vi att vi hämtar och installerar det för dig. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/armor.jsm new/enigmail/package/armor.jsm --- old/enigmail/package/armor.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/armor.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -217,17 +217,17 @@ * Remove all headers from an OpenPGP Armored message and replace them * with a set of new headers. * - * @param text: String - ASCII armored message - * @param headers: Object - key/value pairs of new headers to insert + * @param armorText: String - ASCII armored message + * @param headers: Object - key/value pairs of new headers to insert * * @return String - new armored message */ - replaceArmorHeaders: function(text, headers) { + replaceArmorHeaders: function(armorText, headers) { - text = text.replace(/\r\n/g, "\n"); + let text = armorText.replace(/\r\n/g, "\n"); let i = text.search(/\n/); - if (i < 0) return text; + if (i < 0) return armorText; let m = text.substr(0, i + 1); for (let j in headers) { @@ -235,7 +235,7 @@ } i = text.search(/\n\n/); - if (i < 0) return text; + if (i < 0) return armorText; m += text.substr(i + 1); return m; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/autocrypt.jsm new/enigmail/package/autocrypt.jsm --- old/enigmail/package/autocrypt.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/autocrypt.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -39,6 +39,7 @@ Cu.import("resource://enigmail/keyEditor.jsm"); /*global EnigmailKeyEditor: false */ Cu.import("resource://enigmail/stdlib.jsm"); /*global EnigmailStdlib: false */ Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */ +Cu.import("resource://enigmail/constants.jsm"); /*global EnigmailConstants: false */ var gCreatedSetupIds = []; @@ -108,7 +109,9 @@ } } - if (fromAddr !== paramArr.addr.toLowerCase()) { + paramArr.addr = paramArr.addr.toLowerCase(); + + if (fromAddr !== paramArr.addr) { EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: from Addr " + fromAddr + " != " + paramArr.addr.toLowerCase() + "\n"); resolve(3); @@ -241,21 +244,26 @@ if (keysObj.value) { importedKeys = importedKeys.concat(keysObj.value); + if (keysObj.value.length > 0) { + let key = EnigmailKeyRing.getKeyById(keysObj.value[0]); - // enable encryption if state (prefer-encrypt) is "mutual"; - // otherwise, disable it explicitely - let signEncrypt = (keyArr[i].state === "mutual" ? 1 : 0); - - let ruleObj = { - email: "{" + keyArr[i].email + "}", - keyList: "0x" + keyArr[i].fpr, - sign: signEncrypt, - encrypt: signEncrypt, - pgpMime: 2, - flags: 0 - }; - - EnigmailRules.insertOrUpdateRule(ruleObj); + // enable encryption if state (prefer-encrypt) is "mutual"; + // otherwise, disable it explicitely + let signEncrypt = (keyArr[i].state === "mutual" ? 1 : 0); + + if (key && key.fpr) { + let ruleObj = { + email: "{" + EnigmailConstants.AC_RULE_PREFIX + keyArr[i].email + "}", + keyList: "0x" + key.fpr, + sign: signEncrypt, + encrypt: signEncrypt, + pgpMime: 2, + flags: 0 + }; + + EnigmailRules.insertOrUpdateRule(ruleObj); + } + } } } } @@ -370,6 +378,12 @@ let keyData = EnigmailKeyRing.extractSecretKey(true, "0x" + key.fpr, {}, {}); + if (!keyData || keyData.length === 0) { + EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: no key found for " + identity.email + "\n"); + reject(1); + return; + } + let ac = EnigmailFuncs.getAccountForIdentity(identity); let preferEncrypt = ac.incomingServer.getIntValue("acPreferEncrypt") > 0 ? "mutual" : "nopreference"; @@ -377,6 +391,12 @@ 'Autocrypt-Prefer-Encrypt': preferEncrypt }) + '\r\n'; + if (!innerMsg || innerMsg.length === 0) { + EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: empty key data after replaceArmorHeaders\n"); + reject(1); + return; + } + let bkpCode = createBackupCode(); let enc = { data: innerMsg, @@ -415,8 +435,10 @@ */ sendSetupMessage: function(identity) { EnigmailLog.DEBUG("autocrypt.jsm: sendSetupMessage()\n"); + + let self = this; return new Promise((resolve, reject) => { - this.createSetupMessage(identity).then(res => { + self.createSetupMessage(identity).then(res => { let composeFields = Cc["@mozilla.org/messengercompose/composefields;1"].createInstance(Ci.nsIMsgCompFields); composeFields.characterSet = "UTF-8"; composeFields.messageId = EnigmailRNG.generateRandomString(27) + "-enigmail"; @@ -712,7 +734,7 @@ connection.executeTransaction(function _trx() { connection.execute("insert into autocrypt_keydata (email, keydata, fpr, type, last_seen_autocrypt, last_seen, state) values " + "(:email, :keyData, :fpr, :type, :lastAutocrypt, :lastSeen, :state)", { - email: paramsArr.addr, + email: paramsArr.addr.toLowerCase(), keyData: paramsArr.keydata, fpr: ("fpr" in paramsArr ? paramsArr.fpr : ""), type: paramsArr.type, @@ -779,7 +801,7 @@ updateStr = "update autocrypt_keydata set state = :state, keydata = :keyData, last_seen_autocrypt = :lastAutocrypt, " + "fpr = :fpr, last_seen = :lastSeen where email = :email and type = :type"; updateObj = { - email: paramsArr.addr, + email: paramsArr.addr.toLowerCase(), state: paramsArr["prefer-encrypt"], keyData: paramsArr.keydata, fpr: ("fpr" in paramsArr ? paramsArr.fpr : ""), @@ -791,7 +813,7 @@ else { updateStr = "update autocrypt_keydata set state = :state, last_seen = :lastSeen where email = :email and type = :type"; updateObj = { - email: paramsArr.addr, + email: paramsArr.addr.toLowerCase(), state: paramsArr["prefer-encrypt"], type: paramsArr.type, lastSeen: paramsArr.dateSent.toJSON() @@ -919,7 +941,7 @@ function updateRuleForEmail(email, preferEncrypt) { - let node = EnigmailRules.getRuleByEmail(email); + let node = EnigmailRules.getRuleByEmail(EnigmailConstants.AC_RULE_PREFIX + email); if (node) { let signEncrypt = (preferEncrypt === "mutual" ? "1" : "0"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/configure.jsm new/enigmail/package/configure.jsm --- old/enigmail/package/configure.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/configure.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -141,6 +141,26 @@ } /** + * set the Autocrypt prefer-encrypt option to "mutual" for all existing + * accounts + */ +function setAutocryptForOldAccounts() { + try { + let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); + let changedSomething = false; + + for (let acct = 0; acct < accountManager.accounts.length; acct++) { + let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount); + if (ac.incomingServer.type.search(/(pop3|imap|movemail)/) >= 0) { + ac.incomingServer.setIntValue("acPreferEncrypt", 1); + } + } + } + catch (ex) {} +} + + +/** * Determine if pEp is avaliable, and if it is not available, * whether it can be downaloaded and installed. This does not * trigger installation. @@ -238,6 +258,9 @@ if (vc.compare(oldVer, "2.0a1pre") < 0) { this.upgradeTo20(); } + if (vc.compare(oldVer, "2.0.1a2pre") < 0) { + this.upgradeTo201(); + } } EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion()); @@ -248,5 +271,9 @@ EnigmailPrefs.setPref("juniorMode", 0); // disable pEp if upgrading from older version replaceKeyIdWithFpr(); displayUpgradeInfo(); + }, + + upgradeTo201: function() { + setAutocryptForOldAccounts(); } }; 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-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/constants.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -129,6 +129,7 @@ /* attachment handling */ /* per-recipient rules */ + AC_RULE_PREFIX: "autocrypt://", CARD_PIN_CHANGE: 1, CARD_PIN_UNBLOCK: 2, 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-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/decryption.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -98,6 +98,9 @@ var fromAddr = win.gFolderDisplay.selectedMessage.author; try { fromAddr = EnigmailFuncs.stripEmail(fromAddr); + if (fromAddr.search(/@.*[\(\)]/) >= 0) { + fromAddr = false; + } } catch (ex) { fromAddr = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/funcs.jsm new/enigmail/package/funcs.jsm --- old/enigmail/package/funcs.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/funcs.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -23,6 +23,7 @@ Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */ Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */ Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */ +Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */ var gTxtConverter = null; @@ -312,7 +313,7 @@ */ getProtectedSubjectText: function() { if (EnigmailPrefs.getPref("protectedSubjectText").length > 0) { - return EnigmailPrefs.getPref("protectedSubjectText"); + return EnigmailData.convertToUnicode(EnigmailPrefs.getPref("protectedSubjectText"), "utf-8"); } else { return EnigmailLocale.getString("msgCompose.encryptedSubjectStub"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/gpg.jsm new/enigmail/package/gpg.jsm --- old/enigmail/package/gpg.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/gpg.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -28,7 +28,7 @@ Cu.import("resource://enigmail/lazy.jsm"); /*global EnigmailLazy: false */ const getGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); -const MINIMUM_GPG_VERSION = "2.0.16"; +const MINIMUM_GPG_VERSION = "2.0.14"; const GPG_BATCH_OPT_LIST = ["--batch", "--no-tty", "--status-fd", "2"]; function pushTrimmedStr(arr, str, splitStr) { @@ -122,7 +122,7 @@ @param featureName: String; one of the following values: version-supported - is the gpg version supported at all (true for gpg >= 2.0.10) - supports-gpg-agent - is gpg-agent is usually provided (true for gpg >= 2.0) + supports-gpg-agent - is gpg-agent is auto-started (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) @@ -154,7 +154,7 @@ case "version-supported": return EnigmailVersioning.greaterThanOrEqual(gpgVersion, MINIMUM_GPG_VERSION); case "supports-gpg-agent": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0"); + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.16"); case "keygen-passphrase": return EnigmailVersioning.lessThan(gpgVersion, "2.1") || EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.2"); case "genkey-no-protection": diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/gpgAgent.jsm new/enigmail/package/gpgAgent.jsm --- old/enigmail/package/gpgAgent.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/gpgAgent.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -647,6 +647,12 @@ EnigmailLog.DEBUG("gpgAgent.jsm: detectGpgAgent: no GPG_AGENT_INFO variable set\n"); EnigmailGpgAgent.gpgAgentInfo.preStarted = false; + if (!getEnigmailGpg().getGpgFeature("supports-gpg-agent")) { + esvc.initializationError = EnigmailLocale.getString("gpgAgent.noAutostart", getEnigmailGpg().agentVersion); + EnigmailLog.ERROR("gpgAgent.jsm: Error - " + esvc.initializationError + "\n"); + throw Components.results.NS_ERROR_FAILURE; + } + var command = null; var outStr = ""; var errorStr = ""; @@ -727,6 +733,8 @@ let homeDirObj = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); EnigmailFiles.initPath(homeDirObj, homeDir); + homeDirObj.normalize(); // resolve symlinks etc. + let dirType = EnigmailFiles.ensureWritableDirectory(homeDirObj, 0x1C0); // 0700 let errMsg = ""; switch (dirType) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/hash.jsm new/enigmail/package/hash.jsm --- old/enigmail/package/hash.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/hash.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -60,11 +60,15 @@ } }; + let errorMsgObj = {}; + let statusFlagsObj = {}; const proc = EnigmailEncryption.encryptMessageStart(win, testUiFlags, fromMailAddr, "", "", hashAlgo, sendFlags, - listener, {}, {}); + listener, statusFlagsObj, errorMsgObj); if (!proc) { + hashAlgoObj.errorMsg = errorMsgObj.value; + hashAlgoObj.statusFlags = statusFlagsObj.value; return 1; } 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-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/install.rdf 2018-04-02 13:33:37.000000000 +0200 @@ -5,7 +5,7 @@ <Description about="urn:mozilla:install-manifest"> em:id{847b3a00-7ab1-11d4-8f02-006008948af5} - em:version2.0 + em:version2.0.1 em:type2 <!-- type = extension --> em:bootstraptrue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/keyEditor.jsm new/enigmail/package/keyEditor.jsm --- old/enigmail/package/keyEditor.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/keyEditor.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -535,7 +535,11 @@ }, addPhotoCallback, null, - callbackFunc); + function _f(returnCode, errorMsg) { + runKeyTrustCheck(); + EnigmailKeyRing.updateKeys([keyId]); + callbackFunc(returnCode, errorMsg); + }); }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/keyRing.jsm new/enigmail/package/keyRing.jsm --- old/enigmail/package/keyRing.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/keyRing.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -695,7 +695,7 @@ * @param keyBlock String - data containing key * @param keyId String - key ID expected to import (no meaning) * @param errorMsgObj Object - o.value will contain error message from GnuPG - * @param importedKeysObj Object - [OPTIONAL] o.value will contain an array of the key IDs imported + * @param importedKeysObj Object - [OPTIONAL] o.value will contain an array of the key FPRs imported * * @return Integer - exit code: * ExitCode == 0 => success @@ -818,6 +818,12 @@ } if (foundPicture >= 0 && foundPicture === photoNumber) { + if (photoDataObj.value.search(/^gpg: /) === 0) { + // skip disturbing gpg output + let i = photoDataObj.value.search(/\n/) + 1; + skipData += i; + } + const pictureData = photoDataObj.value.substr(16 + skipData, imgSize); if (!pictureData.length) { return null; @@ -833,13 +839,17 @@ const fileStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); fileStream.init(picFile, flags, DEFAULT_FILE_PERMS, 0); if (fileStream.write(pictureData, pictureData.length) !== pictureData.length) { + fileStream.close(); throw Components.results.NS_ERROR_FAILURE; } fileStream.flush(); fileStream.close(); - return picFile; + // delete picFile upon exit + let extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher); + extAppLauncher.deleteTemporaryFileOnExit(picFile); + return picFile; } catch (ex) { exitCodeObj.value = -1; 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-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/mimeDecrypt.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -424,7 +424,8 @@ EnigmailConstants.UI_PGP_MIME, this.returnStatus); - if (this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_FAILED) { + if ((this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_FAILED) || + !(this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_OKAY)) { this.decryptedData = ""; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/mimeEncrypt.jsm new/enigmail/package/mimeEncrypt.jsm --- old/enigmail/package/mimeEncrypt.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/mimeEncrypt.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -214,8 +214,13 @@ hashAlgoObj) === 0) { this.hashAlgorithm = hashAlgoObj.value; } - else + else { + if ("statusFlags" in hashAlgoObj && hashAlgoObj.statusFlags !== 0 && hashAlgoObj.errorMsg) { + EnigmailDialog.alert(this.win, hashAlgoObj.errorMsg); + } + throw Cr.NS_ERROR_FAILURE; + } } } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/pEpDecrypt.jsm new/enigmail/package/pEpDecrypt.jsm --- old/enigmail/package/pEpDecrypt.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/pEpDecrypt.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -24,6 +24,7 @@ Cu.import("resource://enigmail/mimeVerify.jsm"); /*global EnigmailVerify: false */ Cu.import("resource://enigmail/uris.jsm"); /*global EnigmailURIs: false */ Cu.import("resource://enigmail/streams.jsm"); /*global EnigmailStreams: false */ +Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */ Cu.import("resource:///modules/jsmime.jsm"); /*global jsmime: false*/ Cu.import("resource://enigmail/singletons.jsm"); /*global EnigmailSingletons: false */ @@ -244,8 +245,9 @@ this.decryptedData = 'Content-Type: multipart/mixed; boundary="' + wrapper + '"\r\n' + 'Content-Disposition: inline\r\n\r\n' + '--' + wrapper + '\r\n' + - "Content-Type: text/plain\r\n\r\n" + EnigmailLocale.getString("pEpDecrypt.cannotDecrypt") + '\r\n' + - '--' + wrapper + '--\r\n'; + 'Content-Type: text/plain; charset="UTF-8"\r\n\r\n' + + EnigmailData.convertFromUnicode(EnigmailLocale.getString("pEpDecrypt.cannotDecrypt"), "UTF-8") + + '\r\n--' + wrapper + '--\r\n'; this.sourceData = "Content-Type: " + this.contentType + "\r\n\r\n" + this.sourceData; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/protocolHandler.jsm new/enigmail/package/protocolHandler.jsm --- old/enigmail/package/protocolHandler.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/protocolHandler.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -53,7 +53,7 @@ QueryInterface: XPCOMUtils.generateQI([nsIProtocolHandler]), newURI: function(aSpec, originCharset, aBaseURI) { - EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newURI: aSpec='" + aSpec + "'\n"); + EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.newURI: aSpec='" + aSpec + "'\n"); // cut of any parameters potentially added to the URI; these cannot be handled if (aSpec.substr(0, 14) == "enigmail:dummy") aSpec = "enigmail:dummy"; @@ -94,7 +94,7 @@ }, newChannel: function(aURI) { - EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newChannel: URI='" + aURI.spec + "'\n"); + EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.newChannel: URI='" + aURI.spec + "'\n"); var messageId = EnigmailData.extractMessageId(aURI.spec); var mimeMessageId = EnigmailData.extractMimeMessageId(aURI.spec); @@ -114,7 +114,7 @@ contentCharset = messageUriObj.contentCharset; contentData = messageUriObj.contentData; - EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newChannel: messageURL=" + messageUriObj.originalUrl + ", content length=" + contentData.length + ", " + contentType + ", " + + EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.newChannel: messageURL=" + messageUriObj.originalUrl + ", content length=" + contentData.length + ", " + contentType + ", " + contentCharset + "\n"); // do NOT delete the messageUriObj now from the list, this will be done once the message is unloaded (fix for bug 9730). @@ -135,22 +135,6 @@ return channel; } - if (aURI.spec.indexOf(aURI.scheme + "://photo/") === 0) { - // handle photo ID - contentType = "image/jpeg"; - contentCharset = ""; - let keyId = aURI.spec.substr(17); - let exitCodeObj = {}; - let errorMsgObj = {}; - let f = EnigmailKeyRing.getPhotoFile(keyId, 0, exitCodeObj, errorMsgObj); - if (exitCodeObj.value === 0) { - let channel = EnigmailStreams.newFileChannel(aURI, f, "image/jpeg", true); - return channel; - } - - return null; - } - if (aURI.spec == aURI.scheme + ":dummy") { // Dummy PKCS7 content (to access mimeEncryptedClass) return EnigmailStreams.newStringChannel(aURI, "message/rfc822", "", gDummyPKCS7); @@ -207,8 +191,8 @@ }, handleMimeMessage: function(messageId) { - // EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.handleMimeMessage: messageURL="+messageUriObj.originalUrl+", content length="+contentData.length+", "+contentType+", "+contentCharset+"\n"); - EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.handleMimeMessage: messageURL=, content length=, , \n"); + // EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.handleMimeMessage: messageURL="+messageUriObj.originalUrl+", content length="+contentData.length+", "+contentType+", "+contentCharset+"\n"); + EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.handleMimeMessage: messageURL=, content length=, , \n"); }, allowPort: function(port, scheme) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/package/rules.jsm new/enigmail/package/rules.jsm --- old/enigmail/package/rules.jsm 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/package/rules.jsm 2018-04-02 13:33:37.000000000 +0200 @@ -454,6 +454,12 @@ let addr = openList[openIndex].addr; // search with { and } around because these are used a begin and end markers in the rules: let idx = ('{' + addr + '}').indexOf(ruleEmailElem); + + if (idx < 0) { + addr = EnigmailConstants.AC_RULE_PREFIX + addr; + idx = ('{' + addr + '}').indexOf(ruleEmailElem); + } + if (idx >= 0) { if (ruleEmailElem == rule.email) { EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys(): for '" + addr + "' ('" + openList[openIndex].orig + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/ui/content/enigmailKeyManager.js new/enigmail/ui/content/enigmailKeyManager.js --- old/enigmail/ui/content/enigmailKeyManager.js 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/ui/content/enigmailKeyManager.js 2018-04-02 13:33:37.000000000 +0200 @@ -127,7 +127,17 @@ } function reloadKeys() { - buildKeyList(false); + let i = 0; + let c = Components.stack; + + while (c) { + if (c.name == "reloadKeys") i++; + c = c.caller; + } + + // detect recursion and don't continue if too much recursion + // this can happen if the key list is empty + if (i < 4) buildKeyList(false); } function buildKeyList(refresh) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enigmail/ui/content/enigmailMessengerOverlay.xul new/enigmail/ui/content/enigmailMessengerOverlay.xul --- old/enigmail/ui/content/enigmailMessengerOverlay.xul 2018-03-25 14:48:39.000000000 +0200 +++ new/enigmail/ui/content/enigmailMessengerOverlay.xul 2018-04-02 13:33:37.000000000 +0200 @@ -214,7 +214,7 @@ <menupopup id="mailContext">