diff -Nru enigmail-2.1.6+ds1/config/autoconf.mk.in enigmail-2.2.4/config/autoconf.mk.in --- enigmail-2.1.6+ds1/config/autoconf.mk.in 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/config/autoconf.mk.in 2020-10-01 13:32:58.000000000 +0000 @@ -11,20 +11,12 @@ TESTS = @enable_tests@ FIX_LANGUAGES = @enable_fix_lang@ ENABLE_LANG = @enable_lang@ -ENABLE_POSTBOX = @enable_postbox@ +ENABLE_POSTBOX = srcdir = @srcdir@ -JSUNIT = $(DEPTH)/util/run-jsunit $(PERL) $(TB_PATH) $(TB_ARGS) - -ifeq ($(ENABLE_POSTBOX),yes) -TARGET_TOOL=pbx -INCLUDE = $(DEPTH)/include/postbox.h -BUILD = $(DEPTH)/build-pbx -else TARGET_TOOL=tbird INCLUDE = $(DEPTH)/include/tbird.h BUILD = $(DEPTH)/build-tb -endif DIST = $(BUILD)/dist diff -Nru enigmail-2.1.6+ds1/configure enigmail-2.2.4/configure --- enigmail-2.1.6+ds1/configure 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/configure 2020-10-01 13:32:58.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 2.1.6. +# Generated by GNU Autoconf 2.69 for enigmail 2.2.4. # # Report bugs to . # @@ -579,8 +579,8 @@ # Identity of this package. PACKAGE_NAME='enigmail' PACKAGE_TARNAME='enigmail' -PACKAGE_VERSION='2.1.6' -PACKAGE_STRING='enigmail 2.1.6' +PACKAGE_VERSION='2.2.4' +PACKAGE_STRING='enigmail 2.2.4' PACKAGE_BUGREPORT='https://www.enigmail.net' PACKAGE_URL='' @@ -1208,7 +1208,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.1.6 to adapt to many kinds of systems. +\`configure' configures enigmail 2.2.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1275,7 +1275,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of enigmail 2.1.6:";; + short | recursive ) echo "Configuration of enigmail 2.2.4:";; esac cat <<\_ACEOF @@ -1358,7 +1358,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -enigmail configure 2.1.6 +enigmail configure 2.2.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1375,7 +1375,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.1.6, which was +It was created by enigmail $as_me 2.2.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2615,7 +2615,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 2.1.6, which was +This file was extended by enigmail $as_me 2.2.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2668,7 +2668,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 2.1.6 +enigmail config.status 2.2.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru enigmail-2.1.6+ds1/configure.ac enigmail-2.2.4/configure.ac --- enigmail-2.1.6+ds1/configure.ac 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/configure.ac 2020-10-01 13:32:58.000000000 +0000 @@ -2,7 +2,7 @@ AC_PREREQ(2.61) min_automake_version="1.10" -AC_INIT([enigmail],[2.1.6], [https://www.enigmail.net]) +AC_INIT([enigmail],[2.2.4], [https://www.enigmail.net]) AC_PATH_PROG(PYTHON, "python3") diff -Nru enigmail-2.1.6+ds1/debian/changelog enigmail-2.2.4/debian/changelog --- enigmail-2.1.6+ds1/debian/changelog 2020-04-12 01:43:29.000000000 +0000 +++ enigmail-2.2.4/debian/changelog 2020-10-07 20:26:50.000000000 +0000 @@ -1,3 +1,39 @@ +enigmail (2:2.2.4-0ubuntu0.20.04.1) focal; urgency=medium + + * new upstream release + + -- Olivier Tilloy Wed, 07 Oct 2020 22:26:50 +0200 + +enigmail (2:2.2.2-0ubuntu1) groovy; urgency=medium + + * new upstream release + + -- Olivier Tilloy Sun, 30 Aug 2020 20:18:50 +0200 + +enigmail (2:2.2.1-0ubuntu1) groovy; urgency=medium + + * new upstream release + * drop two upstream patches that are part of the release + - d/p/upstream-62407f7732da8a6761277a51f8afb7d8e864169c.patch + - d/p/upstream-c159ba95860590d1da923c67c86cfb68277ec766.patch + + -- Olivier Tilloy Mon, 24 Aug 2020 16:46:49 +0200 + +enigmail (2:2.2-0ubuntu1) groovy; urgency=medium + + * new upstream release for Thunderbird 78 (LP: #1888157) + * drop a number of obsolete patches + * build-depend on eslint and node-text-table to have tests run at build time, + and add a patch to fix problems raised by it + - d/p/0013-fix-eslint-errors.patch + * remove obsolete autopkgtests + * depend on thunderbird >= 78.0 + * cherry-pick two unreleased upstream commits + - d/p/upstream-62407f7732da8a6761277a51f8afb7d8e864169c.patch + - d/p/upstream-c159ba95860590d1da923c67c86cfb68277ec766.patch + + -- Olivier Tilloy Fri, 07 Aug 2020 08:09:11 +0200 + enigmail (2:2.1.6+ds1-1) unstable; urgency=medium * new upstream release diff -Nru enigmail-2.1.6+ds1/debian/control enigmail-2.2.4/debian/control --- enigmail-2.1.6+ds1/debian/control 2020-01-22 19:53:06.000000000 +0000 +++ enigmail-2.2.4/debian/control 2020-10-07 15:48:06.000000000 +0000 @@ -8,6 +8,8 @@ Daniel Kahn Gillmor , Build-Depends: debhelper-compat (= 12), + eslint, + node-text-table, perl, python3, unzip, @@ -23,7 +25,7 @@ Depends: gnupg (>= 2.2.8-2~), gnupg-agent, - thunderbird (>= 1:68.0) | icedove (>= 1:68.0), + thunderbird (>= 1:78.0) | icedove (>= 1:78.0), ${misc:Depends}, Recommends: pinentry-x11, @@ -35,8 +37,8 @@ icedove, thunderbird, Breaks: - icedove (<< 1:68.0), - thunderbird (<< 1:68.0), + icedove (<< 1:78.0), + thunderbird (<< 1:78.0), Description: GPG support for Thunderbird and Debian Icedove OpenPGP extension for Thunderbird. Enigmail allows users to access the features provided by the popular GnuPG software from within Thunderbird. diff -Nru enigmail-2.1.6+ds1/debian/patches/0001-avoid-eslint-during-buildtest.patch enigmail-2.2.4/debian/patches/0001-avoid-eslint-during-buildtest.patch --- enigmail-2.1.6+ds1/debian/patches/0001-avoid-eslint-during-buildtest.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0001-avoid-eslint-during-buildtest.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Mon, 25 Jan 2016 13:22:44 -0500 -Subject: avoid eslint during buildtest - -eslint is not yet in debian (see https://bugs.debian.org/743404). -once it is packaged, we should remove this patch and allow the full -testsuite to run on the debian buildd infrastructure. ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 308c34a..f74f9e5 100644 ---- a/Makefile -+++ b/Makefile -@@ -43,7 +43,7 @@ unit: - make -C ui/tests - make -C ipc/tests - --test: eslint check unit -+test: check unit - - clean: - rm -f build/$(XPIFILE) .eslintcache diff -Nru enigmail-2.1.6+ds1/debian/patches/0003-avoid-OpenPGP.js-when-building.patch enigmail-2.2.4/debian/patches/0003-avoid-OpenPGP.js-when-building.patch --- enigmail-2.1.6+ds1/debian/patches/0003-avoid-OpenPGP.js-when-building.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0003-avoid-OpenPGP.js-when-building.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,506 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Wed, 30 May 2018 15:31:50 -0400 -Subject: avoid OpenPGP.js when building - -GnuPG should not depend on OpenPGP.js. - -This is an attempt to strip out whatever dependency it had and make it -work with gpg alone. - -There is no need for getStrippedKey at all -- it's never invoked in -the codebase outside of getMinimalPubKey, and it should not be -relevant there, since we are already filtering appropriately. - -Since we explicitly depend on gnupg 2.2.8-2 or greater, we are fine -with these expectations. - -We also don't want to try to test openpgp.js at all. ---- - package/cryptoAPI/Makefile | 1 - - package/cryptoAPI/README.txt | 8 +- - package/cryptoAPI/gnupg.js | 67 +++------------ - package/cryptoAPI/openpgp-js.js | 183 ---------------------------------------- - package/tests/main.js | 3 +- - package/tests/openpgpjs-test.js | 77 ----------------- - stdlib/Makefile | 6 +- - util/genxpi | 3 - - 8 files changed, 19 insertions(+), 329 deletions(-) - delete mode 100644 package/cryptoAPI/openpgp-js.js - delete mode 100644 package/tests/openpgpjs-test.js - -diff --git a/package/cryptoAPI/Makefile b/package/cryptoAPI/Makefile -index 7e8cfd2..12c2e6a 100644 ---- a/package/cryptoAPI/Makefile -+++ b/package/cryptoAPI/Makefile -@@ -14,7 +14,6 @@ MODFILES = \ - gnupg-decryption.jsm \ - gnupg-keylist.jsm \ - gnupg-key.jsm \ -- openpgp-js.js \ - interface.js - - GENFILES = $(addprefix $(GENDIR)/,$(MODFILES)) -diff --git a/package/cryptoAPI/README.txt b/package/cryptoAPI/README.txt -index 7bf86ef..003ee3b 100644 ---- a/package/cryptoAPI/README.txt -+++ b/package/cryptoAPI/README.txt -@@ -17,8 +17,8 @@ Class Hierarchy - CryptoAPI (interface.js) - | - |----- OpenPGPjsCryptoAPI (openpgp-js.js) -- | | -- | |-- GnuPGCryptoAPI (gnupg.js) -+ | -+ |----- GnuPGCryptoAPI (gnupg.js) - | - |----- [SequoiaCryptoAPI (tbd)] - -@@ -27,8 +27,8 @@ CryptoAPI is the generic API that does not contain any functionality, except - for sync(). - - - OpenPGPjsCryptoAPI holds the implementation for OpenPGP.js (https://openpgpjs.org/). --- GnuPGCryptoAPI holds the implementation for GnuPG (https://gnupg.org/). Some of its functionality -- bases on OpenPGP.js. -+ (OpenPGP.js is not shipped by Debian, see https://bugs.debian.org/787774) -+- GnuPGCryptoAPI holds the implementation for GnuPG (https://gnupg.org/). - - SequoiaCryptoAPI will maybe hold in the future the implementation for Sequoia (https://sequoia-pgp.org/). - - -diff --git a/package/cryptoAPI/gnupg.js b/package/cryptoAPI/gnupg.js -index 3f48354..93d712a 100644 ---- a/package/cryptoAPI/gnupg.js -+++ b/package/cryptoAPI/gnupg.js -@@ -11,13 +11,11 @@ var EXPORTED_SYMBOLS = ["getGnuPGAPI"]; - - var Services = Components.utils.import("resource://gre/modules/Services.jsm").Services; - --// Load OpenPGP.js (including generic) API --Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/openpgp-js.js", -- null, "UTF-8"); /* global OpenPGPjsCryptoAPI: false */ -- --/* Globals loaded from openpgp-js.js: */ --/* global getOpenPGP: false, EnigmailLog: false */ -+// Load generic API -+Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/interface.js", -+ null, "UTF-8"); /* global CryptoAPI */ - -+const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; - const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; - const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; - const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -@@ -46,7 +44,7 @@ const { - * GnuPG implementation of CryptoAPI - */ - --class GnuPGCryptoAPI extends OpenPGPjsCryptoAPI { -+class GnuPGCryptoAPI extends CryptoAPI { - constructor() { - super(); - this.api_name = "GnuPG"; -@@ -172,46 +170,14 @@ class GnuPGCryptoAPI extends OpenPGPjsCryptoAPI { - const statusObj = {}; - const exitCodeObj = {}; - let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args); -- let exportOK = true; - let keyBlock = res.stdoutData; - -- if (EnigmailGpg.getGpgFeature("export-result")) { -- // GnuPG 2.1.10+ -- let r = new RegExp("^\\[GNUPG:\\] EXPORTED " + fpr, "m"); -- if (res.stderrData.search(r) < 0) { -- retObj.exitCode = 2; -- retObj.errorMsg = EnigmailLocale.getString("failKeyExtract"); -- exportOK = false; -- } -- } else { -- // GnuPG older than 2.1.10 -- if (keyBlock.length < 50) { -- retObj.exitCode = 2; -- retObj.errorMsg = EnigmailLocale.getString("failKeyExtract"); -- exportOK = false; -- } -+ let r = new RegExp("^\\[GNUPG:\\] EXPORTED " + fpr, "m"); -+ if (res.stderrData.search(r) < 0) { -+ retObj.exitCode = 2; -+ retObj.errorMsg = EnigmailLocale.getString("failKeyExtract"); - } -- -- if (EnigmailGpg.getGpgFeature("export-specific-uid")) { -- // GnuPG 2.2.9+ -- retObj.keyData = btoa(keyBlock); -- return retObj; -- } -- -- // GnuPG < 2.2.9 -- if (exportOK) { -- let minKey = await this.getStrippedKey(keyBlock, email); -- if (minKey) { -- minimalKeyBlock = btoa(String.fromCharCode.apply(null, minKey)); -- } -- -- if (!minimalKeyBlock) { -- retObj.exitCode = 1; -- retObj.errorMsg = EnigmailLocale.getString("failKeyNoSubkey"); -- } -- } -- -- retObj.keyData = minimalKeyBlock; -+ retObj.keyData = btoa(keyBlock); - return retObj; - } - -@@ -431,20 +397,11 @@ class GnuPGCryptoAPI extends OpenPGPjsCryptoAPI { - } - - async getKeyListFromKeyBlock(keyBlockStr) { -- -- let res; -- try { -- res = await getGpgKeyData(keyBlockStr); -- } catch (ex) { -- if (ex === "unsupported") { -- res = await this.OPENPGPjs_getKeyListFromKeyBlock(keyBlockStr); -- } else throw ex; -- } -- return res; -+ return getGpgKeyData(keyBlockStr); - } - - } - - function getGnuPGAPI() { - return new GnuPGCryptoAPI(); --} -\ No newline at end of file -+} -diff --git a/package/cryptoAPI/openpgp-js.js b/package/cryptoAPI/openpgp-js.js -deleted file mode 100644 -index 0203b5d..0000000 ---- a/package/cryptoAPI/openpgp-js.js -+++ /dev/null -@@ -1,183 +0,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 -- * file, You can obtain one at http://mozilla.org/MPL/2.0/. -- */ -- -- --"use strict"; -- --//var EXPORTED_SYMBOLS = ["getOpenPGPjsAPI"]; -- -- --var Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; --const EnigmailLog = Cu.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; --const EnigmailLazy = Cu.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -- --const getOpenPGP = EnigmailLazy.loader("enigmail/openpgp.jsm", "EnigmailOpenPGP"); --const getArmor = EnigmailLazy.loader("enigmail/armor.jsm", "EnigmailArmor"); -- --// Load generic API --Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/interface.js", -- null, "UTF-8"); /* global CryptoAPI */ -- -- --/** -- * OpenPGP.js implementation of CryptoAPI -- */ -- --class OpenPGPjsCryptoAPI extends CryptoAPI { -- constructor() { -- super(); -- this.api_name = "OpenPGP.js"; -- } -- -- async getStrippedKey(armoredKey, emailAddr) { -- EnigmailLog.DEBUG("openpgp-js.js: getStrippedKey()\n"); -- -- let searchUid = undefined; -- if (emailAddr) { -- if (emailAddr.search(/^<.{1,500}>$/) < 0) { -- searchUid = `<${emailAddr}>`; -- } else searchUid = emailAddr; -- } -- -- try { -- const openpgp = getOpenPGP().openpgp; -- let msg = await openpgp.key.readArmored(armoredKey); -- -- if (!msg || msg.keys.length === 0) { -- if (msg.err) { -- EnigmailLog.writeException("openpgp-js.js", msg.err[0]); -- } -- return null; -- } -- -- let key = msg.keys[0]; -- let uid = await key.getPrimaryUser(null, searchUid); -- if (!uid || !uid.user) return null; -- -- let signSubkey = await key.getSigningKey(); -- let encSubkey = await key.getEncryptionKey(); -- /* -- let encSubkey = null, -- signSubkey = null; -- -- for (let i = 0; i < key.subKeys.length; i++) { -- if (key.subKeys[i].subKey === encSubkeyPacket) { -- encSubkey = key.subKeys[i]; -- break; -- } -- } -- if (!encSubkey) return null; -- -- if (!signSubkeyPacket.keyid) { -- for (let i = 0; i < key.subKeys.length; i++) { -- if (key.subKeys[i].subKey === signSubkeyPacket) { -- signSubkey = key.subKeys[i]; -- break; -- } -- } -- if (!signSubkey) return null; -- } -- */ -- -- let p = new openpgp.packet.List(); -- p.push(key.primaryKey); -- p.concat(uid.user.toPacketlist()); -- if (key !== signSubkey) { -- p.concat(signSubkey.toPacketlist()); -- } -- if (key !== encSubkey) { -- p.concat(encSubkey.toPacketlist()); -- } -- -- return p.write(); -- } catch (ex) { -- EnigmailLog.DEBUG("openpgp-js.js: getStrippedKey: ERROR " + ex.message + "\n" + ex.stack + "\n"); -- } -- return null; -- } -- -- async getKeyListFromKeyBlock(keyBlockStr) { -- return await this.OPENPGPjs_getKeyListFromKeyBlockkeyBlockStr(keyBlockStr); -- } -- -- async OPENPGPjs_getKeyListFromKeyBlock(keyBlockStr) { -- EnigmailLog.DEBUG("openpgp-js.js: getKeyListFromKeyBlock()\n"); -- const EnigmailTime = ChromeUtils.import("chrome://enigmail/content/modules/time.jsm").EnigmailTime; -- -- const SIG_TYPE_REVOCATION = 0x20; -- -- let keyList = []; -- let key = {}; -- let blocks; -- let isBinary = false; -- const EOpenpgp = getOpenPGP(); -- -- if (keyBlockStr.search(/-----BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK-----/) >= 0) { -- blocks = getArmor().splitArmoredBlocks(keyBlockStr); -- } else { -- isBinary = true; -- blocks = [EOpenpgp.enigmailFuncs.bytesToArmor(EOpenpgp.openpgp.enums.armor.public_key, keyBlockStr)]; -- } -- -- for (let b of blocks) { -- let m = await EOpenpgp.openpgp.message.readArmored(b); -- -- for (let i = 0; i < m.packets.length; i++) { -- let packetType = EOpenpgp.openpgp.enums.read(EOpenpgp.openpgp.enums.packet, m.packets[i].tag); -- switch (packetType) { -- case "publicKey": -- case "secretKey": -- key = { -- id: m.packets[i].getKeyId().toHex().toUpperCase(), -- fpr: m.packets[i].getFingerprint().toUpperCase(), -- uids: [], -- created: EnigmailTime.getDateTime(m.packets[i].getCreationTime().getTime()/1000, true, false), -- name: null, -- isSecret: false, -- revoke: false -- }; -- -- if (!(key.id in keyList)) { -- keyList[key.id] = key; -- } -- -- if (packetType === "secretKey") { -- keyList[key.id].isSecret = true; -- } -- break; -- case "userid": -- if (!key.name) { -- key.name = m.packets[i].userid.replace(/[\r\n]+/g, " "); -- } -- else { -- key.uids.push(m.packets[i].userid.replace(/[\r\n]+/g, " ")); -- } -- break; -- case "signature": -- if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) { -- let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase(); -- if (keyId in keyList) { -- keyList[keyId].revoke = true; -- } else { -- keyList[keyId] = { -- revoke: true, -- id: keyId -- }; -- } -- } -- break; -- } -- } -- } -- -- return keyList; -- } --} -- -- --function getOpenPGPjsAPI() { -- return new OpenPGPjsCryptoAPI(); --} -\ No newline at end of file -diff --git a/package/tests/main.js b/package/tests/main.js -index fd68452..9b9397f 100644 ---- a/package/tests/main.js -+++ b/package/tests/main.js -@@ -57,6 +57,5 @@ execTest("rng-test.js"); - execTest("dns-test.js"); - execTest("filters-test.js"); - execTest("webKey-test.js"); --execTest("openpgpjs-test.js"); - execTest("autoSetup-test.js"); --execTest("persistentCrypto-test.js"); -\ No newline at end of file -+execTest("persistentCrypto-test.js"); -diff --git a/package/tests/openpgpjs-test.js b/package/tests/openpgpjs-test.js -deleted file mode 100644 -index ff71bb3..0000000 ---- a/package/tests/openpgpjs-test.js -+++ /dev/null -@@ -1,77 +0,0 @@ --/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */ --/*global do_test_pending: false, do_test_finished: 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"; -- --do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -- --testing("cryptoAPI/openpgp-js.js"); /*global getOpenPGPjsAPI: false */ -- --test(function testGetStrippedKey() { -- const cApi = getOpenPGPjsAPI(); -- -- const pubKey = "-----BEGIN PGP PUBLIC KEY BLOCK-----" + -- "\n" + -- "\nmQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + -- "\ntJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + -- "\nTzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + -- "\ncflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + -- "\n7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + -- "\nugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + -- "\nNotvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + -- "\nWMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + -- "\nd9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + -- "\n+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + -- "\nT8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + -- "\ntCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQJO" + -- "\nBBMBCAA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEZVN+IS3BkCWtOO2y" + -- "\neBYXMZzjEcQFAltV+f8ACgkQeBYXMZzjEcRWcQ/7Bihjn7jidt7pw4iv9ognHsX/" + -- "\nPfDPQtfaa4wK3NHSDq/LMbI5xR+PtV0j4aIjZxj5C4F3/6pvhCthV9KWiMcxlrL1" + -- "\nrv92r5JJAqt1T4m/CqYGGcKt+eIiDpuzGj7Ry5VJKyrHL1oFXDo6Sde4L5H87ltH" + -- "\n+lvyy9LS8TPgknWV8RsR2vn/IWr9HNLhKAdHEIXFGGfYRaS7RRRYHmP05TFFdFwy" + -- "\nhq2VTWW8OgqYILkSEonLgDo12QEAOu5Q9wCK0TV2in+yxBA/Hh5G/Uwm+u4SrW+v" + -- "\nSW2pdbYlgk/8Op5ItDQ1n6Q09Jzuyn9CzN+77MJdreAIP9YlnU7eUc7h3iLthHYm" + -- "\nflYyXOlO51M7Apnvu4SfFi/jq/9MlN9XJ9t4lo1tkGveAqBh88XZHviymRGYDf2F" + -- "\nDkTw/AhdIv8bVeObIoiXuyaoD8lb7fg16Sa7msUj+0+Z+edJBr1YMgdloetyzcHm" + -- "\nGFFbqLLiD5GvTRfD6yMdkC/IcfRXtjMITbZxpPMA2NruYqgVXjFzaW76OiTkvjEV" + -- "\n4Lt+dAiLpLNh9n5S/1KuB4QK2pH2iyJSFMdxIcJsIfHTkZuOHYs746DWqqdxvsQy" + -- "\nMCXkbUtUa2gHz/2mCgxDyma3piWpRkAtMxV+6YRZuBDsGXd7VNXYRVlm8+mCBikL" + -- "\nYNyRRnhM4LdkXx7iaaa5Ag0EVUebmwEQAMFfbxtHlDFusY1U9PeMzrQhP6b8ZMsf" + -- "\nqWbg5xmiYB6P9esE5xf/QFi06qo/sO6vyTQDx9wuRkJIGx7Wbp+98AKjxVt66e/g" + -- "\nitJPkWBeHttg9mx4jLlTtefR0uqlVclGoy3dQtL9HDLXxfHyP2xckkMAoipngwfC" + -- "\nAGSc954GcPhobpskC4EQjpFbmWFsbxYUl8KeIW5GeKb5UPq5x/3fHc2QvRNZjSXQ" + -- "\n9tR1b3awt+IqnWebP7V1GgFyRPvTWwyzamTjw7lj+8/o4QPMXOMZ0DWv1iRuVeM3" + -- "\n1XGFI3TRaWZyrUOoRTfr4yqLhghCy4Xc19LXf5TaWGOVHkelHF0Mx8eMViWTmGU6" + -- "\n26+imx5hOUzKQWXwPvLSpIUgCKpWXql2VIFTzhs4segJQZ6ez5SXubRRKHBl1WYy" + -- "\nJ8XD98nAhJkjwPm8aQzesTtPGscBD87V8mcZk0FGCfwuOdmNEYD+7V/B6m0VjQ3L" + -- "\nM7mU7NNYjocEmXWExq97aXS+3AE8utFttGHLpnvsE18T1rbDtjhoV6yGMSlbETxt" + -- "\nAjIysEZpFqJDaWleYDpdhnFDzE5R+y2wBHVMz4luhckO5PD5iFpVrZbtn9HN202d" + -- "\nqFYIKOm0WrrQO6CAvAAaeOvkdy2kuDC8tUoJ4N9TydyHMKQvseKSHYsLvJJRH9XM" + -- "\n5FqD9OSPFhFHABEBAAGJAjYEGAEIACACGwwWIQRlU34hLcGQJa047bJ4FhcxnOMR" + -- "\nxAUCW1X6FAAKCRB4FhcxnOMRxECYEACaDw6JFqgdHI5pH7pkRae9Vif63Ot7XEmS" + -- "\nxUGpoj/qbzZy+cm9lEfcOHC9cihFa0EwG1WpFUyuzl8z8f6nulJ2vi5unC007D8y" + -- "\nT5kwL7vaQ+gd1JtcPny3J6qRaNxY2KhlkkLFYFLSnpt/ye0S/HuCH7RjG1lYHga9" + -- "\nKULqYB+pdpFmfmPy6ogpHHaKQuYf/y9yRyylml/rjdRTWOzCa8L6y2y63y8mkcEZ" + -- "\nvUJ/WWAzCmka/w43uv3fPrui7wzMLDeCkSEomboax9bgTqqt9/ZNP9H0ja7XUNIj" + -- "\nHT8zn+h8YkjCHAupHRIltx7ZPaisZiz6RA/iwIE+rtkrYEOyCLsaHT+iXMsPFXLY" + -- "\nPMgR1usJqg2M3CzVdGmjXl0/ZZzo4a+wKzkRCnA1K4ZsJ/Py24QfqNIw8Jysab86" + -- "\nSVSpGq3YbDIuKI/6I5CSL36WlfDcsvypr6MvE7X59otGj+1qzmlHuscL95EchJAN" + -- "\nRJbTW1/IHw2VMqQhRMTBKftrMediC/xP9xtl4U3D8Wybk+ghQdwuW9x3SW9H8Dol" + -- "\ngzBI3fdHTevZCuJJFdXhmEyEa2eEcRioc/3zaAHGThE+8SnsA8IuuqALT43w3b14" + -- "\nLizcmRWQcBnH5+PlhXYf3/nAlEnXD6TCZrOGlNCzLTWQTBLg1kw97xS/PQyCg24X" + -- "\nsnHSt1DRJA==" + -- "\n=I9l9" + -- "\n-----END PGP PUBLIC KEY BLOCK-----"; -- -- let minKey = cApi.sync(cApi.getStrippedKey(pubKey)); -- let got = btoa(String.fromCharCode.apply(null, minKey)); -- Assert.equal(got.substr(0, 127), "xsFNBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWetJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8"); -- Assert.equal(got.substr(-127), "QriSRXV4ZhMhGtnhHEYqHP982gBxk4RPvEp7APCLrqgC0+N8N29eC4s3JkVkHAZx+fj5YV2H9/5wJRJ1w+kwmazhpTQsy01kEwS4NZMPe8Uvz0MgoNuF7Jx0rdQ0SQ="); -- Assert.equal(got.length, 3080); --}); -\ No newline at end of file -diff --git a/stdlib/Makefile b/stdlib/Makefile -index 09841e3..cceaab6 100644 ---- a/stdlib/Makefile -+++ b/stdlib/Makefile -@@ -13,7 +13,6 @@ MODFILES = \ - compose.jsm \ - misc.jsm \ - msgHdrUtils.jsm \ -- openpgp.worker.js \ - web-streams.jsm - - GENFILES = $(addprefix $(GENDIR)/,$(MODFILES)) -@@ -29,8 +28,7 @@ all: deploy - deploy: createlib $(GENFILES) - - createlib: -- cat openpgp-lib-head.js openpgp-lib.js openpgp-lib-tail.js > openpgp-lib.jsm -- $(DEPTH)/util/prepPostbox $(TARGET_TOOL) openpgp-lib.jsm $(GENDIR)/openpgp-lib.jsm -+ echo skipping createlib, no OpenPGP.js in debian build - - clean: -- $(DEPTH)/util/install -u $(DIST)/chrome/content/modules/stdlib $(MODFILES) openpgp-lib.jsm -+ $(DEPTH)/util/install -u $(DIST)/chrome/content/modules/stdlib $(MODFILES) -diff --git a/util/genxpi b/util/genxpi -index 9d7c39e..68d0b81 100755 ---- a/util/genxpi -+++ b/util/genxpi -@@ -81,7 +81,6 @@ zip -9 --must-match\ - chrome/content/modules/cryptoAPI/gnupg-decryption.jsm \ - chrome/content/modules/cryptoAPI/gnupg-key.jsm \ - chrome/content/modules/cryptoAPI/gnupg-keylist.jsm \ -- chrome/content/modules/cryptoAPI/openpgp-js.js \ - chrome/content/modules/cryptoAPI/interface.js \ - chrome/content/modules/data.jsm \ - chrome/content/modules/dns.jsm \ -@@ -149,8 +148,6 @@ zip -9 --must-match\ - chrome/content/modules/stdlib/compose.jsm \ - chrome/content/modules/stdlib/misc.jsm \ - chrome/content/modules/stdlib/msgHdrUtils.jsm \ -- chrome/content/modules/stdlib/openpgp-lib.jsm \ -- chrome/content/modules/stdlib/openpgp.worker.js \ - chrome/content/modules/stdlib/web-streams.jsm \ - chrome/content/modules/stdlib.jsm \ - chrome/content/modules/streams.jsm \ diff -Nru enigmail-2.1.6+ds1/debian/patches/0004-copy-enums.armor-from-OpenPGP.js.patch enigmail-2.2.4/debian/patches/0004-copy-enums.armor-from-OpenPGP.js.patch --- enigmail-2.1.6+ds1/debian/patches/0004-copy-enums.armor-from-OpenPGP.js.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0004-copy-enums.armor-from-OpenPGP.js.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Mon, 11 Jun 2018 00:08:04 -0400 -Subject: copy enums.armor from OpenPGP.js - -Since we use this in our own bytesToArmor(), we just copy the simple -table in here. ---- - package/openpgp.jsm | 33 +++++++++++++++------------------ - 1 file changed, 15 insertions(+), 18 deletions(-) - -diff --git a/package/openpgp.jsm b/package/openpgp.jsm -index 2982850..c6b8f99 100644 ---- a/package/openpgp.jsm -+++ b/package/openpgp.jsm -@@ -35,31 +35,28 @@ var crc_table = [0x00000000, 0x00864cfb, 0x018ad50d, 0x010c99f6, 0x0393e6e1, 0x0 - 0x575bc9c3, 0x57dd8538 - ]; - --var gOpenPGPLib; -- - function initialize() { - const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -- const getOpenPGPLibrary = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/openpgp-lib.jsm").getOpenPGPLibrary; -- - EnigmailLog.DEBUG("openpgp.jsm: initialize()\n"); -- -- try { -- gOpenPGPLib = getOpenPGPLibrary(); -- -- EnigmailLog.DEBUG(`openpgp.jsm: openpgp: ${gOpenPGPLib}\n`); -- } -- catch (ex) { -- EnigmailLog.ERROR("openpgp.jsm: initialize: error: " + ex.toString() + "\n"); -- } - } - - var EnigmailOpenPGP = { -- get openpgp() { -- if (!gOpenPGPLib) { -- initialize(); -+ openpgp: { -+ enums: { -+ /** Armor type -+ * @enum {Integer} -+ * @readonly -+ */ -+ armor: { -+ multipart_section: 0, -+ multipart_last: 1, -+ signed: 2, -+ message: 3, -+ public_key: 4, -+ private_key: 5, -+ signature: 6 -+ }, - } -- -- return gOpenPGPLib; - }, - - enigmailFuncs: { diff -Nru enigmail-2.1.6+ds1/debian/patches/0006-enable-the-use-of-extra-file-descriptors-and-test-th.patch enigmail-2.2.4/debian/patches/0006-enable-the-use-of-extra-file-descriptors-and-test-th.patch --- enigmail-2.1.6+ds1/debian/patches/0006-enable-the-use-of-extra-file-descriptors-and-test-th.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0006-enable-the-use-of-extra-file-descriptors-and-test-th.patch 2020-10-07 15:48:06.000000000 +0000 @@ -18,8 +18,6 @@ ipc/tests/subprocess-test.js | 28 +++++++++++++++++ 5 files changed, 136 insertions(+), 4 deletions(-) -diff --git a/ipc/modules/enigmailprocess_common.jsm b/ipc/modules/enigmailprocess_common.jsm -index 06859c3..4e64a42 100644 --- a/ipc/modules/enigmailprocess_common.jsm +++ b/ipc/modules/enigmailprocess_common.jsm @@ -598,12 +598,19 @@ class _BaseProcess { @@ -88,8 +86,6 @@ }); } -diff --git a/ipc/modules/enigmailprocess_main.jsm b/ipc/modules/enigmailprocess_main.jsm -index 266bf14..2012428 100644 --- a/ipc/modules/enigmailprocess_main.jsm +++ b/ipc/modules/enigmailprocess_main.jsm @@ -87,6 +87,18 @@ var SubprocessMain = { @@ -120,8 +116,6 @@ let environment = {}; if (!options.environment || options.environmentAppend) { -diff --git a/ipc/modules/enigmailprocess_worker_unix.js b/ipc/modules/enigmailprocess_worker_unix.js -index ebffdc9..ab4a792 100644 --- a/ipc/modules/enigmailprocess_worker_unix.js +++ b/ipc/modules/enigmailprocess_worker_unix.js @@ -392,6 +392,14 @@ class Process extends BaseProcess { @@ -139,8 +133,6 @@ this.pipes = our_pipes; return their_pipes; -diff --git a/ipc/modules/subprocess.jsm b/ipc/modules/subprocess.jsm -index b62c676..d8ea4ab 100644 --- a/ipc/modules/subprocess.jsm +++ b/ipc/modules/subprocess.jsm @@ -25,6 +25,14 @@ @@ -226,11 +218,9 @@ if (options.command instanceof Ci.nsIFile) { opts.command = options.command.path; } else { -diff --git a/ipc/tests/subprocess-test.js b/ipc/tests/subprocess-test.js -index 5e68b18..5e5f85b 100644 --- a/ipc/tests/subprocess-test.js +++ b/ipc/tests/subprocess-test.js -@@ -294,6 +294,34 @@ function run_test() { +@@ -300,6 +300,34 @@ function run_test() { p.wait(); @@ -264,4 +254,4 @@ + ///////////////////////////////////////////////////////////////// - // Test many concurrent runs + // Test many subsequent runs diff -Nru enigmail-2.1.6+ds1/debian/patches/0007-add-test-to-do-symmetric-encryption-decryption-with-.patch enigmail-2.2.4/debian/patches/0007-add-test-to-do-symmetric-encryption-decryption-with-.patch --- enigmail-2.1.6+ds1/debian/patches/0007-add-test-to-do-symmetric-encryption-decryption-with-.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0007-add-test-to-do-symmetric-encryption-decryption-with-.patch 2020-10-07 15:48:06.000000000 +0000 @@ -6,11 +6,9 @@ ipc/tests/subprocess-test.js | 95 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) -diff --git a/ipc/tests/subprocess-test.js b/ipc/tests/subprocess-test.js -index 5e5f85b..f399cfa 100644 --- a/ipc/tests/subprocess-test.js +++ b/ipc/tests/subprocess-test.js -@@ -322,6 +322,101 @@ function run_test() { +@@ -328,6 +328,101 @@ function run_test() { p.wait(); @@ -111,4 +109,4 @@ + p.wait(); ///////////////////////////////////////////////////////////////// - // Test many concurrent runs + // Test many subsequent runs diff -Nru enigmail-2.1.6+ds1/debian/patches/0008-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch enigmail-2.2.4/debian/patches/0008-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch --- enigmail-2.1.6+ds1/debian/patches/0008-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0008-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,326 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Sun, 30 Sep 2018 01:54:12 -0500 -Subject: use GnuPG instead of openpgp.js for symmetric encryption/decryption - -This enables all the test suite to pass, and should enable proper use -of the Autocrypt setup message. - -We need to handle PLAINTEXT status lines that include a possible -filename in them. And sometimes GnuPG gets confused about the -different sizes of plaintext: https://dev.gnupg.org/T4741. so just -warn, don't throw an exception for now as a workaround. ---- - package/autocrypt.jsm | 92 ++++++++++++++--------------- - package/gpg.jsm | 156 +++++++++++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 201 insertions(+), 47 deletions(-) - -diff --git a/package/autocrypt.jsm b/package/autocrypt.jsm -index d04cd4f..74c7de5 100644 ---- a/package/autocrypt.jsm -+++ b/package/autocrypt.jsm -@@ -11,8 +11,6 @@ - - var EXPORTED_SYMBOLS = ["EnigmailAutocrypt"]; - --const Cr = Components.results; -- - Components.utils.importGlobalProperties(["crypto"]); - - const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -@@ -38,6 +36,7 @@ const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/std - const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; - const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; -+const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; - - var gCreatedSetupIds = []; - -@@ -470,14 +469,15 @@ var EnigmailAutocrypt = { - - let bkpCode = createBackupCode(); - let enc = { -- message: EnigmailOpenPGP.openpgp.message.fromText(innerMsg), -- passwords: bkpCode, -+ message: innerMsg, -+ password: bkpCode, - armor: true - }; - - // create symmetrically encrypted message -- EnigmailOpenPGP.openpgp.encrypt(enc).then(msg => { -- let msgData = EnigmailArmor.replaceArmorHeaders(msg.data, { -+ try { -+ let msg = EnigmailGpg.symmetricEncrypt(enc); -+ let msgData = EnigmailArmor.replaceArmorHeaders(msg, { - 'Passphrase-Format': 'numeric9x4', - 'Passphrase-Begin': bkpCode.substr(0, 2) - }).replace(/\n/g, "\r\n"); -@@ -487,10 +487,10 @@ var EnigmailAutocrypt = { - msg: m, - passwd: bkpCode - }); -- }).catch(e => { -+ } catch(e) { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: error " + e + "\n"); - reject(2); -- }); -+ } - } - catch (ex) { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: error " + ex.toString() + "\n"); -@@ -598,46 +598,46 @@ var EnigmailAutocrypt = { - end = {}; - let msgType = EnigmailArmor.locateArmoredBlock(attachmentData, 0, "", start, end, {}); - -- EnigmailOpenPGP.openpgp.message.readArmored(attachmentData.substring(start.value, end.value)).then(encMessage => { -- let enc = { -- message: encMessage, -- passwords: [passwd], -- format: 'utf8' -- }; -+ let encMessage = attachmentData.substring(start.value, end.value); - -- return EnigmailOpenPGP.openpgp.decrypt(enc); -- }) -- .then(msg => { -- EnigmailLog.DEBUG("autocrypt.jsm: handleBackupMessage: data: " + msg.data.length + "\n"); -- -- let setupData = importSetupKey(msg.data); -- if (setupData) { -- EnigmailKeyEditor.setKeyTrust(null, "0x" + setupData.fpr, "5", function(returnCode) { -- if (returnCode === 0) { -- let id = EnigmailStdlib.getIdentityForEmail(EnigmailFuncs.stripEmail(fromAddr).toLowerCase()); -- let ac = EnigmailFuncs.getAccountForIdentity(id.identity); -- ac.incomingServer.setBoolValue("enableAutocrypt", true); -- ac.incomingServer.setIntValue("acPreferEncrypt", (setupData.preferEncrypt === "mutual" ? 1 : 0)); -- id.identity.setCharAttribute("pgpkeyId", "0x" + setupData.fpr); -- id.identity.setBoolAttribute("enablePgp", true); -- id.identity.setBoolAttribute("pgpSignEncrypted", true); -- id.identity.setBoolAttribute("pgpMimeMode", true); -- id.identity.setIntAttribute("pgpKeyMode", 1); -- EnigmailPrefs.setPref("juniorMode", 1); -- resolve(setupData); -- } -- else { -- reject("keyImportFailed"); -- } -- }); -- } -- else { -- reject("keyImportFailed"); -- } -- }). -- catch(err => { -+ let enc = { -+ message: encMessage, -+ password: passwd, -+ format: 'utf8' -+ }; -+ -+ try { -+ let msg = EnigmailGpg.symmetricDecrypt(enc); -+ -+ EnigmailLog.DEBUG("autocrypt.jsm: handleBackupMessage: data: " + msg.length + "\n"); -+ -+ let setupData = importSetupKey(msg); -+ if (setupData) { -+ EnigmailKeyEditor.setKeyTrust(null, "0x" + setupData.fpr, "5", function(returnCode) { -+ if (returnCode === 0) { -+ let id = EnigmailStdlib.getIdentityForEmail(EnigmailFuncs.stripEmail(fromAddr).toLowerCase()); -+ let ac = EnigmailFuncs.getAccountForIdentity(id.identity); -+ ac.incomingServer.setBoolValue("enableAutocrypt", true); -+ ac.incomingServer.setIntValue("acPreferEncrypt", (setupData.preferEncrypt === "mutual" ? 1 : 0)); -+ id.identity.setCharAttribute("pgpkeyId", "0x" + setupData.fpr); -+ id.identity.setBoolAttribute("enablePgp", true); -+ id.identity.setBoolAttribute("pgpSignEncrypted", true); -+ id.identity.setBoolAttribute("pgpMimeMode", true); -+ id.identity.setIntAttribute("pgpKeyMode", 1); -+ EnigmailPrefs.setPref("juniorMode", 1); -+ resolve(setupData); -+ } -+ else { -+ reject("keyImportFailed"); -+ } -+ }); -+ } -+ else { -+ reject("keyImportFailed"); -+ } -+ } catch(err) { - reject("wrongPasswd"); -- }); -+ } - }); - }, - -diff --git a/package/gpg.jsm b/package/gpg.jsm -index 70465bf..489b1cd 100644 ---- a/package/gpg.jsm -+++ b/package/gpg.jsm -@@ -382,10 +382,164 @@ var EnigmailGpg = { - } - }, - -+ symmetricEncrypt: function(params) { -+ EnigmailLog.DEBUG("gpg.jsm: symmetricEncrypt:\n"); -+ -+ const args = EnigmailGpg.getStandardArgs(false). -+ concat(['--no-options', -+ '--no-keyring', -+ '--no-symkey-cache', -+ '--cipher-algo=aes256', -+ '--pinentry-mode=loopback', -+ '--passphrase-fd=4', -+ '--status-fd=5', -+ '--symmetric']); -+ if (params.armor) -+ args.push('--armor'); -+ -+ try { -+ let statusdata = ''; -+ let ciphertext; -+ let warnings = []; -+ const proc = subprocess.call({ -+ command: EnigmailGpg.agentPath, -+ arguments: args, -+ environment: EnigmailCore.getEnvList(), -+ charset: null, -+ stdin: params.message, -+ infds: { 4: params.password }, -+ outfds: { -+ 5: function(data) { -+ statusdata += data; -+ } -+ }, -+ mergeStderr: false, -+ done: function(result) { -+ if (result.exitCode != 0) { -+ warnings.unshift("non-zero return code! " + result.exitCode); -+ return; -+ } -+ if (statusdata.match(/\[GNUPG:\] NEED_PASSPHRASE_SYM \d+ \d+ \d+\n\[GNUPG:\] BEGIN_ENCRYPTION \d+ \d+\n\[GNUPG:\] END_ENCRYPTION\n/) === null) { -+ warnings.unshift("status return was unexpected: " + statusdata); -+ return; -+ } -+ ciphertext = result.stdout; -+ } -+ }); -+ proc.wait(); -+ if (warnings.length) { -+ for (let ix in warnings) { -+ /* we display the warnings here because it's not clear to -+ * dkg that the "done" function is running from a thread -+ * capable of executing them correctly. */ -+ EnigmailLog.WARNING(warnings[ix]+"\n"); -+ } -+ } -+ if (ciphertext == undefined) -+ EnigmailLog.WARNING("ciphertext output was never received\n"); -+ return ciphertext; -+ } -+ catch (ex) { -+ EnigmailLog.ERROR("enigmailCommon.jsm: encryptSymmetric: subprocess.call failed with '" + ex.toString() + "'\n"); -+ throw ex; -+ } -+ }, -+ -+ /* params contains fields: message (string), password (string), and format (string). -+ */ -+ symmetricDecrypt: function(params) { -+ EnigmailLog.DEBUG("gpg.jsm: symmetricDecrypt:\n"); -+ -+ const args = EnigmailGpg.getStandardArgs(false). -+ concat(['--no-options', -+ '--no-keyring', -+ '--no-symkey-cache', -+ '--pinentry-mode=loopback', -+ '--passphrase-fd=4', -+ '--status-fd=5', -+ '--decrypt']); -+ /* FIXME: format is going to be 'utf8' -- what does that mean, and -+ * how do we apply it to GnuPG? */ -+ -+ try { -+ let statusdata = ''; -+ let cleartext; -+ let warnings = []; -+ const proc = subprocess.call({ -+ command: EnigmailGpg.agentPath, -+ arguments: args, -+ environment: EnigmailCore.getEnvList(), -+ charset: null, -+ stdin: params.message, -+ infds: { 4: params.password }, -+ outfds: { -+ 5: function(data) { -+ statusdata += data; -+ } -+ }, -+ mergeStderr: false, -+ done: function(result) { -+ if (result.exitCode != 0) { -+ warnings.unshift("non-zero return code when decrypting! " + result.exitCode); -+ return; -+ } -+ -+ let decrypt_status_re = /\[GNUPG:\] NEED_PASSPHRASE_SYM \d+ \d+ \d+\n\[GNUPG:] BEGIN_DECRYPTION\n(\[GNUPG:\] DECRYPTION_COMPLIANCE_MODE \d+\n)?\[GNUPG:\] DECRYPTION_INFO \d+ \d+\n\[GNUPG:\] PLAINTEXT \d+ \d+[^\n]*\n(\[GNUPG:\] PLAINTEXT_LENGTH (\d+)\n)?\[GNUPG:\] DECRYPTION_OKAY\n(\[GNUPG:\] GOODMDC\n)?\[GNUPG:\] END_DECRYPTION\n/m -+ let matched = false; -+ let found = decrypt_status_re.exec(statusdata); -+ if (found !== null) { -+ let all = found[0]; -+ let compliance = found[1]; -+ let plen_line = found[2]; -+ let plen = found[3]; -+ let mdc = found[4]; -+ if (all != statusdata) -+ warnings.unshift("Got GnuPG status lines: " + statusdata + "Only matched GnuPG status lines: " + all); -+ /* PLAINTEXT_LENGTH does not necessarily match exactly: -+ * see https://dev.gnupg.org/T4741. Instead, we assume -+ * that the length could be halved (nothing but CRLFs, -+ * generated on Windows, read on unix) or doubled (nothing -+ * but LFs on unix, read on Windows) at most.*/ -+ if (plen_line) -+ if ((result.stdout.length > plen*2) || -+ (result.stdout.length < plen/2)) -+ warnings.unshift("Status line claimed " + plen + "bytes, but we got " + result.stdout.length); -+ if (mdc != "[GNUPG:] GOODMDC\n") { -+ warnings.unshift("No MDC used in encryption, skipping decryption"); -+ return; -+ } -+ matched = true; -+ } -+ if (!matched) { -+ warnings.unshift("Status FDs did not match!"); -+ return; -+ } -+ cleartext = result.stdout; -+ } -+ }); -+ proc.wait(); -+ if (warnings.length) { -+ for (let ix in warnings) { -+ /* we display the warnings here because it's not clear to -+ * dkg that the "done" function is running from a thread -+ * capable of executing them correctly. */ -+ EnigmailLog.WARNING(warnings[ix]+"\n"); -+ } -+ } -+ if (cleartext == undefined) -+ EnigmailLog.WARNING("cleartext output was never received\n"); -+ return cleartext; -+ } -+ catch (ex) { -+ EnigmailLog.ERROR("enigmailCommon.jsm: decryptSymmetric: subprocess.call failed with '" + ex.toString() + "'\n"); -+ throw ex; -+ } -+ }, -+ - /** - * For versions of GPG 2.1 and higher, checks to see if the dirmngr is configured to use Tor - * - * @return Boolean - True if dirmngr is configured with Tor. False otherwise - */ - dirmngrConfiguredWithTor: dirmngrConfiguredWithTor --}; -\ No newline at end of file -+}; diff -Nru enigmail-2.1.6+ds1/debian/patches/0010-fixed-bug-1057-Hockeypuck-keyservers-reject-uploads-.patch enigmail-2.2.4/debian/patches/0010-fixed-bug-1057-Hockeypuck-keyservers-reject-uploads-.patch --- enigmail-2.1.6+ds1/debian/patches/0010-fixed-bug-1057-Hockeypuck-keyservers-reject-uploads-.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0010-fixed-bug-1057-Hockeypuck-keyservers-reject-uploads-.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -From: Patrick Brunschwig -Date: Fri, 3 Apr 2020 20:23:14 +0200 -Subject: fixed bug 1057: Hockeypuck keyservers reject uploads that use - Content-Type: text/plain - -(cherry picked from commit 997095d61d2a388c65ec65f9ffd1516390910d03) ---- - package/keyserver.jsm | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/package/keyserver.jsm b/package/keyserver.jsm -index c0d1e53..38f57ee 100644 ---- a/package/keyserver.jsm -+++ b/package/keyserver.jsm -@@ -173,6 +173,7 @@ const accessHkpInternal = { - - let method = "GET"; - let protocol; -+ let contentType = "text/plain;charset=UTF-8"; - - switch (keySrv.protocol) { - case "hkp": -@@ -189,6 +190,7 @@ const accessHkpInternal = { - if (actionFlag === EnigmailConstants.UPLOAD_KEY) { - url += "/pks/add"; - method = "POST"; -+ contentType = "application/x-www-form-urlencoded"; - } - else if (actionFlag === EnigmailConstants.DOWNLOAD_KEY) { - if (searchTerm.indexOf("0x") !== 0) { -@@ -206,6 +208,7 @@ const accessHkpInternal = { - return { - url: url, - host: keySrv.host, -+ contentType: contentType, - method: method - }; - }, -@@ -328,20 +331,23 @@ const accessHkpInternal = { - let { - url, - host, -- method -+ method, -+ contentType - } = this.createRequestUrl(keyserver, actionFlag, keyId); - - if (host === HKPS_POOL_HOST && actionFlag !== EnigmailConstants.GET_SKS_CACERT) { - this.getSksCACert().then(r => { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer: getting ${url}\n`); - xmlReq.open(method, url); -+ xmlReq.setRequestHeader("Content-Type", contentType); - xmlReq.send(payLoad); - }); - } - else { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer: requesting ${url}\n`); - xmlReq.open(method, url); -- xmlReq.send(payLoad); -+ xmlReq.setRequestHeader("Content-Type", contentType); -+ xmlReq.send(payLoad); - } - }); - }, diff -Nru enigmail-2.1.6+ds1/debian/patches/0011-drop-unnecessary-tests.patch enigmail-2.2.4/debian/patches/0011-drop-unnecessary-tests.patch --- enigmail-2.1.6+ds1/debian/patches/0011-drop-unnecessary-tests.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0011-drop-unnecessary-tests.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Wed, 6 Nov 2019 01:42:24 -0500 -Subject: Drop unnecessary tests in keyObj-test.js - -See Message-ID: <8736f1nfsd.fsf@fifthhorseman.net> (and followup -messages) on enigmail-users@enigmail.net for more discussion about why -these tests are bogus and irrelevant for debian. ---- - package/tests/keyObj-test.js | 17 +---------------- - 1 file changed, 1 insertion(+), 16 deletions(-) - -diff --git a/package/tests/keyObj-test.js b/package/tests/keyObj-test.js -index 0042e02..a82caa5 100644 ---- a/package/tests/keyObj-test.js -+++ b/package/tests/keyObj-test.js -@@ -37,19 +37,4 @@ test(withTestGpgHome(withEnigmail(function shouldExportMinimalSubkey() { - Assert.equal(minKey.keyData.substr(0, 50), "mQGNBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5E"); - Assert.equal(minKey.keyData.substr(-50, 50), "p9TFNKjguUrrGrVnmnmy/YoGTJWuGqrZy8kcC3LCjg0k2mV0M="); - } -- -- EnigmailGpg.agentVersion = "2.2.1"; -- Assert.ok(!EnigmailGpg.getGpgFeature("export-specific-uid")); -- -- let minKey = keyObj.getMinimalPubKey("bob@somewhere.invalid"); -- Assert.equal(minKey.exitCode, 0); -- Assert.equal(minKey.keyData.substr(3, 50), "NBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5ElIc"); -- Assert.ok(minKey.keyData.substr(-50, 50) == "1MU0qOC5SusatWeaebL9igZMla4aqtnLyRwLcsKODSTaZXQw==" || -- minKey.keyData.substr(-50, 50) == "p9TFNKjguUrrGrVnmnmy/YoGTJWuGqrZy8kcC3LCjg0k2mV0M=", "min key matches"); -- -- minKey = keyObj.getMinimalPubKey("does@not.exist"); -- Assert.equal(minKey.exitCode, 0); -- -- Assert.equal(minKey.keyData.substr(0, 50), "xsDNBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5E"); -- Assert.equal(minKey.keyData.substr(-50, 50), "1MU0qOC5SusatWeaebL9igZMla4aqtnLyRwLcsKODSTaZXQw=="); --}))); -\ No newline at end of file -+}))); diff -Nru enigmail-2.1.6+ds1/debian/patches/0011-skip-record-if-nothing-found-broken-Find-keys-for-al.patch enigmail-2.2.4/debian/patches/0011-skip-record-if-nothing-found-broken-Find-keys-for-al.patch --- enigmail-2.1.6+ds1/debian/patches/0011-skip-record-if-nothing-found-broken-Find-keys-for-al.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0011-skip-record-if-nothing-found-broken-Find-keys-for-al.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -From: Patrick Brunschwig -Date: Sat, 11 Apr 2020 11:35:53 +0200 -Subject: skip record if nothing found (broken Find keys for all contacts) - with vks keyservers - -(cherry picked from commit 048d65f1846683cd6a3e939b6e65e16e3db3c2c3) ---- - package/keyserver.jsm | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/package/keyserver.jsm b/package/keyserver.jsm -index 38f57ee..d98b021 100644 ---- a/package/keyserver.jsm -+++ b/package/keyserver.jsm -@@ -1546,6 +1546,9 @@ const accessVksServer = { - for (let i in searchArr) { - let r = await this.accessKeyServer(EnigmailConstants.SEARCH_KEY, keyserver, searchArr[i], listener); - -+ // try next item if nothing found -+ if (!r || !r.length) continue; -+ - const cApi = EnigmailCryptoAPI(); - let keyList = await cApi.getKeyListFromKeyBlock(r); - diff -Nru enigmail-2.1.6+ds1/debian/patches/0012-Fix-parallel-build.patch enigmail-2.2.4/debian/patches/0012-Fix-parallel-build.patch --- enigmail-2.1.6+ds1/debian/patches/0012-Fix-parallel-build.patch 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0012-Fix-parallel-build.patch 2020-10-07 15:48:06.000000000 +0000 @@ -11,11 +11,9 @@ ui/content/Makefile | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/ui/content/Makefile b/ui/content/Makefile -index 894db7d..93a6214 100644 --- a/ui/content/Makefile +++ b/ui/content/Makefile -@@ -136,9 +136,11 @@ UIFILES = \ +@@ -25,9 +25,11 @@ UIFILES = \ GENFILES = $(addprefix $(GENDIR)/,$(UIFILES)) $(GENDIR)/%.js: %.js @@ -26,4 +24,4 @@ + mkdir -p $(GENDIR) $(PERL) $(DEPTH)/util/plpp.pl -i $(INCLUDE) -o $@ $< - $(GENDIR)/%.htm: %.htm + $(GENDIR)/%.xhtml: %.xhtml diff -Nru enigmail-2.1.6+ds1/debian/patches/0013-fix-eslint-errors.patch enigmail-2.2.4/debian/patches/0013-fix-eslint-errors.patch --- enigmail-2.1.6+ds1/debian/patches/0013-fix-eslint-errors.patch 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/debian/patches/0013-fix-eslint-errors.patch 2020-10-07 15:48:06.000000000 +0000 @@ -0,0 +1,52 @@ +Description: fix problems raised by eslint when running tests +Author: Olivier Tilloy + +--- a/ipc/tests/subprocess-test.js ++++ b/ipc/tests/subprocess-test.js +@@ -352,7 +352,7 @@ function run_test() { + '--pinentry-mode=loopback', + '--passphrase-fd=4', + '--status-fd=5', +- '--symmetric', ++ '--symmetric' + ], + environment: envList, + stdin: function(pipe) { +@@ -377,7 +377,7 @@ function run_test() { + p.wait(); + + statusdata=""; +- let decrypt_status_re = /\[GNUPG:\] NEED_PASSPHRASE_SYM \d+ \d+ \d+\n\[GNUPG:] BEGIN_DECRYPTION\n(\[GNUPG:\] DECRYPTION_COMPLIANCE_MODE \d+\n)?\[GNUPG:\] DECRYPTION_INFO \d+ \d+\n\[GNUPG:\] PLAINTEXT \d+ \d+ *\n(\[GNUPG:\] PLAINTEXT_LENGTH (\d+)\n)?\[GNUPG:\] DECRYPTION_OKAY\n(\[GNUPG:\] GOODMDC\n)?\[GNUPG:\] END_DECRYPTION\n/m ++ let decrypt_status_re = /\[GNUPG:\] NEED_PASSPHRASE_SYM \d+ \d+ \d+\n\[GNUPG:] BEGIN_DECRYPTION\n(\[GNUPG:\] DECRYPTION_COMPLIANCE_MODE \d+\n)?\[GNUPG:\] DECRYPTION_INFO \d+ \d+\n\[GNUPG:\] PLAINTEXT \d+ \d+ *\n(\[GNUPG:\] PLAINTEXT_LENGTH (\d+)\n)?\[GNUPG:\] DECRYPTION_OKAY\n(\[GNUPG:\] GOODMDC\n)?\[GNUPG:\] END_DECRYPTION\n/m; + + try { + p = subprocess.call({ +@@ -392,7 +392,7 @@ function run_test() { + '--pinentry-mode=loopback', + '--passphrase-fd=4', + '--status-fd=5', +- '--decrypt', ++ '--decrypt' + ], + environment: envList, + stdin: function(pipe) { +--- a/package/webextension.js ++++ b/package/webextension.js +@@ -71,7 +71,7 @@ var enigmailApi = class extends Extensio + this.chromeHandle.destruct(); + this.chromeHandle = null; + +- console.debug("webextension.js: Enigmail shutdown"); ++ Services.console.logStringMessage("webextension.js: Enigmail shutdown"); + } + + getAPI(context) { +@@ -85,7 +85,7 @@ var enigmailApi = class extends Extensio + } + + close() { +- console.debug("webextension.js: close"); ++ Services.console.logStringMessage("webextension.js: close"); + ExtensionSupport.unregisterWindowListener(EXTENSION_NAME); + } + }; diff -Nru enigmail-2.1.6+ds1/debian/patches/series enigmail-2.2.4/debian/patches/series --- enigmail-2.1.6+ds1/debian/patches/series 2020-04-12 01:42:58.000000000 +0000 +++ enigmail-2.2.4/debian/patches/series 2020-10-07 15:48:06.000000000 +0000 @@ -1,11 +1,5 @@ -0001-avoid-eslint-during-buildtest.patch 0002-Avoid-auto-download-of-pEpEngine-Closes-891882.patch -0003-avoid-OpenPGP.js-when-building.patch -0004-copy-enums.armor-from-OpenPGP.js.patch 0006-enable-the-use-of-extra-file-descriptors-and-test-th.patch 0007-add-test-to-do-symmetric-encryption-decryption-with-.patch -0008-use-GnuPG-instead-of-openpgp.js-for-symmetric-encryp.patch -0011-drop-unnecessary-tests.patch 0012-Fix-parallel-build.patch -0010-fixed-bug-1057-Hockeypuck-keyservers-reject-uploads-.patch -0011-skip-record-if-nothing-found-broken-Find-keys-for-al.patch +0013-fix-eslint-errors.patch diff -Nru enigmail-2.1.6+ds1/debian/rules enigmail-2.2.4/debian/rules --- enigmail-2.1.6+ds1/debian/rules 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/rules 2020-10-07 15:48:06.000000000 +0000 @@ -12,11 +12,6 @@ ln -sf /usr/share/misc/config.guess /usr/share/misc/config.sub ./ dh_auto_configure -- --with-tb-path=/usr/bin/thunderbird --with-tb-args='--headless --profile $(shell pwd)/test-profile' -override_dh_auto_test: -ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) - debian/run-tests -endif - override_dh_auto_clean: # if config/autoconf.mk is not present, create stub of it, such that make distclean works if [ ! -f config/autoconf.mk ]; then \ diff -Nru enigmail-2.1.6+ds1/debian/run-tests enigmail-2.2.4/debian/run-tests --- enigmail-2.1.6+ds1/debian/run-tests 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/run-tests 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = autopkgtest ]; then - extensionpath=/usr/share/xul-ext/enigmail/ -else - extensionpath="$(printf '%s/build-tb/dist/' "$(pwd)")" -fi - -mkdir -p test-profile/extensions tmp -printf "%s" "$extensionpath" > 'test-profile/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}' -printf /usr/share/xul-ext/jsunit/ > 'test-profile/extensions/jsunit@enigmail.net' -cat > test-profile/prefs.js <= 0.2.2), - sqlite3, - thunderbird (>= 1:68.0), -Restrictions: allow-stderr - -Tests: unit-tests -Depends: - enigmail, - jsunit (>= 0.2.2), - make, - perl, - python3, - sqlite3, -Restrictions: allow-stderr diff -Nru enigmail-2.1.6+ds1/debian/tests/no-test.js enigmail-2.2.4/debian/tests/no-test.js --- enigmail-2.1.6+ds1/debian/tests/no-test.js 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/tests/no-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -/* this runs no tests at all, just for the sake of setting up the profile. */ -/* global dump: false */ -dump("simple test to make sure logging works\n"); diff -Nru enigmail-2.1.6+ds1/debian/tests/tbird-sqlite enigmail-2.2.4/debian/tests/tbird-sqlite --- enigmail-2.1.6+ds1/debian/tests/tbird-sqlite 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/tests/tbird-sqlite 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -#!/bin/bash - -# Author: Daniel Kahn Gillmor - -# just trying to ensure that thunderbird can work with sqlite: -mkdir -m 0700 -p tbird-sqlite.profile/extensions -printf /usr/share/xul-ext/jsunit/ > tbird-sqlite.profile/extensions/jsunit@enigmail.net -cat > tbird-sqlite.profile/prefs.js <tbird-sqlite.profile/times.json - -# set up a profile cleanly, ignoring messages to stderr -ln -sf debian/tests/no-test.js main.js -/usr/bin/thunderbird --headless --profile "$(pwd)/tbird-sqlite.profile" 2>&1 - -ln -sf debian/tests/tbird-sqlite.js main.js -/usr/bin/thunderbird --headless --profile "$(pwd)/tbird-sqlite.profile" -rm -rf main.js -echo .dump | sqlite3 tbird-sqlite.profile/testing.sqlite diff -Nru enigmail-2.1.6+ds1/debian/tests/tbird-sqlite.js enigmail-2.2.4/debian/tests/tbird-sqlite.js --- enigmail-2.1.6+ds1/debian/tests/tbird-sqlite.js 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/tests/tbird-sqlite.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -/* global ChromeUtils: false; Assert: false; dump: false; JSUnit: false */ - -"use strict"; - -const Sqlite = ChromeUtils.import("resource://gre/modules/Sqlite.jsm").Sqlite; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; - -function log(str) { - /* how to log to stdout/stderr? */ - dump(str, str.length); -} - -/** - * Create the "simple" table and the corresponding index - * - * @param connection: Object - SQLite connection - * @param deferred: Promise - */ -function createTable(connection, deferred) { - log("createTable()\n"); - - connection.execute("create table simple (" + - "foo text not null, " + // string - "int text not null); "). // number - then( function _ok() { - log("createTable - index\n"); - connection.execute("create unique index xx on simple(foo)"). - then(function _f() { - deferred.resolve(); - }); - }); -} - -function checkDatabaseStructure(connection) { - log("checkDatabaseStructure\n"); - - let deferred = PromiseUtils.defer(); - - connection.tableExists("simple").then( - function onSuccess(exists) { - log("checkDatabaseStructure - success\n"); - if (!exists) { - createTable(connection, deferred); - } - else { - deferred.resolve(); - } - }, - function onError(error) { - log("checkDatabaseStructure - error\n"); - deferred.reject(error); - } - ); - - return deferred.promise; -} - - -log("started sqlite test!!!\n"); -JSUnit.testPending(); -Sqlite.openConnection({ - path: "testing.sqlite", - sharedMemoryCache: false -}).then( - function onConnection(connection) { - log("success!!!\n"); - var conn = connection; - checkDatabaseStructure(conn). - then(function _x() { - conn.close(); - JSUnit.testSucceeded(); - JSUnit.testFinished(); - }); - }, - function onError(error) { - JSUnit.testFailed(); - JSUnit.testFinished(); - log("failure!!!\n"); - } -); diff -Nru enigmail-2.1.6+ds1/debian/tests/unit-tests enigmail-2.2.4/debian/tests/unit-tests --- enigmail-2.1.6+ds1/debian/tests/unit-tests 2019-11-19 07:25:37.000000000 +0000 +++ enigmail-2.2.4/debian/tests/unit-tests 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/bash - -mkdir -p config -cat > config/autoconf.mk < "$TBPROFILE/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}" - - printf 'user_pref("extensions.autoDisableScopes", 14);\n' > "$TBPROFILE/prefs.js" - - printf 'user_pref("browser.dom.window.dump.enabled", true);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.update.enabled", false);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.update.autoUpdateDefault", false);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.blocklist.enabled", false);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("app.update.enabled", false);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("app.update.auto", false);\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.enigmail.configuredVersion", "99.0");\n' >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.enigmail.logDirectory", "%s");\n' $(pwd)/tmp >> "$TBPROFILE/prefs.js" - - printf 'user_pref("extensions.enigmail.pEpAutoDownload", false);\n' >> "$TBPROFILE/prefs.js" - - curl -s -o "$TBPROFILE/extensions/jsunit@enigmail.net.xpi" https://www.enigmail.net/jsunit/jsunit-0.2.2.xpi - #- export TBDOWNLOAD=$(curl -s 'https://download.mozilla.org/?product=thunderbird-beta-latest&os=linux64&lang=en-US' | sed -E 's/(.*href=")([^"]+)(".*)/\2/') - - export TBDOWNLOAD=https://archive.mozilla.org/pub/thunderbird/releases/68.0/linux-x86_64/en-US/thunderbird-68.0.tar.bz2 - - curl -s -o thunderbird.tar.bz2 $TBDOWNLOAD - - tar -xjvf thunderbird.tar.bz2 - - thunderbird/thunderbird --version - script: - - export TBPROFILE="$(pwd)/tb-test-profile" - - export TMPDIR="$(pwd)/tmp" - - export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ - - ./configure --enable-tests --with-tb-path=`printf '%s/thunderbird/thunderbird' "$(pwd)"` --with-tb-args="--headless --profile $TBPROFILE" - - make dirs xpi - - cat config/autoconf.mk - - ls $TBPROFILE - - cat $TBPROFILE/prefs.js - - USER=root make unit - artifacts: - paths: - - config - - tmp - - tb-test-profile diff -Nru enigmail-2.1.6+ds1/ipc/tests/.eslintrc.js enigmail-2.2.4/ipc/tests/.eslintrc.js --- enigmail-2.1.6+ds1/ipc/tests/.eslintrc.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ipc/tests/.eslintrc.js 2020-10-01 13:32:58.000000000 +0000 @@ -1,5 +1,5 @@ module.exports = { "rules": { - "strict": 0, + "strict": 0 } } diff -Nru enigmail-2.1.6+ds1/ipc/tests/subprocess-test.js enigmail-2.2.4/ipc/tests/subprocess-test.js --- enigmail-2.1.6+ds1/ipc/tests/subprocess-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ipc/tests/subprocess-test.js 2020-10-01 13:32:58.000000000 +0000 @@ -83,6 +83,7 @@ gResultStdErr += data; }, done: function(result) { + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); }, mergeStderr: false @@ -95,7 +96,7 @@ "result matching" ); - let len = gTestLines.join("").length; + let len = gTestLines.join("").replace(/\r\n/g, "\n").length; Assert.equal( "Starting dump\nDumped " + len + " bytes\n", gResultStdErr.replace(/\r\n/g, "\n"), @@ -122,13 +123,14 @@ Assert.ok(false, "Got unexpected data '" + data + "' on stderr\n"); }, done: function(result) { + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); }, mergeStderr: true }); p.wait(); - Assert.equal(gTestLines.join("").length + 30, gResultData.length, "comparing result"); + Assert.equal(gTestLines.join("").replace(/\r\n/g, "\n").length + 30, gResultData.replace(/\r\n/g, "\n").length, "comparing result"); ///////////////////////////////////////////////////////////////// @@ -151,6 +153,7 @@ }, done: function(result) { gResultData = result.stdout; + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); }, mergeStderr: false @@ -233,6 +236,7 @@ gResultData = result.stdout; gResultStdErr = result.stderr.replace(/\r\n/g, "\n"); + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); Assert.equal(gTestLines.join(""), gResultData, "stdout"); Assert.equal(gResultStdErr.length, 28, "stderr"); @@ -258,6 +262,7 @@ environment: envList, done: function(result) { gResultData = result.stdout; + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); }, mergeStderr: false @@ -283,6 +288,7 @@ gResultData += data; }, done: function(result) { + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); Assert.equal("zbaxrl", gResultData, "transformed data"); }, @@ -296,7 +302,7 @@ ///////////////////////////////////////////////////////////////// - // Test many concurrent runs + // Test many subsequent runs ///////////////////////////////////////////////////////////////// do_print("mass test"); @@ -307,7 +313,8 @@ arguments: [cmd.path, 'quick'], environment: envList, done: function(result) { - Assert.equal("Hello\n", result.stdout, "stdout text"); + Assert.equal("Hello\n", result.stdout.replace(/\r\n/g, "\n"), "stdout text"); + if (result.exitCode === 255) result.exitCode = 0; Assert.equal(0, result.exitCode, "exit code"); }, mergeStderr: false @@ -315,4 +322,6 @@ p.wait(); } -} \ No newline at end of file + + dataFile.remove(false); +} diff -Nru enigmail-2.1.6+ds1/lang/ar/am-enigprefs.properties enigmail-2.2.4/lang/ar/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ar/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=خصوصية OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ar/enigmail.dtd enigmail-2.2.4/lang/ar/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ar/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' حول عنوان البريد"> - - -' لتحديد عناوين البريد لأجل GnuPG. عطِّله إن كانت للمتلقين مفاتيح Hushmail قديمة."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ملاحظة: قد يستغرق توليد المفتاح بضع دقائق ليتم. لا تغلق التطبيق أثناء توليد المفتاح. التصفح بنشاط أو إجراء عمليات تستخدم القرص بكثافة مفيد لملء 'وعاء العشوائية' وسيُسرِّع التوليد. ستبلّغ عندما يتم التوليد."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' غير مقبول"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ملاحظة: قد يستغرق توليد المفتاح بضع دقائق ليتم. لا تغلق التطبيق أثناء توليد المفتاح. ستبلّغُ عند تمام التوليد."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ar/enigmail.properties enigmail-2.2.4/lang/ar/enigmail.properties --- enigmail-2.1.6+ds1/lang/ar/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=تنبيه Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=عطل Enigmail enigPrompt=محث Enigmail - -dlgYes=&نعم dlgNo=&لا dlgKeepSetting=تذكر إجابتي ولا تسألني ثانية dlgNoPrompt=لا تظهر هذا الحوار ثانية -dlg.button.delete=ا&حذف dlg.button.cancel=أل&غِ dlg.button.close=أغل&ق dlg.button.continue=وا&صل -dlg.button.skip=أغ&فل -# dlg.button.overwrite=&Overwrite -dlg.button.view=&عاين -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nسيتكرر هذا التنبيه %S repeatSuffixSingular=مرة أخرى. repeatSuffixPlural=مرات أخرى. noRepeat=\n\nلن يتكرر هذا التنبيه إلى أن تحدِّث Enigmail. - -pgpNotSupported=يبدو أنك تستخدم Enigmail مع PGP 6.x\n\nللأسف، PGP 6.x به بعض الأمر التي تمنع Enigmail من العمل جيدا. لذا لم يعد Enigmail يدعم PGP 6.x، من فضلك انتقل إلى GnuPG (GPG) كبديل.\n\nإذا احتجت للمساعدة حول الانتقال إلى GnuPG، راجع قسم المساعدة في موقع Enigmail. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=لم تُمح كلمة السر # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=لا توجد صور -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Photo path '%S' is not readable - -# generalError=Error: %S - -# Strings in configure.jsm -# enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -# enigmailCommon.checkPreferences=Check Preferences ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=يُشغل Enigmail إصدارة %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=يستخدم %S التنفيذي %S للتعمية والتظهير agentError=عطل: فشلت في النفاذ إلى خدمة Enigmime - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=عطل أثناء النفاذ لخدمة Enigmime -onlyGPG=يعمل توليد المفاتيح فقط مع GnuPG (وليس PGP)! - -keygenComplete=اكتمل توليد المفتاح! ستُستخدم الهوية <%S> للتوقيع. -revokeCertRecommended=ننصح بشدة أن تنشئ شهادة نقض المفتاح. لتستخدم هذه لشهادة لإبطال المفتاح، مثلا في حال ضياع المفتاح السري أو انكشافه. أتريد إنشاءها الآن؟ -keyMan.button.generateCert=&ولِّد شهادة -genCompleteNoSign=تم توليد المفتاح! -genGoing=توليد المفتاح جار بالفعل! - -passNoMatch=عبارتا السر لا تتطابقا، أعد الإدخال من فضلك -passCheckBox=من فضلك أشّر هذا إن كنت لن تضع عبارة سر للمفتاح (غير محبذ) -passUserName=من فضلك حدد اسم المستخدم لهذه الهوية -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -# passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character. -changePassFailed=فشل تغيير كلمة السر. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=ولِّد م&فتاحا -keyAbort=أأجهض توليد المفتاح؟ -keyMan.button.generateKeyAbort=أجه&ض توليد المفتاح -keyMan.button.generateKeyContinue=&عاود توليد المفتاح -expiryTooLong=لا يمكنك إنشاء مفتاح تنتهي صلاحيته بعد أكثر من 100 عام. -# expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -expiryTooShort=يجب أن يكون المفتاح صالحا ليوم واحد على الأقل. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -# setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -securityInfo=معلومات خصوصية Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=قد تكون رسالة PGP/MIME معماة أو موقّعة؛ انقر 'ظهِّر' للتأكد - -saveAttachmentHeader=Enigmail: احفظ المرفقة المُظهَّرة -noTempDir=تعذّر العثور على دليل مؤقت للكتابه فيه\nمن فضلك اضبط متغير البيئة TEMP -attachmentPgpKey=المرفقة '%S' الذي تفتحها تبدو كملف مفاتيح OpenPGP.\n\nانقر 'نعم' لتصدير المفاتيح التي تحتويها أو 'لا' لعرض محتويات الملف في نافذة المتصفح - -beginPgpPart=********* *بداية الجزء المعمى أو الموقّع* ********* -endPgpPart=********* *نهاية الجزء المعمى أو الموقّع* ********* -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *توجد عدة كتل رسائل -- أُجهض التظهير/التحقق* - -decryptOkNoSig=تحذير\n\nكان التظهير ناجحا، لكن تعذر التحقق من التوقيع بشكل صحيح -msgOvl.button.contAnyway=&واصل على أي حال -signature.verifiedOK=The signature for attachment %S was successfully verified -signature.verifyFailed=The signature for attachment %S could not be verified -attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=اختر مفتاح OpenPGP لإدراجه keysToUse=اختر مفتاح OpenPGP لاستخدامه لأجل %S pubKey=مفتاح %S العلني\n - -windowLocked=نافذة التحرير مُقفلة؛ أُلغِي الإرسال -sendUnencrypted=فشل بدء Enigmail.\nأأرسل رسالة غير مُعمّاة؟ -composeSpecifyEmail=من فضلك حدد عنوان بريدك الأساسي الذي سيُستخدم لاختيار مفتاح توقيع الرسائل الصادرة.\n إذا تركته خاويا فسيستخدم عنوان حقل 'مِن' في الرسالة لاختيار مفتاح التوقيع. -sendingHiddenRcpt=بعض متلقي هذه الرسالة يتلقونها في العماء (BCC)، إن عُمِّيت هذه الرسالة فلن تظهر أسماؤهم كمتلقين للرسالة غير أن بعض أدوات التعمية (مثل التي تنتجها شركة PGP) لن يكون يمكنها تظهير الرسالة، لذا نُحبِّذ تفادي المزاوجة بين التعمية و المتلقين في العماء (BCC) -sendWithHiddenBcc=أخفِ المتلقين في العماء (BCC) -sendWithShownBcc=عمِّ كالمعتاد -sendingNews=أُجهِضت عمليّة الإرسال المُعمّى.\n\nلا يمكن تعمية هذه الرسالة لوجود مجموعات بريدية ضمن المستلمين. من فضلك أعد إرسال الرسالة بدون تعمية. -sendToNewsWarning=تحذير: أنت بصدد إرسال رسالة معماة إلى مجموعة أخبار (newsgroup)،\n\nو هذا غير مُحبَّذ لأنه لا معنى له إلا إن كان بوسع جميع أعضاء المجموعة تظهير الرسالة، أي أن الرسالة تنبغي تعميتها بمفاتيح جميع المشاركين في المجموعة. أرسل هذه الرسالة إن كنت تعلم ما تفعل.\n\nأأواصل؟ -hasHTML=تحذير بريد HTML:\nربما تحتوي هذه الرسالة على رَقْم HTML، مما قد يتسبب في فشل التوقيع/التعمية. لتتفادى هذا في المستقبل، يجب أن تضغط زر SHIFT أثناء النقر على زر حرر/رُد لإرسال بريد مُوقّع.\nإذا كنت توقع البريد بدئيا، يستحسن أن تلغي تفضيل 'حرر رسائل HTML' لتعطيل بريد HTML بشكل دائم لحساب البريد هذا. -strippingHTML=تحتوي الرسالة على معلومات تنسيق HTML ستُفقد عند تحويلها إلى نص صِرف لتوقيعه/تعميته. أترغب في المتابعة؟ -msgCompose.button.sendAnyway=أر&سل الرسالة على أي حال -attachWarning=مرفقات هذه الرسالة ليست محلِّية لذا لا تُمكن تعميتها. لتعمية المرفقات احفظها أولا كملفات محلية ثم أرفق الملفات. أترغب إرسال الرسالة بالرغم من ذلك؟ quotedPrintableWarn=لقد فعّلت ترميز 'quoted-printable' للرسائل الصادرة، مما قد يؤدي إلى أخطاء عند تظهيرها أو التحقق.\nأترغب في تعطيل الإرسال بترميز 'quoted-printable' الآن؟ -minimalLineWrapping=لقد ضبطت طول السطر على %S حرف. لتعمية و/أو توقيع سليمين، ينبغي لهذه القيمة أن تكون 68 على الأقل.\nأتريد تغيير طول السطر إلى 68 حرفا الآن؟ warning=تحذير -signIconClicked=لقد قمت يدويا بتغيير تفعيل التوقيع. لذا ففيما يتعلق بهذه الرسالة فإن تفعيل/تعطيل التوقيع لم يعد يعتمد على تفعيل/تعطيل التعمية. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=ظ - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -msgCompose.pepSendSecure=آمن -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=أُجهِضت عملية الإرسال.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=مُوقّع -statEncrypted=مُعمّى -statPlain=نص صريح و غير مُوقَّع - -offlineSave=أأحفظ الرسالة %S إلى %S في مجلد الرسائل غير المرسلة؟ - -onlineSend=أأرسل الرسالة %S إلى %S؟ -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=أر&سل الرسالة بلا تعمية -recipientsSelectionHdr=اختر المستلمين للتعمية - -configureNow=لم تضبط خصوصية Enigmail للهوية المختارة. أترغب في فعل هذا الآن؟ - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=عمِّ الرسالة -# signMessageAuto=Sign Message (auto) -signMessageNorm=وقّع الرسالة - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=ستُعمّى الرسالة -encryptNo=لن تُعمّى الرسالة - -# should not be used anymore: -signYes=ستُوقّع الرسالة -signNo=لن تُوقّع الرسالة - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=وُجِدت قواعد مستلمين متعارضة\n%S\n\nأأرسل الرسالة بهذه الإعدادات؟ -msgCompose.button.configure=ا&ضبط -msgCompose.button.send=أ&رسل الرسالة -msgCompose.button.save=ا&حفظ الرسالة - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=المفتاح العلني %S مطلوب للتحقق من التوقيع -# keyUsed=Public key %S used to verify signature -clickDecrypt='؛ انقر زر 'ظهِّر -clickDecryptRetry=؛ انقر زر 'ظهِّر' لتعيد المحاولة -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=ظهِّر -msgPart=جزة من الرسالة %S -msgSigned=مُوقّعة -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=مُعمّاة -msgSignedAndEnc=مُوقّعة و مُعمّاة - unverifiedSig=توقيع غير مُحقق -incompleteDecrypt=التظهير ناقص -needKey=عُطل - بحاجة لمفتاح سري لتعمية الرسالة -failedDecrypt=عُطل - فشل التظهير badPhrase=عُطل - عبارة سر غير صحيحة # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=عُطل - فشل التظهير/التحقق -viewInfo=؛ اعرض > معلومات خصوصية الرسالة للتفاصيل -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=ظهِّر الرسالة -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=حدد موضع برمجية GnuPG -invalidGpgPath=لا يُمكن تنفيذ GnuPG من المسار المُعطى. لذا سيُعطّل Enigmail حتى تُغيّر المسار إلى GnuPG أو تُعيد تشغيل التطبيق. -warningsAreReset=تم تصفير كل التحذيرات. -prefs.gpgFound=وُجِد GnuPG في %S -prefs.gpgNotFound=تعذَّر إيجاد برمجية GnuPG '%S'.\nتأكد من ضبط مسار ملف GnuPG التنفيذي في تفضيلات Enigmail. -prefs.warnAskNever=تحذير: تفعيل هذا الخيار سيؤدي إلى إرسال بغير تعمية دون أي تنويهات إذا لم يوجد مفتاح لأحد المُستلمين -- لن يُنبهك Enigmail عند حدوث ذلك! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=عطل - لا يمكن تحديد سوى خادوم مفاتيح واحد لجلب مفاتيح OpenPGP الناقصة. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=من فضلك أدخل PIN المدير لبطاقتك الذكية (SmartCard) -enterCardPin=من فضلك أدخل PIN بطاقتك الذكية (SmartCard) - -notInit=عُطل - لم تستبدأ خدمة Enigmail بعد badCommand=عُطل - فشل أمر التعمية cmdLine=خرج سطر الأوامر: -notRequired=عُطل - لا تعمية مطلوبة -notComplete=عُطل - لم يتم توليد المفتاح -invalidEmail=عُطل - عنوان بريد غير صحيح noPassphrase=عُطل - لم تدخل أية عبارة سر noPGPblock=عُطل - لم يُعثر على أي كتل بيانات OpenPGP مدرّع -unverifiedReply=جزء الرسالة المزاح (الرد) قد تغيير على الأغلب -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=عُطل - توقيع غير صحيح -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=البطاقة الذكية %S الموجودة في القارئ لا يمكن استخدامها لمعالجة الرسالة.\nأدخل البطاقة الذكية %S و أعد العملية. sc.insertCard=تتطلب هذه العملية البطاقة الذكية %S.\nأدخل البطاقة الذكية المطلوبة و أعد العملية. sc.removeCard=تتطلب هذه العملية ألا توجد في القارئ بطاقة ذكية.\nأخرج البطاقة الذكية و أعد العملية. @@ -376,7 +39,6 @@ sc.noReaderAvailable=لا يمكن النفاذ إلى قارئ البطاقات الذكية\nأوصل قارئ البطاقات الذكية ثم أدخل البطاقة ثم أعد العملية. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=تعذر تحديد موضع برمجية GnuPG '%S'.\nتأكد أنك ضبطت مسار ملف GnuPG التنفيذي صحيحا في تفضيلات Enigmail. gpgNotInPath=تعذَّر إيجاد برمجية GnuPG في المسار المعرَّف PATH.\nتأكد من ضبط مسار ملف GnuPG التنفيذي في تفضيلات Enigmail. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=توقيع صحيح من %S -prefBad=توقيع غير صحيح من %S - failCancel=عُطل - ألغى المستخدم جلب المفتاح failKeyExtract=عُطل - فشل أمر استخراج المفتاح -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=عُطل - أول كتلة OpenPGP ليست كتلة مفتاح علني importKeyConfirm=أأستورد المفاتيح العلنية المضمنة في الرسالة؟ -failKeyImport=عُطل - فشل استيراد المفتاح fileWriteFailed=فشلت الكتابة في الملف %S - importKey=استورد المفتاح العلني %S من خادوم المفاتيح uploadKey=أرسل المفتاح العلني %S إلى الخادوم keyId=هويّة المفتاح -keyAndSigDate=معرِّف المفتاح: 0x%S / مُوقع في: %S -keyFpr=بصمة المفتاح: %S -noEmailProvided=لم تُعط عنوان بريد! -keyAlreadySigned=المفتاح مُوقَّع مسبقا، لا يمكن توقيعه مرتين. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=انتهى %S createdHeader=تاريخ الإنشاء atLeastOneKey=لم تختر أي مفاتيح! ينبغي اختيار مفتاح واحد على الأقل لقبول هذا الحوار fewerKeysThanRecipients=قد اخترت عددا من المفاتيح أقل من عدد المرسل إليهم. أمتأكد أن قائمة مفاتيح التعمية كاملة؟ @@ -420,168 +64,34 @@ userSel.secretKeySel.title=اختر مفتاح OpenPGP سريا لتوقيع رسائلك. # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=الأوّل second=الثّاني - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=اختر مفتاح OpenPGP للتعمية -identityName=الهوية: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=لقد فعّلت التعمية لكنك لم تختر مفتاحا. لتعمي الرسائل إلى %S ينبغي لك تحديد مفتاح سليم أو أكثر من قائمة المفاتيح. أترغب في تعطيل التعمية إلى %S؟ -noKeyToUse=(لا شيء - لا تعمية) -noEmptyRule=لا يمكن أن تكون القاعدة خاوية! من فضلك ضع عنوان بريد في حقل القاعدة. -invalidAddress=عناوين البريد التي أدخلتها ليست سليمة. يجب ألا تضع أسماء المستلمين؛ فقط عناوين البريد. مثلا:\nغير سليم: اسم ما \nسليم : some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=أبدًا always=دائمًا possible=ممكن -deleteRule=أأحذف القاعدة المختارة حقا؟ -nextRcpt=(المستلم التالي) -negateRule=ليس -addKeyToRule=Add key %S (%S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=الخاصية التي اخترتها غير متاحة في طور عدم الاتصال. من فضلك تحول إلى طور الاتصال وحاول مجددا. -noKeyserverConn=تعذّر الاتصال بخادوم المفاتيح %S. -internalError=حدث عطل داخلي. تعذّر جلب المفاتيح أو استيرادها. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=فشل ضبط الثقة في المالك - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=فشل توقيع المفتاح -alreadySigned.label=ملاحظة: المفتاح %S موقَّع مسبقا بالمفتاح السريِّ المختار -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=يُحمِّل المفاتيح، من فضلك انتظر... keyValid.unknown=مجهول keyValid.invalid=غير صحيح keyValid.disabled=معطّل keyValid.revoked=منقوض keyValid.expired=انتهت صلاحيته keyValid.noSubkey=لا مفتاح فرعي صالح - -keyTrust.untrusted=منعدمة +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=هامشية keyTrust.full=تامة keyTrust.ultimate=مطلقة keyTrust.group=(مجموعة) -keyType.public=علني -keyType.publicAndSec=علني/سري -keyMan.enableKey=فعّل المفتاح -keyMan.disableKey=عطّل المفتاح userAtt.photo=خصيصة المستخدم (صورة JPEG) - -asciiArmorFile=‮ملفات أسكي (‪ASCII‬) مُدرّعة (*.‪asc‬) importKeyFile=Import OpenPGP Key File -gnupgFile=ملفات GnuPG -saveRevokeCertAs=أنشئ واحفظ شهادة نقض -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=تعذّر إنشاء شهادة النقض. - -addUidOK=تمت إضافة هوية المستخدم بنجاح -addUidFailed=فشلت إضافة هوية المستخدم -noKeySelected=يجب أن تختار مفتاحا واحدا على الأقل لإجراء العملية المطلوبة -exportToFile=صدّر المفتاح العلني إلى ملف -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=أتريد تضمين المفتاح السري في ملف مفتاح OpenPGP المحفوظ؟ -saveKeysOK=تم حفظ المفاتيح بنجاح -saveKeysFailed=فشل حفظ المفاتيح -importKeysFailed=فشل استيراد المفاتيح -enableKeyFailed=فشل تفعيل/تعطيل المفاتيح -# specificPubKeyFilename=%1$S (0x%2$S) pub -# specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -# defaultPubKeyFilename=Exported-public-keys -# defaultPubSecKeyFilename=Exported-public-and-secret-keys - -sendKeysOk=تم إرسال المفاتيح بنجاح -sendKeysFailed=فشل إرسال المفاتيح -receiveKeysOk=تم تحديث المفاتيح بنجاح -receiveKeysFailed=فشل جلب المفاتيح -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=أتريد استيراد المفاتيح من الحافظة؟ -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=تعذر نسخ المفاتيح المختارة إلى الحافظة. -copyToClipbrdOK=تم نسخ المفاتيح إلى الحافظة - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=تحذير: أنت بصدد حذف مفتاح سري!\nإن حذفت مفتاحك السري فلن يعود بوسعك تظهير أية رسالة عُمِّيت لهذا المفتاح، ولن تستطيع نقض المفتاح كذلك.\n\nأترغب حقا في حذف كلا المفتاحين السري والعلني؟ -deletePubKey=أتريد حذف المفتاح العلني\n'%S'؟ -deleteSelectedPubKey=أتريد حذف المفاتيح العلنية؟ -deleteKeyFailed=تعذّر حذف المفتاح. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=لقد تم نقض هذا المفتاح. إذا كان مفتاحك منشورا على خادوم مفاتيح فيُفضّل أن تعيد رفعه ليرى الآخرون النقض. -revokeKeyFailed=تعذّر نقض المفتاح. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=لم تختر أي مفتاح. أتريد تحديث كل المفاتيح؟ -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=تحذير: طبقا لعدد المفاتيح وسرعة الاتصال فقد يستغرق تحديث كل المفاتيح وقتا طويلا نوعا ما. -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=&صدِّر المفاتيح السرية -keyMan.button.exportPubKey=Export &Public Keys Only keyMan.button.import=ا&ستورد -keyMan.button.refreshAll=&حدِّث كل المفاتيح keyMan.button.revokeKey=ان&قض المفتاح - -keylist.noOtherUids=ليست له هويات أخرى -keylist.hasOtherUids=معروف كذلك باسم -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -# keyMan.addphoto.filepicker.title=Select photo to add -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -# keyMan.addphoto.failed=The photo could not be added. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=فشل تغيير هوية المستخدم الأساسية -changePrimUidOK=تم تغيير هوية المستخدم الأساسية بنجاح -revokeUidFailed=فشل سحب هوية المستخدم %S -revokeUidOK=تم نقض هوية المستخدم %S بنجاح. إذا كان مفتاحك منشورا على خادوم مفاتيح فيُفضّل أن تعيد رفعه ليرى الآخرون النقض. -revokeUidQuestion=أترغب حقا في نقض هوية المستخدم هذه %S؟ - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=تاريخ الإنشاء -importInfoFpr=البصمة -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=مفتاح علني -keyTypePrimary=primary key -keyTypeSubkey=مفتاح فرعي -keyTypePair=زوج مفاتيح -keyExpiryNever=أبدا keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=الجمل # keyAlgorithm_22=EDDSA -keyUsageEncrypt=عمِّ -keyUsageSign=وقّع -# keyUsageCertify=Certify -# keyUsageAuthentication=Authentication -keyDoesNotExpire=ليس للمفتاح مدة صلاحية محددة - -# Strings in enigmailGenCardKey.xul -keygen.started=من فضلك انتظر بينما يجري توليد المفتاح... -keygen.completed=تم توليد المفتاح. معرِّف المفتاح الجديد هو: 0x%S -keygen.keyBackup=تم حفظ المفتاح احتياطيا باسم %S -keygen.passRequired=من فضلك حدد عبارة سر إذا كنت تريد إنشاء نسخة احتياطية من مفتاحك خارج البطاقة الذكية. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=فشل تغيير PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=يجري تحديث المفاتيح؛ انتظر... -keyserverProgress.uploading=يجري رفع المفاتيح؛ انتظر... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=تم تحديث المفاتيح -keyserverTitle.uploading=تم تحديث المفتاح -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=ينبغي أن تدخل اسما و عنوان بريد إلكتروني -addUidDlg.nameMinLengthError=ينبغي أن يتألف الاسم من خمسة محارف على الأقل -addUidDlg.invalidEmailError=ينبغي أن تضع عنوان بريد صحيح - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. # errorType.SecurityProtocol=The security protocol used by the web service is unknown. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=آمن -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=عن Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/ar/help/compose.html enigmail-2.2.4/lang/ar/help/compose.html --- enigmail-2.1.6+ds1/lang/ar/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ar/help/editRcptRule.html enigmail-2.2.4/lang/ar/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ar/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/ar/help/initError.html enigmail-2.2.4/lang/ar/help/initError.html --- enigmail-2.1.6+ds1/lang/ar/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/ar/help/messenger.html enigmail-2.2.4/lang/ar/help/messenger.html --- enigmail-2.1.6+ds1/lang/ar/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ar/help/rulesEditor.html enigmail-2.2.4/lang/ar/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ar/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ar/help/sendingPrefs.html enigmail-2.2.4/lang/ar/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ar/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ar/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/bg/am-enigprefs.properties enigmail-2.2.4/lang/bg/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/bg/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Security +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/bg/enigmail.dtd enigmail-2.2.4/lang/bg/enigmail.dtd --- enigmail-2.1.6+ds1/lang/bg/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' за да уточните имейл адресите"> - - -' символи за да уточните имейл адреси за GnuPG. Изключете ако получателите имат стари Hushmail ключове."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Забележка: Генерирането на ключа може да отнеме няколко минути. Не излизайте от приложението докато трае генерирането на ключа. Активното браузване или извършването на активни операции с диска по време на генерирането на ключа ще генерира 'случайни числа' и ще ускори процеса. Ще бъдете уведомени, когато генерирането на ключа приключи."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' е невалидно"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Забележка: Генерирането на ключа може да отнеме няколко минути. Не излизайте от приложението докато трае генерирането на ключа. Ще бъдете уведомени, когато генерирането на ключа приключи"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/bg/enigmail.properties enigmail-2.2.4/lang/bg/enigmail.properties --- enigmail-2.1.6+ds1/lang/bg/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail Предупреждение # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail Грешка enigPrompt=Enigmail Напомняне - -dlgYes=&Да dlgNo=&Не dlgKeepSetting=Запомни отговора и не питай отново dlgNoPrompt=Не показвай този диалог отново -dlg.button.delete=&Изтриване dlg.button.cancel=&Отказ dlg.button.close=&Затваряне dlg.button.continue=Продължаване -dlg.button.skip=&Пропускане -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Отвори -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nТова предупреждение ще се повтори %S repeatSuffixSingular=един път. repeatSuffixPlural=повече пъти. noRepeat=\n\nТова предупреждение няма да се повтаря докато не обновите Enigmail. - -pgpNotSupported=Желаете да използвате Enigmail заедно с PGP 6.x\n\nза съжаление, PGP 6.x има проблеми, който не позволяват на Enigmail да работи коректно. Ето защо, Enigmail не поддържа PGP 6.x повече; моля инсталирайте GnuPG (GPG) поддръжка.\n\nАко се нуждаете от помощ за инсталиране на GnuPG, се обърнете към секцията за помощ, намираща се на заглавната страница на Enigmail. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=Паролата за защита на частния ключ беше изтрита. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Няма налична снимка -debugLog.title=Enigmail дебъгер дневник -# error.photoPathNotReadable=Photo path '%S' is not readable - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Тази нова версия на Enigmail има значителни промени в боравенето с предпочитанията и възможностите. Опитахме се да прехвърлим старите настройки в тази нова версия. Въпреки това, ние не можахме да обхванем всичко автоматично. Моля, проврете отново получените нови преференции и възможности. -enigmailCommon.checkPreferences=Проверeте Преференциите ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Използваната Enigmail версия е %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Използва се %S изпълним файл %S за криптиране и декриптиране agentError=ERROR: Грешка при опит за достъп до Enigmime услуги! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Грешка при опит за достъп до Enigmail услуги -onlyGPG=Генерирането на ключове работи само с GnuPG (не работи с PGP)! - -keygenComplete=Генерирането на ключа е готово! Идентификацията <%S> ще бъде използвана за подписване. -revokeCertRecommended=Силно препоръчваме да създадете нулиращ сертификат за вашият ключ. Този сертификат може да се използва девалидиране, в случай че вашият секретен ключ бъде изгубен или компроментиран. Желаете ли да създадете нулиращ сертификат сега? -keyMan.button.generateCert=&Генериране на сертификат -genCompleteNoSign=Генерирането на ключа е готово! -genGoing=Генерирането на ключа е в прогрес! - -passNoMatch=Паролите за защита на частния ключ не съвпадат! Моля въведете ги отново! -passCheckBox=Моля маркирайте опцията 'Без парола за защита на частния ключ', ако не желаете да използвате парола -passUserName=Моля въведете потребителско име за тази идентификация -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=\nПоради технически причини, паролата ви, не може да започне или завърши с интервал. -changePassFailed=Промяната на паролата за защита на частния ключ е неуспешна. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Генериране на ключ -keyAbort=Да се прекъсне ли генерирането на ключ? -keyMan.button.generateKeyAbort=&Прекъсване на генерирането на ключ -keyMan.button.generateKeyContinue=&Продължаване на генерирането на ключ -expiryTooLong=Не може да създавате ключ със срок на валидност по-голям от 100 години. -expiryTooLongShorter=Вие не можете да създадете ключ, който изтича след повече от 90 години. -expiryTooShort=Ключа трябва да има валидност поне един ден. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Срокът на валидност не може да бъде променен - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail информация за сигурност\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Възможно е съобщението да е криптирано или подписано с PGP/MIME; натиснете бутона 'Декриптирай' за да го проверите - -saveAttachmentHeader=Enigmail: Запишете декриптирания прикачен файл -noTempDir=Не може да бъде намерен път към временна директория\nМоля конфигурирайте пътя към временната директория -attachmentPgpKey=Прикаченият файл '%S' който отваряте съдържа OpenPGP ключ файл.\n\nНатиснете 'Внеси' за да запишете съдържащите се ключове или 'Отвори' за да разгледате съдържанието на файла - -beginPgpPart=********* *НАЧАЛО НА КРИПТИРАНАТА ИЛИ ПОДПИСАНАТА ЧАСТ* ********* -endPgpPart=********** *КРАЙ НА КРИПТИРАНАТА ИЛИ ПОДПИСАНАТА ЧАСТ* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *В съобщението са намерени множество блокове -- декриптирането/проверката са прекъснати* - -decryptOkNoSig=Предупреждение\n\nДекриптирането беше успешно, но подписа не не беше проверен коректно -msgOvl.button.contAnyway=&Въпреки това продължете -# signature.verifiedOK=The signature for attachment %S was successfully verified -signature.verifyFailed=Подписът за прикрепване на файл %S беше успешно проверена -attachment.noMatchToSignature=Няма съвпадение на прикачения файл '%S' към подписа на файла -attachment.noMatchFromSignature=Няма съвпадение на подписания файл '%S' към прикачения файл -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Изберете OpenPGP ключове за внасяне keysToUse=Изберете OpenPGP Ключ(ове) за да ги използвате за %S pubKey=Публичен ключ за %S\n - -windowLocked=Прозореца за съставяне на съобщения е блокиран; изпращането е прекратено -sendUnencrypted=Грешка при инициализирането на Enigmail.\nДа се изпрати ли некриптирано съобщение? -composeSpecifyEmail=Моля уточните своя първичен пощенски адрес, който ще се използва за подписване на изходящите съобщения.\nАко оставите полето празно, за подписване на съобщението ще бъде използван адреса от полето 'От'. -sendingHiddenRcpt=Това съобщение съдържа скрити копия (BCC) към някой от получателите. Ако то е криптирано, може да изпратите скрити копия към тези получатели, но тези от тях които използват други програми (например: PGP Corp.) няма да могат да декриптират съобщението. Уточнявайки това, препоръчваме да избягвате скрити копия (BCC) при изпращане на криптирани съобщения. -sendWithHiddenBcc=Скрит получател на скрито копие -sendWithShownBcc=Криптирай нормално -sendingNews=Изпращането на криптирано съобщение е прекратено.\n\nТова съобщение не може да бъде криптирано защото съдържа newsgroup получатели. Моля изпратете съобщението отново без да го криптирате. -sendToNewsWarning=Предупреждение: на път сте да изпратите криптирано писмо къm newsgroup.\n\nТова не е препоръчително, защото има смисъл, само ако всички членове на групата може да декриптират съобщението, т.е.съобщението трябва да бъде криптирано с ключовете на всички участници в групата. Моля изпратете това съобщение само ако знаете какео правите.\n\nДа продължа ли? -hasHTML=HTML mail warning:\nТова съобщение може да съдържа HTML, и това да доведе до неуспешно криптиране/подписване. За да избегнете това в бъдеще, трябва да задържите 'SHIFT' бутона и да натиснете Състави/Отговори бутон за да изпращате криптирани писма.\nАко подписвате съобщенията по-подразбиране, трябва да деактивирате 'Съставяй съобщенията като HTML' за постоянно деактивиране на HTML съобщенията за този имейл акаунт. -strippingHTML=Съобщението съсържа HTML форматиране и тя ще бъде изгубена при преминаването към нормален текст за подписване/криптиране. Желаете ли да продължите? -msgCompose.button.sendAnyway=&Изпратете съобщението въпреки това -attachWarning=Прикачените файлове към това съобщение не са записани на вашия компютър и не може да бъдат криптирани. За да криптирате прикачените файлове, първо ги запишете на вашия компютър и след това ги прикачете. Желаете ли все пак да изпратите това съобщение? quotedPrintableWarn=Вие сте активирали 'quoted-printable' кодиране за вашите изходящи съобщения. Това може да доведе до неправилно декриптиране и/или проверка на вашето съобщение.\nЖелаете ли да изключите изпращането на 'quoted-printable' съобщения сега? -minimalLineWrapping=Вие решихте да изравните редовете по %S символа ширина. За правилно криптиране и/или подписване, тази стойност трябва да е най-малко 68.\nЖелаете ли да промените подравняването на 68 символа? warning=Предупреждение -signIconClicked=Вие ръчно определихте дали да се подписва съобщението. Ето защо използването на подписване не зависи от използването на криптиране. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -msgCompose.toolbarTxt.signOnly=Това съобщение ще бъде подписано -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -msgCompose.toolbarTxt.noEncryption=Това съобщение ще бъде неподписано и некодирано -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Изпращането е прекъснато.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=ПОДПИСАНО -statEncrypted=EКОДИРАНО -statPlain=НЕПОДПИСАНО и НЕКРИПТИРАНО - -offlineSave=Да запиша ли %S съобщението %S в папката за неизпратени съобщения? - -onlineSend=Да изпратя ли %S съобщение на %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Изпращане на некриптирано съобщение -recipientsSelectionHdr=Избери получателите на криптираното съобщение - -configureNow=Не сте конфигирурали тази потребителска идентификация за работа с Enigmail. Найстина ли желаете да направите това? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Криптиране на съобщението -# signMessageAuto=Sign Message (auto) -signMessageNorm=Подписване на съобщенето - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=принудени от автоматичното криптиране -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=поради режим на криптиране - -# should not be used anymore: -encryptYes=Съобщението ще бъде криптирано -encryptNo=Съобщението няма да бъде криптирано - -# should not be used anymore: -signYes=Съобщението ще бъде подписано -signNo=Съобщението няма да бъде подписано - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME ще бъдат използвани -pgpmimeNo=Inline PGP ще бъдат използван - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Възникна конфликт с правилата на получателя\n%S\n\nДа изпратя ли съобщението с тези настройки? -msgCompose.button.configure=&Настройки -msgCompose.button.send=&Изпращане на съобщение -msgCompose.button.save=&Запис на съобщение - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=За проверка на подписа се нуждаете от публичния ключ %S -keyUsed=Публичния ключ %S се използва за проверка на подпис -clickDecrypt=; натиснете бутона за Декриптиране -clickDecryptRetry=; натиснете бутона за Декриптиране за повторен опит -clickDetailsButton=; щракнете върху бутона 'Детайли' за повече информация -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Декриптиране -msgPart=Част от съобщението %S -msgSigned=подписано -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=криптирано -msgSignedAndEnc=подписано и криптирано - unverifiedSig=Непроверен цифров подпис -incompleteDecrypt=Декриптирането е неуспешно -needKey=Грешка - за да декриптирате съобщението имате нужда от секретния ключ -failedDecrypt=Грешка - декриптирането е неуспешно badPhrase=Грешка - грешна парола за защита на частния ключ # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Грешка - декриптирането или проверката на цифровия подпис е неуспешно -viewInfo=; View > Информация за детайлите на сигурността на съобщението -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Декриптирано съобщение -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Намерете програмата GnuPG -invalidGpgPath=Изпълнимият файл на GnuPG не може да бъде намерен в указаната директория. Ето защо Enigmail ще бъде деактивиран . -warningsAreReset=Всички предупреждения ще бъдат нулирани. -prefs.gpgFound=GnuPG е намерен в %S -prefs.gpgNotFound=Не може да бъде намерен GnuPG -prefs.warnAskNever=Предупреждение: активирането на тази опция ще доведе до некриптирани имейли без всякаква допълнителна информация, ако няма ключ за някой от получателите - Enigmail няма да ви информира, ако това се случи! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=Грешка - може да изберете само един сървър за ключове за свалене на липстващи OpenPGP ключове. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Моля въведете администраторски ПИН на вашата Смарткарта -enterCardPin=Моля въведете ПИН-а на вашата Смарткарта - -notInit=Грешка - Enigmail услугите все още не са инициализирани badCommand=Грешка - грешка при криптирането cmdLine=командна линия и изход: -notRequired=Грешка - не се изисква криптиране -notComplete=Грешка - генерирането на ключа все още не е приключило -invalidEmail=Грешка - грешен имейл адрес(и) noPassphrase=Грешка - не беше въведена парола за защита на частния ключ noPGPblock=Грешка - Не е намерен защитения блок с данни на OpenPGP -unverifiedReply=Indented message part (reply) was probably modified -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Грешка - Подписите не съвпадат -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Смарткартата %S намерена във вашия четец не може да бъде използвана за обработка на съобщението.\nМоля поставете своята Смарткарта %S отново и повторете операцията. sc.insertCard=Операцията изисква вашата Смарткарта %S.\nМоля поставете изискваната Смарткарта и повторете операцията. sc.removeCard=Операцията изисква вашата Смарткарта да бъде поставена в четеца.\nМоля сложете вашата Смарткарта и повторете операцията. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Вашият четец за Смарт карти е недостъпен.\nМоля свържете вашия четец за Смарткарти, поставете вашата карта, и повторете операцията. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=Невъзможно е да се намери GnuPG програмата '%S'.\nУверете се, че сте задали пътя на изпълнимия GnuPG файли в настройките. gpgNotInPath=Невъзможно е да се намери GnuPG изпълнимия файл.\nУверете се, че сте задали пътя на изпълнимия GnuPG файли в настройките. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=Правилен подпис от %S -prefBad=Неправилен подпис от %S - failCancel=Error - Получаването на ключа е отменено от потребителя failKeyExtract=Error - извличането на ключа е неуспешно -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Error - Първият OpenPGP блок не е блок на публичния ключ importKeyConfirm=Да импортирам ли ключа(овете) приложени в съобщението? -failKeyImport=Error - внасянето ня ключа е неуспешно fileWriteFailed=Записа на файла е неуспешен %S - importKey=Внасяне на публичния ключ %S от сървъра за ключове: uploadKey=Изпратете публичният ключ %S към сървъра за ключове: keyId=Идентификатор на ключа -keyAndSigDate=Идентификатор на ключа: 0x%S / Подписан: %S -keyFpr=Отпечатък на ключа: %S -noEmailProvided=Не сте указали адрес за електронна поща! -keyAlreadySigned=Ключа е вече подписан, не може да го подписвате повторно. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=изтича %S createdHeader=Създаден на atLeastOneKey=Не е избран ключ! Трябва да изберете поне един ключ fewerKeysThanRecipients=Избраните от вас ключове са по-малко от броя на получателите. Сигурни ли сте че листа с ключове за шифроване е пълен? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Изберете секретен OpenPGP ключ за да подписвате съобщения userSel.problemNoKey=Няма валиден ключ userSel.problemMultipleKeys=Множество ключове -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=първата second=втората - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Изберете OpenPGP ключ за криптиране -identityName=Самоличност: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Имате активирано криптиране, но все ощч не сте избрали ключ. За да криптирате съобщенията изпращани на %S, трябва да изберете един или няколко ключа от вашия лист. Желаете ли да деактивирате криптирането за %S? -noKeyToUse=(Без - без криптиране) -noEmptyRule=Правилото не може да е празно! Моля въведете имейл адрес и попълнете полето на правилото. -invalidAddress=Имейл адреса(ите), който сте въвели не са валидни. Не трябва да въвеждате имената на потребителите, а само техните имейл адреси. Пример:\nНеправилно: Some Name \nПравилно: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Никога always=Винаги possible=Възможно -deleteRule=Наистина ли желаете да изтриете избраното правило? -nextRcpt=(Следващ получател) -negateRule=Не -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=Функцията която сте избрали не работи в Офлайн режим. Моля преминете в Онлайн режим. -noKeyserverConn=Свързването със сървъра за ключове %S е невъзможно. -internalError=Възникна вътршна грешка. Ключовете не могата да бъдат свалени или внесени. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Задаването на доверие на собственика на ключа е неуспешно - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Подписването на ключа се провали -alreadySigned.label=Забележка: ключа %S е винаги подписан с избрания секретен ключ. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Зареждане на ключовете, моля изчакайте ... keyValid.unknown=непознат keyValid.invalid=невалиден keyValid.disabled=деактивиран keyValid.revoked=анулиран keyValid.expired=изтекъл keyValid.noSubkey=няма валиден подключ - -keyTrust.untrusted=недоверен +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=малко доверен keyTrust.full=доверен keyTrust.ultimate=безкрайно доверен keyTrust.group=(група) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Активиране на ключ -keyMan.disableKey=Деактивиране на ключ userAtt.photo=Атрибут на потребителя (JPEG image) - -asciiArmorFile=ASCII Защитени файлове (*.asc) importKeyFile=Внеси файл за OpenPGP ключ -gnupgFile=GnuPG Файлове -saveRevokeCertAs=Създаване и запис на Анулиращ сертификат -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Анилиращия сертифика не може да бъде създаден. - -addUidOK=Потребителската идентификация е добавена успешно -addUidFailed=Добавянето на потребителската идентификация е неуспешно -noKeySelected=Трябва да изберете поне един ключ за да осъществите избраната операция -exportToFile=Запис на публичния ключ във файл -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Желаете ли да включите секретния ключ в OpenPGP файла, който ще бъде записан? -saveKeysOK=Ключовете бяха успешно записани -saveKeysFailed=Записването на ключовете се провали -importKeysFailed=Внасянето на ключовете се провали -enableKeyFailed=Активирането/деактивирането на ключовете не е успешно -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Изнесени-публични ключове -defaultPubSecKeyFilename=Изнесени-публични-и-секретни-ключове - -sendKeysOk=Ключа(овете) са изпратени успешно -sendKeysFailed=Изпращането на ключовете е неуспешно -receiveKeysOk=Ключа(овете) са обновени успешно -receiveKeysFailed=Свалянето на ключовете пропадна -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Искате ли да внесете ключ(ове) от клипборда? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Не може да копирате избраният ключо(ове) в клипборда. -copyToClipbrdOK=Ключа(овете) са копирани в клипборда - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=Предупреждение: На път сте да изтриете секретния ключ!\nАко изтриете вашия секретен ключ, повече няма да можете дя декриптирате съобщенията криптирани за този ключ.\n\nНаистина ли желаете да изтриете и двата, избрания секретен и публичен ключ? -deletePubKey=Желаете ли да изтриете публичния ключ\n'%S'? -deleteSelectedPubKey=Желаете ли да изтриете публичните ключове? -deleteKeyFailed=Ключа не може да бъде изтрит. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=Ключа ще бъде анулиран. Ако ключа ви е качен на сървъра за ключове, е препоръчително да го качите отново, за да виждат всички че е анулиран. -revokeKeyFailed=Ключа не може да бъде анулиран. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Не сте избрали ключ. Искате ли да обновите всички ключове? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Предупреждение: в зависимост от броя на ключовете и скоростта на връзката, обновяването на всички ключове може да отнеме много време! -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=Експортиране на &Секретните ключове -keyMan.button.exportPubKey=Експортиране &само на Публичните ключове keyMan.button.import=&Внасяне -keyMan.button.refreshAll=&Обновяване на всички ключове keyMan.button.revokeKey=&Нулиране на ключа - -keylist.noOtherUids=Няма други идентификации -keylist.hasOtherUids=Така известни както -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -# keyMan.addphoto.filepicker.title=Select photo to add -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -# keyMan.addphoto.failed=The photo could not be added. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Промяната на основната Потребителска идентификация беше неуспешна -changePrimUidOK=Промяната на основната Потребителска идентификация беше успешна -revokeUidFailed=Анулирането на Потрeбителската идентификация %S беше неуспешно -revokeUidOK=Потрeбителската идентификация %S беше анулирана успешно. Aко сте качили вашият ключ на сървър за ключове, е препоръчително да го качите отново, така останалите потребители ще виждат че е анулиран. -revokeUidQuestion=Наистина ли желаете да анулирате Потребителската идентификация: \n%S - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Създаден на -importInfoFpr=Отпечатък -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=Публичен ключ -keyTypePrimary=Основен ключ -keyTypeSubkey=Подключ -keyTypePair=двойка ключове -keyExpiryNever=безсрочен keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Криптиране -keyUsageSign=Подписване -keyUsageCertify=Потвърждавам -keyUsageAuthentication=Удостоверяване -keyDoesNotExpire=Ключа е безсрочен - -# Strings in enigmailGenCardKey.xul -keygen.started=Моля изчакайте, докато ключа се генерира .... -keygen.completed=Генериране на ключ. Новата идентификация на ключа е: 0x%S -keygen.keyBackup=Създадено беше резервно копие като %S -keygen.passRequired=Моля въведете парола за защита на частния ключ ако желаете да създадете резервно копие на вашия ключ извън вашата Смарткарта. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Смяната на PIN-а беше неуспешна - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Обновяване на ключовете, моля изчакайте ... -keyserverProgress.uploading=Качване на ключовете, моля изчакайте ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Обновяване на ключовете -keyserverTitle.uploading=Качване на ключ -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Трябва да попълните Име и Имейл адрес -addUidDlg.nameMinLengthError=Името ви трябва да съдържа най-малко 5 символа -addUidDlg.invalidEmailError=Трябва да въведете валиден имейл адрес - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. errorType.SecurityProtocol=Протоколът за сигурност, използван от уеб услугата е неизвестен. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -filter.decryptCopy.label=Създайте декриптирано копие (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Относно Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/bg/help/compose.html enigmail-2.2.4/lang/bg/help/compose.html --- enigmail-2.1.6+ds1/lang/bg/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/bg/help/editRcptRule.html enigmail-2.2.4/lang/bg/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/bg/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/bg/help/initError.html enigmail-2.2.4/lang/bg/help/initError.html --- enigmail-2.1.6+ds1/lang/bg/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/bg/help/messenger.html enigmail-2.2.4/lang/bg/help/messenger.html --- enigmail-2.1.6+ds1/lang/bg/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/bg/help/rulesEditor.html enigmail-2.2.4/lang/bg/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/bg/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/bg/help/sendingPrefs.html enigmail-2.2.4/lang/bg/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/bg/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/bg/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/ca/am-enigprefs.properties enigmail-2.2.4/lang/ca/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ca/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Seguretat OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ca/enigmail.dtd enigmail-2.2.4/lang/ca/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ca/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' per indicar les adreces de correu"> - - -' per indicar adreces de correu en el GnuPG. Desactiveu-ho si els destinataris tenen les antigues claus Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: La generació de la clau pot trigar uns quants minuts en acabar. No sortiu del navegador mentre s'està generant la clau. La navegació activa o les operacions d'ús intensiu del disc dur durant la generació de la clau renovaran el 'pou d'atzar' i acceleraran el procés. Rebreu un avís quan acabi el procés de generació de la clau."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' no és vàlid"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: La generació de la clau pot trigar uns minuts en acabar. No sortiu de l'aplicació mentre estigui en curs la generació de la clau. Us avisaré quan acabi la generació de la clau."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ca/enigmail.properties enigmail-2.2.4/lang/ca/enigmail.properties --- enigmail-2.1.6+ds1/lang/ca/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Alerta de l'Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Error de l'Enigmail enigPrompt=Pregunta de l'Enigmail - -dlgYes=&Sí dlgNo=&No dlgKeepSetting=Recorda la meva resposta i no tornis a preguntar-ho dlgNoPrompt=No tornis a mostrar aquest diàleg -dlg.button.delete=&Esborra dlg.button.cancel=&Cancel·la dlg.button.close=Tan&ca dlg.button.continue=Con&tinua -dlg.button.skip=&Omet -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Visualitza -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nAquesta alerta es repetirà %S repeatSuffixSingular=altra vegada. repeatSuffixPlural=vegades més. noRepeat=\n\nAquesta alerta no es repetirà fins que actualitzeu l'Enigmail. - -pgpNotSupported=Sembla que s'està emprant l'Enigmail amb el PGP 6.x \n\nDesafortunadament, el PGP 6.x té una sèrie de problemes que impedeixen que l'Enigmail treballi correctament. Per tant, l'Enigmail no permet utilitzar el PGP 6.x; cal que canvieu a GnuPG (GPG) en el seu lloc.\n\nSi us cal ajuda per canviar al GnuPG, reviseu la secció d'ajuda de la pàgina web de l'Enigmail. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=S'ha netejat la contrasenya. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=No hi ha foto disponible -debugLog.title=Registre de depuració de l'Enigmail -error.photoPathNotReadable=La ubicació de la foto '%S' no es accessible - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=La nova versió de l'Enigmail conté canvis importants a la gestió de les preferències i opcions. S'ha intentat transferir la configuració antiga a la nova versió. No obstant això, no podem cobrir tots els casos automàticament. Comproveu dues vegades les preferències i opcions que han resultat. -enigmailCommon.checkPreferences=Comproveu preferències... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=S'està executant la versió %S de l'Enigmail -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=S'està emprant el %S i l'executable %S per xifrar i desxifrar agentError=ERROR: Ha fallat l'accés al servei Enigmail! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Error al accedir al servei Enigmail -onlyGPG=La generació de la clau només funciona amb el GnuPG (no amb el PGP)! - -keygenComplete=Ha acabat la generació de la clau! S'emprarà la identitat <%S> per signar. -revokeCertRecommended=Us recomano fermament que genereu un certificat de revocació de la vostra clau. Aquest certificat es pot emprar per invalidar la clau, quan, per exemple, la clau secreta es perd o queda compromesa. Voleu generar ara el certificat de revocació? -keyMan.button.generateCert=&Genera el certificat -genCompleteNoSign=Ha acabat la generació de la clau! -genGoing=Ja s'està generant la clau! - -passNoMatch=La contrasenya introduïda no és correcta; torneu-la a introduir -passCheckBox=Marqueu la caixa si no especifiqueu cap contrasenya per la clau -passUserName=Indiqueu el nom d'usuari per aquesta identitat -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=A causa de raons tècniques, la vostra contrasenya no pot començar amb un espai. -changePassFailed=Ha fallat el canvi de contrasenya. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Genera la clau -keyAbort=Cancel·lo la generació de la clau? -keyMan.button.generateKeyAbort=&Interromp la generació de la clau -keyMan.button.generateKeyContinue=&Continua la generació de la clau -expiryTooLong=No podeu crear cap clau que caduqui més enllà dels 100 anys. -expiryTooLongShorter=No podeu crear una clau que caduqui més enllà dels 90 anys. -expiryTooShort=La vostra clau ha de ser vàlida com a mínim durant un dia. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=No s'ha canviat la data de caducitat - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informació de seguretat Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=El missatge segurament s'ha xifrat o signat amb PGP/MIME; cliqueu el botó Desxifra per verificar-ho - -saveAttachmentHeader=Enigmail: Desa l'adjunt desxifrat -noTempDir=No s'ha pogut trobar un directori temporal per escriure-hi. \nEstabliu la variable d'entorn TEMP -attachmentPgpKey=L'adjunt '%S' que esteu obrint sembla ser un fitxer de clau OpenPGP. \n\nCliqueu «Importa» per a importar les claus que conté o «Visualitza» per a mostrar el contingut del fitxer a una finestra del navegador - -beginPgpPart=********* *INICI DE PART XIFRADA o SIGNADA* ******** -endPgpPart=********** *FI DE PART XIFRADA o SIGNADA* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *S'han trobat múltiples blocs de missatge -- s'ha cancel·lat el desxifratge/verificació* - -decryptOkNoSig=Avís\n\nEl desxifratge ha reeixit, però la signatura no s'ha pogut verificar correctament -msgOvl.button.contAnyway=&Continua igualment -# signature.verifiedOK=The signature for attachment %S was successfully verified -# signature.verifyFailed=The signature for attachment %S could not be verified -# attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -# attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Seleccioneu les claus OpenPGP a inserir keysToUse=Seleccioneu les claus OpenPGP per emprar a %S pubKey=Clau pública per a %S\n - -windowLocked=La finestra del redactor està blocada; s'ha cancel·lat l'enviament -sendUnencrypted=Ha fallat la inicialització de l'Enigmail.\nEnvio el missatge sense xifrar? -composeSpecifyEmail=Indiqueu la vostra adreça de correu principal, que s'emprarà per triar la clau de signatura per als missatges de sortida.\n Si la deixeu en blanc, l'adreça DES DE (FROM) del missatge s'emprarà per triar la clau de signatura. -sendingHiddenRcpt=Aquest missatge té destinataris Cco (còpia oculta). Si aquest missatge està xifrat, ès possible ocultar els destinataris però els usuaris d'alguns productes (p.ex. PGP Corp.) no podran desxifrar el missatge. Tenint en compte això, es recomana evitar els correus electrònics amb Cco amb missatges xifrats. -sendWithHiddenBcc=Oculta els destinataris Cco -sendWithShownBcc=Xifra normalment -sendingNews=S'ha cancel·lat l'operació d'enviament xifrat.\n\nAquest missatge no es pot xifrar perquè hi ha destinataris de grups de notícies. Reenvieu aquest missatge sense xifrar. -sendToNewsWarning=Avís: esteu a punt d'enviar un correu xifrat a un grup de notícies.\n\nAixò es desaprova perqué nomès tè sentit si tots els membres del grup poden desxifrar el missatge, ès a dir, cal xifrar el missatge amb les claus de tots els participants del grup. Envieu aquest missatge nomès si sabeu perfectament el qué esteu fent.\n\nContinuo? -hasHTML=Avís de correu HTML:\nAquest missatge pot contenir HTML, que podria causar errades al signar/xifrar. Per a evitar això en el futur, heu de prémer la tecla MAJ (SHIFT) quan feu un clic al botó Redacta/Respon al enviar correu signat.\nSi signeu el correu per defecte, hauríeu de desmarcar la caixa de preferència 'Redacta missatges en HTML' per desactivar permanentment el correu HTML en aquest compte de correu. -strippingHTML=El missatge té informació de format HTML que es perdrà quan es converteixi a text al signar/xifrar. Desitgeu continuar? -msgCompose.button.sendAnyway=&Envia el missatge igualment -attachWarning=Els adjunts d'aquest missatge no són locals, no es poden xifrar. Per a xifrar els adjunts, primer els heu de desar com a fitxers locals i adjuntar aquests fitxers. Voleu continuar igualment? quotedPrintableWarn=Heu activat la codificació «quoted-printable» per enviar els missatges. Això pot provocar un desxifratge o verificació incorrectes dels vostres missatges.\nVoleu desactivar ara l'enviament «quoted-printable» dels missatges? -minimalLineWrapping=Heu establert l'ajustament de línia a %S caràcters. Per a un xifratge i/o signatura correctes, aquest valor ha de ser almenys 68.\nVoleu canviar ara l'ajust de línia a 68 caràcters? warning=Avís -signIconClicked=Heu modificat manualment la signatura. Per tant, mentre redacteu el missatge, la (des)activació de la signatura no dependrà de la (des)activació del xifratge. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=M - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -msgCompose.pepSendSecure=Segur -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=S'ha cancel·lat l'operació d'enviament.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=SIGNAT -statEncrypted=XIFRAT -statPlain=SENSE SIGNAR i SENSE XIFRAR - -offlineSave=Deso el missatge %S a %S a la carpeta de Missatges per enviar? - -onlineSend=Envio el missatge %S a %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Envia el missatge sense xifrar -recipientsSelectionHdr=Seleccioneu els destinataris per xifrar - -configureNow=Encara no heu configurat la seguretat Enigmail per la identitat seleccionada. Voleu fer-ho ara? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Xifra el missatge -# signMessageAuto=Sign Message (auto) -signMessageNorm=Signa el missatge - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=El missatge es xifrarà -encryptNo=El missatge no es xifrarà - -# should not be used anymore: -signYes=El missatge es signarà -signNo=El missatge no es signarà - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=S'usarà PGP/MIME -pgpmimeNo=S'usarà PGP integrat. - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=S'ha detectat un conflicte a les regles per destinatari\n%S\n\nEnvio el missatge amb aquests paràmetres? -msgCompose.button.configure=&Configura -msgCompose.button.send=&Envia el missatge -msgCompose.button.save=&Desa el missatge - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Cal la clau pública %S per verificar la signatura -# keyUsed=Public key %S used to verify signature -clickDecrypt=; feu un clic al botó Desxifra -clickDecryptRetry=; feu un clic al botó Desxifra per reintentar -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Desxifra -msgPart=Part del missatge %S -msgSigned=signat -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=xifrat -msgSignedAndEnc=signat i xifrat - unverifiedSig=Signatura no verificada -incompleteDecrypt=Desxifratge incomplet -needKey=Error - cal la clau secreta per desxifrar el missatge -failedDecrypt=Error - ha fallat el desxifratge badPhrase=Error - contrasenya incorrecta # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Error - ha fallat el desxifratge/verificació -viewInfo=; Visualitza > Informació de seguretat del missatge per als detalls -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Missatge desxifrat -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Localitza el programa GnuPG -invalidGpgPath=El GnuPG no es pot executar amb el camí indicat. Per tant, l'Enigmail queda desactivat fins que torneu a canviar el camí al GnuPG o fins que reinicieu l'aplicació. -warningsAreReset=S'han reiniciat tots els avisos. -prefs.gpgFound=S'ha trobat el GnuPG a %S -prefs.gpgNotFound=No s'ha pogut trobar el GnuPG -prefs.warnAskNever=Avís: l'activació d'aquesta opció provocarà, sense mès informació, que els correus no es xifrin si no hi ha la clau per algun dels destinataris -- Si això passa, l'Enigmail no us informarà! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=Error - nomès podeu indicar un servidor de claus per a la baixada automàtica de claus OpenPGP que manquin. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=L'Enigmail és de codi obert i amb llicència Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Introduïu el PIN d'administració de la targeta intel·ligent -enterCardPin=Introduïu el PIN de la targeta intel·ligent - -notInit=Error - el servei Enigmail encara no s'ha iniciat badCommand=Error - ha fallat l'ordre de xifrar cmdLine=línia d'ordres i sortida: -notRequired=Error - no s'ha demanat xifrar -notComplete=Error - la generació de la clau encara no ha acabat -invalidEmail=Error - adreça de correu no vàlida noPassphrase=Error - no s'ha facilitat la contrasenya noPGPblock=Error - no s'ha trobat cap bloc cuirassat amb dades OpenPGP -unverifiedReply=La part indentada del missatge (resposta) ha estat probablement modificada -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Error - la signatura no coincideix -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=La targeta intel·ligent %S trobada al lector no es pot utilitzar per a processar el missatge.\nSi us plau, inseriu la vostra targeta intel·ligent %S i repetiu l'operació. sc.insertCard=L'operació requereix la vostra targeta intel·ligent %S.\nSi us plau, inseriu la targeta intel·ligent requerida i repetiu l'operació. sc.removeCard=L'operació requereix que no hi hagi cap targeta intel·ligent en el lector.\nSi us plau, retireu la targeta intel·ligent i repetiu l'operació. @@ -376,7 +39,6 @@ sc.noReaderAvailable=No s'ha pogut accedir a la targeta intel·ligent\nConnecteu el lector de targetes intel·ligents, inseriu la vostra targeta, i repetiu l'operació. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=No s'ha pogut trobar el programa GnuPG '%S'.\nComproveu que s'ha indicat el camí correcte a l'executable GnuPG a les Preferències de l'Enigmail. gpgNotInPath=No s'ha pogut trobar l'executable GnuPG en el PATH.\nComproveu que s'ha especificat correctament el camí a l'executable GnuPG a les Preferències de l'Enigmail. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=Signatura correcta de %S -prefBad=Signatura INCORRECTA de %S - failCancel=Error - L'usuari ha cancel·lat la recepció de la clau failKeyExtract=Error - ha fallat l'ordre d'extracció de la clau -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Error - El primer bloc OpenPGP no és un bloc de clau pública importKeyConfirm=Importo la clau/s pública incrustada al missatge? -failKeyImport=Error - ha fallat la importació de la clau fileWriteFailed=Ha fallat l'escriptura al fitxer %S - importKey=Importo la clau pública %S del servidor de claus: uploadKey=Envia la clau pública %S al servidor de claus: keyId=Identificador de clau -keyAndSigDate=Identificació de clau: 0x%S / Signada el: %S -keyFpr=Empremta digital de la clau: %S -noEmailProvided=No heu indicat cap adreça de correu! -keyAlreadySigned=La clau ja està signada, no la podeu signar dues vegades. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=%S caducada createdHeader=Creada atLeastOneKey=No s'ha seleccionat cap clau! Heu de triar una clau com a mínim per acceptar aquest diàleg fewerKeysThanRecipients=Heu seleccionat un nombre mès petit de de claus que de destinataris. Esteu segur que la llista de clau a xifrar ès completa? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Selecció d'una clau OpenPGP secreta per a signar els vostres missatges # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Envieu més tard - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=primera second=segona - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Seleccioneu una clau OpenPGP per xifrar -identityName=Identitat: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Heu activat l'opció de xifrar, però no heu seleccionat cap clau. Per a enviar correus xifrats a %S us cal indicar una o més claus vàlides de la vostra llista de claus. Voleu desactivar el xifratge per a %S? -noKeyToUse=(cap - sense xifrar) -noEmptyRule=La regla no pot estar buida! Indiqueu una adreça de correu al camp regla. -invalidAddress=L'adreça de correu que heu indicat no és vàlida. No heu d'indicar els noms dels destinataris, només les adreces de correu. Per exemple: \nNo vàlid: Un nom \nVàlid: un.nom@adreça.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Mai always=Sempre possible=Possible -deleteRule=Voleu suprimir la regla seleccionada? -nextRcpt=(destinatari següent) -negateRule=No -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=La funció que heu seleccionat no és disponible en mode fora de línia. Connecteu-vos i torneu a provar. -noKeyserverConn=No es pot connectar al servidor de claus %S. -internalError=Hi ha hagut un error intern. Les claus no s'han pogut descarregar o importar. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Ha fallat l'assignació de la confiança del propietari - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Ha fallat la signatura de la clau -alreadySigned.label=Nota: la clau %S ja està signada amb la clau secreta seleccionada. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Loading keys, please wait ... keyValid.unknown=desconeguda keyValid.invalid=invàlida keyValid.disabled=deshabilitada keyValid.revoked=revocada keyValid.expired=caducada keyValid.noSubkey=no hi ha una subclau vàlida - -keyTrust.untrusted=no confiable +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=marginal keyTrust.full=confiable keyTrust.ultimate=definitiva keyTrust.group=(grup) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Activa la clau -keyMan.disableKey=Desactiva la clau userAtt.photo=Atribut d'usuari (imatge JPEG) - -asciiArmorFile=Fitxers cuirassats ASCII (*.asc) importKeyFile=Importa un fitxer de claus OpenPGP -gnupgFile=Fitxers GnuPG -saveRevokeCertAs=Crea i desa el certificat de revocació -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=No s'ha pogut crear el certificat de revocació. - -addUidOK=L'identificador d'usuari s'ha afegit amb èxit -addUidFailed=Ha fallat al afegir l'identificador d'usuari -noKeySelected=Heu de seleccionar com a mínim una clau per tal de realitzar l'operació indicada -exportToFile=Exporta la clau pública a un fitxer -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Voleu incloure la clau secreta en el fitxer de clau OpenPGP desat? -saveKeysOK=Les claus s'han desat amb èxit -saveKeysFailed=Ha estat impossible desar les claus -importKeysFailed=Ha fallat la importació de les claus -enableKeyFailed=Ha fallat l'habilitació/deshabilitació de les claus -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Claus-públiques-exportades -defaultPubSecKeyFilename=Claus-públiques-i-secretes-exportades - -sendKeysOk=La clau/s s'ha enviat amb èxit -sendKeysFailed=Ha fallat l'enviament de les claus -receiveKeysOk=La clau/s s'ha actualitzat amb èxit -receiveKeysFailed=Ha fallat la baixada de les claus -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Voleu importar alguna clau/s del porta-retalls? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=No s'han pogut copiar la clau/s seleccionada al porta-retalls. -copyToClipbrdOK=La clau/s s'ha copiat al porta-retalls - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=AVÍS: Esteu a punt de suprimir claus secretes!\nSi esborreu la vostra clau secreta, mai més podreu desxifrar cap missatge xifrat amb aquest clau. \n\nSegur que voleu suprimir ambdues claus seleccionades, la secreta i la pública? -deletePubKey=Voleu suprimir la clau pública\n'%S'? -deleteSelectedPubKey=Voleu suprimir les claus públiques? -deleteKeyFailed=La clau no s'ha pogut suprimir. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=S'ha revocat la clau. Si la vostra clau estava en un servidor de claus, es recomena que la torneu a pujar, de manera que els altres puguin veure la revocació. -revokeKeyFailed=No s'ha pogut revocar la clau. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=No heu seleccionat cap clau. Voleu refrescar TOTES les claus? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Avís: segons el nombre de claus i la velocitat de connexió, el refresc de totes les claus pot ser un procés bastant llarg! -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=&Exporta les claus secretes -keyMan.button.exportPubKey=Exporta només les claus &públiques keyMan.button.import=&Importa -keyMan.button.refreshAll=&Refresca totes les claus keyMan.button.revokeKey=&Revoca una clau - -keylist.noOtherUids=No tè altres identitats -keylist.hasOtherUids=Tambè conegut com a -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Seleccione una foto per afegir -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -keyMan.addphoto.failed=No s'afegit la foto. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Ha fallat en canviar l'identificador primari d'usuari -changePrimUidOK=S'ha canviat l'identificador primari d'usuari amb èxit -revokeUidFailed=Ha fallat la revocació de l'identificador d'usuari %S -revokeUidOK=L'identificador d'usuari %S s'ha revocat amb èxit. Si la vostra clau estava en un servidor de claus, es recomena que la torneu a pujar, de manera que els altres puguin veure la revocació. -revokeUidQuestion=Segur que voleu revocar l'identificador d'usuari %S? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Creada -importInfoFpr=Empremta digital -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=clau pública -keyTypePrimary=clau primària -keyTypeSubkey=subclau -keyTypePair=parella de claus -keyExpiryNever=mai keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Xifra -keyUsageSign=Signa -keyUsageCertify=Certifica -keyUsageAuthentication=Autentifica -keyDoesNotExpire=La clau no caduca - -# Strings in enigmailGenCardKey.xul -keygen.started=Espereu mentre s'està generant la clau ... -keygen.completed=S'ha generat la clau. El nou identificador de clau és: 0x%S -keygen.keyBackup=S'ha fet una còpia de seguretat de la clau a %S -keygen.passRequired=Indiqueu una contrasenya si voleu crear una còpia de seguretat de la vostra clau fora de la targeta intel·ligent. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=El canvi de PIN ha fallat - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=S'està refrescant les claus, espereu si us plau ... -keyserverProgress.uploading=S'està penjant les claus, espereu, si us plau ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Refresca les claus -keyserverTitle.uploading=Penja les claus -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Heu d'omplir amb un nom i una adreça de correu -addUidDlg.nameMinLengthError=El nom ha de tenir 5 caràcters com a mínim -addUidDlg.invalidEmailError=Heu d'indicar una adreça de correu vàlida - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. # errorType.SecurityProtocol=The security protocol used by the web service is unknown. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=Segur -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Quant a l'Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/ca/help/compose.html enigmail-2.2.4/lang/ca/help/compose.html --- enigmail-2.1.6+ds1/lang/ca/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - -Ajuda Enigmail: Redacció de missatge - - -

Ajuda Enigmail

- -

Emprant l'Enigmail per redactar missatges

- -
    -
  • El menú Enigmail a la finestra de Redacció -
  • Signa missatge: Activa/desactiva l'enviament de correu signat. S'avisa a l'usuari si falla - la signatura. -
  • -
  • Xifra missatge: Activa/desactiva el xifratge a tots els destinataris abans d'enviar. - S'avisa a l'usuari si falla el xifratge. -

    Si s'ha activat Mostra la selecció només quan es necessiti a Preferències - -> Pestanya de selecció de claus, s'obrirà una llista de claus si hi ha adreces a la llista de - destinataris del missatge pels que no teniu una clau pública.

    -

    Si s'ha activat No mostris mai el diàleg de selecció de claus OpenPGP a Preferències - -> Pestanya de selecció de claus, i hi ha adreces a la llista de destinataris del missatge pels - que no teniu una clau pública, el missatge s'enviarà sense xifrar.

    -
  • -
  • Empra PGP/MIME en aquest missatge: Activa/desactiva l'ús del - PGP/MIME - en aquest missatge. -

    Si teniu coneixement que el(s) destinatari(s) pot llegir el correu codificat amb el format PGP/MIME, - hauríeu d'activar-lo.

    -

    Aquesta funcionalitat depèn de si estan actius els paràmetres Permet l'ús de PGP/MIME o - Empra sempre PGP/MIME a Preferències -> Pestanya PGP/MIME.

    -
  • -
  • Opcions de redacció predeterminades: Submenú. -
      -
    • Opcions de signatura/xifratge...: drecera a Paràmetres del compte -> - Opcions OpenPGP. -
    • -
    • Opcions d'enviament...: drecera a la pestanya Preferències -> - Enviament. -
    • -
    • Opcions de selecció de clau...: drecera a la pestanya Preferències -> - Selecció de clau. -
    • -
    • Opcions PGP/MIME...: drecera a la pestanya Preferències -> - PGP/MIME. -
    • -
    -
  • -
  • Desfés el xifratge: Si hi ha una errada quan s'enviï el corrreu, - p.ex. que el servidor POP no accepta la petició, l'Enigmail no se n'assabentarà, - i el missatge xifrat continuarà mostrant-se a la finestra de redacció. - Seleccionant aquesta opció del menú es desfarà el xifratge/signatura, i es revertirà - la finestra de redacció al text original.
    - Com a solució provisional, aquesta opció es pot emprar per a desxifrar el text - citat en respondre a missatges xifrats. L'Enigmail hauria de desxifrar automàticament - el missatge citat, però si això falla per alguna raó, podeu emprar aquesta opció del menú - per a forçar-ho. -
  • -
  • Insereix la clau pública: insereix el bloc ASCII-cuirassat amb la clau pública a - la posició actual del cursor de la finestra de redacció. Es sol·licitarà l'adreça de correu - de la clau(s) a inserir. Les claus inserides d'aquesta manera es reconeixeran automàticament - a la recepció per l'Enigmail. Després de l'inserció de la clau, encara podeu - signar/xifrar el correu si us cal. No inseriu més d'un bloc de clau a un missatge; només indiqueu - vàries adreces de correu, separades per comes o espais quan es sol·liciti. -
  • -
  • Neteja la contrasenya desada: Neteja la contrasenya memoritzada. És útil - si teniu vàries contrasenyes. -
  • -
  • Ajuda: Mostra la informació d'ajuda del lloc web (aquesta pàgina). -
  • -
-
-

-Teniu més ajuda a la vostra disposició a la -pàgina web de l'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/ca/help/editRcptRule.html enigmail-2.2.4/lang/ca/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ca/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - -Ajuda Enigmail: Editar regla OpenPGP - - -

Ajuda Enigmail

- -

Emprant l'editor de regles de l'Enigmail: Edició d'una regla OpenPGP

-

A l'editor de regles, podeu indicar, per cada destinatari, el xifratge, la signatura i PGP/MIME i quines claus OpenPGP emprar de manera predeterminada. En aquest diàleg, podeu indicar les regles per un destinatari individual i per un grup de destinataris amb atributs força similars. -

-
    -
  • Estableix les regles OpenPGP per a: Conté l'adreça de - correu dels destinataris (sense noms, p.ex. només una adreça com - algu@correu.domini). Podeu indicar algunes adreces de correu, separades per espais. - L'adreça indicada aquí pot consistir de només la secció del domini, així el correu a qualsevol adreça del domini coincidirà (p.ex. - @correu.domini coincideix amb algu@correu.domini, - algualtre@correu.domini, qualsevol@correu.domini, etc.) -
  • -
  • Aplica la regla si el destinatari ...: - Això modifica la coincidència de les adreces de correu. - Si s'ha introduït múltiples adreces de correu, el paràmetre s'aplicarà a totes. - - Els exemples següents estan basats en les Regles OpenPGP introduïdes més amunt algu@correu.domini. -
      -
    • És exacta: amb aquest paràmetre, la regla només s'activarà amb adreces de correus - a algu@correu.domini (exacta, coincidència sense distinció de majúscules). -
    • -
    • Conté: amb aquest paràmetre, qualsevol adreça de correu que contingui la cadena - coincidirà (p.ex. tambealgu@correu.domini o algu@correu.domini.net) -
    • -
    • Comença amb: amb aquest paràmetre, qualsevol adreça de correu que comenci amb la - cadena coincidirà (p.ex. algu@correu.domini.net, algu@correu.domini-nom.com) -
    • -
    • Acaba amb: amb aquest paràmetre, qualsevol adreça de correu que acabi amb la cadena coincidirà (p.ex. algu@correu.domini, - algualtre@correu.domini). -
    • -
    - -
  • -
  • Continua amb la següent regla per l'adreça coincident
    - L'activació d'aquesta funció us permet definir una regla sense - haver d'indicar una identificació de clau en el camp Empra les - claus OpenPGP següents:, així que l'adreça de correu s'usa per - comprovar la clau en el moment d'enviar. També es processaran les - regles posteriors per a la mateixa adreça(es). -
  • -
  • No comprovis més regles per l'adreça coincident
    - L'activació d'aquesta funció atura el procés d'altres regles per a - l'adreça(es) coincident amb aquesta regla. El procés de regles - continua amb el següent destinatari. -
  • -
  • Empra les següents claus OpenPGP:
    - Empreu el botó Selecciona clau(s).. per seleccionar les claus - dels destinataris que s'usaran per a xifrar. De la mateixa manera que - amb l'acció anterior, no es processen més regles amb l'adreça coincident. -
  • -
  • Signatura per omissió: activa o desactiva - la signatura del missatge, en funció del que s'ha indicat a la finestra de redacció - del missatge. El valors són: -
      -
    • Mai: desactiva la signatura, inclòs si s'ha activat a la finestra - de redacció del missatge (preval sobre els altres valors)
      -
    • -
    • Sí, si s'ha seleccionat a la redacció del missatge: deixa la signatura - tal com s'ha indicat a la finestra de redacció del missatge -
    • -
    • Sempre: activa la signatura, inclòs si no s'ha activat a la finestra de redacció del - missatge -
    • -
    -
  • -
-
Aquests paràmtres de signatura s'apliquen a totes les -regles que coincideixen. Si una de les regles desactiva la signatura, el missatge -no es signarà, a menys que altres regles indiquin Sempre.
-
-
    -
  • Xifratge: activa o desactiva - el xifratge del missatge. Els paràmetres admesos i el seu significat són - els mateixos que per la signatura de missatge.
  • -
  • PGP/MIME: activa o desactiva - l'ús de la codificació PGP/MIME (RFC 3156) del missatge. - Si el PGP/MIME està desactivat, els missatges es codifiquen usant el "PGP inserit". - Els paràmetres admesos i el seu significat són - els mateixos que per la signatura de missatge. -
  • -
-

Les regles es processen segons l'ordre mostrat a la llista de -l'editor de regles OpenPGP. Quan una regla coincideix amb un destinatari i -conté una identificació de clau OpenPGP, a més d'usar la identificació de clau -indicada, el destinatari ja no es té en compte al processar més regles. -

-
-

-Teniu més ajuda a la vostra disposició a la - pàgina de paràmetres per destinatari de l'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/ca/help/initError.html enigmail-2.2.4/lang/ca/help/initError.html --- enigmail-2.1.6+ds1/lang/ca/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Ajuda de l'Enigmail: Com resoldre els problemes en inicialitzar l'OpenPGP - - - - - -

Ajuda de l'Enigmail

- -

Com resoldre els problemes en inicialitzar l'OpenPGP

- -

Hi ha diversos motius pels que la inicialització de l'OpenPGP no funciona. Els més normals es descriuen tot seguit. Per a més informació visiteu la pàgina d'ajuda de l'Enigmail.

- -
-
No s'ha trobat el GnuPG
-
-

- Per a que funcioni l'OpenPGP, cal instal·lar l'eina GnuPG. - Si no es pot trobar el GnuPG, primer assegureu-vos que l'executable gpg.exe (a Windows, gpg en altres platformes) està instal·lat a l'ordinador. - Si el GnuPG està instal·lat, i l'OpenPGP no pot trobar-lo, aleshores necessitareu definir manualment el camí al GnuPG en les preferències de l'OpenPGP (menú OpenPGP > Preferències) -

-
- -
L'Enigmime falla en iniciar-se
- -
-

- L'OpenPGP funciona només si està construït utilitzant el mateix entorn de construcció amb el que s'ha construït el Thunderbird o el SeaMonkey. Aixó vol dir que només podeu utilitzar la versió oficial de l'Enigmail si utilitzeu les versions oficials del Thunderbird o el SeaMonkey proporcionats per mozilla.org. -

-

- Si utilitzeu una versió del Thunderbird o del SeaMonkey provinent d'alguna altra font (p.ex. el proveïdor de la vostra distribució de Linux), o si vós mateix heu construït l'aplicació, heu d'utilitzar una versió de l'Enigmail construïda per la mateixa font, o heu de construir l'Enigmail vós mateix. Per a construir l'Enigmail, dirigiu-vos a la secció de codi font de la pàgina inicial de l'Enigmail. Si us plau, no presenteu cap informe d'error respecte a aquest problema, no es pot solucionar. -

-
- -
-

Hi ha més ajuda disponible en el lloc web d'ajuda de l'Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/ca/help/messenger.html enigmail-2.2.4/lang/ca/help/messenger.html --- enigmail-2.1.6+ds1/lang/ca/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - -Ajuda Enigmail: Lectura de missatges - - -

Ajuda Enigmail

- -

Emprant l'Enigmail per llegir missatges

-
    -
  • Botó Desxifra a la finestra principal de la Missatgeria
    - Aquest botó es pot emprar per a varies funcions: desxifrar, verificar o importar claus públiques. - Normalment, el desxiframent/verificació és automàtic, encara que es pot desactivar amb una opció. - Tanmateix, si això falla, es mostrarà un missatge curt d'error a la línia d'estat de l'Enigmail. - Si feu un clic al botó Desxifra, podreu veure un missatge d'error més detallat, inclòsa la sortida de l'ordre GPG. -
  • -
  • Icones del llapis i la clau al visualitzador de capçaleres del missatge
    - Les icones del llapis i la clau al visualitzador de capçaleres del missatge indiquen - si el missatge que esteu llegint ha estat signat i/o xifrat. Si el missatge ha estat modificat, la icona del - llapis canviarà a un llapis trencat per a indicar que la signatura és dolenta. - Fent un clic amb el botó dret a la icona del llapis o de la clau mostrarà un menú amb les següents opcions: -
      -
    • Informació de seguretat OpenPGP: us permet veure l'estat de la sortida GPG del missatge.
    • -
    • Copia la informació de seguretat OpenPGP: copia l'estat de la sortida GPG al porta-retalls; - enganxar-lo a un missatge de resposta, etc.
    • -
    • Mostra l'identificador de foto OpenPGP: us permet veure l'identificador de foto de la - persona que envia el missatge, si ha incrustat una foto a la seva clau pública. - (Aquesta opció només s'activarà si existeix l'identificador de foto a la seva clau.)
    • -
    • Informació de seguretat S/MIME: us permet veure la informació de seguretat S/MIME del missatge.
    • -
    -

    Si no heu establert l'opció keyserver-options auto-key-retrieve al vostre fitxer - gpg.conf i llegiu un missatge que està signat o xifrat, - veureu la icona d'un llapis a l'àrea de visualització de les capçaleres amb un interrogant, - i la línia d'estat de l'Enigmail a l'àrea de capçaleres indicarà Part - del missatge signat; feu un clic a la icona del llapis pels detalls i el missatge de la subfinestra - de la Missatgeria mostrarà tots els indicadors del bloc PGP del missatge i el bloc de signatura.

    -

    També podreu veure això si teniu establerta l'opció keyserver-options auto-key-retrieve - al vostre fitxer gpg.conf i la clau PGP no es troba en el servidor de claus predeterminat.

    -

    En fer un clic a la icona del llapis amb interrogant s'obrirà una finestra avisant que - la clau no està al vostre anell de claus. Si feu un clic a D'acord s'obrirà una altra finestra amb una - llista dels servidors de claus que podeu seleccionar per a baixar la clau pública del remitent.

    -

    Per a configurar la llista dels servidors de claus que voleu usar, aneu a la pestanya Enigmail -> - Preferències -> Bàsic i introduïu les adreces dels servidors de claus a la caixa - Servidor(s) de claus:, separats per comes. El primer servidor de claus serà el - predeterminat.

    -
  • -
  • Obrint fitxers adjunts xifrats / important claus PGP adjuntes
    - Els fitxers adjunts anomenats *.pgp, *.asc i *.gpg es reconeixen com adjunts que l'Enigmail pot gestionar de manera - especial. Fent un clic amb el botó dret en aquests adjunts s'activen dos elements especials del menú contextual: - Desxifra i obre i Desxifra i desa. Empreu aquests dos elements del menú si voleu que l'Enigmail - desxifri un adjunt abans d'obrir-lo o desar-lo. Si un adjunt es reconeix com un fitxer de clau PGP, - se us oferirà la possibilitat d'importar la clau al vostre anell de claus. -
  • -

-

-Teniu més ajuda a la vostra disposició a la -pàgina web de l'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/ca/help/rulesEditor.html enigmail-2.2.4/lang/ca/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ca/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - -Ajuda Enigmail: Editor de regles - - -

Ajuda Enigmail

- -

Emprant l'editor de regles de l'Enigmail

-

En el editor de regles podeu indicar que, en funció del destinatari, s'activi el xifratge, -la signatura i el PGP/MIME, i definir quina clau OpenPGP emprar. Cada regla consisteix -en 5 camps que es representen en una línia individual: -

-
    -
  • Correu electrònic: l'adreça(es) dels camps - A: (To), Còpia: (Cc) i Còpia invisible: (Bcc) a comprovar. La coincidència es basa en subcadenes (es poden trobar més detalls al diàleg - d'edició de regles) -
  • -
  • Clau(s) OpenPGP: una llista de les identificacions - de claus OpenPGP per a usar amb el destinatari -
  • -
  • Signatura: activa o desactiva - la signatura del missatge. Això preval sobre el que s'ha indicat a la - finestra de redacció del missatge. El valors són: -
      -
    • Mai: desactiva la signatura, inclòs si s'ha activat a la finestra - de redacció del missatge (preval sobre els altres valors)
      -
    • -
    • Possible: deixa la signatura - tal com s'ha indicat a la finestra de redacció del missatge -
    • -
    • Sempre: activa la signatura, inclòs si no s'ha activat a la finestra de redacció del - missatge -
    • -
    -
  • -
-
Aquests paràmetres de signatura s'aplicaran a totes les -regles que coincideixin. Si una de les regles desactiva la signatura, el missatge no es -signarà, a menys que altres regles indiquin Sempre.
-
-
    -
  • Xifratge: activa o desactiva - el xifratge del missatge. Els paràmetres permesos i els seu significat són - els mateixos que per la signatura de missatge.
  • -
  • PGP/MIME: activa o desactiva - l'ús de la codificació PGP/MIME (RFC 3156) del missatge. - Si el el PGP/MIME està desactivat, els missatges es codifiquen amb el - "PGP inserit". Els paràmetres permesos i els seu significat són - els mateixos que per la signatura de missatge. -
  • -
-

Les regles es processen segons l'ordre mostrat a la llista. Quan una regla -coincideix amb un destinatari i conté un identificador de clau OpenPGP, a més d'emprar -l'dentificador de clau indicat, el destinatari no es tornarà a considerar en processar les -regles seguents.

-

Nota: L'editor de regles encara no està acabat. És posible escriure les regles -més avançades editant directament el fitxer de regles (aquestes regles no hauríen -de tornar-se a editar en el editor de regles). -Més informació -per editar directament el fitxer a la pàgina web de l'Enigmail

-
-

-Teniu més ajuda a la vostra disposició a la -pàgina web d'ajuda de l'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/ca/help/sendingPrefs.html enigmail-2.2.4/lang/ca/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ca/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ca/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/cs/am-enigprefs.properties enigmail-2.2.4/lang/cs/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/cs/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP/Enigmail +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/cs/enigmail.dtd enigmail-2.2.4/lang/cs/enigmail.dtd --- enigmail-2.1.6+ds1/lang/cs/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' k určení e-mailové adresy"> - - -' znaky pro určení e-mailové adresy pro GnuPG. Zakažte, pokud příjemce používá staré klíče Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Upozornění: tvorba klíče klíče může několik minut trvat. Neukončujte aplikaci, dokud probíhá vytváření klíče. Proces se urychlí a zlepší, když budete aktivně pracovat s prohlížečem a často přistupovat k harddisku. Na to, že je klíč vytvořen, budete upozorněn/a."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' je nesprávně"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Upozornění: Vytváření klíče může trvat několik minut. Neukončujte aplikaci, dokud probíhá vytváření klíče. Na to, že je klíč vytvořen, budete upozorněn/a."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/cs/enigmail.properties enigmail-2.2.4/lang/cs/enigmail.properties --- enigmail-2.1.6+ds1/lang/cs/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Upozornění Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Chyba Enigmail enigPrompt=Připomenutí Enigmail - -dlgYes=&Ano dlgNo=&Ne dlgKeepSetting=Pamatovat si odpověď a neptat se znovu dlgNoPrompt=Nezobrazovat znovu tento dialog -dlg.button.delete=&Odstranit/Smazat dlg.button.cancel=&Zpět dlg.button.close=&Zavřít dlg.button.continue=Pok&račovat -dlg.button.skip=&Přeskočit -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Zobrazit -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nToto upozornění se zopakuje %S repeatSuffixSingular=krát. repeatSuffixPlural=krát. noRepeat=\n\nToto upozornění se již nezopakuje, dokud nebudete upgradovat Enigamil. - -pgpNotSupported=Zdá se, že používáte Enigmail společně s PGP 6.x\n\nPGP 6.x má bohužel několik nedostatků, kvůli kterým nelze zajistit správný chod rozšíření Enigmail. Proto také Enigmail nepodporuje více PGP 6.x; raději prosím používejte GnuPG (GPG).\n\nJestliže potřebujete pomoc s přechodem na GnuPG, přečtěte si sekci Help na domovské stránce Enigmailu. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=Heslo bylo smazáno. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Foto není k dispozici -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Foto cesta s není čitelný - -# generalError=Error: %S - -# Strings in configure.jsm -# enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -# enigmailCommon.checkPreferences=Check Preferences ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Spuštěno rozšíření Enigmail verze %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=K šifrování a dešifrování je použito GnuPG, které je umístěné v cestě %S %S agentError=CHYBA: selhal přístup ke službě Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Chyba v přístupu k službám rozšíření Enigmail -onlyGPG=Generování klíče je možné jedině s GnuPG (ne s PGP)! - -keygenComplete=Generování klíče je dokončeno! Identita <%S> bude použita k podepisování. -revokeCertRecommended=Velice Vám doporučujeme vytvořit revokační certifikát pro Vás klíč. Tento certifikát můžete být použít pro zneplatnění klíče, např. když soukromý klíč ztratíte nebo bude klíč kompromitován. Přejete si nyní vytvořit revokační certifikát? -keyMan.button.generateCert=&Generování certifikátu -genCompleteNoSign=Generování klíče je dokončeno! -genGoing=Generování klíče již probíhá! - -passNoMatch=Heslo nesouhlasí, zadejte jej prosím znovu -passCheckBox=Překontrolujte prosím okénko, zda nastavujete klíči volbu \\"bez hesla\\" -passUserName=Prosím specifikujte jméno uživatele pro tuto identitu -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Z technických důvodů může být vaše přístupové heslo není začínat nebo končit mezerou -changePassFailed=Změna hesla selhala. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Vytvořit klíč -keyAbort=Přerušit vytváření klíče? -keyMan.button.generateKeyAbort=&Přerušit vytváření klíče -keyMan.button.generateKeyContinue=&Pokračovat ve vytváření klíče -expiryTooLong=Nemůžete vytvořit klíč, který expiruje více než za 100 let. -expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -expiryTooShort=Váš klíč musí být platný minimálně jeden den. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -# setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informace zabezpečení Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Tato zpráva je možná zašifrovaná nebo podepsaná PGP/MIME; ověříte si to po kliknutí na tlačítko \\"Dešifrovat\\" - -saveAttachmentHeader=Enigmail: Uložit dešifrovanou přílohu -noTempDir=Nemohu najít dočasný adresář k zápisu\nNastavte proměnnou prostředí systému TEMP prosím -attachmentPgpKey=Zdá se, že příloha '%S', kterou otevíráte, je soubor s klíčem OpenPGP.\n\nKliněte na \\"Import\\" pro uložení klíče nebo na \\"Zobrazit\\", abyste si prohlédli obsah souboru v okně prohlížeče. - -beginPgpPart=********* *ZACATEK SIFROVANE nebo PODEPSANE CASTI* ********* -endPgpPart=********** *KONEC SIFROVANE nebo PODEPSANE CASTI* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Nalezen mnohonásobný blok zpráv -- dešifrování/ověření zrušeno* - -decryptOkNoSig=Upozornění\n\nDešifrování bylo úspěšné, ale podpis nemohl být správně ověřen -msgOvl.button.contAnyway=&Přejete si přesto pokračovat? -signature.verifiedOK=Úspěšně byl ověřen podpis přílohy %S -signature.verifyFailed=Nelze ověřit podpis přílohy %S -attachment.noMatchToSignature=Přílohu '%S' nelze porovnat se souborem podpisu -attachment.noMatchFromSignature=Soubor podpisu '%S' nelze s přílohou porovnat -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Vybrat klíče OpenPGP ke vložení keysToUse=Vybrat klíč/e OpenPGP pro použití s %S pubKey=Veřejný klíč pro %S\n - -windowLocked=Okno vytváření zprávy je uzamčeno; odesílání zrušeno -sendUnencrypted=Chyba inicializace Enigmailu.\nOdeslat zprávu nezašifrovanou? -composeSpecifyEmail=Určete prosím svou hlavní e-mailovou adresu, která bude vybrána k podepisování odchozích zpráv.\n Jestliže ji nevyplníte, bude pro výběr klíče k podpisu použita adresa odesílatele. -sendingHiddenRcpt=Tato zpráva obsahuje příjemce BCC (skrytá kopie). Jestliže je taková zpráva zašifrována, je možné skrýt BCC příjemce, ale uživatelé některých produktů (např. PGP Corp.) nebudou moci zprávu dešifrovat. Proto nedoporučujeme používat BCC u šifrovaných zpráv. -sendWithHiddenBcc=Skrýt příjemce BCC -sendWithShownBcc=Šifrovat normálně -sendingNews=Odeslání šifrované zprávy selhalo.\n\nTato zpráva nemůže být šifrována, protože obsahuje adresáta z diskuzní skupiny. Pošlete prosím zprávu bez šifrování. -sendToNewsWarning=Pozor: Snažíte se poslat zašifrovaný email do diskuzní skupiny.\n\nOd toho odrazujeme, protože to má smysl pouze v případě, že všichni členové skupiny jsou schopni email rozšifrovat. Zpráva musí být šifrována pomocí klíčů všech skupin účastníků. Prosím, pošlete tuto zprávu, jen pokud přesně víte, co děláte.\n\nPokračovat? -hasHTML=HTML e-mail - varování\nZpráva zřejmě obsahuje kód HTML, který může způsobit chybu při podepisování nebo šifrování. Této chybě u podepsaného mailu se vyhnete, když stlačíte klávesu SHIFT při kliknutí na tlačítko 'Vytvořit zprávu' nebo 'Odpovědět'.\nJestliže vždy zprávy podepisujete, měli byste raději trvale zrušit 'Vytváření zpráv v HTML' u tohoto účtu. (Pozn. překl.: anebo odesílejte zprávy s využitím PGP/MIME, jestliže je to možné, tj. jestliže příjemce používá poštovního klienta, který PGP/MIME podporuje.) -strippingHTML=Zpráva obsahuje kód HTML, který bude při konverzi do prostého textu při podepisování nebo šifrování ztracen. Přejete si provést konverzi? -msgCompose.button.sendAnyway=&Odeslat přesto zprávu -attachWarning=Přílohy k této zprávě nejsou místní a nemohou být tedy šifrovány. Přílohu je třeba k zašifrování nejdříve uložit jako místní soubor. Přejete si přesto pokračovat dále? quotedPrintableWarn=Pro odesílání zpráv je povoleno kódování 'quoted-printable', to může způsobit nesprávné dešifrování a/nebo ověření vaší zprávy.\n Přejete si vypnout odesílání zpráv v 'quoted-printable'? -minimalLineWrapping=Máte nastaveno zalamování řádků na %S znaků. Pro správné šifrování a/nebo podepisování musí být tato hodnota nejméně 68.\nPřejete si nyní změnit zalamování řádků na 68 znaků? warning=Pozor -signIconClicked=Ručně jste změnil/a podepisování. Při vytváření této zprávy proto (de)aktivace podpisu nezávisí na (de)aktivaci šifrování. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -msgCompose.toolbarTxt.signAndEncrypt=Tato zpráva bude podepsána a šifrována -msgCompose.toolbarTxt.signOnly=Tato zpráva bude podepsána -msgCompose.toolbarTxt.encryptOnly=Tato zpráva bude šifrována -msgCompose.toolbarTxt.noEncryption=Tato zpráva nebude podepsána ani šifrována -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Odeslání zprávy se nezdařilo.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=PODEPSANOU -statEncrypted=ŠIFROVANOU -statPlain=NEPODEPSANÁ a NEZAŠIFROVANÁ - -offlineSave=Uložit %S zprávu do %S do složky konceptů? - -onlineSend=Odeslat zprávu %S na %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Odeslat nezašifrovanou zprávu -recipientsSelectionHdr=Určit adresáty pro šifrování - -configureNow=Nemáte ještě nastaveno zabezpečení Enigmail pro zvolenou identitu. Přejete si to nyní provést? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Šifrovat zprávu (automaticky) -encryptMessageNorm=Šifrovat zprávu -signMessageAuto=Podepsat zprávu (automaticky) -signMessageNorm=Podepsat zprávu - -encryptOff=Šifrování: Vypnuto -encryptOnWithReason=Šifrování: Zapnuto (%S) -encryptOffWithReason=Šifrování: Vypnuto (%S) -encryptOn=Šifrování: Zapnuto -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Zpráva bude šifrována -encryptNo=Zpráva nebude šifrována - -# should not be used anymore: -signYes=Zpráva bude podepsána -signNo=Zpráva nebude podepsána - - -# PGP/MIME status: -pgpmimeNormal=Protokol: PGP/MIME -inlinePGPNormal=Protokol: Inline PGP -smimeNormal=Protokol: S/MIME -pgpmimeAuto=Protokol: PGP/MIME (automaticky) -inlinePGPAuto=Protokol: Inline PGP (automaticky) -smimeAuto=Protokol: S/MIME (automaticky) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Nalezena rozporná pravidla pro adresáty\n%S\n\nPoslat zprávu s těmito nastaveními? -msgCompose.button.configure=&Nastavení -msgCompose.button.send=&Odeslat zprávu -msgCompose.button.save=&Uložit zprávu - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=K ověření podpisu je nutný veřejný klíč %S -# keyUsed=Public key %S used to verify signature -clickDecrypt=; stiskněte tlačítko Dešifrovat -clickDecryptRetry=; stiskněte tlačítko Dešifrovat znovu -clickDetailsButton=; klikněte na tlačítko "Podrobnosti", pokud se chcete dozvědět více -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Dešifrovat -msgPart=Část zprávy %S -msgSigned=podepsána -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=šifrována -msgSignedAndEnc=podepsána a šifrována - unverifiedSig=Neověřený podpis -incompleteDecrypt=Nekompletní dešifrování -needKey=Chyba - pro dešifrování je potřeba soukromý klíč -failedDecrypt=Chyba - dešifrování selhalo badPhrase=Chyba - špatné heslo # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Chyba - dešifrování/ověření selhalo -viewInfo=; Zobrazit > Bezpečnostní informace zprávy pro podrobnosti -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Dešifrovaná zpráva -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Nalézt program GnuPG -invalidGpgPath=GnuPG nelze na uvedené cestě spustit. Enigmail bude tedy proto vypnuto dokud nezměníte cestu ke GnuPG nebo dokud nerestartujete aplikaci. -warningsAreReset=Všechna varování byla resetována. -prefs.gpgFound=GnuPG bylo nalezeno v %S -prefs.gpgNotFound=Nelze nalézt GnuPG -prefs.warnAskNever=Varování: aktivací této volby docílíte toho, že zprávy budou odesílány nezašifrované bez ohlášení, jestliže nemáte klíč pro některého z příjemců -- Enigmail Vás o tomto nebude nadále informovat! -prefs.warnIdleTimeForUnknownAgent=Your system uses a specialized tool for passphrase handling such as gnome-keyring or seahorse-agent. Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=Chyba - je možné určit pouze jeden keyserver pro automatické stahování chybějících klíčů OpenPGP. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Napište prosím PIN správce pro SmartCard -enterCardPin=Napište prosím svůj PIN pro SmartCard - -notInit=Chyba! Služba Enigmail dosud nebyla inicializována badCommand=Chyba - šifrovací příkaz selhal cmdLine=příkazová řádka a výstup: -notRequired=Chyba - šifrování není nutné -notComplete=Chyba - generování klíče není ještě dokončeno -invalidEmail=Chyba - chybná e-mailová adresa/y noPassphrase=Chyba - nebylo vyplněno heslo noPGPblock=Chyba - nenalezen platný datový blok OpenPGP -unverifiedReply=Odsazená část zprávy (odpověď) byla pravděpodobně změněna -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Chyba - podpis nesouhlasí -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=SmartCard %S nalezená ve vaší čtečky nemůže být použita pro zpracování zprávy.\nVložte prosím SmartCard %S a opakujte operaci. sc.insertCard=Operace vyžaduje Vaši SmartCard %s.\nVložte prosím požadovanou SmartCard a opakujte operaci. sc.removeCard=Operace vyžaduje, aby ve čtečce nebyla žádná SmartCard.\nVyjměte prosím SmartCard a zopakujte operaci. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Váše čtečka SmartCard není přístupná\nPřipojte prosím čtečku SmartCard, vložte kartu a operaci zopakujte. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=Nelze nalézt program GnuPG '%S'.\nUjistěte se, zda máte správně zadanou cestu ke spustitelnému souboru GnuPG v nastavení Enigmail. gpgNotInPath=Nelze nalézt spustitelný soubor GnuPG v cestě PATH.\nUjistěte se, zda máte správně zadanou cestu ke spustitelnému souboru GnuPG v nastavení Enigmail. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=SPRÁVNÝ podpis od %S -prefBad=CHYBNÝ podpis od %S - failCancel=Chyba - příjem klíče zrušen uživatelem failKeyExtract=Chyba - extrakce klíče selhala -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Chyba - první blok OpenPGP není blok veřejného klíče importKeyConfirm=Importovat veřejný/é klič(e) obsažený ve zprávě? -failKeyImport=Chyba - import klíče selhal fileWriteFailed=Selhal zápis do souboru %S - importKey=Importovat veřejný klíč %S z keyserveru: uploadKey=Poslat veřejný klíč %S na keyserver: keyId=ID klíče -keyAndSigDate=ID klíče: 0x%S / Podepsán: %S -keyFpr=Otisk prstu klíče: %S -noEmailProvided=Nezadal/a jste e-mailovou adresu! -keyAlreadySigned=Klíč je již podepsán, nemůžete jej ppodepsat dvakrát. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expirovaný %S createdHeader=Vytvořen atLeastOneKey=Nebyl zvolen žádný klíč! Pro přijetí tohoto dialogu vyberte alespoň jeden klíč fewerKeysThanRecipients=Vybrali jste menší počet klíčů než příjemců. Je jistě seznam klíčů k šifrování kompletní? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Vyberte soukromý klíč OpenPGP k podpisu svých zpráv # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=první second=druhý - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Určit klíč OpenPGP pro šifrování -identityName=Identita: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Máte aktivováno šifrování, ale nevybral/a jste žádný klíč. K šifrování zprávy pro %S je třeba vybrat jeden nebo několik platných klíčů ze seznamu. Chcete zakázat šifrování pro %S? -noKeyToUse=(nic - žádné šifrování) -noEmptyRule=Pravidlo nesmí být prázdné! Prosím nastavte e-mailovou adresu v poli pravidla. -invalidAddress=Vložená/é e-mailová adresa/y je/jsou neplatná/é. Nelze vkládat jména příjemců, ale pouze e-mailové adresy. Např.:\nNeplatné: jmeno \nPlatné: jmeno@adresa.cz -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Nikdy always=Vždy possible=Možný -deleteRule=Opravdu smazat vybrané pravidlo? -nextRcpt=(Další adresát) -negateRule=Ne -addKeyToRule=Přidat klíč %S (%S) k pravidlu podle příjemce - -# Strings used in enigmailSearchKey.js -needOnline=Funkce, kterou jste zvolil/a, není dostupná v offline módu. Přejděte prosím do online módu a zkuste to znovu. -noKeyserverConn=Nelze se připojit na keyserver %S. -internalError=Vyskytla se vnitřní chyba. Klíče nelze stáhnout nebo importovat. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nastavení důvěryhodnosti selhalo - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Podepsání klíče selhalo -alreadySigned.label=Upozornění: klíč %S je již podepsán označeným soukromým klíčem. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Načítání klíčů, čekejte prosím ... keyValid.unknown=neznámý keyValid.invalid=neplatný keyValid.disabled=zakázaný keyValid.revoked=revokovaný keyValid.expired=expirovaný keyValid.noSubkey=žádný platný podklíč - -keyTrust.untrusted=nedůvěryhodný +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=okrajově keyTrust.full=plně důvěryhodný keyTrust.ultimate=absolutně důvěryhodný keyTrust.group=(skupina) -keyType.public=veřejný -keyType.publicAndSec=veřejný/soukromý -keyMan.enableKey=Povolit klíč -keyMan.disableKey=Zakázat klíč userAtt.photo=Znak uživatele (JPEG obrázek) - -asciiArmorFile=Soubory kódované ASCII (*.asc) importKeyFile=Importovat klíč OpenPGP ze souboru -gnupgFile=Soubory GnuPG -saveRevokeCertAs=Vytvořit a uložit revokační certifikát -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Revokační certifikát nemohl být vytvořen. - -addUidOK=Úspěšně přídáno ID uživatele -addUidFailed=Selhalo přidání ID uživatele -noKeySelected=K provedení operace byste měl/a vybrat aspoň jeden klíč -exportToFile=Exportovat veřejný klíč do souboru -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Přejete si do uloženého souboru s klíčem OpenPGP zahrnout i soukromý klíč? -saveKeysOK=Klíče byly úspěšně uloženy -saveKeysFailed=Uložení klíčů selhalo -importKeysFailed=Importování klíčů selhalo -enableKeyFailed=Povolení/zakázání klíčů selhalo -specificPubKeyFilename=%S (0x%S)_verejny -specificPubSecKeyFilename=%S (0x%S)_verejny-soukromy -defaultPubKeyFilename=Exportovane-verejne-klice -defaultPubSecKeyFilename=Exportovany-verejny-a-soukromy-klic - -sendKeysOk=Klíč/e byly úspěšně odeslány -sendKeysFailed=Odeslání klíčů selhalo -receiveKeysOk=Klíč/e úspěšně aktualizovány -receiveKeysFailed=Stažení klíčů selhalo -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Přejete si importovat některý/é klíč/e ze schránky? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Zvolený/é klíč/e nelze kopírovat do schránky. -copyToClipbrdOK=Klíče byly zkopírovány do schránky - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=POZOR: Pokoušíte se smazat soukromé klíče!\nJestliže smažete svůj soukromý klíč, nebudete moci dále dešifrovat zprávy zašifrované pro tento klíč.\n\nOpravdu si přejte smazat Vámi zvolený veřejný a soukromý klíč? -deletePubKey=Přejete si smazat tento veřejný klíč\n'%S'? -deleteSelectedPubKey=Přejete si smazat tyto veřejné klíče? -deleteKeyFailed=Klíč nelze smazat # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=Klíč byl revokován. Jestliže je tento klíč dostupný také na keyserveru, je doporučeno odeslat jej tam znovu, abyste dal/a i ostatním uživatelům vědet o revokaci. -revokeKeyFailed=Klíč nelze revokovat # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Nevybral/a jste žádný klíč. Přejete si obnovit seznam všech klíčů? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=POZOR: v závislosti na počtu klíčů a rychlosti připojení k internetu může trvat obnovení seznamu všech klíčů delší dobu! -downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=Exportovat &soukromé klíče -keyMan.button.exportPubKey=Exportovat &pouze veřejné klíče keyMan.button.import=&Importovat -keyMan.button.refreshAll=&Znovu načíst všechny klíče keyMan.button.revokeKey=&Revokovat klíč - -keylist.noOtherUids=Nemá jiné identity -keylist.hasOtherUids=Další identita -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Vyberte fotografii pro vložení -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Vybraný soubor zřejmě není JPEG. Vyberte jiný soubor. -keyMan.addphoto.failed=Soubor nelze vlořit. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Změna výchozího ID uživatele selhala -changePrimUidOK=Změna výchozího ID uživatele proběhla úspěšně -revokeUidFailed=Revokace ID uživatele %S selhalo -revokeUidOK=ID uživatele %S bylo úspěšně revokováno. Jestliže je tento klíč dostupný také na keyserveru, je doporučeno odeslat jej tam znovu, aby se i ostatní o revokaci dozvěděli. -revokeUidQuestion=Jistě si přejete revokovat ID uživatele %S? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Vytvořen -importInfoFpr=Otisk prstu -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=veřejný klíč -keyTypePrimary=hlavní kíč -keyTypeSubkey=podklíč -keyTypePair=pár klíčů -keyExpiryNever=nikdy keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Šifrování -keyUsageSign=Podepisování -keyUsageCertify=Potvrdit -keyUsageAuthentication=Ověřování -keyDoesNotExpire=Platnost klíče neskončí - -# Strings in enigmailGenCardKey.xul -keygen.started=Prosím počkejte, klíč se začal vytvářet .... -keygen.completed=Klíč vytvořen. Nový klíč má ID: 0x%S -keygen.keyBackup=Klíč byl zazálohován jako %S -keygen.passRequired=Jestliže chcete vytvořit záložní kopii Vašeho klíče mimo SmartCard, napište prosím heslo. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Změna PIN selhala - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Obnovují se klíče, prosím čekejte ... -keyserverProgress.uploading=Odesílání klíčů, prosím čekejte ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Obnovit klíče -keyserverTitle.uploading=Odesílání klíče -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Soubor, který jste zadali, není spustitelný GnuPG. Zadejte prosím jiný soubor. -setupWizard.installFailed=Zdá se, že instalace nebyla úspěšná. Prosím, buď opakovat instalaci nebo nainstalovat GnuPG ručně a lokalizovat pomocí tlačítka Procházet. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Chyba ocurred při pokusu o stažení GnuPG. Zkontrolujte prosím konzoly protokol pro další podrobnosti. -installGnuPG.installFailed=Chyba při instalaci GnuPG ocurred. Zkontrolujte konzole protokol pro další podrobnosti. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Musíte vyplnit jméno a e-mailovou adresu -addUidDlg.nameMinLengthError=Jméno musí mít alespoň 5 znaků -addUidDlg.invalidEmailError=Musíte zadat platnou e-mailovou adresu - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Certifikát zabezpečení předložený webové službě není platný. errorType.SecurityProtocol=Bezpečnostní protokol používaný webovou službou není znám. errorType.Network=Došlo k chybě sítě. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=O Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/cs/help/compose.html enigmail-2.2.4/lang/cs/help/compose.html --- enigmail-2.1.6+ds1/lang/cs/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - Nápověda pro Enigmail - psaní zpráv - - - - -

Nápověda pro Enigmail

- -

Použití Enigmailu při psaní zprávy

- -
-
menu OpenPGP v okně Zpráva/Nová zpráva
- -
-
-
Podepsat zprávu
- -
Povolit / zakázat podepsat odesílanou zprávu. Pokud digitální podpis selže, je o tom uživatel informován.
- -
Šifrovat zprávu
-
-

Povolit / zakázat šifrování zprávy pro všechny příjemce před zasláním. Pokud šifrování selže, je uživatel o této zkutečnosti informován.

- -

Při nastavené volbě Zobraz výběr, když je třeba v menu Předvolby-> záložka Výběr klíče se při odesílání pošty zobrazí seznam klíčů pro šifrování zprávy, pokud jsou v seznamu příjemců pošty adresáti, jejichž veřejný klíč nemáte.

- -

Při nastavené volbě Nikdy nezobrazovat výběr OpenPGP klíče v menu Předvolby -> záložka Výběr klíče se odešle zpráva nezašifrovaná, pokud jsou v seznamu příjemců pošty adresáti, jejichž veřejný klíč nemáte.

-
- -
Použít PGP/MIME pro tuto zprávu
- -
- Povolit / zakázat použití PGP/MIME pro tuto zprávu.. - -

Pokud víte, že příjemce dokáže přečíst poštu, která používá PGP/MIME formát, můžete tento formát použít.

- -

Tato volba je povolena, pokud na záložce Předvolby -> PGP/MIME tab je nastaveno Povolit použití PGP/MIME nebo Vždy použít PGP/MIME.

-
- -
Výchozí nastavení tvorby zpráv
- -
-
    -
  • Nastavení podepisování/šifrování...: menu Nástroje -> Nastavení účtu -> OpenPGP/Enigmail
  • - -
  • Nastavení odesílání...:-> záložky Předvolby -> Odesílání
  • - -
  • Nastavení výběru klíče...:-> záložky Předvolby -> Výběr klíče
  • - -
  • PGP/MIME nastavení...:-> záložky Předvolby -> PGP/MIME
  • -
-
- -
Zpět šifrování
- -
-

Pokud při zasílání pošty dojde k chybě, například když POP server nepřijme požadavek, Enigmail o tom nebude vědět, a zašifrovaná zpráva zůstane zobrazena v okně Psaní zprávy. Zvolením této položky menu dojde ke zrušení šifrování a podepsání, což se projeví zobrazením původního (nezašifrovaného) textu v okně psaní zprávy.

- -

Tato volba může být použita takě jako nouzová oprava, pokud odpovídáte na zašifrovanou zprávu. Enigmail dešifruje citovanou zprávu automaticky, ale pokud z nějakého důvodu dešifrování neproběhne, může být tato volba použita k vynucenému dešifrování zprávy.

-
- -
Připojit veřejný klíč
- -
Zobrazí se seznam veřejných klíčů, které můžete připojit k vytvářené zprávě. Pokud zvolíte jediný klíč, připojí se ke zprávě soubor s názvem 0xkey_id.asc (kde key_id je číselný identifikátor zvoleného klíče ), který obsahuje ASCII-armoredy text zvolného klíče. Pokud vyberete více klíčů, připojí se soubor s názvem pgpkeys.asc, který obsahuje ASCII-armored text se všemi klíči.
- -
Smazat uložené heslo
- -
Dojde k odstranění dočasně uloženého hesla k soukromému klíči. To je užitečné zejména pokud máte více hesel.
- -
Nápověda
- -
Zobrazí nápovědu jako webovou stránku (tato stránka).
-
-
-
-
-

Další nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).

- - diff -Nru enigmail-2.1.6+ds1/lang/cs/help/editRcptRule.html enigmail-2.2.4/lang/cs/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/cs/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - Nápověda pro Enigmail - úprava pravidel OpenPGP - - - - - -

Nápověda pro Enigmail

- -

Používání editoru pravidel v Enigmailu: úprava pravidel OpenPGP

- -

V editoru pravidel můžete pro každého příjemce nastavit výchozí chování Enigmailu tak, že povolíte šifrování, podpis, PGP/MIME a určíte klíč(e) OpenPGP, který se bude pro daného příjemce používat. Zde můžete určit pravidla pro jednotlivé příjemce a pro skupiny příjemců s podobnými charfakteristikami.

- -
-
Nastavit OpenPGP pravidla pro
- -
Pole obsahuje emailové adresy příjemců (bez jmen, t.j. pouze adresu ve tvaru jmeno@domena.cz). Můžete uvést několik emailových adres oddělených mezerami. Adresy mohou obsahovat pouze doménovou část, takže pravidlo odpovídá všem adresátům dané domény, např.@domena.cz zahrnuje adresy jmeno@domena.cz, jine_jmeno@domena.cz, atd.
- -
Použij pravidlo jestliže adresát ...
- -
- Upravuje hledání emailových adres, na které se budou v pravidlech používat. Pokud zapíšete více adres, nastavení se aplikuje na všechny. Následující příklady vycházejí z příkladu adresy jmeno@domena.cz. - -
    -
  • Je přesně: s tímto nastavením bude pravidlo použito, pokud email adresáta je přesně jmeno@domena.cz (nezávisí na použití velkých a malých písmen v emailové adrese).
  • - -
  • Obsahuje: s tímto nastavením bude pravidlo použito pro každou emailovou adresu, která obsahuje zadaný text, t.j. moje-jmeno@domena.cz nebo jmeno@domena.cz.com.
  • - -
  • Začíná s: s tímto nastavením bude pravidlo použito pro každou emailovou adresu, která začíná zadaným textem t.j. jmeno@domena.cz, jmeno@domena.cz.com.
  • - -
  • Končí s: s tímto nastavením bude pravidlo použito pro každou emailovou adresu, která končí zadaným textem t.j. moje-jmeno@domena.cz , jmeno@domena.cz.
  • -
-
- -
Pokračovat s dalším pravidlem k daným adresám
- -
Tato akce umožní definovat pravidlo a nezadat ID klíče ve vstupním poli Použít následující klíče OpenPGP:. Odpovídající klíč bude podle emailové adresy určen při odesílání zprávy. Pro určenou(é) adresu(y) se také zpracují další pravidla.
- -
Nekontrolovat dále pravidla k dané adrese
- -
Ukončí zpracování dalších pravidel pro zvolenou adresu, začne se zpracovávat další adresa příjemce.
- -
Použít následující OpenPGP klíče:
- -
Pomocí tlačítka Vybrat klíč(e)... vyberte klíče, které budou použity k šifrování. Stejně jako v předchozím případě se již nepoužijí pro odpovídající adresu další pravidla.
- -
Výchozí pro podepisování
- -
- Povolit / zakázat - podepsání zprávy. To, zda dojde k podepsání zprávy, závisí na nastavení podepisovámí v okně Psání zprávy a na vybrané hodnotě z těchto možností: - -
    -
  • Nikdy: zakáže podepsání zprávy bez ohledu na to, jaká volba je v okně psaní zprávy. Tato volba potlačuje ostatní.
  • - -
  • Ano, jestliže je to povoleno při vytváření zprávy: podepisování zprávy je povoleno a závisí na další volbě, která bude nastavena v okně psaní zprávy.
  • - -
  • Vždy: zpráva bude podepsána bez ohledu na to, jaká je volba v okně psaní zprávy
  • -
Toto nastavení podpisu bude použito pro všechna odpovídající pravidla. Jestliže jedno z pravidel zakáže podepsání, zpráva nebude podepsána bez ohledu na to, zda v ostatních pravidlech je nastavena volba Vždy. -
- -
Šifrování
- -
Povolit / zakázat šifrování zprávy. Nastavení šifrování a jeho význam jsou podobné jako nastavení podepisování.
- -
PGP/MIME
- -
Povolit / zakázat kódování zprávy pomocí PGP/MIME (RFC 3156). Pokud je PGP/MIME zakázáno, zpráva je kódována použitím "vkládaného PGP" ("inline PGP"). Nastavení a jeho význam jsou podobné jako nastavení podepisování.
-
- -

Pravidla jsou zpracována v pořadí podle uvedeného seznamu. Vždy, když pravidlo odpovídá příjemci a obsahuje ID klíče OpenPGP, příjemce se již kromě použití určeného klíče v dalších pravidlech nezpracovává.

-
- -

Další nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).

- - diff -Nru enigmail-2.1.6+ds1/lang/cs/help/messenger.html enigmail-2.2.4/lang/cs/help/messenger.html --- enigmail-2.1.6+ds1/lang/cs/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Nápověda pro Enigmail - čtení zpráv - - - - - -

Nápověda pro Enigmail

- -

Používání Enigmailu při čtení zpráv

- -
-
Tlačítko "Dešifrovat" v hlavním okně
- -
Toto tlačítko má několik funkcí: dešifrování, ověřování nebo import veřejných klíčů. Normálně probíhá dešifrování/ověřování automaticky, ovšem tato funkce může být v předvolbách zakázána. Pokud nastane chyba, zobrazí se krátká zpráva ve stavovém řádku Enigmailu. Pokud klepnete na tlačítko "Dešifrovat", zobrazí se podrobnější výpis chyb včetně GnuPG příkazů.
- -
Ikony pera a klíče zobrazené v hlavičce zprávy
- -
- Ikony Pera a Klíče ikony pera a klíče v hlavičce zprávy indikují zda zpráva, kterou čtete, je podepsána a/nebo šifrována a zda je podpis platný, tj., že zpráva nebyla od okamžiku podpisu změněna. Ikona zlomného pera indikuje, že zpráva má neplatný podpis nebo byla změněna. Pokud klepnete pravým tlačítkem na ikonu pera nebo klíče zobrazí se menu s následujícími možnostmi: - -
    -
  • Bezpečnostní informace: zobrazí výstup GnuPG pro tuto zprávu.
  • - -
  • Kopírovat bezpečnostní informace OpenPGP: zkopíruje výstup z GnuPG do schránky; umožní například vložení do odpovědi na zprávu.
  • - -
  • Zobrazit Foto ID: zobrazí Photo ID osoby, která zprávu poslala, jestliže jej veřejný klíč obsahuje. (Tato volba je dostupná pouze pokud je fotografie ve veřejném klíči uložena.)
  • - -
  • Bezpečnostní informace S/MIME: zobrazí bezpečnostní informace S/MIME.
  • -
- -

Jestliže v souboru gpg.conf nemáte nastaveno automatické načítání klíčů z keyserveru a čtete elektronicky podepsáné nebo šifrováné zprávy, uvidíte panelu zprávy ikonku pera s otazníkem a v horní části se zobrazí: Část zprávy byla podepsána; klepněte na ikonku pera nebo klíče pro více informací. Ve zprávě se zobrazí značky úseku textu OpenPGP a blok podpisu.

- -

Může se to stát i v případě, že máte nastaveno automatické načítání klíčů z keyserveru, ale klíč není na serveru k dispozici.

- -

Klepnutím na ikonku pera a otazníku se Vám zobrazí hlášení že klíč, kterým byla zpráva podepsána, není dostupný. Klepnutím na tlačítko OK se dostanete k dalšímu oknu, kde si můžete ze seznamu keyserverů vybrat odkud veřejný klíč odesílatele stáhnout.

- -

Seznam keyserverů, které chcete používat, nastavíte v menu OpenPGP -> Předvolby... -> Určete Váš/Vaše keyservery, adresy napište do řádku Keyserver(y):. Více adres oddělte čárkou. Jako výchozí bude použit první keyserver.

-
- -
Otevření šifrovaných příloh / import přiložených klíčů OpenPGP
- -
Přílohy pojmenované *.pgp, *,asc a *.gpg je OpenPGP schopno rozeznat a zpracovat. Kliknutím pravým tlačítkem myši na přílohu dostanete dvě specifické položky kontextového menu: Dešifrovat a otevřít a Dešifrovat a uložit jako .... Tyto možnosti využijete, když budete chtít, aby Enigmail přílohy před otevřením nebo uložením dešifroval. Jestliže je příloha zprávy rozpoznána jako soubor obsahující s klíčem OpenPGP, bude Vám nabídnuta možnost importovat klíč do Vašeho úložiště.
-
-
- -

Další nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).

- - diff -Nru enigmail-2.1.6+ds1/lang/cs/help/rulesEditor.html enigmail-2.2.4/lang/cs/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/cs/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ - - - - - Nápověda pro Enigmail: editor pravidel - - - - - -

Nápověda pro Enigmail

- -

Použití editoru pravidel v Enigmailu

-

V editoru pravidel můžete pro každého příjemce nastavit výchozí chování Enigmailu tak, že povolíte -šifrování, podpis, PGP/MIME a určíte klíč(e) OpenPGP, který se bude pro daného příjemce používat. -Každé pravidlo se skládá z 5 položek a je reprezentováno jedním řádkem: -

-
-
Email
-
Určení emailové(ých) adresy (adres) z polí Komu:, Kopie: a Skrytá kopie:, pro kterou(é) se pravidlo použije. Určení probíhá podle podřetězců (více podrobností najdete v dialogu při vytváření pravidla).
- -
Klíč(e) OpenPGP
-
Seznam ID klíčů OpenPGP k použití pro zvoleného příjemce
- -
Podpis
-
Povolit / zakázat podepsání zprávy. Použije se zadaná hodnota anebo bude přepsána hodnota nastavená v okně vytváření zprávy. Možnosti jsou: - -
    -
  • Nikdy: zakáže podepsání zprávy bez ohledu na to, jaká volba je v okně psaní zprávy. Tato volba potlačuje ostatní.
  • -
  • Možný: ponechá podepisování zprávy na nastavení v okně psaní zprávy.
  • -
  • Vždy: zprávy bude podepsána, i kdyby to v okně psaní zprávy povoleno nebylo.
- -

Nastavení pro podepisování se použije pro všechna odpovídající pravidla. Jestliže jedno pravidlo podepsání zakazuje, zpráva nebude podepsána bez ohledu na to, zda ostatní pravidla mají nastavenou volbu Vždy.

- -
Šifrování
-
Povolit / zakázat šifrování zprávy. Nastavení šifrování a jeho význam jsou podobné jako nastavení podepisování.
- -
PGP/MIME
-
Povolit / zakázat kódování zprávy pomocí PGP/MIME (RFC 3156). Pokud je PGP/MIME zakázáno, zpráva je kódována použitím "vkládaného PGP" ("inline PGP"). Nastavení a jeho význam jsou podobné jako nastavení podepisování.
- -
- -

Pravidla jsou zpracována v pořadí podle uvedeného seznamu. Vždy, když pravidlo odpovídá příjemci a obsahuje ID klíče OpenPGP, příjemce se již kromě použití určeného klíče v dalších pravidlech nezpracovává.

- -

Poznámka: Editor pravidel ještě není kompletní. Je možno napsat složitější pravidla přímou úpravou souboru pravidel, avšak tyto pravidla již pak nesmíte upravovat pomocí editoru -pravidel. Další informace o přímé úpravě souboru s pravidly si můžete přečíst na stránkách Enigmailu (anglicky).

-
- -

Další nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).

- - diff -Nru enigmail-2.1.6+ds1/lang/cs/help/sendingPrefs.html enigmail-2.2.4/lang/cs/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/cs/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/cs/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/current-languages.txt enigmail-2.2.4/lang/current-languages.txt --- enigmail-2.1.6+ds1/lang/current-languages.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/current-languages.txt 2020-10-01 13:32:58.000000000 +0000 @@ -13,6 +13,7 @@ gl hr hu +hy it ja ko diff -Nru enigmail-2.1.6+ds1/lang/da/am-enigprefs.properties enigmail-2.2.4/lang/da/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/da/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP-sikkerhed +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/da/enigmail.dtd enigmail-2.2.4/lang/da/enigmail.dtd --- enigmail-2.1.6+ds1/lang/da/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,780 +1,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/da/enigmail.properties enigmail-2.2.4/lang/da/enigmail.properties --- enigmail-2.1.6+ds1/lang/da/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - -# enigAlert=Enigmail Alert -# enigConfirm=Enigmail Confirmation -# enigInfo=Enigmail Information -# enigError=Enigmail Error -# enigPrompt=Enigmail Prompt - -# dlgYes=&Yes -# dlgNo=&No -# dlgKeepSetting=Remember my answer and do not ask me again -# dlgNoPrompt=Do not show me this dialog again -# dlg.button.delete=&Delete -# dlg.button.cancel=&Cancel -# dlg.button.close=&Close -# dlg.button.continue=Con&tinue -# dlg.button.skip=&Skip -# dlg.button.overwrite=&Overwrite -# dlg.button.view=&View -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install -# dlg.button.ok=&OK - -# repeatPrefix=\n\nThis alert will repeat %S -# repeatSuffixSingular=more time. -# repeatSuffixPlural=more times. -# noRepeat=\n\nThis alert will not repeat until you upgrade Enigmail. - -# pgpNotSupported=You seem to be using Enigmail together with PGP 6.x\n\nUnfortunately, PGP 6.x has a number of issues that prevent Enigmail from working correctly. Therefore, Enigmail does not support PGP 6.x anymore; please switch to GnuPG (GPG) instead.\n\nIf you need help on switching to GnuPG, check the Help section of the Enigmail homepage. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard -# passphraseCleared=The passphrase has been cleared. -# cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -# noPhotoAvailable=No Photo available -# debugLog.title=Enigmail Debug Log -# error.photoPathNotReadable=Photo path '%S' is not readable - -# generalError=Error: %S - -# Strings in configure.jsm -# enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -# enigmailCommon.checkPreferences=Check Preferences ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - -# usingVersion=Running Enigmail version %S -# enigmailPepVersion=Enigmail/p≡p version %S -# usingAgent=Using %1$S executable %2$S to encrypt and decrypt -# agentError=ERROR: Failed to access Enigmail core service! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -# accessError=Error in accessing Enigmail service -# onlyGPG=Key generation only works with GnuPG (not with PGP)! - -# keygenComplete=Key generation completed! Identity <%S> will be used for signing. -# revokeCertRecommended=We highly recommend to create a revocation certificate for your key. This certificate can be used to invalidate your key, e.g. in case your secret key gets lost or compromised. Do you want to create such a revocation certificate now? -# keyMan.button.generateCert=&Generate Certificate -# genCompleteNoSign=Key generation completed! -# genGoing=Key generation already in progress! - -# passNoMatch=Passphrase entries do not match; please re-enter -# passCheckBox=Please check box if specifying no passphrase for key -# passUserName=Please specify user name for this identity -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -# passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character. -# changePassFailed=Changing the passphrase failed. - -# keyConfirm=Generate public and secret key for '%S'? -# keyMan.button.generateKey=&Generate Key -# keyAbort=Abort key generation? -# keyMan.button.generateKeyAbort=&Abort Key Generation -# keyMan.button.generateKeyContinue=&Continue Key Generation -# expiryTooLong=You cannot create a key that expires in more than 100 years. -# expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -# expiryTooShort=Your key must be valid for at least one day. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -# setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -# securityInfo=Enigmail Security Info\n\n - -# enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -# possiblyPgpMime=Possibly PGP/MIME encrypted or signed message; use 'Decrypt/Verify' function to verify - -# saveAttachmentHeader=Enigmail: Save decrypted attachment -# noTempDir=Could not find a temporary directory to write to\nPlease set the TEMP environment variable -# attachmentPgpKey=The attachment '%S' you are opening appears to be an OpenPGP key file.\n\nClick 'Import' to import the keys contained or 'View' to view the file contents in a browser window - -# beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -# endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -# noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted* - -# decryptOkNoSig=Warning\n\nDecryption was successful, but the signature could not be verified correctly -# msgOvl.button.contAnyway=&Continue Anyway -# signature.verifiedOK=The signature for attachment %S was successfully verified -# signature.verifyFailed=The signature for attachment %S could not be verified -# attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -# attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -# keysToExport=Select OpenPGP Keys to Insert -# keysToUse=Select OpenPGP Key(s) to use for %S -# pubKey=Public key for %S\n - -# windowLocked=Compose window is locked; send cancelled -# sendUnencrypted=Failed to initialize Enigmail.\nSend unencrypted message? -# composeSpecifyEmail=Please specify your primary email address, which will be used to choose the signing key for outgoing messages.\n If you leave it blank, the FROM address of the message will be used to choose the signing key. -# sendingHiddenRcpt=This message has BCC (blind copy) recipients. If this message is encrypted, it is possible to hide the BCC recipients but users of some products (e.g. PGP Corp.) will not be able to decrypt the message. Given this, we recommend to avoid BCC-emails with encrypted messages. -# sendWithHiddenBcc=Hide BCC recipients -# sendWithShownBcc=Encrypt normally -# sendingNews=Encrypted send operation aborted.\n\nThis message cannot be encrypted because there are newsgroup recipients. Please re-send the message without encryption. -# sendToNewsWarning=Warning: you are about to send an encrypted email to a newsgroup.\n\nThis is discouraged because it only makes sense if all members of the group can decrypt the message, i.e. the message needs to be encrypted with the keys of all group participants. Please send this message only if you know exactly what you are doing.\n\nContinue? -# hasHTML=HTML email warning:\nThis message may contain HTML, which could cause signing/encryption to fail. To avoid this in the future, you should press the SHIFT key when clicking on the Compose/Reply button to send signed email.\nIf you sign email by default, you should uncheck the 'Compose Messages in HTML' preference box to permanently disable HTML email for this email account. -# strippingHTML=Message contains HTML formatting information that will be lost when converting to plain text for signing/encryption. Do you wish to proceed? -# msgCompose.button.sendAnyway=&Send Message Anyway -# attachWarning=Attachments to this message are not local, they cannot be encrypted. In order to encrypt the attachments, store them as local files first and attach these files. Do you wish to send the message anyway? -# quotedPrintableWarn=You have enabled 'quoted-printable' encoding for sending messages. This may result in incorrect decryption and/or verification of your message.\nDo you wish to turn off sending 'quoted-printable' messages now? -# minimalLineWrapping=You have set line wrapping to %S characters. For correct encryption and/or signing, this value needs to be at least 68.\nDo you wish to change line wrapping to 68 characters now? -# warning=Warning -# signIconClicked=You have manually modified signing. Therefore, while you are composing this message, (de)activating signing does not depend anymore on (de)activating encryption. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Ukendt -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -# sendAborted=Send operation aborted.\n\n - -# details: -# keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -# statPGPMIME=PGP/MIME -# statSMIME=S/MIME -# statSigned=SIGNED -# statEncrypted=ENCRYPTED -# statPlain=UNSIGNED and UNENCRYPTED - -# offlineSave=Save %1$S message to %2$S in Unsent Messages folder? - -# onlineSend=Send %1$S message to %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -# msgCompose.button.sendUnencrypted=&Send Unencrypted Message -# recipientsSelectionHdr=Select Recipients for Encryption - -# configureNow=You did not yet configure Enigmail security for the selected identity. Do you want to do this now? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -# encryptMessageNorm=Encrypt Message -# signMessageAuto=Sign Message (auto) -# signMessageNorm=Sign Message - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -# encryptYes=Message will be encrypted -# encryptNo=Message will not be encrypted - -# should not be used anymore: -# signYes=Message will be signed -# signNo=Message will not be signed - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -# rulesConflict=Conflicting per-recipient rules detected\n%S\n\nSend message with these settings? -# msgCompose.button.configure=&Configure -# msgCompose.button.send=&Send Message -# msgCompose.button.save=&Save Message - -# Strings in enigmailMsgHdrViewOverlay.js -# keyNeeded=Public key %S needed to verify signature -# keyUsed=Public key %S used to verify signature -# clickDecrypt=; use 'Decrypt/Verify' function -# clickDecryptRetry=; use 'Decrypt/Verify' function to retry -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -# headerView.button.decrypt=Decrypt -# msgPart=Part of the message %S -# msgSigned=signed -# msgSignedUnkownKey=signed with unknown key -# msgEncrypted=encrypted -# msgSignedAndEnc=signed and encrypted - -# unverifiedSig=Unverified signature -# incompleteDecrypt=Decryption incomplete -# needKey=Error - no matching secret key found to decrypt message -# failedDecrypt=Error - decryption failed -# badPhrase=Error - bad passphrase -# missingMdcError=Error - missing or broken integrity protection (MDC) -# failedDecryptVerify=Error - decryption/verification failed -# viewInfo=; View > Message security info for details -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -# decryptedMsg=Decrypted message -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Ukendt -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js -# oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -# locateGpg=Locate GnuPG program -# invalidGpgPath=GnuPG cannot be executed with the path provided. Enigmail is therefore deactivated until you change the path to GnuPG again or until you restart the application. -# warningsAreReset=All warnings have been reset. -# prefs.gpgFound=GnuPG was found in %S -# prefs.gpgNotFound=Could not find GnuPG -# prefs.warnAskNever=Warning: activating this option will result in unencrypted emails without any further information if there is no key for one of the recipients -- Enigmail will not inform you if this happens! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -# prefEnigmail.oneKeyserverOnly=Error - you can only specify one keyserver for automatic downloading of missing OpenPGP keys. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail er open source og licenseret under Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -# enterAdminPin=Please type in the ADMIN PIN of your SmartCard -# enterCardPin=Please type your SmartCard PIN - -# notInit=Error - Enigmail service not yet initialized -# badCommand=Error - encryption command failed -# cmdLine=command line and output: -# notRequired=Error - no encryption required -# notComplete=Error - key generation not yet completed -# invalidEmail=Error - invalid email address(es) -# noPassphrase=Error - no passphrase supplied -# noPGPblock=Error - No valid armored OpenPGP data block found -# unverifiedReply=Indented message part (reply) was probably modified -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -# sigMismatch=Error - Signature mismatch -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm +enigAlert=Enigmail-advarsel +enigConfirm=Enigmail-bekræftelse +enigInfo=Enigmail-information +enigPrompt=Enigmail-forespørgsel +dlgNo=&Nej +dlgKeepSetting=Husk mit svar og spørg ikke igen +dlgNoPrompt=Vis ikke denne besked igen +dlg.button.cancel=&Afbryd +dlg.button.close=&Luk +dlg.button.continue=&Fortsæt +dlg.button.ok=&OK +repeatPrefix=\n\nDenne advarsel vil gentages %S +repeatSuffixSingular=mere gang. +repeatSuffixPlural=gange mere +noRepeat=\n\nDenne advarsel vil ikke gentages før du opgraderer Enigmail. +passphraseCleared=Kodesætningen er fjernet. +cannotClearPassphrase=Du bruger et usædvanligt værktøj (såsom gnome-keyring) til at håndtere din kodesætning. Fjernelse af kodesætningen er derfor ikke mulig fra Enigmail. +usingVersion=Kører Enigmail version %S +usingAgent=Anvender %1$S eksekverbare %2$S til at kryptere og dekryptere. +agentError=ERROR: Kunne ikke forbinde til Enigmails kerneservice! +keysToUse=Vælg OpenPGP nøgle(r) der skal anvendes til %S +pubKey=Offentlig nøgle til %S\n +quotedPrintableWarn=Du har aktiveret 'quoted-printable'-kodning ved afsendelse af beskeder. Dette kan resultere i ukorrekt dekryptering og/eller verifikation af beskeder.\nVil du deaktivere brug af 'quoted-printable' med det samme? +warning=Advarsel +keyNotTrusted=Ikke nok troværdighed for nøglen '%S' +unverifiedSig=Uverificeret signatur +badPhrase=Fejl - kodesætning forkert +missingMdcError=Fejl - manglende eller fejlende integritetsbeskyttelse (MDC) +oldGpgVersion20=Enigmail-initialisering fejlede.\n\nDu bruger GnuPG version %1$S, som ikke længere understøttes. Enigmail kræver GnuPG version %2$S eller nyere. Opgrader din GnuPG-installation, ellers vil Enigmail ikke fungere. +badCommand=Fejl - krypteringskommando mislykkedes +cmdLine=kommandolinje og resultat: +noPassphrase=Fejl - ingen kodesætning blev angivet +noPGPblock=Fejl - Ingen gyldig befæstet OpenPGP-datablok fundet # sc.wrongCardAvailable=The SmartCard %1$S found in your reader cannot be used to process the message.\nPlease insert your SmartCard %2$S and repeat the operation. # sc.insertCard=The operation requires your SmartCard %S.\nPlease insert the required SmartCard and repeat the operation. # sc.removeCard=The operation requires no SmartCard to be in the reader.\nPlease remove your SmartCard and repeat the operation. @@ -376,306 +39,72 @@ # sc.noReaderAvailable=Your SmartCard reader could not be accessed\nPlease attach your SmartCard reader, insert your card, and repeat the operation. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. -# missingPassphrase=Missing passphrase -# errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. -# errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). -# errorHandling.dirmngrError=GnuPG reported an error in the communication with dirmngr (a component of GnuPG). -# errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. -# errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. +missingPassphrase=Manglende nøglesætning +errorHandling.gpgAgentInvalid=Dit system kører en version af gpg-agent som ikke egner sig til din GnuPG-version. +errorHandling.gpgAgentError=GnuPG rapporterede en fejl under kommunikationen med gpg-agent (en komponent af GnuPG). +errorHandling.dirmngrError=GnuPG rapporterede en fejl under kommunikationen med dirmngr (en komponent af GnuPG). +errorHandling.pinentryError=GnuPG kan ikke spørge efter din nøglesætning via pinentry. +errorHandling.pinentryCursesError=Din GnuPG-installation er konfigureret til at bruge en konsol til pinentry. Du er dog nødt til at bruge en grafisk version af pinentry sammen med Enigmail. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - # gpgNotFound=Unable to locate GnuPG program '%S'.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. # gpgNotInPath=Unable to locate GnuPG executable in the PATH.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. # enigmailNotAvailable=Enigmail core Service not available - -# prefGood=Good signature from %S -# prefBad=BAD signature from %S - -# failCancel=Error - Key receive cancelled by user -# failKeyExtract=Error - key extraction command failed -# failKeyNoSubkey=No valid (sub-)key -# notFirstBlock=Error - First OpenPGP block not public key block -# importKeyConfirm=Import public key(s) embedded in message? -# failKeyImport=Error - key importing failed -# fileWriteFailed=Failed to write to file %S - -# importKey=Import public key %S from keyserver: -# uploadKey=Send public key %S to keyserver: -# keyId=Key ID -# keyAndSigDate=Key ID: 0x%1$S / Signed on: %2$S -# keyFpr=Key fingerprint: %S -# noEmailProvided=You did not provide an email address! -# keyAlreadySigned=The key is already signed, you cannot sign it twice. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -# selKeyExpired=expired %S -# createdHeader=Created -# atLeastOneKey=No key selected! You have to select at least one key to accept this dialog -# fewerKeysThanRecipients=You have selected a smaller number of keys than recipients. Are you sure that the list of keys to encrypt is complete? -# userSel.button.goBack=Select more Keys -# userSel.secretKeySel.title=Select a Secret OpenPGP Key to Sign Your Messages -# userSel.problemNoKey=No valid key -# userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. -# first=first -# second=second - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -# encryptKeyHeader=Select OpenPGP Key for Encryption -# identityName=Identity: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -# noEncryption=You have activated encryption, but you did not select a key. In order to encrypt emails sent to %1$S, you need to specify one or several valid key(s) from your key list. Do you want to disable encryption for %2$S? -# noKeyToUse=(none - no encryption) -# noEmptyRule=The Rule may not be empty! Please set an email address in the Rule field. -# invalidAddress=The email address(es) you have entered are not valid. You should not set the names of the recipients, just the email addresses. E.g.:\nInvalid: Some Name \nValid: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js +failCancel=Fejl - Nøglemodtagelse blev afbrudt af brugeren +failKeyExtract=Fejl - nøgleudpakningskommando fejlede +notFirstBlock=Fejl - Første OpenPGP-blok er ikke en offentlig nøgle +importKeyConfirm=Importer offentlige nøgle(r) som findes i beskeden? +fileWriteFailed=Skrivning til fil %S mislykkedes +importKey=Importer offentlig nøgle %S fra nøgleserver: +uploadKey=Send offentlig nøgle %S til nøgleserver: +keyId=NøgleID +createdHeader=Oprettet +atLeastOneKey=Ingen nøgle valgt! Du skal vælge mindst en nøgle for at acceptere denne besked +fewerKeysThanRecipients=Du har valgt færre nøgler end modtagere. Er du sikker på at listen med krypteringsnøgler er komplet? +userSel.button.goBack=Vælg flere nøgler +userSel.secretKeySel.title=Vælg en privat OpenPGP-nøgle til at signere dine beskeder med +userSel.problemNoKey=Ingen gyldig nøgle +userSel.problemMultipleKeys=Flere nøgler +first=første +second=anden never=Aldrig always=Altid -# possible=Possible -# deleteRule=Really delete the selected rule? -# nextRcpt=(Next recipient) -# negateRule=Not -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -# needOnline=The function you have selected is not available in offline mode. Please go online and try again. -# noKeyserverConn=Could not connect to keyserver at %S. -# internalError=An internal error occurred. The keys could not be downloaded or imported. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -# setKeyTrustFailed=Setting owner trust failed - - -# Strings in enigmailSignKeyDlg.js -# signKeyFailed=Key signing failed -# alreadySigned.label=Note: the key %S is already signed with the selected secret key. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -# keyMan.loadingKeys=Loading keys, please wait ... -# keyValid.unknown=unknown -# keyValid.invalid=invalid -# keyValid.disabled=disabled -# keyValid.revoked=revoked -# keyValid.expired=expired -# keyValid.noSubkey=no valid subkey - -keyTrust.untrusted=ubetroet -# keyTrust.marginal=marginal +possible=Mulig +keyValid.unknown=ukendt +keyValid.invalid=ugyldig +keyValid.disabled=deaktiveret +keyValid.revoked=tilbagetrukket +keyValid.expired=udløbet +keyValid.noSubkey=ingen gyldig undernøgle +keyValid.valid=gyldig +keyValid.ownKey=egen nøgle +keyTrust.untrusted=utroværdig +keyTrust.marginal=marginal keyTrust.full=troværdig -# keyTrust.ultimate=ultimate -# keyTrust.group=(group) -# keyType.public=pub -# keyType.publicAndSec=pub/sec -# keyMan.enableKey=Enable Key -# keyMan.disableKey=Disable Key -# userAtt.photo=User attribute (JPEG image) - -# asciiArmorFile=ASCII Armored Files (*.asc) -# importKeyFile=Import OpenPGP Key File -# gnupgFile=GnuPG Files -# saveRevokeCertAs=Create & Save Revocation Certificate -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -# revokeCertFailed=The revocation certificate could not be created. - -# addUidOK=User ID added successfully -# addUidFailed=Adding the User ID failed -# noKeySelected=You should select at least one key in order to perform the selected operation -# exportToFile=Export Public Key To File -# exportKeypairToFile=Export Secret and Public Key To File -# exportSecretKey=Do you want to include the secret key in the saved OpenPGP key file? -# saveKeysOK=The keys were successfully saved -# saveKeysFailed=Saving the keys failed -# importKeysFailed=Importing the keys failed -# enableKeyFailed=Enabling/disabling the keys failed -# specificPubKeyFilename=%1$S (0x%2$S) pub -# specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -# defaultPubKeyFilename=Exported-public-keys -# defaultPubSecKeyFilename=Exported-public-and-secret-keys - -# sendKeysOk=Key(s) sent successfully -# sendKeysFailed=Sending of keys failed -# receiveKeysOk=Key(s) updated successfully -# receiveKeysFailed=Downloading of keys failed -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -# importFromClip=Do you want to import some key(s) from clipboard? -# importFromUrl=Download public key from this URL: -# copyToClipbrdFailed=Could not copy the selected key(s) to the clipboard. -# copyToClipbrdOK=Key(s) copied to clipboard - +keyTrust.ultimate=ultimativ +keyTrust.group=(gruppe) +userAtt.photo=Brugerattribut (JPEG-billede) +importKeyFile=Importer OpenPGP nøgle-fil +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -# deleteMix=WARNING: You are about to delete secret keys!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key.\n\nDo you really want to delete BOTH, the selected secret and public keys? -# deletePubKey=Do you want to delete the public key\n'%S'? -# deleteSelectedPubKey=Do you want to delete the public keys? -# deleteKeyFailed=The key could not be deleted. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -# revokeKeyOk=The key has been revoked. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -# revokeKeyFailed=The key could not be revoked. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! -# revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -# refreshAllQuestion=You did not select any key. Would you like to refresh ALL keys? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -# refreshKey.warn=Warning: depending on the number of keys and the connection speed, refreshing all keys could be quite a lengthy process! -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -# keyMan.button.exportSecKey=Export &Secret Keys -# keyMan.button.exportPubKey=Export &Public Keys Only -# keyMan.button.import=&Import -# keyMan.button.refreshAll=&Refresh All Keys -# keyMan.button.revokeKey=&Revoke Key - -# keylist.noOtherUids=Has no other identities -# keylist.hasOtherUids=Also known as -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -# keyMan.addphoto.filepicker.title=Select photo to add -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -# keyMan.addphoto.failed=The photo could not be added. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -# changePrimUidFailed=Changing the primary User ID failed -# changePrimUidOK=The primary user ID was changed successfully -# revokeUidFailed=Revoking the user ID %S failed -# revokeUidOK=User ID %S was revoked successfully. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -# revokeUidQuestion=Do you really want to revoke the user ID %S? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -# importInfoCreated=Created -# importInfoFpr=Fingerprint -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -# keyTypePublic=public key -# keyTypePrimary=primary key -# keyTypeSubkey=subkey -# keyTypePair=key pair -# keyExpiryNever=never +revokeKeyAlreadyRevoked=Nøglen 0x%S er allerede tilbagetrukket. +keyMan.button.import=&Importer +keyMan.button.revokeKey=&Tilbagetræk nøgle keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA -# keyAlgorithm_16=ELG -# keyAlgorithm_17=DSA -# keyAlgorithm_18=ECDH -# keyAlgorithm_19=ECDSA -# keyAlgorithm_20=ELG -# keyAlgorithm_22=EDDSA -# keyUsageEncrypt=Encrypt -# keyUsageSign=Sign -# keyUsageCertify=Certify -# keyUsageAuthentication=Authentication -keyDoesNotExpire=Nøgle udløber aldrig - -# Strings in enigmailGenCardKey.xul -# keygen.started=Please wait while the key is being generated .... -# keygen.completed=Key Generated. The new Key ID is: 0x%S -# keygen.keyBackup=The key is backed up as %S -# keygen.passRequired=Please specify a passphrase if you want to create a backup copy of your key outside your SmartCard. - -# Strings in enigmailSetCardPin.xul -# cardPin.processFailed=Failed to change PIN - -# Strings in enigRetrieveProgres.js -# keyserverProgress.refreshing=Refreshing keys, please wait ... -# keyserverProgress.uploading=Uploading keys, please wait ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -# keyserverTitle.refreshing=Refresh Keys -# keyserverTitle.uploading=Key Upload -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -# addUidDlg.nameOrEmailError=You have to fill in a name and an email address -# addUidDlg.nameMinLengthError=The name must at least have 5 characters -# addUidDlg.invalidEmailError=You must specify a valid email address - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +keyAlgorithm_16=ELG +keyAlgorithm_17=DSA +keyAlgorithm_18=ECDH +keyAlgorithm_19=ECDSA +keyAlgorithm_20=ELG +keyAlgorithm_22=EDDSA +setupWizard.selectKeysButton=Vælg nøgler # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. # errorType.SecurityProtocol=The security protocol used by the web service is unknown. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,167 +120,46 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.OpenKeyManager=Open Enigmail Key Management -# expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm +expiry.OpenKeyManager=Åbn Enigmail nøglehåndtering +expiry.OpenKeyProperties=Åben nøgle-egenskaber # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -pepPrivacyStatus.RatingUndefinedText=Ukendt -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html -# aboutEnigmail.tabName=About Enigmail -# aboutEnigmail.title=OpenPGP support provided by Enigmail -# aboutEnigmail.team=Enigmail is developed by the Enigmail Team: -# aboutEnigmail.projectLeader=Lead Developer: +upgradeInfo.doctitle=Farvel fra Enigmail +upgradeInfo.welcome1=OpenPGP-kryptering er nu en del af Thunderbird +upgradeInfo.welcome2=Enigmail er ikke længere nødvendig i Thunderbird, og er nu udtjent - dette er den endelige og sidste version af Enigmail til Thunderbird. +upgradeInfo.migrateSettings.title=Migrer dine nøgler og indstillinger fra GnuPG til Thunderbird. +upgradeInfo.migrateSettings.desc=Før du afinstallerer Enigmail, er der tilbage at importere dine nøgler fra GnuPG ind i Thunderbird, og migrerer nogle vigtige indstillinger fra Enigmail til Thunderbird. Vi har lavet en guide som automatisk udfører disse trin for dig. +upgradeInfo.performMigration.buttonLabel=Start migrering nu +upgradeInfo.thankyou.title=Tak for din brug af Enigmail +upgradeInfo.thankyou.desc1=Det har været en fornøjelse at arbejde på Enigmail igennem to årtier. Vi er taknemmelige over at vi har kunnet bidrage til ideen om krypteret email. Vi håber du fandt Enigmail anvendelig og vil gerne takke for entusiasmen igennem disse mange år. +upgradeInfo.thankyou.desc2=Hvis du vil hjælpe til, så overvej venligst en donation til Thunderbird. +aboutEnigmail.tabName=Om Enigmail +aboutEnigmail.title=OpenPGP-understøttelse leveret af Enigmail +aboutEnigmail.team=Enigmail udvikles af Enigmail-teamet: +aboutEnigmail.projectLeader=Hovedudvikler: # aboutEnigmail.usability=Usability: -# aboutEnigmail.documentation=Documentation: -# aboutEnigmail.testing=Testing: -# aboutEnigmail.userSupport=User Support: -# aboutEnigmail.userSupport.team=the team and the list/forum members -# aboutEnigmail.localization=Localization: See the Enigmail Language Packs page -# aboutEnigmail.Credits=Credits: -# aboutEnigmail.origAuthor=Original author of the Enigmail extension -# aboutEnigmail.icons=Icons: -# aboutEnigmail.formerMembers=Former team members: -# aboutEnigmail.projectHosting=Project hosting: -# aboutEnigmail.licenseSupportTitle=License & Support -# aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S -# aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates -# updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm +aboutEnigmail.documentation=Dokumentation: +aboutEnigmail.testing=Aftestning: +aboutEnigmail.userSupport=Brugersupport: +aboutEnigmail.userSupport.team=teamet og medlemmer af mailinglister/fora +aboutEnigmail.localization=Lokalisering: Se Enigmail-sprogpakkesider +aboutEnigmail.Credits=Kreditering: +aboutEnigmail.origAuthor=Oprindelig forfatter af Enigmail-udvidelsen +aboutEnigmail.icons=Ikoner: +aboutEnigmail.formerMembers=Tidligere team-medlemmer: +aboutEnigmail.projectHosting=Projekt-hosting: +aboutEnigmail.licenseSupportTitle=Licens & support +aboutEnigmail.license=Enigmail OpenPGP er open source og licenseret under %S +aboutEnigmail.support=Support og download er tilgængelig fra www.enigmail.net. +updateGnuPG.checkUpdate=Check efter GnuPG-opdateringer # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/da/help/compose.html enigmail-2.2.4/lang/da/help/compose.html --- enigmail-2.1.6+ds1/lang/da/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/editRcptRule.html enigmail-2.2.4/lang/da/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/da/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/help.html enigmail-2.2.4/lang/da/help/help.html --- enigmail-2.1.6+ds1/lang/da/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License 2.0

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/initError.html enigmail-2.2.4/lang/da/help/initError.html --- enigmail-2.1.6+ds1/lang/da/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmail Core Service failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/messenger.html enigmail-2.2.4/lang/da/help/messenger.html --- enigmail-2.1.6+ds1/lang/da/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/rulesEditor.html enigmail-2.2.4/lang/da/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/da/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/da/help/sendingPrefs.html enigmail-2.2.4/lang/da/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/da/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/da/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encrypted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/de/am-enigprefs.properties enigmail-2.2.4/lang/de/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/de/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP-Sicherheit +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/de/enigmail.dtd enigmail-2.2.4/lang/de/enigmail.dtd --- enigmail-2.1.6+ds1/lang/de/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -" verwenden, um E-Mail-Adressen zu kennzeichnen"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP-Sicherheit)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACHTUNG: Das Erzeugen eines Schlüssels kann mehrere Minuten dauern. Beenden Sie die Anwendung während dieser Zeit nicht. Da der Zufallsgenerator von Aktivität auf dem Rechner abhängt, wird empfohlen, z. B. im Webbrowser aktiv zu surfen, um das Erzeugen des Schlüssels zu beschleunigen. Sie werden informiert, sobald der Schlüssel fertiggestellt ist."> - @@ -296,488 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" ist ungültig."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ACHTUNG: Das Erzeugen eines Schlüssels kann mehrere Minuten dauern. Beenden Sie die Anwendung während dieser Zeit nicht. Sie werden informiert, sobald der Schlüssel fertiggestellt ist."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/de/enigmail.properties enigmail-2.2.4/lang/de/enigmail.properties --- enigmail-2.1.6+ds1/lang/de/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail-Meldung enigConfirm=Enigmail Bestätigung enigInfo=Enigmail Information -enigError=Enigmail-Fehler enigPrompt=Enigmail-Eingabe - -dlgYes=&Ja dlgNo=&Nein dlgKeepSetting=Antwort merken und in Zukunft nicht mehr fragen dlgNoPrompt=Diesen Dialog nicht mehr anzeigen. -dlg.button.delete=&Löschen dlg.button.cancel=&Abbrechen dlg.button.close=&Schließen dlg.button.continue=&Fortsetzen -dlg.button.skip=&Überspringen -dlg.button.overwrite=&Überschreiben -dlg.button.view=&Anzeigen -dlg.button.retry=&Erneut versuchen -dlg.button.ignore=&Ignorieren -dlg.button.install=&Installieren dlg.button.ok=&OK - repeatPrefix=\n\nDiese Nachricht wird noch %S repeatSuffixSingular=mal wiederholt. repeatSuffixPlural=mal wiederholt. noRepeat=\n\nDiese Meldung wird bis zu einem Upgrade von Enigmail nicht wiederholt. - -pgpNotSupported=Sie scheinen Enigmail zusammen mit PGP 6.x zu verwenden. \n\nLeider weist PGP 6.x einige Probleme auf, die verhindern, dass Enigmail korrekt funktioniert. Darum unterstützt Enigmail PGP 6.x nicht mehr. Bitte verwenden Sie deshalb in Zukunft GnuPG (GPG). \n\nFalls Sie für den Wechsel auf GnuPG Unterstützung brauchen, besuchen Sie die Seite „Help“ auf der Enigmail-Homepage. -initErr.howToFixIt=Um Enigmail verwenden zu können, ist GnuPG erforderlich. Wenn GnuPG noch nicht installiert ist, können Sie dies mit der Schaltfläche „Installations-Assistent“ erledigen. -initErr.setupWizard.button=&Installations-Assistent passphraseCleared=Die Passphrase wurde gelöscht. cannotClearPassphrase=Sie benutzen ein individuelles Programm (beispielsweise gnome-keyring) für die Passwortverwaltung. Das Vergessen der Passphrase ist daher aus Enigmail heraus nicht möglich. -noPhotoAvailable=Kein Foto verfügbar -debugLog.title=Enigmail-Debug-Log -error.photoPathNotReadable=Fotopfad „%S“ kann nicht geöffnet werden. - -generalError=Fehler: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Diese neue Version von Enigmail enthält signifikante Änderungen in der Anwendung der Voreinstellungen und Optionen. Wir haben versucht, die alten Einstellungen in diese neue Version zu übernehmen. Leider können wir nicht alle Fälle automatisch abdecken. Bitte überprüfen Sie die hierdurch entstandenen neuen Einstellungen und Optionen. -enigmailCommon.checkPreferences=&Einstellungen überprüfen … -preferences.defaultToPgpMime=Die Vorgabe für das Nachrichten-Protokoll wurde von Inline-PGP auf PGP/MIME geändert. Diese Einstellung sollten Sie, soweit möglich, beibehalten.\n\nWenn Sie doch Inline-PGP nutzen wollen, können Sie das in den Konto-Einstellungen unter OpenPGP-Security einstellen. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Sie verwenden Enigmail Version %S -enigmailPepVersion=Enigmail/p≡p Version %S usingAgent=Das %1$S-Programm %2$S wird zur Ver- und Entschlüsselung benutzt agentError=FEHLER: Zugriff auf Enigmail-Dienste fehlgeschlagen! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Fehler beim Zugriff auf Enigmail-Dienste -onlyGPG=Erzeugen eines Schlüssels funktioniert nur mit GnuPG (nicht mit PGP)! - -keygenComplete=Erzeugung des Schlüssels abgeschlossen! Identität <%S> wird zum Signieren verwendet. -revokeCertRecommended=Es wird dringend empfohlen, dass Sie nun ein Widerrufszertifikat für Ihren Schlüssel erzeugen. Dieses Zertifikat benötigen Sie, um Ihren Schlüssel bei Bedarf für ungültig zu erklären (z.B. wenn der Schlüssel missbraucht, verloren oder gestohlen wird).\n\nMöchten Sie nun das zugehörige Widerrufszertifikat erzeugen? -keyMan.button.generateCert=&Zertifikat erzeugen -genCompleteNoSign=Erzeugen des Schlüssels abgeschlossen! -genGoing=Erzeugen des Schlüssels läuft! - -passNoMatch=Passphrase wurde nicht korrekt wiederholt; bitte geben Sie diese erneut ein -passCheckBox=Setzen Sie bitte die entsprechende Option, wenn Sie keine Passphrase für den Schlüssel verwenden. -passUserName=Geben Sie bitte den Benutzernamen für diese Identität an. -keygen.missingUserName=Für das angegebene Konto ist kein Name angegeben. Bitte geben Sie in den Konto-Einstellungen im Feld „Ihr Name“ einen Wert ein. -keygen.passCharProblem=Sie verwenden in Ihrer Passphrase Sonderzeichen. Dies kann zu Schwierigkeiten mit anderen Anwendungen führen, die den Schlüsselring verwenden wollen. Wir empfehlen, in der Passphrase nur die folgenden Zeichen zu verwenden: a-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Aus technischen Gründen darf die Passphrase nicht mit einem Leerzeichen beginnen oder aufhören. -changePassFailed=Ändern der Passphrase fehlgeschlagen - -keyConfirm=Öffentlichen und privaten Schlüssel für „%S“ erzeugen? -keyMan.button.generateKey=&Schlüssel erzeugen -keyAbort=Erzeugen des Schlüssels abbrechen? -keyMan.button.generateKeyAbort=Schlüsselerzeugung &abbrechen -keyMan.button.generateKeyContinue=Schlüsselerzeugung &fortsetzen -expiryTooLong=Sie können keinen Schlüssel erzeugen, der erst in mehr als 100 Jahren abläuft. -expiryTooLongShorter=Sie können keinen Schlüssel erzeugen, der erst in mehr als 90 Jahren abläuft. -expiryTooShort=Ihr Schlüssel muss mindestens einen Tag lang gültig sein. -keyGenFailed=Das Erzeugen des Schlüssels ist fehlgeschlagen. Weitere Details finden Sie in der Enigmail-Konsole (Menü Enigmail > Fehlersuche > Konsole anzeigen). -setKeyExpirationDateFailed=Das Ablaufdatum konnte nicht geändert werden - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail-Sicherheitsinfo:\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Anhänge an diese Nachricht wurden weder signiert noch verschlüsselt*\r\n\r\n -possiblyPgpMime=Eventuell PGP/MIME verschlüsselte oder signierte Nachricht; verwenden Sie die Funktion 'Entschlüsseln/Überprüfen' zum Überprüfen - -saveAttachmentHeader=Enigmail: Entschlüsselte Anhänge speichern -noTempDir=Konnte kein temporäres Verzeichnis zum Schreiben finden. Bitte setzen Sie die Umgebungsvariable TEMP. -attachmentPgpKey=Der Anhang „%S“ scheint einen OpenPGP-Schlüssel zu enthalten.\n\nKlicken Sie auf „Importieren“, um die Schlüssel zu importieren, oder auf „Anzeigen“, um die Datei in einem Browser-Fenster zu öffnen. - -beginPgpPart=********* *ANFANG DES VERSCHLÜSSELTEN oder SIGNIERTEN BEREICHS* ********* -endPgpPart=********* *ENDE DES VERSCHLÜSSELTEN oder SIGNIERTEN BEREICHS* ********* -notePartEncrypted=Enigmail: *Teile der Nachricht wurden weder signiert noch verschlüsselt* -noteCutMessage=Enigmail: *MehrereTextblöcke gefunden – Entschlüsselung/Überprüfung abgebrochen* - -decryptOkNoSig=Achtung:\n\nDie Entschlüsselung war erfolgreich, aber die Signatur konnte nicht überprüft werden -msgOvl.button.contAnyway=&Trotzdem fortfahren -signature.verifiedOK=Die Signatur für den Anhang „%S“ wurde erfolgreich überprüft -signature.verifyFailed=Die Signatur für den Anhang %S konnte nicht überprüft werden -attachment.noMatchToSignature=Der Anhang „%S“ konnte keiner Signaturdatei zugeordnet werden -attachment.noMatchFromSignature=Die Signaturdatei „%S“ konnte keinem Anhang zugeordnet werden -fixBrokenExchangeMsg.failed=Reparatur der Nachricht ist fehlgeschlagen. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Schlüssel importieren -wksNoIdentity=Dieser Schlüssel ist mit keinem Ihrer E-Mailkonten verknüpft. Bitte fügen Sie ein Konto für mindestens eine der folgenden E-Mailadressen hinzu: -wksConfirmSuccess=Bestätigungs-E-Mail gesendet. -wksConfirmFailure=Senden der Bestätigungs-E-Mail fehlgeschlagen. -autocrypt.importSetupKey.accountPreconfigured=Ihr Konto ist bereits korrekt konfiguriert für Autocrypt.\n\nMöchten Sie die Einstellungen wirklich mittels dieser Einrichtungs-Nachricht überschreiben? -autocrypt.importSetupKey.selfCreated=Diese Nachricht wurde von Ihrer aktuell laufenden Instanz von Enigmail erstellt.\n\nBitte wechseln Sie zu dem E-Mail-Programm zu dem Sie die Einstellungen übertragen möchten, und klicken Sie auf die Nachricht in diesem E-Mail-Programm, um die Einstellungen zu importieren. -autocrypt.importSetupKey.invalidMessage=Error - Einrichtungsnachricht konnte nicht gelesen werden. Die Nachricht scheint beschädigt zu sein. Bitte versuchen Sie, eine neue Einrichtungsnachricht auf Ihrem "anderen" Gerät zu erstellen. -autocrypt.importSetupKey.invalidKey=Fehler - der Schlüssel konnte nicht importiert werden. Entweder wird der Schlüssel von Ihrer Version von GnuPG nicht unterstützt oder er ist beschädigt. -autocrypt.importSetupKey.wrongPasswd=Das von Ihnen eingegebene Passwort ist falsch. Möchten Sie es noch einmal versuchen? -autocrypt.importSetupKey.success=Die Autocrypt-Einrichtungsnachricht wurde erfolgreich verarbeitet. Autocrypt ist ab sofort für Ihr Konto '%S' verfügbar. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Wähle einzufügende OpenPGP Schlüssel keysToUse=Zu verwendende OpenPGP-Schlüssel für %S pubKey=Öffentlicher Schlüssel für %S\n - -windowLocked=Das Editorfenster ist blockiert; Das Senden wurde abgebrochen -sendUnencrypted=Initialisierung von Enigmail fehlgeschlagen. \n\nNachricht unverschlüsselt senden? -composeSpecifyEmail=Geben Sie bitte ihre Haupt-E-Mail-Adresse an, die verwendet wird, um den Signatur-Schlüssel für ausgehende Nachrichten auszuwählen. Wenn Sie keine Adresse angeben, wird die E-Mail-Adresse im FROM-Feld der Nachricht zur Auswahl des Schlüssels verwendet. -sendingHiddenRcpt=Diese Nachricht hat Empfänger im BCC-Feld (blind copy, versteckt). Wenn diese Nachricht verschlüsselt wird, ist es zwar möglich die BCC-Empfänger zu verstecken, aber Benutzer mancher PGP-Anwendungen (z.B. PGP Corp.) können die Nachricht dann nicht mehr entschlüsseln. Wir empfehlen, auf verschlüsselte E-Mails mit BCC-Empfängern zu verzichten. -sendWithHiddenBcc=BCC-Empfänger verstecken -sendWithShownBcc=Normal verschlüsseln -sendingNews=Das Senden der verschlüsselten Nachricht wurde abgebrochen.\n\nDiese Nachricht kann nicht verschlüsselt werden, da unter den Empfängern Newsgruppen-Adressen sind. Senden Sie bitte diese Nachricht ohne Verschlüsselung. -sendToNewsWarning=Warnung: Sie möchten eine verschlüsselte Nachricht an eine Newsgruppe senden.\n\nDies ist nicht zu empfehlen, da es nur Sinn machen würde, wenn alle Leser der Newsgruppe die Nachricht entschlüsseln könnten. Dazu müsste die Nachricht beispielsweise für alle Leser der Newsgruppe verschlüsselt werden. Bitte senden Sie die Nachricht nur, wenn Sie genau wissen, was Sie machen.\n\nFortfahren? -hasHTML=Warnung vor HTML-Nachricht: \nDiese Nachricht kann HTML enthalten. Das kann das korrekte Signieren bzw. Verschlüsseln dieser Nachricht verhindern. Um dies zukünftig beim Senden signierter Nachrichten zu vermeiden, drücken Sie bitte die Umschalttaste gleichzeitig mit der „Verfassen“- bzw. „Antworten“-Schaltfläche. Wenn Sie Nachrichten standardmäßig signieren, entfernen Sie in den Konteneinstellungen den Haken bei „Nachrichten im HTML-Format verfassen“, um das Senden von HTML-Nachrichten dauerhaft zu verhindern. -strippingHTML=Die Nachricht enthält HTML-Formatierungen, die verloren gehen, wenn die Nachricht für die Signatur bzw. Verschlüsselung in ein Nur-Text-Format umgewandelt wird. Möchten Sie fortfahren? -msgCompose.button.sendAnyway=Nachricht &trotzdem senden -attachWarning=Anhänge zu dieser Nachicht sind nicht lokal vorhanden, sie können daher nicht verschlüsselt werden. Um die Anhänge zu verschlüsseln, speichern Sie diese zuerst lokal und fügen sie anschließend bei. Möchten Sie trotzdem fortfahren? quotedPrintableWarn=Sie haben „quoted-printable“ als Kodierung für Nachrichten eingestellt. Dies kann zu inkorrekter Entschlüsselung und/oder Überprüfung Ihrer Nachricht führen. \nMöchten Sie die Einstellung „quoted printable“ deaktivieren? -minimalLineWrapping=Sie haben den Textumbruch auf %S Zeichen eingestellt. Für korrekte Verschlüsselung und Signatur muss dieser Wert auf mindestens 68 eingestellt werden. \nMöchten Sie den Wert jetzt auf 68 ändern? warning=Warnung -signIconClicked=Sie haben Einstellungen für das Signieren verändert. Deshalb hängt für diese Nachricht das (De-)Aktivieren des Signierens nicht mehr von der (De-)Aktivierung der Verschlüsselung ab. -errorOwnKeyUnusable=Die Schlüssel-ID „%S“ für die aktuelle Identität entspricht keinem gültigen OpenPGP-Schlüssel.\n\nBitte stellen Sie sicher, dass Sie einen gültigen, nicht abgelaufenen OpenPGP-Schlüssel haben, und dass die Einstellungen des E-Mail-Kontos auf diesen Schlüssel verweisen.\nWenn Ihr Schlüssel nicht abgelaufen ist, prüfen Sie bitte, ob das Besitzervertrauen des Schlüssels auf „vertraut“ oder „absolut“ eingestellt ist. -msgCompose.cannotSaveDraft=Fehler beim Speichern des Entwurfs -msgCompose.partiallyEncrypted.short=Vorsicht: teilweise verschlüsselte Email - Sie könnten sensitive Informationen preisgeben. -msgCompose.partiallyEncrypted.inlinePGP=Die Nachricht welche Sie beantworten enthält verschlüsselte und unverschlüsselte Teile. \n\nWenn der Absender der Nachricht nicht in der Lage war manche Nachrichtenteile zu entschlüsseln, könnten Sie beim Antworten unbewusst die verschlüsselte Information preisgeben, die der Absender ursprünglich nicht entschlüsseln konnte.\n\nErwägen Sie alle zitierten Nachrichtenteile aus Ihrer Antwort zu entfernen. - -msgCompose.internalEncryptionError=Interner Fehler: Versprochene Verschlüsselung ist deaktiviert. -msgCompose.internalError=Ein interner Fehler ist aufgetreten. - -msgCompose.toolbarTxt.signAndEncrypt=Diese Nachricht wird signiert und verschlüsselt -msgCompose.toolbarTxt.signOnly=Diese Nachricht wird signiert -msgCompose.toolbarTxt.encryptOnly=Nachricht wird verschlüsselt. -msgCompose.toolbarTxt.noEncryption=Diese Nachricht wird weder signiert noch verschlüsselt. -msgCompose.toolbarTxt.disabled=Enigmail ist für die ausgewählte Identität deaktiviert. -msgCompose.protectSubject.tooltip=Den Betreff der Nachricht schützen -msgCompose.noSubjectProtection.tooltip=Den Betreff der Nachricht nicht schützen -msgCompose.protectSubject.dialogTitle=Schutz des Betreffs einschalten? -msgCompose.protectSubject.question=Normale verschlüsselte Nachrichten enthalten den unredigierten Betreff.\nWir haben einen neuen Standard etabliert der den originalen Betreff in der verschlüsselten Nachricht versteckt und ihn mit einem Platzhalter ersetzt, sodass der eigentliche Betreff erst nach dem Entschlüsseln der E-Mail sichtbar ist.\n\nWollen Sie den Betreff in verschlüsselten Nachrichten schützen? -msgCompose.protectSubject.yesButton=&Betreff schützen -msgCompose.protectSubject.noButton=Betreff &ungeschützt lassen - -msgCompose.detailsButton.label=Details… -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Unbekannt -msgCompose.pepSendUnsecure=Unsicher -msgCompose.pepSendSecure=Sicher -msgCompose.pepSendTrusted=Sicher & Vertraut - -pep.alert.disabledForIdentity=p≡p ist für die aktuelle Identität deaktiviert. Bitte aktivieren Sie p≡p in den Enigmail/p≡p Einstellungen. -pep.alert.weakReply=Sie sind im Begriff, eine sichere Nachricht als unsicher zu übermitteln. Wenn Sie fortfahren, könnten vertrauliche Infos durchsickern, die Sie und Ihren Kommunikationspartner gefährden könnten. Sind Sie sicher, dass Sie fortfahren wollen? - - -# note: should end with double newline: -sendAborted=Das Senden wurde abgebrochen.\n\n - -# details: keyNotTrusted=Schlüssel '%S' wird nicht genug vertraut. -keyNotFound=Schlüssel '%S' wurde nicht gefunden. -keyRevoked=Schlüssel '%S' wurde widerrufen. -keyExpired=Schlüssel '%S' ist abgelaufen. - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=SIGNIERT -statEncrypted=VERSCHLÜSSELT -statPlain=NICHT SIGNIERT und UNVERSCHLÜSSELT - -offlineSave=Nachricht %1$S an folgende Empfänger im Ordner „Postausgang“ speichern: \n\n%2$S\n - -onlineSend=Nachricht %S an folgende Empfänger senden: \n\n%S\n -encryptKeysNote=Hinweis: Die Nachricht wurde mit folgenden Benutzer-IDs / Schlüsseln verschlüsselt: %S -hiddenKey= - -signFailed=Fehler in Enigmail: Verschlüsselung/Signieren fehlgeschlagen. Nachricht unverschlüsselt senden? -msgCompose.button.sendUnencrypted=Nachricht &unverschlüsselt senden -recipientsSelectionHdr=Empfänger für Verschlüsselung wählen - -configureNow=Sie haben Enigmail-Sicherheit für die ausgewählte Identität noch nicht konfiguriert. Möchten Sie dies jetzt machen? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Nachricht verschlüsseln (automatisch) -encryptMessageNorm=Nachricht verschlüsseln -signMessageAuto=Nachricht signieren (automatisch) -signMessageNorm=Nachricht signieren - -encryptOff=Verschlüsselung: AUS -encryptOnWithReason=Verschlüsselung: EIN (%S) -encryptOffWithReason=Verschlüsselung: AUS (%S) -encryptOn=Verschlüsselung: EIN -signOn=Signieren: EIN -signOff=Signieren: AUS -signOnWithReason=Signieren: EIN (%S) -signOffWithReason=Signieren: AUS (%S) -reasonEnabledByDefault=Voreinstellung ist EIN -reasonManuallyForced=von Hand eingeschaltet -reasonByRecipientRules=aufgrund von Empfänger-Regeln -reasonByAutoEncryption=aufgrund von automatischer Verschlüsselung -reasonByConflict=wegen Konflikt in Empfänger-Regeln -reasonByEncryptionMode=wegen Verschlüsselungs-Modus - -# should not be used anymore: -encryptYes=Nachricht wird verschlüsselt -encryptNo=Nachricht wird nicht verschlüsselt - -# should not be used anymore: -signYes=Nachricht wird signiert -signNo=Nachricht wird nicht signiert - - -# PGP/MIME status: -pgpmimeNormal=Protokoll: PGP/MIME -inlinePGPNormal=Protokoll: Inline-PGP -smimeNormal=Protokoll: S/MIME -pgpmimeAuto=Protokoll: PGP/MIME (automatisch) -inlinePGPAuto=Protokoll: Inline-PGP (automatisch) -smimeAuto=Protokoll: S/MIME (automatisch) - -# should not be used anymore -pgpmimeYes=PGP/MIME wird verwendet -pgpmimeNo=Inline-PGP wird verwendet - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Ihr eigener öffentlicher Schlüssel wird nicht angehängt -attachOwnKeyYes=Ihr eigener öffentlicher Schlüssel wird angehängt -attachOwnKeyDisabled=Ihr eigener öffentlicher Schlüssel kann nicht angehängt werden. Um diese Funktion zu verwenden, müssen Sie einen bestimmten Schlüssel in den Konto-Einstellungen im Abschnitt OpenPGP auswählen. - -rulesConflict=Konflikt in Empfängerregeln entdeckt\n%S\n\nNachrichten trotzdem mit diesen Einstellungen senden? -msgCompose.button.configure=&Konfigurieren -msgCompose.button.send=Nachricht &senden -msgCompose.button.save=Nachricht &speichern - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Öffentlicher Schlüssel %S wird zur Überprüfung der Signatur benötigt -keyUsed=Signatur wurde mit öffentlichem Schlüssel %S überprüft -clickDecrypt=; klicken Sie bitte auf die Entschlüsselungs-Schaltfläche -clickDecryptRetry=; klicken Sie bitte auf die Entschlüsselungs-Schaltfläche für einen erneuten Versuch -clickDetailsButton=; Für weitere Informationen klicken Sie auf die Schaltfläche „Details“. -clickImportButton=; Drücken Sie die Schaltfläche „Schlüssel importieren“, um den Schlüssel herunterzuladen. -keyTypeUnsupported=; Der Schlüsseltyp wird von Ihrer Version von GnuPG nicht unterstützt. -decryptManually=; drücken Sie auf den Knopf 'Entschlüsseln' -verifyManually=; drücken Sie auf den Knopf 'Überprüfen' -headerView.button.verify=Überprüfen -headerView.button.decrypt=Entschlüsseln -msgPart=Teil der Nachricht %S -msgSigned=signiert -msgSignedUnkownKey=signiert mit unbekanntem Schlüssel -msgEncrypted=verschlüsselt -msgSignedAndEnc=signiert und verschlüsselt - unverifiedSig=Ungeprüfte Signatur -incompleteDecrypt=Entschlüsselung unvollständig -needKey=Fehler - kein passender privater/geheimer Schlüssel zur Entschlüsselung gefunden -failedDecrypt=Fehler – Entschlüsselung fehlgeschlagen badPhrase=Fehler – falsche Passphrase missingMdcError=Fehler - fehlende oder defekte Integritätsprüfung (MDC) -failedDecryptVerify=Fehler – Entschlüsselung/Überprüfung fehlgeschlagen -viewInfo=; Ansicht > Nachrichtensicherheitsinformation für Details -brokenExchangeMessage=Ungültige PGP/MIME Nachricht von MS-Exchange - -decryptedMsg=Entschlüsselte Nachricht -decryptedMsgWithFormatError=Nachricht entschlüsselt (wiederhergestelltes ungültiges PGP Email Format - vermutlich durch alte Exchange Server Version entstanden. Das Resultat könnte nicht ideal zu lesen sein) - -usedAlgorithms=Verwendete Algorithmen: %S und %S -pepStatusInfo.text=p≡p Nachrichtenstatus. -pepStatusInfo.title.m3=Wird angegriffen -pepStatusInfo.info.m3=Diese Nachricht ist nicht sicher und wurde manipuliert. -pepStatusInfo.title.m1=Misstraut. -pepStatusInfo.info.m1=Diese Nachricht hat einen Kommunikationspartner der früher als misstraut markiert wurde -pepStatusInfo.title.r0=Unbekannt -pepStatusInfo.info.r0=Diese Nachricht beinhaltet nicht genug Informationen um festzustellen ob sie sicher ist. -pepStatusInfo.title.r1=Kann nicht entschlüsseln -pepStatusInfo.info.r1=Diese Nachricht kann nicht entschlüsselt werden weil der Schlüssel nicht verfügbar ist. -pepStatusInfo.title.r2=Entschlüsselung fehlgeschlagen -pepStatusInfo.info.r2=Diese Nachricht kann nicht entschlüsselt werden weil der Schlüssel nicht verfügbar ist. -pepStatusInfo.title.r3=Unsicher -pepStatusInfo.info.r3=Diese Nachricht ist unsicher. -pepStatusInfo.title.r4=Unsicher für Manche -pepStatusInfo.info.r4=Diese Nachricht ist unsicher für manche der Kommunikationspartner. -pepStatusInfo.title.r5=Unzuverlässige Sicherheit -pepStatusInfo.info.r5=Diese Nachricht hat einen unzuverlässigen Schutz. -pepStatusInfo.title.r6=Sicher... -pepStatusInfo.info.r6=Diese Nachricht ist sicher aber Sie müssen die Identität Ihres Kommunikationspartners überprüfen. -pepStatusInfo.title.r7=Sicher & Vertraut -pepStatusInfo.info.r7=Diese Nachricht ist sicher und vertraut. - -pepStatusInfo.color.green=Grün -pepStatusInfo.color.yellow=Gelb -pepStatusInfo.color.red=Rot -pepRevokeTrust.question=Möchten Sie das Vertrauen für %S wirklich entziehen? -pepRevokeMistrust.question=Wollen Sie wirklich dem Schlüssel von %S vertrauen? -pepRevokeTrust.doRevoke=&Vertrauen entziehen - -wksConfirmationReq=Webkey-Verzeichnis Bestätigungsanfrage -wksConfirmationReq.message=Diese Nachricht wurde von Ihrem E-Mail-Provider gesendet, um die Bereitstellung Ihres öffentlichen OpenPGP-Schlüssels in dessen Web-Schlüsselverzeichnis zu bestätigen.\nDie Bereitstellung Ihres öffentlichen Schlüssels hilft anderen, Ihren Schlüssel zu finden und so in der Lage zu sein, Nachrichten an Sie zu verschlüsseln.\n\nWenn Sie Ihren Schlüssel jetzt im Web-Schlüsselverzeichnis bereitstellen möchten, klicken Sie bitte auf die Schaltfläche "Anfrage bestätigen" in der Statusleiste.\nAndernfalls ignorieren Sie diese Nachricht einfach. -wksConfirmationReq.button.label=Anfrage bestätigen - -autocryptSetupReq=Autocrypt-Einrichtung durchführen -autocryptSetupReq.button.label=Einrichtung starten -autocryptSetupReq.setupMsg.desc=Diese Nachricht enthält alle Informationen, um Ihre Autocrypt-Einstellungen zusammen mit Ihrem geheimen Schlüssel sicher von Ihrem Originalgerät zu übertragen. -autocryptSetupReq.setupMsg.backup=Sie können diese Nachricht behalten und als Sicherungskopie für Ihren geheimen Schlüssel verwenden. Wenn Sie das tun möchten, sollten Sie das Passwort notieren und es sicher verwahren. -autocryptSetupReq.message.import=Um die Einstellungen und Schlüssel in Enigmail zu importieren, klicken Sie bitte auf die Schaltfläche "Einrichtung starten" in der Statusleiste. -autocryptSetupReq.message.sent=Bitte klicken Sie die Nachricht auf Ihrem neuen Gerät an und befolgen Sie die Hinweise, um die Einstellungen zu importieren. -postbox.cannotUseQuickReply.message=Sie antworten auf eine verschlüsselte Email. Bitte verwenden Sie den Kopf "Vergrössern" in der oberen rechten Ecke des Eingabefeldes, um die Antwort in einem eigenen Fenster zu öffnen. Sie können die Nachricht dann von dort aus abschicken. - -# strings in pref-enigmail.js oldGpgVersion20=Initialisierung von Enigmail fehlgeschlagen.\n\nSie nutzen GnuPG Version %1$S, welche nicht mehr unterstützt wird. Enigmail benötigt GnuPG Version %2$S oder neuer. Bitte aktualisieren Sie Ihre GnuPG Installation, andernfalls kann Enigmail nicht funtkionieren. -locateGpg=GnuPG-Anwendung finden -invalidGpgPath=GnuPG kann im angegebenen Pfad nicht gefunden werden. Enigmail wird deshalb deaktiviert, bis Sie den Pfad zu GnuPG korrigieren oder die Anwendung neu starten. -warningsAreReset=Alle Warnungen wurden zurückgesetzt. -prefs.gpgFound=GnuPG wurde gefunden in %S -prefs.gpgNotFound=GnuPG wurde nicht gefunden -prefs.warnAskNever=Warnung: Das Aktivieren dieser Option führt dazu, dass Nachrichten UNVERSCHLÜSSELT gesendet werden, sobald bei Nachrichten an mehrere Empfänger auch nur ein einziger Schlüssel für die Liste der Empfänger fehlt. Enigmail wird Sie in diesen Situationen NICHT nochmals informieren! -prefs.warnIdleTimeForUnknownAgent=Ihr System verwendet ein spezialisiertes Tool für die Passphrasen-Verwaltung (z.B. gnome-keyring oder seahorse-agent, KDE-Wallet, etc.) Leider kann Enigmail die Ablaufzeit für diese Tools nicht kontrollieren. Daher werden Änderungen an der Ablaufzeit hier ignoriert. -prefEnigmail.oneKeyserverOnly=Fehler – Es kann nur ein Schlüsselserver für das automatische Herunterladen fehlender OpenPGP-Schlüssel angegeben werden. -acSetupMessage.desc=Transferieren Sie Ihren Schlüssel an ein anderes Autocrypt-fähiges Gerät. (Was ist Autocrypt) -aboutLicense.desc=Enigmail ist quelloffen und lizenziert unter der Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Bitte geben Sie die ADMIN-PIN Ihrer SmartCard ein -enterCardPin=Bitte geben Sie Ihre SmartCard-PIN ein - -notInit=Fehler – Enigmail-Dienste noch nicht eingerichtet badCommand=Fehler – Verschlüsselung fehlgeschlagen cmdLine=Kommandozeile und Ausgabe: -notRequired=Fehler – keine Verschlüsselung notwendig -notComplete=Fehler – Erzeugen des Schlüssels noch nicht abgeschlossen -invalidEmail=Fehler – ungültige E-Mail-Adresse(n) noPassphrase=Fehler – keine Passphrase angegeben noPGPblock=Fehler – keinen gültigen OpenPGP-Block gefunden -unverifiedReply=Der eingerückte Teil der Nachricht (Antwort) wurde wahrscheinlich verändert -keyInMessageBody=Schlüssel im Text der Nachricht gefunden. Klicken Sie auf „Schlüssel importieren“, um den Schlüssel zu importieren. -sigMismatch=Fehler – Signatur passt nicht zusammen -cantImport=Fehler beim Importieren eines öffentlichen Schlüssels\n\n -doImportOne=%1$S (%2$S) importieren? -doImportMultiple=Die folgenden Schlüssel importieren?\n\n%S -previewFailed=Öffentlicher Schlüssel kann nicht gelesen werden. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Die SmartCard %1$S im Lesegerät kann zum Verarbeiten der Nachricht nicht verwendet werden.\nBitte legen Sie Ihre SmartCard %2$S ein und wiederholen Sie den Vorgang. sc.insertCard=Der Vorgang erfordert Ihre SmartCard %S.\nBitte legen Sie die erforderliche SmartCard ein und wiederholen Sie den Vorgang. sc.removeCard=Der Vorgang erfordert, dass keine SmartCard im Lesegerät ist.\nBitte entfernen Sie die SmartCard und wiederholen Sie den Vorgang. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Ihr SmartCard-Lesegerät wurde nicht gefunden.\nBitte installieren Sie das Lesegerät, legen die Karte ein und wiederholen Sie den Vorgang. keyError.keySpecNotFound=Die E-Mail-Adresse „%S“ passt zu keinem der Schlüssel in Ihrem Schlüsselbund. keyError.keyIdNotFound=Die konfigurierte Schlüssel-ID „%S“ wurde nicht in Ihrem Schlüsselbund gefunden. -keyError.resolutionAction=Bitte wählen Sie in den Konto-Einstellungen im Abschnitt OpenPGP einen gültigen Schlüssel aus. missingPassphrase=Fehlende Passphrase errorHandling.gpgAgentInvalid=Auf Ihrem System läuft eine Version von gpg-agent, die nicht für die installierte GnuPG-Version geeignet ist. errorHandling.gpgAgentError=In der Kommunikation zwischen GnuPG und gpg-agent (einem Teil von GnuPG) ist ein Fehler aufgetreten. @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG kann Ihre Passphrase nicht mit Hilfe des Programms pinentry abfragen. errorHandling.pinentryCursesError=Ihre GnuPG Installation ist so eingerichtet, dass die Konsole für die Eingabe des Passworts verwendet wird (pinentry). Für Enigmail ist jedoch eine grafische Version von pinentry notwendig. errorHandling.readFaq=Dies ist ein Problem mit der Systeminstallation oder ein Konfigurationsfehler und führt dazu, dass Enigmail nicht funktioniert. Das Problem kann nicht automatisch behoben werden.\n\nBitte sehen Sie auf der Support-Webseite https://enigmail.net/faq (auf Englisch) nach, welche Möglichkeiten Sie haben. - gpgNotFound=Die GnuPG-Anwendung „%S“ konnte nicht gefunden werden.\nStellen Sie sicher, dass der Pfad zur GnuPG-Anwendung in den Enigmail-Einstellungen korrekt angegeben ist. gpgNotInPath=Die GnuPG-Anwendung konnte im Systempfad nicht gefunden werden.\nStellen Sie sicher, dass der Pfad zur GnuPG-Anwendung in den Enigmail-Einstellungen korrekt angegeben ist. enigmailNotAvailable=Enigmail-Kerndienst nicht verfügbar - -prefGood=Korrekte Signatur von %S -prefBad=FALSCHE Signatur von %S - failCancel=Fehler - Schlüsselempfang durch Benutzer abgebrochen failKeyExtract=Fehler – Schlüssel-Extraktion fehlgeschlagen -failKeyNoSubkey=Kein gültiger (Unter-)Schlüssel notFirstBlock=Fehler - Der erste OpenPGP-Block ist kein öffentlicher Schlüssel-Block importKeyConfirm=In der Nachricht enthaltene(n) öffentliche(n) Schlüssel importieren? -failKeyImport=Fehler – Schlüssel konnte nicht importiert werden fileWriteFailed=Fehler beim Schreiben in Datei %S. - importKey=Importiere folgende öffentliche Schlüssel von einem Schlüssel-Server: %S uploadKey=Sende folgende öffentliche Schlüssel an einen Schlüssel-Server: %S keyId=Schlüssel-ID -keyAndSigDate=Schlüsselkennung: 0x%1$S / Signiert am: %2$S -keyFpr=Schlüssel-Fingerabdruck: %S -noEmailProvided=Sie haben keine E-Mail-Adresse angegeben! -keyAlreadySigned=Der Schlüssel wurde bereits signiert, Sie können ihn nicht doppelt signieren. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=abgelaufen am %S createdHeader=Erzeugt atLeastOneKey=Kein Schlüssel ausgewählt! Sie müssen mindestens einen Schlüssel auswählen. fewerKeysThanRecipients=Sie haben weniger Schlüssel als Empfänger ausgewählt. Sind Sie sicher, dass alle notwendigen Schlüssel ausgewählt wurden? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Wählen Sie einen geheimen OpenPGP-Schlüssel aus, um Ihre Nachrichten zu signieren userSel.problemNoKey=Kein gültiger Schlüssel userSel.problemMultipleKeys=Mehrere Schlüssel -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Später absenden - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=HINWEIS: PGP/MIME wird nicht von allen E-Mail-Programmen unterstützt. Sind Sie unsicher, wählen Sie die $S Option. first=erste second=zweite - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=OpenPGP-Schlüssel für Verschlüsselung wählen -identityName=Identität: %S -switchPepMode=Sie nutzen momentan den 'p≡p Junior' Modus von Enigmail.\n\nDurch das Aktivieren con OpenPGP oder S/MIME für ein Konto deaktivieren Sie p≡p und nutzen den regulären Modus von Enigmail ohne p≡p. -enableEnigmail=p≡p &deaktiveren -amPrefAutocrypt.desc=Autocrypt ist ein Standard, welcher definiert, wie komfortable Ende-zu-Ende-Verschlüsselung von E-Mails erreichet wird. Er spezifiziert. wie E-Mail-Programme ihre Verschlüsselungs-Fähigkeiten mittels regulärer E-Mails aushandeln. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Sie haben die Verschlüsselung aktiviert, aber keinen Schlüssel gewählt. Um Nachrichten an %1$S verschlüsselt zu senden, müssen Sie einen oder mehrere gültige Schlüssel auswählen. Möchten Sie die Verschlüsselung für %2$S deaktivieren? -noKeyToUse=(keiner – nicht verschlüsseln) -noEmptyRule=Regeln dürfen nicht leer sein. Bitte geben Sie eine E-Mail-Adresse an. -invalidAddress=Die eingegebenen E-Mail-Adressen sind nicht gültig. Sie sollten nicht die Namen der Empfänger eingeben, sondern nur die Adressen. \n\nBeispiel: \nUngültig: Max Mustermann \nGültig: max.mustermann@domain.de -noCurlyBrackets=Die geschweiften Klammern {} haben ein besondere Bedeutung und sollten nicht verwendet werden in einer E-Mail-Adresse. Wenn Sie das Treffer-Verhalten für diese Regel verändern möchten, verwenden Sie die Option 'Wende Regel an wenn Empfänger...'\nMehr Information ist verfügbar über die Schaltfläche "Hilfe". - -# Strings used in enigmailRulesEditor.js never=Nie always=Immer possible=Wenn ausgewählt -deleteRule=Ausgewählte Regel wirklich löschen? -nextRcpt=(Nächster Empfänger) -negateRule=Nicht -addKeyToRule=Den Schlüssel %1$S (%2$S) zur Empfängerregel hinzufügen - -# Strings used in enigmailSearchKey.js -needOnline=Im Offline-Modus ist die gewählte Funktion nicht verfügbar. Bitte gehen Sie online und versuchen es erneut. -noKeyserverConn=Verbindung zum Schlüssel-Server %S konnte nicht hergestellt werden. -internalError=Ein interner Fehler ist aufgetreten. Schlüssel konnten nicht heruntergeladen oder importiert werden. -noKeyFound=Leider konnte kein passender Schlüssel zu den angegebenen Suchkriterien gefunden werden. -keyDownload.keyUnavailable=Verzeihung, aber der Schlüssel mit der ID %S ist nicht verfügbar auf dem Schlüssel-Server. Vermutlich hat der Besitzer des Schlüssels diesen nicht zu dem Schlüssel-Server hochgeladen.\n\nErsuchen Sie bitte den Sender der Nachricht, Ihnen den Schlüssel per E-Mail zu senden. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Festlegen des Besitzervertrauens fehlgeschlagen - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Signieren des Schlüssels fehlgeschlagen -alreadySigned.label=Hinweis: Der Schlüssel %S wurde bereits mit dem ausgewählten privaten Schlüssel signiert. -alreadySignedexportable.label=Hinweis: Der Schlüssel %S ist bereits mit dem angegebenen privaten Schlüssel als exportierbar signiert. Eine lokale Signatur ist daher nicht sinnvoll. -partlySigned.label=Hinweis: einige Benutzerkennungen des Schlüssels %S sind bereits mit dem ausgewählten privaten Schlüssel signiert. -noTrustedOwnKeys=Kein geeigneter Schlüssel zum Signieren gefunden! Sie brauchen mindestens einen vollständig vertrauten privaten Schlüssel in Ihrem Schlüsselbund. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Schlüssel werden geladen, bitte warten… keyValid.unknown=unbekannt keyValid.invalid=ungültig keyValid.disabled=deaktiviert keyValid.revoked=widerrufen keyValid.expired=abgelaufen keyValid.noSubkey=Kein gültiger Unterschlüssel - -keyTrust.untrusted=nicht vertrauenswürdig +keyValid.valid=gültig +keyValid.ownKey=eigener Schlüssel +keyTrust.untrusted=nicht vertraut keyTrust.marginal=marginal keyTrust.full=vertraut keyTrust.ultimate=absolut keyTrust.group=(Gruppe) -keyType.public=öffentlich -keyType.publicAndSec=öffentlich + privat -keyMan.enableKey=Aktivieren -keyMan.disableKey=Deaktivieren userAtt.photo=Benutzerattribut (JPEG-Bild) - -asciiArmorFile=ASCII-Armored-Dateien (*.asc) importKeyFile=OpenPGP-Schlüsseldatei importieren -gnupgFile=GnuPG-Dateien -saveRevokeCertAs=Widerrufszertifikat erzeugen & speichern -revokeCertOK=Das Widerrufszertifikat wurde erfolgreich erstellt. Damit können Sie Ihren öffentlichen Schlüssel für ungültig erklären, z.B. für den Fall, dass Sie Ihren geheimen Schlüssel verlieren. -revokeCertFailed=Das Widerrufszertifikat konnte nicht erzeugt werden. - -addUidOK=Benutzer-ID erfolgreich hinzugefügt -addUidFailed=Hinzufügen der Benutzer-ID fehlgeschlagen -noKeySelected=Sie müssen mindestens einen Schlüssel auswählen, um diese Funktion auszuführen. -exportToFile=Öffentlichen Schlüssel in Datei exportieren -exportKeypairToFile=Geheime und öffentliche Schlüssel in eine Datei exportieren -exportSecretKey=Möchten Sie auch private (geheime) Schlüssel in die Datei speichern? -saveKeysOK=Die Schlüssel wurden erfolgreich gespeichert. -saveKeysFailed=Speichern der Schlüssel fehlgeschlagen -importKeysFailed=Speichern der Schlüssel fehlgeschlagen -enableKeyFailed=Aktivieren / Deaktivieren der Schlüssel fehlgeschlagen -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Exportierte_oeffentliche_Schluessel -defaultPubSecKeyFilename=Exportierte_oeffentliche_und_private_Schluessel - -sendKeysOk=Schlüssel erfolgreich gesendet -sendKeysFailed=Senden der Schlüssel fehlgeschlagen -receiveKeysOk=Schlüssel erfolgreich aktualisiert -receiveKeysFailed=Herunterladen der Schlüssel ist fehlgeschlagen -keyUpload.verifyEmails=Der Schlüssel-Server wird Ihnen an jede E-Mail-Adresse Ihres hochgeladenen Schlüssels eine E-Mail schicken. Um die Veröffentlichung Ihres Schlüssels zu bestätigen, müssen sie auf den Link in jeder E-Mail klicken die Sie erhalten werden. - -importFromClip=Möchten Sie Schlüssel aus der Zwischenablage importieren? -importFromUrl=Öffentlichen Schlüssel von dieser URL herunterladen: -copyToClipbrdFailed=Exportieren der Schlüssel in die Zwischenablage fehlgeschlagen -copyToClipbrdOK=Schlüssel erfolgreich in Zwischenablage exportiert - +importPubKeysFailed=Die folgenden öffentlichen Schlüssel konnten nicht in Thunderbird importiert werden:\n\n%S +importSecKeysFailed=Die folgenden privaten Schlüssel konnten nicht in Thunderbird importiert werden:\n\n%S deleteSecretKey=WARNUNG: Sie sind dabei einen privaten Schlüssel zu löschen!\n\nWenn Sie Ihren privaten Schlüssel löschen, können Sie keine Nachrichten mehr entschlüsseln, die dafür verschlüsselt wurden. Außerdem können Sie anschließend den zugehörigen öffentlichen Schlüssel nicht mehr widerrufen.\n\nMöchten Sie wirklich den öffentlichen UND den PRIVATEN Schlüssel „%S“ löschen? -deleteMix=WARNUNG: Sie sind dabei private Schlüssel zu löschen!\n\nWenn Sie Ihren privaten Schlüssel löschen, können Sie keine Nachrichten mehr entschlüsseln, die dafür verschlüsselt wurden.\n\nWollen Sie wirklich beides, die gewählten öffentlichen UND PRIVATEN Schlüssel löschen? -deletePubKey=Möchten Sie den öffentlichen Schlüssel „%S“ löschen? -deleteSelectedPubKey=Möchten Sie die öffentlichen Schlüssel löschen? -deleteKeyFailed=Löschen des Schlüssels fehlgeschlagen revokeKeyQuestion=Sie sind dabei, den Schlüssel '%S' zu widerrufen.\n\nSie werden mit diesem Schlüssel nicht mehr signieren können, und sobald der Widerruf verteilt ist, werden andere nicht mehr mit diesem Schlüssel verschlüsseln können. Sie können mit dem Schlüssel aber weiterhin alte Nachrichten entschlüsseln.\n\nMöchten Sie fortfahren? -revokeKeyOk=Der Schlüssel wurde widerrufen. Wenn Ihr Schlüssel auf einem Schlüssel-Server verfügbar ist, sollten Sie Ihn jetzt erneut hochladen. Erst dann können andere Anwender sehen, dass er widerrufen wurde. -revokeKeyFailed=Der Schlüssel konnte nicht widerrufen werden. revokeKeyNotPresent=Sie haben keinen Schlüssel (0x%S), der zu dem Widerrufszertifikat passt!\n\nWenn Sie ihren Schlüssel verloren haben, müssen sie ihn (z.B. von einem Schlüssel-Server) importieren bevor Sie das Widerrufszertifikat anwenden können! revokeKeyAlreadyRevoked=Der Schlüssel 0x%S wurde bereits zurückgerufen. -refreshAllQuestion=Sie haben keinen Schlüssel ausgewählt. Möchten Sie ALLE Schlüssel aktualisieren? -refreshKeyServiceOn.warn=Warnung: Ihre Schlüssel werden derzeit so schnell wie möglich im Hintergrund aufgefrischt.\nWenn Sie all Ihre Schlüssel sofort erneuern, werden Sie unnötigerweise Infos über Sie preis geben.\nWollen Sie das wirklich machen? -refreshKey.warn=Warnung: In Abhängigkeit von der Anzahl der Schlüssel und der Verbindungsgeschwindigkeit, kann das Aktualisieren aller Schlüssel sehr lange dauern! -downloadContactsKeys.warn=Warnung: In Abhängigkeit von der Anzahl der Kontakte und der Übertragungsgeschwindigkeit kann dieser Vorgang recht lange dauern! -downloadContactsKeys.importFrom=Kontakte aus Adressbuch '%S' importieren? -keyMan.button.exportSecKey=&Geheime Schlüssel exportieren -keyMan.button.exportPubKey=&Nur öffentliche Schlüssel exportieren keyMan.button.import=&Importieren -keyMan.button.refreshAll=Alle Schlüssel &aktualisieren keyMan.button.revokeKey=Schlüssel &widerrufen - -keylist.noOtherUids=Hat keine weiteren Identitäten -keylist.hasOtherUids=Auch bekannt als -keylist.noPhotos=Kein Foto verfügbar -keylist.hasPhotos=Fotos - -keyMan.addphoto.filepicker.title=Foto auswählen -keyMan.addphoto.warnLargeFile=Die ausgewählte Datei ist größer als 25 kB.\nEs ist nicht empfehlenswert große Dateien hinzuzufügen, da die Schlüssel dadurch sehr groß werden. -keyMan.addphoto.noJpegFile=Das ausgewählte Foto scheint nicht im JPEG-Format zu sein. Bitte wählen Sie eine andere Datei. -keyMan.addphoto.failed=Das Foto konnte nicht hinzugefügt werden. -noWksIdentity=Der Schlüssel %S hat keine WKS-Identität. -wksUpload.noKeySupported=Der Upload war nicht erfolgreich - Ihr Provider scheint WKS nicht zu unterstützen. - -keyman.addBlacklistKey.msg=Möchten Sie wirklich, dass p≡p den Schlüssel "%1$S (%2$S)" nicht mehr verwendet zum Verschlüsseln von Nachrichten? -keyman.removeBlacklistKey.msg=Möchten Sie p≡p erlauben, den Schlüssel "%1$S (%2$S)" für zukünftige Nachrichten zu verwenden? -keyman.addBlacklistKey.button=Den Schlüssel auf die Sperrliste setzen -keyman.removeBlacklistKey.button=Schlüssel von der Sperrliste &entfernen - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Änderung der primären Benutzer-ID fehlgeschlagen -changePrimUidOK=Primäre Benutzer-ID erfolgreich geändert -revokeUidFailed=Widerrufen der Benutzer-ID %S fehlgeschlagen -revokeUidOK=Benutzer-ID „%S“ erfolgreich widerrufen. Wenn Ihr Schlüssel auf einem Schlüssel-Server verfügbar ist, sollten Sie Ihn jetzt erneut hochladen. Erst dann können andere Anwender sehen, dass er widerrufen wurde. -revokeUidQuestion=Möchten Sie die Benutzer-ID „%S“ wirklich widerrufen? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Das hat geklappt! Schlüssel wurden importiert -importInfoBits=Bit -importInfoCreated=Erstellt -importInfoFpr=Fingerabdruck -importInfoDetails=(Details) -importInfoNoKeys=Keine Schlüssel importiert - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=öffentlicher Schlüssel -keyTypePrimary=Primärer Schlüssel -keyTypeSubkey=Unterschlüssel -keyTypePair=Schlüsselpaar -keyExpiryNever=nie keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Verschlüsseln -keyUsageSign=Signieren -keyUsageCertify=Beglaubigen -keyUsageAuthentication=Authentifizieren -keyDoesNotExpire=Schlüssel läuft nicht ab - -# Strings in enigmailGenCardKey.xul -keygen.started=Bitte warten Sie, während der Schlüssel erzeugt wird… -keygen.completed=Schlüssel erzeugt. Die neue Schlüssel-ID ist: 0x%S -keygen.keyBackup=Die Sicherungskopie des Schlüssel wurde gespeichert als %S -keygen.passRequired=Bitte vergeben Sie eine Passphrase, wenn Sie eine Sicherungskopie des Schlüssels außerhalb der SmartCard anlegen möchten. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Ändern der PIN fehlgeschlagen - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Schlüssel werden aktualisiert. Bitte warten… -keyserverProgress.uploading=Schlüssel werden hochgeladen. Bitte warten… -keyserverProgress.wksUploadFailed=Ihr Schlüssel konnte nicht zum Webkey Service hochgeladen werden. -keyserverProgress.wksUploadCompleted=Ihr öffentlicher Schlüssel wurde Ihrem Anbieter erfolgreich übermittelt. Sie erhalten eine E-Mail, zum bestätigen, dass Sie den Upload eingeleitet haben. -keyserverTitle.refreshing=Schlüssel aktualisieren -keyserverTitle.uploading=Schlüssel hochladen -keyserver.result.download.none=Keine Schlüssel heruntergeladen. -keyserver.result.download.1of1=Schlüssel erfolgreich heruntergeladen. -keyserver.result.download.1ofN=1 von %S Schlüssel erfolgreich heruntergeladen. -keyserver.result.download.NofN=%1$S von %2$S Schlüssel erfolgreich heruntergeladen. -keyserver.result.uploadOne=1 Schlüssel erfolgreich hochgeladen. -keyserver.result.uploadMany=%S Schlüssel erfolgreich hochgeladen. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Bei der angegebenen Datei handelt es sich nicht um die GnuPG-Anwendung. Bitte wählen Sie eine andere Datei aus. -setupWizard.installFailed=Die Installation scheint nicht erfolgreich abgeschlossen worden zu sein. Bitte versuchen Sie GnuPG erneut zu installieren, oder installieren Sie GnuPG manuell und weisen Sie den Pfad über die Schaltfläche „Durchsuchen“ zu. -setupWizard.downloadForbidden=Zu ihrer eigenen Sicherheit werden wir GnuPG nicht herunterladen. Bitte besuchen Sie die Webseite https://gnupg.org/, um GnuPG herunterzuladen. -setupWizard.downloadImpossible=GnuPG kann im Moment nicht heruntergeladen werden. Bitte versuchen Sie es später erneut oder laden Sie GnuPG von https://gnupg.org/ herunter. -setupWizard.hashSumError=Der Assistent konnte die Integrität der heruntergeladenen Datei nicht verifizieren. Die Datei könnte defekt oder manipuliert worden sein. Möchten Sie die Installation trotzdem fortsetzen? -setupWizard.importSettingsFile=Geben Sie die zu ladende Sicherungsdatei an -setupWizard.invalidSettingsFile=Die angegebene Datei enthält keine Enigmail-Einstellungen. -setupWizard.gpgConfExists=Es existiert bereits eine GnuPG-Konfigurationsdatei. Soll sie durch die GnuPG-Konfigurationsdatei aus der Sicherung ersetzt werden? -setupWizard.noGpgHomeDir=Es scheint, dass Sie %S zur Verwendung mit GnuPG konfiguriert haben. Dies ist jedoch kein Verzeichnis - Sie können es nicht verwenden. -setupWizard.unmachtedIds=Folgende Identitäten Ihres alten Setups konnten nicht zugeordnet werden:\n%S\nDie Einstellungen für diese Identitäten wurden übersprungen. -setupWizard.foundAcSetupMessage=Eine Autocrypt Einrichtungsnachricht wurde gefunden. Um die Autocrypt-Einrichtung zu beginnen, drücken Sie auf den KnopfEinrichtung starten unten. -setupWizard.foundAcNoSetupMsg=Wir haben festgestellt, dass Sie ein Autocrypt-fähiges E-Mail Programm verwenden, aber wir können keine Autocrypt-Einrichtungsnachricht finden. Wir empfehlen Ihnen, dass Sie auf Ihrem bereits existierenden Gerät eine Autocrypt-Einrichtungsnachricht erzeugen, und anschliessend auf Postfach erneut durchsuchen drücken. Alternativ können Sie Ihre Einstellungen und Schlüssel von einer vorhandenen Enigmail-Installation exportieren, und hier einspielen. -setupWizard.setupComplete=Enigmail ist nun korrekt konfiguriert und betriebsbereit. Für weitere Informationen können Sie unsere Web-Seite besuchen (auf Englisch). - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Beim Download von GnuPG ist ein Fehler aufgetreten. Bitte prüfen Sie die Fehlerkonsole für weitere Details. -installGnuPG.installFailed=Bei der Installation von GnuPG ist ein Fehler aufgetreten. Bitte prüfen Sie die Fehlerkonsole für weitere Details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Sie müssen einen Namen und eine E-Mail-Adresse angeben -addUidDlg.nameMinLengthError=Der Name muss mindestens 5 Zeichen enthalten -addUidDlg.invalidEmailError=Sie müssen eine gültige E-Mail-Adresse angeben - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP-Smartcards unterstützen nur ASCII-Zeichen in Vor- und Nachname (also beispielsweise keine Umlaute) - - -# network error types +setupWizard.selectKeysButton=Schlüssel auswählen errorType.SecurityCertificate=Das Zertifikat des Web-Services ist nicht gültig. errorType.SecurityProtocol=Das vom Web-Service verwendete Sicherheitsprotokoll ist unbekannt. errorType.Network=Ein Netzwerkfehler ist aufgetreten. - -# filter stuff -filter.folderRequired=Sie müssen einen Zielordner auswählen -filter.decryptMove.label=Dauerhaft entschlüsseln (Enigmail) -filter.decryptCopy.label=Entschlüsselte Kopie anlegen (Enigmail) -filter.decryptMove.warnExperimental=Warnung – Die Filter-Aktion „Dauerhaft entschlüsseln“ kann Nachrichten zerstören.\n\nWir empfehlen eindringlich, dass Sie zunächst den Filter „Entschlüsselte Kopie anlegen“ ausprobieren und das Ergebnis sorgfältig prüfen. Nur wenn Sie mit dessen Ergebnis zufrieden sind, sollten Sie diesen Filter hier verwenden. -filter.tempPepFilterDesc=Temporärer Filter zum Speichern der gesendeten Nachricht unverschlüsselt -filter.term.pgpencrypted.label=OpenPGP-verschlüsselt -filter.encrypt.label=Verschlüsseln (Enigmail) -filter.keyRequired=Sie müssen einen Empfänger-Schlüssel wählen. -filter.keyNotFound=Konnte keinen Verschlüsselungs-Schlüssel finden für "%S". -filter.warn.keyNotSecret=Achtung - die Filteraktion "Verschlüsseln" ersetzt die Empfänger.\n\nWenn Sie keinen geheimen Schlüssel für "%S" haben, können Sie die E-Mails nicht mehr lesen. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Konnte Nachricht mit folgendem Betreff nicht entschlüsseln:\n„%S“\nWollen Sie es mit einer anderen Passphrase erneut versuchen, oder wollen Sie die Nachricht überspringen? -converter.decryptAtt.failed=Konnte Anhang „%1$S“ \nnicht entschlüsseln in Nachricht mit Betreff \n„%2$S“. \nWollen Sie es mit einer anderen Passphrase erneut versuchen, oder wollen Sie die Nachricht überspringen? - -saveLogFile.title=Log-Datei speichern - -# strings in gpg.jsm -unknownSigningAlg=Unbekannter Signatur-Algorithmus (Kennung: %S) -unknownHashAlg=Unbekannter kryptographischer Hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=Der Schlüssel %1$S (Schlüssel-ID %2$S) wurde widerrufen. keyRing.pubKeyExpired=Der Schlüssel %1$S (Schlüsselkennung %2$S) ist abgelaufen. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Alle Verschlüsselungs-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind abgelaufen. keyRing.noSecretKey=Der private Schlüssel für %1$S (Schlüsselkennung %2$S) scheint in Ihrem Schlüsselbund zu fehlen; dieser Schlüssel kann daher nicht zum Signieren verwendet werden. keyRing.encSubKeysUnusable=Alle Verschlüsselungs-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind widerrufen, abgelaufen oder aus anderem Grund unbenutzbar. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Datei „%S“ kann nicht gespeichert werden. Bitte wählen Sie eine andere Datei aus. dataExportError=Beim Exportieren der Daten ist ein Fehler aufgetreten. -enigmailSettings=Enigmail-Einstellungen -defaultBackupFileName=Enigmail-Sicherung -specifyExportFile=Geben Sie den Dateinamen für die Sicherung an -homedirParamNotSUpported=Zusätzliche Parameter zum Ändern von Pfaden, zum Beispiel --homedir und --keyring, sind beim Exportieren/Wiederherstellen der Einstellungen nicht möglich. Bitte nutzen Sie alternative Möglichkeiten, zum Beispiel die Umgebungsvariable GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Ihr Schlüssel %1$S läuft in weniger als %2$S Tagen ab.\n\nEs wird empfohlen, dass Sie ein neues Schlüsselpaar erzeugen und die entsprechenden E-Mail-Konten so einstellen, dass die neuen Schlüssel benutzt werden. expiry.keysExpireSoon=Ihr Schlüssel %1$S läuft in weniger als %2$S Tagen ab.\n\nEs wird empfohlen, dass Sie ein neues Schlüsselpaar erzeugen und die entsprechenden E-Mail-Konten so einstellen, dass die neuen Schlüssel benutzt werden. expiry.keyMissingOwnerTrust=Ihrem geheimen Schlüssel %S fehlt das Vertrauen.\n\nWir empfehlen Ihnen, in den Schlüsseleigenschaften die Option "Sie verlassen sich auf Zertifizierungen" auf "absolut" zu setzen. expiry.keysMissingOwnerTrust=Folgende geheime Schlüssel sind nicht vertrauenswürdig.\n%S.\nWir empfehlen Ihnen, in den Schlüsseleigenschaften die Option "Sie verlassen sich auf Zertifizierungen" auf "absolut" zu setzen. expiry.OpenKeyManager=Enigmail Schlüsselverwaltung öffnen expiry.OpenKeyProperties=Schlüsseleigenschaften öffnen - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Dies ist eine verschlüsselte Nachricht. Leider besitzen Sie nicht den passenden privaten Schlüssel um die Nachricht zu entschlüsseln. - -#strings in gpgAgent.jsm gpghomedir.notexists=Das Verzeichnis '%S' mit den OpenPGP-Schlüsseln existiert nicht und kann nicht erstellt werden. gpghomedir.notwritable=Das Verzeichnis '%S' mit den OpenPGP-Schlüsseln kann nicht beschrieben werden. gpghomedir.notdirectory=Das Verzeichnis '%S' mit den OpenPGP-Schlüsseln ist eine Datei, kein Verzeichnis. gpghomedir.notusable=Bitte korrigieren Sie die Verzeichnisberechtigungen oder ändern Sie den Speicherort Ihres GnuPG "home"-Verzeichnisses. GnuPG funktioniert sonst nicht korrekt. gpgAgent.noAutostart=Sie verwenden die GnuPG version %S. Der Einsatz dieser Version bedingt, dass Sie gpg-agent starten, bevor Thunderbird gestartet wird, und dass die Umgebungsvariable "GPG_AGENT_INFO" für vorgeladen wird.\n\nDiese Vorbedingungen sind nicht erfüllt - Sie können Enigmail nicht verwenden bis Sie dieses Problem behoben haben. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Kann keine p≡p vertrauliche Wörter für Ihren Account verifizieren. -pepTrustWords.cannotFindKey=Konnte Schlüssel für %S nicht finden. -pepTrustWords.cannotStoreChange=Konnte Vertrauen für den Schlüssel %S nicht ändern. -pepTrustWords.generalFailure=Bekommt keine vertrauenswürdige Wörter für %S. -pepTrustWords.partnerFingerprint=Fingerabdruck für %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Ihr E-Mailanbieter hat Ihre Anfrage zum Hochladen Ihres öffentlichen Schlüssels in das OpenPGP WebKey-Verzeichnis verarbeitet.\n\nBitte klicken Sie auf bestätien im Enigmail-Header, um die Veröffentlichung Ihres öffentlichen Schlüssels abzuschließen. -wkdMessage.body.process=Dies ist eine E-Mail im Zusammenhang mit der autom. Verarbeitung, um Ihren öffentlichen Schlüssel in das OpenPGP WebKey-Verzeichnis hochzuladen.\n\nSie müssen an dieser Stelle keine manuelle Handlung durchführen. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Entweder Sie oder der Sender sollte die Nachricht erneut versenden. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Wenn Sie diese Nachricht erstellt haben, ist Ihr Schlüssel nicht verfügbar. -pepPrivacyStatus.RatingMistrustSuggestion=Stellen Sie die Verbindung zu Ihrem Kommunikationspartner wieder her und versuchen Sie einen weiteren Handshake. -pepPrivacyStatus.RatingReliableSuggestion=Führen Sie einen Handshake mit Ihrem Kommunikationspartner durch, zum Austausch vertrauenswürdiger Wörter, persönlich oder über das Telefon. Ein Handshake wird nur einmal pro Partner benötigt und sorgt für sichere und vertrauensvolle Kommunikation. -pepPrivacyStatus.RatingTrustedSuggestion=Keine Aktion notwendig! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Beachten Sie, dass die Nachricht möglicherweise nicht sicher ist. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Bitte fügen Sie die notwendigen Informationen hinzu. -pepPrivacyStatus.RatingUnderAttackSuggestion=Überprüfen Sie den Inhalt dieser Nachricht mit Ihrem Kommunikationspartner auf einem anderen Kanal. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Stellen Sie sicher, dass der Datenschutzstatus für jeden aufgeführten Kommunikations-Partner mindestens "sicher" ist. -pepPrivacyStatus.RatingUnencryptedSuggestion=Bitte fragen Sie Ihren Kommunikationspartner Verschlüsselungslösungen zu nutzen oder p≡p zu installieren. -pepPrivacyStatus.RatingUnreliableSuggestion=Diese Nachricht hat keine zuverlässige Verschlüsselung oder keine Signatur. Bitten Sie Ihren Kommunikationspartner, seine Verschlüsselungseinstellungen zu aktualisieren oder p≡p zu installieren. - -pepPrivacyStatus.RatingBrokenExplanation=Diese Nachricht hat eine defekte Verschlüsselung oder Formatierung. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Diese Nachricht kann nicht entschlüsselt werden, da der Schlüssel nicht verfügbar ist. -pepPrivacyStatus.RatingMistrustExplanation=Diese Nachricht hat einen Kommunikationspartner der früher als misstraut markiert wurde. -pepPrivacyStatus.RatingReliableExplanation=Die Nachricht ist sicher, aber Sie müssen noch die Identität des Kommunikations-Partners prüfen. -pepPrivacyStatus.RatingTrustedExplanation=Diese Nachricht ist sicher und vertraut. -pepPrivacyStatus.RatingUndefinedExplanation=Diese Nachricht enthält nicht genügend Infos, um festzustellen, ob sie sicher ist. -pepPrivacyStatus.RatingUnderAttackExplanation=Diese Nachricht ist unsicher und wurde manipuliert. -pepPrivacyStatus.RatingUnencryptedExplanation=Diese Nachricht ist unsicher. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Diese Nachricht ist unsicher für manche der Kommunikationspartner. -pepPrivacyStatus.RatingUnreliableExplanation=Diese Nachricht hat einen unzuverlässigen Schutz. - -pepPrivacyStatus.RatingBrokenText=Defekt -pepPrivacyStatus.RatingHaveNoKeyText=Entschlüsselung fehlgeschlagen -pepPrivacyStatus.RatingMistrustText=Misstraut -pepPrivacyStatus.RatingReliableText=Sicher -pepPrivacyStatus.RatingTrustedText=Sicher & Vertraut -pepPrivacyStatus.RatingUndefinedText=Unbekannt -pepPrivacyStatus.RatingUnderAttackText=Wird angegriffen -pepPrivacyStatus.RatingUnencryptedForSomeText=Für einige unsicher -pepPrivacyStatus.RatingUnencryptedText=Unsicher -pepPrivacyStatus.RatingUnreliableText=Unzuverlässige Sicherheit - -handshakeDlg.button.initHandshake=Handschlag... -handshakeDlg.button.stopTrust=Vertrauen stoppen -handshakeDlg.button.reTrust=Misstrauen stoppen -handshakeDlg.label.outgoingMessage=Ausgehende Nachricht -handshakeDlg.label.incomingMessage=Eingehende Nachricht -handshakeDlg.error.noPeers=Kann ohne Hände schütteln nicht korrespondieren. -handshakeDlg.error.noProtection=Bitte aktivieren Sie den Schutz, um die Handshake-Funktion nutzen zu können. - -enigmail.acSetupPasswd.descEnterPasswd=Bitte geben Sie den Einrichtungscode ein, der auf dem anderen Gerät angezeigt wird. -enigmail.acSetupPasswd.descCopyPasswd=Bitte geben Sie den unten stehenden Einrichtungscode auf Ihrem anderen Gerät ein, um mit der Installation fortzufahren. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt-Einrichtungsnachricht -autocrypt.setupMsg.msgBody=Um Ihr neues Gerät für Autocrypt einzurichten, folgen Sie bitte den Anweisungen, die von Ihrem neuen Gerät angezeigt werden sollten. -autocrypt.setupMsg.fileTxt=Dies ist die Autocrypt-Einrichtungsdatei, die für die Übertragung von Einstellungen und Schlüsseln zwischen E-Mail Clients verwendet wird. Sie können sie mit dem Einrichtungscode entschlüsseln, den Sie auf Ihrem alten Gerät finden, und dann den enthaltenen Schlüssel in Ihren Schlüsselbund importieren. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Was gibt es Neues in Enigmail v2.0? -upgradeInfo.welcome1=Willkommen bei der neuen Enigmail-Version 2.0! -upgradeInfo.welcome2=Die Version enthält viele neue und geänderte Funktionen. Bitte nehmen Sie sich eine Minute Zeit, um zu erfahren, was es Neues gibt: -upgradeInfo.encSubject.title=Verschlüsselung des Betreffs der Nachricht -upgradeInfo.encSubject.desc=Wir haben eine neue Methode entwickelt, welche den Betreff in die verschlüsselte E-Mail verschiebt und den sichtbaren Betreff durch "Encrypted Message" ersetzt. Wenn eine solche Nachricht entschlüsselt wird, wird der Betreff automatisch durch den originalen Betreff ersetzt. Diese Funktionalität ist standardmäßig aktiviert, es gibt jedoch eine Einstellung, mit der man sie ausschalten kann. (Für diese Methode muss die Nachricht per PGP/MIME gesendet werden.) -upgradeInfo.buttons.title=Geändertes Verhalten der Schaltflächen zum Verschlüsseln und Signieren -upgradeInfo.buttons.desc=Die SchaltflächenVerschlüsseln und Signieren im Fenster Nachricht verfassen funktionieren nun sowohl für das OpenPGP- als auch für das S/MIME-Protokoll. Wenn beide Algorithmen möglich sind, wird Enigmail versuchen, denjenigen zu bevorzugen, für den alle Schlüssel verfügbar sind. -upgradeInfo.autocrypt.title=Unterstützung für Autocrypt -upgradeInfo.autocrypt.desc=Enigmail unterstützt nun Autocrypt, 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 p≡p 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 unsere Dokumentation, um Hilfe zur Verwendung von Enigmail zu erhalten. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=Eine neue Version der Enigmail/p≡p Kryptografie-Komponente ist verfügbar. Möchten Sie diese herunterladen und installieren? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Abschied von Enigmail +upgradeInfo.welcome1=OpenPGP-Verschlüsselung ist jetzt Teil von Thunderbird +upgradeInfo.welcome2=Enigmail wird für Thunderbird nicht mehr benötigt und ist überflüssig geworden - dies ist die endgültige Version von Enigmail für Thunderbird. +upgradeInfo.migrateSettings.title=Migrieren Sie Ihre Schlüssel und Einstellungen von GnuPG zu Thunderbird +upgradeInfo.migrateSettings.desc=Was nun noch fehlt ist, bevor Sie Enigmail deinstallieren, dass Sie Ihre Schlüssel aus GnuPG in Thunderbird importieren und einige wichtige Einstellungen von Enigmail nach Thunderbird migrieren. Wir haben einen Assistenten vorbereitet, der diese Schritte für Sie durchführt. +upgradeInfo.performMigration.buttonLabel=Migration jetzt starten +upgradeInfo.thankyou.title=Danke, dass Sie Enigmail genutzt haben +upgradeInfo.thankyou.desc1=Es war eine Freude, fast zwei Jahrzehnte lang an Enigmail zu arbeiten. Wir sind dankbar, dass wir zur Idee der verschlüsselten E-Mails beitragen konnten. Wir hoffen, dass Sie Enigmail nützlich fanden und möchten Ihnen für Ihre kontinuierliche Unterstützung während dieser vielen Jahre danken. +upgradeInfo.thankyou.desc2=Wenn Sie helfen wollen, dann denken Sie bitte darüber nach, für Thunderbird zu spenden. aboutEnigmail.tabName=Über Enigmail aboutEnigmail.title=OpenPGP-Unterstützung bereitgestellt durch Enigmail aboutEnigmail.team=Enigmail wird vom Enigmail Team entwickelt: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Lizenz & Unterstützung aboutEnigmail.license=Enigmail OpenPGP ist quelloffen und lizenziert unter der %S aboutEnigmail.support=Support und Download ist verfügbar unter www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Aktualisierung von GnuPG -updateGnuPG.title=Neue Versionen von GnuPG -updateGnuPG.introduction.desc=Enigmail verwendet GnuPG um die kryptografischen Funktionen durchzuführen. Wir empfehlen Ihnen, Ihre Installation von GnuPG aktuell zu halten. -updateGnuPG.updateRequired=Eine neue Version von GnuPG ist verfügbar. Wir empfehlen, dass Sie Ihre GnuPG Installation stets aktuell halten. Bitte drücken Sie auf den Knopf Update installieren, um GnuPG herunterzuladen und die neue Version zu installieren. -updateGnuPG.noUpdateRequired=GnuPG ist auf dem neusten Stand. -updateGnuPG.cannotUpdate.header=Enigmail unterstützt nur folgende Varianten von GnuPG: -updateGnuPG.cannotUpdate.footer=Sie scheinen eine andere Variante von GnuPG zu verwenden, welche leider nicht mit Enigmail aktualisiert werden kann. -updateGnuPG.installUpdate=Update installieren -updateGnuPG.noMoreUpdates=Zukünftig nicht nach Aktualisierungen suchen updateGnuPG.checkUpdate=Suche nach GnuPG Aktualisierungen - - -#strings in keyserver.jsm -keyserver.error.aborted=Abgebrochen -keyserver.error.unknown=Ein unbekannter Fehler ist aufgetreten. -keyserver.error.serverError=Der Schlüssel-Server hat einen Fehler gemeldet. -keyserver.error.importError=Der heruntergeladene Schlüssel konnte nicht importiert werden. -keyserver.error.unavailable=Der Schlüssel-Server ist nicht verfügbar. -keyserver.error.securityError=Der Schlüssel-Server unterstützt keine verschlüsselten Verbindungen. -keyserver.error.certificateError=Das Zertifikat des Schlüssel-Servers ist nicht gültig. -keyserver.error.unsupported=Der Schlüssel-Server wird von Enigmail nicht unterstützt. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Verschlüsselter Teil der Nachricht -mimeDecrypt.encryptedPart.concealedData=Dies ist ein verschlüsselter Teil der Nachricht. Sie müssen ihn in einem separaten Fenster öffnen, indem Sie auf den Anhang klicken. - -#strings in gnupg-key.jsm import.secretKeyImportError=Während des Imports von geheimen Schlüsseln ist ein Fehler in GnuPG aufgetreten. Der Import war nicht erfolgreich. - -#strings in importSettings.js -importSettings.errorNoFile=Die von Ihnen angegebene Datei ist keine reguläre Datei. -importSettings.cancelWhileInProgress=Die Wiederherstellung läuft noch. Wollen Sie den Prozess wirklich abbrechen? -importSettings.button.abortImport=&Prozess abbrechen +passphrasePrompt=Bitte geben Sie die Passphrase für den folgenden Schlüssel ein: %S +openpgpInitError=Bei der Initialisierung der OpenPGP Infrastruktur in Thunderbird ist ein Fehler aufgetreten.\n\nDer Migrationsassistent kann nicht fortgesetzt werden, wenn die OpenPGP Funktionalität in Thunderbird nicht korrekt initialisiert wurde. diff -Nru enigmail-2.1.6+ds1/lang/de/help/compose.html enigmail-2.2.4/lang/de/help/compose.html --- enigmail-2.1.6+ds1/lang/de/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - Enigmail-Hilfe: Verfassen von Nachrichten - - - - - -

Enigmail-Hilfe

- -

Verwenden von Enigmail beim Verfassen von Nachrichten

- -
-
Menü "Enigmail" im Fenster "Verfassen"
- -
-
-
Nachricht unterschreiben
- -
Unterschreiben von Nachrichten aktivieren / deaktivieren. Der Benutzer wird benachrichtigt, falls das Unterschreiben fehlschlägt.
- -
Nachricht verschlüsseln
-
-

Verschlüsselung an alle Adressaten aktivieren / deaktivieren. Der Benutzer wird benachrichtigt, falls die Verschlüsselung fehlschlägt.

- -

Falls Auswahl anzeigen, wenn notwendig im Menü Enigmail -> Einstellungen -> Schlüsselauswahl... eingestellt ist, dann wird eine Liste mit Schlüsseln erscheinen, wenn Sie keinen öffentlichen Schlüssel für einen oder mehrere Empfänger der Nachrichten besitzen.

- -

Falls Auswahlfenster nie anzeigen im Menü Enigmail -> Einstellungen -> Schlüsselauswahl... eingestellt ist, dann wird die Nachricht an die Empfänger unverschlüsselt gesendet, von denen Sie keinen öffentlichen Schlüssel besitzen.

-
- -
PGP/MIME verwenden
- -
- Verwenden von PGP/MIME für diese Nachricht ermöglichen / nicht ermöglichen. - -

Wenn Sie wissen, dass die Empfänger das PGP/MIME-Format verwenden können, dann sollten Sie dies benutzen.

- -

Diese Möglichkeit hängt von den Einstellungen unter Enigmail -> Einstellungen -> PGP/MIME... ab. Hier muss PGP/MIME verwenden, wenn möglich oder Immer PGP/MIME verwenden aktiviert sein.

-
- -
Einstellungen (Untermenü)
- -
-
    -
  • Unterschrift/Verschlüsselung...: Abkürzung zu den Konten-Einstellungen -> OpenPGP-Sicherheit.
  • - -
  • Senden...: Abkürzung zu Einstellungen -> Senden.
  • - -
  • Schlüsselwauswahl...: Abkürzung zu Einstellungen -> Schlüsselauswahl.
  • -
-
- -
Empfängerregeln
- -
Öffnet den Dialog mit den Empfängerregeln.
- -
Verschlüsselung rückgängig machen
- -
-

Wenn es einen Fehler beim Senden der Nachricht gibt, also z.B. der POP-Server nicht erreichbar ist, dann wird Enigmail dies nicht wissen und die verschlüsselte Nachricht wird auch weiterhin im Fenster "Verfassen" angezeigt. Dieser Menüpunkt nimmt die Verschlüsselung / das Unterschreiben zurück und das Fenster "Verfassen" kehrt zum Originaltext zurück.

- -

Als vorläufige Maßnahme kann über diesen Menüpunkt auch eine verschlüsselte Nachricht, die man zitiert und auf die man antwortet, entschlüsselt angezeigt werden. Enigmail sollte zitierte Nachrichten automatisch entschlüsseln, was bisher jedoch fehlschlägt. Über diesen Menüeintrag kann Enigmail zur Entschlüsselung gezwungen werden.

-
- -
Meinen öffentlichen Schlüssel anhängen
- -
Hägt an die Nachricht Ihren öffentlichen Schlüssel im ASCII-Format an.
- -
Öffentlichen Schlüssel anhängen
- -
Hägt an die Nachricht öffentliche Schlüssel im ASCII-Format an. Sie können die gewünschten Schlüssel dazu auswählen.
- -
Passphrase aus Zwischenspeicher löschen
- -
Löscht die gespeicherte Passphrase. Nützlich, falls Sie mehrere Passphrasen verwenden.
- -
Hilfe
- -
Zeigt die Hilfe an (diese Seite).
-
-
-
-
- -

Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite

- - diff -Nru enigmail-2.1.6+ds1/lang/de/help/editRcptRule.html enigmail-2.2.4/lang/de/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/de/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail-Hilfe: Enigmail-Empfägerregel bearbeiten - - - - - -

Enigmail-Hilfe

- -

Enigmail-Empfängerregeln bearbeiten

- -

Es können Standards für einen Empfänger bezüglich Verschlüsselung, Unterschreiben und PGP/MIME sowie die Verwendung von OpenPGP-Schlüsseln festgelegt werden. In diesem Dialog können Sie Regeln für einen einzelnen Empfänger sowie Gruppen von Empfängern mit ähnlichen Eigenschaften festlegen.

- -
-
Regel für
- -
Beinhaltet die E-Mail-Adressen der Empfänger (ohne Namen, also z.B. einfach somebody@email.domain). Sie können mehrere E-Mail-Adressen festlegen; die Adressen müssen mit Leerzeichen voneinander getrennt sein. Die eingegebenen Adressen können auch nur aus dem Domain-Namen bestehen, so dass die Regel auf alle Mails dieser Domain angewendet wird, also z.B. @email.domain bezieht ein body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Anwenden, wenn Empfänger...
- -
- Dies modifiziert die Übereinstimmung der E-Mail-Adressen. Wenn mehrere E-Mail-Adressen eingegeben werden, dann wird diese Einstellung auf alle angewendet. Die folgenden Beispiele beziehen sich auf die Adresse body@email.domain, die im oberen Feld Enigmail-Empfängerregel eingegeben wurde. - -
    -
  • ist exakt: Mit dieser Einstellung wird die Regel nur angewendet, wenn die E-Mail-Adresse body@email.domain lautet (exakt, Gross-/Kleinschreibung wird nicht beachtet).
  • - -
  • enthält: Regel wird angewendet, wenn die Zeichenfolge in der E-Mail-Adresse auftaucht, also z.B. anybody@email.domain oder body@email.domain.net
  • - -
  • beginnt mit: Regel wird angewendet, wenn die Zeichenfolge am Beginn der E-Mail-Adresse steht, also z.B. body@email.domain.net, body@email.domain-name.com.
  • - -
  • endet mit: Regel wird angewendet, wenn die Zeichenfolge am Ende der E-Mail-Adresse steht, also z.B. anybody@email.domain, somebody@email.domain.
  • -
-
- -
Weitere Regeln auf passende Adresse prüfen
- -
Diese Einstellung erlaubt Ihnen, eine Regel zu erstellen ohne eine spezielle Schlüssel-ID in Verwende folgende OpenPGP-Schlüssel angeben zu müssen. Die E-Mail-Adresse wird für die Auswahl des passenden Schlüssels beim Senden genutzt. Weitere Regeln für die gleiche E-Mail-Adresse werden auch ausgeführt.
- -
Weitere Regeln nicht auf passende Adresse prüfen
- -
Bei dieser Einstellung werden weitere Regeln nicht mehr ausgeführt, sobald eine passende Regel gefunden wurde.
- -
Verwende folgende OpenPGP-Schlüssel:
- -
Nutzen Sie die Schaltfläche Auswählen..., um die gewünschten Schlüssel auszuwählen. Auch hier werden keine weiteren Regeln ausgeführt.
- -
Unterschreiben
- -
- Unterschreiben von Nachrichten ermöglichen / nicht ermöglichen. Diese Einstellung verwendet oder übergeht, was Sie im Fenster "Verfassen" angegeben haben. Die möglichen Einstellungen lauten: - -
    -
  • Nie: Unterschreiben nicht ermöglichen, auch wenn es im Fenster "Verfassen" möglich war (andere Einstellungen werden übergangen).
  • - -
  • Ja, wenn beim Verfassen ausgewählt: Übernimmt die Einstellung, die beim Verfassen gewählt wurde.
  • - -
  • Immer: Unterschreiben ermöglichen, selbst wenn es nicht im Fenster "Verfassen" ermöglicht war.
  • -
Diese Unterschriftseinstellungen werden bei allen übereinstimmenden Regeln angewendet. Wenn eine der Regeln das Unterschreiben nicht ermöglicht, dann wird die Nachricht ungeachtet anderer Regeln, die Immer vorschreiben, nicht unterschrieben. -
- -
Verschlüsselung
- -
Verschlüsselung ermöglichen / nicht ermöglichen. Die möglichen Einstellungen und Bedeutungen stimmen mit den oben genannten überein.
- -
PGP/MIME
- -
Verschlüsselung mit PGP/MIME (RFC 3156) ermöglichen / nicht ermöglichen. Wenn nicht PGP/MIME abgestellt (nicht möglich) ist, dann wird die Nachricht per "Inline PGP" verschlüsselt. Die möglichen Einstellungen und Bedeutungen stimmen mit den oben genannten überein.
-
- -

Die Regeln werden in der Reihenfolge, wie sie in der Liste im Dialog "Enigmail-Empfängerregeln" erscheinen, angewendet. Wann immer eine Regel auf einen Empfänger zutrifft und eine OpenPGP-Schlüssel-ID enthält, dann wird der Empfänger nach Verwendung der angegeben Schlüssel-ID bei den nachfolgenden Regeln nicht mehr beachtet.

-
- -

Weitere Hilfe ist verfügbar auf der Enigmail Per-Recipient Settings Seite

- - diff -Nru enigmail-2.1.6+ds1/lang/de/help/initError.html enigmail-2.2.4/lang/de/help/initError.html --- enigmail-2.1.6+ds1/lang/de/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - Enigmail-Hilfe: Beheben von Problemen bei der Enigmail-Initialisierung - - - - - -

Enigmail-Hilfe

- -

Beheben von Problemen bei der Enigmail-Initialisierung

- -

Es gibt verschiedene Ursachen für ein Fehlschlagen der Enigmail-Initialisierung. Die bekanntesten werden unten beschrieben& - für weitere Informationen besuchen Sie bitte die Enigmail-Hilfe-Webseite.

- -
-
GnuPG konnte nicht gefunden werden
-
-

- Damit Enigmail funktionieren kann, muss die Anwendung GnuPG installiert sein. - Wenn GnuPG nicht gefunden werden kann, stellen Sie als erstes sicher, dass die Anwendung gpg.exe (für Windows& gpg für andere Plattformen) auf Ihrem PC tatsächlich vorhanden ist. - Wenn GnuPG (gpg.exe bzw. gpg) tatsächlich installiert ist, aber Enigmail kann es trotzdem nicht finden, müssen Sie den Pfad zu GnuPG manuell in den Enigmail-Einstellungen angeben (Menü Enigmail > Einstellungen...). -

- -
Initialisierung von EnigMIME ist fehlgeschlagen
- -
-

- Enigmail funktioniert nur, wenn es in der gleichen Entwicklungsumgebung wie Thunderbird bzw. Seamonkey erstellt (kompiliert) wurde. Sie können das offizielle Enigmail zusammen mit offiziellen Veröffentlichungen von Thunderbird bzw. Seamonkey von mozilla.org verwenden. -

-

- Wenn Sie Thunderbird oder Seamonkey in einer Version/Variante von einer anderen Quelle verwenden (z.B. vom Anbieter einer Linux-Distribution), oder wenn Sie die Anwendung selbst kompiliert haben, müssen Sie auch Enigmail in einer Version verwenden, die in der gleichen Entwicklungsumgebung kompiliert wurde. Um Enigmail selbst zu kompilieren, beachten Sie bitte die Angaben auf der Enigmail-Webseite im Bereich Source-Code. Bitte erstellen Sie keine Fehlerhinweise (Bugs) zu diesem Problem, da es dazu keine andere Lösung gibt. -

-
-
-
- -

Weitere Hilfe ist verfügbar unter Enigmail-Hilfeseite

- - diff -Nru enigmail-2.1.6+ds1/lang/de/help/messenger.html enigmail-2.2.4/lang/de/help/messenger.html --- enigmail-2.1.6+ds1/lang/de/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - Enigmail-Hilfe: Lesen von Nachrichten - - - - - -

Enigmail-Hilfe

- -

Verwenden von Enigmail beim Lesen von Nachrichten

- -
-
Schaltfläche "Entschlüsseln" im Hauptfenster
- -
Diese Schaltfläche kann für mehrere Zwecke verwendet werden: zum Entschlüsseln, Überprüfen, oder Importieren von öffentlichen Schlüsseln. Im Normalfall werden Nachrichten automatisch entschlüsselt und überprüft. Dies kann jedoch in den Einstellungen deaktiviert werden. Sollte das Entschlüsseln fehlschlagen, dann erscheint im Regelfall eine kurze Fehlermeldung in der Statuszeile von Enigmail. Sie werden dann, wenn Sie die Schaltfläche "Entschlüsseln" anklicken, eine detaillierte Fehlermeldung (inklusive der Meldung von der OpenPGP-Kommandozeile) erhalten.
- -
Schlüssel- und/oder Stift-Symbol in der Statusleiste einer Nachricht
- -
- Das Stift- und das Schlüssel-Symbol in der Statusleiste geben an, ob die Nachricht unterschrieben und/oder verschlüsselt ist und ob die Unterschrift gültig ist, d.h. dass die Nachricht seit ihrem Senden nicht geändert wurde. Falls die Nachricht geändert wurde, wird der Stift rot dargestellt, um auf die Ungültigkeit der Unterschrift hinzuweisen. Nach einem Klick auf "Details" in der Enigmail-Zeile im Nachrichtenkopf wird ein Menü mit den folgenden Optionen angezeigt: - -
    -
  • Schlüssel importieren: importiert eventuell angehängte öffentliche Schlüssel in Ihren Schlüsselring in der Schlüsselverwaltung.
  • - -
  • Enigmail-Sichheitsinfo...: ermöglicht Ihnen, die Statusmeldungen der Enigmail-Kommandozeile für die Nachricht anzusehen.
  • - -
  • Enigmail-Sicherheitsinfo kopieren: kopiert die Statusmeldungen von Enigmail in die Zwischenablage, damit man sie z.B. in eine Antwortnachricht etc. einfügen kann.
  • - -
  • Foto-ID anzeigen: ermöglicht Ihnen, die Foto-ID der Person, die die Nachricht gesendet hat, anzusehen, falls diese ein Foto in dem öffentlichen Schlüssel eingebettet hat. (Diese Option is nur verfügbar wenn ein Foto in dem öffentlichen Schlüssel eingebettet ist.)
  • - -
  • Schlüssel unterschreiben: lässt Sie den Schlüssel des Absenders unterschreiben.
  • - -
  • Besitzervertrauen des Absenders festlegen...: lässt Sie das Besitzervertrauen des Absenders festlegen, falls dessen Schlüssel in Ihrem Schlüsselring vorhanden ist.
  • - -
- -

Falls Sie keyserver-options auto-key-retrieve nicht in der Datei gpg.conf eingestellt haben, und Sie lesen eine Nachricht, die signiert oder verschlüsselt ist, dann erscheint ein Stift-Symbol mit einem Fragezeichen. Die Enigmail-Statuszeile im Kopfzeilenbereich der Nachricht wird melden: Ein Teil der Nachricht ist signiert; klicken Sie auf das Stift-Symbol für Details, und im Nachrichtentext werden alle PGP-Nachrichtenblockanzeiger und Signaturblöcke angezeigt.

- -

Dies kann außerdem angezeigt werden, wenn Sie keyserver-options auto-key-retrieve in der Datei gpg.conf eingestellt haben aber der OpenPGP-Schlüssel nicht auf dem voreingestellten Schlüssel-Server verfügbar ist.

- -

Wenn Sie auf das Schlüssel mit Fragezeichen-Symbol klicken, dann erhalten Sie die Meldung, dass der Schlüssel nicht in Ihrem Schlüsselring verfügbar ist. Wenn Sie OK klicken, dann öffnet sich ein Fenster mit einer Liste von Schlüssel-Servern, aus der Sie einen auswählen können, um den öffentlichen Schlüssel des Absenders herunterzuladen.

- -

Um die Liste der Schlüssel-Server, die Sie verwenden möchten, zu konfigurieren, gehen Sie zu Enigmail -> Einstellungen... -> Allgemein und geben die Adressen der Schlüssel-Server im Feld Schlüssel-Server ein (jeweils getrennt durch ein Komma). Der erste Schlüssel-Server wird als voreingestellter Server verwendet.

-
- -
Öffnen von verschlüsselten Dateianhängen / Importieren von angehängten OpenPGP-Schlüsseln
- -
Dateianhänge mit den Endungen *.pgp, *.asc und *.gpg werden von Enigmail als Anhänge erkannt, die speziell mit Enigmail bearbeitet werden können. Durch einen Rechtsklick auf solch einen Dateianhang werden zwei spezielle Menüeinträge im Kontextmenü angezeigt: Entschlüsseln und Öffnen und Entschlüsseln und Speichern. Verwenden Sie diese Menüeinträge, falls Enigmail einen Dateianhang entschlüsseln soll, bevor Sie ihn öffnen oder speichern. Wenn ein Anhang als PGP-Schlüsseldatei erkannt wird, dann werden Sie gefragt, ob sie diese(n) Schlüssel in ihren Schlüsselring importieren möchten.
-
-
- -

Weitere Hilfe ist verfügbar unter Enigmail Hilfeseite

- - diff -Nru enigmail-2.1.6+ds1/lang/de/help/rulesEditor.html enigmail-2.2.4/lang/de/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/de/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail-Hilfe: Enigmail-Empfägerregeln - - - - - -

Enigmail-Hilfe

- -

Enigmail-Empfängerregeln

- -

Mit dem Regel-Editor kann man Standards in Bezug auf Verschlüsselung, Unterschreiben und PGP/MIME für bestimmte Empfänger und die Benutzung von Schlüsseln einstellen. Jede Regel besteht aus 5 Feldern und ist in einer einzelnen Zeile zu finden:

- -
-
E-Mail-Adresse
- -
Die E-Mail-Adressen der Felder "An:", "CC:" und "BCC:", die übereinstimmen sollen. Die Übereinstimmung arbeitet mit substrings (Weitere Details im Dialog "Enigmail-Empfängerregel bearbeiten").
- -
OpenPGP-Schlüssel
- -
Eine Liste der OpenPGP-Schlüssel-IDs, die für den Empfänger verwendet werden sollen.
- -
Unterschreiben
- -
- Unterschreiben von Nachrichten ermöglichen / nicht ermöglichen. Dies verwendet die Einstellungen, die im Fenster "Verfassen" angegeben sind oder setzt sich darüber hinweg. Es gibt folgende Optionen: - -
    -
  • Nie: Unterschreiben unmöglich, selbst wenn im Fenster "Verfassen" angegeben (setzt sich über andere Einstellungen hinweg).
  • - -
  • Ja, wenn beim Verfassen ausgewählt: Einstellung aus dem Fenster "Verfassen" wird übernommen.
  • - -
  • Immer: Unterschreiben, selbst wenn nicht im Fenster "Verfassen" angegeben.
  • -
- -

Diese Unterschriftseinstellungen werden auf alle Regeln angewendet, die übereinstimmen. Wenn eine der Regeln das Unterschreiben unmöglich macht, dann wird die Nachricht nicht unterschrieben - auch wenn bei anderen Regeln Immer angegeben ist.

-
- -
Verschlüsseln
- -
Verschlüsselung ermöglichen / nicht ermöglichen. Die möglichen Einstellungen und ihre Bedeutungen stimmen mit den oben genannten überein.
- -
PGP/MIME
- -
Verwenden von PGP/MIME (RFC 3156) ermöglichen / nicht ermöglichen. Falls PGP/MIME nicht möglich ist, dann werden die Nachrichten per "Inline PGP" verschlüsselt. Die möglichen Einstellungen und ihre Bedeutungen stimmen mit den oben genannten überein.
-
- -

Die Regeln werden in der Reihenfolge, wie sie in der Liste erscheinen, angewendet. Wann immer eine Regel auf einen Empfänger zutrifft und eine OpenPGP-Schlüssel-ID enthält, dann wird der Empfänger nach Verwendung der angegeben Schlüssel-ID bei den nachfolgenden Regeln nicht mehr beachtet.

- -

Hinweis: Der Regel-Editor ist noch nicht komplett. Es ist möglich, weiter fortgeschrittene Regeln zu schreiben, indem man direkt die Regel-Datei bearbeitet (diese Regeln sollten danach nicht mehr mit dem Regel-Editor bearbeitet werden). Weitere Informationen, wie die Datei bearbeitet werden muss, gibt es auf der Enigmail-Homepage

-
- -

Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite

- - diff -Nru enigmail-2.1.6+ds1/lang/de/help/sendingPrefs.html enigmail-2.2.4/lang/de/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/de/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/de/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - Enigmail Help: Edit Enigmail Rule - - - - - -

Enigmail-Hilfe

- -

Optionen zum Verschlüsselten Senden

- -

In den Senden Einstellungen kann man prinzipiell das Modell und die prinzipiellen Einstellungen zum Verschlüsseln einstellen.

-
-
Bequeme Verschlüsselung
-
Mit diesen Einstellungen wird möglichst immer ohne Rückfragen verschlüsselt. -

Diese Einstellungen sind vor allem dann angemessen, wenn man einfach nur seine Privatsphäre erhöhen will, indem man Emails möglichst verschlüsselt statt unverschlüsselt verschickt.

-

Der Effekt ist wie wenn man Emails statt als Postkarten als Briefe versendet. Im Gegensatz zu Postkarten kann damit unterwegs nicht mehr jeder den Inhalt der Email einfach so mitlesen.

-

Wie bei Briefen bietet das aber keine absolute Garantie, dass die Emails unterwegs nicht von anderen gelesen werden können (auch wenn dazu ein gewisser technischer Aufwand notwendig ist).

-

Ein ganz konkretes Risiko besteht darin, aus Versehen "gefälschte Schlüssel" zu verwenden, die man von irgendjemanden oder irgendwo bekommen hat und nur behauptet wurde, dass der Schlüssel zur angegebenen Email-Adresse gehört. Um dieses Risiko zu vermeiden, sollte man nur Schlüssel akzeptieren, denen man vertrauen kann (siehe unten), oder immer selbst einen Schlüssel anhand des Fingerabdrucks mit dem Eigentümer abgleichen (und unterschreiben).

- -
Manuelle Verschlüsselung
-
Mit dieser Option kann man die verschiedenen Einstellungen zur Verschlüsselung nach den eigenen Vorstellungen anpassen. Man kann festlegen -
    -
  • ob auf verschlüsselte/signierte Emails automatisch verschlüsselt/signiert geantwortet werden soll.
  • -
  • ob man nur Schlüssel akzeptieren will, denen man auch vertrauen kann (dies aktiviert das OpenPGP Vertrauensmodell, durch das man nur Schlüsseln vertraut, die von einem selbst oder Personen, denen man trauen kann, unterschrieben wurden).
  • -
  • ob man möglichst immer automatisch verschlüsseln will.
  • -
  • ob und unter welchen Umständen eine ausgehende Email (und deren Verschlüsselung) final bestätigt werden muss.
  • -
-
- - Falls es wichtig ist, dass der Inhalt von verschlüsselten Emails nicht von anderen Personen oder Organisationen gelesen werden können, sollte man zumindest bei den manuellen Einstellungen die Option einschalten, mit der nur vertrauenswürdige Schlüssel akzeptiert werden. Während dies das Risiko der Verwendung von "gefälschten Schlüsseln" reduziert, muss man dazu aber in der Schlüsselverwaltung Schlüssel aktiv unterschreiben und/oder aktiv bestätigen, welchen Email-Adressen (Personen/Organisationen) man trauen kann, wenn diese die Gültigkeit von Schlüssel bestätigen.

- -
-

Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite

- - - diff -Nru enigmail-2.1.6+ds1/lang/el/am-enigprefs.properties enigmail-2.2.4/lang/el/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/el/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Ασφάλεια OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/el/enigmail.dtd enigmail-2.2.4/lang/el/enigmail.dtd --- enigmail-2.1.6+ds1/lang/el/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' στις διευθύνσεις email"> - - -' στις διευθύνσεις email του GnuPG. Απενεργοποίηση αν ο παραλήπτης χρησιμοποιεί κλειδιά Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ΣΗΜΕΙΩΣΗ: Η δημιουργία του κλειδιού μπορεί να διαρκέσει αρκετά λεπτά. Μην τερματίσετε την εφαρμογή κατά τη διάρκεια της δημιουργίας του κλειδιού. Κατά τη διάρκεια της δημιουργίας του κλειδιού θα ήταν καλό να κάνετε κάποιες εργασίες που χρησιμοποιούν τους πόρους του συστήματος (επεξεργαστή, μνήμη, δίσκο) για να αυξηθεί η εντροπία και να επισπευσθεί η δημιουργία του κλειδιού. Θα ειδοποιηθείτε όταν ολοκληρωθεί η δημιουργία του κλειδιού."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' δεν είναι έγκυρο"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ΣΗΜΕΙΩΣΗ: Η δημιουργία του κλειδιού μπορεί να διαρκέσει αρκετά λεπτά. Μην τερματίσετε την εφαρμογή κατά τη διάρκεια της δημιουργίας του κλειδιού. Θα ειδοποιηθείτε όταν ολοκληρωθεί η δημιουργία του κλειδιού."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/el/enigmail.properties enigmail-2.2.4/lang/el/enigmail.properties --- enigmail-2.1.6+ds1/lang/el/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Ειδοποίηση του Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Σφάλμα του Enigmail enigPrompt=Ερώτηση του Enigmail - -dlgYes=&Ναι dlgNo=Ό&χι dlgKeepSetting=Απομνημόνευση της απάντησής μου ώστε να μην ερωτηθώ ξανά dlgNoPrompt=Να μην εμφανιστεί ξανά αυτός ο διάλογος -dlg.button.delete=&Διαγραφή dlg.button.cancel=&Ακύρωση dlg.button.close=&Κλείσιμο dlg.button.continue=Συνέ&χεια -dlg.button.skip=Πα&ράλειψη -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Προβολή -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nΑυτή η ειδοποίηση θα επαναληφθεί %S repeatSuffixSingular=φορά ακόμα. repeatSuffixPlural=φορές ακόμα. noRepeat=\n\nΑυτή η ειδοποίηση δε θα ξαναεμφανιστεί μέχρι να αναβαθμίσετε το Enigmail. - -pgpNotSupported=Απ' ότι φαίνεται χρησιμοποιείτε το Enigmail μαζί με το PGP 6.x\n\nΔυστυχώς, το PGP 6.x έχει ορισμένες ατέλειες που εμποδίζουν το Enigmail να λειτουργήσει σωστά. Για αυτό το λόγο, το Enigmail δεν υποστηρίζει πια το PGP 6.x Παρακαλώ χρησιμοποιήστε το GnuPG (GPG).\n\nΑν χρειάζεστε περισσότερη βοήθεια για τη χρήση του GnuPG, ανατρέξτε στο τμήμα Βοήθειας στο δικτυακό τόπο του Enigmail. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=Η φράση κωδικού μηδενίστηκε. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Δεν υπάρχει διαθέσιμη φωτογραφία -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Η διαδρομή εικόνων '%S' δεν είναι προσβάσιμη - -# generalError=Error: %S - -# Strings in configure.jsm -# enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -# enigmailCommon.checkPreferences=Check Preferences ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Χρησιμοποιείται το Enigmail έκδοση %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Χρησιμοποιείται το %S (εκτελέσιμο: %S) για υπογραφή και κρυπτογράφηση agentError=ΣΦΑΛΜΑ: Αδύνατη η πρόσβαση στην υπηρεσία Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Σφάλμα πρόσβασης στην υπηρεσία Enigmail -onlyGPG=Η δημιουργία κλειδιών λειτουργεί μόνο με το GnuPG (όχι με το PGP)! - -keygenComplete=Η δημιουργία του κλειδιού ολοκληρώθηκε! Η ταυτότητα <%S> θα χρησιμοποιηθεί για υπογραφή. -revokeCertRecommended=Σας συστήνεται να δημιουργήσετε ένα πιστοποιητικού ανάκλησης για το κλειδί σας. Αυτό το πιστοποιητικό μπορεί να χρησιμοποιηθεί για να ακυρώσει το κλειδί σας, αν για παράδειγμα το ιδιωτικό κλειδί σας χαθεί ή γίνει γνωστό σε κάποιον άλλον. Θέλετε να δημιουργηθεί ένα τέτοιο πιστοποιητικό ανάκλησης τώρα; -keyMan.button.generateCert=&Δημιουργία πιστοποιητικού -genCompleteNoSign=Η δημιουργία του κλειδιού ολοκληρώθηκε! -genGoing=Η δημιουργία του κλειδιού είναι ήδη σε εξέλιξη! - -passNoMatch=Οι φράσεις κλειδιού δεν ταιριάζουν· παρακαλώ ξαναδοκιμάσετε -passCheckBox=Ενεργοποιήστε αυτό το πλαίσιο αν δε θέλετε να ορίσετε φράση κωδικού για το κλειδί -passUserName=Παρακαλώ καθορίστε το όνομα χρήστη για αυτήν την ταυτότητα -keygen.missingUserName=Δεν υπάρχει όνομα για τον επιλεγμένο λογαριασμό/ταυτότητα. Καταχωρίστε μια τιμή στο πεδίο "Το όνομά σας" στις ρυθμίσεις λογαριασμού. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Για τεχνικούς λόγους, ο κωδικός δεν πρέπει να αρχίζει ή να τελειώνει με κενό. -changePassFailed=Η αλλαγή της φράσης κωδικού απέτυχε. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Δημιουργία κλειδιού -keyAbort=Ακύρωση της δημιουργίας του κλειδιού; -keyMan.button.generateKeyAbort=&Εγκατάλειψη δημιουργίας κλειδιού -keyMan.button.generateKeyContinue=&Συνέχεια δημιουργίας κλειδιού -expiryTooLong=Δεν μπορείτε να δημιουργήσετε κλειδί που να λήγει σε περισσότερο από 100 χρόνια. -expiryTooLongShorter=Δεν μπορείτε να δημιουργήσετε κλειδί που λήγει σε περισσότερα από 90 έτη. -expiryTooShort=Το κλειδί θα πρέπει να είναι έγκυρο για μία ημέρα τουλάχιστον. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -# setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -securityInfo=Πληροφορίες ασφαλείας του Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Πιθανό κρυπτογραφημένο ή υπογεγραμμένο μήνυμα με PGP/MIME. Κάντε κλικ στο κουμπί Αποκρυπτογράφηση για να το επαληθεύσετε - -saveAttachmentHeader=Enigmail: Αποθήκευση αποκρυπτογραφημένων επισυνάψεων -noTempDir=Δε βρέθηκε προσωρινός κατάλογος για εγγραφή\nΠαρακαλώ ορίστε τη μεταβλητή περιβάλλοντος TEMP -attachmentPgpKey=Η επισύναψη '%S' που ανοίξατε φαίνεται να είναι ένα αρχείο κλειδιού OpenPGP.\n\nΚάντε κλικ στο 'Εισαγωγή' για να εισάγετε τα κλειδιά που περιέχονται σε αυτό, ή στο 'Προβολή' για να εμφανίσετε τα περιεχόμενά του στον περιηγητή - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Βρέθηκε μήνυμα πολλαπλών τμημάτων -- η αποκρυπτογράφηση/επαλήθευση διακόπηκε* - -decryptOkNoSig=Προειδοποίηση\n\nΗ αποκρυπτογράφηση ήταν επιτυχής, αλλά ή επαλήθευση της υπογραφής δεν έγινε σωστά -msgOvl.button.contAnyway=&Συνέχεια όπως και να 'χει -signature.verifiedOK=Η υπογραφή της επισύναψης %S επαληθεύτηκε επιτυχώς -signature.verifyFailed=Η υπογραφή της επισύναψης %S δεν μπόρεσε να επαληθευτεί -attachment.noMatchToSignature=Δεν μπόρεσε να αντιστοιχισθεί η επισύναψη '%S' σε αρχείο υπογραφής -attachment.noMatchFromSignature=Δεν μπόρεσε να αντιστοιχισθεί το αρχείο υπογραφής '%S' σε επισύναψη -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Επιλέξτε τα κλειδιά OpenPGP που θα εισαχθούν keysToUse=Επιλέξτε κλειδί(ά) OpenPGP που θα χρησιμοποιηθούν για το %S pubKey=Δημόσιο κλειδί για το %S\n - -windowLocked=Το παράθυρο σύνταξης είναι κλειδωμένο· η αποστολή ακυρώθηκε -sendUnencrypted=Η αρχικοποίηση του Enigmail απέτυχε.\nΑποστολή του μηνύματος χωρίς κρυπτογράφηση; -composeSpecifyEmail=Παρακαλώ καθορίστε την κύρια διεύθυνση αλληλογραφίας σας, η οποία θα χρησιμοποιηθεί για την επιλογή του κλειδιού υπογραφής των εξερχόμενων μηνυμάτων.\n Αν το αφήσετε κενό, θα χρησιμοποιηθεί η διεύθυνση αποστολέα για την επιλογή του κλειδιού υπογραφής. -sendingHiddenRcpt=Το μήνυμα έχει κρυφούς (BCC) παραλήπτες. Αν κρυπτογραφηθεί, είναι δυνατή η απόκρυψη των κρυφών παραληπτών, αλλά οι χρήστες κάποιων προγραμμάτων (π.χ. PGP Corp.) δε θα μπορούν να αποκρυπτογραφήσουν το μήνυμα. Κατόπιν αυτού, σας συνιστούμε να μη χρησιμοποιείτε κρυφούς παραλήπτες (BCC) σε κρυπτογραφημένα μηνύματα. -sendWithHiddenBcc=Απόκρυψη παραληπτών BCC -sendWithShownBcc=Κανονική κρυπτογράφηση -sendingNews=Η αποστολή κρυπτογραφημένου μηνύματος ακυρώθηκε.\n\nΤο μήνυμα δεν μπορεί να κρυπτογραφηθεί γιατί κάποιοι παραλήπτες είναι λίστες αλληλογραφίας. Παρακαλώ στείλτε το μήνυμα χωρίς κρυπτογράφηση. -sendToNewsWarning=Προειδοποίηση: πρόκειται να στείλετε ένα κρυπτογραφημένο μήνυμα σε μία ομάδα συζήτησης.\n\nΑυτό έχει νόημα μόνο αν όλοι οι συμμετέχοντες στην ομάδα συζήτησης μπορούν να αποκρυπτογραφήσουν το μήνυμα, δηλ. το μήνυμα θα πρέπει να κρυπτογραφηθεί με το κλειδί του κάθε μέλους της ομάδας. Κρυπτογραφήστε το μήνυμα μόνο αν ξέρετε ακριβώς τι κάνετε..\n\nΣυνέχεια; -hasHTML=Προειδοποίηση μηνύματος HTML:\nΑυτό το μήνυμα περιέχει HTML, που θα μπορούσε να κάνει την υπογραφή/κρυπτογράφησή του να αποτύχει. Για να το αποφύγετε στο μέλλον, θα πρέπει να κρατάτε πατημένο το πλήκτρο SHIFT όταν κάνετε κλικ στο κουμπί Σύνταξη/Απάντηση για να αποστείλετε υπογεγραμμένα μηνύματα.\nΑν το μήνυμα υπογράφεται εξ ορισμού, θα πρέπει να απενεργοποιήσετε την επιλογή 'Σύνταξη μηνυμάτων σε μορφή HTML' για να μη χρησιμοποιείται HTML για τα μηνύματα αυτού του λογαριασμού. -strippingHTML=Το μήνυμα περιέχει πληροφορίες μορφοποίησης HTML οι οποίες θα χαθούν κατά τη μετατροπή του σε απλό κείμενο για υπογραφή/κρυπτογράφηση. Θέλετε να συνεχίσετε; -msgCompose.button.sendAnyway=&Αποστολή του μηνύματος όπως και να 'χει -attachWarning=Οι επισυνάψεις αυτού του μηνύματος δεν είναι τοπικές, και για αυτό δεν μπορούν να κρυπτογραφηθούν. Για να τις κρυπτογραφήσετε, αποθηκεύστε τις ως τοπικά αρχεία και επισυνάψτε αυτά τα αρχεία. Θέλετε να συνεχίσετε; quotedPrintableWarn=Έχετε ενεργοποιήσει την κωδικοποίηση 'quoted-printable' για την αποστολή μηνυμάτων. Αυτό μπορεί να οδηγήσει σε εσφαλμένη αποκρυπτογράφηση και/ή επαλήθευση της υπογραφής του μηνύματός σας.\n Θέλετε να απενεργοποιήσετε τη χρήση της κωδικοποίησης 'quoted-printable'; -minimalLineWrapping=Έχετε ορίσει να γίνεται αναδίπλωση κειμένου στους %S χαρακτήρες. Για σωστή κρυπτογράφηση και/ή υπογραφή, αυτή η τιμή θα πρέπει να είναι τουλάχιστον 68.\nΘέλετε να αλλάξει η αναδίπλωση κειμένου στους 68 χαρακτήρες τώρα; warning=Προειδοποίηση -signIconClicked=Έχετε τροποποιήσει χειρωνακτικά τις ρυθμίσεις υπογραφής μηνυμάτων. Για αυτό το λόγο, κατά τη σύνταξη αυτού του μηνύματος, η (απ)ενεργοποίηση της υπογραφής δεν εξαρτάται πια από την (απ)ενεργοποίηση της κρυπτογράφησης. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Σφάλμα κατά την αποθήκευση προχείρου -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=δ - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Η αποστολή ακυρώθηκε.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=ΥΠΟΓΕΓΡΑΜΜΕΝΟ -statEncrypted=ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΟ -statPlain=ΜΗ ΥΠΟΓΕΓΡΑΜΜΕΝΟ και ΜΗ ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΟ - -offlineSave=Αποθήκευση του μηνύματος %S ως %S στο φάκελο Μη απεσταλμένης αλληλογραφίας; - -onlineSend=Αποστολή του μηνύματος %S στον %S; -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Αποστολή μη κρυπτογραφημένου μηνύματος -recipientsSelectionHdr=Επιλέξτε παραλήπτες για κρυπτογράφηση - -configureNow=Δεν έχετε ρυθμίσει ακόμα το Enigmail για αυτήν την ταυτότητα. Θέλετε να το κάνετε τώρα; - -# encryption/signing status and associated reasons: -encryptMessageAuto=Κρυπτογράφηση Μηνύματος (αυτόματα) -encryptMessageNorm=Κρυπτογράφηση Μηνύματος -signMessageAuto=Υπογραφή Μηνύματος (αυτόματα) -signMessageNorm=Υπογραφή μηνύματος - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -reasonEnabledByDefault=ενεργοποιημένο από προεπιλογή -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Το μήνυμα θα κρυπτογραφηθεί -encryptNo=Το μήνυμα δε θα κρυπτογραφηθεί - -# should not be used anymore: -signYes=Το μήνυμα θα υπογραφεί -signNo=Το μήνυμα δε θα υπογραφεί - - -# PGP/MIME status: -pgpmimeNormal=Πρωτόκολλο: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Εντοπίστηκαν αλληλοσυγκρουόμενοι κανόνες παραληπτών\n%S\n\nΝα σταλθεί το μήνυμα με αυτές τις παραμέτρους; -msgCompose.button.configure=&Ρύθμιση -msgCompose.button.send=&Αποστολή μηνύματος -msgCompose.button.save=Α&ποθήκευση μηνύματος - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Απαιτείται το δημόσιο κλειδί %S για την επαλήθευση της υπογραφής -# keyUsed=Public key %S used to verify signature -clickDecrypt=· κάντε κλικ στο κουμπί Αποκρ/φηση -clickDecryptRetry=· κάντε κλικ στο κουμπί Αποκρ/φηση για να ξαναδοκιμάσετε -# clickDetailsButton=; click on 'Details' button for more information -clickImportButton=· πατήστε στο κουμπί 'Εισαγωγή κλειδιού' για να εισάγετε το κλειδί -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Αποκρ/φηση -msgPart=Τμήμα του μηνύματος %S -msgSigned=υπογεγραμμένο -msgSignedUnkownKey=υπογεγραμμένο με άγνωστο κλειδί -msgEncrypted=κρυπτογραφημένο -msgSignedAndEnc=υπογεγραμμένο και κρυπτογραφημένο - unverifiedSig=Μη επαληθεύσιμη υπογραφή -incompleteDecrypt=Η αποκρυπτογράφηση είναι ημιτελής -needKey=Σφάλμα - απαιτείται ιδιωτικό κλειδί για την αποκρυπτογράφηση του μηνύματος -failedDecrypt=Σφάλμα - η αποκρυπτογράφηση απέτυχε badPhrase=Σφάλμα - κακή δράση κωδικού # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Σφάλμα - η αποκρυπτογράφηση/επαλήθευση απέτυχε -viewInfo=· Προβολή > Πληροφορίες ασφαλείας μηνύματος -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Αποκρυπτογραφημένο μήνυμα -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -pepStatusInfo.info.m3=Αυτό το μήνυμα δεν είναι ασφαλές και έχει παραποιηθεί. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -pepStatusInfo.info.r0=Αυτό το μήνυμα δεν περιέχει αρκετές πληροφορίες για να προσδιοριστεί εάν είναι ασφαλές. -# pepStatusInfo.title.r1=Cannot Decrypt -pepStatusInfo.info.r1=Αυτό το μήνυμα δεν μπορεί να αποκρυπτογραφηθεί επειδή το κλειδί δεν είναι διαθέσιμο. -# pepStatusInfo.title.r2=Cannot Decrypt -pepStatusInfo.info.r2=Αυτό το μήνυμα δεν μπορεί να αποκρυπτογραφηθεί επειδή το κλειδί δεν είναι διαθέσιμο. -# pepStatusInfo.title.r3=Unsecure -pepStatusInfo.info.r3=Αυτό το μήνυμα δεν είναι ασφαλές. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -pepStatusInfo.title.r5=Αναξιόπιστη Ασφάλεια -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -pepStatusInfo.color.green=Πράσινο -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Εντοπισμός του προγράμματος GnuPG -invalidGpgPath=Το GnuPG δεν μπορεί να εκτελεστεί με τη διαδρομή που δόθηκε. Για αυτό το λόγο το Enigmail θα είναι απενεργοποιημένο μέχρι να δώσετε τη σωστή διαδρομή ή να επανεκκινήσετε την εφαρμογή. -warningsAreReset=Όλες οι προειδοποιήσεις επανήλθαν στην προκαθορισμένη τους κατάσταση. -prefs.gpgFound=Το GnuPG βρέθηκε στο %S -prefs.gpgNotFound=Το GnuPG δε βρέθηκε -prefs.warnAskNever=Προειδοποίηση: η ενεργοποίηση αυτής της επιλογής θα οδηγήσει σε αποστολή μη κρυπτογραφημένων μηνυμάτων χωρίς να εμφανίζεται καμία απολύτως πληροφορία, όταν δεν υπάρχει το κλειδί κάποιου από τους παραλήπτες -- το Enigmail δε θα σας πληροφορεί όταν συμβαίνει αυτό! -prefs.warnIdleTimeForUnknownAgent=Δεν είναι δυνατή η σύνδεση στο gpg-agent. Ίσως το σύστημά σας να χρησιμοποιεί ένα εξειδικευμένο εργαλείο για τη διαχείριση των κωδικών πρόσβασης (π.χ. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Δυστυχώς, το Enigmail δεν μπορεί να ελέγξει το χρονικό όριο λήξης κωδικού για αυτό το εργαλείο. Συνεπώς, οι αντίστοιχες ρυθμίσεις χρονικού ορίου, στο Enigmail, αγνοούνται. -prefEnigmail.oneKeyserverOnly=Σφάλμα - μπορείτε να ορίσετε μόνο ένα εξυπηρετητή κλειδιών για την αυτόματη λήψη των OpenPGP κλειδιών που λείπουν. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Το Enigmail είναι λογισμικό ανοιχτού κώδικα και διατίθεται υπό την άδεια Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Παρακαλώ πληκτρολογήστε το PIN ΔΙΑΧΕΙΡΙΣΤΗ της SmartCard σας -enterCardPin=Παρακαλώ πληκτρολογήστε το PIN της SmartCard σας - -notInit=Σφάλμα - Η υπηρεσία Enigmail δεν έχει αρχικοποιηθεί ακόμα badCommand=Σφάλμα - η εντολή κρυπτογράφησης απέτυχε cmdLine=γραμμή εντολών και έξοδος: -notRequired=Σφάλμα - δε χρειάζεται κρυπτογράφηση -notComplete=Σφάλμα - η δημιουργία κλειδιών δεν έχει ολοκληρωθεί ακόμα -invalidEmail=Σφάλμα - μη έγκυρη διεύθυνση(εις) αλληλογραφίας noPassphrase=Σφάλμα - δε δόθηκε φράση κωδικού noPGPblock=Σφάλμα - Δε βρέθηκε έγκυρο μπλοκ δεδομένων armored OpenPGP -unverifiedReply=Η απάντηση δεν επαληθεύθηκε -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Σφάλμα - Η υπογραφή δεν ταιριάζει -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Η SmartCard %S που βρέθηκε στη συσκευή ανάγνωσης δε μπορεί να χρησιμοποιηθεί για την επεξεργασία του μηνύματος.\nΠαρακαλώ εισάγετε την SmartCard %S και ξαναδοκιμάστε. sc.insertCard=Για τη λειτουργία απαιτείται η SmartCard %S.\nΠαρακαλώ εισάγετε την απαιτούμενη SmartCard και ξαναδοκιμάστε. sc.removeCard=Για τη λειτουργία δε χρειάζεται να υπάρχει κάποια SmartCard στη συσκευή ανάγνωσης.\nΠαρακαλώ αφαιρέστε τη SmartCard και ξαναδοκιμάστε. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Η συσκευή ανάγνωσης SmartCard δεν μπόρεσε να προσπελασθεί.\nΠαρακαλώ συνδέστε τη συσκευή, εισάγετε την κάρτα σας, και ξαναδοκιμάστε. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. missingPassphrase=Λείπει η φράση πρόσβασης errorHandling.gpgAgentInvalid=Το σύστημά σας τρέχει μια έκδοση του gpg-agent που δεν είναι κατάλληλη για την έκδοση GnuPG. errorHandling.gpgAgentError=Το GnuPG ανέφερε ένα σφάλμα στην επικοινωνία με το gpg-agent (ένα στοιχείο του GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=Αδύνατος ο εντοπισμός του προγράμματος GnuPG '%S'.\nΣιγουρευτείτε ότι έχετε ορίσει σωστά τη διαδρομή του εκτελέσιμου του GnuPG στις προτιμήσεις του Enigmail. gpgNotInPath=Αδύνατος ο εντοπισμός του εκτελέσιμου του GnuPG στο PATH.\nΣιγουρευτείτε ότι έχετε ορίσει σωστά τη διαδρομή του εκτελέσιμου του GnuPG στις προτιμήσεις του Enigmail. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=Έγκυρη υπογραφή από %S -prefBad=ΜΗ έγκυρη υπογραφή από %S - failCancel=Σφάλμα - Η λήψη του κλειδιού ακυρώθηκε από το χρήση failKeyExtract=Σφάλμα - η εντολή εξαγωγής του κλειδιών απέτυχε -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Σφάλμα - Το πρώτο μπλοκ OpenPGP δεν είναι μπλοκ δημόσιου κλειδιού importKeyConfirm=Να εισαχθούν τα δημόσια κλειδιά που υπάρχουν στο μήνυμα; -failKeyImport=Σφάλμα - η εισαγωγή κλειδιών απέτυχε fileWriteFailed=Απέτυχε η έγγραφη στο αρχείο %S - importKey=Εισαγωγή του δημόσιου κλειδιού %S από τον εξυπηρετητή κλειδιών: uploadKey=Αποστολή του δημόσιου κλειδιού %S στον εξυπηρετητή κλειδιών: keyId=ID κλειδιού -keyAndSigDate=ID κλειδιού: 0x%S / Υπογεγραμμένο την: %S -keyFpr=Αποτύπωμα κλειδιού: %S -noEmailProvided=Δε δώσατε διεύθυνση αλληλογραφίας! -keyAlreadySigned=Το κλειδί έχει ήδη υπογραφεί, δεν μπορείτε να το υπογράψετε ξανά. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=έληξε %S createdHeader=Δημιουργήθηκε atLeastOneKey=Δεν επιλέχθηκε κλειδί! Πρέπει να επιλέξετε τουλάχιστον ένα κλειδί για να συνεχίσετε fewerKeysThanRecipients=Έχετε επιλέξει λιγότερα κλειδιά από τους παραλήπτες. Είστε σίγουροι ότι η λίστα με τα κλειδιά κρυπτογράφησης είναι πλήρης; @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Επιλογή ενός ιδιωτικού κλειδιού OpenPGP για κρυπτογράφηση των μηνυμάτων σας # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=πρώτο second=δεύτερο - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Επιλέξτε κλειδί OpenPGP για την κρυπτογράφηση -identityName=Ταυτότητα: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Ενεργοποιήσατε την κρυπτογράφηση, αλλά δεν επιλέξατε κλειδί. Για να αποστέλλονται κρυπτογραφημένα μηνύματα στον παραλήπτη(ες) %S, πρέπει να ορίσετε ένα ή περισσότερα έγκυρα κλειδιά για χρήση από τη λίστα των κλειδιών σας. Θέλετε να απενεργοποιήσετε την κρυπτογράφηση για τον παραλήπτη(ες) %S; -noKeyToUse=(κανένα - χωρίς κρυπτογράφηση) -noEmptyRule=Ο κανόνας δεν μπορεί να είναι κενός! Παρακαλώ ορίστε μία διεύθυνση αλληλογραφίας στο πεδίο του κανόνα. -invalidAddress=Η διεύθυνση(εις) αλληλογραφίας που δώσατε δεν είναι έγκυρη. Δεν πρέπει να χρησιμοποιήσετε τα ονόματα των παραληπτών, αλλά τις διευθύνσεις αλληλογραφίας τους. Π.χ.:\nΜη έγκυρη: Κάποιο Όνομα \nΈγκυρη: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Ποτέ always=Πάντα possible=Πιθανή -deleteRule=Να διαγραφεί ο επιλεγμένος κανόνας; -nextRcpt=(Επόμενος παραλήπτης) -negateRule=Δεν -addKeyToRule=Προσθήκη κλειδιού %S (%S) σε κανόνα παραληπτών - -# Strings used in enigmailSearchKey.js -needOnline=Η λειτουργία που επιλέξατε δεν είναι διαθέσιμη όταν είστε χωρίς σύνδεση. Παρακαλώ συνδεθείτε και ξαναδοκιμάστε. -noKeyserverConn=Αδύνατη η σύνδεση στον εξυπηρετητή κλειδιών %S. -internalError=Παρουσιάστηκε ένα εσωτερικό σφάλμα. Η λήψη ή εισαγωγή των κλειδιών είναι αδύνατη. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Ο ορισμός της εμπιστοσύνης απέτυχε - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Η υπογραφή του κλειδιού απέτυχε -alreadySigned.label=Σημείωση: το κλειδί %S έχει ήδη υπογραφεί με το επιλεγμένο ιδιωτικό κλειδί. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Φόρτωση κλειδιών, παρακαλώ περιμένετε... keyValid.unknown=άγνωστο keyValid.invalid=μη έγκυρο keyValid.disabled=απενεργοποιήθηκε keyValid.revoked=ανακλήθηκε keyValid.expired=έληξε keyValid.noSubkey=χωρίς έγκυρο υποκλειδί - -keyTrust.untrusted=μη έμπιστο +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=οριακά keyTrust.full=έμπιστο keyTrust.ultimate=απόλυτα keyTrust.group=(ομάδα) -keyType.public=δημ -keyType.publicAndSec=δημ/ιδ -keyMan.enableKey=Ενεργοποίηση κλειδιού -keyMan.disableKey=Απενεργοποίηση κλειδιού userAtt.photo=Εικόνα χρήστη (αρχείο JPEG) - -asciiArmorFile=Αρχεία ASCII Armored (*.asc) importKeyFile=Εισαγωγή κλειδιού OpenPGP -gnupgFile=Αρχεία GnuPG -saveRevokeCertAs=Δημιουργία & αποθήκευση πιστοποιητικού ανάκλησης -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Δεν είναι δυνατή η δημιουργία του πιστοποιητικού ανάκλησης. - -addUidOK=Το ID χρήστη προστέθηκε με επιτυχία -addUidFailed=Η προσθήκη του ID χρήστη απέτυχε -noKeySelected=Πρέπει να επιλέξετε ένα τουλάχιστον κλειδί για να εκτελεστεί η επιλεγμένη λειτουργία -exportToFile=Εξαγωγή δημόσιου κλειδιού σε αρχείο -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Θέλετε να περιληφθεί το ιδιωτικό κλειδί στο αποθηκευμένο αρχείο κλειδιού OpenPGP; -saveKeysOK=Τα κλειδιά αποθηκεύτηκαν με επιτυχία -saveKeysFailed=Η αποθήκευση των κλειδιών απέτυχε -importKeysFailed=Η εισαγωγή των κλειδιών απέτυχε -enableKeyFailed=Η ενεργοποίηση/απενεργοποίηση των κλειδιών απέτυχε -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Εξαγωγηθέντα-δημόσια-κλειδιά -defaultPubSecKeyFilename=Εξαγωγηθέντα-δημόσια-και-ιδιωτικά-κλειδιά - -sendKeysOk=Το κλειδί(ά) απεστάλη με επιτυχία -sendKeysFailed=Η αποστολή των κλειδιών απέτυχε -receiveKeysOk=Τα κλειδιά ανανεώθηκαν με επιτυχία -receiveKeysFailed=Η λήψη των κλειδιών απέτυχε -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Θέλετε να εισάγετε κάποια κλειδιά από το πρόχειρο; -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Αδύνατη η αντιγραφή των επιλεγμένων κλειδιών στο πρόχειρο. -copyToClipbrdOK=Τα κλειδιά αντιγράφηκαν στο πρόχειρο - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=WARNING: Πρόκειται να διαγράψετε ιδιωτικά κλειδιά!\nΑν διαγράψετε το ιδιωτικό κλειδί σας, δε θα μπορείτε πια να αποκρυπτογραφήσετε κανένα μήνυμα που κρυπτογραφήθηκε για αυτό το κλειδί.\n\nΘέλετε πραγματικά να διαγράψετε αυτά τα ΖΕΥΓΗ κλειδιών (τα ιδιωτικά και τα δημόσια); -deletePubKey=Θέλετε να διαγράψετε το δημόσιο κλειδί\n'%S'; -deleteSelectedPubKey=Θέλετε να διαγράψετε τα δημόσια κλειδιά; -deleteKeyFailed=Το κλειδί δεν μπόρεσε να διαγραφεί. revokeKeyQuestion=Πρόκειται να ανακαλέσετε το κλειδί '% S'.\n\nΔεν θα μπορείτε πλέον να υπογράφετε με αυτό το κλειδί και μετά τη διανομή, οι άλλοι δεν θα μπορούν πλέον να κρυπτογραφήσουν μηνύματα με αυτό το κλειδί. Μπορείτε ακόμα να χρησιμοποιήσετε το κλειδί για να αποκρυπτογραφήσετε παλιά μηνύματα.\n\nΘέλετε να συνεχίσετε? -revokeKeyOk=Το κλειδί ανακλήθηκε. Αν το κλειδί σας υπάρχει σε κάποιο εξυπηρετητή κλειδιών, θα πρέπει να το αποστείλετε και πάλι, ώστε να γίνει γνωστή η ανάκληση. -revokeKeyFailed=Το κλειδί δεν μπόρεσε να ανακληθεί. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Δεν επιλέξατε κανένα κλειδί. Θέλετε να ανανεωθούν ΟΛΑ τα κλειδιά; -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Προειδοποίηση: ανάλογα με τον αριθμό των κλειδιών και την ταχύτητα σύνδεσης, η ανανέωση όλων των κλειδιών μπορεί να είμαι μια πολύ χρονοβόρα διαδικασία!\n\nΣυνέχεια; -downloadContactsKeys.warn=Προειδοποίηση: ανάλογα με τον αριθμώ των επαφών και την ταχύτητα του δικτύου, η λήψη όλων των κλειδιών μπορεί να είναι χρονοβόρα! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=Ε&ξαγωγή ιδιωτικών κλειδιών -keyMan.button.exportPubKey=Εξαγωγή μονάχα &Public κλειδιού keyMan.button.import=Ε&ισαγωγή -keyMan.button.refreshAll=&Ανανέωση όλων των κλειδιών keyMan.button.revokeKey=Ανάκ&ληση κλειδιού - -keylist.noOtherUids=Δεν υπάρχουν άλλες ταυτότητες -keylist.hasOtherUids=Γνωστός και ως -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Επιλέξτε αρχείο εικόνας -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Το επιλεγμένο αρχείο δεν είναι σε μορφή JPEG. Παρακαλώ επιλέξτε ένα άλλο αρχείο. -keyMan.addphoto.failed=Δεν ήταν δυνατό να προστεθεί η εικόνα. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Η αλλαγή του κύριου ID χρήστη απέτυχε -changePrimUidOK=Το κύριο ID χρήστη άλλαξε με επιτυχία -revokeUidFailed=Η ανάκληση του ID χρήστη %S απέτυχε -revokeUidOK=Το ID χρήστη %S ανακλήθηκε με επιτυχία. Αν το κλειδί σας υπάρχει σε κάποιο εξυπηρετητή κλειδιών, θα πρέπει να το αποστείλετε και πάλι, ώστε να γίνει γνωστή η ανάκληση. -revokeUidQuestion=Θέλετε πραγματικά να ανακαλέσετε το ID χρήστη %S; - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Δημιουργήθηκε -importInfoFpr=Αποτύπωμα -importInfoDetails=(Λεπτομέρειες) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=δημόσιο κλειδί -keyTypePrimary=πρωτεύον κλειδί -keyTypeSubkey=υποκλειδί -keyTypePair=ζεύγος κλειδιών -keyExpiryNever=ποτέ keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Κρυπτογράφηση -keyUsageSign=Υπογραφή -keyUsageCertify=Πιστοποίηση -keyUsageAuthentication=Ταυτοποίηση -keyDoesNotExpire=Το κλειδί δε λήγει ποτέ - -# Strings in enigmailGenCardKey.xul -keygen.started=Παρακαλώ περιμένετε να ολοκληρωθεί ή δημιουργία του κλειδιού.... -keygen.completed=Το κλειδί δημιουργήθηκε. Το νέο ID κλειδιού είναι: 0x%S -keygen.keyBackup=Το αντίγραφο ασφαλείας του κλειδιού αποθηκεύτηκε ως %S -keygen.passRequired=Παρακαλώ δώστε μια φράση κωδικού αν θέλετε να αποθηκευτεί ένα αντίγραφο ασφαλείας του κλειδιού σας εκτός της SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Η αλλαγή του PIN απέτυχε - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Ανανέωση κλειδιών, παρακαλώ περιμένετε... -keyserverProgress.uploading=Αποστολή κλειδιών, παρακαλώ περιμένετε... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Ανανέωση κλειδιών -keyserverTitle.uploading=Αποστολή κλειδιού -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Το αρχείο που επιλέξατε δεν είναι εκτελέσιμο του GnuPG. Παρακαλώ επιλέξτε διαφορετικό αρχείο. -setupWizard.installFailed=Η εγκατάσταση δεν ήταν επιτυχής. Παρακαλώ ξαναπροσπαθήστε ή εγκαταστήστε το GnuPG χειροκίνητα και εντοπίστε το από το Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Προέκυψε πρόβλημα στην λήψη του GnuPG. Παρακαλώ ελέγξτε τη καταγραφή κονσόλας για περισσότερες πληροφορίες. -installGnuPG.installFailed=Προέκυψε πρόβλημα στην εγκατάσταση του GnuPG. Παρακαλώ ελέγξτε τη καταγραφή κονσόλας για περισσότερες πληροφορίες. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Πρέπει να συμπληρώσετε το όνομα και τη διεύθυνση email -addUidDlg.nameMinLengthError=Το όνομα πρέπει να έχει τουλάχιστον 5 χαρακτήρες -addUidDlg.invalidEmailError=Πρέπει να εισάγετε μια έγκυρη διεύθυνση email - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Το πιστοποιητικό ασφαλείας της υπηρεσίας web είναι άκυρο. errorType.SecurityProtocol=Το πρωτόκολλο ασφάλειας που χρησιμοποιείται από την υπηρεσία web είναι άγνωστο. errorType.Network=Προέκυψε πρόβλημα δικτύου. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -filter.decryptCopy.label=Δημιουργία αποκρυπτογραφημένου αντιγράφου (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Φωτογραφία # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -specifyExportFile=Προσδιορίστε όνομα αρχείου για εξαγωγή -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Προσθέστε τις απαραίτητες πληροφορίες. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Αυτό το μήνυμα δεν μπορεί να αποκρυπτογραφηθεί επειδή το κλειδί δεν είναι διαθέσιμο. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -pepPrivacyStatus.RatingUndefinedExplanation=Αυτό το μήνυμα δεν περιέχει αρκετές πληροφορίες για να προσδιοριστεί εάν είναι ασφαλές. -pepPrivacyStatus.RatingUnderAttackExplanation=Αυτό το μήνυμα δεν είναι ασφαλές και έχει παραποιηθεί. -pepPrivacyStatus.RatingUnencryptedExplanation=Αυτό το μήνυμα δεν είναι ασφαλές. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -pepPrivacyStatus.RatingUnreliableText=Αναξιόπιστη Ασφάλεια - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Εξερχόμενο μήνυμα -handshakeDlg.label.incomingMessage=Εισερχόμενο μήνυμα -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Σχετικά με το Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/el/help/compose.html enigmail-2.2.4/lang/el/help/compose.html --- enigmail-2.1.6+ds1/lang/el/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - -Βοήθεια του Enigmail: Σύνταξη μηνυμάτων - - - -

Βοήθεια του Enigmail

- -

Χρήση του Enigmail στη σύνταξη μηνυμάτων

- -
    -
  • Μενού του Enigmail στο παράθυρο Σύνταξης μηνύματος -
      -
    • Υπογραφή μηνύματος: Ενεργοποίηση/Απενεργοποίηση της αποστολής υπογεγραμμένων μηνυμάτων. Ο χρήστης θα ειδοποιηθεί αν η υπογραφή αποτύχει. -
    • -
    • Κρυπτογράφηση μηνύματος: Ενεργοποίηση/Απενεργοποίηση της κρυπτογράφησης για όλους τους παραλήπτες πριν την αποστολή. Ο χρήστης θα ειδοποιηθεί αν η κρυπτογράφηση αποτύχει. -

      Αν έχει ενεργοποιηθεί η επιλογή Εμφάνιση επιλογών όταν είναι απαραίτητο στην καρτέλα Προτιμήσεις - -> Επιλογή κλειδιού, και υπάρχουν διευθύνσεις στη λίστα παραληπτών για τις οποίες δεν υπάρχει δημόσιο κλειδί, θα εμφανιστεί η λίστα κλειδιών για να επιλέξετε αυτό που θα χρησιμοποιηθεί.

      -

      Αν έχει ενεργοποιηθεί η επιλογή Να μην εμφανίζεται ποτέ ο διάλογος επιλογής κλειδί OpenPGP στην καρτέλα Προτιμήσεις - -> Επιλογή κλειδιού, και υπάρχουν διευθύνσεις στη λίστα παραληπτών για τις οποίες δεν υπάρχει δημόσιο κλειδί, το μήνυμα θα αποσταλεί χωρίς κρυπτογράφηση.

      -
    • -
    -
  • -
  • Χρήση PGP/MIME για αυτό το μήνυμα: Ενεργοποίηση/Απενεργοποίηση της χρήσης PGP/MIME - για αυτό το μήνυμα. -

    Αν γνωρίζετε ότι οι παραλήπτες του μηνύματός σας μπορούν να διαβάσουν μηνύματα που χρησιμοποιούν PGP/MIME, - καλό είναι να το ενεργοποιήσετε.

    -

    Αυτό το χαρακτηριστικό εξαρτάται από το αν έχετε ενεργοποιήσει μία από τις επιλογές Επιτρέπεται η χρήση PGP/MIME ή Να χρησιμοποιείται πάντα PGP/MIME, στην καρτέλα Προτιμήσεις -> PGP/MIME.

    -
  • -
  • Προκαθορισμένες επιλογές σύνταξης: Υπομενού. -
      -
    • Επιλογές υπογραφής/κρυπτογράφησης...: συντόμευση προς το Ρυθμίσεις λογαριασμού -> - Επιλογές OpenPGP. -
    • -
    • Επιλογές αποστολής...: συντόμευση προς την καρτέλα Προτιμήσεις -> - Βασικές ρυθμίσεις. -
    • -
    • Ρυθμίσεις επιλογής κλειδιού...: συντόμευση προς την καρτέλα Προτιμήσεις -> - Επιλογή κλειδιού. -
    • -
    • Επιλογές PGP/MIME...: συντόμευση προς την καρτέλα Προτιμήσεις -> - PGP/MIME. -
    • -
    -
  • -
  • Αφαίρεση κρυπτογράφησης: Αν παρουσιαστεί κάποιο σφάλμα κατά την αποστολή του μηνύματος, π.χ. ο διακομιστής POP δεν αποδεχτεί την αίτηση, το Enigmail δεν έχει τρόπο να το ανιχνεύσει, και το κρυπτογραφημένο μήνυμα θα εξακολουθήσει να εμφανίζεται στο παράθυρο Σύνταξης. Σε αυτήν την περίπτωση μπορείτε να ανακτήσετε το αρχικό σας κείμενο (χωρίς την υπογραφή/κρυπτογράφηση) με τη χρήση αυτού του μενού.
    - Ως λύση ανάγκης, αυτή η επιλογή μπορεί να χρησιμοποιηθεί για την αποκρυπτογράφηση του κειμένου σε παράθεση, όταν απαντάτε σε κρυπτογραφημένα μηνύματα. Το Enigmail θα πρέπει να αποκρυπτογραφήσει αυτόματα το αρχικό μήνυμα, αλλά αν για κάποιο λόγο αυτό δε συμβεί, μπορείτε να το κάνετε εσείς με τη χρήση αυτού του μενού. -
  • -
  • Επισύναψη δημόσιου κλειδιού: εισάγει το μπλοκ του δημόσιου κλειδιού σε μορφή ASCII-armored στην τρέχουσα θέση του δρομέα στο παράθυρο Σύνταξης. Θα σας ζητηθούν οι διευθύνσεις αλληλογραφίας του κλειδιού/ών που θα εισαχθεί. Κλειδιά που εισήχθησαν με αυτόν τον τρόπο θα αναγνωριστούν αυτόματα από το Enigmail του παραλήπτη. Μετά την εισαγωγή, μπορείτε να υπογράψετε/κρυπτογραφήσετε το μήνυμα ανάλογα με τις ανάγκες σας. Επίσης, δε θα πρέπει να εισάγετε πολλαπλά μπλοκ κλειδιών σε ένα μήνυμα· απλώς καθορίστε πολλαπλές διευθύνσεις αλληλογραφίας, χωρισμένες με κόμμα, όταν σας ζητηθεί. -
  • -
  • Εκκαθάριση αποθηκευμένης φράσης πρόσβασης: Χρήσιμο αν έχετε πολλαπλές φράσης πρόσβασης. -
  • -
  • Βοήθεια: Εμφανίζει τη Βοήθεια από το δικτυακό τόπο (αυτή η σελίδα). -
  • -
-
-

-Περισσότερη βοήθεια είναι διαθέσιμη στο δικτυακό τόπο του -Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/el/help/editRcptRule.html enigmail-2.2.4/lang/el/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/el/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - -Βοήθεια του Enigmail: Επεξεργασία κανόνων OpenPGP - - - -

Βοήθεια του Enigmail

- -

Χρήση του Επεξεργαστή κανόνων του Enigmail: Επεξεργασία κανόνων OpenPGP

-

Στον Επεξεργαστή κανόνων, μπορείτε να καθορίσετε τις προκαθορισμένες επιλογές για κάθε παραλήπτη για την ενεργοποίηση της κρυπτογράφησης, υπογραφής και χρήση PGP/MIME, και να επιλέξετε τα κλειδιά OpenPGP που θα χρησιμοποιηθούν. Σε αυτόν το διάλογο μπορείτε να καθορίσετε τους κανόνες για ένα συγκεκριμένο παραλήπτη, ή για μια ομάδα παραληπτών με παρόμοιες ιδιότητες. -

-
    -
  • Ορισμός κανόνων OpenPGP για: Περιέχει τις διευθύνσεις αλληλογραφίας των παραληπτών (χωρίς ονόματα, δηλ. απλώς τη διεύθυνση, όπως η somebody@email.domain). Μπορείτε να εισάγετε παραπάνω από μία διεύθυνση, χωρίζοντάς τες με κενά. Οι διευθύνσεις μπορούν να περιέχουν μόνο τον τομέα ώστε ο κανόνας να εφαρμόζεται σε όλες τις διευθύνσεις από αυτόν τον τομέα. Παράδειγμα: εισάγοντας το @email.domain, ο κανόνας να εφαρμοστεί στα body@email.domain, - somebody@email.domain, anybody@email.domain, κλπ. -
  • -
  • Εφαρμογή κανόνα αν ο παραλήπτης ...: - Αυτό καθορίζει τον τρόπο ταιριάσματος της διεύθυνσης αλληλογραφίας. - Αν έχουν εισαχθεί πολλαπλές διευθύνσεις, η ρύθμιση θα εφαρμοστεί σε όλες. - Τα παρακάτω παράδειγμα βασίζονται στο ότι το body@email.domain - έχει εισαχθεί στο παραπάνω πεδίο Ορισμός κανόνων OpenPGP για. -
      -
    • είναι ακριβώς: με αυτήν την επιλογή, ο κανόνας θα εφαρμοστεί μόνο σε μηνύματα προς το body@email.domain (ακριβές ταίριασμα, χωρίς διάκριση πεζών/κεφαλαίων). -
    • -
    • περιέχει: με αυτήν την επιλογή, ο κανόνας θα εφαρμοστεί σε οποιαδήποτε διεύθυνση περιέχει τη συμβολοσειρά, - δηλ. anybody@email.domain ή body@email.domain.net -
    • -
    • αρχίζει με: με αυτήν την επιλογή, ο κανόνας θα εφαρμοστεί σε οποιαδήποτε διεύθυνση αρχίζει με τη συμβολοσειρά, δηλ. body@email.domain.net, body@email.domain-name.com κλπ. -
    • -
    • τελειώνει με : με αυτήν την επιλογή, ο κανόνας θα εφαρμοστεί σε οποιαδήποτε διεύθυνση τελειώνει με τη συμβολοσειρά, δηλ. anybody@email.domain, somebody@email.domain κλπ. -
    • -
    - -
  • -
  • Συνέχιση με τον επόμενο κανόνα για τη διεύθυνση
    - Ενεργοποιώντας αυτήν την επιλογή μπορείτε να ορίσετε έναν κανόνα χωρίς να χρειαστεί να εισάγετε - ένα ID κλειδιού στο πεδίο Χρήση των ακόλουθων κλειδιών OpenPGP:, ώστε η διεύθυνση να χρησιμοποιηθεί για τον έλεγχο του κλειδιού την ώρα της αποστολής. Επίσης, θα εφαρμοστούν οι επόμενοι κανόνες για τη διεύθυνση. -
  • -
  • Να μη γίνει έλεγχος άλλων κανόνων για τη διεύθυνση
    - Ενεργοποιώντας αυτήν την επιλογή μπορείτε να σταματήσετε τον έλεγχο της συγκεκριμένης διεύθυνσης, δηλ. ο έλεγχος κανόνων συνεχίζεται για την επόμενη διεύθυνσή -
  • -
  • Χρήση των ακόλουθων κλειδιών OpenPGP:
    - Χρησιμοποιήστε το κουμπί Επιλογή κλειδιού(ών)... για να επιλέξετε τα κλειδιά του παραλήπτη που θα χρησιμοποιηθούν για την κρυπτογράφηση. Όπως και στην παραπάνω ενέργεια, δε θα ελεγχθούν οι επόμενοι κανόνες για τη διεύθυνση. -
  • -
  • Εξ ορισμού για υπογραφή: ενεργοποίηση ή απενεργοποίηση της υπογραφής του μηνύματος. Αυτό είτε χρησιμοποιεί ή παρακάμπτει την επιλογή που κάνατε στο παράθυρο Σύνταξης του μηνύματος. Διαθέσιμες τιμές είναι οι: -
      -
    • Ποτέ: απενεργοποιεί την υπογραφή, ακόμα και αν έχει ενεργοποιηθεί στο παράθυρο Σύνταξης του μηνύματος
      -
    • -
    • Ναι, αν επιλεγεί στη σύνταξη μηνύματος: θα χρησιμοποιηθεί η επιλογή που έγινε στο παράθυρο Σύνταξης του μηνύματος -
    • -
    • Πάντα: ενεργοποιεί την υπογραφή, ακόμα και αν δεν έχει ενεργοποιηθεί στο παράθυρο Σύνταξης του μηνύματος -
    • -
    -
  • -
-
Αυτές οι επιλογές εφαρμόζονται σε όσους κανόνες ταιριάζουν. Αν κάποιος κανόνας απενεργοποιεί την υπογραφή, το μήνυμα δε θα υπογραφεί, ανεξάρτητα από άλλους κανόνες που χρησιμοποιούν το Πάντα.
-
-
    -
  • Κρυπτογράφηση: ενεργοποιεί ή απενεργοποιεί την κρυπτογράφηση του μηνύματος. Οι επιτρεπόμενες τιμές και το νόημά τους είναι ίδιες με αυτές της υπογραφής.
  • -
  • PGP/MIME: ενεργοποιεί ή απενεργοποιεί τη χρήση της κωδικοποίησης PGP/MIME (RFC 3156) για το μήνυμα. - Αν απενεργοποιηθεί, τα μηνύματα θα κωδικοποιούνται με "εμβόλιμο PGP". Οι επιτρεπόμενες τιμές και το νόημά τους είναι ίδιες με αυτές της υπογραφής. -
-

Οι κανόνες εφαρμόζονται με τη σειρά που βρίσκονται στη λίστα του Επεξεργαστή κανόνων OpenPGP. Κάθε φορά που ένας κανόνας ταιριάζει με έναν παραλήπτη και περιέχει ένα ID κλειδιού OpenPGP, εκτός του ότι θα χρησιμοποιηθεί το καθορισμένο ID κλειδιού, ο παραλήπτης δε θα θεωρείται διαθέσιμος για τους υπόλοιπους κανόνες. -

-
-

Περισσότερη βοήθεια είναι διαθέσιμη στο δικτυακό τόπο του -Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/el/help/initError.html enigmail-2.2.4/lang/el/help/initError.html --- enigmail-2.1.6+ds1/lang/el/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/el/help/messenger.html enigmail-2.2.4/lang/el/help/messenger.html --- enigmail-2.1.6+ds1/lang/el/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Βοήθεια του Enigmail - - - -

Βοήθεια του Enigmail

-

Ανάγνωση μηνυμάτων με το Enigmail

-
    -
  • Το κουμπί Αποκρυπτογράφησης στο κύριο παράθυρο
    - Αυτό το κουμπί εξυπηρετεί πολλούς σκοπούς: αποκρυπτογράφηση, επαλήθευση ή εισαγωγή δημόσιων κλειδιών. Κανονικά η αποκρυπτογράφηση/επαλήθευση γίνεται αυτόματα, παρότι αυτό μπορεί να αλλαχτεί. Αν όμως παρουσιαστεί πρόβλημα, θα εμφανιστεί ένα περιληπτικό μήνυμα στη γραμμή κατάστασης του Enigmail. Αν κάνετε κλικ στο κουμπί Αποκρυπτογράφησης, θα μπορέσετε να δείτε ένα πιο λεπτομερές μήνυμα καθώς και την έξοδο της εντολής GnuPG.
  • -
  • Τα εικονίδια Πένας και Κλειδιού στην Κεφαλίδα του μηνύματος
    - Τα εικονίδια Πένας και Κλειδιού στην Κεφαλίδα του μηνύματος δηλώνουν αν το μήνυμα που διαβάζετε είναι υπογεγραμμένο και/ή κρυπτογραφημένο και αν η υπογραφή είναι έγκυρη, το μήνυμα δεν αλλάχτηκε μετά την υπογραφή του. Αν το μήνυμα έχει αλλαχτεί, το εικονίδιο Πένας θα αντικατασταθεί από το εικονιδίου Σπασμένου κλειδιού το οποίο δηλώνει ότι η υπογραφή δεν είναι έγκυρη. Κάνοντας δεξί κλικ σε ένα από τα δύο εικονίδια θα εμφανιστεί ένα μενού με τις ακόλουθες επιλογές: -
      -
    • Πληροφορίες ασφαλείας OpenPGP: σας εμφανίζει την κατάσταση εξόδου του GnuPG για το μήνυμα.
    • -
    • Αντιγραφή πληροφοριών ασφαλείας OpenPGP: αντιγράφει την κατάσταση εξόδου του GnuPG στο πρόχειρο· για να την επικολλήσετε σε κάποιο μήνυμα κλπ.
    • -
    • Εμφάνιση ID φωτογραφίας OpenPGP: σας εμφανίζει το ID φωτογραφίας του ατόμου που σας έστειλε το μήνυμα, αν βέβαια αυτή υπάρχει στο Δημόσιο Κλειδί του. (Αυτή η επιλογή είναι διαθέσιμο μόνο αν το ID φωτογραφίας OpenPGP υπάρχει στο κλειδί.)
    • -
    • Πληροφορίες ασφαλείας S/MIME: σας εμφανίζει τις πληροφορίες ασφαλείας S/MIME για το μήνυμα.
    • -
    -

    Αν δεν έχετε ενεργοποιημένη την επιλογή keyserver-options auto-key-retrieve στο αρχείο gpg.conf σας, και διαβάζετε ένα μήνυμα που είναι υπογεγραμμένο ή κρυπτογραφημένο, στην κεφαλίδα του μηνύματος θα εμφανιστεί το εικονίδιο Πένας με ένα Ερωτηματικό πάνω του, ενώ το μήνυμα στη γραμμή κατάστασης του Enigmail θα λέει Τμήμα του μηνύματος υπογεγραμμένο· κάντε κλικ στο εικονίδιο Πένας για πληροφορίες και στην περιοχή κειμένου του μηνύματος θα εμφανίζονται όλα τα OpenPGP μπλοκ και το μπλοκ της υπογραφής.

    -

    Αυτό μπορεί επίσης να συμβεί όταν το κλειδί δεν υπάρχει στον προκαθορισμένο εξυπηρετητή κλειδιών, ακόμα κι αν έχετε ενεργοποιημένη την επιλογήkeyserver-options auto-key-retrieve στο gpg.conf σας.

    -

    Κάνοντας κλικ στο εικονίδιο Πένας και Ερωτηματικού θα εμφανιστεί ένα παράθυρο που θα σας πληροφορεί ότι το κλειδί δεν είναι διαθέσιμο στη λίστα κλειδιών σας. Πατώντας OK θα εμφανιστεί ένα άλλο παράθυρο με μία λίστα εξυπηρετητών κλειδιών για να επιλέξετε από ποιον θα γίνει λήψη του δημόσιου κλειδιού του αποστολέα.

    -

    Για να ορίσετε τη λίστα των εξυπηρετητών κλειδιών που θέλετε να χρησιμοποιείτε, πηγαίνετε στην καρτέλα Enigmail -> Προτιμήσεις -> Βασικές και εισάγετε τις διευθύνσεις στο πεδίο Εξυπηρετητής(ές) κλειδιών:, χωρισμένες με κόμματα. Ο πρώτος εξυπηρετητής στη λίστα θα χρησιμοποιηθεί ως ο προκαθορισμένος.

    -
  • -
  • Άνοιγμα κρυπτογραφημένων επισυνάψεων / εισαγωγή ενσωματωμένων κλειδιών OpenPGP
    - Επισυνάψεις με όνομα *.pgp, *.asc και *.gpg αναγνωρίζονται ως επισυνάψεις που το Enigmail θα τις διαχειριστεί με ειδικό τρόπο. Κάνοντας δεξί κλικ σε μία τέτοια επισύναψη θα ενεργοποιήσει δύο ειδικές καταχωρήσεις στο μενού που θα εμφανιστεί: Αποκρυπτογράφηση και Άνοιγμα και Αποκρυπτογράφηση και Αποθήκευση. Χρησιμοποιήστε τις αν θέλετε το Enigmail αποκρυπτογραφήσει την επισυνάψεις πριν το άνοιγμα ή την αποθήκευσή της. Αν η επισύναψη αναγνωριστεί ως αρχείο κλειδιού OpenPGP, θα ερωτηθείτε αν θέλετε να γίνει εισαγωγή του κλειδιού στη λίστα κλειδιών σας.
  • -
-
-

Περισσότερη βοήθεια είναι διαθέσιμη στο δικτυακό τόπο του Enigmail
-Αν έχετε ερωτήσεις ή σχόλια σχετικά με το enigmail, παρακαλώ στείλτε ένα μήνυμα στη λίστα του Enigmail OpenPGP

-

Το Enigmail OpenPGP είναι λογισμικό ανοικτού κώδικα και κυκλοφορεί υπό την Mozilla Public License 2.0

- - diff -Nru enigmail-2.1.6+ds1/lang/el/help/rulesEditor.html enigmail-2.2.4/lang/el/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/el/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - -Βοήθεια του Enigmail: Επεξεργασία κανόνων - - - -

Βοήθεια του Enigmail

- -

Χρήση του Επεξεργαστή κανόνων του Enigmail

-

Στον Επεξεργαστή κανόνων, μπορείτε να καθορίσετε τις προκαθορισμένες επιλογές για κάθε παραλήπτη για την ενεργοποίηση της κρυπτογράφησης, υπογραφής και χρήση PGP/MIME, και να επιλέξετε τα κλειδιά OpenPGP που θα χρησιμοποιηθούν. Κάθε κανόνας αποτελείται από πέντε πεδία: -

-
    -
  • Email: οι διευθύνσεις αλληλογραφίας που μπορούν να χρησιμοποιηθούν στα πεδία To:, Cc: και Bcc:. Ο έλεγχός τους γίνεται με χρήση υποσυμβολοσειρών (Περισσότερες λεπτομέρειες υπάρχουν στο διάλογο του Επεξεργαστή κανόνων) -
  • -
  • Κλειδί(ιά) OpenPGP: η λίστα ID κλειδιών OpenPGP -για χρήση με τον αποστολέα
  • -
  • Υπογραφή: ενεργοποίηση ή απενεργοποίηση της υπογραφής του μηνύματος. Αυτό είτε χρησιμοποιεί ή παρακάμπτει την επιλογή που κάνατε στο παράθυρο Σύνταξης του μηνύματος. Διαθέσιμες τιμές είναι οι: -
      -
    • Ποτέ: απενεργοποιεί την υπογραφή, ακόμα και αν έχει ενεργοποιηθεί στο παράθυρο Σύνταξης του μηνύματος
      -
    • -
    • Πιθανή: θα χρησιμοποιηθεί η επιλογή που έγινε στο παράθυρο Σύνταξης του μηνύματος
    • -
    • Πάντα: ενεργοποιεί την υπογραφή, ακόμα και αν δεν έχει ενεργοποιηθεί στο παράθυρο Σύνταξης του μηνύματος -
    • -
    -
  • -
-
Αυτές οι επιλογές εφαρμόζονται σε όσους κανόνες ταιριάζουν. Αν κάποιος κανόνας απενεργοποιεί την υπογραφή, το μήνυμα δε θα υπογραφεί, ανεξάρτητα από άλλους κανόνες που χρησιμοποιούν το Πάντα.
-
-
    -
  • Κρυπτογράφηση: ενεργοποιεί ή απενεργοποιεί την κρυπτογράφηση του μηνύματος. Οι επιτρεπόμενες τιμές και το νόημά τους είναι ίδιες με αυτές της υπογραφής.
  • -
  • PGP/MIME: ενεργοποιεί ή απενεργοποιεί τη χρήση της κωδικοποίησης PGP/MIME (RFC 3156) για το μήνυμα. - Αν απενεργοποιηθεί, τα μηνύματα θα κωδικοποιούνται με "εμβόλιμο PGP". Οι επιτρεπόμενες τιμές και το νόημά τους είναι ίδιες με αυτές της υπογραφής. -
  • -
-

Οι κανόνες εφαρμόζονται με τη σειρά που βρίσκονται στη λίστα. Κάθε φορά που ένας κανόνας ταιριάζει με έναν παραλήπτη και περιέχει ένα ID κλειδιού OpenPGP, εκτός του ότι θα χρησιμοποιηθεί το καθορισμένο ID κλειδιού, ο παραλήπτης δε θα θεωρείται διαθέσιμος για τους υπόλοιπους κανόνες.

-

Σημείωση: Ο Επεξεργαστής κανόνων δεν είναι ακόμα ολοκληρωμένος. Είναι δυνατή η συγγραφή πιο προχωρημένων κανόνων με απευθείας επεξεργασία του αρχείου κανόνων (δε θα πρέπει να γίνει πλέον επεξεργασία αυτών των κανόνων με τον Επεξεργαστή). Περισσότερες πληροφορίες για την απευθείας επεξεργασία του αρχείου κανόνων υπάρχουν στο δικτυακό τόπο του Enigmail

-
-

-Περισσότερη βοήθεια είναι διαθέσιμη στο δικτυακό τόπο του -Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/el/help/sendingPrefs.html enigmail-2.2.4/lang/el/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/el/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/el/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/compose.html enigmail-2.2.4/lang/es-AR/help/compose.html --- enigmail-2.1.6+ds1/lang/es-AR/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -Ayuda de Enigmail: Redacción de mensajes - - - -

Ayuda de Enigmail

-

Usando Enigmail para redactar mensajes

-
    -
  • Menú Enigmail en la ventana de redacción de mensajes -
      -
    • Firmar mensaje: Activa/desactiva el envío de correo firmado. El usuario recibe una notificación si hay un fallo en la firma.
    • -
    • Cifrar mensaje: Activa/desactiva el cifrado para todos los destinatarios antes de enviarlo. El usuario recibe una notificación si hay un fallo al cifrar. -

      Si está activada la opción Mostrar la selección si es necesario en Preferencias -> pestaña Selección de clave, se abrirá una ventana con una lista de claves si hay direcciones en la lista de destinatarios del mensaje de las que no se tiene la clave pública.

      -

      Si está activada la opción Nunca mostrar el diálogo de selección de clave OpenPGP en Preferencias -> pestaña Selección de clave, y hay direcciones en la lista de destinatarios del mensaje de las que no se tiene la clave pública, el mensaje se enviará sin cifrar.

      -
  • -
  • Usar PGP/MIME en este mensaje: Activa/desactiva el uso de PGP/MIME en este mensaje. -

    Si sabe con certeza que los destinatarios pueden leer el correo usando el formato PGP/MIME, entonces se debe usar.

    -

    Esta característica depende de la configuración en Preferencias -> pestaña PGP/MIME si está establecida en Usar PGP/MIME si es posible o Siempre usar PGP/MIME.

    -
      -
    • Opciones predeterminadas de redacción: Submenú
    • -
    • Opciones de firmado/cifrado...: acceder a Configuración de cuentas... -> Seguridad OpenPGP.
    • -
    • Opciones de envío...: acceder a Preferencias -> pestaña Enviar.
    • -
    • Opciones de selección de clave...: acceder a Preferencias -> pestaña Selección de clave.
    • -
    • Opciones PGP/MIME...: acceder a Preferencias -> pestaña PGP/MIME.
    • -
  • -
  • Deshacer cifrado: Si hay algún problema al enviar el correo, como un fallo en el servidor POP que no acepta la solicitud, Enigmail no lo sabrá, y el mensaje cifrado seguirá mostrándose en la ventana de redacción. Con esta opción de menú, se deshacerá el cifrado/firma, volviendo a la ventana de redacción con su texto original.
    -Como solución temporal, también se puede usar para descifrar el texto citado al contestar a mensajes cifrados. Enigmail debe descifrar automáticamente el mensaje citado, pero si se produce un fallo por cualquier motivo, se puede usar esta opción del menú para forzarlo.
  • -
  • Adjuntar clave pública...: Adjunta el bloque de la clave pública al mensaje, en un archivo con armadura ASCII. Se le preguntará el ID de usuario de las claves que se van a adjuntar.
  • -
  • Borrar frase contraseña guardada: Elimina de la caché las frases contraseñas introducidas manualmente. Esto es útil si se tienen varias frases contraseñas.
  • -
  • Ayuda: Muestra información de ayuda (esta página).
  • -

-

Más ayuda disponible en la página Web de ayuda de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/editRcptRule.html enigmail-2.2.4/lang/es-AR/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/es-AR/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - - -Ayuda de Enigmail: Editar regla OpenPGP - - - -

Ayuda de Enigmail

-

Usando el editor de reglas de Enigmail: Editar regla OpenPGP

-

En el editor de reglas, se pueden especificar opciones predeterminadas para cada destinatario, activando el cifrado, la firma y PGP/MIME; y para definir qué clave(s) OpenPGP va a usar. En este diálogo, se pueden especificar las reglas para un único destinatario, y para un grupo de destinatarios con atributos muy similares.

-
    -
  • Definir reglas OpenPGP para: Contiene las direcciones de correo electrónico de los destinatarios (sin nombre, por ejemplo una dirección como alguien@correo.org). Se pueden especificar varias direcciones de correo, separadas por espacios. La dirección especificada aquí puede consistir de sólo la sección del dominio, para que se aplique al correo de cualquier dirección de ese dominio, como @correo.org se aplicará a alguien@correo.org, cualquiera@correo.org, otro@correo.org, etc.
  • -
  • Aplicar regla si el destinatario: Esto modifica si coinciden las direcciones de correo electrónico. Si se introducen varias direcciones, la opción se aplicará a todas. Los ejemplos de abajo están basados en que se ha introducido alguien@correo.org en el campo Reglas openPGP de arriba.
      -
    • Es exactamente: Con esta opción, la regla sólo se activará en los correos a alguien@correo.org (exacto, no se tienen en cuenta las mayúsculas).
    • -
    • Contiene: Con esta opción, cualquier dirección de correo que contenga la cadena, cumplirá la regla, como unnombre@correo.dominio o nombre@correo.dominio.org
    • -
    • Comienza con: Con esta opción, cualquier dirección de correo que empiece por la cadena, cumplirá la regla, como alguien@correo.dominio.net, alguien@correo.nombre-dominio.com.
    • -
    • Acaba en: Con esta opción, cualquier dirección de correo que acabe en la cadena, cumplirá la regla, como otronombre@correo.org, alguien@correo.org
    • -
  • -
  • Continuar con la regla siguiente para la dirección coincidente
    -Activar esta función permitirá definir una regla pero no tener que especificar un ID de clave en el campo Usar las siguientes claves OpenPGP: para que se use la dirección de correo electrónico para comprobar una clave en el momento del envío. También se procesarán las reglas posteriores para la misma dirección.
  • -
  • No comprobar las reglas siguientes para la dirección coincidente
    -Activar esta función detiene el procesamiento de cualquier otra regla para las direcciones que cumplan la regla. Es decir, las reglas se reanudan procesando el próximo destinatario.
  • -
  • Usar las siguientes claves OpenPGP:
    -Use el botón Seleccionar clave(s)... para seleccionar las claves del destinatario que se usen para el cifrado. Al igual que la acción anterior, no se continúan procesando las reglas para las direcciones que cumplan la regla.
  • -
  • Predeterminada para firmar: Activa o desactiva la firma del mensaje. Esta opción usa o ignora lo especificado en la ventana de redacción de mensajes. Los valores son: -
      -
    • Nunca: Desactiva la firma, incluso si se activó en la ventana de redacción de mensajes (tiene preferencia sobre los otros valores).
    • -
    • Sí, si está seleccionada en la redacción del mensaje: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
    • -
    • Siempre: Activa la firma, incluso si no estaba activada en la ventana de redacción de mensajes.
    • -
    -
  • -
-
Estas opciones de firma se aplican a todas las reglas que coincidan con el criterio. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de que otras especifiquen Siempre.
-
  • Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma de mensajes.
  • -
  • PGP/MIME: Activa o desactiva el uso de la codificación PGP/MIME (RFC 3156) en el mensaje. Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
  • -
-

Las reglas se procesan en el orden mostrado en la lista de OpenPGP - Editar reglas por destinatario. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario ya no se considera cuando se procesen más reglas.

-

Más ayuda disponible en la página de configuración por destinatario de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/initError.html enigmail-2.2.4/lang/es-AR/help/initError.html --- enigmail-2.1.6+ds1/lang/es-AR/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - -

Ayuda de Enigmail

- -

Cómo Resolver Problemas al Iniciar OpenPGP

- -

Hay varias razones por las que no se tiene éxito al inicializar OpenPGP. Las más comunes son descritas más abajo & - para más información por favor visite la página de Soporte de Enigmail.

- -
-
No se pudo encontrar GnuPG
-
-

- Para que funcione OpenPGP, la herramienta GnuPG debe ser instalada. - Si GnuPG no puede ser encontrado, entonces primero asegúrese de que el ejecutable gpg.exe (en Windows& gpg en otras plataformas) esté instalado en su computador. - Si GnuPG está instalado, y OpenPGP no puede encontrarlo, entonces usted necesitará configurar manualmente la ruta a GnuPG en las Preferencias de OpenPGP (menú OpenPGP > Preferencias)

- -
Enigmime falló al inicilizarse
- -
-

- OpenPGP solamente funciona si es compilado usando el mismo ambiente de compilación en que Thunderbird o SeaMonkey fue compilado. Esto significa que usted sólo puede usar la versión oficial de Enigmail si utiliza las versiones oficiales de Thunderbird o SeaMonkey provistas por mozilla.org.

-

- Si usted utiliza una versión de Thunderbird o SeaMonkey provista por otra fuente (p.ej. el proveedor de su distribución de Linux), o si usted compiló la aplicación por si mismo, ustede debe, o bien usar una versión de Enigmail del mismo proveedor, o compilar Enigmail usted mismo. Para compilar Enigmail, refiérase a la sección de Código Fuente en la página de Enigmail. Por favor no envie reportes de bugs acerca de este problema, no puede ser solucionado.

-
-
- -

Más ayuda está disponible en el Sitio Web de Soporte de Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/messenger.html enigmail-2.2.4/lang/es-AR/help/messenger.html --- enigmail-2.1.6+ds1/lang/es-AR/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -Ayuda de Enigmail: Lectura de mensajes - - - -

Ayuda de Enigmail

-

Usando Enigmail para leer mensajes

    -
  • Botón Descifrar en la ventana principal de correo
    -Este botón se puede usar para varios propósitos: descifrar, verificar o importar claves públicas. Normalmente el descifrado/verificación se realiza automáticamente, aunque hay una opción para desactivar esto. Sin embargo, si esto falla, normalmente aparecerá un breve mensaje de error en la línea de estado de Enigmail. Si se pulsa el botón Descifrar, podrá ver un mensaje de error más detallado, incluyendo la salida del comando GnuPG.
  • -
  • Los iconos Lápiz y Llave mostrados en la cabecera del mensaje
    -Los iconos Lápiz y Llave en la cabecera del mensaje indican si el mensaje que se está leyendo está firmado y/o cifrado y si la firma es buena, es decir; que el mensaje no se ha modificado desde el momento de su firma. Si el mensaje ha sido modificado, el icono del Lápiz cambiará a un Lápiz roto para indicar que la firma no es correcta. Al pulsar con el botón derecho del ratón en los iconos del Lápiz o Llave, se obtendrá un menú con las siguientes opciones: -

      -
    • Información de seguridad OpenPGP: permite ver el estado de salida de GnuPG para el mensaje.
    • -
    • Copiar información de seguridad OpenPGP: copia el estado de salida de GnuPG al portapapeles; para pegarlo en un mensaje de respuesta, etc.
    • -
    • Ver ID fotográfico OpenPGP: permite ver la Foto ID de la persona que envió el mensaje, si tiene una foto incrustada en su clave pública (Esta opción sólo se activará si existe un ID fotográfico en su clave).
    • -
    • Información de seguridad S/MIME: permite ver la información de seguridad S/MIME del mensaje.
    • -
    -

    Si no tiene puesta la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y lee un mensaje que está firmado o cifrado, verá un icono de un Lápiz en el área de visión de las cabeceras con un Signo de interrogación y, la línea de estado de Enigmail en el área de las cabeceras dirá: Parte del mensaje firmado; pulse el icono del lápiz para más detalles y el mensaje en el panel de mensajes mostrará todos los indicadores del bloque del mensaje OpenPGP y el bloque de la firma.

    -

    También se puede ver esto si tiene activada la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y la clave OpenPGP no está disponible en el servidor de claves predeterminado.

    -

    Al pulsar en el icono del Lápiz y Signo de interrogación abrirá una ventana avisando que la clave no está disponible en el anillo de claves. Al pulsar en Aceptar abrirá otra ventana con una lista de servidores de claves en los que puede seleccionar para descargar la clave pública del remitente.

    -

    Para configurar la lista de servidores de claves que desee usar, vaya a la pestaña Enigmail -> Preferencias -> Básicas e introduzca la dirección de los servidores de claves en el recuadro Servidor(es) de claves: separados por una coma. El primer servidor de claves de la lista se usará como predeterminado.

    -
  • -
  • Abrir adjuntos cifrados / importar claves OpenPGP adjuntas
    -Los adjuntos con el nombre *.pgp, *.asc y *.gpg se reconocen como adjuntos que se pueden manejar especialmente con Enigmail. Al pulsar con el botón derecho en un adjunto de este tipo se activan dos elementos especiales en el menú contextual: Descifrar y Abrir y Descifrar y Guardar. Use estos elementos si desea que Enigmail descifre un adjunto antes de abrirlo o guardarlo. Si se reconoce un adjunto como un archivo de clave OpenPGP, se le ofrece la posibilidad de importar las claves a sus anillos.
  • -

-

Más ayuda disponible en la página Web de ayuda de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/rulesEditor.html enigmail-2.2.4/lang/es-AR/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/es-AR/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -Ayuda de Enigmail: Editor de reglas - - - -

Ayuda de Enigmail

-

Usando el editor de reglas de Enigmail

-

En el editor de reglas, se pueden especificar opciones predeterminadas por destinatario para activar el cifrado, firma y PGP/MIME, así como definir qué clave(s) OpenPGP usar. Cada regla consiste de 5 campos y se representa en una sola línea:

-
    -
  • Correo electrónico: Las direcciones de correo en los campos Para:, Cc: y Cco: tienen que coincidir. La coincidencia funciona en subcadenas (Más detalles en el diálogo de Editar regla)
  • -
  • Clave(s) OpenPGP: Una lista de IDs de claves OpenPGP para usar con el destinatario.
  • -
  • Firmar: Activar o desactivar el firmado de mensajes. Esta opción usa o ignora lo que se haya especificado en la ventana de redacción de mensajes. Los valores son: -
      -
    • Nunca: Desactiva la firma, incluso si estaba activada en la ventana de redacción del mensaje (tiene preferencia sobre los otros valores).
    • -
    • Posible: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
    • -
    • Siempre: Activar la firma, incluso si no está activada en la ventana de redacción de mensajes.
    • -
    -
  • -
-
Estas opciones de firma se aplican a todas las reglas que las cumplan. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de otras reglas que especifiquen Siempre.
-
    -
  • Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma.
  • -
  • PGP/MIME: Activa o desactiva el uso de la codificación del mensaje PGP/MIME (RFC 3156). Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
  • -
-

Las reglas se procesan en el orden mostrado en la lista. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario no se tendrá en consideración al procesar más reglas.

-

NOTA: El editor de reglas aún no está completo. Es posible escribir algunas reglas más avanzadas editando directamente el archivo de reglas (en cuyo caso, éstas no se deben volver a editar mediante el editor). Más información para editar el archivo directamente se encuentra disponible en la página Web de Enigmail.

-

Más ayuda disponible en la página Web de ayuda de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-AR/help/sendingPrefs.html enigmail-2.2.4/lang/es-AR/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/es-AR/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-AR/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/es-ES/am-enigprefs.properties enigmail-2.2.4/lang/es-ES/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/es-ES/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Seguridad de OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/es-ES/enigmail.dtd enigmail-2.2.4/lang/es-ES/enigmail.dtd --- enigmail-2.1.6+ds1/lang/es-ES/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' para especificar direcciones de correo electrónico"> - - -' para especificar direcciones de correo electrónico para GnuPG. Deshabilítela si los destinatarios tienen claves de Hushmail antiguas."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Configuración de cuenta > Seguridad OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: La generación de clave puede llegar a tardar varios minutos. No salgas de la aplicación mientras se esté generando la clave. Navegar por Internet o realizar operaciones que hagan uso intensivo del disco reabastecerá la 'provisión de aleatoriedad' y acelerará el proceso. Se te avisará cuando se haya completado la generación de claves."> - @@ -296,498 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' no es válido."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: La generación del par de claves puede tardar varios minutos en completarse. No abandone la aplicación mientras se están generado. Se le avisará cuando la generación de claves se haya completado."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/es-ES/enigmail.properties enigmail-2.2.4/lang/es-ES/enigmail.properties --- enigmail-2.1.6+ds1/lang/es-ES/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Alerta de Enigmail enigConfirm=Confirmación de Enigmail enigInfo=Información de Enigmail -enigError=Error de Enigmail enigPrompt=Aviso de Enigmail - -dlgYes=&Sí dlgNo=&No dlgKeepSetting=Recordar mi respuesta y no volver a preguntarme dlgNoPrompt=No mostrarme de nuevo este cuadro de diálogo -dlg.button.delete=&Borrar dlg.button.cancel=&Cancelar dlg.button.close=&Cerrar dlg.button.continue=Con&tinuar -dlg.button.skip=&Omitir -dlg.button.overwrite=&Sobrescribir -dlg.button.view=&Ver -dlg.button.retry=&Reintentar -dlg.button.ignore=&Ignorar -dlg.button.install=&Instalar dlg.button.ok=&Aceptar - repeatPrefix=\n\nEsta alerta se repetirá %S repeatSuffixSingular=vez más. repeatSuffixPlural=veces más. noRepeat=\n\nEsta alerta no se repetirá hasta que actualice Enigmail. - -pgpNotSupported=Parece que está usando Enigmail junto con PGP 6.x\n\nDesafortunadamente, PGP 6.x tiene varios problemas que impiden que Enigmail funcione correctamente. Por ello, Enigmail ya no soporta PGP 6.x. Por favor, use GnuPG (GPG) en su lugar.\n\nSi necesita ayuda para cambiar a GnuPG, eche un vistazo a la sección Support (soporte) en la página web de Enigmail. -initErr.howToFixIt=Para usar Enigmail es necesario GnuPG. Si no lo ha instalado todavía, la forma más fácil de hacerlo es usando el botón del "Asistente de configuración" de debajo. -initErr.setupWizard.button=Asistente de &configuración passphraseCleared=Se ha eliminado la frase-contraseña. cannotClearPassphrase=Estás usando una herramienta no-estándar (como gnome-keyring) para la gestión de frases-contraseña. Por tanto, no es posible desechar la frase-contraseña desde el interior de Enigmail. -noPhotoAvailable=No hay foto disponible -debugLog.title=Registro de depuración de Enigmail -error.photoPathNotReadable=La ruta de la foto '%S' no es accesible - -generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Esta nueva versión de Enigmail presenta cambios significativos en el manejo de preferencias y opciones. Hemos tratado de transferir la configuración antigua a esta nueva versión. Sin embargo, no podemos cubrir todos los casos de forma automática. Por favor, vuelve a comprobar las nuevas preferencias y opciones resultantes. -enigmailCommon.checkPreferences=Comprobar preferencias ... -preferences.defaultToPgpMime=Hemos cambiado la codificación de mensajes predeterminada en Enigmail de Inline-PGP (a PGP/MIME. Recomendamos que mantenga esta última como predeterminada.\n\nSi todavía desea usar Inline-PGP por defecto, puede establecerlo así en Configuración de cuenta bajo Seguridad OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Estás ejecutando Enigmail versión %S -enigmailPepVersion=Enigmail/p≡p versión %S usingAgent=Estás usando el ejecutable %1$S de %2$S para cifrar y descifrar agentError=ERROR: ¡No se pudo acceder al servicio principal de Enigmail! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Error al acceder al servicio de Enigmail -onlyGPG=¡La generación de clave sólo funciona con GnuPG (no con PGP)! - -keygenComplete=¡Se ha completado la generación de clave! Se usará la identidad <%S> para firmar. -revokeCertRecommended=Recomendamos firmemente crear un certificado de revocación para su clave. Este certificado se puede usar para invalidar su clave, por ejemplo, si su clave privada/secreta se pierde o resulta comprometida. ¿Quiere crear dicho certificado de revocación ahora? -keyMan.button.generateCert=&Generar certificado -genCompleteNoSign=¡La clave ha sido generada! -genGoing=¡Ya se está generando la clave! - -passNoMatch=Las frases-contraseña no coinciden, por favor, inténtelo de nuevo -passCheckBox=Por favor, marque la casilla si no quiere especificar una contraseña para la clave -passUserName=Por favor, indica un nombre de usuario para esta identidad -keygen.missingUserName=No se ha especificado nombre para la cuenta/identidad seleccionada. Por favor, introduzca un valor en el campo 'Su nombre' en la configuración de la cuenta. -keygen.passCharProblem=Está usando caracteres especiales en su frase-contraseña. Por desgracia, esto puede causar problemas en otras aplicaciones. Le recomendamos que escoja una contraseña que únicamente se componga de estos caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Debido a razones técnicas, su frase-contraseña no puede comenzar o terminar con un espacio. -changePassFailed=No se pudo cambiar la contraseña. - -keyConfirm=¿Generar clave pública y privada para '%S'? -keyMan.button.generateKey=&Generar clave -keyAbort=¿Abortar la generación de clave? -keyMan.button.generateKeyAbort=&Abortar la generación de clave -keyMan.button.generateKeyContinue=&Continuar con la generación de clave -expiryTooLong=No puede crear una clave que caduque tras más de 100 años. -expiryTooLongShorter=No se puede crear una clave que caduque tras más de 90 años. -expiryTooShort=Su clave debe ser válida al menos un día. -keyGenFailed=La generación de la llave fracasó. Por favor verifique la consola de Enigmail (Menú Enigmail > Opciones de Depuración) para ver los detalles. -setKeyExpirationDateFailed=No se pudo cambiar la fecha de caducidad - -# Strings in enigmailMessengerOverlay.js -securityInfo=Información de seguridad de Enigmail\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Los adjuntos a este correo no han sido firmados ni cifrados*\r\n\r\n -possiblyPgpMime=Posiblemente es un mensaje cifrado o firmado PGP/MIME; pulse 'Descifrar/Verificar' para comprobarlo - -saveAttachmentHeader=Enigmail: Guardar adjunto descifrado -noTempDir=No se pudo encontrar un directorio temporal en el que escribir\nPor favor, establezca la variable de entorno TEMP -attachmentPgpKey=El adjunto '%S' que está abriendo parece ser un fichero de clave OpenPGP.\n\nPulse 'Importar' para importar las claves que contiene o 'Ver' para ver el contenido del fichero en una ventana del navegador. - -beginPgpPart=********* *PRINCIPIO DE LA PARTE CIFRADA o FIRMADA* ********* -endPgpPart=********** *FIN DE LA PARTE CIFRADA o FIRMADA* ********** -notePartEncrypted=Enigmail: *Porciones de este mensaje NO han sido firmadas ni cifradas* -noteCutMessage=Enigmail: *Se han encontrado múltiples bloques de mensaje -- se abortó el descifrado/verificación* - -decryptOkNoSig=Advertencia:\n\nSe ha descifrado correctamente, pero no se pudo verificar la firma. -msgOvl.button.contAnyway=&Continuar de todos modos -signature.verifiedOK=La firma del adjunto %S ha sido verificada correctamente -signature.verifyFailed=La firma del adjunto %S no se pudo verificar -attachment.noMatchToSignature=No se pudo encontrar un fichero de firma correspondiente al adjunto '%S' -attachment.noMatchFromSignature=No se pudo encontrar un adjunto correspondiente al fichero de firma '%S' -fixBrokenExchangeMsg.failed=No se logró reparar el mensaje. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importar clave -wksNoIdentity=Esta clave no está vinculada con ninguna de sus cuentas de correo electrónico. Por favor, añada una cuenta para al menos una de las siguientes direcciones de correo electrónico:\n\n%S -wksConfirmSuccess=Confirmación de correo enviado. -wksConfirmFailure=No se pudo enviar el correo de confirmación. -autocrypt.importSetupKey.accountPreconfigured=Su cuenta ya está configurada correctamente para Autocrypt.\n\n¿De verdad quiere sobrescribir su configuración con este mensaje de instalación? -autocrypt.importSetupKey.selfCreated=Este mensaje fue creado por su instancia de Enigmail actualmente en ejecución.\n\nPor favor, cambie al cliente de correo al que quiere transferir la configuración, y pulse en el mensaje en ese cliente de correo para importar la configuración. -autocrypt.importSetupKey.invalidMessage=Error - No se pudo leer el mensaje configuración. El mensaje parece estar corrupto. Por favor, intente crear un nuevo mensaje de configuración en su "otro" dispositivo. -autocrypt.importSetupKey.invalidKey=Error - No se pudo importar la clave. O bien la clave no esta soportada por tu versión de GnuPG o está corrupta. -autocrypt.importSetupKey.wrongPasswd=La contraseña introducida es errónea. ¿Quieres volver a intentarlo? -autocrypt.importSetupKey.success=El mensaje de configuración de Autocrypt fue procesado con éxito. Autocrypt ahora está disponible para su cuenta '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Seleccionar claves OpenPGP a insertar keysToUse=Selecciona la(s) clave(s) OpenPGP a usar para %S pubKey=Clave pública para %S\n - -windowLocked=La ventana Redactar está bloqueada; se ha cancelado el envío -sendUnencrypted=No se pudo inicializar Enigmail.\n¿Enviar el mensaje sin cifrar? -composeSpecifyEmail=Por favor, especifica tu dirección de correo principal, que se usará al escoger la clave para firmar los mensajes salientes.\nSi la dejas en blanco se usará la dirección en el campo DE del mensaje para elegir la clave de firmado. -sendingHiddenRcpt=Este mensaje tiene destinatarios BCC (copia oculta). Si se cifra este mensaje es posible ocultar los destinatarios BCC, pero los usuarios de algunos productos (ej. PGP Corp.) no podrán descifrar el mensaje. Por eso, recomendamos no enviar correos con copia oculta para mensajes cifrados. -sendWithHiddenBcc=Ocultar destinatarios BCC -sendWithShownBcc=Cifrar de forma normal -sendingNews=Se canceló la operación de envío cifrado.\n\nEste mensaje no se puede cifrar porque entre los destinatarios hay grupos de noticias. Por favor, vuelva a enviar el mensaje sin cifrado. -sendToNewsWarning=Advertencia: Está a punto de enviar un mensaje cifrado a un grupo de news.\n\nEsto es desaconsejable porque únicamente tiene sentido si todos los miembros del grupo pueden descifrar el mensaje, es decir, si el mensaje ha de ser cifrado con las claves de todos los participantes en el grupo. Por favor, envíe este mensaje sólo si sabe exactamente lo que está haciendo.\n\n¿Continuar? -hasHTML=Advertencia de correo HTML:\nEste mensaje puede contener HTML, lo que podría causar que falle el proceso de firmado/cifrado. Para evitar esto en el futuro, impida el uso de HTML pulsando la tecla MAYÚSCULAS mientras pulsa el botón de Redactar o Responder para enviar correo firmado.\nSi firma el correo de forma predeterminada, debe desmarcar la opción 'Redactar mensajes en formato HTML', en la configuración de cuentas, para deshabilitar permanentemente el correo HTML para esa cuenta de correo -strippingHTML=El mensaje contiene información de formato HTML que se perderá al convertirlo a texto simple para su firmado/cifrado. ¿Deseas continuar? -msgCompose.button.sendAnyway=&Enviar el mensaje de todos modos -attachWarning=Los adjuntos de este mensaje no son locales, por lo que no se pueden cifrar. Para cifrar estos adjuntos, antes debería guardarlos como ficheros locales y adjuntarlos. ¿Desea enviar el mensaje sin cifrar de todos modos? quotedPrintableWarn=Ha habilitado la codificación 'quoted-printable' (de caracteres imprimibles) para enviar mensajes. Esto puede resultar en un descifrado y/o verificación incorrectos de su mensaje.\n¿Desea desactivar ahora el envío de mensajes 'quoted-printable'? -minimalLineWrapping=Ha establecido el ajuste de línea a %S caracteres. Para un cifrado y/o firmado correctos, este valor ha ser de al menos 68.\n¿Desea cambiar ahora el ajuste de línea a 68 caracteres? warning=Advertencia -signIconClicked=Ha modificado manualmente el firmado. Por lo tanto, mientras esté redactando este mensaje activar/desactivar el firmado ya no dependerá de activar/desactivar el cifrado. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Error al guardar borrador -msgCompose.partiallyEncrypted.short=Ten cuidado de no filtrar información sensible - correo parcialmente cifrado. -msgCompose.partiallyEncrypted.inlinePGP=El mensaje al que está respondiendo contenía partes tanto no cifradas como cifradas. Si el remitente no pudo descifrar originalmente algunas partes del mensaje, al descifrarlo usted puede estar filtrando información confidencial que el remitente no pudo descifrar originalmente por si mismo.\n\nPor favor, considere eliminar todo el texto entrecomillado de su respuesta a este remitente. - -msgCompose.internalEncryptionError=Error interno: Se deshabilitó el cifrado prometido -msgCompose.internalError=Ha ocurrido un error interno. - -msgCompose.toolbarTxt.signAndEncrypt=Este mensaje se firmará y cifrará -msgCompose.toolbarTxt.signOnly=Este mensaje se firmará -msgCompose.toolbarTxt.encryptOnly=Este mensaje se cifrará -msgCompose.toolbarTxt.noEncryption=Este mensaje no se firmará ni cifrará -msgCompose.toolbarTxt.disabled=Enigmail está deshabilitado para la identidad seleccionada -msgCompose.protectSubject.tooltip=Proteger el asunto del mensaje -msgCompose.noSubjectProtection.tooltip=No proteger el asunto del mensaje -msgCompose.protectSubject.dialogTitle=¿Habilitar la protección del asunto? -msgCompose.protectSubject.question=Los correos cifrados ordinarios contienen el asunto sin redactar\nHemos establecido un estándar para ocultar el asunto original en el mensaje cifrado,\ny reemplazarlo con un texto de sustitución de forma que el asunto sólo es visible después de que el correo sea descifrado.\n\n¿Queire proteger el asunto en los mensajes cifrados? -msgCompose.protectSubject.yesButton=&Proteger asunto -msgCompose.protectSubject.noButton=&Permitir asunto no protegido - -msgCompose.detailsButton.label=Detalles ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Desconocido -msgCompose.pepSendUnsecure=Inseguro -msgCompose.pepSendSecure=Seguro -msgCompose.pepSendTrusted=Seguro y de confianza - -pep.alert.disabledForIdentity=p≡p está deshabilitado para la identidad actual. Por favor, habilite p≡p mediante las preferencias de Enigmail/p≡p. -pep.alert.weakReply=Está por reenviar o responder a un mensaje seguro, pero el mensaje que envía no es seguro. Si decide continuar, información confidencial puede ser filtrada, poniendo en riesgo a usted y a su destinatario. ¿Esta seguro que desea continuar? - - -# note: should end with double newline: -sendAborted=Se abortó la operación de envío.\n\n - -# details: keyNotTrusted=Confianza insuficiente para la clave '%S' -keyNotFound=No se encontró la clave '%S' -keyRevoked=La clave '%S' fue revocada -keyExpired=La clave '%S' ha caducado - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=FIRMADO -statEncrypted=CIFRADO -statPlain=NO CIFRADO y NO FIRMADO - -offlineSave=¿Guardar el mensaje de %1$S para %2$S en la carpeta de mensajes no enviados? - -onlineSend=¿Enviar el mensaje %1$S a %2$S? -encryptKeysNote=Nota: El mensaje se cifra para las siguientes identificaciones-de-usuario / claves: %S -hiddenKey= - -signFailed=Error en Enigmail: Fallo al cifrar/firmar. ¿Enviar el mensaje sin cifrar? -msgCompose.button.sendUnencrypted=&Enviar mensaje sin cifrar -recipientsSelectionHdr=Seleccionar destinatarios para cifrado - -configureNow=Aún no ha configurado la seguridad de Enigmail para la identidad seleccionada. ¿Desea hacerlo ahora? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Cifrar mensaje (auto) -encryptMessageNorm=Cifrar mensaje -signMessageAuto=Firmar mensaje (auto) -signMessageNorm=Firmar mensaje - -encryptOff=Cifrado: DESACTIVADO -encryptOnWithReason=Cifrado: ACTIVO (%S) -encryptOffWithReason=Cifrado: DESACTIVADO (%S) -encryptOn=Cifrado: Activado -signOn=Firmado: Activado -signOff=Firmado: Desactivado -signOnWithReason=Firmado: Activado (%S) -signOffWithReason=Firmado: DESACTIVADO (%S) -reasonEnabledByDefault=habilitado por defecto -reasonManuallyForced=forzado manualmente -reasonByRecipientRules=forzado por reglas por destinatario -reasonByAutoEncryption=fozado por auto-cifrado -reasonByConflict=debido a un conflicto entre reglas por destinatario -reasonByEncryptionMode=debido al modo de cifrado - -# should not be used anymore: -encryptYes=El mensaje se cifrará -encryptNo=El mensaje no se cifrará - -# should not be used anymore: -signYes=El mensaje se firmará -signNo=El mensaje no se firmará - - -# PGP/MIME status: -pgpmimeNormal=Protocolo: PGP/ MIME -inlinePGPNormal=Protocolo: Inline PGP -smimeNormal=Protocolo: S/MIME -pgpmimeAuto=Protocolo: PGP/MIME (auto) -inlinePGPAuto=Protocolo: Inline PGP (auto) -smimeAuto=Protocolo: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=Se usará PGP/MIME -pgpmimeNo=Se usará PGP Inline - -# Attach own key status (tooltip strings): -attachOwnKeyNo=No se adjuntará su propia clave pública -attachOwnKeyYes=Se adjuntará su propia clave pública -attachOwnKeyDisabled=No se puede adjuntar tu propia clave pública. Debe seleccionar una clave específica\nen la sección Seguridad OpenPGP bajo Configuración de Cuenta para habilitar esta función. - -rulesConflict=Se han detectado reglas por-destinatario en conflicto\n%S\n\n¿Enviar el mensaje con esta configuración? -msgCompose.button.configure=&Configurar -msgCompose.button.send=&Enviar mensaje -msgCompose.button.save=&Guardar mensaje - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Se necesita la clave pública %S para verificar la firma -keyUsed=La clave pública %S se usó para verificar la firma -clickDecrypt=; usa la función 'Descifrar/Verificar' -clickDecryptRetry=; usa la función 'Descifrar/Verificar' para intentarlo de nuevo -clickDetailsButton=; pulsa el botón 'Detalles' para más información -clickImportButton=; pulse el botón 'Importar clave' para importar la clave -keyTypeUnsupported=; el tipo de clave no está soportado por tu versión de GnuPG -decryptManually=; pulse el botón 'Descifrar' para descifrar el mensaje -verifyManually=; pulse el botón 'Verificar' para verificar la firma -headerView.button.verify=Verificar -headerView.button.decrypt=Descifrar -msgPart=Parte del mensaje %S -msgSigned=firmado -msgSignedUnkownKey=firmado con una clave desconocida -msgEncrypted=cifrado -msgSignedAndEnc=firmado y cifrado - unverifiedSig=Firma sin verificar -incompleteDecrypt=Descifrado incompleto -needKey=Error - No se encontró la clave privada/secreta correspondiente para descifrar el mensaje -failedDecrypt=Error - Fallo al descifrar badPhrase=Error - Contraseña incorrecta -# missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Error - Fallo al descifrar/verificar -viewInfo=; Ver > Información de seguridad del mensaje, para los detalles -brokenExchangeMessage=Mensaje PGP/MIME de MS-Exchange roto. - -decryptedMsg=Mensaje descifrado -decryptedMsgWithFormatError=Mensaje descifrado (se ha restaurado el formato de correo PGP que se estropeó probablemente a causa de un servidor Exchange antiguo, de modo que el resultado puede no haber quedado perfecto para lectura) - -usedAlgorithms=Algoritmos usados: %1$S y %2$S -pepStatusInfo.text=Estado del mensaje p≡p. -pepStatusInfo.title.m3=Bajo ataque -pepStatusInfo.info.m3=Este mensaje no es seguro y ha sido alterado. -pepStatusInfo.title.m1=Sin confianza -pepStatusInfo.info.m1=Este mensaje tiene un participante en la comunicación que ha sido calificado 'sin confianza' -pepStatusInfo.title.r0=Desconocido -pepStatusInfo.info.r0=Este mensaje no contiene suficiente información para determinar si es seguro. -pepStatusInfo.title.r1=No se puede descifrar -pepStatusInfo.info.r1=Este mensaje no se puede descifrar porque la clave no está disponible. -pepStatusInfo.title.r2=No se puede descifrar -pepStatusInfo.info.r2=Este mensaje no se puede descifrar porque la clave no está disponible. -pepStatusInfo.title.r3=Inseguro -pepStatusInfo.info.r3=Este mensaje no es seguro. -pepStatusInfo.title.r4=Inseguro para algunos -pepStatusInfo.info.r4=Este mensaje no es seguro para algunos interlocutores. -pepStatusInfo.title.r5=Seguridad no fiable -pepStatusInfo.info.r5=Este mensaje tiene una protección no fiable. -pepStatusInfo.title.r6=Seguro... -pepStatusInfo.info.r6=Este mensaje es seguro, pero todavía necesita verificar la identidad del interlocutor de su comunicación. -pepStatusInfo.title.r7=Seguro y de confianza -pepStatusInfo.info.r7=Este mensaje es seguro y de confianza. - -pepStatusInfo.color.green=Verde -pepStatusInfo.color.yellow=Amarillo -pepStatusInfo.color.red=Rojo -pepRevokeTrust.question=¿De verdad quieres cancelar la confianza para %S? -pepRevokeMistrust.question=¿De verdad quiere volver a confiar en la clave para %S? -pepRevokeTrust.doRevoke=Revocar &confianza - -wksConfirmationReq=Petición de confirmación del directorio Webkey -wksConfirmationReq.message=Este mensaje ha sido enviado por tu proveedor de correo electrónico para confirmar el despliegue de tu clave pública\nde OpenPGP en su directorio web de claves (Webkey).\nProporcionar tu clave pública ayuda a otros a hallarla fácilmente y por tanto poder cifrar mensajes destinados a ti.\n\nSi quieres publicar tu clave en el directorio web de claves, por favor, pulsa el botón "Confirmar petición" en la barra de estado.\nDe lo contrario, simplemente ignora este mensaje. -wksConfirmationReq.button.label=Confirmar petición - -autocryptSetupReq=Realizar configuración de Autocrypt -autocryptSetupReq.button.label=Iniciar configuración -autocryptSetupReq.setupMsg.desc=Este mensaje contiene toda la información para transferir de forma segura su configuración de Autocrypt junto con su clave secreta/privada desde su dispositivo original. -autocryptSetupReq.setupMsg.backup=Puede conservar este mensaje y usarlo como una copia de seguridad para su clave secreta/privada. Si quiere hacer esto, debe anotar la contraseña y guardarla de forma segura. -autocryptSetupReq.message.import=Para importar la configuración y clave(s) en Enigmail, por favor, pulsa el botón "Iniciar configuración" en la barra de estado. -autocryptSetupReq.message.sent=Por favor, pulsa sobre el mensaje en tu nuevo dispositivo y sigue las instrucciones para importar la configuración. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js +missingMdcError=Error - protección de integridad faltante o averiada (MDC) oldGpgVersion20=No se pudo inicializar Enigmail.\n\nEstá usando GnuPG versión %1$S, que ya no está soportada. Enigmail requiere GnuPG versión %2$S o superior. Por favor, actualice su instalación de GnuPG, o Enigmail no funcionará. -locateGpg=Ubicar programa GnuPG -invalidGpgPath=No se puede ejecutar GnuPG con la ruta proporcionada. Por tanto, Enigmail se desactivará hasta que cambies de nuevo la ruta a GnuPG o reinicies la aplicación. -warningsAreReset=Todas las advertencias han sido revertidas. -prefs.gpgFound=Se encontró GnuPG en %S -prefs.gpgNotFound=No se pudo encontrar GnuPG -prefs.warnAskNever=Advertencia: Activar esta opción tendrá como resultado que se dejarán sin cifrar sin aviso alguno los correos en los que no haya clave para alguno de los destinatarios -- ¡Enigmail no le informará si sucede esto! -prefs.warnIdleTimeForUnknownAgent=No se pudo conectar con gpg-agent. Quizá tu sistema usa una herramienta especializada para la gestión de contraseñas (como gnome-keyring, seahorse-agent, KDE wallet manager...). Desafortunadamente Enigmail no puede controlar el tiempo de espera de contraseña para la herramienta que estás usando, por tanto no se hará caso de la respectiva configuración de tiempo de espera en Enigmail. -prefEnigmail.oneKeyserverOnly=Error - Sólo puedes especificar un servidor de claves para la descarga automática de claves OpenPGP ausentes. -acSetupMessage.desc=Transferir su clave a otro dispositivo Autocrypt-enabled. (Quê is Autocrypt) -aboutLicense.desc=Enigmail es de código abierto y está licenciado bajo la Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Por favor, escriba el PIN de ADMIN de su tarjeta inteligente -enterCardPin=Por favor, escribe el PIN de tu tarjeta inteligente - -notInit=Error - El servicio de Enigmail aún no se ha inicializado badCommand=Error - Fallo del comando de cifrado cmdLine=línea de comandos y salida: -notRequired=Error - No se requiere cifrado -notComplete=Error - La generación de clave aún no se ha completado -invalidEmail=Error - Dirección(es) de correo electrónico no válida(s) noPassphrase=Error - No se proporcionó frase-contraseña noPGPblock=Error - No se encontró un bloque de datos OpenPGP armado (cifrado como texto) válido -unverifiedReply=La parte sangrada del mensaje (la respuesta) probablemente fue modificada -keyInMessageBody=Se encontró una clave en el cuerpo del mensaje. Pulse en 'Importar clave' para importar la clave -sigMismatch=Error - La firma no coincide -cantImport=Error al importar la clave pública\n\n -doImportOne=¿Importar %1$S (%2$S)? -doImportMultiple=¿Importar las siguientes claves?\n\n%S -previewFailed=No se pudo leer el fichero de clave pública. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=La tarjeta inteligente %1$S encontrada en su lector no se puede usar para procesar el mensaje.\nPor favor, inserte su tarjeta inteligente (SmartCard) %2$S y repita la operación. sc.insertCard=La operación requiere de tu tarjeta inteligente %S.\nPor favor, inserta la tarjeta requerida y repite la operación. sc.removeCard=La operación requiere que no haya tarjetas inteligentes en el lector.\nPor favor, retire su tarjeta y repita la operación. @@ -376,43 +39,24 @@ sc.noReaderAvailable=No se pudo acceder a tu lector de tarjeta inteligente (SmartCard).\nPor favor, conecta tu lector de SmartCard, inserta tu tarjeta y repite la operación. keyError.keySpecNotFound=La dirección de correo electrónico "%S" no corresponde a ninguna clave de su juego de claves. keyError.keyIdNotFound=El identificador de clave "%S" configurado no se pudo encontrar en su juego de claves. -keyError.resolutionAction=Por favor, selecciona una clave válida en Herramientas > Configuración de cuenta > Seguridad OpenPGP missingPassphrase=Frase-contraseña ausente errorHandling.gpgAgentInvalid=Su sistema está ejecutando una versión de gpg-agent que no es adecuada para su versión de GnuPG. errorHandling.gpgAgentError=GnuPG informó de un error en la comunicación con gpg-agent (un componente de GnuPG). errorHandling.dirmngrError=GnuPG informó de un error en la comunicación con dirmngr (un componente de GnuPG). errorHandling.pinentryError=GnuPG no puede consultar tu contraseña mediante el programa pinentry. -# errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. +errorHandling.pinentryCursesError=Tu instalación de GnuPG está configurasa para usar la consola para pinentry. Sin embargo, al usar Enigmail necesitas una versión gráfica de pinentry. errorHandling.readFaq=Este es un error de instalación o configuración del sistema que evita que Enigmail funcione adecuadamente, y no se puede reparar automáticamente.\n\nLe recomendamos firmemente que consulte nuestro sitio web de soporte en https://enigmail.net/faq. - gpgNotFound=No se pudo encontrar el programa '%S' de GnuPG.\nAsegúrese de haber establecido correctamente la ruta al ejecutable de GnuPG en las preferencias de Enigmail. gpgNotInPath=No se pudo encontrar el ejecutable de GnuPG en el PATH.\nAsegúrate de haber establecido correctamente la ruta al ejecutable de GnuPG en las preferencias de Enigmail. enigmailNotAvailable=Servicio principal de Enigmail no disponible - -prefGood=La firma de %S es correcta -prefBad=La firma de %S es INCORRECTA - failCancel=Error - Recepción de clave cancelada por el usuario failKeyExtract=Error - Fallo del comando de extracción de clave -failKeyNoSubkey=Ninguna (sub)clave válida notFirstBlock=Error - El primer bloque de OpenPGP no es un bloque de clave pública importKeyConfirm=¿Importar la(s) clave(s) pública(s) incluida(s) en el mensaje? -failKeyImport=Error - Fallo al importar clave fileWriteFailed=No se pudo escribir en el fichero %S - importKey=Importar clave pública %S desde el servidor de claves: uploadKey=Enviar clave pública %S al servidor de claves: keyId=Identificador de clave -keyAndSigDate=Identificador de clave: 0x%1$S / Firmado el: %2$S -keyFpr=Huella de validación: %S -noEmailProvided=¡No has proporcionado una dirección de correo electrónico! -keyAlreadySigned=La clave ya está firmada, no la puede firmar dos veces. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=caducada el %S createdHeader=Creada atLeastOneKey=¡No se seleccionó clave alguna! Tiene que seleccionar al menos una clave para aceptar fewerKeysThanRecipients=Ha seleccionado un número menor de claves que de destinatarios. ¿Seguro que está completa la lista de claves para cifrado? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Seleccione una clave privada/secreta OpenPGP para firmar sus mensajes userSel.problemNoKey=Ninguna clave válida userSel.problemMultipleKeys=Múltiples claves -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Enviar más tarde - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=NOTA: PGP/MIME (mensaje cifrado como adjunto) no está soportado por todos los clientes de correo. Si no estás seguro, selecciona la opción %S. first=primero second=segundo - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Seleccionar clave OpenPGP para cifrado -identityName=Identidad: %S -switchPepMode=Actualmente está usando el modo 'p≡p Junior' de Enigmail.\n\nAl habilitar el cifrado OpenPGP o el S/MIME para una cuenta, está deshabilitando p≡p y usando el modo 'regular' de Enigmail sin p≡p. -enableEnigmail=&Deshabilitar p≡p -amPrefAutocrypt.desc=Autocrypt es un estándar que define cómo lograr un cifrado extremo-a-extremo conveniente para correo electrónico. Este especifica cómo los programas de correo electrónico negocian las capacidades de cifrado usando correos electrónicos ordinarios. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Has activado el cifrado, pero no has seleccionado una clave. Para cifrar correos enviados a %1$S tienes que especificar una o varias claves válidas de tu lista de claves. ¿Quieres deshabilitar el cifrado para %2$S? -noKeyToUse=(ninguna - sin cifrado) -noEmptyRule=¡La regla no puede estar vacía! Por favor, establece una dirección de correo electrónico en el campo Regla. -invalidAddress=La(s) dirección(es) de correo que introdujo carecen de formato válido. No debe añadir los nombres de los destinatarios, sólo las direcciones de correo electrónico. Ej.:\nNo válido: Algún Nombre \nVálido: algun.nombre@direccion.net -noCurlyBrackets=Las llaves {} tienen un significado especial y no deben usarse en una dirección de correo electrónico. Si quieres modificar el modo en que funciona esta regla, usa la opción 'Aplicar regla si el destinatario...'. Hay más información disponible desde el menú Ayuda. - -# Strings used in enigmailRulesEditor.js never=Nunca always=Siempre possible=Posible -deleteRule=¿Seguro que quiere borrar la regla seleccionada? -nextRcpt=(Siguiente destinatario) -negateRule=No -addKeyToRule=Añadir clave %1$S (%2$S) a regla por-destinatario - -# Strings used in enigmailSearchKey.js -needOnline=La función seleccionada no está disponible en modo sin conexión. Por favor, conéctese y vuelva a intentarlo. -noKeyserverConn=No se pudo conectar con el servidor de claves en %S. -internalError=Ha ocurrido un error interno. No se pudieron descargar o importar las claves. -noKeyFound=No podimos encontrar ninguna clave que coincida con el criterio de búsqueda especificado. -keyDownload.keyUnavailable=La clave con identificación %S no está disponible en el servidor de claves. Lo más probable es que el propietario de la clave no la subiera al servidor de claves.\n\nPor favor, pida al remitente del mensaje que le envíe su clave por correo. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=No se pudo establecer la confianza en el propietario - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=No se pudo firmar la clave -alreadySigned.label=Nota: La clave %S ya está firmada con la clave secreta (privada) seleccionada. -alreadySignedexportable.label=Nota: La clave %S ya está firmada como exportable con la clave secreta (privada) seleccionada. Una firma local no tiene sentido. -partlySigned.label=Nota: Algunas identificaciones de usuario de la clave %S ya están firmadas con la clave privada/secreta seleccionada. -noTrustedOwnKeys=¡No se encontró una clave cualificada para firmado! Necesita al menos una clave secreta (privada) con confianza 'completa' para firmar claves. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Cargando claves. Por favor, espera ... keyValid.unknown=desconocida keyValid.invalid=no válida keyValid.disabled=deshabilitada keyValid.revoked=revocada keyValid.expired=caducada keyValid.noSubkey=ninguna subclave válida - -keyTrust.untrusted=nula +keyValid.valid=válido +keyValid.ownKey=clave propia +keyTrust.untrusted=no se confía keyTrust.marginal=marginal keyTrust.full=completa keyTrust.ultimate=absoluta keyTrust.group=(grupo) -keyType.public=púb -keyType.publicAndSec=púb/sec -keyMan.enableKey=Habilitar clave -keyMan.disableKey=Deshabilitar clave userAtt.photo=Atributo del usuario (imagen JPEG) - -asciiArmorFile=Ficheros con blindaje ASCII (*.asc) importKeyFile=Importar fichero de clave OpenPGP -gnupgFile=Ficheros de GnuPG -saveRevokeCertAs=Crear y guardar certificado de revocación -revokeCertOK=El certificado de revocación se ha creado con éxito. Puedes usarlo para invalidar tu clave pública, por ejemplo, en caso de que perdieras tu clave secreta/privada. -revokeCertFailed=No se pudo crear el certificado de revocación. - -addUidOK=La identificación de usuario se añadió correctamente -addUidFailed=Fallo al añadir la identificación de usuario -noKeySelected=Tiene que seleccionar al menos una clave para realizar la operación elegida -exportToFile=Exportar clave pública a fichero -exportKeypairToFile=Exportar clave secreta y pública a archivo -exportSecretKey=¿Quieres incluir la clave secreta (privada) en el fichero de clave OpenPGP guardado? -saveKeysOK=Las claves se guardaron correctamente -saveKeysFailed=No se pudieron guardar las claves -importKeysFailed=No se pudieron importar las claves -enableKeyFailed=No se pudo habilitar/deshabilitar las claves -specificPubKeyFilename=%1$S (0x%2$S) púb -specificPubSecKeyFilename=%1$S (0x%2$S) pública-secreta -defaultPubKeyFilename=Claves-públicas-exportadas -defaultPubSecKeyFilename=Claves-públicas-y-secretas-exportadas - -sendKeysOk=La(s) clave(s) se enviaron correctamente -sendKeysFailed=No se pudieron enviar las claves -receiveKeysOk=La(s) clave(s) se actualizaron correctamente -receiveKeysFailed=No se pudieron descargar la(s) clave(s) -keyUpload.verifyEmails=El servidor de claves le enviará un correo electrónico por cada dirección de correo de su clave subida. Para confirmar la publicación de su clave, necesitará dar click en el vínculo de cada correo electrónico que reciba. - -importFromClip=¿Deseas importar alguna(s) clave(s) desde el portapapeles? -importFromUrl=Descargar clave pública desde esta URL: -copyToClipbrdFailed=No se pudo copiar la(s) clave(s) seleccionada(s) al portapapeles. -copyToClipbrdOK=La(s) clave(s) se copiaron al portapapeles - +importPubKeysFailed=Las siguientes claves públicas no pudieron ser importadas en Thunderbird\n\n%S +importSecKeysFailed=Las siguientes claves secretas no pudieron ser importadas en Thunderbird\n\n%S deleteSecretKey=ADVERTENCIA: ¡Está a punto de borrar claves privadas/secretas!\nSi borra su clave privada, ya no podrá descifrar los mensajes cifrados para esa clave, y tampoco podrás ya revocarla.\n\n¿Seguro que desea borrar los PARES de claves privada y pública\n'%S'? -deleteMix=ADVERTENCIA: ¡Estás a punto de borrar claves privadas/secretas!\nSi borras tu clave privada, ya no podrás descifrar los mensajes cifrados para esa clave, y tampoco podrás ya revocarla.\n\n¿Seguro que deseas borrar los PARES de claves privada y pública seleccionados? -deletePubKey=¿Desea borrar la clave pública\n'%S'? -deleteSelectedPubKey=¿Deseas borrar las claves públicas? -deleteKeyFailed=No se pudo borrar la clave. revokeKeyQuestion=Está a punto de revocar la clave (par) '%S'.\n\nNo podrá volver a firmar con esta clave (privada), y cuando el certificado de revocación se distribuya, los demás tampoco podrán cifrar con esta clave (pública). Aún podrá usar la clave (privada) para descifrar mensajes antiguos.\n\n¿Quiere continuar? -revokeKeyOk=La clave ha sido revocada. Si tu clave está disponible en un servidor de claves, se recomienda subirla otra vez, para que otros puedan ver la revocación. -revokeKeyFailed=No se pudo revocar la clave. -# revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! +revokeKeyNotPresent=¡No tienes una clave (0x%S) que coincida con este certificado de revocación!\n\n¡Si has perdido tu clave, debes importarla (ej. desde un servidor de claves) antes de importar el certificado de revocación! revokeKeyAlreadyRevoked=La clave 0x%S ya ha sido revocada. -refreshAllQuestion=No ha seleccionado clave alguna. ¿Desea refrescar TODAS las claves? -refreshKeyServiceOn.warn=Advertencia: Actualmente tus claves se están refrescando en segundo plano con la mayor seguridad posible.\nRefrescar todas sus claves de una vez revelaría innecesariamente información sobre ti.\n¿De verdad quieres hacer esto? -refreshKey.warn=Advertencia: Dependiendo del número de claves y la velocidad de la conexión, ¡refrescar todas las claves puede ser un proceso bastante largo! -downloadContactsKeys.warn=Advertencia: Dependiendo del número de contactos y la velocidad de la conexión, ¡descargar todas las claves puede ser un proceso bastante largo! -downloadContactsKeys.importFrom=¿Importar contactos de la libreta de direcciones '%S'? -keyMan.button.exportSecKey=&Exportar claves secretas -keyMan.button.exportPubKey=Exportar sólo claves &públicas keyMan.button.import=&Importar -keyMan.button.refreshAll=&Refrescar todas las claves keyMan.button.revokeKey=&Revocar clave - -keylist.noOtherUids=No tiene otras identidades -keylist.hasOtherUids=También se le conoce por -keylist.noPhotos=No hay fotografía disponible -keylist.hasPhotos=Fotografías - -keyMan.addphoto.filepicker.title=Seleccione una foto a añadir -keyMan.addphoto.warnLargeFile=El archivo que ha seleccionado es mayor de 25 KB.\nNo se recomienda añadir archivos demasiado grandes porque generá claves muy grandes. -keyMan.addphoto.noJpegFile=El fichero seleccionado no parece ser un fichero JPEG. Por favor, seleccione un fichero diferente. -keyMan.addphoto.failed=No se pudo añadir la foto. -noWksIdentity=La clave %S no tiene una identidad WKS (servicio Webkey). -wksUpload.noKeySupported=Subida no exitosa - su proveedor parece no soportar WKS. - -keyman.addBlacklistKey.msg=¿De verdad quiere que p≡p deje de usar la clave "%1$S (%2$S)" para cifrar mensajes? -keyman.removeBlacklistKey.msg=¿Quiere permitir que p≡p use la clave "%1$S (%2$S)" para futuros mensajes? -keyman.addBlacklistKey.button=&Añadir clave a la lista negra -keyman.removeBlacklistKey.button=&Eliminar clave de la lista negra - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=No se pudo cambiar la identificación principal del usuario -changePrimUidOK=La identificación principal de usuario se cambió correctamente -revokeUidFailed=No se pudo revocar la identificación de usuario %S -revokeUidOK=La identificación de usuario %S se revocó correctamente. Si su clave está disponible en un servidor de claves, se recomienda subirla de nuevo para que otros puedan ver la revocación. -revokeUidQuestion=¿Seguro que quiere revocar la identificación de usuario %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=¡COMPLETADO! Se importaron las claves -importInfoBits=Bits -importInfoCreated=Creada -importInfoFpr=Huella de validación -importInfoDetails=(Detalles) -importInfoNoKeys=No se importó ninguna clave. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=clave pública -keyTypePrimary=clave principal -keyTypeSubkey=subclave -keyTypePair=par de claves -keyExpiryNever=nunca keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EdDSA -keyUsageEncrypt=Cifrar -keyUsageSign=Firmar -keyUsageCertify=Certificar -keyUsageAuthentication=Autentificación -keyDoesNotExpire=La clave no caduca - -# Strings in enigmailGenCardKey.xul -keygen.started=Por favor, espere mientras se genera la clave .... -keygen.completed=Se ha generado la clave. El identificador de la nueva clave es: 0x%S -keygen.keyBackup=Se ha hecho una copia de seguridad de la clave como %S -keygen.passRequired=Por favor, especifique una frase-contraseña si quiere crear una copia de seguridad de su clave fuera de su tarjeta inteligente (SmartCard). - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=No se pudo cambiar el PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Refrescando claves. Por favor, espere ... -keyserverProgress.uploading=Subiendo claves, por favor espera ... -keyserverProgress.wksUploadFailed=No se pudo subir su clave al servicio de directorio web de claves (Webkey) -keyserverProgress.wksUploadCompleted=Tu clave pública fue enviada con éxito a tu proveedor. Recibirás un correo para confirmar que fuiste tú quien inició la subida. -keyserverTitle.refreshing=Refrescar claves -keyserverTitle.uploading=Subir claves -keyserver.result.download.none=No se descargó ninguna clave. -keyserver.result.download.1of1=Las claves se descargaron correctamente. -keyserver.result.download.1ofN=Se descargó correctamente 1 de %S claves. -keyserver.result.download.NofN=Se descargaron correctamente %1$S de %2$S claves. -keyserver.result.uploadOne=Se subió exitosamente 1 clave. -keyserver.result.uploadMany=Se subieron exitosamente %S claves. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=El fichero que has especificado no es un ejecutable de GnuPG. Por favor, elige un fichero diferente. -setupWizard.installFailed=Parece que la instalación no se ha completado. Intente instalarlo de nuevo o instale GnuPG de forma manual usando el botón Examinar para seleccionarlo. -setupWizard.downloadForbidden=Por tu propia seguridad, no descargaremos GnuPG. Por favor, visita https://gnupg.org/ para descargarlo. -setupWizard.downloadImpossible=No podemos descargar GnuPG en este momento. Por favor, inténtalo más tarde o visita https://gnupg.org/ para descargar GnuPG. -setupWizard.hashSumError=El asistente no ha podido verificar la integridad del archivo descargado. El archivo puede estar dañado o manipulado. ¿Quiere continuar la instalación de todos modos? -setupWizard.importSettingsFile=Especificar fichero de copia seguridad desde el que cagar -setupWizard.invalidSettingsFile=El archivo especificado no es un archivo valido de copia de configuración de Enigmail. -setupWizard.gpgConfExists=El fichero de configuración de GnuPG ya existe. ¿Quiere sobrescribirlo con el de su antigua instalación? -setupWizard.noGpgHomeDir=Parece que ha configurado %S para su uso con GnuPG. Sin embargo, este no es un directorio - no puede usarlo. -setupWizard.unmachtedIds=No se pudieron encontrar en tu antigua instalación las identidades correspondientes a:\n%S\nLas configuraciones para estas identidades fueron omitidas. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Se produjo un error al intentar descargar GnuPG. Por favor, revise el registro de la consola para más detalles. -installGnuPG.installFailed=Se ha producido un error al instalar GnuPG. Compruebe el registro de la consola para más detalles. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Tienes que introducir un nombre y una dirección de correo electrónico -addUidDlg.nameMinLengthError=El nombre debe tener al menos 5 caracteres -addUidDlg.invalidEmailError=Debes especificar una dirección de correo electrónico válida - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Las tarjetas inteligentes de OpenGPG sólo permiten caracteres ASCII en el Nombre. - - -# network error types +setupWizard.selectKeysButton=Seleccionar Claves errorType.SecurityCertificate=El certificado de seguridad presentado por el servicio web no es válido. errorType.SecurityProtocol=El protocolo de seguridad usado por el servicio web es desconocido. errorType.Network=Se ha producido un error de red. - -# filter stuff -filter.folderRequired=Debe seleccionar una carpeta de destino. -filter.decryptMove.label=Descifrar permanentemente (Enigmail) -filter.decryptCopy.label=Crear copia descifrada (Enigmail) -filter.decryptMove.warnExperimental=Advertencia - La acción de filtro 'Descifrar permanentemente' puede llevar a la destrucción de mensajes.\n\nTe recomendamos firmemente que primero intentes con el filtro 'Crear copia descifrada', pruebes el resultado con cuidado, y no comiences a usar el filtro permanente hasta que estés satisfecho/a con el resultado. -filter.tempPepFilterDesc=Filtro temporal para almacenar el mensaje enviado sin cifrar -filter.term.pgpencrypted.label=OpenPGP cifrado -filter.encrypt.label=Cifrar para clave (Enigmail) -filter.keyRequired=Tiene que seleccionar la clave de un destinatario. -filter.keyNotFound=No se pudo encontrar una clave de cifrado para "%S". -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Guardar archivo de registro (log) - -# strings in gpg.jsm -unknownSigningAlg=Algoritmo de firmado desconocido (identificador: %S) -unknownHashAlg=Hash criptográfico desconocido (identificador: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=La clave %1$S (identificador de clave %2$S) está revocada. keyRing.pubKeyExpired=La clave %1$S (identificador de clave %2$S) ha caducado. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Todas las subclaves-de-cifrado de la clave %1$S (identificador de clave %2$S) han caducado. keyRing.noSecretKey=No parece que tenga la clave secreta (privada) para %1$S (identificador de clave %2$S) en su juego de claves; no puede usar la clave para firmado. keyRing.encSubKeysUnusable=Todas las subclaves-de-cifrado de la clave %1$S (identificador de clave %2$S) están revocadas, caducadas, o inutilizadas de algún otro modo. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=No puede guardar al fichero '%S'. Por favor, seleccione un fichero distinto. dataExportError=Ocurrió un error durante la exportación de tus datos. -enigmailSettings=EnigmailSettings -defaultBackupFileName=Enigmail-export -specifyExportFile=Especificar nombre de fichero para la exportación -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm -# expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. -# expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. -# expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. +expiry.keyExpiresSoon=Tu clave %1$S expirará en menos de %2$S días.\n\nRecomendamos que crees un nuevo par de claves y configures las correspondientrs cuentas para usarlo. +expiry.keysExpireSoon=Tus siguientes claves expirarán en menos de %1$S días:\n %2$S. Recomendamos que crees nuevas claves y configures las correspondientrs cuentas para usarlas. +expiry.keyMissingOwnerTrust=A tu clave secreta %S le falta el nivel de confianza.\n\nRecomendamos que ajustes "Confías en las certificaciones" a "extrema" en las propiedades de la clave. +expiry.keysMissingOwnerTrust=A tus claves secretas siguientes les falta el nivel de confianza.\n %S.\nRecomendamos que ajustes "Confías en las certificaciones" a "extrema" en las propiedades de las claves. expiry.OpenKeyManager=Abrir administración de claves de Enigmail expiry.OpenKeyProperties=Abrir propiedades de la clave - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Este es un mensaje cifrado. Desafortunadamente no tienes la clave secreta (privada) para descifrar el mensaje. - -#strings in gpgAgent.jsm gpghomedir.notexists=El directorio '%S' que contiene sus claves OpenPGP no existe y no se puede crear. gpghomedir.notwritable=El directorio '%S' que contiene tus claves OpenPGP no es escribible. gpghomedir.notdirectory=El directorio '%S' que contiene tus claves OpenPGP es un fichero en vez de un directorio. gpghomedir.notusable=Por favor, corrige los permisos del directorio o cambia la ubicación de tu directorio 'home' (principal) de GnuPG, o de otro modo GnuPG no podrá funcionar correctamente. -# gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=No se pueden verificar las palabras de confianza (trustwords) de p≡p para la cuenta propia. -pepTrustWords.cannotFindKey=No se pudo encontrar clave para %S. -pepTrustWords.cannotStoreChange=No se pudo cambiar la confianza para %S. -pepTrustWords.generalFailure=No se pueden obtener palabras de confianza para %S. -pepTrustWords.partnerFingerprint=Huella de validación de clave para %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Su proveedor de correo electrónico procesó su petición para subir su clave pública al directorio web de claves (Webkey) de OpenPGP.\n\nPor favor, pulse el botón de confirmación en el encabezamiento de Enigmail para completar la publicación de su clave pública. -wkdMessage.body.process=Este es un correo en relación al procesado automático para subir su clave pública al Directorio Web de Claves OpenPGP (Web Key Directory).\n\nNo necesita llevar a cabo ninguna acción manual en este punto. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=El remitente o tú deberían reenviar el mensaje. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Si tú has redactado este mensaje, tu clave no está disponible. -pepPrivacyStatus.RatingMistrustSuggestion=Vuelve a establecer la conexión con tu interlocutor e intenta completar otra negociación. -pepPrivacyStatus.RatingReliableSuggestion=Completa una negociación con el interlocutor de tu comunicación intercambiando las palabras de confianza (trustwords) en persona o por teléfono (canal seguro). Una negociación sólo es necesaria una vez por cada interlocutor, y asegurará una comunicación segura y de confianza. -pepPrivacyStatus.RatingTrustedSuggestion=¡No hay que hacer nada! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Tenga en cuenta que este mensaje puede no ser seguro. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Por favor, añada la información necesaria. -pepPrivacyStatus.RatingUnderAttackSuggestion=Verifique el contenido de este mensaje con su interlocutor utilizando otro canal de comunicación. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Asegúrese de que el estado de privacidad para cada contraparte de la comunicación en la lista es al menos seguro. -pepPrivacyStatus.RatingUnencryptedSuggestion=Por favor, pida al interlocutor de su comunicación que use una solución de cifrado o instale p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Este mensaje no tiene un cifrado confiable o carece de firma. Pida a la contraparte de su comunicación que actualice su solución de cifrado o instale p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Este mensaje tiene un cifrado o formato estropeado. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Este mensaje no se puede descifrar porque la clave no está disponible. -pepPrivacyStatus.RatingMistrustExplanation=Este mensaje tiene un participante en la comunicación que ha sido evaluado 'sin confianza'. -pepPrivacyStatus.RatingReliableExplanation=Este mensaje es seguro, pero todavía necesita verificar la identidad del interlocutor de su comunicación. -pepPrivacyStatus.RatingTrustedExplanation=Este mensaje es seguro y de confianza. -pepPrivacyStatus.RatingUndefinedExplanation=Este mensaje no contiene suficiente información para determinar si es seguro. -pepPrivacyStatus.RatingUnderAttackExplanation=Este mensaje no es seguro y ha sido alterado. -pepPrivacyStatus.RatingUnencryptedExplanation=Este mensaje no es seguro -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Este mensaje no es seguro para algunos participantes en la comunicación. -pepPrivacyStatus.RatingUnreliableExplanation=Este mensaje tiene una protección no fiable. - -pepPrivacyStatus.RatingBrokenText=Estropeado -pepPrivacyStatus.RatingHaveNoKeyText=No se puede descifrar -pepPrivacyStatus.RatingMistrustText=Sin confianza -pepPrivacyStatus.RatingReliableText=Seguro -pepPrivacyStatus.RatingTrustedText=Seguro y de confianza -pepPrivacyStatus.RatingUndefinedText=Desconocido -pepPrivacyStatus.RatingUnderAttackText=Bajo ataque -pepPrivacyStatus.RatingUnencryptedForSomeText=No seguro para algún interlocutor -pepPrivacyStatus.RatingUnencryptedText=Inseguro -pepPrivacyStatus.RatingUnreliableText=Seguridad no fiable - -handshakeDlg.button.initHandshake=Negociación... -handshakeDlg.button.stopTrust=Dejar de confiar -handshakeDlg.button.reTrust=Devolver confianza -handshakeDlg.label.outgoingMessage=Mensaje saliente -handshakeDlg.label.incomingMessage=Mensaje entrante -handshakeDlg.error.noPeers=No se puede realizar la negociación sin interlocutores. -handshakeDlg.error.noProtection=Por favor, habilita la protección para usar la función de Negociación. - -enigmail.acSetupPasswd.descEnterPasswd=Por favor, introduzca el código de configuración que se muestra en el otro dispositivo. -enigmail.acSetupPasswd.descCopyPasswd=Por favor, introduzca el código de configuración en su otro dispositivo para continuar con la configuración. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Mensaje de configuración de Autocrypt -autocrypt.setupMsg.msgBody=Para configurar tu nuevo dispositivo para Autocrypt, por favor sigue las instrucciones que aparecen en el nuevo dispositivo. -autocrypt.setupMsg.fileTxt=Este es el archivo de configuración de Autocrypt usado para transferir configuraciones y claves entre clientes de correo. Puede descifrarlo usando el código de configuración presentado en su dispositivo antiguo, y luego importe la clave a su juego de claves. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=¿Qué novedades hay en Enigmail v2.0? -upgradeInfo.welcome1=¡Bienvenido a la nueva versión 2.0 de Enigmial! -upgradeInfo.welcome2=Esta versión contiene un montón de características nuevas y modificaciones. Por favor, tómate un minuto para averiguar cuáles son las novedades: -upgradeInfo.encSubject.title=Cifrar el asunto del mensaje -upgradeInfo.encSubject.desc=Hemos desarrollado un nuevo método que mueve el asunto del correo al interior del mensaje cifrado, y reemplaza el asunto visible con "Mensaje cifrado". Una vez se descifre un mensaje de este tipo, el asunto original es reemplazado automáticamente. La ocultación del asunto está activada por defecto; hay una preferencia para desactivarla si no le gusta. (Nota: Esta característica requiere que el mensaje sea enviado con PGP/MIME (mensaje cifrado como adjunto).) -upgradeInfo.buttons.title=Se cambió el comportamiento de los botones Cifrar y Firmar -upgradeInfo.buttons.desc=Los botones Cifrar y Firmar en la ventana de redacción del mensaje ahora funcionan para ambos protocolos OpenPGP y S/MIME. Si ambos algoritmos son posibles, entonces Enigmail tratará de dar preferencia a aquel para el que estén disponibles todas las claves. -upgradeInfo.autocrypt.title=Soporte para Autocrypt -upgradeInfo.autocrypt.desc=Enigmail ahora soporta Autocrypt, 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 now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Por favor, visite nuestra documentación para ayuda en el uso de Enigmail. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Para usar Enigmail/p≡p, se requiere GnuPG. Como no pudimos encontrarlo, podemos descargarlo e instalarlo para ti. -pep.updateAvailable=Una nueva versión de Enigmail/p≡p crypto-engine está disponible. ¿Desea descargar e instalar la actualización? - -#strings in enigmailAbout.html +gpgAgent.noAutostart=Estás usando GnuPG versión %S. Esta versión requiere que corras gpg-agent antes que Thunderdbird sea ejecutado, y que la variable de ambiente "GPG_AGENT_INFO" sea pre-cargada.\n\nEstas condiciones previas no fueron cumplidas - no puedes usar Enigmail hasta que resuelvas esta cuestión. +upgradeInfo.doctitle=Enigmail dice Hasta luego +upgradeInfo.welcome1=El cifrado OpenPGP ahora es parte de Thunderbird +upgradeInfo.welcome2=Enigmail ya no es requerido en Thunderbird, y se ha tornado obsoleto - esta es la versión final de Enigmail para Thunderbird. +upgradeInfo.migrateSettings.title=Migra tus claves y ajustes desde GnuPG a Thunderbird +upgradeInfo.migrateSettings.desc=Lo que queda, antes de que desinstales Enigmail, es que importes tus claves desde GnuPG en Thunderbird, y migres algunos ajustes importantes desde Enigmail a Thunderbird. Hemos preparado un asistente que efectúa estos pasos por ti. +upgradeInfo.performMigration.buttonLabel=Empezar Migración Ahora +upgradeInfo.thankyou.title=Gracias por usar Enigmail +upgradeInfo.thankyou.desc1=Ha sido un placer trabajar en Enigmail por casi dos décadas. Estamos agradecidos que pudiéramos contribuir a la idea de correos electrónicos cifrados. Esperamos que hayas encontrado a Enigmail útil, y nos gustaría agradecerte por tu continuado apoyo durante estos mucho años. +upgradeInfo.thankyou.desc2=Si quieres ayudar, por favor considera donar a Thunderbird. aboutEnigmail.tabName=Acerca de Enigmail aboutEnigmail.title=Soporte OpenPGP proporcionado por Enigmail aboutEnigmail.team=Enigmail es desarrollado por el Equipo de Enigmail: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licencia y soporte aboutEnigmail.license=El OpenPGP de Enigmail es de código abierto y está licenciado bajo la %S aboutEnigmail.support=Tiene disponibles soporte y descargas desde www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Actualización GnuPG -updateGnuPG.title=Actualizaciones para GnuPG -updateGnuPG.introduction.desc=Enigmail necesita de GnuPG para realizar sus funciones criptográficas. Nosotros recomendamos que mantenga actualizada su instalación de GnuPG. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -updateGnuPG.noUpdateRequired=GnuPG está actualizado. -updateGnuPG.cannotUpdate.header=Enigmail únicamente permite la actualización de los siguientes paquetes: -updateGnuPG.cannotUpdate.footer=Parace que utiliza alguna otra variante de GnuPG; por tanto, desafortunadamente no le es posible a Enigmail actualizar su instalacion de GnuPG. -updateGnuPG.installUpdate=Instalar actualización -updateGnuPG.noMoreUpdates=No buscar actualizaciones futuras updateGnuPG.checkUpdate=Buscar actualizaciones de GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=Abortada -keyserver.error.unknown=Ocurrió un error desconocido. -keyserver.error.serverError=El servidor de claves reportó un error. -keyserver.error.importError=Fallo en importar la clave descargada. -keyserver.error.unavailable=El servidor de claves no está disponible. -keyserver.error.securityError=El servidor de claves no permite acceso cifrado. -keyserver.error.certificateError=El certificado del servidor de claves no es válido. -keyserver.error.unsupported=El servidor de claves no es soportado por Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Pedazo de mensaje cifrado -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm import.secretKeyImportError=Un error en GnuPG ha ocurrido al importar las claves secretas. La importación no ha sido exitosa. - -#strings in importSettings.js -importSettings.errorNoFile=¡El fichero que ha especificado no es un fichero común! -importSettings.cancelWhileInProgress=Restauración en marcha. ¿En verdad desea abortar el proceso? -importSettings.button.abortImport=&Abortar proceso +passphrasePrompt=Por favor ingresa la frase de contraseña para la siguiente clave: %S +openpgpInitError=Ocurrió un error durante la inicialización de la infraestructura OpenPGP en Thunderbird.\n\nEl asistente de migración no puede proceder si OpenPGP en Thunderbird no está incializado apropiadamente. diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/compose.html enigmail-2.2.4/lang/es-ES/help/compose.html --- enigmail-2.1.6+ds1/lang/es-ES/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ - -Enigmail Help: Message Composition - - -

Ayuda de Enigmail

- -

Uso de Enigmail al redactar mensajes

- -
    -
  • Menú Enigmail en la ventana de Redacción de Correo -
      -
    • Firmar mensaje: Activa/Desactiva el envío de mensajes firmados. El usuario es notificado si el firmado falla.
    • -
    • Cifrar mensaje: Activa/Desactiva el cifrado para el(los) destinatario(s) antes del envío. El usuario es notificado si el cifrado falla. -

      Si Mostrar selección cuando sea necesario está seleccionado en Preferencias - -> pestaña Selección de Claves, una lista de claves aparecerá si hay direcciones en la lista de destinatarios para los que usted no tenga clave pública.

      -

      Si Nunca mostrar diálogo de selección de clave OpenPGP está seleccionado en Preferencias - -> pestaña Selección de Claves, y hay direcciones en la lista de destinatarios para los cuales usted no tiene clave pública, el mensaje será enviado sin cifrar.

      -
    • -
    • Usar PGP/MIME para este mensaje : Activa/Desactiva el uso de - PGP/MIME - para este mensaje. -

      Si usted sabe que el(los) destinatario(s) pueden leer correos usando el formato PGP/MIME, - usted debiera usarlo.

      -

      Esta característica depende de la configuración en Preferencias - -> pestaña PGP/MIME estando configurada para Permitir el uso de PGP/MIME o Siempre usar - PGP/MIME.

      -
    • -
    • Opciones por defecto para redacción: Submenú. -
        -
      • Opciones de Firma/Cifrado...: atajo a Configuración de Cuentas -> - Opciones de OpenPGP.
      • -
      • Opciones de Envío...: atajo a la pestaña Opciones -> - Enviando.
      • -
      • Opciones de Selección de Clave...: atajo a la pestaña Preferencias -> - Selección de Clave.
      • -
      • Opciones PGP/MIME...: atajo a la pestaña Preferencias -> - PGP/MIME.
      • -
      -
    • -
    • Deshacer cifrado: Si hay un fallo al momento del envío, - tal como el servidor POP no aceptando la petición, Enigmail no sabrá al respecto, y el mensaje cifrado continuará siendo mostrado en la ventana de Redacción. Elegir este ítem de menú deshará el cifrado/firmado, devolviendo la ventana de Redacción a su texto original.
      - Como una solución temporal, esta opción puede también ser usada para descifrar el texto citado cuando se responde a mensajes cifrados. Enigmail debiera descifrar automáticamente el texto citado, pero si eso falla por alguna razón, usted puede utilizar este ítem de menú para forzarlo.
    • -
    • Insertar clave pública: inserta la clave pública como un bloque de texto ASCII-blindado en la posición actual del cursor en la ventana de Redacción. Se le preguntará por la dirección email de la(s) clave(s) a ser insertada(s). Las Claves insertadas de esta manera serán reconocidas automáticamente en el lado receptor por Enigmail. Luego de la inserción de clave, usted aún puede elegir firmar/cifrar el mensaje como sea necesario. Además, no inserte más de un bloque de claves en un mensaje; sólo especifique múltiples direcciones email, separadas por comas o espacios, cuando se le pregunte.
    • -
    • Limpiar clave salvada: Limpia la contraseña retenida. útil si usted tiene múltiples contraseñas.
    • -
    • Ayuda: Despliega la información de Ayuda del sitio web (esta página).
    • -
    -
-
-

-Más ayuda disponible en la -Página web de Ayuda de Enigmail

- - diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/editRcptRule.html enigmail-2.2.4/lang/es-ES/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/es-ES/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ - -Enigmail Help: Edit OpenPGP Rule - - -

Ayuda de Enigmail

- -

Usando el Editor de Reglas de Enigmail: Editar Regla OpenPGP

-

En el Editor de Reglas, usted puede especificar valores por defecto por destinatarios para activar cifrado, firmado y PGP/MIME, y para definir qué clave(s) OpenPGP utilizar. En este diálogo, usted puede especificar reglas para un único destinatario, y para un grupo de destinatarios con atributos muy similares.

-
    -
  • Poner Regla OpenPGP para : Contiene la(s) dirección(es) email de el/los destinatario(s) (sin nombres, p.ej. sólo una dirección como alguien@email.dom). Usted puede especificar varias direcciones email, separadas por espacios. La dirección especificada aquí puede consistir sólo de la sección de dominio de modo que cualquier dirección en ese dominio concuerde, p.ej. @email.domain permitirá concordancia a body@email.comain, somebody@email.domain, anybody@email.domain, etc.
  • -
  • Aplicar regla si el destinatario ...: - Esto modifica la concordancia de las direcciones email. Si se ingresa múltiples direcciones, la configuración se aplicará a todas. Los ejemplos abajo están basados en body@email.domain ingresado en el campo Poner Regla OpenPGP para más arriba. -
      -
    • Es exactamente: con esta configuración, la regla sólo se disparará en emails para body@email.domain (comparación exacta, sin considerar mayúsculas/minúsculas).
    • -
    • Contiene: con esta configuración, cualquier dirección email que contenga el patrón concuerda, p.ej. anybody@email.domain o body@email.domain.net
    • -
    • Empieza por : con esta configuración, cualquier dirección email comenzando con el patrón concuerda, p.ej. body@email.domain.net, body@email.domain-name.com.
    • -
    • Acaba en: con esta configuración, cualquier dirección email finalizando en el patrón concuerda, p.ej. anybody@email.domain, somebody@email.domain.
    • -
    - -
  • -
  • Continuar con la siguiente regla para la dirección que coincida
    - Activar esta función le permitirá definir una regla pero no tener que especificar un KeyID en el campo Usar las siguientes claves OpenPGP: - , de modo que la dirección email es usada para buscar una clave al momento de enviar. Además, reglas adicionales para la(s) misma(s) dirección(es) también será(n) procesada(s).
  • -
  • No comprobar más reglas para la dirección que coincida
    - Activar esta función detiene el procesamiento de cualquier otra regla para la(s) dirección(es) que coincide(n) si es que la regla coincide; p.ej. el procesamiento de reglas continúa con el siguiente destinatario.
  • -
  • Usar las siguientes claves OpenPGP:
    - Use el botón Seleccionar Clave(s).. para seleccionar las claves receptoras a ser usadas para el cifrado. Como en la acción de arriba, no se sigue procesando más reglas para la(s) dirección(es) coincidentes.
  • -
  • Por defecto para Firmado: activa o desactiva la firma de mensaje. Esto o bien usa o anula lo que usted ha especificado en la ventana de redacción de mensaje. Los valores son: -
      -
    • Nunca: desactiva el firmado, incluso si está activado en la ventana de redacción de mensaje (anula los otros valores)
      -
    • -
    • Sí, si está seleccionado en la redacción del mensaje: deja el firmado tal como está especificado en la ventana de redacción del mensaje
    • -
    • Siempre: activa el firmado, incluso si no estaba activado en la ventana de redacción del mensaje
    • -
    -
  • -
-
Esas configuraciones para firmado son aplicadas para todas las reglas que coinciden. Si una de las reglas desactiva el firmado, el mensaje no será firmado, sin importar otras reglas que especifiquen Siempre. -
-
    -
  • Cifrado: activa o desactiva el cifrado de mensaje. Las configuraciones permitidas y su significado son las mismas que para la firma de mensajes.
  • -
  • PGP/MIME: activa o desactiva el uso de la codificación de mensaje PGP/MIME (RFC 3156). - Si PGP/MIME está desactivado, los mensajes son codificados utilizando "inline PGP". Los valores permitidos y sus significados son los mismos que para la firma de mensajes.
  • -
-

Las reglas son procesadas en el orden en que se muestran en la lista en el Editor de Reglas OpenPGP. Siempre que una regla coincide con un destinatario y contiene una KeyID OpenPGP, adicionalmente a usar la KeyID especificada, el destinatario deja de ser considerado al procesar otras reglas adicionales.

-
-

-Ayuda adicional disponible en la página de Configuración Por-Destinatario de Enigmail

- - diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/initError.html enigmail-2.2.4/lang/es-ES/help/initError.html --- enigmail-2.1.6+ds1/lang/es-ES/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/messenger.html enigmail-2.2.4/lang/es-ES/help/messenger.html --- enigmail-2.1.6+ds1/lang/es-ES/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -Ayuda de Enigmail: Lectura de mensajes - - - -

Ayuda de Enigmail

-

Usando Enigmail para leer mensajes

    -
  • Botón Descifrar en la ventana principal de correo
    -Este botón se puede usar para varios propósitos: descifrar, verificar o importar claves públicas. Normalmente el descifrado/verificación se realiza automáticamente, aunque hay una opción para desactivar esto. Sin embargo, si esto falla, normalmente aparecerá un breve mensaje de error en la línea de estado de Enigmail. Si se pulsa el botón Descifrar, podrá ver un mensaje de error más detallado, incluyendo la salida del comando GnuPG.
  • -
  • Los iconos Lápiz y Llave mostrados en la cabecera del mensaje
    -Los iconos Lápiz y Llave en la cabecera del mensaje indican si el mensaje que se está leyendo está firmado y/o cifrado y si la firma es buena, es decir; que el mensaje no se ha modificado desde el momento de su firma. Si el mensaje ha sido modificado, el icono del Lápiz cambiará a un Lápiz roto para indicar que la firma no es correcta. Al pulsar con el botón derecho del ratón en los iconos del Lápiz o Llave, se obtendrá un menú con las siguientes opciones: -

      -
    • Información de seguridad OpenPGP: permite ver el estado de salida de GnuPG para el mensaje.
    • -
    • Copiar información de seguridad OpenPGP: copia el estado de salida de GnuPG al portapapeles; para pegarlo en un mensaje de respuesta, etc.
    • -
    • Ver ID fotográfico OpenPGP: permite ver la Foto ID de la persona que envió el mensaje, si tiene una foto incrustada en su clave pública (Esta opción sólo se activará si existe un ID fotográfico en su clave).
    • -
    • Información de seguridad S/MIME: permite ver la información de seguridad S/MIME del mensaje.
    • -
    -

    Si no tiene puesta la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y lee un mensaje que está firmado o cifrado, verá un icono de un Lápiz en el área de visión de las cabeceras con un Signo de interrogación y, la línea de estado de Enigmail en el área de las cabeceras dirá: Parte del mensaje firmado; pulse el icono del lápiz para más detalles y el mensaje en el panel de mensajes mostrará todos los indicadores del bloque del mensaje OpenPGP y el bloque de la firma.

    -

    También se puede ver esto si tiene activada la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y la clave OpenPGP no está disponible en el servidor de claves predeterminado.

    -

    Al pulsar en el icono del Lápiz y Signo de interrogación abrirá una ventana avisando que la clave no está disponible en el anillo de claves. Al pulsar en Aceptar abrirá otra ventana con una lista de servidores de claves en los que puede seleccionar para descargar la clave pública del remitente.

    -

    Para configurar la lista de servidores de claves que desee usar, vaya a la pestaña Enigmail -> Preferencias -> Básicas e introduzca la dirección de los servidores de claves en el recuadro Servidor(es) de claves: separados por una coma. El primer servidor de claves de la lista se usará como predeterminado.

    -
  • -
  • Abrir adjuntos cifrados / importar claves OpenPGP adjuntas
    -Los adjuntos con el nombre *.pgp, *.asc y *.gpg se reconocen como adjuntos que se pueden manejar especialmente con Enigmail. Al pulsar con el botón derecho en un adjunto de este tipo se activan dos elementos especiales en el menú contextual: Descifrar y Abrir y Descifrar y Guardar. Use estos elementos si desea que Enigmail descifre un adjunto antes de abrirlo o guardarlo. Si se reconoce un adjunto como un archivo de clave OpenPGP, se le ofrece la posibilidad de importar las claves a sus anillos.
  • -

-

Más ayuda disponible en la página Web de ayuda de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/rulesEditor.html enigmail-2.2.4/lang/es-ES/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/es-ES/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -Ayuda de Enigmail: Editor de reglas - - - -

Ayuda de Enigmail

-

Usando el editor de reglas de Enigmail

-

En el editor de reglas, se pueden especificar opciones predeterminadas por destinatario para activar el cifrado, firma y PGP/MIME, así como definir qué clave(s) OpenPGP usar. Cada regla consiste de 5 campos y se representa en una sola línea:

-
    -
  • Correo electrónico: Las direcciones de correo en los campos Para:, Cc: y Cco: tienen que coincidir. La coincidencia funciona en subcadenas (Más detalles en el diálogo de Editar regla)
  • -
  • Clave(s) OpenPGP: Una lista de IDs de claves OpenPGP para usar con el destinatario.
  • -
  • Firmar: Activar o desactivar el firmado de mensajes. Esta opción usa o ignora lo que se haya especificado en la ventana de redacción de mensajes. Los valores son: -
      -
    • Nunca: Desactiva la firma, incluso si estaba activada en la ventana de redacción del mensaje (tiene preferencia sobre los otros valores).
    • -
    • Posible: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
    • -
    • Siempre: Activar la firma, incluso si no está activada en la ventana de redacción de mensajes.
    • -
-
Estas opciones de firma se aplican a todas las reglas que las cumplan. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de otras reglas que especifiquen Siempre.
-
    -
  • Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma.
  • -
  • PGP/MIME: Activa o desactiva el uso de la codificación del mensaje PGP/MIME (RFC 3156). Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
  • -
-

Las reglas se procesan en el orden mostrado en la lista. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario no se tendrá en consideración al procesar más reglas.

-

NOTA: El editor de reglas aún no está completo. Es posible escribir algunas reglas más avanzadas editando directamente el archivo de reglas (en cuyo caso, éstas no se deben volver a editar mediante el editor). Más información para editar el archivo directamente se encuentra disponible en la página Web de Enigmail.

-

Más ayuda disponible en la página Web de ayuda de Enigmail

- diff -Nru enigmail-2.1.6+ds1/lang/es-ES/help/sendingPrefs.html enigmail-2.2.4/lang/es-ES/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/es-ES/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/es-ES/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/compose.html enigmail-2.2.4/lang/eu/help/compose.html --- enigmail-2.1.6+ds1/lang/eu/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Laguntza: Mezua Idatzi - - - - - -

Enigmail Laguntza

- -

Enigmail erabiltzen mezuak idazterakoan

- -
-
Enigmail menua e-posta idazteko lehioan
- -
-
-
Mezua sinatu
- -
Mezua sinatuta bidaltzeko aukera gaitu/ezgaitu. Erabiltzaileari ohar bat aterako zaio sinadurak huts egiten badu.
- -
Mezua zifratu
-
-

Bidali aurretik hartzaile guztientzat mezua zifratzeko aukera gaitu/ezgaitu. Erabiltzaileari ohar bat aterako zaio zifraketak huts egiten badu.

- -

Aukeraketa behar denean erakutsi Lehentasunak -> Gako Aukeraketa fitxan aktibatuta badago, gako zerrenda bat agertuko da hartzaile zerrendan dauden eta euren gako publikorik ez duzun hartzaileentzako.

- -

Ez erakutsi inoiz OpenPGP gako aukeraketa lehioa Lehentasunak -> Gako Aukeraketa fitxan gaituta badago, eta hartzaile zerrendan dagoen hartzaile baten gako publikoa baldin ez baduzu, mezua zifratu gabe bidaliko da.

-
- -
Mezu honetan PGP/MIME erabili
- -
- Mezu honetarako PGP/MIME erabilera gaitu/ezgaitu. - -

Hartzaileek e-postak PGP/MIME formatuan irakurri ditzaketela baldin badakizu, erabili beharko zenuke.

- -

Ezaugarri honek Lehentasuanak -> PGP/MIME fitxan dauden PGP/MIME erabiltzen utzi edo Beti PGP/MIME erabili aukerekin dependentzia dauka.

-
- -
Idazteko aukera lehenetsitak
- -
-
    -
  • Sinatu/Zifratu Aukerak...: Kontu Ezarpenak -> OpenPGP Aukerak-rantz laisterbidea
  • - -
  • Bidalketa Aukerak...: Lehentasunak -> Bidali fitxarako laisterbidea
  • - -
  • Gako aukeraketa aukerak...: Lehentasunak -> Gako aukeraketa fitxarako laisterbidea.
  • - -
  • PGP/MIME aukerak...: Lehentasunak -> PGP/MIME fitxarako laisterbidea.
  • -
-
- -
Zifraketa desegin
- -
-

Mezua bidaltzerakoan arazoren bat baldin badago, adibidez, POP serbitzariak eskaera onartzen ez badu, Enigmail-ek ez du horren berri izango eta zifratutako mezua Idatzi lehioan agertzen jarraituko du. Menuaren aukera hau hautatuz sinadura/zifraketa desegingo du, Idatzi lehioa hasieran zegoen testura bueltatuz

- -

Behin-behineko konponketa bezala, aukera hau erabili daiteke zifratutako mezuak erantzuterakoan aipatutako testua argitzeko. Enigmailek automatikoki aipatutako mezua argitu beharko luke, baina horrek huts egiten badu, menu aukera hau erabili dezakezu hori behartzeko

-
- -
Gako publikoa txertatu
- -
Idatzi lehioan, kurtsorea dagoen tokian ASCII-babestua formatuan gako publiko bloke bat txertatzen du. Txertatuko den/diren gakoen helbide elektronikoak eskatuko zaizkizu. Modu honetan sartzen diren gakoak, heltzerakoan Enigmailek automatikoki detektatuko ditu. Txertatu eta gero, e-posta oraindik sinatu edo zifratu dezakezu. Horretaz gain, ez ezazu gako bloke bat baino gehiago sartu mezu bakoitzeko; helbide elektroniko bat baino gehiago jarri nahi baduzu, eskatzen dizkizunean komen edo espazioen bitartez bereizita sartu itzazu.
- -
Ezabatu gordetako pasahitza
- -
Katxeatu den pasahitza ezabatzen du. Erabilgarria da pasahitz baino gehiago dituzunean.
- -
Laguntza
- -
Laguntza informazio weborria (orri hau) erakusten du.
-
-
-
-
- -

Laguntza gehiago nahi baduzu, Enigmail Laguntza weborrian aurkitu dezakezu.

- - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/editRcptRule.html enigmail-2.2.4/lang/eu/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/eu/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Laguntza: OpenPGP Araua Editatu - - - - - -

Enigmail Laguntza

- -

Enigmail Arau Editorea Erabiltzen: OpenPGP Araua Editatu

- -

Arau editorean, hartzaile bakoitzaren lehenetsitako aukerak jarri ditzakezu zifraketa, sinadura, PGP/MIME eta ze OpenPGP gakoak erabiliko diren arloetan. Lehio honetan, hartzaile bakar batentzat arauak sartu ditzakezu eta, baita ere, antzeko ezaugarriak dituzten hartzaileentzat..

- -
-
OpenPGP Arauak honetarako ezarri
- -
Hartzaileen helbide elektronikoak izango ditu (izenik gabe, hau da, helbidea bakarrik norbait@helbidea.domeinua bezala). Helbide elektroniko bat baino gehiago sartu dezakezu hutsuneekin tartekatuz. Hemen sartzen diren helbideak domeinuaren zatiarekin bakarrik sartu daitezke, horrela domeniu horretako edozein helbide elektronikoarekin bat egingo du, adibidez @helbidea.domeinua domeinua norbait@helbidea.domeinua, edonor@helbidea.domeinua, eta abarrekin bat etorriko da.
- -
Araua aplikatu hartzaileak...
- -
Hoek helbide elektronikoen bateratzea aldatuko du. Helbide bat baino gehiago sartu badira, ezaugarri hau guztietara aplikatuko dira. Azpian dauden adibideak izena@helbidea.domeinua erabiliko dute goian dagoen OpenPGP Arauak eremuan. - -
    -
  • Zehazki bada: ezaugarri honekin araua bakarrik aplikatuko da izena@helbidea.domeinua helbidearekin (zehazki, letra larriak eta xeheak ezberdindu gabe).
  • - -
  • Badauka: ezaugarri honekin, testu hori daukan edozein helbiderekin bateratuko da, adibidez abizena_izena@helbidea.domeinua edo izena@helbidea.domeinua.net
  • - -
  • Honekin hasten da: ezaugarri honekin, testu honekin hasten den edozein helbiderekin bateratuko da, adibidez izena@helbidea.domeinua.net, izena@helbidea.domeinua-izena.com.
  • - -
  • Honekin bukatzen da da:ezaugarri honekin, testu honekin bukatzen den edozein helbiderekin bateratuko da, adibidez abizena_izena@helbidea.domeinua , ezizena@helbidea.domeinua.
  • - -
-
- -
Bat datozen helbideekin hurrengo arauarekin jarraitu
- -
Funtzio honek arau bat definitzen uzten dizu Hurrengo OpenPGP gakoak erabili: eremuan GakoID-rik zehaztu behar izan gabe, horrela bidaltzeko momentuan helbide elektronikoa erabiliko da gakoa bilatzeko. Horretaz gain, helbide berdinentzat arau gehiago badaude, hauek ere prozesatuko dira.
- -
Ez bilatu arau gehiago bateratutako helbideentzat
- -
Aukera hau gaitzen baduzu, arau honekin bateratzen bada, prozesamenduak ez ditu arau gehiago bilatuko helbide honentzako; hau da, hurrengo hartzailearekin hasiko da.
- -
Hurrengo OpenPGP gakoak erabili:
- -
Gakoa(k) Aukeratu.. botoia erabili ezazu zifratzeko erabiliko diren hartzailearen gakoak aukeratzeko. Goiko ekintzaren moduan, arau honekin baterantzen diren helbideek ez dute prozesua jarraituko.
- -
Sinatzeko Lehenetsita
- -
- Mezuaren sinadura gaitu edo ezgaitu. Honek mezua idazteko lehioan jarri duzuna erabili edo jaramonik ez egitea zehazten du. Balioak hauek izan daitezke: - -
    -
  • Inoiz: sinadura ezgaitu, nahiz eta mezua idazteko lehioan bestela esanda (beste balioei ez die jaramonik egiten)
  • - -
  • Bai, Mezua idazteko lehioan aukeratzen bada: sinadura mezua idazteko lehioan jartzen duen bezela egin
  • - -
  • Beti: sinadura gaitu, mezua idazteko lehioan aukera hori gaituta egonez arren
  • -
Sinadura ezarpen hauek bateratzen diren arau guztietara aplikatuko da. Arau batek sinadura ezgatzen badu, mezua ez da sinatuko, nahiz eta beste arau batzuk Beti esaten duten. -
- -
Zifraketa
- -
Mezuaren zifraketa gaitu edo ezgaitu. Jarri daitezken ezaugarriak eta euren esanahia sinaduran daudenen berdinak dira.
- -
PGP/MIME
- -
PGP/MIME (RFC 3156) mezu kodifikazioa gaitu edo ezgaitu. PGP/MIME ezgaituta badago, mezuak "txertatutako PGP" erabiliz kodifikatuko dira. Jarri daitezken ezaugarriak eta euren esanahia sinaduran daudenen berdinak dira.
-
- -

Arauak OpenPGP Arau Editorean dagoen zerrendaren ordenean prozesatuko dira. Hartzaile batek arau batekin bat datorrenean eta arau horrek OpenPGP gako ID-a badauka, gako ID hori erabiltzeaz gain, hartzailea ez da gehiago kontutan izango ondorengo arauak prozesatzerakoan.

-
- -

Laguntza gehiago nahi baduzu Enigmail Hartzaile Bakoitzeko Ezaugarriak weborrian aurkitu dezakezu

- - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/initError.html enigmail-2.2.4/lang/eu/help/initError.html --- enigmail-2.1.6+ds1/lang/eu/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - Enigmail Laguntza: Nola Konpondu OpenPGP Hasieratzerakoan Dauden Arazoak - - - - - -

Enigmail Laguntza

- -

Nola Konpondu OpenPGP Hasieratzerakoan Dauden Arazoak

- -

Arrazoi asko egon daitezke OpenPGP hasieratzerakoan errorea emateko. Ohikoenak azpian agertzen dira; informazio gehiago nahi baduzu, Enigmail Laguntza weborrian aurkitu dezakezu. - -

-
GnuPG ezom ozam da aurkitu
-
-

- OpenPG funtzionatu dezan GnuPG tresna instalatuta egon behar du. - GnuPG ezin izan bada aurkitu, lehendabizi gpg.exe (Windows-en; gpg beste plataformetan) exekutagarria zure ordenagailuan instalatuta dagoela ziurtatu zaitez. - GnuPG instalatuta badago eta OpenPGP-k ezn badu aurkitu, OpenPGP lehentasunetan (menua OpenPGP > Lehentasunak) GnuPG-ren helbidea eskuz jarri beharko diozu. -

- -
Enigmime hasieratzerakoan huts egin du
- -
-

- OpenPGP bakarrik funtzionatuko du Thunderbird edo SeaMonkey eraiki ziren ingurune berdinean eraki bada. Horrek esan nahi du, Enigmail-en bertsio ofiziala bakarrik mozilla.org argitaratutako Thunderbird edo SeaMonkey bertsio ofizialekin bakarrik erabili daitekeela. -

-

- Beste jatorri bat daukan Thunderbird edo SeaMonkey erabiltzen baduzu (adibidez, zure Linux banaketarekin datorrena), edo zuk zeuk aplikazioa eraiki baduzu, jatorri berdinarekin eraiki den Enigmail bertsio bat erabili beharko zenuke, edo zuk zeuk Enigmail eraiki. Enigmail erakitzeko Iturburu Kodea atalera jo ezazu Enigmail weborrian. Mesedez, ez bidali akats txosten bat arazo honekin, konponketarik ez baitauka. -

-
-
- -

Informazio gehiago nahi baduzu Enigmail Laguntza weborrian aurkitu dezakezu.

- - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/messenger.html enigmail-2.2.4/lang/eu/help/messenger.html --- enigmail-2.1.6+ds1/lang/eu/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ - - - - - Enigmail Laguntza: Mezuak Irakurri - - - - - -

Enigmail Laguntza

- -

Enigmail erabili mezuak irakurtzeko

- -
-
Posta lehioan dagoen Argitu botoia
- -
Botoi hau gauza askotarako erabili daiteke: argitu, egiaztatu edo gako publikoak inportatzeko. Normalean, argitzea/egiaztatzea automatikoki egiten da, baina aukera hau ezgaitu daiteke lehentasun baten bitartez. Honek huts egiten badu, normalean Enigmailen egoera-lerroan mezu motz bat agertuko da. Argitu botoian klik eginez, xehetasun gehiago dituen errore mezua ikusi ahal izango duzu, GnuPG komandoaren irteeera barne.
- -
Idazluma eta Giltza ikonoak Mezuaren Goiburuan
- -
Idazluma eta Giltza ikonoek mezua sinatuta edo/eta zifratuta dagoela erakusten dute, baita sinadura ona bada ere, hau da, mezua sinatu zenetik aldatu baldin ez bada. Mezua aldatu baldin bada, Idazluma ikonoa Idazluma Apurtu batera aldatuko da sinadura oker dagoela adierazteko. Idazluma eta giltza ikonoetan eskubiko klik eginez hurrengo aukerak dituen menua agertuko da: - -
    -
  • OpenPGP Sekurtasun informazioa: GnuPG-k mezuarentzat atera duen egoera erakutsiko dizu.
  • - -
  • OpenPGP Sekurtasun informazioa kopiatu: GnuPG-k atera duen egorea arbelera kopiatuko du; adibidez, erantzun batean itxasteko e.a.
  • - -
  • OpenPGP argazki ID-a ikusi: mezua bidali zuen pertsonaren Argazki ID-a erakutsiko dizu, euren argazkia gako publikoaren barruan txertatu baldin badu.(Aukera hau gaituta agertuko da bakarrik beraren gakoan Argazki ID-a txertatuta baldin badago.)
  • - -
  • S/MIME Sekurtasun informazioa: mezuaren S/MIME sekurtasun informazioa erakutsiko dizu.
  • -
- -

Zure gpg.conf fitxategian gako-serbitzari-aukerak gakoak-auto-inportatu gaituta ez baldin baduzu eta sinatutako edo zifratutako mezu bat irakurtzen baduzu, goiburuan dagoen Idazluma ikonoak Galdera ikur bat izango du, eta goiburuan dagoen Enigmail egoera-lerroak hurrengoa esango du: Mezuaren zati bat sinatuta dago; xehetasunentzako idazluma ikonoak klik egin ezazu; horretaz gain mezu panelean OpenPGP mezu bolkearen adierazleak eta sinadura blokeak erakutsiko ditu.

- -

Hau ere ikusi dezakezu zure gpg.conf fitxategian gako-serbitzari-aukerak gakoak-auto-inportatu gaituta gaituta badaukazu eta mezuaren OpenPGP gakoa lehenetsitako gako-serbitzarian eskuragarri ez baldin badago.

- -

Idazluma eta Galdera ikurra ikonoan klik egiten baduzu, gakoa zure gako giltzatakoan ez dagoela abisatzeko lehioa agertuko da. Ados sakatuz, beste lehio bat erakutsiko da, honetan gako-zerbitzari zerrenda bat agertuko da eta bertan igorlearen gako publikoa deskargatzeko serbitzaria aukeratu ahal izango duzu.

- -

Erabiliko diren gako-serbitzaren zerrenda konfiguratzeko, Enigmail -> Lehentasunak -> Oinarrizkoak fitxara joan zaitez eta gako-serbitzarien helbideak Gako-serbitzaria(k): eremuan sartu itzazu koma bitartez bananduz. Zerrendan dagoen lehendabiziko gako-serbitzaria lehenetsitakoa bezela erabiliko da

-
- -
Zifratutako eranskikak ireki / Erantsitako OpenPGP gakoak inportatu
- -
*.pgp, *.asc eta *.gpg luzapena duten eranskinak Enigmailek bereziak bezala identifikatuko ditu eta tratamendu berezia emango die. Eranskin hauetan eskubiko klik egiten baduzu, laister-menuan bi sarrera berezi agertuko dira: Argitu eta Ireki eta Argitu eta Gorde. Bi menu sarrera hauek erabili itzazu eranskinak ireki edo gorde baino lehen argitu nahi badituzu. Eranskin bat OpenPGP gako fitxategi bat bezela antzematen badu, zure giltzatakoan gakoak inportatzeko aukera emango dizu.
-
-
- -

Laguntza gehiago nahi baldin baduzu Enigmail Laguntza weborrian aurkitu dezakezu.

- - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/rulesEditor.html enigmail-2.2.4/lang/eu/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/eu/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - Enigmail Laguntza: Arau Editorea - - - - - -

Enigmail Laguntza

- -

Enigmail Arau Editorea Erabiltzen

- -

Arau editorean, hartzaile bakoitzaren lehentasunak jarri ditzakezu zifraketa, sinadura eta PGP/MIME gaitzeko, baita ze OpenPGP gako erabiliko diren. Arau bakotzak lerro batean agertzen diren 5 eremu dira:

- -
-
E-posta
- -
Hartzailea:, Cc: eta Bcc: eremuekin bateratuko den helbide elektronikoa(k). Bateratzea testu zatietan lan egiten du (Xehetasun geiago Araua Editatu lehioan aurkitu daitezke)
- -
OpenPGP Gakoa(s)
- -
hartzailearentzat erabiliko diren OpenPGP gako ID zerrenda
- -
Sinatu
- -
mezuaren sinadura gaitu edo ezgaitu. Honek mezua idazteko lehioan jarrtzen diozunaren arabera edo haiei jaramonik egin gabe lan egin dezake. Balioak honakoak dira: - -
    -
  • Inoiz: sinadura ezgaitu, mezua idazteko lehioan gaituta egon arren (beste balioei ez die jaramonik egiten)
  • - -
  • Posible: sinadura mezua idazteko lehioan agertzen denaren arabera egingo da
  • - -
  • Beti: sinaduar gaitu, mezua idazteko lehioan aukera hori gaituta egon ez arren
  • -
- -

Sinadura ezarpen hauek bateratzen diren arau guztiekin aplikatzen da. Arau batek sinadura ezgaitzen badu, mezua ez da sinatuko, nahiz eta beste arauek Beti esaten duten.

-
- -
Zifratu
- -
mezuaren zifraketa gaitu edo ezgaitu. Onartutako ezarpenak eta euren esanahia sinadurarenak bezalakoak dira.
- -
PGP/MIME
- -
PGP/MIME (RFC 3156) mezu kodifikazioaren erabilera gaitu edo ezgaitu. PGP/MIME ezgaituta badago, mezuak "txertatutako PGP" erabiliz erabiliko dira. Onartutako ezarpenak eta euren esanahia sinadurarenak bezalakoak dira.
-
- -

Arauak zerrendan agertzen diren ordenean prozesatuko dira. Hartzaile batek arau batekin bat datorrenean eta arau horrek OpenPGP gako ID-a badauka, gako ID hori erabiltzeaz gain, hartzailea ez da gehiago kontutan izango ondorengo arauak prozesatzerakoan.

- -

Oharra: Arau editorea oraindik bukatu gabe dago. Arau aurreratuagoak egin daitezke arau fitxategia zuzenean editatuz (arau hauek ez lirateke inoiz gehiago arau editorearekin editatu behar).Informazio gehiago nahi baduzu arau fitxategia zuzenean editatzeari buruz Enigmail weborrian aurkitu dezakezu

-
- -

Laguntza gehiago nahi baduzu Enigmail Laguntza weborrian aurkitu dezakezu

- - diff -Nru enigmail-2.1.6+ds1/lang/eu/help/sendingPrefs.html enigmail-2.2.4/lang/eu/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/eu/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/eu/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/fa/am-enigprefs.properties enigmail-2.2.4/lang/fa/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/fa/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=امنیت OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/fa/enigmail.dtd enigmail-2.2.4/lang/fa/enigmail.dtd --- enigmail-2.1.6+ds1/lang/fa/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' استفاده کنید"> - - -' برای مشخص سازی آدرس های ایمیل برای GnuPG. اگر گیرندگان دارای کلید های Hushmail قدیمی می باشند غیرفعال کنید."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - امنیت OpenPGP را ببینید)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -توجه: تولید کلید ممکن است چندین دقیقه بگیرد تا تکمیل شود.زمانی که تولید کلید در حال انجام است از برنامه خارج نشوید. گشت و گذار به صورت فعال و انجام عملیات های سنگین دیسک در طول تولید کلید باعث تقویت 'مخزن تصادفی بودن' شده و این رویه را سرعت می بخشد. زمانیکه تکمیل شد شما آگاه خواهید شد."> - @@ -296,495 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' نامعتبر می باشد"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -توجه: تولید کلید ممکن است چندین دقیقه طول بکشد تا کامل شود. زمانیکه تولید کلید در حال انجام است از برنامه خارج نشوید. زمانیکه تولید کلید کامل شد شما آگاه خواهید شد."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/fa/enigmail.properties enigmail-2.2.4/lang/fa/enigmail.properties --- enigmail-2.1.6+ds1/lang/fa/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=هشدار Enigmail enigConfirm=تایید Enigmail enigInfo=اطلاعات Enigmail -enigError=خطا Enigmail enigPrompt=پرامپت Enigmail - -dlgYes=&بلی dlgNo=&خیر dlgKeepSetting=پاسخ من را به یاد داشته باش و دیگر از من سوال نپرس dlgNoPrompt=این دیالوگ را دیگر به من نشان نده -dlg.button.delete=&حذف dlg.button.cancel=&لغو dlg.button.close=&بستن dlg.button.continue=&ادامه -dlg.button.skip=&پرش -dlg.button.overwrite=&اوورایت -dlg.button.view=&نمایش -dlg.button.retry=&تلاش دوباره -dlg.button.ignore=&چشم پوشی -dlg.button.install=&نصب dlg.button.ok=&اوکی - repeatPrefix=\n\nاین هشدار %S را تکرار خواهد کرد repeatSuffixSingular=زمان بیشتر. repeatSuffixPlural=به تعداد دفعات بیشتر noRepeat=\n\nاین هشدار تا زمان آپگرید Enigmail تکرار نخواهد شد. - -pgpNotSupported=به نظر می آید که شما در حال استفاده از Enigmail با PGP 6.x می باشید\n\nمتاسفانه، PGP 6.x تعدادی مشکل دارد که از کار کردن Enigmail به درستی جلوگیری میکند. بنابراین، Enigmail از PGP 6.x بیشتر از این پشتیبانی نمی کند؛ لطفا به جای آن از GnuPG (GPG) استفاده کنید.\n\nاگر برای استفاده از GnuPG نیاز به کمک دارید، بخش راهنما در صفحه اصلی Enigmail را بررسی کنید. -initErr.howToFixIt=برای استفاده از Enigmail، داشتن GnuPG ضروری می باشد. اگر هنوز GnuPG را نصب نکرده اید، آسان ترین راه استفاده از دکمه "ویزارد نصب" که در پایین آمده می باشد. -initErr.setupWizard.button=&ویزارد نصب passphraseCleared=عبارت عبور پاک شده است. cannotClearPassphrase=شما در حال استفاده از یک ابزار غیر-استاندارد (مثل gnome-keyring) برای کنترل عبارت عبور می باشید. بنابراین پاک سازی عبارت عبور از طریق Enigmail ممکن نیست. -noPhotoAvailable=هیچ تصویری موجود نمی باشد -debugLog.title=لاگ اشکال زدایی Enigmail -error.photoPathNotReadable=مسیر تصویر '%S' قابل خواندن نمی باشد - -generalError=خطا: S% - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=این نسخه جدید از Enigmail دارای تغییرات قابل توجهی در کنترل ترجیحات و گزینه ها می باشد. ما سعی کردیم تا تنظیمات قدیمی را به این نسخه جدید انتقال دهیم. هرچند، ما نمی توانیم تمام موارد را به صورت خودکار پوشش دهیم. لطفا ترجیحات و گزینه های جدید را دوباره بررسی کنید. -enigmailCommon.checkPreferences=کنترل ترجیحات ... -preferences.defaultToPgpMime=ما پیام پیش فرض رمزنگاری شده در Enigmail را از Inline-PGP به PGP/MIME تغییر دادیم. ما پیشنهاد می کنیم تا شما این را به عنوان پیشفرض نگه دارید.\n\nاگر همچنان مایل به استفاده از Inline-PGP به صورت پیشفرض می باشید، می توانید آن را از تنظیمات حساب کاربری در زیر امنیت OpenPGP فعال کنید. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=اجراء Enigmail نسخه S% -enigmailPepVersion=Enigmail/p≡p نسخه %S usingAgent=استفاده از %1$S قابل اجرا %2$S برای رمزنگاری و رمزگشایی agentError=خطا: ناتوانی در دسترسی به سرویس اصلی Enigmail - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=خطا در هنگام دسترسی به سرویس Enigmail -onlyGPG=تولید کلید فقط با GnuPG کار می کند ( نه PGP)! - -keygenComplete=تولید کلید کامل شد! از هویت <%S> برای امضا استفاده خواهد شد. -revokeCertRecommended=ما به شدت توصیه میکنیم تا یک گواهی فسخ برای کلید خود ایجاد کنید. این گواهی برای باطل کردن کلید خود می توانند استفاده شود، مثلا در موردی که کلید خصوصی شما گم شود یا در معرض خطر قرار بگیرد. آیا میخواهید چنین گواهی فسخی را الان ایجاد کنید؟ -keyMan.button.generateCert=&تولید گواهی -genCompleteNoSign=تولید کلید کامل شد! -genGoing=تولید کلید در حال انجام می باشد! - -passNoMatch=عبارت های عبور وارد شده با یکدیگر تطابق ندارند; لطفا دوباره وارد کنید -passCheckBox=لطفا جعبه را در صورت مشخص نکردن عیچ عبارت عبور برای کلید علامت بزنید -passUserName=لطفا نام کاربر برای این هویت را مشخص کنید -keygen.missingUserName=هیچ نامی برای حساب کاربری/هویت انتخاب شده مشخص نشده است. لطفا یک مقدار را در فیلد "نام شما" در تنظیمات حساب کاربری وارد کنید. -keygen.passCharProblem=شما در حال استفاده از کاراکتر های خاص در عبارت عبور خود می باشید. متاسفانه، این کار باعث ایجاد مشکل برای برنامه های دیگر خواهد شد. ما توصیه میکنیم تا یک عبارت عبور که حاوی فقط این کاراکتر ها می باشد انتخاب کنید:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=به دلایل فنی، عبارت عبور شما نمی تواند با یک کاراکتر فاصله آغاز شود یا پایان یابد. -changePassFailed=تغییر عبارت عبور ناموفق بود. - -keyConfirm=تولید کلید عمومی و خصوصی برای 'S%'؟ -keyMan.button.generateKey=&تولید کلید -keyAbort=لغو تولید کلید؟ -keyMan.button.generateKeyAbort=&لغو تولید کلید -keyMan.button.generateKeyContinue=&ادامه تولید کلید -expiryTooLong=شما نمی توانید یک کلید ایجاد کنید که در در صد سال آینده منقضی خواهد شد. -expiryTooLongShorter=شما نمی توانید یک کلید ایجاد کنید که بعد از 90 سال فسخ می شود. -expiryTooShort=کلید شما باید حداقل برای یک روز معتبر باشد. -keyGenFailed=تولید کلید ناموفق بود. لطفا کنسول Enigmail را (منو Enigmail > گزینه های اشکال زدایی) برای جزییات بیشتر بررسی کنید. -setKeyExpirationDateFailed=تاریخ انقضا قابل تغییر نیست - -# Strings in enigmailMessengerOverlay.js -securityInfo=اطلاعات امنیتی Enigmail\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *پیوست های به این پیام امضا یا رمزنگاری نشده اند*\r\n\r\n -possiblyPgpMime=احتمالا پیام رمزنگاری شده PGP/MIME و یا پیام امضا شده نمی باشد؛ از عمل 'رمزگشایی/تایید' برای تایید آن استفاده کنید - -saveAttachmentHeader=Enigmail: ذخیره ضمیمه رمزگشایی شده -noTempDir=ناتوانی در یافتن یک پوشه موقت برای نوشتن بر آن\nلطفا متغیر محیطی TEMP را تنظیم کنید -attachmentPgpKey=پیوست 'S%' که شما قصد باز کردن آن را دارید به نظر می آید که یک فایل کلید OpenPGP باشد.\n\nروی 'وارد کردن' برای وارد کردن کلیدهایی که حاوی می باشند کلیک کنید یا برای دیدن محتواهای فایل در یک پنجره مرورگر روی 'دیدن' کلیک کنید - -beginPgpPart=********* *آغاز بخش امضا شده یا رمزنگاری شده* ********* -endPgpPart=********** *پایان بخش امضا‌ء شده یا رمزنگاری شده* ********** -notePartEncrypted=Enigmail: *بخش هایی از پیام امضا و یا رمزنگاری نشده اند * -noteCutMessage=Enigmail: *چندین قسمت پیام یافت شد -- رمزنگاری/تایید لغو شد* - -decryptOkNoSig=هشدار\n\nرمزگشایی با موفقیت انجام شد، اما امضاء به درستی تایید نشد -msgOvl.button.contAnyway=&ادامه به هر صورت -signature.verifiedOK=امضا برای پیوست S% با موفقیت تایید شد -signature.verifyFailed=امضاء مربوط به پیوست S% قابل تایید نیست -attachment.noMatchToSignature=ناتوانی در تطابق فایل امضا '%S' با یک ضمیمه -attachment.noMatchFromSignature=ناتوانی در تطابق فایل امضا '%S' با یک ضمیمه -fixBrokenExchangeMsg.failed=ناتوانی در اصلاح ‍پیام. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=وارد کردن کلید -wksNoIdentity=کلید به هیچ یک از حساب های ایمیل شما پیوند زده نشده است. لطفا یک حساب کاربری حداقل برای یکی از ایمیل (های) آمده اضافه کنید:\n\nS% -wksConfirmSuccess=ایمیل تایید ارسال شد. -wksConfirmFailure=ارسال ایمیل تایید ناموفق بود. -autocrypt.importSetupKey.accountPreconfigured=حساب کاربری شما هم اکنون به درستی برای Autocrypt پیکربندی شده است.\n\nآیا واقعا می خواهید تا تنظیمات خود را با این پیام نصب رونویسی کنید؟ -autocrypt.importSetupKey.selfCreated=این پیام توسط همین برنامه Enigmail ایجاد شده است.\n\nلطفا به کلاینت ایمیل که میخواهید تنظیمات خود را به آن انتقال دهید سوئیچ کنید، و روی پیام در آن کلاینت ایمیل برای درون برد تنظیمات کلیک کنید. -autocrypt.importSetupKey.invalidMessage=خطا - ناتوانی در خواندن پیام نصب. پیام به نظر خراب می باشد. لطفا سعی کنید تا یک پیام نصب جدید روی دستگاه "دیگر" خود ایجاد کند. -autocrypt.importSetupKey.invalidKey=خطا - کلید نمی تواند ایمپورت شود. کلید یا توسط نسخه GnuPG شما پشتیبانی نمی شود، یا خراب می باشد. -autocrypt.importSetupKey.wrongPasswd=رمز عبور وارد شده صحیح نیست. قصد دارید دوباره امتحان کنید؟ -autocrypt.importSetupKey.success=پیام نصب Autocrypt با موفقیت پردازش شد. Autocrypt هم اکنون برای حساب کاربری '%S' موجود می باشد. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=انتخاب کلید های OpenPGP برای وارد کردن keysToUse=انتخاب کلید(های) OpenPGP به منظور استفاده برای S% pubKey=کلید عمومی برای S%\n - -windowLocked=پنجره نوشتن قفل می باشد؛ ارسال لغو شد -sendUnencrypted=ناموفقیت در شروع Enigmail.\nارسال پیام رمزنگاری نشده؟ -composeSpecifyEmail=لطفا آدرس ایمیل اصلی خود را مشخص کنید، که برای انتخاب کلید امضا برای پیام های خروجی استفاده خواهد شد.\nاگر آن را خالی بگذارید، آدرس FROM پیام برای انتخاب کلید امضا استفاده خواهد شد. -sendingHiddenRcpt=این پیام دارای گیرندگان BCC (کپی کور) می باشد. اگر این پیام رمزنگاری شده است، می توان گیرندگان BCC را پنهان کرد اما کاربران برخی از محصولات ( مثلا PGP Corp.) قادر به رمزگشایی پیام نخواهند بود. به این دلیل، توصیه ما این است تا از ایمیل های BCC با پیام های رمزنگاری شده خودداری کنید. -sendWithHiddenBcc=مخفی سازی گیرندگان BCC -sendWithShownBcc=رمزنگاری به صورت دستی -sendingNews=عملیات ارسال رمزنگاری شده لغو شد.\n\nاین پیام نمی تواند رمزنگاری شود چون گیرنده های گروه خبری موجود میباشند. لطفا پیام را دوباره بدون رمزنگاری ارسال کنید. -sendToNewsWarning=هشدار: شما در حال ارسال یک ایمیل رمزنگاری شده به یک گروه خبری می باشید.\n\nتوصیه نمی شود چون در صورتی قابل توجیه است که تمام اعضا گروه بتوانند پیام را رمزگشایی کنند، به عبارتی دیگر پیام باید با کلید تمام اعضا گروه رمزنگاری شود. لطفا این پیام را تنها در صورتی بفرستید که می دانید چه کار میکنید.\n\nادامه؟ -hasHTML=هشدار ایمیل HTML:\nاین پیام ممکن است حاوی HTML باشد، که ممکن است باعث ناموفقیت در امضا/رمزنگاری شود. برای جلوگیری از این در آینده، شما باید کلید SHIFT را در هنگام کلیک بر روی دکمه پاسخ/نوشتن برای ارسال ایمیل امضا شده فشار دهید.\nاگر شما ایمیل را به صورت پیشفرض امضا میکنید، شما باید نشان جعبه ترجیحات 'نوشتن پیام در HTML' برای غیرفعال کردن دائم ایمیل HTML برای این حساب کاربری ایمیل را بردارید. -strippingHTML=پیام حاوی اطلاعات قالب بندی HTML میباشد که در هنگام تبدیل به متن آشکار برای امضا/رمزنگاری از دست خواهد رفت. آیا مایل به ادامه می باشید؟ -msgCompose.button.sendAnyway=&ارسال پیام به هر صورت -attachWarning=ضمیمه های این پیام به صورت محلی نمی باشند، نمی توانند رمزنگاری شوند. برای رمزنگاری ضمیمه ها، آن ها را به صورت فایل های محلی ذخیره کنید و بعد این فایل ها را ضمیمه کنید. آیا مایل هستید تا پیام را به هر صورت ارسال کنید؟ quotedPrintableWarn=شما رمزنگاری 'نقل قول شده-قابل پرینت' را برای ارسال پیام ها فعال کرده اید. این باعث رمزگشایی ناصحیح و/یا تایید پیام شما خواهد شد.\nآیا مایل به خاموش کردن ارسال پیام های 'نقل قول شده-قابل پرینت' می باشید؟ -minimalLineWrapping=شما بسته بندی خط را به S% کاراکتر تنظیم کرده اید. برای رمزنگاری و/یا امضا صحیح، این مقدار حداقل باید 68 باشد.\nآیا مایل به تغییر آن به 68 هستید؟ warning=هشدار -signIconClicked=شما به صورت دستی امضا را تغییر داده اید. بنابراین، در حالیکه مشغول نوشتن این پیام هستید، (غیر)فعالسازی امضا دیگر به (غیر)فعالسازی رمزنگاری وابسته نخواهد بود. -errorOwnKeyUnusable=آیدی کلید 'S%' پیکربندی شده برای هویت فعلی دارای یک کلید OpenPGP قابل استفاده نمی باشد.\n\nلطفا مطمئن شوید که شما یک کلید OpenPGP معتبر، انقضا نیافته دارید و اینکه تنظیمات حساب کاربری شما به آن کلید اشاره دارد.\nاگر کلید شما انقضا نیافته است، بررسی کنید آیا شما اعتماد مالک را به "کامل" یا "نهایی" قرار داده اید. -msgCompose.cannotSaveDraft=خطا در هنگام ذخیره پیش نویس -msgCompose.partiallyEncrypted.short=مراقب فاش کردن اطلاعات حساس به ویژه ایمیل های رمزنگاری شده جزیی باشید. -msgCompose.partiallyEncrypted.inlinePGP=پیامی که در حال پاسخ به آن هستید حاوی بخش های رمزنگاری شده و رمزنگاری نشده می باشد. اگر ارسال کننده قادر نبود تا بخش هایی از پیام را رمزگشایی کند، ممکن است شما در حال لو دادن اطلاعاتی باشید که ارسال کننده قادر به رمزگشایی آن نبوده است.\n\nلطفا حذف تمام متن نقل قول شده از پاسخ خود به این ارسال کننده را در نظر بگیرید. - -msgCompose.internalEncryptionError=خطا داخلی: رمزنگاری وعده داده شده غیرفعال شد -msgCompose.internalError=یک خطا داخلی رخ داده است. - -msgCompose.toolbarTxt.signAndEncrypt=ین پیام امضاء و رمزنگاری خواهد شد. -msgCompose.toolbarTxt.signOnly=پیام امضاء خواهد شد -msgCompose.toolbarTxt.encryptOnly=این پیام رمزنگاری خواهد شد -msgCompose.toolbarTxt.noEncryption=این پیام امضاء نشده و رمزنگاری نشده خواهد بود -msgCompose.toolbarTxt.disabled=Enigmail برای هویت انتخاب شده غیرفعال است -msgCompose.protectSubject.tooltip=محافظت از موضوع پیام -msgCompose.noSubjectProtection.tooltip=از موضوع پیام محافظت نکن -msgCompose.protectSubject.dialogTitle=فعال سازی محافظت برای موضوع؟ -msgCompose.protectSubject.question=ایمیل های رمزنگاری شده عادی حاوی موضوع ویرایش نشده می باشد.\n\nما یک استاندارد برای پنهان کردن موضوع اصلی در پیام رمزنگاری شده ایجاد کرده ایم\nو آن را با یک متن ساختگی جایگزین کرده ایم، که چنین موضوعی فقط تنها بعد از رمزگشایی ایمیل قابل مشاهده میباشد.\n\nآیا میخواهید تا از موضوع در پیام های رمزنگاری شده محافظت کنید؟ -msgCompose.protectSubject.yesButton=&محافظت از موضوع -msgCompose.protectSubject.noButton=&رها کرن موضوع به صورت محافظت نشده - -msgCompose.detailsButton.label=جزییات ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=ناشناخته -msgCompose.pepSendUnsecure=ناامن -msgCompose.pepSendSecure=امن -msgCompose.pepSendTrusted=امن و قابل اعتماد - -pep.alert.disabledForIdentity=p≡p برای هویت فعلی غیرفعال می باشد. لطفا p≡p را از طریق ترجیحات Enigmail/p≡p فعال کنید. -pep.alert.weakReply=شما در حال ارسال یا پاسخ به یک پیام امن می باشید، اما پیامی که قصد ارسال آن را دارید امن نیست. اگر قصد ادامه دارید، اطلاعات محرمانه ممکن است لو برود و شما و هم صحبتتان را در خطر قرار دهد. آیا مطمئن هستید که میخواهید ادامه دهید؟ - - -# note: should end with double newline: -sendAborted=عملیات ارسال متوقف شد.\n\n - -# details: keyNotTrusted=اعتماد کافی برای کلید 'S%' وجود ندارد -keyNotFound=کلید '%S' یافت نشد -keyRevoked=کلید '%S' منقضی شد -keyExpired=کلید 'S%' انقضاء یافت - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=امضاء شده -statEncrypted=رمزنگاری شده -statPlain=امضا نشده و رمزنگاری نشده - -offlineSave=ذخیره %1$S پیام در %2$S داخل پوشه پیام های ارسال نشده؟ - -onlineSend=ارسال پیام %1$S به %2$S؟ -encryptKeysNote=توجه: پیام برای آیدی های کاربر / کلید های آمده رمزنگاری شده اند: S% -hiddenKey= - -signFailed=خطا در Enigmail: رمزنگاری/امضا ناموفق بود. ارسال پیام به صورت رمزنگاری نشده؟ -msgCompose.button.sendUnencrypted=&ارسال پیام رمزنگاری نشده -recipientsSelectionHdr=انتخاب گیرندگان برای رمزنگاری - -configureNow=شما امنیت Enigmail را هنوز برای هویت انتخاب شده ‍پیکربندی نکرده اید. آیا می خواهید اینکار را الان انجام دهید؟ - -# encryption/signing status and associated reasons: -encryptMessageAuto=رمزنگاری پیام (خودکار) -encryptMessageNorm=رمزنگاری پیام -signMessageAuto=امضاء پیام (خودکار) -signMessageNorm=امضاء پیام - -encryptOff=رمزنگاری: خاموش -encryptOnWithReason=رمزنگاری: روشن (S%) -encryptOffWithReason=رمزنگاری: خاموش (S%) -encryptOn=رمزنگاری: روشن -signOn=امضاء: روشن -signOff=امضاء: خاموش -signOnWithReason=امضاء: روشن (S%) -signOffWithReason=امضاء: خاموش (S%) -reasonEnabledByDefault=فعال شده به صورت پیش فرض -reasonManuallyForced=تحمیل شده به صورت دستی -reasonByRecipientRules=تحمیل شده توسط قوانین هر-گیرنده -reasonByAutoEncryption=تحمیل شده توسط رمزنگاری خودکار -reasonByConflict=به دلیل تضاد در قوانین هر-گیرنده -reasonByEncryptionMode=به دلیل وضعیت رمزنگاری - -# should not be used anymore: -encryptYes=پیام رمزنگاری خواهد شد -encryptNo=پیام رمزنگاری نخواهد شد - -# should not be used anymore: -signYes=پیام امضاء خواهد شد -signNo=پیام امضاء نخواهد شد - - -# PGP/MIME status: -pgpmimeNormal=پروتکل: PGP/MIME -inlinePGPNormal=پروتکل: Inline PGP -smimeNormal=پروتکل: S/MIME -pgpmimeAuto=پروتکل: PGP/MIME (خودکار) -inlinePGPAuto=پروتکل: Inline PGP (خودکار) -smimeAuto=پروتکل: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=از PGP/MIME استفاده خواهد شد -pgpmimeNo=از Inline PGP استفاده خواهد شد - -# Attach own key status (tooltip strings): -attachOwnKeyNo=کلید عمومی شما پیوست نخواهد شد -attachOwnKeyYes=کلید عمومی شما پیوست خواهد شد -attachOwnKeyDisabled=کلید عمومی شما پیوست نخواهد شد. شما باید یک کلید مشخص را\nدر بخش OpenPGP تنظیمات حساب کاربری برای فعال سازی این ویژگی انتخاب کنید. - -rulesConflict=قوانین متضاد هر-گیرنده شناسایی شد\nS%\n\nارسال پیام با این تنظیمات؟ -msgCompose.button.configure=&پیکربندی -msgCompose.button.send=&ارسال پیام -msgCompose.button.save=&ذخیره پیام - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=نیاز به کلید عمومی S% برای تایید امضاء -keyUsed=کلید عمومی S% استفاده شده برای تایید امضاء -clickDecrypt=; استفاده از عملیات 'رمزگشایی/تایید' -clickDecryptRetry=؛ استفاده از عمل 'رمزگشایی/تایید' برای تلاش دوباره -clickDetailsButton=; برای اطلاعات بیشتر روی دکمه 'جزییات' کلیک کنید -clickImportButton=; برای ایمپورت کلید روی دکمه 'ایمپورت کلید' کلیک کنید -keyTypeUnsupported=; نوع کلید توسط نسخه GnuPG شما پشتیبانی نمی شود -decryptManually=; برای رمزگشایی پیام روی دکمه 'رمزگشایی' کلیک کنید -verifyManually=; برای تایید امضا روی دکمه 'تایید' کلیک کنید -headerView.button.verify=تایید -headerView.button.decrypt=رمزگشایی -msgPart=بخشی از پیام S% -msgSigned=امضاء شده -msgSignedUnkownKey=امضاء نشده با کلید ناشناخته -msgEncrypted=رمزنگاری شده -msgSignedAndEnc=امضاء شده و رمزنگاری شده - unverifiedSig=امضاء تایید نشده -incompleteDecrypt=رمزگشایی ناقص -needKey=خطا - هیچ کلید خصوصی برای رمزگشایی پیام یافت نشد -failedDecrypt=خطا - رمزگشایی با خطا روبرو شد badPhrase=خطا - عبارت عبور بد missingMdcError=خطا - محافظت یکپارچگی (MDC) ناقص یا خراب می باشد -failedDecryptVerify=خطا - رمزگشایی/تایید ناموفق بود -viewInfo=؛ نما > اطلاعات امنیت پیام برای جزییات بیشتر -brokenExchangeMessage=پیام PGP/MIME ناقص از جانب MS-Exchange - -decryptedMsg=پیام رمزگشایی شده -decryptedMsgWithFormatError=پیام رمزگشایی شد (فرمت ایمیل PGP خراب بازیابی شد احتمالا به دلیل یک سرور Exchange قدیمی، بنابراین نتیجه ممکن است برای خواندن ایده آل نباشد) - -usedAlgorithms=الگوریتم های استفاده شده: %1$S و %2$S -pepStatusInfo.text=وضعیت پیام p≡p. -pepStatusInfo.title.m3=در معرض حمله -pepStatusInfo.info.m3=این ‍پیام امن نمی باشد و دستکاری شده است. -pepStatusInfo.title.m1=غیرقابل اعتماد -pepStatusInfo.info.m1=این پیام یک هم صحبت دارد که از قبل به عنوان غیرقابل اعتماد علامت گذاری شده است -pepStatusInfo.title.r0=ناشناخته -pepStatusInfo.info.r0=این پیام اطلاعات کافی برای مشخص بودن امن بودن یا نبودن را شامل نمی شود. -pepStatusInfo.title.r1=رمزگشایی نشد -pepStatusInfo.info.r1=این پیام قابل رمزگشایی نیست چون کلید آن موجود نمی باشد. -pepStatusInfo.title.r2=رمزگشایی نشد -pepStatusInfo.info.r2=این پیام قابل رمزگشایی نیست چون کلید آن موجود نمی باشد. -pepStatusInfo.title.r3=ناامن -pepStatusInfo.info.r3=این پیام امن نمی باشد. -pepStatusInfo.title.r4=ناامن برای برخی -pepStatusInfo.info.r4=این پیام برای برخی از هم صحبت ها ناامن می باشد. -pepStatusInfo.title.r5=امنیت غیرقابل اعتماد -pepStatusInfo.info.r5=این پیام دارای محافظت غیرقابل اعتماد می باشد. -pepStatusInfo.title.r6=امن سازی... -pepStatusInfo.info.r6=این پیام امن می باشد اما شما همچنان نیاز دارید تا هویت کسی که با آن در حال مکالمه هستید را تایید کنید. -pepStatusInfo.title.r7=امن و قابل اعتماد -pepStatusInfo.info.r7=این پیام امن و مورد اعتماد می باشد. - -pepStatusInfo.color.green=سبز -pepStatusInfo.color.yellow=زرد -pepStatusInfo.color.red=قرمز -pepRevokeTrust.question=آیا واقعا می خواهید اعتماد برای S% را لغو کنید؟ -pepRevokeMistrust.question=آیا میخواهید دوباره به کلید برای S% اعتماد کنید؟ -pepRevokeTrust.doRevoke=لغو &اعتماد - -wksConfirmationReq=درخواست تایید پوشه کلید وب -wksConfirmationReq.message=این پیام توسط ارائه دهنده ایمیل شما برای تایید کاراندازی کلید عمومی OpenPGP شما\nدر دایرکتوری کلید وب آن ها ارسال شده است.\nفراهم سازی کلید عمومی شما به دیگران اجازه می دهد تا کلید شما را پیدا کنند و بنابراین قادر باشند تا پیام هایشان را به شما رمزنگاری کنند.\n\nاگر قصد دارید تا کلید خود را در دایرکتوری کلید وب همین الان به کار بیاندازید، لطفا روی دکمه "تایید درخواست" در نوار وضعیت کلیک کنید.\nدر غیر اینصورت، از این پیام چشم پوشی کنید. -wksConfirmationReq.button.label=درخواست تایید - -autocryptSetupReq=اعمال نصب Autocrypt -autocryptSetupReq.button.label=شروع نصب -autocryptSetupReq.setupMsg.desc=این پیام حاوی تمام اطلاعات برای انتقال تنظیمات Autocrypt شما همراه با کلید خصوصی شما به صورت امن از دستگاه اصلی می باشد. -autocryptSetupReq.setupMsg.backup=شما می توانید این پیام را نگه دارید و از آن به عنوان پشتیبان برای کلید خصوصی خود استفاده کنید. اگر میخواهید این کار را انجام دهید، بهتر است رمزعبور را بنویسید و آن را به صورتی امن ذخیره کنید. -autocryptSetupReq.message.import=برای ایمپورت تنظیمات و کلید(ها) در Enigmail، لطفا روی دکمه "آغاز نصب" در نوار وضعیت کلیک کنید. -autocryptSetupReq.message.sent=لطفا روی پیام در دستگاه جدید خود کلیک کنید و دستور العمل ها برای درون برد تنظیمات را دنبال کنید. -postbox.cannotUseQuickReply.message=شما در حال پاسخگویی به یک پیام رمزگذاری شده هستید. لطفا از نگارک "گسترش" در لبه بالایی سمت راست جعبه متن برای باز کردن پاسخ خود در یک پنجره استفاده کنید، پیام را از آنجا ارسال کنید. - -# strings in pref-enigmail.js oldGpgVersion20=آغاز Enigmail ناموفق بود.\n\nشما در حال استفاده از نسخه %1$S برنامه GnuPG می باشید، که دیگر پشتیبانی نمی شود. Enigmail به نسخه %2$S یا بالاتر نیاز دارد. لطفا نصب GnuPG خود را آپگرید کرده، در غیر اینصورت Enigmail کار نخواهد کرد. -locateGpg=مکان یابی برنامه GnuPG -invalidGpgPath=GnuPG نمی تواند با مسیر فراهم شده اجرا شود. بنابراین Enigmail غیرفعال می باشد تا زمانی که شما مسیر را دوباره به GnuPG تغییر دهید یا برنامه را دوباره راه اندازی کنید. -warningsAreReset=تمام هشدارها ریست شدند. -prefs.gpgFound=GnuPG در S% یافت شد -prefs.gpgNotFound=GnuPG یافت نشد -prefs.warnAskNever=هشدار: فعال سازی این گزینه باعث ایمیل های رمزنگاری نشده بدون هیچ اطلاعات بیشتری میشود اگر برای یکی از گیرندگان هیچ کلیدی موجود نباشد -- Enigmail زمانی که اتفاق بیافتد شما را آگاه نخواهد کرد! -prefs.warnIdleTimeForUnknownAgent=ناتوانی در اتصال به gpg-agent. شاید سیستم شما از یک ابزار تخصصی برای کنترل عبارت عبور استفاده میکند (مثلا gnome-keyring، seahourse-agent، KDE wallet manager، ...) متاسفانه Enigmail قادر نیست تا پایان زمان عبارت عبور را برای ابزاری که در حال استفاده از آن هستید را کنترل کند. بنابراین به تنظیمات پایان زمان در Enigmail توجهی نمی شود. -prefEnigmail.oneKeyserverOnly=خطا - شما فقط می توانید یک سرور کلید برای دانلود خودکار یا کلید های OpenPGP ناموجود مشخص کنید. -acSetupMessage.desc=انتقال کلید به یک دستگاه که روی آن Autocrypt فعال است. (Autocrypt چیست) -aboutLicense.desc=Enigmail متن باز بوده و دارای لایسنس عمومی موزیلا ۲.۰ میباشد. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=لطفا پین ادمین SmartCard خود را تایپ کنید -enterCardPin=لطفا پین SmartCard خود را وارد نمایید - -notInit=خطا - سرویس Enigmail هنوز شروع به کار نکرده است badCommand=خطا - دستور رمزنگاری ناموفق بود cmdLine=نوار خط فرمان و خروجی: -notRequired=خطا - به هیچ رمزنگاری نیاز نیست -notComplete=خطاء - تولید کلید هنوز کامل نشده است -invalidEmail=خطا - آدرس ایمیل(های) ناموجود noPassphrase=خطا - هیچ پسفریزی تامین نشد noPGPblock=خطا - هیچ بخش داده OpenPGP محافظت شده معتبری یافت نشد -unverifiedReply=بخش پیام برجسته شده (پاسخ) احتمالا تغییر کرده بود -keyInMessageBody=یک کلید در بدنه پیام یافت شد. برای وارد کردن کلید روی 'وارد کردن کلید' کلیک کنید -sigMismatch=خطا - عدم تطابق امضاء -cantImport=خطا در وارد کردن کلید عمومی\n\n -doImportOne=درون برد %1$S (%2$S)؟ -doImportMultiple=ایمپورت کلید های در پایین آمده؟\n\n%S -previewFailed=ناتوانی در خواندن کلید عمومی. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=اسمارت کارت %1$S یافته شده در خواننده شما نمی تواند برای پردازش پیام مورد استفاده قرار بگیرد.\nلطفا اسمارت کارت %2$S خود را وارد کنید و عملیات را تکرار کنید. sc.insertCard=عملیات نیاز به اسمارت کارت S% شما دارد.\nلطفا اسمارت کارت خواسته شده را وارد کنید و عملیات را تکرار کنید. sc.removeCard=عملیات نیاز به بودن اسمارت کارت در خواننده ندارد.\nلطفا اسمارت کارت خود را حذف کرده و عملیات را تکرار کنید. @@ -376,7 +39,6 @@ sc.noReaderAvailable=خواننده اسمارت کارت شما قابل دسترسی نمی باشد\nلطفا خواننده اسمارت کارت خود را پیوست کرده، کارت خود را وارد کنید، و عملیات را تکرار کنید. keyError.keySpecNotFound=آدرس ایمیل 'S%' نمی تواند با کلید در حلقه کلید شما تطابق یابد. keyError.keyIdNotFound=آیدی کلید پیکربندی شده 'S%' در حلقه کلید شما یافت نشد. -keyError.resolutionAction=لطفا یک کلید معتبر از قسمت OpenPGP تنظیمات حساب کاربری خود انتخاب کنید. missingPassphrase=پسفریز ناموجود errorHandling.gpgAgentInvalid=سیستم شما نسخه ای از gpg-agent را استفاده میکند که مناسب نسخه GnuPG شما نیست. errorHandling.gpgAgentError=GnuPG در ارتباط شما با gpg-agent ( یکی از اجزا GnuPG) یک خطا گزارش کرد. @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG نمی تواند عبارت عبور شما را از طریق pinetry پرس و جو کند. errorHandling.pinentryCursesError=نصب GnuPG برای استفاده کنسول از pinetry پیکربندی شده است. هرچند، زمانی که شما در حال استفاده از Enigmail می باشید نیاز به یک نسخه گرافیکی از pinetry دارید. errorHandling.readFaq=این یک نصب سیستم یا خطا پیکربندی می باشد که از کار کردن Enigmail به درستی جلوگیری میکند و نمی تواند به صورت خودکار اصلاح شود.\n\nتوصیه اکید ما بر این است که شما از پشتیبانی سایت ما در https://enigmail.net/faq مشورت بگیرید. - gpgNotFound=ناتوانی در یافتن مکان برنامه GnuPG %S.\nمطمئن شوید که مسیر GnuPG قابل اجرا را به درستی در ترجیحات Enigmail تنظیم کرده اید. gpgNotInPath=ناتوانی در یافت فایل قابل اجرا GnuPG در مسیر.\nمطمئن شوید که مسیر فایل قابل اجرا GnuPG در ترجیحات Enigmail به درستی تنظیم شده است. enigmailNotAvailable=سرویس اصلی Enigmail موجود نمی باشد - -prefGood=امضا‌ خوب از S% -prefBad=امضا بد از S% - failCancel=خطا - لغو دریافت کلید توسط کاربر failKeyExtract=خطا - دستور استخراج کلید ناموفق بود -failKeyNoSubkey=هیچ (زیر-)کلید معتبر notFirstBlock=خطا - اولین قسمت OpenPGP قسمت کلید عمومی نیست importKeyConfirm=ایمپورت کلید(های) عمومی جاسازی شده در پیام؟ -failKeyImport=خطا - ایمپورت کلید ناموفق بود fileWriteFailed=ناتوانی در نوشتن بر روی فایل %S - importKey=وارد کردن کلید عمومی S% از کلید سرور: uploadKey=ارسال کلید عمومی S% به keyserver: keyId=آیدی کلید -keyAndSigDate=آیدی کلید: 0x%1$S / امضا شده در: %2$S -keyFpr=اثرانگشت کلید: S% -noEmailProvided=هیچ ایمیلی وارد نکردید! -keyAlreadySigned=کلید امضا شده است، نمی توانید آن را برای بار دوم امضا کنید. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=%S منقضی شد createdHeader=ایجاد شده atLeastOneKey=هیچ کلیدی انتخاب نشده است! شما باید حداقل یک کلید برای پذیرش این دیالوگ انتخاب کنید fewerKeysThanRecipients=شما تعداد کوچکتری کلید از گیرندگان را انتخاب کرده اید. آیا مطمئن هستید که لیست کلید ها برای رمزنگاری کامل می باشد؟ @@ -420,168 +64,34 @@ userSel.secretKeySel.title=انتخاب یک کلید خصوصی OpenPGP برای امضا ‍پیام هایتان userSel.problemNoKey=هیچ کلید معتبری وجود ندارد userSel.problemMultipleKeys=چندین کلید -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=ارسال بعدا - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=توجه: PGP/MIME توسط همه کلاینت های ایمیل پشتیبانی نمی شود. اگر مطمئن نیستید، گزینه %S را انتخاب کنید. first=اولین second=ثانیه - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=انتخاب کلید OpenPGP برای رمزنگاری -identityName=هویت: S% -switchPepMode=شما هم اکنون در حال استفاده از حالت 'جونیور p≡p' برنامه Enigmail هستید.\n\nبا فعال سازی OpenPGP یا S/MIME برای یک حساب کاربری، شما p≡p را غیرفعال میکنید و از حالت 'عادی' Enigmail بدون p≡p استفاده خواهید کرد. -enableEnigmail=&غیرفعال سازی p≡p -amPrefAutocrypt.desc=Autocrypt یک استاندارد می باشد که مشخص می کند چگونه رمزنگاری سر-تا-سر ایمیل ها را به صورت راحت بدست بیاوریم. مشخص میکند چه طور برنامه های ایمیل از توانایی های رمزنگاری برای ایمیل های عادی استفاده می کنند. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=شما رمزنگاری را فعال کرده اید، اما کلیدی را انتخاب نکرده اید. برای رمزنگاری ایمیل های ارسال شده به %1$S، شما باید یک کلید یا کلید(هایی) را از لیست کلید خود مشخص کنید. آیا میخواهید تا رمزنگاری را برای %2$S غیرفعال کنید؟ -noKeyToUse=(هیچ - بدون رمزنگاری) -noEmptyRule=قانون نمی تواند خالی باشد! لطفا یک آدرس ایمیل در بخش قانون قرار دهید. -invalidAddress=آدرس(های) ایمیل وارد شده معتبر نیستند. شما نباید نام گیرندگان را قرار دهید، بلکه فقط ایمیل آدرس کافی است. برای نمومه:\nنامعتبر: یک نام \nمعتبر: some.name@address.net -noCurlyBrackets={} دارای یک معنای خاص می باشند و نباید در یک آدرس ایمیل استفاده شوند. اگر میخواهید تا رفتار مطابق را برای این قانون تغییر دهید، از گزینه 'اعمال قانون اگر گیرنده ...' استفاده کنید.\nاطلاعات بیشتر از طریق دکمه راهنما موجود میباشد. - -# Strings used in enigmailRulesEditor.js never=هیچ وقت always=همیشه possible=ممکن -deleteRule=قانون انتخاب شده واقعا پاک شوند؟ -nextRcpt=(گیرنده بعدی) -negateRule=نه -addKeyToRule=افزودن کلید %1$S (%2$S) به قانون هر-گیرنده - -# Strings used in enigmailSearchKey.js -needOnline=فعالیتی که شما انتخاب کرده اید در حالت آفلاین موجود نمی باشد. لطفا بعد از آنلاین شدن دوباره امتحان کنید. -noKeyserverConn=ناتوانی در اتصال به سرور کلید در %S. -internalError=یک خطا داخلی رخ داده است. کلید ها نمیتوانند دانلود شده یا وارد شوند. -noKeyFound=ما نتوانستیم هیچ کلیدی که با شاخص جستجو مشخص شده وجود داشت را پیدا کنیم. -keyDownload.keyUnavailable=کلید با آیدی S% روی سرور کلید موجود نمی باشد. به احتمال زیاد، مالک کلید آن را بر روی سرور کلید آپلود نکرده است.\n\nلطفا از ارسال کننده پیام بخواهید تا کلید عمومی خود را از طریق ایمیل برای شما بفرستد. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=تنظیم اعتماد مالک ناموفق بود - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=امضاء کلید ناموفق بود -alreadySigned.label=توجه: کلید S% با کلید خصوصی انتخاب شده از قبل امضا شده است. -alreadySignedexportable.label=توجه: کلید S% به صورت قابل برون برد با کلید خصوصی انتخاب شده هم اکنون امضا شده است. یک امضا محلی بی معناست. -partlySigned.label=توجه: برخی از آیدی های کاربر کلید S% هم اکنون با کلید خصوصی انتخاب شده اضما شده است. -noTrustedOwnKeys=هیچ کلید واجد شرایطی برای امضا کردن یافت نشد! شما حداقل نیاز به یک کلید خصوصی قابل اعتماد برای امضا کلید ها دارید. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=بارگذاری کلیدها، لطفا صبر کنید ... keyValid.unknown=ناشناخته keyValid.invalid=ناموجود keyValid.disabled=غیرفعال شده keyValid.revoked=فسخ شده keyValid.expired=منقضی شده keyValid.noSubkey=هیچ زیرکلید معتبر - -keyTrust.untrusted=غیرقابل اعتماد +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=مرزی keyTrust.full=قابل اعتماد keyTrust.ultimate=نهایی keyTrust.group=(گروه) -keyType.public=پاب -keyType.publicAndSec=pub/sec -keyMan.enableKey=فعال سازی کلید -keyMan.disableKey=غیرفعال سازی کلید userAtt.photo=خصوصیت کاربر (تصویر JPEG) - -asciiArmorFile=ASCII Armored Files (*.asc) importKeyFile=وارد کردن فایل کلید OpenPGP -gnupgFile=فایل های GnuPG -saveRevokeCertAs=ایجاد و ذخیره گواهی فسخ -revokeCertOK=گواهی فسخ با موفقیت ایجاد شده است. شما میتوانید از آن برای سلب اعتبار کلید عمومی خود استفاده کنید، مثلا در موردی که شما کلید خصوصی خود را گم کرده اید. -revokeCertFailed=گواهی فسخ قابل ایجاد نمی باشد. - -addUidOK=آیدی کاربر با موفقیت افزوده شد -addUidFailed=افزودن آیدی کاربر با خطا روبرو شد -noKeySelected=شما باید حداقل یک کلید برای اجرا عملیات انجام شده انتخاب کنید -exportToFile=خروجی گرفتن کلید عمومی به فایل -exportKeypairToFile=خروجی گرفتن از کلید عمومی و خصوصی بر روی فایل -exportSecretKey=آیا میخواهید تا کلید خصوصی را در فایل کلید ذخیره شده OpenPGP قرار دهید؟ -saveKeysOK=کلید ها با موفقیت ذخیره شدند -saveKeysFailed=ذخیره سازی کلید ها ناموفق بود -importKeysFailed=ایمپورت کلید ها ناموفق بود -enableKeyFailed=فعال سازی/غیرفعال سازی کلید ها ناموفق بود -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=کلیدهای-عمومی-صادرشده -defaultPubSecKeyFilename=کلیدهای-خروجی-و-عمومی-برون-برده-شده - -sendKeysOk=کلید(ها) با موفقیت ارسال شدند -sendKeysFailed=ارسال کلید ها با خطا روبرو شد -receiveKeysOk=کلید(ها) با موفقیت آپلود شدند -receiveKeysFailed=دانلود کلید ها با خطا روبرو شد -keyUpload.verifyEmails=سرور کلید برای شما یک ایمیل برای هر آدرس ایمیل در کلید آپلود شده شما ارسال خواهد کرد. برای تایید انتشار کلید خود، نیاز است تا روی لینک در هر ایمیل دریافت شده کلیک کنید. - -importFromClip=آیا میخواهید کلید(هایی) را از کلیپ بورد ایمپورت کنید؟ -importFromUrl=دانلود کلید عمومی از این آدرس: -copyToClipbrdFailed=کلید(های) انتخاب شده بر کلیپ بورد کپی نشدند. -copyToClipbrdOK=کلید(ها) بر روی کلیپ بورد کپی شدند - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S deleteSecretKey=هشدار: شما در حال پاک کردن یک کلید خصوصی میباشید!\nاگر کلید خصوصی خود را پاک کنید، دیگر قادر به رمزگشایی هیچ پیام رمزنگاری شده برای آن کلید نخواهید بود، همچنین شما قادر به فسخ آن نخواهید بود.\n\nآیا واقعا میخواهید تا هردو آن ها را پاک کنید، کلید عمومی و کلید خصوصی\n'S%'؟ -deleteMix=هشدار: شما در حال پاک کردن کلید های خصوصی خود می باشید!\nاگر کلید های خصوصی خود را پاک کنید، دیگر قادر نخواهید بود تا هیچ یک از پیام های رمزنگاری شده برای آن کلید را رمزگشایی کنید.\n\nآیا مایل هستید تا هردو، کلید های انتخاب شده خصوصی و عمومی را پاک کنید؟ -deletePubKey=آیا می خواهید کلید عمومی\n'%S' را حذف کنید؟ -deleteSelectedPubKey=آیا قصد حذف کردن کلید های عمومی را دارید؟ -deleteKeyFailed=کلید نمی تواند پاک شود. revokeKeyQuestion=شما در حال منقضی کردن کلید '%S می باشید.\n\nشما دیگر قادر نخواهید بود با این کلید امضا کنید، زمانی که توزیع یافت دیگران قادر نخواهند بود تا با آن کلید رمزنگاری کنند. شما قادر خواهید بود تا از آن کلید برای رمزگشایی پیام های قدیمی استفاده کنید.\n\nآیا می خواهید ادامه دهید؟ -revokeKeyOk=کلید فسخ شده است. اگر کلید شما در سرور کلید موجود می باشد، توصیه می شود تا آن را به صورت مجدد آپلود کنید، تا دیگران بتوانند فسخ را ببینند. -revokeKeyFailed=کلید قابل فسخ نبود. revokeKeyNotPresent=شما هیچ کلیدی (0x%S) ندارید که با این گواهی فسخ تطابق داشته باشد!\n\nاگر کلید خود را از دست داده اید، شما باید آن را به درون ببرید (مثلا از یک سرور کلید) قبل از اینکه گواهی فسخ را به درون ببرید! revokeKeyAlreadyRevoked=کلید 0x%S فسخ شده است. -refreshAllQuestion=شما هیچ کلیدی را انتخاب نکرده اید. آیا مایل هستید تا تمام کلید ها را رفرش کنید؟ -refreshKeyServiceOn.warn=هشدار: کلید های شما در پس زمینه در حال تازه سازی تا جای ممکن به صورت امن می باشند.\nتازه سازی تمام کلید های شما در یک لحظه باعث آشکار شدن اطلاعاتی ناخواسته درباره شما خواهد شد.\nآیا واقعا مایل به انجام این کار هستید؟ -refreshKey.warn=هشدار: بسته به تعداد کلید ها و سرعت اتصال، تازه سازی تمام کلید ها میتواند یک رویه زمان بر باشد! -downloadContactsKeys.warn=هشدار: بسته به تعداد مخاطبان و سرعت اتصال، دانلود تمام کلید ها میتواند یک رویه طولانی باشد! -downloadContactsKeys.importFrom=ایمپورت مخاطبان از کتاب آدرس '%S'؟ -keyMan.button.exportSecKey=خروجی گرفتن &کلید های خصوصی -keyMan.button.exportPubKey=خروجی گرفتن فقط از &کلید های عمومی keyMan.button.import=&ایمپورت -keyMan.button.refreshAll=&رفرش تمام کلیدها keyMan.button.revokeKey=&انقضا کلید - -keylist.noOtherUids=هیچ هویتی دیگری ندارد -keylist.hasOtherUids=همچنین شناخته شده با عنوان -keylist.noPhotos=هیچ تصویری موجود نمی باشد -keylist.hasPhotos=تصاویر - -keyMan.addphoto.filepicker.title=انتخاب عکس برای افزودن -keyMan.addphoto.warnLargeFile=فایلی که انتخاب کرده اید بیشتر از 25 کلیوبایت می باشد.\nتوصیه نمی شود که فایل های بسیار حجیم را اضافه کنید چون باعث کلید های بسیار سنگین و حجیم خواهد شد. -keyMan.addphoto.noJpegFile=فایل انتخاب شده به نظر نمی آید که یک فایل JPEG باشد. لطفا یک فایل متفاوت انتخاب کنید. -keyMan.addphoto.failed=تصویر نمی تواند افزوده شود. -noWksIdentity=کلید %S دارای هویت WKS نمی باشد. -wksUpload.noKeySupported=آپلود موفق نبود - ارائه دهنده شما به نظر از WKS پشتیبانی نمی کند. - -keyman.addBlacklistKey.msg=آیا واقعا میخواهید تا p≡p استفاده از کلید '%1$S (%2$S)' برای پیام های رمزنگاری شده را متوقف کنید؟ -keyman.removeBlacklistKey.msg=آیا واقعا می خواهید به p≡p اجازه دهید تا از کلید '%1$S (%2$S)' برای پیام های آینده استفاده کند؟ -keyman.addBlacklistKey.button=&نوشتن کلید در لیست سیاه -keyman.removeBlacklistKey.button=&حذف کلید از لیست سیاه - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=تغییر آیدی اصلی کاربر با خطا روبرو شد -changePrimUidOK=آیدی اصلی کاربر با موفقیت تغییر یافت -revokeUidFailed=فسخ آیدی کاربر %S ناموفق بود -revokeUidOK=آیدی کاربر S% با موفقیت فسخ شد. اگر کلید شما روی یک سرور کلید موجود میباشد، توصیه می شود تا آن را مجدد آپلود کنید، تا دیگران بتوانند فسخ آن را ببینند. -revokeUidQuestion=آیا میخواهید آیدی کاربر %S را فسخ کنید؟ - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=موفقیت! کلید ها ایمپورت شدند -importInfoBits=بیت ها -importInfoCreated=ایجاد شده -importInfoFpr=اثرانگشت -importInfoDetails=(جزییات) -importInfoNoKeys=هیچ کلیدی ایمپورت نشد. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=کلید عمومی -keyTypePrimary=کلید اصلی -keyTypeSubkey=کلید فرعی -keyTypePair=جفت کلید -keyExpiryNever=هیچ وقت keyAlgorithm_1=آراس‌ای keyAlgorithm_2=آراس‌ای keyAlgorithm_3=آراس‌ای @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=رمزنگاری -keyUsageSign=امضا -keyUsageCertify=تصدیق -keyUsageAuthentication=احراز هویت -keyDoesNotExpire=کلید منقضی نمی شود - -# Strings in enigmailGenCardKey.xul -keygen.started=لطفا صبر داشته باشید تا زمانی که کلید تولید شود .... -keygen.completed=کلید تولید شد. آیدی جدید کلید: 0x%S -keygen.keyBackup=از کلید با عنوان %S بک آپ گرفته شده است -keygen.passRequired=لطفا یک عبارت عبور مشخص کنید اگر می خواهید تا یک کپی پشتیبان از کلید خود خارج از اسمارت کارت ایجاد کنید. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=خطا در تغییر پین - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=در حال رفرش کلیدها، لطفا صبر کنید ... -keyserverProgress.uploading=در حال آپلود کلید ها، لطفا صبر کنید ... -keyserverProgress.wksUploadFailed=ناتوانی در آپلود کلید شما بر سرویس Web Key -keyserverProgress.wksUploadCompleted=کلید عمومی شما با موفقیت به ارائه دهنده ارسال شد. شما یک ایمیل دریافت خواهید کرد که تایید میکند تا آپلود را آغاز کرده اید. -keyserverTitle.refreshing=رفرش کلید ها -keyserverTitle.uploading=آپلود کلید -keyserver.result.download.none=هیچ کلیدی دانلود نشد. -keyserver.result.download.1of1=کلید با موفقیت دانلود شد. -keyserver.result.download.1ofN=1 از S% کلید با موفقیت دانلود شد. -keyserver.result.download.NofN=%1$S کلید از %2$S با موفقیت دانلود شد. -keyserver.result.uploadOne=1 کلید با موفقیت آپلود شد. -keyserver.result.uploadMany=S% کلید با موفقیت آپلود شد. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=فایلی که شما مشخص کردید به عنوان یک فایل قابل اجرا GnuPG نمی باشد. لطفا یک فایل دیگر را مشخص کنید. -setupWizard.installFailed=به نظر می آید که نصب ناموفق بود. لطفا یا نصب را دوباره انجام دهید، یا به صورت دستی GnuPG را نصب کنید و آن را از طریق دکمه جستجو مکان یابی کنید. -setupWizard.downloadForbidden=برای امنیت خود شما، ما GnuPG را دانلود نخواهیم کرد. لطفا برای دانلود GnuPG به https://gnupg.org/ مراجعه کنید. -setupWizard.downloadImpossible=الان نمی توانیم GnuPG را دانلود کنیم. لطفا بعدا امتحان کنید یا به https://gnupg.org/ رفته و GnuPG را دانلود کنید. -setupWizard.hashSumError=ویزارد نمی تواند تمامیت فایل دانلود شده را تایید کند. فایل ممکن است خراب شده باشد یا دستکاری شده باشد. به هر حال مایل به ادامه نصب می باشید؟ -setupWizard.importSettingsFile=مشخص کردن فایل پشتیبانی برای بارگذاری -setupWizard.invalidSettingsFile=فایل مشخص شده یک فایل پشتیبان تنظیمات Enigmail معتبر نمی باشد -setupWizard.gpgConfExists=فایل پیکربندی GnuPG هم اکنون موجود است. آیا می خواهید تا آن را با یکی از نصب های قدیمی خود بازنویسی کنید؟ -setupWizard.noGpgHomeDir=به نظر می آید که شما 'S%' را پیکربندی کرده اید تا با GnuPG استفاده شود. هرچند، این یک دایرکتوری نیست - شما نمی توانید از آن استفاده کنید. -setupWizard.unmachtedIds=هویت های آمده از نصب قدیمی شما قابلیت تطابق ندارند:\nS%\nتنظیمات برای این هویت ها از قلم انداخته شده است. -setupWizard.foundAcSetupMessage=پیام نصب Autocrypt یافت شد. برای آغاز رویه نصب Autocrypt، روی دکمه شروع نصب آمده در پایین کلیک کنید. -setupWizard.foundAcNoSetupMsg=ما متوجه شدیم که شما در حال استفاده از کلاینت ایمیل سازگار با Autocrypt می باشید، اما نمی توانیم هیچ پیام نصب Autocrypt را پیدا کنیم. ما توصیه میکنیم که شما یک پیام نصب Autocrypt جدید روی دستگاه موجود ایجاد کنید و روی اسکن دوباره ورودی کلیک کنید. در غیر اینصورت، شما می توانید تنظیمات خود و کلید های نصب فعلی Enigmail را به بیرون برده، و این تنظیمات را بازیابی کنید. -setupWizard.setupComplete=Enigmail هم اکنون به درستی پیکربندی شده است و آماده استفاده میباشد. برای اطلاعات بشتر درباره استفاده از Enigmail به صفحه اصلی ما مراجعه کنید. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=در هنگام دانلود GnuPG خطایی رخ داد. لطفا لاگ کنسول را برای جزییات بیشتر چک کنید. -installGnuPG.installFailed=خطایی در هنگام نصب GnuPG رخ داد. لطفا لاگ کنسول را برای اطلاعات بیشتر چک کنید. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=شما باید نام و آدرس ایمیل را پر کنید -addUidDlg.nameMinLengthError=نام حداقل باید دارای 5 کاراکتر باشد -addUidDlg.invalidEmailError=شما باید یک آدرس ایمیل موجود را مشخص کنید - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=اسمارت کارت های OpenPGP فقط از کاراکتر های ASCII در نام کوچک/نام پشتیبانی میکنند. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=گواهی امنیتی نشان داده شده توسط وب سرویس نامعتبر است. errorType.SecurityProtocol=پروتکل امنیتی استفاده شده توسط وب سرویس ناشناخته است. errorType.Network=یک خطا شبکه رخ داده است. - -# filter stuff -filter.folderRequired=باید پوشه مورد نظر را مشخص کنید -filter.decryptMove.label=رمزگشایی دائمی (Enigmail) -filter.decryptCopy.label=ایجاد نسخه رمزنگاری نشده (ِEnigmail) -filter.decryptMove.warnExperimental=هشدار - عمل فیلتر "رمزگشایی دائمی" می تواند منجر به پیام های خراب شده شود.\n\nما توصیه اکید داریم تا اول از فیلتر "ایجاد کپی رمزگشایی شده" استفاده کنید، نتیجه را با دقت آزمایش کنید، و فقط این فیلتر را زمانی آغاز کنید که از نتیجه راضی می باشید. -filter.tempPepFilterDesc=فیلتر موقت برای نگهداری پیام رمزنگاری نشده ارسال شده -filter.term.pgpencrypted.label=OpenPGP رمزنگاری شده -filter.encrypt.label=رمزنگاری بر کلید (Enigmail) -filter.keyRequired=باید کلید گیرنده را مشخص کنید. -filter.keyNotFound=ناتوانی در یافتن یک کلید رمزنگاری برای 'S%'. -filter.warn.keyNotSecret=هشدار - عمل فیلتر "رمزنگاری بر کلید" گیرندگان را جایگزین خواهد کرد.\n\nاگر شما دارای کلید خصوصی برای 'S%' نمی باشید شما دیگر قادر به خواندن ایمیل ها نخواهید بود. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=ناتوانی در رمزگشایی پیام با موضوع\n'S%'.\nآیا میخواهید تا با یک عبارت عبور متفاوت تلاش کنید یا مایل به پرش پیام می باشید؟ -converter.decryptAtt.failed=ناتوانی در رمزگشایی پیوست'%1$S'\nاز پیام با موضوع\n '%2$S'.\nآیا میخواهید تا با یک عبارت عبور متفاوت تلاشی دیگر انجام دهید یا مایل به پرش از پیام می باشید؟ - -saveLogFile.title=ذخیره لاگ - -# strings in gpg.jsm -unknownSigningAlg=الگوریتم امضاء ناشناخته (آیدی: S%) -unknownHashAlg=هش رمزنگاری ناشناخته (آیدی:%S) - -# strings in keyRing.jsm keyring.photo=تصویر keyRing.pubKeyRevoked=کلید %1$S (آیدی کلید %2$S) منقضی شد.\n keyRing.pubKeyExpired=کلید %1$S ( آیدی کلید %2$S) انقضا یافته است. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=تمام زیر کلید های رمزنگاری کلید %1$S ( آیدی کلید %2$S) انقضا یافته است. keyRing.noSecretKey=به نظر می آید شما کلید خصوصی برای کلید %1$S ( آیدی کلید %2$S)  در حلقه کلید خود ندارید؛ شما نمی توانید از کلید برای امضا استفاده کنید. keyRing.encSubKeysUnusable=تمام زیرکلید های رمزنگاری کلید کلید %1$S ( آیدی کلید %2$S) فسخ شده اند، انقضا یافته اند یا به شکلی دیگر قابل استفاده نیستند. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=ناتوانی در ذخیره سازی بر فایل 'S%'. لطفا یک فایل متفاوت را انتخاب کنید. dataExportError=خطایی در هنگام اکسپورت داده شما رخ داد. -enigmailSettings=تنظیماتEnigmail -defaultBackupFileName=اکسپورت-Enigmail -specifyExportFile=مشخص سازی نام فایل برای اکسپورت کردن -homedirParamNotSUpported=پارامتر های اضافی که مسیر ها را پیکربندی میکنند مثل homedir-- و keyring-- برای برون برد/بازیابی تنظیمات شما پشتیبانی نمی شوند. لطفا از روش های دیگر مثل تنظیم متغیر محلی GNUPGHOME استفاده کنید. - -#strings in expiry.jsm expiry.keyExpiresSoon=کلید %1$S شما در کمتر از %2$S  روز انقضا خواهد یافت.\n\nما پیشنهاد می کنیم تا یک جفت کلید جدید ایجاد کنید و حساب های کاربری متناظر برای استفاده از آن را پیکربندی کنید. expiry.keysExpireSoon=کلید های آمده شما در کمتر از %1$S روز انقضا خواهد یافت:\n%2$S. ما توصیه میکنیم تا کلید های جدید ایجاد کنید و حساب های کاربری متناظر را برای استفاده از آن ها پیکربندی کنید. expiry.keyMissingOwnerTrust=کلید خصوصی S% شما فاقد اعتماد می باشد.\n\nما توصیه میکنیم "وابستگی به گواهی نامه ها" را به "نهایی" در ویژگی های کلید تنظیم کنید. expiry.keysMissingOwnerTrust=کلید های خصوصی آمده فاقد اعتماد می باشند.\nS%.\nما توصیه میکنیم تا "شما وابسته به گواهی ها هستید" را "نهایی" در ویژگی های کلید تنظیم کنید. expiry.OpenKeyManager=باز کردن مدیریت کلید Enigmail expiry.OpenKeyProperties=باز کردن ویژگی های کلید - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=این یک پیام رمزنگاری شده می باشد. متاسفانه شما کلید خصوصی برای رمزگشایی آن را ندارید. - -#strings in gpgAgent.jsm gpghomedir.notexists=دایرکتوری 'S%' حاوی کلید های OpenPGP شما موجود نمی باشد و نمی تواند ایجاد شود. gpghomedir.notwritable=دایرکتوری '%S' شامل کلید های OpenPGP شما قابل نوشتن نمی باشد. gpghomedir.notdirectory=دایرکتوری '%S' دربردارنده کلید های OpenPGP به جای یک دایرکتوری یک فایل می باشد. gpghomedir.notusable=لطفا دسترسی های دایرکتوری را اصلاح کرده یا مکان دایرکتوری "خانه" GnuPG را تغییر دهید. GnuPG در غیر اینصورت به درستی کار نخواهد کرد. gpgAgent.noAutostart=شما در حال استفاده از نسخه S% برنامه GnuPG می باشید. در این نسخه آغاز gpg-agent قبل از شروع Thunderbird ضروری می باشد، و متغیر محیطی "GPG_AGENT_INFO" از قبل بارگذاری شده است.\n\nاین پیش شرایط برقرار نشده اند - شما نمی توانید تا زمان حل این مسئله از Enigmail استفاده کنید. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=ناتوانی در تایید کلمات اعتماد p≡p برای حساب خود. -pepTrustWords.cannotFindKey=کلید برای S% پیدا نشد. -pepTrustWords.cannotStoreChange=ناتوانی در تغییر اعتماد برای S%. -pepTrustWords.generalFailure=ناتوانی در بدست آوردن کلمات اعتماد برای S%. -pepTrustWords.partnerFingerprint=اثرانگشت برای S%: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=ارائه دهنده ایمیل شما درخواست شما برای آپلود کلید عمومی خود بر دایرکتوری کلید وب OpenPGP را پردازش کرده است.\n\nلطفا روی دکمه تایید در هدر Enigmail کلیک کنید تا انتشار کلید عمومی خود را کامل کنید. -wkdMessage.body.process=این یک ایمیل مرتبط با پردازش خودکار برای آپلود کلید عمومی شما به دایرکتوری کلید وب OpenPGP می باشد.\n\nشما نیاز به انجام هیچ عملیات دستی در این مرحله ندارید. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=شما یا ارسال کننده باید دوباره پیام را بفرستید. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=اگر شما این پیام را نوشتید، کلیدتان موجود نیست. -pepPrivacyStatus.RatingMistrustSuggestion=برقرارسازی دوباره اتصال به هم صحبت شما و تلاش برای تکمیل یک هندشیک دیگر. -pepPrivacyStatus.RatingReliableSuggestion=تکمیل یک دست دهی با هم صحبت خود از طریق تبادل کلمات اعتماد به صورت حضوری یا پشت تلفن. یک دست دهی تنها یکبار برای هر شریک مورد ضروری است و یک مکالمه امن و قابل اعتماد را تضمین می کند. -pepPrivacyStatus.RatingTrustedSuggestion=به هیچ عملی نیاز نیست! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=آگاه باشید که این پیام ممکن است امن نباشد. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=لطفا اطلاعات ضروری را بیافزایید. -pepPrivacyStatus.RatingUnderAttackSuggestion=تایید محتوای این پیام با شریک ارتباطی خود از طریق یک کانال متفاوت -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=اطمینان حاصل کنید که وضعیت حریم خصوصی برای هر هم صحبت لیست شده حداقل "امن" می باشد. -pepPrivacyStatus.RatingUnencryptedSuggestion=از هم صحبت خود بخواهید تا از یک راه حل رمزنگاری استفاده کند یا p≡p را نصب کند. -pepPrivacyStatus.RatingUnreliableSuggestion=این پیام دارای هیچ رمزنگاری قابل اعتمادی نمی باشد یا امضا ندارد. از هم صحبت خود بخواهید تا راه حل رمزنگاری خود را آپگرید کرده یا p≡p را نصب کند. - -pepPrivacyStatus.RatingBrokenExplanation=این پیام دارای رمزنگاری یا فرمت ناقص می باشد. -pepPrivacyStatus.RatingHaveNoKeyExplanation=این پیام قابل رمزگشایی نیست چون کلید آن موجود نمی باشد. -pepPrivacyStatus.RatingMistrustExplanation=این پیام یک هم صحبت دارد که قبلا به عنوان غیرقابل اعتماد علامت گذاری شده است. -pepPrivacyStatus.RatingReliableExplanation=این پیام امن می باشد اما شما همچنان نیاز دارید تا هویت کسی که با آن در حال مکالمه هستید را تایید کنید. -pepPrivacyStatus.RatingTrustedExplanation=این پیام امن و مورد اعتماد می باشد. -pepPrivacyStatus.RatingUndefinedExplanation=این پیام اطلاعات کافی برای مشخص بودن امن بودن یا نبودن را شامل نمی شود. -pepPrivacyStatus.RatingUnderAttackExplanation=این ‍پیام امن نمی باشد و دستکاری شده است. -pepPrivacyStatus.RatingUnencryptedExplanation=این پیام امن نمی باشد. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=این پیام برای برخی از هم صحبت ها ناامن می باشد. -pepPrivacyStatus.RatingUnreliableExplanation=این پیام دارای محافظت غیرقابل اعتماد می باشد. - -pepPrivacyStatus.RatingBrokenText=خراب -pepPrivacyStatus.RatingHaveNoKeyText=رمزگشایی نشد -pepPrivacyStatus.RatingMistrustText=غیرقابل اعتماد -pepPrivacyStatus.RatingReliableText=امن -pepPrivacyStatus.RatingTrustedText=امن و قابل اعتماد -pepPrivacyStatus.RatingUndefinedText=ناشناخته -pepPrivacyStatus.RatingUnderAttackText=در معرض حمله -pepPrivacyStatus.RatingUnencryptedForSomeText=ناامن برای برخی -pepPrivacyStatus.RatingUnencryptedText=ناامن -pepPrivacyStatus.RatingUnreliableText=امنیت غیرقابل اعتماد - -handshakeDlg.button.initHandshake=هندشیک... -handshakeDlg.button.stopTrust=توقف اعتماد -handshakeDlg.button.reTrust=توقف بی اعتمادی -handshakeDlg.label.outgoingMessage=پیام خروجی -handshakeDlg.label.incomingMessage=پیام دریافتی -handshakeDlg.error.noPeers=ناتوانی در دست دهی با هیچ یک از هم صحبت ها. -handshakeDlg.error.noProtection=لطفا محافظت را برای استفاده از عمل "دست دهی" فعال کنید. - -enigmail.acSetupPasswd.descEnterPasswd=لطفا کد نصب که روی دستگاه دیگر نمایش داده شده است را وارد کنید. -enigmail.acSetupPasswd.descCopyPasswd=لطفا کد نصب آمده در پایین را روی دسگاه دیگر خود برای ادامه نصب وارد کنید. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=پیام نصب Autocrypt -autocrypt.setupMsg.msgBody=برای برپا کردن Autocrypt برای دستگاه جدید خود، دستور العمل های نشان داده شده توسط دستگاه جدید خود را دنبال کنید. -autocrypt.setupMsg.fileTxt=این فایل نصب Autocrypt برای انتقال تنظیمات و کلیدها بین کلاینت ها مورد استفاده قرار میگیرد. شما میتوانید آن را با استفاده از کد نصب نمایش داده شده روی دستگاه قدیمی خود، رمزگشایی کرده و سپس کلید را از آن به درون حلقه کلید خود ببرید. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=چه چیزی در Enigmail v2.0 جدید می باشد؟ -upgradeInfo.welcome1=به نسخه Enigmail 2.0 خوش آمدید! -upgradeInfo.welcome2=این ریلیز شامل ویژگی های تغییر یافته و جدید زیادی میباشد. لطفا یک دقیقه وقت بگذارید و ببینید چه چیزهایی جدید است: -upgradeInfo.encSubject.title=در حال رمزنگازی موضوع پیام -upgradeInfo.encSubject.desc=ما یک روش جدید توسعه داده ایم که موضوع ایمیل را به داخل پیام رمزنگاری شده می برد، و موضوع قابل مشاهده را با "پیام رمزنگاری شده" جابجا خواهد کرد. زمانی که چنین پیامی رمزگشایی شد، موضوع اصلی به صورت خودکار جایگزین خواهد شد. پنهان سازی موضوع به صورت پیشفرض فعال است؛ یک ترجیح برای خاموش کردن آن در صورتی که مایل به آن نیستید موجود میباشد. (توجه: این ویژگی نیاز دارد تا پیام از طریق PGP/MIME ارسال شود.) -upgradeInfo.buttons.title=رفتار دکمه های امضا و رمزنگاری تغییر یافت -upgradeInfo.buttons.desc=دکمه های رمزنگاری و امضا در پنجره پیام نویسی هم اکنون هم برای پروتکل های OpenPGP و S/MIME کار می کند. اگر هر دو الگوریتم قابل استفاده باشند، در این صورت Enigmail سعی خواهد کرد تا آنی که برای تمام کلید ها موجود میباشد تا ترجیح خواهد داد. -upgradeInfo.autocrypt.title=پشتیبانی برای Autocrypt -upgradeInfo.autocrypt.desc=Enigmail هم اکنون از Autocrypt پشتیبانی میکند، یک استاندارد جدید برای توزیع کلید ها به عنوان بخشی از پیام های ارسال شده. Enigmail به صورت خودکار کلید ها را از پیام های سازگار با Autocrypt به درون خواهد برد، که با گذز زمان ایمیل های بیشتری رمزنگاری خواهند شد. -upgradeInfo.pEp.title=حالت جونیور p≡p جدید (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail اکنون حاوی حالت جونیور p≡p می باشد. حالت جونیور p≡p به شما اجازه می دهد تا از رمزنگاری OpenPGP به صورت شفاف تا حد امکان استفاده کنید. دیگر نیازی نیست تا نگران مدیریت کلید و همگام سازی کلید ها بین دستگاه ها باشید. -upgradeInfo.bottom.desc=لطفا به مستندات ما به منظور کمک در استفاده از Enigmail مراجعه کنید. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=برای استفاده از Enigmail/p≡p، نیاز به GnuPG می باشد. از آنجایی که ما نتوانستیم آن را پیدا کنیم، می توانیم آن را برای شما دانلود و نصب کنیم. -pep.updateAvailable=یک نسخه جدید از Enigmail/p≡p crypto-engine موجود می باشد. آیا مایل به دانلود و نصب به روز رسانی می باشید؟ - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=درباره Enigmail aboutEnigmail.title=پشتیبانی OpenPGP تامین شده از جانب Enigmail aboutEnigmail.team=Enigmail توسط تیم Enigmail توسعه یافته است: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=لایسنس & پشتیبانی aboutEnigmail.license=Enigmail OpenPGP متن باز بوده و دارای لایسنس S% می باشد aboutEnigmail.support=پشتیبانی و دانلود از طریق www.enigmail.net موجود می باشد. - -#strings in updateGnuPG.html -updateGnuPG.tabName=به روز رسانی GnuPG -updateGnuPG.title=به روز رسانی ها برای GnuPG -updateGnuPG.introduction.desc=Enigmail نیاز به GnuPG دارد تا بتواند عملیات های رمزنگاری اش را انجام دهد. ما توصیه میکنیم تا نصب GnuPG خود را به روز نگه دارید. -updateGnuPG.updateRequired=یک نسخه جدیدتر از GnuPG موجود می باشد. ما به شما توصیه میکنیم تا نصب GnuPG خود را به روز نگه دارید. لطفا روی دکمه نصب به روز رسانی کلیک کنید تا به روز رسانی را دانلود و نصب کنید. -updateGnuPG.noUpdateRequired=GnuPG به روز می باشد. -updateGnuPG.cannotUpdate.header=Enigmail فقط از به روز رسانی پکیج های آمده پشتیبانی میکند: -updateGnuPG.cannotUpdate.footer=به نظر می آید شما در حال استفاده از نوع دیگری GnuPG می باشید؛ متاسفانه برای Enigmail به روز رسانی نصب GnuPG ممکن نمی باشد. -updateGnuPG.installUpdate=نصب به روز رسانی -updateGnuPG.noMoreUpdates=بررسی نکردن به روز رسانی های آینده updateGnuPG.checkUpdate=بررسی برای بروزرسانی های GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=لغو شد -keyserver.error.unknown=خطا ناشناخته ای رخ داد -keyserver.error.serverError=سرور کلید یک خطا گزارش کرد. -keyserver.error.importError=ناتوانی در درون برد برای کلید دانلود شده. -keyserver.error.unavailable=سرور کلید موجود نمی باشد. -keyserver.error.securityError=سرور کلید دسترسی رمزنگاری شده را پشتیبانی نمی کند. -keyserver.error.certificateError=گواهی سرور کلید معتبر نمی باشد. -keyserver.error.unsupported=سرور کلید توسط Enigmail پشتیبانی نمی شود. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=بخش رمزنگاری شده پیام -mimeDecrypt.encryptedPart.concealedData=این یک بخش رمزنگاری شده پیام میباشد. نیاز است تا آن را در یک پنجره جدا با کلیک بر روی پیوست باز کنید. - -#strings in gnupg-key.jsm import.secretKeyImportError=خطایی در وارد کردن کلید های خصوصی در GnuPG رخ داده است. واردات موفق نبود. - -#strings in importSettings.js -importSettings.errorNoFile=فایلی که شما مشخص کرده اید یک فایل عادی نمی باشد! -importSettings.cancelWhileInProgress=بازیابی در حال انجام است. آیا واقعا می خواهید این رویه را لغو کنید؟ -importSettings.button.abortImport=&لغو رویه +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/fa/help/compose.html enigmail-2.2.4/lang/fa/help/compose.html --- enigmail-2.1.6+ds1/lang/fa/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/editRcptRule.html enigmail-2.2.4/lang/fa/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/fa/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/help.html enigmail-2.2.4/lang/fa/help/help.html --- enigmail-2.1.6+ds1/lang/fa/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License 2.0

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/initError.html enigmail-2.2.4/lang/fa/help/initError.html --- enigmail-2.1.6+ds1/lang/fa/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmail Core Service failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/messenger.html enigmail-2.2.4/lang/fa/help/messenger.html --- enigmail-2.1.6+ds1/lang/fa/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/rulesEditor.html enigmail-2.2.4/lang/fa/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/fa/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/fa/help/sendingPrefs.html enigmail-2.2.4/lang/fa/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/fa/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fa/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encrypted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/fi/am-enigprefs.properties enigmail-2.2.4/lang/fi/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/fi/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP-turvallisuus +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/fi/enigmail.dtd enigmail-2.2.4/lang/fi/enigmail.dtd --- enigmail-2.1.6+ds1/lang/fi/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"-merkeillä"> - - -"-merkeillä GnuPG:lle. Poista asetus käytöstä jos vastaanottajilla on vanhoja Hushmail-avaimia."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Huom: Avaimen luominen voi kestää jopa useita minuutteja. Älä sulje ohjelmaa kun avainta luodaan. Tietokoneen aktiivinen käyttäminen avainta luotaessa lisää avaimen luontiin tarvittavaa satunnaisuutta ja siten nopeuttaa luontiprosessia. Enigmail ilmoittaa kun avain on valmis."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" on virheellinen"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Huom: Avaimen luominen voi kestää jopa useita minuutteja. Älä sulje ohjelmaa kun avainta luodaan. Enigmail ilmoittaa kun avain on valmis."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/fi/enigmail.properties enigmail-2.2.4/lang/fi/enigmail.properties --- enigmail-2.1.6+ds1/lang/fi/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail-hälytys # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail-virhe enigPrompt=Enigmail-kehote - -dlgYes=Kyllä dlgNo=Ei dlgKeepSetting=Muista vastaukseni, äläkä kysy uudestaan dlgNoPrompt=Älä näytä tätä huomioikkunaa uudestaan -dlg.button.delete=&Poista dlg.button.cancel=&Peruuta dlg.button.close=&Sulje dlg.button.continue=Jatka -dlg.button.skip=&Ohita -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Näytä -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nTämä hälytys toistetaan %S repeatSuffixSingular=kerran. repeatSuffixPlural=kertaa. noRepeat=\n\nTämä hälytys toistetaan vasta Enigmailin seuraavan päivityksen yhteydessä. - -pgpNotSupported=Käytät ilmeisesti PGP 6.x:ä Enigmail:n kanssa.\n\nPGP 6.x:n toiminnassa on kuitenkin ongelmia, joiden takia Enigmail ei toiminut kunnolla ja siksi Enigmail ei enää tue PGP 6.x:ä. Käytä PGP:n sijaan GnuPG:tä.\n\nTarvittaessa Enigmailin kotisivujen ohjesivulta löytyy ohjeita GnuPG:n siirtymisestä -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=Salasanamuisti tyhjennettiin. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Ei kuvaa -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Kuvan polku '%S' ei ole luettavissa - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Enigmailin uudessa versiossa on olennaisia muutoksia asetuksissa ja vaihtoehdoissa. Pyrimme siirtämään vanhat asetukset uuteen versioon. Emme kuitenkaan voi varmistaa kaikkia tapauksia automaattisesti. Ole hyvä, tarkista eri asetukset ja vaihtoehdot asennuksen jälkeen. -enigmailCommon.checkPreferences=Tarkista asetukset.. -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Enigmailin versio %S käynnissä -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Salaamiseen ja salauksen purkamiseen käytetään ohjelman %S tiedostoa %S agentError=VIRHE: Enigmime-palveluun ei saatu yhteyttä - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Virhe käytettäessä Enigmail-palvelua -onlyGPG=Avaimen luominen onnistuu vain GnuPG-ohjelman kanssa (Ei PGP:n kanssa). - -keygenComplete=Avain luotu! Käyttäjätieto <%S> käyttää avainta viestien allekirjoittamiseen. -revokeCertRecommended=Mitätöintivarmenteen luominen avaimelle on suositeltua. Avaimen voi mitätöidä sillä jos avain esimerkiksi hukkuu tai joutuu vääriin käsiin. Luodaanko mitätöintivarmenne? -keyMan.button.generateCert=&Luo sertifikaatti -genCompleteNoSign=Avain luotu! -genGoing=Avaimen luonti on jo käynnissä. - -passNoMatch=Salasanat eivät täsmää. Kirjoita ne uudelleen -passCheckBox=Valitse, jos avaimelle ei aseteta salasanaa -passUserName=Kirjoita käyttäjätiedoista puuttuva käyttäjätunnus -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Teknisistä syistä, tunnuslauseen voi aloittaa tai päättää välilyöntiin -changePassFailed=Salasanan vaihtaminen epäonnistui. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Luo avain -keyAbort=Peruutetaanko avaimen luonti? -keyMan.button.generateKeyAbort=&Keskeytä avainten luonti -keyMan.button.generateKeyContinue=&Jatka varmenteen luontia -expiryTooLong=Avaimen vanhenemisaika ei voi ylittää 100:a vuotta. -expiryTooLongShorter=Et pysty määrittämään avaimen vanhenenemista yli 90 vuoden päähän. -expiryTooShort=Avain ei voi vanheta alle päivässä. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Päättymispäivää ei ole muutettu - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail-turvallisuustietoja\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Viesti on mahdollisesti PGP/MIME-salattu tai -allekirjoitettu. Napsauta Pura-painiketta varmistaaksesi - -saveAttachmentHeader=Enigmail: Tallenna purettu liitetiedosto -noTempDir=Väliaikaista tallennuskansiota ei löytynyt\nAseta TEMP-ympäristömuuttuja -attachmentPgpKey=Avattava liite "%S" vaikuttaa OpenPGP-avaintiedostolta.\n\nTuo avaimet napsauttamalla Kyllä tai napsauta Ei näyttääksesi tiedoston sisällön - -beginPgpPart=********* *SALATTU tai ALLEKIRJOITETTU OSA ALKAA* ********* -endPgpPart=********** *SALATTU tai ALLEKIRJOITETTU OSA LOPPUU* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Viesti on jaettu useaan lohkoon -- Salauksen purku tai allekirjoituksen varmistus peruutettiin* - -decryptOkNoSig=Varoitus\n\nSalauksen purkaminen onnistui, mutta allekirjoitus ei varmistunut oikein -msgOvl.button.contAnyway=&Jatka -# signature.verifiedOK=The signature for attachment %S was successfully verified -signature.verifyFailed=Allekirjoituksen liitetiedostoja %S ei voitu vahvistaa -# attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -# attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Valitse viestiin liitettävät OpenPGP-avaimet keysToUse=Valitse OpenPGP-avaimet osoitesuotimelle %S pubKey=Käyttäjätunnuksen %S julkinen avain\n - -windowLocked=Viestin kirjoitusikkuna on lukittu. Viestin lähetys peruttu. -sendUnencrypted=Enigmailin alustus epäonnistui.\nLähetetäänkö viesti salaamattomana? -composeSpecifyEmail=Anna ensisijainen sähköpostiosoitteesi, jonka perusteella lähtevien viestien allekirjoitusavain valitaan.\nJos et anna sähköpostiosoitetta, jokaisen viestin allekirjoitusavain valitaan viestin lähettäjäkentän perusteella. -# sendingHiddenRcpt=This message has BCC (blind copy) recipients. If this message is encrypted, it is possible to hide the BCC recipients but users of some products (e.g. PGP Corp.) will not be able to decrypt the message. Given this, we recommend to avoid BCC-emails with encrypted messages. -# sendWithHiddenBcc=Hide BCC recipients -sendWithShownBcc=Salaa normaalisti -sendingNews=Salatun viestin lähetys peruttiin.\n\nTätä viestiä ei voi salata koska yksi vastaanottajista on keskusteluryhmä. Lähetä viesti uudestaan salaamattomana. -sendToNewsWarning=Varoitus: olet aikeissa lähettää salattua sähköpostia uutisryhmään.\n\nTämä ei ole suotavaa. Se on järkevää ainoastaan silloin, kun kaikki ryhmän jäsenet voivat purkaa viestin. Eli viesti on salattu ja avain on kaikilla ryhmään osallistujilla. Lähetä tämä viesti vain, jos tiedät tarkalleen mitä olet tekemässä.\n\nHaluatko jatkaa? -hasHTML=HTML-postin varoitus:\nViesti saattaa sisältää HTML-koodia, jonka vuoksi viestin salaus tai allekirjoitus voi epäonnistua. Voit vastaisuudessa lähettää allekirjoitettuja viestejä painamalla Shift-näppäintä napsauttaessasi Kirjoita viesti tai Vastaa viestiin -painiketta.\nJos allekirjoitat viestisi oletuksena, sinun kannattaa ottaa HTML-muotoisten viestien lähetys pois päältä tiliasetuksista. -strippingHTML=Viestissä on HTML-muotoiluja, jotka katoavat kun viesti muunnetaan allekirjoituksen tai salauksen vuoksi pelkäksi tekstiksi. Jatketaanko muuntoa? -msgCompose.button.sendAnyway=&Lähetä viesti joka tapauksessa -attachWarning=Tämän viestin liitteet ovat linkitettyjä ja niitä ei voi salata. Salataksesi tiedostot, tallenna ne ensin kiintolevyllesi ja liitä ne sitten viestiin. Jatketaanko kaikesta huolimatta? quotedPrintableWarn=Lähtevien viestien "quoted printable"-koodaus on käytössä. Koodauksen takia viestiesi allekirjoitus ja salaus voidaan tulkita virheelliseksi.\nOtetaanko "quoted-printable"-koodaus pois käytöstä? -minimalLineWrapping=Viestit rivittyvät tällä hetkellä %S merkin leveyteen. Jotta viestejä voi salata tai allekirjoittaa, merkkejä täytyy mahtua riville vähintään 68.\nMuutetaanko riville mahtuvien merkkien määrä 68:ksi? warning=Varoitus -signIconClicked=Olet muokannut allekirjoitusta. Tämän takia kirjoittaessasi tätä viestiä, allekirjoittaminen ja viestin salaaminen eivät enää riipu toisistaan. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -msgCompose.toolbarTxt.signAndEncrypt=Tämä viesti tullaan allekirjoittamaan ja salataan -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Viestin lähetys peruttiin.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=ALLEKIRJOITETTU -statEncrypted=SALATTU -statPlain=SELKOKIELINEN - -offlineSave=Tallennetaanko %S viesti vastaanottajalle %S lähtevien viestien kansioon? - -onlineSend=Lähetä %S viesti vastaanottajalle %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=Lähetä salaamaton viesti -recipientsSelectionHdr=Valitse vastaanottajat joiden viestit salataan - -configureNow=Valittua käyttäjää ei ole asetettu käyttämään Enigmail-turvallisuutta. Muokataanko asetuksia nyt? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Salaa viesti -# signMessageAuto=Sign Message (auto) -signMessageNorm=Allekirjoita viesti - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Viesti salataan -encryptNo=Viestiä ei salata - -# should not be used anymore: -signYes=Viesti allekirjoitetaan -signNo=Viestiä ei allekirjoiteta - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Vastaanottajakohtaisissa säännöissä ristiriitoja\n%S\n\nLähetetäänkö viesti näillä asetuksilla? -msgCompose.button.configure=&Määritä -msgCompose.button.send=&Lähetä viesti -msgCompose.button.save=&Talllenna viesti - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Allekirjoituksen varmistamiseen tarvitaan osoitteen %S julkinen avain -# keyUsed=Public key %S used to verify signature -clickDecrypt=. Napsauta Salauksen purkamis -painiketta -clickDecryptRetry=. Napsauta Salauksen purkamis -painiketta yrittääksesi uudestaan -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Pura salaus -msgPart=Osa viestistä %S -msgSigned=allekirjoitettu -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=salattu -msgSignedAndEnc=allekirjoitettu ja salattu - unverifiedSig=Varmistamaton allekirjoitus -incompleteDecrypt=Salauksen purkaminen ei ole täydellinen -needKey=Virhe - salauksen purkaminen vaatii salaisen avaimen -failedDecrypt=Virhe - salauksen purkaminen epäonnistui badPhrase=Virhe - väärä salasana # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Virhe - salauksen purkaminen tai viestin varmistus epäonnistui -viewInfo=. Näytä > Viestin turvallisuustiedot lukeaksesi lisätietoja -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Viesti, jonka salaus on purettu -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Osoita GnuPG-ohjelman sijainti -invalidGpgPath=GnuPG:tä ei voida käynnistää annetusta sijainnista. Enigmail on pois käytöstä kunnes GnuPG:n sijainti muutetaan tai ohjelma käynnistetään uudestaan. -warningsAreReset=Kaikki varoitusikkuna-asetukset on nollattu. -prefs.gpgFound=GnuPG:tä ei löytynyt sijainnista %S -prefs.gpgNotFound=GnuPG:tä ei löytynyt -prefs.warnAskNever=Varoitus: Asetuksen seurauksena sähköpostiviestit lähetetään salaamatta siitä erikseen ilmoittamatta jos jollekin vastaanottajista ei löydy avainta! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -# prefEnigmail.oneKeyserverOnly=Error - you can only specify one keyserver for automatic downloading of missing OpenPGP keys. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Kirjoita älykorttisi ADMIN PIN-koodi -enterCardPin=Kirjoita älykorttisi PIN-koodi - -notInit=Virhe - Enigmail-palvelua ei ole vielä alustettu badCommand=Virhe - salauskomento epäonnistui cmdLine=-komento ja -tuloste: -notRequired=Virhe - salausta ei vaadita -notComplete=Virhe - avaimen luonti ei ole vielä valmis -invalidEmail=Virhe - virheellisiä sähköpostiosoitteita noPassphrase=Virhe - salasanaa ei ole annettu noPGPblock=Virhe - Ei löydetty kelvollista koodattua OpenPGP-dataosiota -unverifiedReply=Viestin sisennettyä osaa (vastausta) on luultavasti muokattu -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Virhe - Allekirjoitus ei ole täsmää -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Älykorttia %S löydetty, lukija ei osaa käsitellä viestiä\nPyydän lisäämään älykortti %S, toista toimenpide. sc.insertCard=Toiminta vaatii älykorttin %S.\nOle hyvä ja lisää vaadittava älykortti, toista toimenpide. # sc.removeCard=The operation requires no SmartCard to be in the reader.\nPlease remove your SmartCard and repeat the operation. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Älykortinlukijaan ei saatu yhteyttä\nKiinnitä älykortinlukija tietokoneeseen, aseta kortti lukijaan ja yritä uudestaan # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=GnuPG-ohjelmaa %S ei löytynyt.\nTarkista, että GnuPG:n ohjelmatiedoston kansio on asetettu oikein Enigmail:n asetuksissa gpgNotInPath=GnuPG-ohjelmaa ei löytynyt PATH-muuttujan kansioista.\\Tarkista, että GnuPG:n ohjelmakansio on asetettu oikein Enigmail:n asetuksissa # enigmailNotAvailable=Enigmail core Service not available - -prefGood=Hyvä allekirjoitus lähettäjältä %S -prefBad=VääRä allekirjoitus lähettäjältä %S - failCancel=Virhe - Avaimen nouto peruutettiin failKeyExtract=Virhe - avaimen tuonti viestistä epäonnistui -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Virhe - Ensimmäinen OpenPGP-osio ei ole julkinen avain importKeyConfirm=Tuodaanko viestiin sisällytetyt avaimet? -failKeyImport=Virhe - avainten tuonti epäonnistui fileWriteFailed=Kirjoitus tiedostoon %S epäonnistui - importKey=Tuo julkinen avain %S avainpalvelimelta: uploadKey=Lähetetäänkö julkinen avain %S avainpalvelimelle: keyId=Avaintunnus -keyAndSigDate=Avaintunnus: 0x%S / Allekirjoitettu: %S -keyFpr=Avaimen sormenjälki: %S -noEmailProvided=Sähköpostiosoitetta ei ole asetettu. -keyAlreadySigned=Avain on jo kertaalleen allekirjoitettu. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=vanhenee %S createdHeader=Luotu atLeastOneKey=Avainta ei ole valittu! Valitse ainakin yksi avain ennen kuin suljet ikkunan # fewerKeysThanRecipients=You have selected a smaller number of keys than recipients. Are you sure that the list of keys to encrypt is complete? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Valitse salainen OpenPGP avain jolla allekirjoitat viestit # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Lähetä myöhemmin - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=ensimmäinen second=toinen - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Valitse salaukseen käytettävä OpenPGP-avain -identityName=Käyttäjätiedot: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Salaus on otettu käyttöön, mutta yhtäkään avainta ei ole valittu. Salataksesi osoitteeseen %S lähetettävät viestit, valitse avainlistasta yksi tai useampi voimassaoleva avaimesi. Poistetaanko salaus käytöstä osoitteelle %S? -noKeyToUse=(ei avainta - ei salausta) -noEmptyRule=Sääntö täytyy antaa. Kirjoita sääntökenttään sähköpostiosoite. -invalidAddress=Antamasi sähköpostiosoitteet ovat virheellisesti muotoiltuja. Anna ainoastaan vastaanottajien sähköpostiosoitteet, älä heidän nimiään. Esimerkki:\nVäärin: Joku Nimi \nOikein: joku.nimi@osoite.fi -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Ei koskaan always=Aina possible=Mahdollisesti -deleteRule=Poistetaanko valittu sääntö? -nextRcpt=(Seuraava vastaanottaja) -negateRule=Ei -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=Valitsemasi toiminto ei ole käytettävissä ilman verkkoyhteyttä. Siirry verkkoyhteystilaan ja yritä uudelleen. -noKeyserverConn=Yhteys avainpalvelimeen %S epäonnistui. -internalError=Tapahtui sisäinen virhe. Avainten nouto tai tuonti epäonnistui. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Avaimen omistajan luottamustason asettaminen epäonnistui - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Avaimen allekirjoittaminen epäonnistui -# alreadySigned.label=Note: the key %S is already signed with the selected secret key. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Ladataan avaimia... keyValid.unknown=tuntematon keyValid.invalid=virheellinen keyValid.disabled=ei käytössä keyValid.revoked=mitätöity keyValid.expired=vanhentunut keyValid.noSubkey=ei kelvollista aliavainta - -keyTrust.untrusted=ei luotettu +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=osittain luotettu keyTrust.full=luotettu keyTrust.ultimate=ehdottomasti luotettu keyTrust.group=(ryhmä) -keyType.public=julk -keyType.publicAndSec=julk/sal -keyMan.enableKey=Ota avain käyttöön -keyMan.disableKey=Poista avain käytöstä userAtt.photo=Käyttäjätieto (JPEG-kuva) - -asciiArmorFile=ASCII-koodatut tiedostot (*.asc) importKeyFile=Tuo OpenPGP avain tiedoston -gnupgFile=GnuPG-tiedostot -saveRevokeCertAs=Luo ja tallenna mitätöintivarmenne -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Mitätöintivarmenteen luonti epäonnistui. - -addUidOK=Käyttäjätunnuksen lisäys onnistui -addUidFailed=Käyttäjätunnuksen lisäys epäonnistui -noKeySelected=Vähintään yksi avain täytyy valita, jotta operaatio voidaan suorittaa -exportToFile=Valitse tiedostonimi vietäville avaimille -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Tallennetaanko OpenPGP-tiedostoon myös salainen avaimesi? -saveKeysOK=Avainten tallennus onnistui -saveKeysFailed=Avainten tallennus epäonnistui -importKeysFailed=Avainten tuonti epäonnistui -enableKeyFailed=Avaimen käyttöön otto tai käytöstä poisto epäonnistui -specificPubKeyFilename=%S (0x%S) julk -specificPubSecKeyFilename=%S (0x%S) julk-sal -defaultPubKeyFilename=Viedyt-julkiset-avaimet -defaultPubSecKeyFilename=Viedyt-julkiset-ja-salaiset-avaimet - -sendKeysOk=Avaimet lähetittiin onnistuneesti -sendKeysFailed=Avainten lähettäminen epäonnistui -receiveKeysOk=Avainten päivitys onnistui -receiveKeysFailed=Avainten nouto epäonnistui -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Tuodaanko leikepöydällä olevat avaimet? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Avainten vienti leikepöydälle epäonnistui. -copyToClipbrdOK=Avaimet kopioitiin leikepöydälle - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=VAROITUS: Olet poistamassa salaisia avaimia!\nAvaimelle salattuja viestejä ei voida enää purkaa jos avain poistetaan.\n\nPoistetaanko SEKÄ valitut julkiset ETTÄ salaiset avaimet? -deletePubKey=Poistetaanko julkinen avain tunnukselle\n%S? -deleteSelectedPubKey=Poistetaanko julkinen avain? -deleteKeyFailed=Avaimen poisto epäonnistui. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=Avain on mitätöity. Jos avain on saatavilla avainpalvelimelta, siirrä mitätöity avain palvelimelle, jotta muutkin näkevät mitätöinnin. -revokeKeyFailed=Avaimen mitätöinti epäonnistui. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Yhtään avainta ei valittu. Päivitetäänkö kaikki avaimet? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Varoitus: riippuen avainten lukumäärästä ja verkkoyhteyden nopeudesta, kaikkien avainten päivittäminen voi kestää kauan!\n\nJatketaanko? -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=&Export Secret Keys -# keyMan.button.exportPubKey=Export &Public Keys Only keyMan.button.import=&Tuo -keyMan.button.refreshAll=&Päivitä kaikki avaimet keyMan.button.revokeKey=&Peruuta avain - -keylist.noOtherUids=Ei ole muuta identiteettiä -# keylist.hasOtherUids=Also known as -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Valokuva -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -keyMan.addphoto.failed=Valokuvaa ei voitu lisätä -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Ensisijaisen käyttäjätunnuksen vaihto epäonnistui -changePrimUidOK=Ensisijaisen käyttäjätunnuksen vaihto onnistui -revokeUidFailed=Käyttäjätunnuksen %S mitätöinti epäonnistui -revokeUidOK=Käyttäjätunnuksen %S mitätöinti onnistui. Jos avain on saatavilla avainpalvelimelta, siirrä mitätöity avain palvelimelle, jotta muutkin näkevät mitätöinnin. -revokeUidQuestion=Mitätöidäänkö käyttäjätunnus %S? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Luotu -importInfoFpr=Sormenjälki -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=julkinen avain -# keyTypePrimary=primary key -keyTypeSubkey=aliavain -keyTypePair=avainpari -keyExpiryNever=ei koskaan keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Salaa -keyUsageSign=Allekirjoita -# keyUsageCertify=Certify -# keyUsageAuthentication=Authentication -keyDoesNotExpire=Avain ei vanhene - -# Strings in enigmailGenCardKey.xul -keygen.started=Odota avaimen luonnin valmistumista.... -keygen.completed=Avain luotu. Uuden avaimen tunnus on: 0x%S -keygen.keyBackup=Avaimesta luotiin varmuuskopio nimellä %S -keygen.passRequired=Kirjoita salasana jos haluat luoda varmuuskopion avaimesta toiselle medialle. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN-koodin vaihtaminen ei onnistunut - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Päivitetään avaimia, ole hyvä ja odota... -keyserverProgress.uploading=Siirretään avaimia avainpalvelimella, ole hyvä ja odota... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Päivitetään avaimia -keyserverTitle.uploading=Avainten siirto -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -# addUidDlg.nameOrEmailError=You have to fill in a name and an email address -# addUidDlg.nameMinLengthError=The name must at least have 5 characters -# addUidDlg.invalidEmailError=You must specify a valid email address - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. # errorType.SecurityProtocol=The security protocol used by the web service is unknown. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Tietoja Enigmail:stä # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/fi/help/compose.html enigmail-2.2.4/lang/fi/help/compose.html --- enigmail-2.1.6+ds1/lang/fi/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - -Enigmailin ohje: Viestien kirjoittamisesta - - - -

Enigmailin ohje

- -

Enigmailin käyttö kirjoitettaessa viestejä

- -
    -
  • Enigmailin valikko Posti tai viestin kirjoitusikkunassa -
      -
    • Allekirjoita viesti: Ota käyttöön tai poista käytöstä viestin allekirjoitus. -Käyttäjälle ilmoitetaan allekirjoituksen epäonnistumisesta. -
    • -
    • Salaa viesti: Ota käyttöön tai poista käytöstä viestin salaus kaikille vastaanottajille. -Käyttäjälle ilmoitetaan salaamisen epäonnistumisesta. -

      Jos sinulla ei ole salatun viestin kaikkien vastaanottajien julkisia avaimia ja -asetuksissa on valittuna Näytä avainten valintaikkuna kun se on välttämätöntä, -avainlista avautuu.

      -

      Jos sinulla ei ole salatun viestin kaikkien vastaanottajien julkisia avaimia ja -asetuksissa on valittuna Älä koskaan näytä avainten valintaikkunaa, viesti lähetetään selkokielisenä.

      -
    • -
    • Käytä PGP/MIME:ä tässä viestissä: Ota käyttöön tai poista käytöstä - PGP/MIME -tässä viestissä. -

      Jos tiedät, että viestin vastaanottajien sähköpostiohjelmat ymmärtävät -PGP/MIME-muotoa, sitä tulisi käyttää.

      -

      Tämä toiminto otetaan käyttöön valitsemalla PGP/MIME-asetuksista -Salli PGP/MIME:n käyttö tai Käytä aina PGP/MIME:ä.

      -
    • -
    • Viestien kirjoituksen oletusasetukset: Alavalikko. -
        -
      • Allekirjoitus-/salausasetukset...: pikalinkki Tilin asetukset -> OpenPGP-asetuksiin. -
      • -
      • Lähetysasetukset...: pikalinkki Asetukset -> Lähetys-välilehteen. -
      • -
      • Avainten valinnan asetukset...: pikalinkki Asetukset -> Avainten valinta-välilehteen. -
      • -
      • PGP/MIME-asetukset...: pikalinkki Asetukset -> PGP/MIME-välilehteen. -
      • -
      -
    • -
    • Kumoa salaus: Jos viestin lähettämisessä tapahtuu jokin -virhe, kuten esimerkiksi POP-palvelinvirhe, Enigmail ei voi tietää sitä ja -salattu viesti jää salatuksi viestin kirjoitusikkunaan. Palauta viesti -selkokieliseksi valitsemalla Kumoa salaus.
      - Kun Enigmail ei virheellisesti pura salausta lainatusta tekstistä kun -salattuun viestiin vastataan, tai salausta ei pureta automaattisesti jostain -muusta syystä, tätä toimintoa voi käyttää väliaikaisena korjauksena. -Yleensä salauksen purku toimii automaattisesti. - -
    • -
    • Lisää julkinen avain: Lisää julkisen avaimen -ASCII-koodattuna viestiin osoittimen sijainnista alkaen. Avaimeen sisällytettävät -sähköpostiosoitteet kysytään erikseen. Lisää viestiin vain yksi avainosio ja -valitse halutut julkiset avaimet. Jos vastaanottaja käyttää Enigmailia, -avainosio huomataan automaattisesti. Kun avaimet on lisätty, viesti voidaan -vielä salata ja allekirjoittaa. -
    • -
    • Tyhjennä salasana muistista: Tyhjentää salasanan -muistista. Toiminto on hyödyllinen, jos sinulla on useita avaimia ja useita -salasanoja. -
    • -
    • Ohje: Näyttää ohjeen (tämä sivu). -
    • -
    -
-
-

-Lisää ohjeita -Enigmailin ohjesivulta -

- - diff -Nru enigmail-2.1.6+ds1/lang/fi/help/editRcptRule.html enigmail-2.2.4/lang/fi/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/fi/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - -Enigmailin ohje: OpenPGP-sääntöjen muokkaaminen - - - -

Enigmailin ohje

- -

Enigmailin sääntömuokkaimen käyttö: OpenPGP-sääntöjen muokkaus

-

Sääntömuokkaimessa voit asettaa oletukset viestin allekirjoittamiselle, -salaamiselle, PGP/MIME-koodauksen käytölle, ja määrittää käytettävät -OpenPGP-avaimet vastaanottajakohtaisesti. Oletukset voidaan asettaa yhdelle -vastaanottajalle tai usealle vastaanottajalle, jolla on toisensa kaltaiset -sähköpostiosoitteet. -

-
    -
  • Aseta OpenPGP-säännöt osoitteille: Kentässä on täydelliset -sähköpostiosoitteet (tai osa osoitteista) joille alla olevat säännöt pätevät -suotimen tavoin. Jos osoitesuotimia on useita, ne erotetaan välilyönnillä. -Suotimet voivat olla esimerkiksi pelkkä verkkoalue @sposti.fi, johon -täsmäisivät kaikki @sposti.fi:n loppuvat osoitteet.
  • -
  • Sääntö pätee jos ylläoleva: Osoitesuotimen käyttäytymisen -voi valita. Jos yllä olevassa kentässä on useita osoitteita, käyttäytymisasetus -pätee kaikille osoitteille. Alla olevissa esimerkeissä osoitesuodinkenttään on -kirjoitettu nieminen@sposti.fi. -
      -
    • on täsmälleen vastaanottajan osoite: Tällä asetuksella sääntö -pätee viesteille, jotka lähetetään osoitteeseen nieminen@sposti.fi -(täsmäys on kirjainkoon huomioiva).
    • -
    • on osa vastaanottajan osoitetta: Tällä asetuksella sääntö -pätee viesteille, jotka lähetetään esim. osoitteisiin -matti.nieminen@sposti.fi, nieminen@sposti.fi.com jne. -
    • -
    • ja vastaanottajan osoitteen alku täsmäävät: Tällä asetuksella -sääntö pätee viesteille, jotka lähetetään esim. osoitteeseen -nieminen@sposti.fi.com -
    • -
    • ja vastaanottajan osoitteen loppu täsmäävät: Tällä asetuksella -sääntö pätee viesteille, jotka lähetetään esim. osoitteeseen -maija.nieminen@sposti.fi -
    • -
    -
  • -
  • Jatka seuraavaan sääntöön täsmäävälle osoitteelle
    -Jos asetus on valittu, Enigmail hakee osoitteeseen kuuluvaa OpenPGP-avainta -vasta viestiä lähetettäessä, ja muut säännöt voivat muuttaa täsmäävien viestien -lähetysasetuksia. -
  • -
  • Älä tarkista enää sääntöjä täsmäävälle osoitteelle
    -Jos asetus on valittu, täsmääviin osoitteisiin ei sovelleta muita sääntöjä. -Täsmäävä osoite jätetään siis huomiotta muita sääntöjä käsiteltäessä. -
  • -
  • Käytä seuraavia OpenPGP-avaimia:
    -Valitse käytettävät vastaanottajien avaimet napsauttamalla Valitse -avaimet-painiketta. Kuten yllä, jos asetus on valittu, muita sääntöjä -ei huomioida täsmääville sähköpostiosoitteille. -
  • -
  • Allekirjoittaminen: -Allekirjoita tai älä allekirjoita viestejä tälle vastaanottajalle. Tämä asetus -joko noudattaa viestin kirjoitusikkunassa antamaasi käskyä tai muuttaa sen. -Mahdolliset arvot: -
    • Ei koskaan: Älä ikinä allekirjoita viestiä -vastaanottajalle, huolimatta viestin kirjoitusikkunan asetuksista.
    • -
    • Vain jos valitaan erikseen viestiä kirjoitettaessa: Allekirjoita -viesti jos niin on viestin kirjoitusikkunassa asetettu
    • -
    • Aina: Allekirjoita viestit vastaanottajalle aina, huolimatta -viestin kirjoitusikkunan asetuksista
    -
  • -
-
Jokainen sääntö pätee kaikille täsmääville -viesteille. Jos jokin säännöistä ottaa allekirjoituksen pois päältä, viestiä ei -allekirjoiteta huolimatta siitä, mitä muut säännöt määräisivät.
-
-
    -
  • Salaa: Salaa tai älä -salaa viestiä. Asetusvalinnat ja niiden merkitykset ovat samat kuin viestin -allekirjoitukselle.
  • -
  • PGP/MIME: Ota käyttöön tai poista käytöstä PGP/MIME (RFC -3156) -koodaus. Jos PGP/MIME ei ole käytössä, viestit allekirjoitetaan ja -salataan käyttäen viestinsisäistä PGP:tä. Asetusvalinnat ja niiden merkitykset -ovat samat kuin viestin allekirjoitukselle. -
  • -
-

Säännöt käsitellään niiden listausjärjestyksessä OpenPGP-sääntömuokkaimessa. -Jos säännössä on annettu vastaanottajan OpenPGP-avaintunnus ja osoite täsmää -vastaanottajan osoitteeseen, muita viestin kanssa täsmääviä sääntöjä ei enää -käsitellä.

-
-

-Lisää ohjeita -Enigmailin vastaanottajakohtaisten asetusten ohjesivuilta -

- - diff -Nru enigmail-2.1.6+ds1/lang/fi/help/initError.html enigmail-2.2.4/lang/fi/help/initError.html --- enigmail-2.1.6+ds1/lang/fi/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/fi/help/messenger.html enigmail-2.2.4/lang/fi/help/messenger.html --- enigmail-2.1.6+ds1/lang/fi/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ - -Enigmailin ohje: Viestien lukeminen - - - -

Enigmailin ohje

- -

Enigmailin käyttö luettaessa viestejä

-
    -
  • Pura salaus -painike posti-ikkunassa
    -Pura-painikkeella voi purkaa salauksen, varmistaa allekirjoituksen tai tuoda -julkisia avaimia. Normaalisti salauksen purku tai allekirjoituksen varmistus -tapahtuu automaattisesti, mutta jos näin ei käy, Enigmailin tilariville ilmestyy -lyhyt virheilmoitus. Pura-painikkeesta saa tarkemman virheilmoituksen jossa -on mukana GnuPG-komennon virheilmoitus. -
  • -
  • Allekirjoitus- ja salauskuvakkeet viestin otsaketiedoissa
    -Allekirjoitus (kynä) ja salaus (avain) -kuvakkeet -ovat viestiotsakkeissa riippuen siitä, onko viesti allekirjoitettu hyvin (eli -viestiä ei ole muokattu siirrettäessä) tai salattu. Jos viestiä on jollain tapaa -muutettu siirrettäessä eli sen allekirjoitus on huono, tämä näkyy -allekirjoituskuvakkeessa (se on esimerkiksi rikkinäinen tai yliviivattu kynä). -Napsauttamalla kuvaketta hiiren oikealla painikkeella avautuu ponnahdusvalikko, -jossa on seuraavat kohdat: -
      -
    • OpenPGP-turvallisuustiedot: Näyttää GnuPG:n tulosteen tälle -viestille.
    • -
    • Kopioi OpenPGP-turvallisuustiedot: Kopiot leikepöydälle GnuPG:n -tulosteen tälle viestille.
    • -
    • Näytä OpenPGP-kuva: Näyttää kuvan, jonka viestin -lähettäjä on liittänyt julkiseen avaimeensa (vain jos kuva on olemassa).
    • -
    • S/MIME-turvallisuustiedot: Näyttää viestin -S/MIME-turvallisuustiedot.
    • -
    -

    Kun saat viestin, joka on allekirjoitettu sinulta puuttuvalla avaimella, ja -jos sinulla ei ole keyserver-options auto-key-retrieve asetusta -gpg.conf-tiedostossa (eli että kaikki tuntemattomat avaimet yritetään -hakea avainpalvelimelta), Enigmail näyttää viestiotsakkeissa -allekirjoituskuvakkeen, jossa on kysymysmerkki ja tekstirivin, jossa lukee -Osa viestistä allekirjoitettu. Napsauta allekirjoituskuvaketta saadaksesi -lisätietoja.

    -

    Sama allekirjoituskuvake voi näkyä vaikka -keyserver-options auto-key-retrieve olisikin asetettu, koska haettua -avainta ei ehkä löydy oletusavainpalvelimelta.

    -

    -Napsauttamalla allekirjoituskuvaketta, jossa on kysymysmerkki, avautuu ikkuna, -joka ilmoittaa, että avainta ei löydy avainrenkaastasi. Sulkemalla tämän ikkunan -OK:ta napsauttamalla avautuu ikkuna, josta voit valita avainpalvelimen, jolta -julkista avainta tulisi hakea.

    -

    -Voit muokata valittavissa olevia avainpalvelimia Enigmailin asetuksista: -Enigmail -> Asetukset -> Yleiset-välilehti, ja muokkaamalla -pilkulla erotettuja avainpalvelinten osoitteita -Avainpalvelimet:-kentässä. Oletusavainpalvelin on listassa ensimmäisenä. -

    -
  • -
  • Salattujen liitetiedostojen avaaminen ja liitettyjen OpenPGP-avainten tuonti
    -Enigmail käsittelee liitteet, joiden tiedostopääte on pgp, asc tai gpg. -Tällaisen liitteen ponnahdusvalikossa (napsauta hiiren oikealla painikkeella -liitettä) on kaksi erityistä valintaa: Pura ja avaa sekä Pura ja -tallenna. Näillä valinnoilla voit purkaa liitteen salauksen ennen kuin -avaat tai tallennat sen. Jos liite tunnistetaan OpenPGP-avaintiedostoksi, -sinulta kysytään haluatko tuoda avaimet. -
  • -

-

-Lisää ohjeita -Enigmailin ohjesivuilta -

- - diff -Nru enigmail-2.1.6+ds1/lang/fi/help/rulesEditor.html enigmail-2.2.4/lang/fi/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/fi/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - -Enigmailin ohje: Sääntömuokkain - - - -

Enigmailin ohje

- -

Enigmailin sääntömuokkaimen käyttö

-

Sääntömuokkaimessa voit muokata vastaanottajakohtaisia lähetysasetuksia. -Voit määrätä, missä PGP/MIME-muodossa viesti lähetetään, mitä avainta käytetään -ja allekirjoitetaanko tai salataanko se. Jokainen sääntö muodostuu viidestä -kentästä ja on kirjoitettu yhdelle riville: -

-
    -
  • Sähköpostiosoite: -Osoitteet, joiden vastaanottaja-, kopio- tai piilokopiokentässä on -ehdon täyttävä osoite. Ehto voi koskea myös vain osaa osoitteesta -(lisätietoja muokkaa sääntöjä -ikkunasta) -
  • -
  • OpenPGP-avaimet: Lista vastaanottajalle käytettävistä -OpenPGP-avaimista
  • -
  • Allekirjoita: Allekirjoita tai älä allekirjoita viestejä -tälle vastaanottajalle. Tämä asetus joko noudattaa viestin kirjoitusikkunassa -antamaasi käskyä tai muuttaa sen. Mahdolliset arvot: -
      -
    • Ei koskaan: Älä ikinä allekirjoita viestiä vastaanottajalle, -huolimatta viestin kirjoitusikkunan asetuksista.
      -
    • -
    • Mahdollisesti: Allekirjoita viesti jos niin on viestin -kirjoitusikkunassa asetettu
    • -
    • Aina: Allekirjoita viestit vastaanottajalle aina, huolimatta viestin -kirjoitusikkunan asetuksista -
    • -
    -
  • -
-
Jokainen sääntö pätee kaikille täsmääville -viesteille. Jos jokin säännöistä ottaa allekirjoituksen pois päältä, viestiä ei -allekirjoiteta huolimatta siitä, mitä muut säännöt määräisivät.
-
-
    -
  • Salaa: Salaa tai älä salaa viestiä. Asetusvalinnat ja -niiden merkitykset ovat samat kuin viestin allekirjoitukselle.
  • -
  • PGP/MIME: Ota käyttöön tai poista käytöstä PGP/MIME (RFC -3156) -koodaus. Jos PGP/MIME ei ole käytössä, viestit allekirjoitetaan ja -salataan käyttäen viestinsisäistä PGP:tä. Asetusvalinnat ja niiden merkitykset -ovat samat kuin viestin allekirjoitukselle.
  • -
-

Säännöt käsitellään niiden listausjärjestyksessä. Jos säännössä on annettu -vastaanottajan OpenPGP-avaintunnus ja osoite täsmää vastaanottajan osoitteeseen, -muita viestin kanssa täsmääviä sääntöjä ei enää käsitellä. -

-

Huom.: Sääntömuokkain ei ole vielä valmis. Monimutkaisempia sääntöjä -on mahdollista kirjoittaa muokkaamalla sääntötiedostoa käsin (näin muokattuihin -sääntöihin ei pitäisi enää koskea sääntömuokkaimella). Tarkempia ohjeita sääntötiedoston muokkaamisesta Enigmailin -kotisivulta.

-
-

-Lisää ohjeita -Enigmailin ohjesivuilta -

- - diff -Nru enigmail-2.1.6+ds1/lang/fi/help/sendingPrefs.html enigmail-2.2.4/lang/fi/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/fi/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fi/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/fr/am-enigprefs.properties enigmail-2.2.4/lang/fr/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/fr/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Sécurité OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/fr/enigmail.dtd enigmail-2.2.4/lang/fr/enigmail.dtd --- enigmail-2.1.6+ds1/lang/fr/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - »"> - - - - - - - » pour indiquer les adresses courriel"> - - - » pour indiquer les adresses courriel pour GnuPG. Désactivez si les destinataires possèdent d’anciennes clés Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sécurité OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTE : La génération d’une clé peut prendre plusieurs minutes. Veuillez ne pas quitter l’application tant que la génération de clé est en cours. Parcourir activement le Web ou effectuer des opérations sollicitant le disque dur pendant la génération de clé renouvellera la « réserve d’aléation » (entropie) et accélérera le processus. Vous serez averti quand l’opération de génération de clé sera terminée."> - @@ -296,492 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - » est invalide"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTE : La génération de clé peut prendre plusieurs minutes. Veuillez ne pas quitter l’application tant que cette opération est en cours. Vous serez averti quand l’opération de génération de clé sera terminée."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/fr/enigmail.properties enigmail-2.2.4/lang/fr/enigmail.properties --- enigmail-2.1.6+ds1/lang/fr/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Alerte Enigmail enigConfirm=Confirmation d’Enigmail enigInfo=Renseignements Enigmail -enigError=Erreur Enigmail enigPrompt=Invite Enigmail - -dlgYes=&Oui dlgNo=&Non dlgKeepSetting=Mémoriser ma réponse et ne plus me demander dlgNoPrompt=Ne plus afficher cette boîte de dialogue -dlg.button.delete=&Supprimer dlg.button.cancel=&Annuler dlg.button.close=&Fermer dlg.button.continue=Con&tinuer -dlg.button.skip=&Ignorer -dlg.button.overwrite=&Remplacer -dlg.button.view=&Visualiser -dlg.button.retry=&Ressayer -dlg.button.ignore=&Ignorer -dlg.button.install=&Installer dlg.button.ok=&D’accord - repeatPrefix=\n\nCette alerte sera répétée %S repeatSuffixSingular=fois. repeatSuffixPlural=fois. noRepeat=\n\nCette alerte ne sera pas répétée jusqu’à la mise à niveau d’Enigmail. - -pgpNotSupported=Vous semblez utiliser Enigmail avec PGP 6.x.\n\nMalheureusement, PGP 6.x présente un certain nombre de problèmes qui empêchent Enigmail de fonctionner correctement. C’est pourquoi Enigmail ne prend plus en charge PGP 6.x ; veuillez plutôt utiliser GnuPG (GPG).\n\nPour de l’aide sur le passage à GnuPG, consulter la section Aide de la page d’accueil d’Enigmail. -initErr.howToFixIt=GnuPG est exigé pour utiliser Enigmail. Si vous n’avez pas encore installé GnuPG, le bouton « Assistant d’installation » ci-dessous vous permet de le faire, facilement. -initErr.setupWizard.button=A&ssistant de configuration passphraseCleared=La phrase de passe n’est plus mémorisée. cannotClearPassphrase=Vous utilisez un outil atypique (comme le trousseau gnome-keyring) pour gérer les phrases de passe. Il est donc impossible d’effacer la phrase de passe à partir d’Enigmail. -noPhotoAvailable=Aucune photo -debugLog.title=Journal de débogage d’Enigmail -error.photoPathNotReadable=Le chemin de la photo « %S » est illisible - -generalError=Erreur : %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Cette nouvelle version d’Enigmail offre des changements importants dans la manière de gérer les préférences et options. Nous avons essayé de transférer les anciens paramètres vers cette nouvelle version. Cependant, nous ne pouvons pas traiter tous les cas automatiquement. Veuillez vérifier les nouvelles préférences et options générées ainsi. -enigmailCommon.checkPreferences=Vérifier les préférences… -preferences.defaultToPgpMime=Nous avons changé l’encodage par défaut des courriels dans Enigmail de PGP intégré à PGP/MIME. Nous vous recommandons de conserver ce réglage.\n\nSi vous souhaitez quand même utiliser PGP intégré par défaut, vous pouvez le configurer dans Paramètres de compte > Sécurité OpenPGP - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Enigmail version %S est utilisée -enigmailPepVersion=Enigmail/p≡p version %S usingAgent=L’exécutable %1$S %2$S est utilisé pour chiffrer et déchiffrer agentError=ERREUR : échec d’accès au service principal d’Enigmail ! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Erreur d’accès au service Enigmail -onlyGPG=La génération de clé ne fonctionne qu’avec GnuPG (pas avec PGP) ! - -keygenComplete=La génération de clé est terminée ! L’identité <%S> sera utilisée pour la signature. -revokeCertRecommended=Nous recommandons fortement de créer un certificat de révocation pour votre clé. Ce certificat peut être utilisé pour invalider votre clé, par exemple si vous perdiez votre clé privée ou si elle était compromise. Souhaitez-vous créer un tel certificat de révocation maintenant ? -keyMan.button.generateCert=&Générer un certificat -genCompleteNoSign=La génération de clé est terminée ! -genGoing=Une génération de clé est déjà en cours ! - -passNoMatch=Les phrases de passe ne correspondent pas ; veuillez les saisir à nouveau -passCheckBox=Veuillez cocher la case en cas d’absence de phrase de passe pour la clé -passUserName=Veuillez indiquer un nom d’utilisateur pour cette identité -keygen.missingUserName=Aucun nom n’est indiqué pour le compte ou l’identité sélectionnés. Veuillez saisir une valeur dans le champ « Nom » des paramètres de compte. -keygen.passCharProblem=Vous utilisez des caractères spéciaux dans votre phrase de passe, ce qui pourrait malheureusement entraîner des problèmes avec d’autres applications. Nous vous recommandons de choisir une phrase de passe ne comprenant que les caractères suivants : \na à z A à Z 0 à 9 /.;:-,!?(){}[]%* -passSpaceProblem=Pour des raisons techniques, votre phrase de passe ne peut ni commencer ni se terminer par une espace. -changePassFailed=Échec de modification de la phrase de passe. - -keyConfirm=Générer une clé publique et secrète pour « %S » ? -keyMan.button.generateKey=&Générer une clé -keyAbort=Abandonner la génération de clé ? -keyMan.button.generateKeyAbort=&Abandonner la génération de clé -keyMan.button.generateKeyContinue=&Continuer la génération de clé -expiryTooLong=Vous ne pouvez pas créer une clé qui expirera dans plus de 100 ans. -expiryTooLongShorter=Vous ne pouvez pas créer une clé qui expirera dans plus de 90 ans. -expiryTooShort=Votre clé doit être valide pendant au moins un jour. -keyGenFailed=La génération de la clé a échoué. Veuillez consulter la console d’Enigmail (Menu Enigmail > Options de débogage) pour plus de précisions. -setKeyExpirationDateFailed=Impossible de modifier la date d’expiration - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informations de sécurité d’Enigmail\n\n - -enigHeader=Enigmail : -enigContentNote=Enigmail : *Les fichiers joints à ce courriel n’ont été ni signés ni chiffrés*\n\n -possiblyPgpMime=Possiblement un courriel chiffré ou signé avec PGP/MIME ; utiliser la fonction Déchiffrer/vérifier pour le vérifier - -saveAttachmentHeader=Enigmail : enregistrer le fichier joint déchiffré -noTempDir=Impossible de trouver un répertoire temporaire vers lequel écrire\nVeuillez définir la variable d’environnement TEMP -attachmentPgpKey=Le fichier joint « %S » que vous souhaitez ouvrir semble être un fichier de clé OpenPGP.\n\nCliquer sur Importer pour importer la clé contenue ou Visualiser pour visualiser le contenu du fichier dans une fenêtre de navigation - -beginPgpPart=********* *DÉBUT DE LA PARTIE CHIFFRÉE ou SIGNÉE* ********* -endPgpPart=********** *FIN DE LA PARTIE CHIFFRÉE ou SIGNÉE* ********** -notePartEncrypted=Enigmail : *Des parties du courriel n’ont été NI signées NI chiffrées* -noteCutMessage=Enigmail : *plusieurs blocs de courriel ont été trouvés – le déchiffrement, la vérification ont été abandonnés* - -decryptOkNoSig=Avertissement\n\nLe déchiffrement a réussi, mais la signature n’a pas pu être vérifiée correctement -msgOvl.button.contAnyway=&Continuer quand même -signature.verifiedOK=La signature a été vérifiée avec succès pour le fichier joint %S -signature.verifyFailed=Impossible de vérifier la signature du fichier joint %S -attachment.noMatchToSignature=Impossible de faire correspondre le fichier joint « %S » à un fichier de signature -attachment.noMatchFromSignature=Impossible de faire correspondre le fichier de signature « %S » à un fichier joint -fixBrokenExchangeMsg.failed=La réparation du courriel n’a pas été possible. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importer la clé -wksNoIdentity=Cette clé n’est liée à aucun de vos comptes de courriel. Veuillez ajouter un compte pour au moins l’une des adresses courriel suivantes :\n\n%S -wksConfirmSuccess=Le courriel de confirmation a été envoyé. -wksConfirmFailure=Échec d’envoi du courriel de confirmation. -autocrypt.importSetupKey.accountPreconfigured=Votre compte est déjà configuré correctement pour Autocrypt.\n\nVoulez-vous vraiment remplacer vos paramètres par ce courriel de configuration ? -autocrypt.importSetupKey.selfCreated=Ce courriel a été créé par votre instance actuelle d’Enigmail.\n\nVeuillez basculer vers le client de courriel vers lequel vous souhaitez transférer les paramètres et cliquer sur le courriel s’y trouvant pour importer les paramètres. -autocrypt.importSetupKey.invalidMessage=Erreur – impossible de lire le courriel de configuration. Le courriel semble corrompu. Veuillez essayer de créer un nouveau courriel de configuration sur votre « autre » appareil. -autocrypt.importSetupKey.invalidKey=Erreur – impossible d’importer la clé. La clé n’est soit pas prise en charge par cette version de GnuPG, soit corrompue. -autocrypt.importSetupKey.wrongPasswd=Le mot de passe que vous avez saisi est erroné. Souhaitez-vous ressayer ? -autocrypt.importSetupKey.success=Le courriel de configuration Autocrypt a été traité avec succès. Autocrypt est maintenant proposé pour votre compte « %S » - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Sélectionner les clés OpenPGP à insérer keysToUse=Sélectionner la ou les clés OpenPGP à utiliser pour %S pubKey=Clé publique de %S\n - -windowLocked=La fenêtre de rédaction est verrouillée ; l’envoi a été annulé -sendUnencrypted=Échec d’initialisation d’Enigmail.\nEnvoyer le courriel sans chiffrement ? -composeSpecifyEmail=Veuillez indiquer votre adresse courriel principale, adresse qui sera utilisée pour choisir la clé de signature des courriels sortants.\nSi vous laissez le champ vide, l’adresse DE du courriel sera utilisée pour choisir la clé. -sendingHiddenRcpt=Ce courriel a des destinataires cachés (Cci). Si ce courriel est chiffré, il est possible de cacher les destinataires Cci, mais les utilisateurs de certains produits (p. ex. PGP Corp.) ne pourront pas déchiffrer le courriel. C’est pour cela que nous recommandons d’éviter les courriels Cci pour les courriels chiffrés. -sendWithHiddenBcc=Cacher les destinataires Cci -sendWithShownBcc=Chiffrer normalement -sendingNews=L’opération d’envoi chiffré a été annulée.\n\nCe courriel ne peut pas être chiffré, car certains destinataires sont des forums. Veuillez renvoyer le courriel sans chiffrement. -sendToNewsWarning=Avertissement : Vous êtes sur le point d’envoyer un courriel chiffré à un forum.\n\nCela est déconseillé, car il ne serait logique de le faire que si tous les membres du forum peuvent déchiffrer le courriel, c.-à-d. que le courriel doit être chiffré avec les clés de tous les membres du forum. Veuillez n’envoyer ce courriel que si vous savez exactement ce que vous faites.\n\nContinuer ? -hasHTML=Avertissement de courriel HTML :\nCe courriel comprend peut-être du HTML, ce qui pourrait entraîner l’échec de la signature ou du chiffrement. Pour éviter cela à l’avenir, vous devriez appuyer sur la touche Maj en cliquant sur le bouton Rédiger/Répondre pour envoyer un courriel signé.\nSi vous signez les courriels par défaut, vous devriez décocher le paramètre « Rédiger les courriels en HTML » afin de désactiver de façon permanente les courriels HTML pour ce compte de courriel. -strippingHTML=Le courriel comprend des renseignements de formatage HTML qui seront perdus lors de la conversion en texte clair pour la signature ou le chiffrement. Souhaitez-vous continuer ? -msgCompose.button.sendAnyway=&Envoyer le courriel quand même -attachWarning=Les fichiers joints de ce courriel ne sont pas locaux, ils ne peuvent donc pas être chiffrés. Afin de chiffrer les fichiers joints, enregistrez-les d’abord localement, puis joignez-les. Souhaitez-vous quand même envoyer le courriel ? quotedPrintableWarn=Vous avez activé l’encodage « citation imprimable » pour l’envoi de courriels. Cela peut entraîner un déchiffrement ou une vérification incorrects de votre courriel.\nSouhaitez-vous désactiver maintenant l’envoi de courriels avec cette option ? -minimalLineWrapping=Vous avez défini le retour à la ligne automatique à %S caractères. Pour un chiffrement ou une signature corrects, cette valeur doit être d’au moins 68.\nSouhaitez-vous définir le retour à la ligne automatique à 68 caractères maintenant ? warning=Avertissement -signIconClicked=Vous avez modifié la signature manuellement. De ce fait, pendant la rédaction de ce courriel, l’activation ou la désactivation de la signature ne dépend plus de l’activation ou de la désactivation du chiffrement. -errorOwnKeyUnusable=L’ID de clé « %S » configuré pour l’identité courante ne produit pas de clé OpenPGP valide.\n\nVeuillez vous assurer que la clé OpenPGP est valide, qu’elle n’est pas expirée et que les paramètres de votre compte font appel à cette clé.\nSi votre clé n’est pas expirée, vérifiez ensuite si vous avez bien défini le niveau de confiance envers le propriétaire à « pleine » ou « absolue ». -msgCompose.cannotSaveDraft=Erreur d’enregistrement du brouillon -msgCompose.partiallyEncrypted.short=Méfiez-vous de ne pas divulguer des renseignements délicats – le courriel est chiffré partiellement. -msgCompose.partiallyEncrypted.inlinePGP=Le courriel auquel vous répondez comprend à la fois des parties non chiffrées et chiffrées. Si l’expéditeur n’a pas réussi à déchiffrer initialement les parties cachées du courriel, vous divulguerez peut-être des renseignements confidentiels que l’expéditeur n’a pas réussi à déchiffrer.\n\nVeuillez envisager d’effacer tout texte cité de votre réponse à cet expéditeur. - -msgCompose.internalEncryptionError=Erreur interne : le chiffrement promis est désactivé -msgCompose.internalError=Une erreur interne est survenue. - -msgCompose.toolbarTxt.signAndEncrypt=Ce courriel sera signé et chiffré -msgCompose.toolbarTxt.signOnly=Ce courriel sera signé -msgCompose.toolbarTxt.encryptOnly=Ce courriel sera chiffré -msgCompose.toolbarTxt.noEncryption=Ce courriel ne sera ni signé ni chiffré -msgCompose.toolbarTxt.disabled=Enigmail est désactivée pour l’identité sélectionnée -msgCompose.protectSubject.tooltip=Protéger l’objet du courriel -msgCompose.noSubjectProtection.tooltip=Ne pas protéger l’objet du courriel -msgCompose.protectSubject.dialogTitle=Activer la protection de l’objet du courriel ? -msgCompose.protectSubject.question=Les courriels ordinaires non chiffrés contiennent l’objet non dissimulé.\n\nNous avons établi une norme pour cacher l’objet original du courriel chiffré et le remplacer par un faux texte afin que l’objet ne soit visible qu’une fois le courriel déchiffré.\n\nSouhaitez-vous protéger l’objet des courriels chiffrés ? -msgCompose.protectSubject.yesButton=&Protéger l’objet -msgCompose.protectSubject.noButton=&Laisser l’objet sans protection - -msgCompose.detailsButton.label=Détails… -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Inconnu -msgCompose.pepSendUnsecure=Non sécurisé -msgCompose.pepSendSecure=Sécurisé -msgCompose.pepSendTrusted=Sécurisé et de confiance - -pep.alert.disabledForIdentity=p≡p est désactivé pour l’identité actuelle. Veuillez activer p≡p dans les préférences d’Enigmail/p≡p. -pep.alert.weakReply=Vous êtes sur le point de répondre à un courriel sécurisé ou de le transférer, mais le courriel que vous enverrez ne sera pas sécurisé. Si vous choisissez de poursuivre, des renseignements confidentiels pourraient être divulgués, ce qui vous exposerait, ainsi que votre partenaire de communication, à des risques. Voulez-vous vraiment poursuivre ? - - -# note: should end with double newline: -sendAborted=L’opération d’envoi a été annulée.\n\n - -# details: keyNotTrusted=Le niveau de confiance de la clé « %S » est insuffisant -keyNotFound=La clé « %S » est introuvable -keyRevoked=La clé « %S » est révoquée -keyExpired=La clé « %S » est expirée - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=SIGNÉ -statEncrypted=CHIFFRÉ -statPlain=NON SIGNÉ et NON CHIFFRÉ - -offlineSave=Enregistrer le courriel %1$S à %2$S dans le dossier « Courriels non envoyés » ? - -onlineSend=Envoyer le courriel %1$S à %S ? -encryptKeysNote=Note : Le courriel est chiffré pour les clés et ID utilisateurs suivants : %S -hiddenKey= - -signFailed=Erreur Enigmail : échec de chiffrement ou de signature. Envoyer le courriel non chiffré ? -msgCompose.button.sendUnencrypted=&Envoyer le courriel non chiffré -recipientsSelectionHdr=Sélectionner les destinataires pour le chiffrement - -configureNow=Vous n’avez pas encore configuré la sécurité Enigmail pour l’identité sélectionnée. Souhaitez-vous le faire maintenant ? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Chiffrer le courriel (automatique) -encryptMessageNorm=Chiffrer le courriel -signMessageAuto=Signer le courriel (automatique) -signMessageNorm=Signer le courriel - -encryptOff=Chiffrement : DÉSACTIVÉ -encryptOnWithReason=Chiffrement : ACTIVÉ (%S) -encryptOffWithReason=Chiffrement : DÉSACTIVÉ (%S) -encryptOn=Chiffrement : ACTIVÉ -signOn=Signature : activée -signOff=Signature : désactivée -signOnWithReason=Signature : activée (%S) -signOffWithReason=Signature : désactivée (%S) -reasonEnabledByDefault=activé par défaut -reasonManuallyForced=forcé manuellement -reasonByRecipientRules=forcé par les règles par destinataire -reasonByAutoEncryption=forcé par le chiffrement automatique -reasonByConflict=en raison d’un conflit dans les règles par destinataire -reasonByEncryptionMode=à cause du mode de chiffrement - -# should not be used anymore: -encryptYes=Le courriel sera chiffré -encryptNo=Le courriel ne sera pas chiffré - -# should not be used anymore: -signYes=Le courriel sera signé -signNo=Le courriel ne sera pas signé - - -# PGP/MIME status: -pgpmimeNormal=Protocole : PGP/MIME -inlinePGPNormal=Protocole : PGP intégré -smimeNormal=Protocole : S/MIME -pgpmimeAuto=Protocole : PGP/MIME (automatique) -inlinePGPAuto=Protocole : PGP intégré (auto) -smimeAuto=Protocole : S/MIME (automatique) - -# should not be used anymore -pgpmimeYes=PGP/MIME sera utilisé -pgpmimeNo=PGP intégré sera utilisé - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Votre propre clé publique ne sera pas jointe -attachOwnKeyYes=Votre propre clé publique sera jointe -attachOwnKeyDisabled=Votre propre clé publique ne peut pas être jointe. Vous devez sélectionner une clé précise dans la section OpenPGP des Paramètres de compte pour activer cette fonction. - -rulesConflict=Un conflit de règles par destinataire a été détecté\n%S\n\nEnvoyer le courriel avec ces paramètres ? -msgCompose.button.configure=&Configurer -msgCompose.button.send=&Envoyer le courriel -msgCompose.button.save=Enregi&strer le courriel - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=La clé publique « %S » est exigée pour vérifier la signature -keyUsed=La clé publique %S a été utilisée pour vérifier la signature -clickDecrypt= ; utiliser la fonction Déchiffrer/Vérifier -clickDecryptRetry=  ; utiliser la fonction « Déchiffrer/Vérifier » pour ressayer -clickDetailsButton= ; cliquez sur le bouton « Détails » pour de plus amples informations -clickImportButton= ; cliquez sur le bouton « Importer la clé » pour l’importer -keyTypeUnsupported= ; le type de clé n’est pas pris en charge par votre version de GnuPG -decryptManually= ; cliquer sur le bouton « Déchiffrer » pour déchiffrer le message -verifyManually= ; cliquer sur le bouton « Vérifier » pour vérifier la signature -headerView.button.verify=Vérifier -headerView.button.decrypt=Déchiffrer -msgPart=Une partie du courriel est %S -msgSigned=signé -msgSignedUnkownKey=signé avec une clé inconnue -msgEncrypted=chiffré -msgSignedAndEnc=signé et chiffré - unverifiedSig=La signature n’a pas été vérifiée -incompleteDecrypt=Le déchiffrement n’a pas abouti -needKey=Erreur – aucune clé privée n’a été trouvée pour déchiffrer le courriel -failedDecrypt=Erreur – échec de déchiffrement badPhrase=Erreur – phrase de passe erronée missingMdcError=Erreur – protection de l’intégrité manquante ou brisée (MDC) -failedDecryptVerify=Erreur – échec du déchiffrement ou de la vérification -viewInfo= ; pour plus de détails, Affichage > Infos de sécurité Enigmail -brokenExchangeMessage=Courriel PGP/MIME brisé de MS-Exchange. - -decryptedMsg=Courriel déchiffré  -decryptedMsgWithFormatError=Courriel déchiffré (restauration d’un format de courriel PGP défectueux probablement causé par un ancien serveur Exchange ; le résultat pourrait ne pas être complètement lisible) - -usedAlgorithms=Algorithmes utilisés : %S et %S -pepStatusInfo.text=État de courriel p≡p. -pepStatusInfo.title.m3=Cible d’une attaque -pepStatusInfo.info.m3=Ce courriel n’est pas sécurisé et a été altéré. -pepStatusInfo.title.m1=Non digne de confiance -pepStatusInfo.info.m1=Un des partenaires de communication de ce courriel a précédemment été marqué comme non digne de confiance -pepStatusInfo.title.r0=Inconnu -pepStatusInfo.info.r0=Ce courriel ne comprend pas suffisamment de renseignements pour déterminer s’il est sécurisé. -pepStatusInfo.title.r1=Impossible de déchiffrer -pepStatusInfo.info.r1=Ce courriel ne peut pas être déchiffré, car la clé n’est pas disponible. -pepStatusInfo.title.r2=Impossible de déchiffrer -pepStatusInfo.info.r2=Ce courriel ne peut pas être déchiffré, car la clé n’est pas disponible. -pepStatusInfo.title.r3=Non sécurisé -pepStatusInfo.info.r3=Ce courriel n’est pas sécurisé. -pepStatusInfo.title.r4=Non sécurisé pour certains -pepStatusInfo.info.r4=Ce courriel n’est pas sécurisé pour certains partenaires de communication. -pepStatusInfo.title.r5=Sécurité non fiable -pepStatusInfo.info.r5=La protection de ce courriel n’est pas fiable. -pepStatusInfo.title.r6=Sécurisé… -pepStatusInfo.info.r6=Ce courriel est sécurisé, mais vous devez quand même vérifier l’identité de votre partenaire de communication. -pepStatusInfo.title.r7=Sécurisé et de confiance -pepStatusInfo.info.r7=Ce courriel est sécurisé et de confiance. - -pepStatusInfo.color.green=Vert -pepStatusInfo.color.yellow=Jaune -pepStatusInfo.color.red=Rouge -pepRevokeTrust.question=Voulez-vous vraiment supprimer le niveau de confiance en %S ? -pepRevokeMistrust.question=Souhaitez-vous vraiment accorder votre confiance de nouveau à la clé de %S ? -pepRevokeTrust.doRevoke=Annuler la &confiance - -wksConfirmationReq=Demande de confirmation de l’annuaire de clés Web (WKD) -wksConfirmationReq.message=Ce courriel a été envoyé par votre fournisseur de services de courriel pour confirmer le déploiement de votre clé publique OpenPGP dans son annuaire de clés Web (WKD).\nEn fournissant votre clé publique, vous facilitez la découverte de votre clé, permettant aux autres de chiffrer les courriels qu’ils vous envoient.\n\nSi vous souhaitez propager votre clé dans l’annuaire de clés Web (WKD), veuillez cliquer sur le bouton « Confirmer la demande » dans la barre d’état.\nSinon, ignorez simplement ce courriel. -wksConfirmationReq.button.label=Confirmer la demande - -autocryptSetupReq=Lancer la configuration Autocrypt -autocryptSetupReq.button.label=Lancer la configuration -autocryptSetupReq.setupMsg.desc=Ce courriel comprend tous les renseignements pour transférer vos paramètres Autocrypt ainsi que votre clé privée de manière sûre à partir de votre appareil d’origine. -autocryptSetupReq.setupMsg.backup=Vous pouvez conserver ce courriel et l’utiliser comme sauvegarde de votre clé privée. Si vous souhaitez le faire, vous devriez noter le mot de passe et le conservez à l’abri. -autocryptSetupReq.message.import=Pour importer les paramètres et clés dans Enigmail, veuillez cliquer sur le bouton « Lancer la configuration » dans la barre d’état. -autocryptSetupReq.message.sent=Veuillez cliquer sur le courriel sur votre nouvel appareil et suivre les instructions pour importer les paramètres. -postbox.cannotUseQuickReply.message=Vous répondez à un courriel chiffré. Veuillez cliquer sur l’icône « Développer » dans le coin supérieur droit de la fenêtre de texte pour ouvrir votre réponse dans une nouvelle fenêtre, et y envoyer votre message. - -# strings in pref-enigmail.js oldGpgVersion20=Échec d’initialisation d’Enigmail.\n\nVous utilisez GnuPG version %1$S, qui n’est plus prise en charge. Enigmail exige GnuPG version %2$S ou ultérieure. Veuillez mettre à niveau votre installation de GnuPG, ou Enigmail ne fonctionnera pas. -locateGpg=Localiser le programme GnuPG -invalidGpgPath=GnuPG ne peut pas être exécuté avec le chemin indiqué. Enigmail est donc désactivé jusqu’à ce que vous changiez le chemin vers GnuPG ou redémarriez l’application. -warningsAreReset=Tous les avertissement ont été réinitialisés. -prefs.gpgFound=GnuPG a été trouvé dans %S -prefs.gpgNotFound=Impossible de trouver GnuPG -prefs.warnAskNever=Avertissement : Activer cette option entraînera l’envoi de courriels non chiffrés sans autre notification si l’un des destinataires n’a pas de clé – Enigmail ne vous signalera pas de tels cas ! -prefs.warnIdleTimeForUnknownAgent=Impossible de se connecter à gpg-agent. Votre système utilise peut-être un outil spécialisé pour gérer les phrases de passe (p. ex. les trousseaux gnome-keyring, seahorse-agent ou le gestionnaire de porte-monnaie KDE…). Malheureusement, Enigmail ne peut pas contrôler le délai de mémorisation pour l’outil que vous utilisez. Par conséquent, les paramètres de délai de mémorisation d’Enigmail seront ignorés. -prefEnigmail.oneKeyserverOnly=Erreur – vous ne pouvez indiquer qu’un seul serveur de clés pour le téléchargement automatique des clés OpenPGP manquantes. -acSetupMessage.desc=Transférer votre clé vers un autre appareil compatible Autocrypt. (Qu’est-ce qu’Autocrypt [site an anglais]) -aboutLicense.desc=Enigmail est à code source ouvert et distribuée selon les termes de la license public Mozilla 2.0. (page en anglais). - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Veuillez saisir le NIP d’administration de votre carte à puce intelligente -enterCardPin=Veuillez saisir le NIP de votre carte à puce intelligente - -notInit=Erreur – le service Enigmail n’est pas encore initialisé badCommand=Erreur – échec de la commande de chiffrement cmdLine=ligne de commande et sortie : -notRequired=Erreur – aucun chiffrement nécessaire -notComplete=Erreur – la génération de clé n’est pas encore terminée -invalidEmail=Erreur – adresses courriel invalides noPassphrase=Erreur – aucune phrase de passe n’a été saisie noPGPblock=Erreur – aucun bloc de données OpenPGP blindé valide n’a été trouvé -unverifiedReply=La partie indentée du courriel (réponse) a probablement été modifiée -keyInMessageBody=Une clé a été trouvée dans le corps du courriel. Cliquer sur « Importer la clé » pour l’importer -sigMismatch=Erreur – la signature ne correspond pas -cantImport=Erreur d’importation de la clé publique\n\n -doImportOne=Importer %1$S (%2$S) ? -doImportMultiple=Importer les clés suivantes ?\n\n%S -previewFailed=Impossible de lire le fichier de la clé publique. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=La carte à puce intelligente %1$S détectée dans votre lecteur ne peut pas être utilisée pour traiter le courriel.\nVeuillez insérer votre carte %2$S et recommencer l’opération. sc.insertCard=Cette opération exige votre carte à puce intelligente %S.\nVeuillez insérer la carte exigée et recommencer l’opération. sc.removeCard=Cette opération exige qu’aucune carte à puce intelligente ne soit dans le lecteur.\nVeuillez retirer votre carte et recommencer l’opération. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Impossible d’accéder à votre lecteur de cartes à puce intelligente.\nVeuillez connecter votre lecteur de cartes, insérer votre carte et recommencer l’opération. keyError.keySpecNotFound=L’adresse courriel « %S » ne correspond à aucune clé de votre trousseau. keyError.keyIdNotFound=L’ID de clé « %S » configuré ne se trouve pas dans votre trousseau. -keyError.resolutionAction=Veuillez sélectionner une clé valide dans la section OpenPGP de vos paramètres de compte. missingPassphrase=La phrase de passe manquante n’a pas été saisie errorHandling.gpgAgentInvalid=Votre système utilise une version de gpg-agent qui n’est pas adaptée à votre version de GnuPG. errorHandling.gpgAgentError=GnuPG a signalé une erreur de communication avec gpg-agent (un composant de GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG ne peut demander votre phrase de passe avec pinentry. errorHandling.pinentryCursesError=Votre installation de GnuPG est configurée pour utiliser pinentry dans la console. Cependant, si vous utilisez Enigmail, il vous faut une version graphique de pinentry. errorHandling.readFaq=Ceci est une erreur de configuration du système qui empêche Enigmail de fonctionner correctement et qui ne peut pas être corrigée automatiquement.\n\nNous vous conseillons vivement de consulter notre page Web de soutien https://enigmail.net/faq (en anglais) - gpgNotFound=Impossible de trouver le programme GnuPG « %S ».\nAssurez-vous d’avoir correctement défini le chemin de l’exécutable GnuPG dans les préférences d’Enigmail. gpgNotInPath=Impossible de trouver l’exécutable GnuPG dans le chemin.\nAssurez-vous d’avoir correctement défini le chemin de l’exécutable GnuPG dans les préférences d’Enigmail. enigmailNotAvailable=Le service principal d’Enigmail n’est pas disponible - -prefGood=Signature valide de %S -prefBad=MAUVAISE signature de %S - failCancel=Erreur – la réception de clé a été annulé par l’utilisateur failKeyExtract=Erreur – échec de la commande d’extraction de clé -failKeyNoSubkey=Aucune clé ni sous-clé valide notFirstBlock=Erreur – le premier bloc de données OpenPGP n’est pas un bloc de clé publique importKeyConfirm=Importer les clés publiques intégrées au courriel ? -failKeyImport=Erreur – échec d’importation de la clé fileWriteFailed=Échec d’écriture dans le fichier %S - importKey=Importer la clé publique %S du serveur de clés : uploadKey=Envoyer la clé publique %S au serveur de clés : keyId=ID de clé -keyAndSigDate=ID de clé : 0x%1$S / Signée le : %2$S -keyFpr=Empreinte de la clé : %S -noEmailProvided=Vous n’avez indiqué aucune adresse courriel ! -keyAlreadySigned=La clé est déjà signée et vous ne pouvez pas la signer deux fois. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expirée %S createdHeader=Créée atLeastOneKey=Aucune clé n’a été sélectionnée ! Vous devez sélectionner au moins une clé pour accepter cette boîte de dialogue fewerKeysThanRecipients=Vous avez sélectionné moins de clés que de destinataires. Êtes-vous certain que la liste de clés qui seront utilisées pour chiffrer est complète ? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Sélectionner une clé privée OpenPGP pour signer vos courriels userSel.problemNoKey=Aucune clé valide userSel.problemMultipleKeys=Multiclés -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Envoyer plus tard - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=NOTE : PGP/MIME n’est pas pris en charge par tous les clients de courriel. Dans le doute, sélectionner l’option %S. first=première second=seconde - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Sélectionner une clé OpenPGP pour le chiffrement -identityName=Identité : %S -switchPepMode=Vous utilisez actuellement le mode « p≡p junior » d’Enigmail.\n\nEn activant OpenPGP ou S/MIME pour un compte, vous désactivez p≡p et utilisez le mode ordinaire sans p≡p. -enableEnigmail=&Désactiver p≡p -amPrefAutocrypt.desc=Autocrypt (site en anglais) est une norme qui définit la mise en place commode du chiffrement de bout en bout des courriels. Elle définit la négociation par les programmes de courriel des capacités de chiffrement en utilisant des courriels ordinaires. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Vous avez activé le chiffrement, mais vous n’avez pas sélectionné de clé. Afin de chiffrer les courriels envoyés à %1$S, vous devez indiquer une ou plusieurs clés valides de votre liste de clés. Souhaitez-vous désactiver le chiffrement pour %2$S ? -noKeyToUse=(aucune – aucun chiffrement) -noEmptyRule=La règle ne peut pas être vide ! Veuillez définir une adresse courriel dans le champ Règle. -invalidAddress=Les adresses courriel que vous avez saisies ne sont pas valides. Vous ne devriez pas définir le nom des destinataires, seulement leur adresse courriel. Par exemple :\nInvalide : Un nom \nValide : un.nom@adresse.net -noCurlyBrackets=Les accolades {} ont une signification particulière et ne devraient pas être utilisées dans une adresse courriel. Si vous souhaitez modifier le comportement de correspondance pour cette règle, utilisez l’option « Appliquer la règle si le destinataire… ».\nLe bouton Aide donne plus de renseignements à ce sujet. - -# Strings used in enigmailRulesEditor.js never=Jamais always=Toujours possible=Possible -deleteRule=Souhaitez-vous vraiment supprimer la règle sélectionnée ? -nextRcpt=(destinataire suivant) -negateRule=Non -addKeyToRule=Ajouter la clé %1$S (%2$S) à la règle par destinataire - -# Strings used in enigmailSearchKey.js -needOnline=La fonction que vous avez sélectionnée n’est pas proposée en mode hors ligne. Veuillez passer en ligne et ressayer. -noKeyserverConn=Impossible de se connecter au serveur de clés %S. -internalError=Une erreur interne est survenue. Les clés n’ont pas pu être téléchargées ni importées. -noKeyFound=Il nous a été impossible de trouver une clé qui correspond aux critères de recherche indiqués. -keyDownload.keyUnavailable=La clé dont l’ID est %S ne se trouve pas sur le serveur de clés. Le propriétaire de la clé ne l’a probablement pas téléversée vers le serveur de clés.\n\nVeuillez demander à l’expéditeur du courriel de vous envoyer sa clé publique par courriel. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Échec de définition du niveau de confiance envers le propriétaire - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Échec de signature de la clé -alreadySigned.label=Note : La clé %S est déjà signée avec la clé privée sélectionnée. -alreadySignedexportable.label=Note : La clé %S est déjà signée comme étant exportable avec la clé privée sélectionnée. Une signature locale n’est donc pas logique. -partlySigned.label=Note : Certains ID utilisateurs de la clé %S sont déjà signés avec la clé privée sélectionnée. -noTrustedOwnKeys=Aucune clé susceptible d’être utilisée pour la signature n’a été trouvée ! Il vous faut au moins une clé privée de confiance afin de signer d’autres clés. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Chargement des clés, veuillez patienter… keyValid.unknown=inconnue keyValid.invalid=invalide keyValid.disabled=désactivée keyValid.revoked=révoquée keyValid.expired=expirée keyValid.noSubkey=aucune sous-clé valide - +keyValid.valid=valide +keyValid.ownKey=propre clé keyTrust.untrusted=non fiable keyTrust.marginal=confiance modérée keyTrust.full=fiable keyTrust.ultimate=absolue keyTrust.group=(groupe) -keyType.public=pub -keyType.publicAndSec=pub/priv -keyMan.enableKey=Activer la clé -keyMan.disableKey=Désactiver la clé userAtt.photo=Attribut utilisateur (image JPEG) - -asciiArmorFile=Fichiers blindés ASCII (*.asc) importKeyFile=Importer un fichier de clé OpenPGP -gnupgFile=Fichiers GnuPG -saveRevokeCertAs=Créer et enregistrer un certificat de révocation -revokeCertOK=Le certificat de révocation a été créé avec succès. Vous pouvez l’utiliser pour invalider votre clé publique, en cas de perte de votre clé privée par exemple. -revokeCertFailed=Impossible de créer le certificat de révocation. - -addUidOK=L’ID utilisateur a été ajouté avec succès -addUidFailed=Échec d’ajout de l’ID utilisateur -noKeySelected=Vous devriez choisir au moins une clé pour effectuer l’opération sélectionnée -exportToFile=Exporter la clé publique dans un fichier -exportKeypairToFile=Exporter les clés privée et publique dans un fichier -exportSecretKey=Souhaitez-vous inclure la clé privée dans le fichier de clé OpenPGP enregistré ? -saveKeysOK=Les clés ont été enregistrées avec succès -saveKeysFailed=Échec d’enregistrement des clés -importKeysFailed=Échec d’importation des clés -enableKeyFailed=Échec d’activation/de désactivation des clés -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-priv -defaultPubKeyFilename=Clés-publiques-exportées -defaultPubSecKeyFilename=Clés-publique-et-privée-exportées - -sendKeysOk=Les clés ont été envoyées avec succès -sendKeysFailed=Échec d’envoi des clés -receiveKeysOk=Les clés ont été mises à jour avec succès -receiveKeysFailed=Échec de téléchargement des clés -keyUpload.verifyEmails=Le serveur de clé vous enverra un courriel pour chaque adresse courriel de votre clé téléversée. Pour confirmer la publication de votre clé, vous devrez cliquer sur le lien qui se trouve dans chaque courriel que vous recevrez. - -importFromClip=Souhaitez-vous importer des clés du presse-papiers ? -importFromUrl=Télécharger une clé publique à partir de cette URL : -copyToClipbrdFailed=Impossible de copier les clés sélectionnées dans le presse-papiers. -copyToClipbrdOK=Les clés ont copiées dans le presse-papiers - +importPubKeysFailed=Les clés publiques suivantes n’ont pas pu être importées dans Thunderbird :\n\n%S +importSecKeysFailed=Les secrets suivants n’ont pas pu être importés dans Thunderbird :\n\n%S deleteSecretKey=AVERTISSEMENT : Vous êtes sur le point de supprimer une clé privée !\nSi vous supprimez votre clé privée, vous ne serez plus en mesure de déchiffrer les courriels chiffrés pour cette clé ni de la révoquer.\n\nSouhaitez-vous vraiment supprimer à la fois la clé privée et la clé publique « %S » ? -deleteMix=AVERTISSEMENT : Vous êtes sur le point de supprimer des clés privées !\nSi vous supprimez votre clé privée, vous ne serez plus en mesure de déchiffrer les courriels chiffrés pour cette clé.\n\nSouhaitez-vous vraiment supprimer à la fois les clés privées et publiques sélectionnées ? -deletePubKey=Souhaitez-vous supprimer la clé publique « %S » ? -deleteSelectedPubKey=Souhaitez-vous supprimer les clés publiques ? -deleteKeyFailed=Impossible de supprimer la clé. revokeKeyQuestion=Vous êtes sur le point de révoquer la clé « %S ».\n\nVous ne serez plus en mesure de signer avec cette clé, et une fois que la révocation sera propagée, les autres ne pourront plus chiffrer avec cette clé. Vous pouvez encore l’utiliser pour déchiffrer les courriels anciens.\n\nVoulez-vous continuer ? -revokeKeyOk=La clé a été révoquée. Si votre clé se trouve sur un serveur de clés, il est recommandé de la retéléverser afin que les autres voient la révocation. -revokeKeyFailed=La clé n’a pas pu être révoquée. revokeKeyNotPresent=Vous ne possédez pas de clé (0x%S) qui correspond à ce certificat de révocation !\n\nSi vous avez perdu votre clé, vous devez l’importer (p. ex. d’un serveur de clés) avant d’importer le certificat de révocation. revokeKeyAlreadyRevoked=La clé 0x%S a déjà été révoquée. -refreshAllQuestion=Vous n’avez sélectionné aucune clé. Souhaitez-vous actualiser TOUTES les clés ? -refreshKeyServiceOn.warn=Avertissement : Vos clés sont en cours d’actualisation en arrière-plan, de manière aussi sécurisée que possible.\nL’actualisation de toutes vos clés en même temps divulguera inutilement des renseignements à votre sujet.\nSouhaitez-vous vraiment le faire ? -refreshKey.warn=Avertissement : En fonction du nombre de clés et de la vitesse de connexion, l’actualisation de toutes les clés pourrait prendre du temps ! -downloadContactsKeys.warn=Avertissement : Selon le nombre de contacts et la vitesse de connexion, le téléchargement de toutes les clés pourrait prendre du temps ! -downloadContactsKeys.importFrom=Importer les contacts du carnet d’adresses « %S » ? -keyMan.button.exportSecKey=Exporter les clés &privées -keyMan.button.exportPubKey=Exporter les clés &publiques seulement keyMan.button.import=&Importer -keyMan.button.refreshAll=&Actualiser toutes les clés keyMan.button.revokeKey=&Révoquer la clé - -keylist.noOtherUids=N’a pas d’autre identité -keylist.hasOtherUids=Aussi connu sous les noms -keylist.noPhotos=Aucune photo -keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Sélectionner une photo à ajouter -keyMan.addphoto.warnLargeFile=Le fichier que vous avez choisi fait plus de 25 ko.\nIl n’est pas recommandé d’ajouter de très gros fichiers, car cela entraîne de très grosses clés. -keyMan.addphoto.noJpegFile=Le fichier sélectionné ne semble pas être un fichier JPEG. Veuillez en choisir un autre. -keyMan.addphoto.failed=Impossible d’ajouter la photo. -noWksIdentity=La clé %S n’a pas d’identité WKS. -wksUpload.noKeySupported=Le téléversement a échoué. Il semble que votre fournisseur ne prenne pas en charge WKS. - -keyman.addBlacklistKey.msg=Voulez-vous vraiment que p≡p cesse d’utiliser la clé « %1$S (%2$S) » pour chiffrer les courriels ? -keyman.removeBlacklistKey.msg=Voulez-vous autoriser p≡p à utiliser la clé « %1$S (%2$S) » pour les courriels futurs ? -keyman.addBlacklistKey.button=&Mettre la clé sur liste noire -keyman.removeBlacklistKey.button=&Retirer la clé de la liste noire - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Échec de modification de l’ID utilisateur principal -changePrimUidOK=L’ID utilisateur principal a été modifié avec succès -revokeUidFailed=Échec de révocation de l’ID utilisateur %S -revokeUidOK=L’ID utilisateur %S a été révoqué avec succès. Si votre clé se trouve sur un serveur de clés, il est recommandé de la retéléverser afin que les autres voient la révocation. -revokeUidQuestion=Voulez-vous vraiment révoquer l’ID utilisateur %S ? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Les clés ont été importées avec succès -importInfoBits=Bits -importInfoCreated=Créées -importInfoFpr=Empreinte -importInfoDetails=(Détails) -importInfoNoKeys=Aucune clé n’a été importée. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=clé publique -keyTypePrimary=clé principale -keyTypeSubkey=sous-clé -keyTypePair=biclé -keyExpiryNever=jamais keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Chiffrer -keyUsageSign=Signer -keyUsageCertify=Certifier -keyUsageAuthentication=Authentification -keyDoesNotExpire=La clé n’expire pas - -# Strings in enigmailGenCardKey.xul -keygen.started=Veuillez patienter pendant la génération de clé… -keygen.completed=La clé a été créée. Le nouvel ID de clé est : 0x%S -keygen.keyBackup=La clé est sauvegardée sous %S -keygen.passRequired=Si vous souhaitez créer une copie de sauvegarde de votre clé externe à votre carte à puce intelligente, veuillez indiquer une phrase de passe. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Échec de modification du NIP - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Actualisation des clés, veuillez patienter… -keyserverProgress.uploading=Téléversement des clés, veuillez patienter… -keyserverProgress.wksUploadFailed=Impossible de téléverser votre clé vers le service de clés Web (WKS) -keyserverProgress.wksUploadCompleted=Votre clé publique a été transmise à votre fournisseur avec succès. Vous recevrez un courriel pour confirmer que vous avez déclenché le téléversement. -keyserverTitle.refreshing=Actualiser les clés -keyserverTitle.uploading=Téléversement de clés -keyserver.result.download.none=Aucune clé n’a été téléchargée. -keyserver.result.download.1of1=La clé a été téléchargée avec succès. -keyserver.result.download.1ofN=1 clé sur %S a été téléchargée avec succès. -keyserver.result.download.NofN=%1$S clés sur %2$S ont été téléchargées avec succès. -keyserver.result.uploadOne=1 clé a été téléchargée avec succès. -keyserver.result.uploadMany=%S clés ont été téléchargées avec succès. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Le fichier que vous avez indiqué n’est pas un exécutable GnuPG. Veuillez en indiquer un autre. -setupWizard.installFailed=Il semble que l’installation n’ait pas réussi. Veuillez soit ressayer l’installation soit installer GnuPG manuellement et le localiser avec le bouton Parcourir. -setupWizard.downloadForbidden=Pour votre sécurité, GnuPG ne sera pas téléchargé. Veuillez visiter https://gnupg.org/ pour télécharger GnuPG. -setupWizard.downloadImpossible=Impossible de télécharger GnuPG pour le moment. Veuillez ressayer plus tard ou visiter https://gnupg.org/ pour télécharger GnuPG. -setupWizard.hashSumError=L’assistant ne peut pas vérifier l’intégrité du fichier téléchargé. Le fichier peut être corrompu ou altéré. Souhaitez-vous quand même poursuivre l’installation ? -setupWizard.importSettingsFile=Indiquer un fichier de sauvegarde à partir duquel importer -setupWizard.invalidSettingsFile=Le fichier indiqué n’est pas une sauvegarde valide des paramètres d’Enigmail. -setupWizard.gpgConfExists=Le fichier de configuration GnuPG existe déjà. Souhaitez-vous le remplacer par celui de votre ancienne installation ? -setupWizard.noGpgHomeDir=Il semblerait que votre configuration fait appel à %S pour être utilisé avec GnuPG. Cependant, il ne s’agit pas d’un répertoire ; vous ne pouvez pas l’utiliser. -setupWizard.unmachtedIds=Il a été impossible de faire correspondre les identités suivantes de votre ancienne configuration :\n%S\nLes paramètres de ces identités ont été ignorés. -setupWizard.foundAcSetupMessage=Un message de configuration Autocrypt a été trouvé. Pour lancer la procédure de configuration d’Autocrypt, cliquez sur le bouton Lancer la configuration ci-dessous. -setupWizard.foundAcNoSetupMsg=Nous avons établi que vous utilisez un client de courriel conforme à Autocrypt, mais nous n’avons pas trouvé de message de configuration Autocrypt. Nous vous recommandons d’en créer un sur votre appareil existant et de cliquer ensuite sur Réanalyser la boîte de réception. Vous pouvez autrement exporter vos paramètres et clés d’une installation existante d’Enigmail pour les restaurer ensuite ici. -setupWizard.setupComplete=Enigmail est maintenant correctement configurée et prête à être utilisée. Pour plus de renseignements sur l’utilisation d’Enigmail, veuillez visiter notre page d’accueil. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Une erreur est survenue en tentant de télécharger GnuPG. Veuillez consulter le journal de la console pour plus de détails. -installGnuPG.installFailed=Une erreur est survenue lors de l’installation de GnuPG. Veuillez consulter le journal de la console pour plus de détails. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Vous devez saisir un nom et une adresse courriel -addUidDlg.nameMinLengthError=Le nom doit comprendre au moins 5 caractères -addUidDlg.invalidEmailError=Vous devez indiquer une adresse courriel valide - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Les cartes à puce intelligente OpenPGP n’acceptent les caractères ASCII que dans le prénom et le nom. - - -# network error types +setupWizard.selectKeysButton=Sélectionner des clés errorType.SecurityCertificate=Le certificat de sécurité présenté par le service Web n’est pas valide. errorType.SecurityProtocol=Le protocole de sécurité utilisé par le service Web est inconnu. errorType.Network=Une erreur réseau est survenue. - -# filter stuff -filter.folderRequired=Vous devez sélectionner un dossier cible. -filter.decryptMove.label=Déchiffrement permanent (Enigmail) -filter.decryptCopy.label=Créer une copie déchiffrée (Enigmail) -filter.decryptMove.warnExperimental=Avertissement : L’action de filtrage « Déchiffrement permanent » pourrait détruire des courriels.\n\nNous vous recommandons fortement d’essayer d’abord le filtre « Créer une copie déchiffrée », de tester le résultat avec soin et de ne commencer à utiliser ce filtre qu’une fois que vous serez satisfait du résultat. -filter.tempPepFilterDesc=Filtre temporaire pour enregistrer déchiffré le courriel envoyé -filter.term.pgpencrypted.label=Chiffré avec OpenPGP -filter.encrypt.label=Chiffrer avec la clé (Enigmail) -filter.keyRequired=Vous devez sélectionner une clé de destinataire. -filter.keyNotFound=Impossible de trouver une clé de chiffrement pour « %S ». -filter.warn.keyNotSecret=Avertissement : L’action de filtrage « Chiffrer avec la clé » remplace les destinataires.\n\nSi vous ne possédez pas la clé privée de « %S », vous ne pourrez plus lire les courriels. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Impossible de déchiffrer le courriel dont l’objet est\n« %S ».\nVoulez-vous recommencer avec une phrase de passe différente ou plutôt ignorer ce courriel ? -converter.decryptAtt.failed=Impossible de déchiffrer le fichier joint « %1$S »\ndu courriel dont l’objet est\n« %2$S ».\nVoulez-vous recommencer avec une phrase de passe différente ou plutôt ignorer ce courriel ? - -saveLogFile.title=Enregistrer le fichier journal - -# strings in gpg.jsm -unknownSigningAlg=Algorithme de signature inconnu (ID : %S) -unknownHashAlg=Empreinte cryptographique inconnue (ID : %S) - -# strings in keyRing.jsm keyring.photo=Photo keyRing.pubKeyRevoked=La clé %1$S (ID de clé %2$S) est révoquée. keyRing.pubKeyExpired=La clé %1$S (ID de clé %2$S) est expirée. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Toutes les sous-clés de chiffrement de la clé %1$S (ID de clé %2$S) ont expiré. keyRing.noSecretKey=Vous ne semblez pas avoir la clé privée pour %1$S (ID de clé %2$S) dans votre trousseau ; vous ne pouvez pas utiliser la clé pour signer. keyRing.encSubKeysUnusable=Toutes les sous-clés de chiffrement de la clé %1$S (ID de clé %2$S) sont révoquées, ont expiré ou sont inutilisables. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Impossible d’enregistrer dans le fichier « %S ». Veuillez sélectionner un autre fichier. dataExportError=Une erreur est survenue lors de l’exportation de vos données. -enigmailSettings=ParamètresEnigmail -defaultBackupFileName=Enigmail-exportation -specifyExportFile=Préciser le nom du fichier pour l’exportation -homedirParamNotSUpported=Les paramètres supplémentaires tels que --homedir et --keyring qui configurent des chemins ne sont pas pris en charge pour importer ni exporter vos paramètres. Veuillez utiliser d’autres méthodes telles que définir la variable d’environnement GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Votre clé %1$S expirera dans moins de %2$S jours.\n\nNous vous recommandons de créer une nouvelle biclé et de configurer les comptes correspondants pour l’utiliser. expiry.keysExpireSoon=Vos clés suivantes expireront dans moins de % 1$S jours :\n% 2 $ S Nous vous recommandons de créer de nouvelles clés et de configurer les comptes correspondants pour les utiliser. expiry.keyMissingOwnerTrust=Votre clé privée %S ne possède pas de déclaration de confiance.\n\nNous vous recommandons de définir « Vous comptez sur des certifications » sur « absolue » dans les propriétés de cette clé. expiry.keysMissingOwnerTrust=Vos clés publique suivantes ne possèdent pas de déclaration de confiance.\n%S\nNous vous recommandons de définir « Vous comptez sur des certifications » sur « absolue » dans les propriétés de ces clés. expiry.OpenKeyManager=Ouvrir la gestion des clés d’Enigmail expiry.OpenKeyProperties=Ouvrir les propriétés de la clé - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Ce courriel est chiffré. Malheureusement, vous n’avez pas la clé privé pour le déchiffrer. - -#strings in gpgAgent.jsm gpghomedir.notexists=Le dossier « %S » contenant vos clés OpenPGP n’existe pas et ne peut pas être créé. gpghomedir.notwritable=Le dossier « %S » contenant vos clés OpenPGP n’est pas accessible en écriture. gpghomedir.notdirectory=Le répertoire « %S » contenant vos clés OpenPGP est un fichier et non un répertoire. gpghomedir.notusable=Veuillez corriger les permissions du répertoire ou changer l’emplacement de votre répertoire « home » pour GnuPG. GnuPG ne pourra pas fonctionner correctement sans cela. gpgAgent.noAutostart=Vous utilisez GnuPG version %S. Cette version exige que vous démarriez gpg-agent avant que Thunderbird ne démarre, et que la variable d’environnement GPG_AGENT_INFO soit préchargée. Ces préalables ne sont pas remplis. Vous ne pourrez pas utiliser Enigmail tant que vous n’aurez pas résolu ce problème. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Impossible de vérifier les mots de confiance p≡p pour votre propre compte. -pepTrustWords.cannotFindKey=Impossible de trouver une clé pour %S. -pepTrustWords.cannotStoreChange=Impossible de modifier la confiance pour %S. -pepTrustWords.generalFailure=Impossible d’obtenir les mots de confiance pour %S. -pepTrustWords.partnerFingerprint=Empreinte de %S : - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Votre fournisseur de services de courriel a traité votre demande de téléversement de votre clé publique vers l’annuaire de clés Web (WKD) d’OpenPGP.\n\nVeuillez cliquer sur le bouton de confirmation dans l’en-tête d’Enigmail pour terminer la publication de votre clé publique. -wkdMessage.body.process=Ce courriel est relatif au traitement automatique pour téléverser votre clé publique vers l’annuaire de clés Web (WKD) d’OpenPGP.\n\nVous n’avez aucune action manuelle à effectuer pour l’instant. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=L’expéditeur ou vous devriez renvoyer le courriel. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Si vous avez rédigé ce courriel, votre clé n’est pas disponible. -pepPrivacyStatus.RatingMistrustSuggestion=Rétablissez la connexion avec votre partenaire de communication et tentez d’initier une nouvelle poignée de main. -pepPrivacyStatus.RatingReliableSuggestion=Confirmez la poignée de main avec votre partenaire de communication en échangeant vos mots de confiance en personne ou par téléphone. Une seule poignée de main est nécessaire par correspondant pour garantir des communications sécurisées, en toute confiance. -pepPrivacyStatus.RatingTrustedSuggestion=Aucune action n’est requise ! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Soyez conscient que ce courriel pourrait ne pas être sécurisé. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Veuillez ajouter les renseignements requis. -pepPrivacyStatus.RatingUnderAttackSuggestion=Vérifiez par un autre moyen le contenu de ce courriel avec votre partenaire de communication. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Assurez-vous que l’état de confidentialité de chacun de vos partenaires de communication est au moins « sécurisé ». -pepPrivacyStatus.RatingUnencryptedSuggestion=Veuillez demander à votre partenaire de communication d’utiliser une solution de chiffrement ou d’installer p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Ce courriel n’a pas de chiffrement fiable ni de signature. Demandez à votre partenaire de communication de mettre à niveau sa solution de chiffrement ou d’installer p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Le chiffrement ou le formatage de ce courriel sont endommagés. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Ce courriel ne peut pas être déchiffré, car la clé correspondante n’est pas disponible. -pepPrivacyStatus.RatingMistrustExplanation=Un des partenaires de communication de ce courriel a précédemment été marqué comme non digne de confiance -pepPrivacyStatus.RatingReliableExplanation=Ce courriel est sécurisé, mais vous devez quand même vérifier l’identité de votre partenaire de communication. -pepPrivacyStatus.RatingTrustedExplanation=Ce courriel est sécurisé et de confiance. -pepPrivacyStatus.RatingUndefinedExplanation=Ce courriel ne comprend pas suffisamment de renseignements pour déterminer s’il est sécurisé. -pepPrivacyStatus.RatingUnderAttackExplanation=Ce courriel n’est pas sécurisé et a été altéré. -pepPrivacyStatus.RatingUnencryptedExplanation=Ce courriel n’est pas sécurisé. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Ce courriel n’est pas sécurisé pour certains partenaires de communication. -pepPrivacyStatus.RatingUnreliableExplanation=La protection de ce courriel n’est pas fiable. - -pepPrivacyStatus.RatingBrokenText=Endommagée -pepPrivacyStatus.RatingHaveNoKeyText=Impossible de déchiffrer -pepPrivacyStatus.RatingMistrustText=Non digne de confiance -pepPrivacyStatus.RatingReliableText=Sécurisé -pepPrivacyStatus.RatingTrustedText=Sécurisé et de confiance -pepPrivacyStatus.RatingUndefinedText=Inconnu -pepPrivacyStatus.RatingUnderAttackText=Cible d’une attaque -pepPrivacyStatus.RatingUnencryptedForSomeText=Non sécurisé pour certains -pepPrivacyStatus.RatingUnencryptedText=Non sécurisé -pepPrivacyStatus.RatingUnreliableText=Sécurité non fiable - -handshakeDlg.button.initHandshake=Poignée de main… -handshakeDlg.button.stopTrust=Retirer la confiance -handshakeDlg.button.reTrust=Faire confiance -handshakeDlg.label.outgoingMessage=Courriel sortant -handshakeDlg.label.incomingMessage=Courriel entrant -handshakeDlg.error.noPeers=Impossible d’initier une poignée de main sans destinataire. -handshakeDlg.error.noProtection=Veuillez activer la protection afin d’utiliser la fonction « poignée de main ». - -enigmail.acSetupPasswd.descEnterPasswd=Veuillez saisir le code de configuration qui est affiché sur l’autre appareil. -enigmail.acSetupPasswd.descCopyPasswd=Veuillez saisir le code de configuration ci-dessous sur votre autre appareil pour poursuivre la configuration. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Courriel de configuration Autocrypt -autocrypt.setupMsg.msgBody=Pour configurer votre nouvel appareil pour Autocrypt, veuillez suivre les instructions qui devraient être affichées par votre nouvel appareil. -autocrypt.setupMsg.fileTxt=Voici le fichier de configuration Autocrypt utilisé pour transférer les paramètres et clés entre clients. Vous pouvez le déchiffrer en utilisant le code de configuration affiché sur votre ancien appareil, puis en important la clé dans votre trousseau. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Quoi de neuf dans Enigmail v2.0 ? -upgradeInfo.welcome1=Bienvenue dans la nouvelle version 2.0 d’Enigmail ! -upgradeInfo.welcome2=La version comprend de nombreuses fonctions nouvelles ou modifiées. Veuillez prendre le temps de les découvrir : -upgradeInfo.encSubject.title=Chiffrement de l’objet du courriel -upgradeInfo.encSubject.desc=Nous avons développé une nouvelle méthode qui déplace l’objet dans le courriel chiffré et remplace l’objet visible par « Courriel chiffré ». Une fois qu’un tel courriel est déchiffré, l’objet original est remplacé automatiquement. La dissimulation de l’objet est activée par défaut ; il existe toutefois une option pour la désactiver si vous le souhaitez. (Note : Cette fonction exige que le courriel soit envoyé avec PGP/MIME.) -upgradeInfo.buttons.title=Nouveau comportement des boutons Chiffrer et Signer -upgradeInfo.buttons.desc=Les boutons Chiffrer et Signer de la fenêtre de rédaction d’un courriel fonctionnent désormais à la fois avec les protocoles OpenPGP et S/MIME. Si les deux algorithmes sont possibles, Enigmail essaiera alors de favoriser celui pour lequel toutes les clés sont disponibles. -upgradeInfo.autocrypt.title=Prise en charge d’Autocrypt -upgradeInfo.autocrypt.desc=Enigmail prend désormais en charge Autocrypt, une nouvelle norme pour distribuer des clés comme faisant partie des courriels envoyés. Enigmail importe automatiquement les clés des courriels 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 comprend désormais un mode p≡p 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 leur synchronisation entre vos appareils. -upgradeInfo.bottom.desc=Veuillez consulter notre documentation (site en anglais) pour obtenir de l’aide sur l’utilisation d’Enigmail. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=Une nouvelle version du moteur cryptographique Enigmail/p≡p est proposée. Souhaitez-vous télécharger et installer cette mise à jour ? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Enigmail vous dit adieu +upgradeInfo.welcome1=Le chiffrement OpenPGP fait maintenant partie de Thunderbird +upgradeInfo.welcome2=Enigmail n’est plus nécessaire dans Thunderbird et est maintenant obsolète. Cette version est la dernière d’Enigmail pour Thunderbird. +upgradeInfo.migrateSettings.title=Migrer vos clés et paramètres de GnuPG vers Thunderbird +upgradeInfo.migrateSettings.desc=Avant de désinstaller Enigmail, il vous reste à importer vos clés de GnuPG vers Thunderbird et de migrer d’importants paramètres d’Enigmail vers Thunderbird. Nous avons préparé un assistant qui effectue ces étapes pour vous. +upgradeInfo.performMigration.buttonLabel=Lancer la migration maintenant +upgradeInfo.thankyou.title=Nous vous remercions d’avoir utilisé Enigmail +upgradeInfo.thankyou.desc1=Travailler sur Enigmail pendant près de deux décennies fut un réel plaisir. Nous sommes heureux d’avoir pu contribuer à l’idée des courriels chiffrés. Nous espérons que vous avez trouvé Enigmail utile et nous souhaitons vous remercier pour votre soutien continu au cours de ces nombreuses années. +upgradeInfo.thankyou.desc2=Si vous souhaitez aider, veuillez envisager de faire un don à Thunderbird. aboutEnigmail.tabName=À propos d’Enigmail aboutEnigmail.title=La prise en charge d’OpenPGP est fournie par Enigmail aboutEnigmail.team=Enigmail est développée par l’Équipe Enigmail : @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licence et assistance aboutEnigmail.license=Enigmail OpenPGP est à code source ouvert et distribuée selon les termes de la licence « %S » aboutEnigmail.support=L’assistance et les téléchargements sont offerts sur www.enigmail.net (site en anglais). - -#strings in updateGnuPG.html -updateGnuPG.tabName=Mise à jour de GnuPG -updateGnuPG.title=Mises à jour pour GnuPG -updateGnuPG.introduction.desc=Enigmail exige GnuPG pour exécuter ses fonctions cryptographiques. Nous vous recommandons de garder votre installation de GnuPG à jour. -updateGnuPG.updateRequired=Une version plus récente de GnuPG est proposée. Nous vous recommandons fortement de garder votre installation de GnuPG à jour. Veuillez cliquer sur le bouton « Installer la mise à jour » pour la télécharger et l’installer. -updateGnuPG.noUpdateRequired=GnuPG est à jour. -updateGnuPG.cannotUpdate.header=Enigmail ne prend en charge que la mise à jour des paquets suivants : -updateGnuPG.cannotUpdate.footer=Il semble que vous utilisez quelque variante de GnuPG ; par conséquent, Enigmail ne peut malheureusement pas mettre à jour votre installation de GnuPG. -updateGnuPG.installUpdate=Installer la mise à jour -updateGnuPG.noMoreUpdates=Ne pas vérifier la présence de mises à jour à venir updateGnuPG.checkUpdate=Vérifier la présence de mises à jour de GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=Abandonné -keyserver.error.unknown=Une erreur inconnue est survenue -keyserver.error.serverError=Le serveur de clés a signalé une erreur. -keyserver.error.importError=Échec d’importation de la clé téléchargée. -keyserver.error.unavailable=Le serveur de clés n’est pas accessible. -keyserver.error.securityError=Le serveur de clés ne prend pas en charge l’accès chiffré. -keyserver.error.certificateError=Le certificat du serveur de clés n’est pas valide. -keyserver.error.unsupported=Le serveur de clés n'est pas pris en charge par Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Partie chiffrée du courriel -mimeDecrypt.encryptedPart.concealedData=Cette partie du courriel est chiffrée. Vous devez l’ouvrir dans une fenêtre séparée en cliquant sur le fichier joint. - -#strings in gnupg-key.jsm import.secretKeyImportError=Une erreur s’est produite dans GnuPG lors de l’importation des clés privées. L’importation a échoué. - -#strings in importSettings.js -importSettings.errorNoFile=Le fichier que vous avez indiqué n’est pas un fichier standard ! -importSettings.cancelWhileInProgress=La restauration est en cours. Voulez-vous vraiment abandonner le processus ? -importSettings.button.abortImport=&Abandonner le processus +passphrasePrompt=Veuillez saisir la phrase de passe pour la clé suivante : %S +openpgpInitError=Une erreur est survenue lors de l’initialisation de l’infrastructure OpenPGP dans Thunderbird.\n\nL’assistant de migration ne peut pas poursuivre si OpenPGP n’est pas initialisé adéquatement dans Thunderbird. diff -Nru enigmail-2.1.6+ds1/lang/fr/help/compose.html enigmail-2.2.4/lang/fr/help/compose.html --- enigmail-2.1.6+ds1/lang/fr/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ - - - -Aide Enigmail : Modifier les rËgles OpenPGP - - - - - -

Aide Enigmail

- -

Utiliser Enigmail lors de la rédaction de messages

- -
    -
  • Menu Enigmail dans la fenêtre de composition -
      -
    • Signer le message : Activer/Désactiver l'envoi de messages signés. L'utilisateur est prévenu - si l'opération de signature échoue. -
    • -
    • Chiffrer le message : Activer/Désactiver le chiffrement pour tous les destinataires avant l'envoi. - L'utilisateur est prévenu si l'opération de chiffrement échoue. -

      Si l'option Afficher une sélection si nécessaire est définie dans Préférences - -> onglet Sélection clef, une liste de clefs apparaitra s'il y a dans le message des adresses de destination - pour lesquelles vous n'avez pas de clef publique.

      -

      Si l'option Ne jamais afficher le dialogue de sélection de clef est définie dans Préférences - -> onglet Sélection clef et qu'il y a dans le message des adresses de destination - pour lesquelles vous n'avez pas de clef publique, le message sera envoyé non chiffré.

      -
    • -
    • Utiliser PGP/MIME pour ce message : Activer/Désactiver l'utilisation de - PGP/MIME - pour ce message. -

      Si vous savez que le destinataire peut lire les messages utilisant le format PGP/MIME, - il est conseillé de l'utiliser.

      -

      Cette fonctionnalité est dépendante du réglage dans Préférences - -> onglet PGP/MIME qui doit être Utiliser PGP/MIME si possible ou Toujours utiliser - PGP/MIME.

      -
    • -
    • Options de rédaction par défaut : Sous-menu. -
        -
      • Options de signature/chiffrement... : raccourci vers Paramètres des comptes -> - Sécurité OpenPGP ; -
      • -
      • Options d'envoi... : raccourci vers l'onglet Préférences -> - Envoi ; -
      • -
      • Options de sélection de clef... : raccourci vers l'onglet Préférences -> - Sélection clef ; -
      • -
      • Options PGP/MIME... : raccourci vers l'onglet Préférences -> - PGP/MIME. -
      • -
      -
    • -
    • Annuler le chiffrement : S'il y a un problème lors de l'envoi effectif du message, - par exemple parceque le serveur POP n'accepte pas la requête, Enigmail n'en sera pas informé, - et le message sera toujours affiché chiffré dans la fenêtre de rédaction. - En choississant ce menu, le chiffrement et la signature seront annulés et le message restauré - dans sa forme texte originelle.
      - Cette option peut être également utilisée en tant que solution temporaire pour déchiffrer les citations - lors de la réponse à des messages chiffrés. Enigmail devrait automatiquement déchiffrer les citations - mais si cela échoue pour une raison inconnue, il est possible d'utiliser ce menu pour forcer - le déchiffrement. -
    • -
    • Insérer une clef publique: insérer un bloc armure-ASCII d'une clef publique - à la position courante du curseur dans la fenêtre de rédaction. L'adresse électronique de la clef - à insérer sera demandée. Les clefs insérées de cette manière seront automatiquement reconnues par - Enigmail du coté du destinataire. Après l'insertion de la clef, il est toujours possible de choisir - de signer/chiffrer le message si nécessaire. De plus, il ne faut pas insérer plus d'un bloc de clef dans un - message ; if faut juste spécifier plusieurs adresses, séparées par virgules ou des espaces, lors - de la demande. -
    • -
    • Oublier la phrase secrète: Effacer de la mémoire la phrase secrète mémorisée. Utile si vous - avez plusieurs phrases secrètes. -
    • -
    • Aide: Afficher les informations d'aide depuis le site Web (cette page). -
    • -
    -
  • -
-
-

-De l'aide supplémentaire est disponible sur la -page Web d'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/fr/help/editRcptRule.html enigmail-2.2.4/lang/fr/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/fr/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ - - - -Aide Enigmail : Modifier les règles OpenPGP - - - - -

Aide Enigmail

- -

Utiliser l'éditeur de règles d'Enigmail : modifier les règles OpenPGP

-

Avec l'éditeur de règles, il est possible de définir les paramètres par défaut -par destinataire concernant l'activation du chiffrement, de la signature, de PGP/MIME -et de choisir quelle(s) clef(s) utiliser. Dans cette boite de dialogue, vous pouvez -spécifier les règles pour un destinataire unique ou pour un groupe de destinataires -ayant des attributs très proches. -

-
    -
  • Définir les règles OpenPGP pour : contient les adresses - électroniques des destinataires (sans leur nom, c.à.d. juste une adresse comme - personne@adresse.domaine). Il est possible de spécifier plusieurs adresses séparées par des espaces. - L'adresse indiquée ici peut être réduite uniquement à la partie domaine de l'adresse - afin de faire correspondre toutes les adresses vers ce domaine, par exemple - @adresse.domaine correspondra à nafnaf@adresse.domaine, - nifnif@adresse.domaine, noufnouf@adresse.domaine, etc ; -
  • -
  • Appliquer la règle si le destinataire... : - Ceci modifie la correspondance des adresses. - Si plusieurs adresses sont saisies, le réglages s'applique à toutes. - Les exemples ci-dessous sont basés sur le fait que naf@adresse.domaine - à été saisi dans le champ règles OpenPGP ci-dessus : -
      -
    • Est exactement : avec ce réglage, la règle s'appliquera uniquement - sur des messages à destination de naf@adresse.domaine (correspondance exacte, insensible à la casse), -
    • -
    • Contient : avec ce réglage, n'importe quelle adresse contenant la chaîne correspond, - par exemple nafnaf@adresse.domaine ou aeronaf@adresse.domaine.net, -
    • -
    • Débute par : avec ce réglage, n'importe quelle adresse commençant - par la chaîne correspond, par exemple naf@adresse.domaine.net, - naf@adresse.domaine-nom.com, -
    • -
    • Se termine par : avec ce réglage, n'importe quelle adresse finissant - par la chaîne correspond, par exemple nafnaf@adresse.domaine, - nafnafnaf@adresse.domaine ; -
    • -
    - -
  • -
  • Continuer avec la prochaine règle pour l'adresse correspondante
    - Activer cette fonctionnalité vous permettra de définir une règle sans avoir à spécifier - un ID de clef dans le champ Utiliser les clefs OpenPGP suivantes : - , de ce fait l'adresse électronique est utilisée pour trouver une clef au moment de - l'envoi. De plus, les règles suivantes pour la (les) même(s) adresse(s) seront traitées également. -
  • -
  • Ne pas vérifier les prochaines règles pour l'adresse correspondante
    - Activer cette fonctionnalité interrompra le traitement des autres règles pour l'adresse correspondante - si la règle en cours correspond ; c.à.d. que le traitement des règles continu avec le destinataire - suivant. -
  • -
  • Utiliser les clefs OpenPGP suivantes :
    - Utilisez le bouton Sélectionner les clefs... pour sélectionner la clef du - destinataire à utiliser pour le chiffrement. Comme dans l'option ci-dessus, plus aucune règle - pour l'adresse correpondante n'est traitée. -
  • -
  • Par défaut pour signature : activer ou désactiver - la signature des messages. Ceci utilise ou outrepasse les réglages effectués - dans la fenêtre de rédaction. Les valeurs possibles sont : -
      -
    • Jamais: désactiver la signature, même si elle est activée dans la fenêtre de - rédaction du messages (prévaut sur les autres valeurs),
      -
    • -
    • Oui, si sélectionné lors de la composition du message: laisser le réglage - de signature tel qu'il est spécifié dans la fenêtre de rédaction, -
    • -
    • Toujours: activer la signature, même si elle n'est pas activée dans la fenêtre de - rédaction, -
    • -
    -
  • -
-
Ces paramètres de signature sont appliqués pour -toutes les règles qui correspondent. Si l'une des règles désactive la signature, le message -ne sera pas signé, même si d'autres règles spécifiaient Toujours ;
-
-
    -
  • Chiffrement : activer ou - désactiver le chiffrement des messages. Les valeurs autorisées ainsi que leur signification - sont les mêmes que pour la signature des messages ;
  • -
  • PGP/MIME : activer ou - désactiver l'utilisation du codage de message PGP/MIME (RFC 3156). - Si PGP/MIME est désactivé, les - messages sont codés en utilisant le format « PGP en ligne ». Les valeurs autorisées - ainsi que leur signification sont les mêmes que pour la signature des messages. -
  • -
-

Les règles sont appliquées dans l'ordre d'affichage de la liste de -l'éditeur de règles OpenPGP. Dès lors qu'une règle -correspond à un destinataire et contient un identifiant de clef OpenPGP, non seulement l'identifiant -de clef spécifié est utilisé, mais le destinataire n'est plus pris en compte dans le traitement -des règles suivantes.

-
-

-De l'aide supplémentaire est disponible sur la -page des réglages par destinataire d'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/fr/help/initError.html enigmail-2.2.4/lang/fr/help/initError.html --- enigmail-2.1.6+ds1/lang/fr/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

-
- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -
-
-

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/fr/help/messenger.html enigmail-2.2.4/lang/fr/help/messenger.html --- enigmail-2.1.6+ds1/lang/fr/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - Aide Enigmail : Lecture de messages - - - - -

Aide Enigmail

- -

Utiliser Enigmail lors de la lecture de messages

-
    -
  • Bouton Déchiffrer dans la fenêtre principale
    - Ce bouton peut être utilisé pour plusieurs actions : déchiffrer, vérifier ou importer - des clefs publiques. En temps normal, bien que cela soit optionnellement désactivable, - le déchiffrement et la vérification seront effectués automatiquement. Toutefois, en cas d'échec, - un court message apparaitra dans la barre d'état d'Enigmail. Un clic - sur le bouton Déchiffrer permettra d'obtenir un message d'erreur plus détaillé, contenant - les messages de sortie de la commande GnuPG. -
  • -
  • Icônes stylo et clef dans l'affichage de l'en-tête du message
    - Les icônes Stylo et Clef dans l'affichage de l'en-tête du message indique - si le message affiché a été signé et/ou chiffré et si la signature est correcte, - c.à.d. que le message n'a pas été modifié depuis qu'il a été signé. Si le message - a été modifié, l'icône Stylo se changera en un Stylo brisé afin - d'indiquer que la signature est incorrecte. Un clic droit sur l'icône de stylo ou celle de clef - fera apparaitre un menu contenant les options suivantes : -
      -
    • Infos de sécurité OpenPGP : permet d'obtenir l'état de sortie de - GnuPG pour le message ;
    • -
    • Copier les infos de sécurité OpenPGP : copie l'état de sortie de GnuPG dans - le presse papier afin de le coller dans un message de réponse par exemple ;
    • -
    • Voir l'ID photo OpenGPG : permet de voir l'ID photo de l'expéditeur - du message, uniquement s'il y a une photo intégrée dans sa clef publique - (cette option ne sera active que si un ID photo existe dans la clef) ;
    • -
    • Infos de sécurité S/MIME : permet de visualiser les informations de sécurité S/MIME - du message.
    • -
    -

    Si vous n'avez pas l'option keyserver-options auto-key-retrieve définie dans votre - fichier gpg.conf et que vous lisez un message signé ou chiffré, - vous verrez une icône de Stylo comportant un point d'interrogation - dans la zone d'affichage des en-têtes, la ligne d'état Enigmail affichera Partie du message signée - ; cliquez sur l'icône « stylo » pour plus de détails. De plus le message dans le - panneau de message affichera tous les blocs de message OpenPGP et le bloc de signature.

    -

    Il est également possible d'observer ce comportement même si vous l'option keyserver-options auto-key-retrieve - est bien définie dans votre fichier gpg.conf mais que la clef OpenPGP n'est pas disponible sur le serveur - de clefs par défaut.

    -

    En cliquant sur l'icône Stylo et point d'interrogation apparaitra une fenêtre - vous avertissant que la clef n'est pas disponible dans votre trousseau de clefs. Fermer la fenêtre par OK - ouvrira une autre fenêtre contenant une liste de serveurs de clefs que vous pouvez sélectionner afin de - télécharger la clef publique de l'expéditeur.

    -

    Pour configurer la liste des serveurs de clefs que vous désirez utiliser, allez dans Enigmail -> - Préférences -> onglet Général et saisissez les adresses des serveurs de clefs dans la zone - Serveur(s) de clefs : séparées par des virgules. Le premier serveur de la liste - sera utilisé comme serveur par défaut.

    -
  • -
  • Ouverture de pièces jointes chiffrées / importation de clefs OpenPGP attachées
    - Les pièces jointes nommées *.pgp, *.asc et *.gpg sont reconnues par Enigmail comme pouvant être - traitées spécialement. Cliquer droit sur une de ces pièces jointes - active deux entrées de menu spéciales dans le menu contextuel : Déchiffrer et ouvrir - et Déchiffrer et enregistrer sous. Utilisez ces deux menus si vous désirez qu'Enigmail - déchiffre une pièce jointe avant de l'ouvrir ou de l'enregistrer. Si une pièce jointe est - reconnue comme un fichier de clef OpenPGP, il vous est proposé d'importer les clefs qu'il contient dans - votre trousseau de clefs. -
  • -

-

-De l'aide supplémentaire est disponible sur la -page web d'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/fr/help/rulesEditor.html enigmail-2.2.4/lang/fr/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/fr/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - - - -Aide Enigmail : Éditeur de règles - - - - -

Aide Enigmail

- -

Utilisation de l'éditeur de règles

-

Dans l'éditeur de règles, vous pouvez spécifier les paramètres par défaut par destinataire, -concernant l'activation du chiffrement, de la signature, de PGP/MIME et de choisir -quelle(s) clef(s) utiliser. Chaque règle consiste en 5 champs et est représentée sur une seule ligne : -

-
    -
  • Adresse : l'adresse électronique - des champs Pour, Cc et Bcc pour la correspondance. Cette correspondance est faite sur des sous-chaînes (plus de détails se trouvent dans la - boite de dialogue d'édition des règles) ; -
  • -
  • Clef(s) à utiliser : une liste d'identifiants -de clefs OpenPGP à utiliser pour le destinataire ;
  • -
  • Signature : activer ou désactiver - la signature des messages. Ceci utilise ou outrepasse les réglages effectués - dans la fenêtre de rédaction. Les valeurs possibles sont : -
      -
    • Jamais : désactiver la signature, même si elle est activée dans la fenêtre de - rédaction du messages (prévaut sur les autres valeurs),
      -
    • -
    • Oui, si sélectionné lors de la composition du message : laisser le réglage - de signature tel qu'il est spécifié dans la fenêtre de rédaction,
    • -
    • Toujours : activer la signature, même si elle n'est pas activée dans la fenêtre de - rédaction, -
    • -
    -
  • -
-
Ces paramètres de signature sont appliqués pour -toutes les règles qui correspondent. Si l'une des règles désactive la signature, le message -ne sera pas signé, même si d'autres règles spécifiaient Toujours ;
-
-
    -
  • Chiffrement: activer ou - désactiver le chiffrement des messages. Les valeurs autorisées ainsi que leur signification - sont les mêmes que pour la signature des messages ;
  • -
  • PGP/MIME: activer ou - désactiver l'utilisation du codage de message PGP/MIME (RFC 3156). - Si PGP/MIME est désactivé, les - messages sont codés en utilisant le format « PGP en ligne ». Les valeurs autorisées - ainsi que leur signification sont les mêmes que pour la signature des messages. -
  • -
-

Les règles sont appliquées dans l'ordre d'affichage de la liste. Dès lors qu'une règle -correspond à un destinataire et contient un identifiant de clef OpenPGP, non seulement l'identifiant -de clef spécifié est utilisé, mais le destinataire n'est plus pris en compte dans le traitement -des règles suivantes.

-

Note : l'éditeur de règles n'est pas encore terminé. Il est possible d'écrire des -règles plus avancées en modifiant directement le fichier de règles -(ces règles ne devront alors plus être modifiées dans l'éditeur de règles). Des informations -complémentaires pour modifier directement le fichier sont disponibles -sur le site Web d'Enigmail

-
-

-De l'aide supplémentaire est disponible sur la -page Web d'Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/fr/help/sendingPrefs.html enigmail-2.2.4/lang/fr/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/fr/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/fr/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.

-

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.

-

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).

-

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

-
- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
-
- -

If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.

- - - diff -Nru enigmail-2.1.6+ds1/lang/gd/am-enigprefs.properties enigmail-2.2.4/lang/gd/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/gd/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Tèarainteachd OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/gd/enigmail.dtd enigmail-2.2.4/lang/gd/enigmail.dtd --- enigmail-2.1.6+ds1/lang/gd/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”"> - - - - - - -” gus seòlaidhean puist-d a shònrachadh"> - - -” gus seòlaidhean puist-d a shònrachadh airson GnuPG. Cuir à comas ma tha seann-iuchraichean Hushmail aig faightearan."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - “Tèarainteachd OpenPGP”)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AN AIRE: Dh’fhaoidte gun doir e mionaid no dhà gus am bi gintinn nan iuchraichean coileanta. Na fàg an aplacaid fhad ’s a tha iuchair ’ga gintinn. Ma nì thu brabhsadh no obair a bhios feumach air cleachdadh an diosga fhad ’s a tha iuchair ’ga gintinn, cuiridh seo ris a’ “ghoireas thuaireamach” agus nì seo am pròiseas nas luaithe. Gheibh thu brath nuair a bhios gintinn nan iuchraichean coileanta."> - @@ -296,495 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -” mì-dhligheachChan eil “Mac màthar ” dligheach"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AN AIRE: Dh’fhaoidte gun doir e mionaid no dhà gus am bi gintinn nan iuchraichean coileanta. Na fàg an aplacaid fhad ’s a tha iuchair ’ga gintinn. Gheibh thu brath nuair a bhios gintinn nan iuchraichean coileanta."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/gd/enigmail.properties enigmail-2.2.4/lang/gd/enigmail.properties --- enigmail-2.1.6+ds1/lang/gd/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Caismeachd Enigmail enigConfirm=Dearbhadh Enigmail enigInfo=Fiosrachadh Enigmail -enigError=Mearachd Enigmail enigPrompt=Ceist Enigmail - -dlgYes=&Tha dlgNo=&Chan eil dlgKeepSetting=Cuir an fhreagairt agam an cuimhne is na faighnich dhìom a-rithist dlgNoPrompt=Na seall an còmhradh seo a-rithist -dlg.button.delete=&Sguab às dlg.button.cancel=&Sguir dheth dlg.button.close=&Dùin dlg.button.continue=Lean air adhar&t -dlg.button.skip=Gearr &leum -dlg.button.overwrite=&Sgrìobh thairis air -dlg.button.view=&Seall -dlg.button.retry=Feuch ris a-&rithist -dlg.button.ignore=Le&ig seachad -dlg.button.install=Stàla&ich dlg.button.ok=&Ceart ma-thà - repeatPrefix=\n\nNochdaidh a’ chaismeachd seo a-rithist %S repeatSuffixSingular=turas eile. repeatSuffixPlural=tursan/turas eile. noRepeat=\n\nChan nochd a’ chaismeachd seo a-rithist gus an àrdaich thu Enigmail. - -pgpNotSupported=Tha coltas gu bheil thu a’ chleachdadh Enigmail còmhla ri PGP 6.x\n\nGu mì-fhortanach, cha duilgheadasan aig PGP 6.x a dh’adhbharaicheas nach obraich Enigmail mar bu chòir. Mar sin, cha chuir Enigmail taic ri PGP 6.x tuilleadh; cleachd GnuPG (GPG) ’na àite.\n\nMa tha thu feumach air taic gus atharrachadh gu GnuPG, thoir sùil air earrann na cobharach air an duilleag-dhachaigh aig Enigmail. -initErr.howToFixIt=Tha thu feumach air GnuPG mus urrainn dhut Enigmail a chleachdadh. Mur an do stàlaich thu GnuPG fhathast, ’s e an dòigh as fhasa gun cleachd thu putan “Draoidh an rèiteachaidh” gu h-ìosal. -initErr.setupWizard.button=Draoidh an &rèiteachaidh passphraseCleared=Tha an abairt-fhaire air fhalamhachadh. cannotClearPassphrase=Tha thu a’ cleachdadh inneal neo-àbhaisteach (mar gnome-keyring) gus abairtean-faire a làimhseachadh. Chan eil Enigmail fhèin comasach air an abairt-fhaire fhalamhachadh air an adhbhar seo. -noPhotoAvailable=Chan eil dealbh ri làimh -debugLog.title=Loga dì-bhugachaidh Enigmail -error.photoPathNotReadable=Cha ghabh slighe an deilbh “%S” leughadh - -generalError=Mearachd: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Thàinig atharrachadh mòr air mar a thèid roghainnean a làimhseachadh leis an tionndadh ùr seo de dh’Enigmail. Dh’fheuch sinn ris na seann roghainnean a thar-aiseag dhan tionndadh ùr seo. Co-dhiù, chan urrainn dhut dèiligeadh ris a h-uile roghainn gu fèin-obrachail. Thoir sùil air na roghainnean ùra a fhuair thu mar thoradh. -enigmailCommon.checkPreferences=Dearbh na roghainnean… -preferences.defaultToPgpMime=Dh’atharraich sinn còdachadh tùsail nan teachdaireachdan ann an Enigmail o PGP ion-loidhne gu PGP/MIME. Mholamaid gun cum thu seo mar a’ bhun-roghainn.\n\nNam bu toigh leat PGP ion-loidhne a chleachdadh a ghnàth fhathast, ’s urrainn dhut seo a dhèanamh ann an “Roghainnean nan cunntasan” fo “Tèarainteachd OpenPGP”. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=A’ ruith Enigmail tionndadh %S -enigmailPepVersion=Enigmail/p≡p tionndadh %S usingAgent=A’ chleachdadh faidhle so-ghnìomhaichte %1$S %2$S airson crioptachadh is dì-chrioptachadh agentError=MEARACHD: Cha deach leinn bun-seirbheis Enigmail inntrigeadh! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Mearachd le inntrigeadh seirbheis Enigmail -onlyGPG=Chan obraich gintinn iuchraichean ach le GnuPG (chan obraich e le PGP)! - -keygenComplete=Tha na h-iuchraichean air an gintinn! Thèid an dearbh-aithne <%S> a chleachdadh airson soidhneadh. -revokeCertRecommended=Dian-mholamaid gun cruthaich thu teisteanas cùl-ghairm dhen iuchair agad. A bheil thu airson teisteanas cùl-ghairm a chruthachadh an-dràsta?A bheil thu airson teisteanas cùl-ghairm a chruthachadh an-dràsta? -keyMan.button.generateCert=&Gin teisteanas -genCompleteNoSign=Tha gintinn nan iuchraichean coileanta! -genGoing=Tha iuchraichean ’gan gintinn mar-thà! - -passNoMatch=Chan eil an dà abairt-fhaire co-ionnann; cuir a-steach a-rithist iad -passCheckBox=Cuir cromag sa bhogsa mur eil thu ag iarraidh abairt-fhaire airson na h-iuchrach -passUserName=Sònraich ainm cleachdaiche airson na dearbh-aithne seo -keygen.missingUserName=Cha deach ainm a shònrachadh airson a’ chunntais/na h-aithne a thagh thu. Cuir a-steach luach san raon “D’ ainm” ann an roghainnean a’ chunntais. -keygen.passCharProblem=Chleachd thu caractaran sònraichte san abairt-fhaire agad. Gu mì-fhortanach, dh’fhaoidte gun adhbharaich seo trioblaid airson aplacaidean eile. Mholamaid gun tagh thu abairt-fhaire anns nach eil ach na caractaran seo:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Air adhbharan teicnigeach, chan fhaod an abairt-fhaire agad tòiseachadh no crìochnachadh le beàrn. -changePassFailed=Dh’fhàillig le atharrachadh na h-abairt-fhaire. - -keyConfirm=A bheil thu airson iuchair phoblach ’s dhìomhair a gintinn airson “%S”? -keyMan.button.generateKey=&Gin iuchair -keyAbort=A bheil thu airson sgur de ghintinn nan iuchair? -keyMan.button.generateKeyAbort=&Sguir de ghintinn nan iuchair -keyMan.button.generateKeyContinue=&Lean air adhart le gintinn nan iuchair -expiryTooLong=Chan urrainn dhut iuchair a chruthachadh a dh’fhalbhas an ùine air an ceann corr is 100 bliadhna. -expiryTooLongShorter=Chan urrainn dhut iuchair a chruthachadh a dh’fhalbhas an ùine air an ceann corr is 90 bliadhna. -expiryTooShort=Feumaidh an iuchair agad a bhith dligheach fad latha air a char as lugha. -keyGenFailed=Dh’fhàillig le gintinn na h-iuchrach. Thoir uil air consoil Enigmail (clàr-taice Enigmail > Roghainnean dì-bhugachaidh) airson mion-fhiosrachadh. -setKeyExpirationDateFailed=Cha b’ urrainn dhuinn a’ chrìoch ùine atharrachadh - -# Strings in enigmailMessengerOverlay.js -securityInfo=Fiosrachadh tèarainteachd Enigmail\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Cha deach ceanglachain na teachdaireachd seo a shoidhneadh no a chrioptachadh*\n\n -possiblyPgpMime=Teachdaireachd air a crioptachadh no soidhneadh le PGP/MIME ’s dòcha; cleachd an gleus “Dì-chrioptaich/Dearbh” gus a dhearbhadh - -saveAttachmentHeader=Enigmail: Sàbhail ceanglachan air a dhì-chrioptachadh -noTempDir=Cha deach leinn pasgan sealach a lorg gus sgrìobhadh ann\nFeuch an suidhich thu an caochladair àrainneachd TEMP -attachmentPgpKey=’S e faidhle iuchrach OpenPGP a tha sa cheanglachan “%S” a tha thu a’ fosgladh a-rèir coltais.\n\nBriog air “Ion-phortaich” gus na h-iuchraichean ’na bhroinn ion-phortadh no air “Seall” gus susbaint an fhaidhle a shealltainn ann an uinneag brabhsair - -beginPgpPart=***** *TOISEACH NA PÀIRT CRIOPTAICHTE no AIR A SOIDHNEADH* ***** -endPgpPart=***** *DEIREADH NA PÀIRT CHRIOPTAICHTE no AIR A SOIDHNEADH* ***** -notePartEncrypted=Enigmail: *CHA DEACH a h-uile pàirt dhen teachdaireachd seo a shoidhneadh no a chrioptachadh* -noteCutMessage=Enigmail: *Chaidh iomadh bloca teachdaireachd a lorg – chaidh sgur dhen dì-chrioptachadh/dearbhadh* - -decryptOkNoSig=Rabhadh\n\nShoirbhich leis an dì-chrioptachadh ach cha b’ urrainn dhuinn an soidhneadh a dhearbhadh mar bu chòir -msgOvl.button.contAnyway=Lean air adhart &co-dhiù -signature.verifiedOK=Chaidh an soidhneadh airson a’ cheanglachain %S a dhearbhadh -signature.verifyFailed=Cha deach leinn an soidhneadh airson a’ cheanglachain %S a dhearbhadh -attachment.noMatchToSignature=Cha deach leinn an ceanglachan “%S” a mhaidseadh ri faidhle soidhnidh -attachment.noMatchFromSignature=Cha deach leinn am faidhle soidhnidh “%S” a mhaidseadh ri ceanglachan -fixBrokenExchangeMsg.failed=Cha deach leinn an teachdaireachd a chàradh. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Cha deach an iuchair seo ceangal ri gin dhe na cunntasan puist-d agad. Cuir cunntas ris airson co-dhiù aon dhe na seòlaidhean puist-d seo:\n\n%S -wksConfirmSuccess=Chaidh post-d dearbhaidh a chur. -wksConfirmFailure=Dh’fhàillig le cur a’ phuist-d dearbhaidh. -autocrypt.importSetupKey.accountPreconfigured=Chaidh an cunntas agad a rèiteachadh mar bu chòir airson Autocrypt mar-thà.\n\nA bheil thu cinnteach gu bheil thu airson tar-sgrìobhadh air na roghainnean agad leis an teachdaireachd suidheachaidh seo? -autocrypt.importSetupKey.selfCreated=Chaidh an teachdaireachd seo a chruthachadh leis an tionndadh dhe Enigmail a tha ’ga ruith an-dràsta.\n\nGearr leum gun chliant puist-d a tha thu airson na roghainnean a thar-aiseag thuige agus briog air an teachdaireachd sa chliant puist-d ud gus na roghainnean ion-phortadh. -autocrypt.importSetupKey.invalidMessage=Mearachd – cha b’ urrainn dhuinn an teachdaireachd suidheachaidh a leughadh. Tha coltas gu bheil an teachdaireachd coirbte. Feuch an cruthaich thu teachdaireachd suidheachaidh ùr air an uidheam eile agad. -autocrypt.importSetupKey.invalidKey=Mearachd – cha b’ urrainn dhuinn an iuchair ion-phortadh. Cha chuir an tionndadh agad dhe GnuPG taic ris an iuchair air neo tha i coirbte. -autocrypt.importSetupKey.wrongPasswd=Chan eil am facal-faire a chuir thu a-steach mar bu chòir. A bheil thu airson feuchainn ris a-rithist? -autocrypt.importSetupKey.success=Tha teachdaireachd suidheachadh Autocrypt air a pròiseasadh. Tha Autocrypt ri fhaighinn airson a’ chunntais “%S” agad a-nis. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Tagh iuchraichean OpenPGP gus an chur ris keysToUse=Tagh iuchair/iuchraichean OpenPGP gus an cleachdadh airson %S pubKey=An iuchair phoblach airson %S\n - -windowLocked=Tha an uinneag sgrìobhaidh glaiste; chaidh sgur dhen chur -sendUnencrypted=Dh’fhàillig le tòiseachadh Enigmail.\nA bheil thu airson an teachdaireachd a chur gun chrioptachadh? -composeSpecifyEmail=Sònraich am prìomh sheòladh puist-d agad a chleachdas sinn gus iuchair an t-soidhnidh a thaghadh airson teachdaireachdan a-mach.\nMa dh’fhàgas tu bàn e, thèid an seòladh O aig an teachdaireachd a chleachdadh gus iuchair an t-soidhnidh a thaghadh.\n Ma dh’fhàgas tu bàn e, thèid seòladh “O” na teachdaireachd a chleachdadh airson iuchair an t-soidhnidh a thaghadh. -sendingHiddenRcpt=Tha faightearan BCC (lethbhreac dall) aig an teachdaireachd seo. Ma thèid an teachdaireachd seo a chrioptachadh, gabhaidh na faightearan BCC fhalach ach chan urrainn do chuid a bhathair-bhog (can PGP Corp.) a chleachdas faightear ma dh’fhaoidte an teachdaireachd a dhì-chrioptachadh. Air sàilleibh seo, mholamaid gun seachnaich thu puist-d BCC le crioptachadh. -sendWithHiddenBcc=Falaich na faightearan BCC -sendWithShownBcc=Crioptaich gu h-àbhaisteach -sendingNews=Chaidh sgur dhen chur chrioptaichte.\n\nChan urrainn dhuinn an teachdaireachd seo a chrioptachadh on a tha faightearan buidhinn-naidheachdan innte. Feuch an cuir thu an teachdaireachd a-rithist gun chrioptachadh. -sendToNewsWarning=Rabhadh: tha thu gu bhith a’ cur post-d crioptaichte gu buidheann-naidheachdan.\n\nCha mholamaid seo air sgàth ’s nach eil e gu ciall sam bith ach mas urrainn dhan a h-uile ball dhen bhuidheann-naidheachdan an teachdaireachd a dhì-chrioptachadh, ’s e seo gum feum thu an teachdaireachd a chrioptachadh le iuchraichean gach buill. Na cuir an teachdaireachd seo ach ma tha thu làn-eòlach air na tha thu a’ dèanamh.\n\nA bheil thu airson leantainn air adhart? -hasHTML=Rabhadh post HTML:\nTha HTML am broinn na teachdaireachd seo ma dh’fhaoidte agus b’ urrainn seo adhbharachadh nach dèid leis an t-soidhneadh/a’ chrioptachadh. Gus seo a sheachnadh san àm ri teachd, cum an iuchair SHIFT sìos fhad ’s a bhios tu a’ briogadh air a’ phutan Sgrìobh/Freagair gus post air a shoidhneadh a chur.\nMa nì thu soidhneadh a’ phuist a ghnàth, bu chòir dhut a’ chromag a thoirt far bogsa na roghainn “Sgrìobh teachdaireachdan ann an cruth HTML” gus post HTML a chur à comas gu buan airson a’ chunntais puist seo. -strippingHTML=Tha fiosrachadh fòrmatadh HTML am broinn na teachdaireachd seo a thèid air chall nuair a thèid iompachadh gu teacsa lom airson an t-soidhnidh/a’ chrioptachaidh. A bheil thu airson leantainn air adhart? -msgCompose.button.sendAnyway=&Cuir an teachdaireachd co-dhiù -attachWarning=Chan eil na ceanglachain aig an teachdaireachd seo ionadail, mar sin cha ghabh an crioptachadh. Gus na ceanglachain a chrioptachadh, glèidh iad ’nam faidhlichean ionadail an toiseach agus cuir na faidhlichean ris ’nan ceanglachan an uairsin. A bheil thu airson an teachdaireachd a chur co-dhiù? quotedPrintableWarn=Chuir thu còdachadh “quoted-printable” an comas airson cur nan teachdaireachdan. Faodaidh seo dì-chrioptachadh/dearbhadh cearr adhbharachadh airson na teachdaireachd agad.\nA bheil thu airson cur theachdaireachdan “quoted-printable” a chur à comas a-nis? -minimalLineWrapping=Shuidhich thu pasgadh nan loidhnichean air %S caractar. Airson crioptachadh/soidhneadh mar bu chòir, feumaidh an luach seo a bhith 68 no nas motha.\nA bheil thu airson pasgadh nan loidhnichean atharrachadh gu 68 caractar a-nis? warning=Rabhadh -signIconClicked=Dh’atharraich thu an soidhneadh a làimh. Mar sin, fad ’s a bhios tu a’ sgrìobhadh na teachdaireachd seo, cha bhi cur an/à comas an t-soidhnidh an eisimeil air cur an/à comas a’ chrioptachaidh tuilleadh. -errorOwnKeyUnusable=Chan fhaighear iuchair OpenPGP a ghabhas cleachdadh à ID na h-iuchrach “%S” a chaidh a rèiteachadh dhan dearbh-aithne làithreach.\n\nDèan cinnteach gu bheil iuchair OpenPGP dhligheach agad nach do dh’fhalbh an ùine oirre agus gun tomh roghainnean a’ chunntais agad ris an iuchair sin.\nMur an do dh’fhalbh an ùine air an iuchair agad, thoir sùil an do shuidhich thu earbsa an t-sealbhadair air “full (Làn-earbsa)” no “ultimate (Cho earbsach ’s a ghabhas)”. -msgCompose.cannotSaveDraft=Mearachd le sàbhaladh an dreachd -msgCompose.partiallyEncrypted.short=Thoir an aire nach foillsich thu fiosrachadh dìomhair gun fhiosta – chan eil ach pàirt dhen phost-d seo crioptaichte. -msgCompose.partiallyEncrypted.inlinePGP=Chaidh cuid dhen teachdaireachd seo a tha thu a’ freagairt rithe a chrioptachadh is tha cuid eile gun chrioptachadh. Mura deach leis an t-seòladair a chuir thugad i a’ chuid chrioptaichte a dhì-chrioptachadh, dh’fhaoidte gun nochd thu fiosrachadh dìomhair dha nach deach leis an t-seòladair sin fhèin a dhì-chrioptachadh.\n\nSaoil an doir thu air falbh gach iomradh teacsa on fhreagairt agad dhan t-seòladair sin? - -msgCompose.internalEncryptionError=Mearachd taobh a-staigh: Chaidh an crioptachadh geallta a chur à comas -msgCompose.internalError=Thachair mearachd taobh a-staigh. - -msgCompose.toolbarTxt.signAndEncrypt=Thèid an teachdaireachd seo a shoidhneadh agus a chrioptachadh -msgCompose.toolbarTxt.signOnly=Thèid an teachdaireachd seo a shoidhneadh -msgCompose.toolbarTxt.encryptOnly=Thèid an teachdaireachd seo a chrioptachadh -msgCompose.toolbarTxt.noEncryption=Cha dèid an teachdaireachd seo a shoidhneadh no a chrioptachadh -msgCompose.toolbarTxt.disabled=Chaidh Enigmail a chur à comas airson na dearbh-aithne a thagh thu -msgCompose.protectSubject.tooltip=Dìon cuspair na teachdaireachd -msgCompose.noSubjectProtection.tooltip=Na dìon cuspair na teachdaireachd -msgCompose.protectSubject.dialogTitle=A bheil thu airson dìon nan cuspairean a chur an coma? -msgCompose.protectSubject.question=Chan fhalaich teachdaireachdan crioptaichte àbhaisteach an cuspair.\n\nStèidhich sinn stannard a dh’fhalaicheas an cuspair tùsail san teachdaireachd chrioptaichte ’s a chuireas teacsa fuadain ’na àite gus nach faicear an cuspair mus deach am post-d a dhì-chrioptachadh.\n\nA bheil thu airson cuspairean nan teachdaireachdan crioptaichte a dhìon? -msgCompose.protectSubject.yesButton=&Dìon an cuspair -msgCompose.protectSubject.noButton=&Na dìon an cuspair - -msgCompose.detailsButton.label=Mion-fhiosrachadh… -msgCompose.detailsButton.accessKey=f - -msgCompose.pepSendUnknown=Chan eil fhios -msgCompose.pepSendUnsecure=Neo-thèarainte -msgCompose.pepSendSecure=Tèarainte -msgCompose.pepSendTrusted=Tèarainte ⁊ earbsach - -pep.alert.disabledForIdentity=Tha p≡p à comas airson na dearbh-aithne làithrich. Cuir an comas p≡p ann an roghainnean Enigmail/p≡p. -pep.alert.weakReply=Tha thu an impis teachdaireachd thèarainte a shìneadh air adhart no fhreagairt rithe ach cha bhi an teachdaireachd a chuireas tu tèarainte. Ma leanas tu air adhart, dh’fhaoidte gun dèid fiosrachadh dìomhair leigeil air èalaidh a chuireas tu fhèin ’s com-pàirtiche a’ chonaltraidh ann an cunnart. A bheil thu cinnteach gu bheil thu airson leantainn air adhart? - - -# note: should end with double newline: -sendAborted=Chaidh sgur dhen chur.\n\n - -# details: keyNotTrusted=Chan eil earbsa gu leòr san iuchair “%S” -keyNotFound=Cha deach an iuchair “%S” a lorg -keyRevoked=Chaidh an iuchair “%S” a chùl-ghairm -keyExpired=Dh’fhalbh an ùine air an iuchair “%S” - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=AIR A SHOIDHNEADH -statEncrypted=CRIOPTAICHTE -statPlain=GUN SOIDHNEADH no CRIOPTACHADH - -offlineSave=A bheil thu airson an teachdaireachd %1$S a shàbhaladh gu %2$S ann am pasgan nan teachdaireachdan nach deach a chur? - -onlineSend=A bheil thu airson an teachdaireachd %1$S a chur gu %2$S? -encryptKeysNote=An aire: Chaidh an teachdaireachd a chrioptachadh dha na IDan cleachdaiche / iuchraichean seo: %S -hiddenKey= - -signFailed=Mearachd ann an Enigmail: dh’fhàillig leis a’ chrioptachadh/an t-soidhnidh. A bheil thu airson an teachdaireachd a chur gun chrioptachadh? -msgCompose.button.sendUnencrypted=&Cuir an teachdaireachd gun chrioptachadh -recipientsSelectionHdr=Tagh na faightearan airson a’ chrioptachaidh - -configureNow=Cha do rèitich thu tèarainteachd Enigmail airson na dearbh-aithne a thagh thu fhathast. A bheil thu airson seo a dhèanamh a-nis? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Crioptaich an teachdaireachd (fèin-obrachail) -encryptMessageNorm=Crioptaich an teachdaireachd -signMessageAuto=Soidhnich an teachdaireachd (fèin-obrachail) -signMessageNorm=Soidhnich an teachdaireachd - -encryptOff=Crioptachadh: DHETH -encryptOnWithReason=Crioptachadh: AIR (%S) -encryptOffWithReason=Crioptachadh: DHETH (%S) -encryptOn=Crioptachadh: AIR -signOn=Soidhneadh: AIR -signOff=Soidhneadh: DHETH -signOnWithReason=Soidhneadh: AIR (%S) -signOffWithReason=Soidhneadh: DHETH (%S) -reasonEnabledByDefault=an comas a ghnàth -reasonManuallyForced=air a sparradh a làimh -reasonByRecipientRules=air a sparradh le riaghailt a-rèir an fhaighteir -reasonByAutoEncryption=air a sparradh leis a’ chrioptachadh fhèin-obrachail -reasonByConflict=ri linn còmhstri ann an riaghailtean a-rèir an fhaighteir -reasonByEncryptionMode=ri linn modh a’ chrioptachaidh - -# should not be used anymore: -encryptYes=Thèid an teachdaireachd a chrioptachadh -encryptNo=Cha dèid an teachdaireachd a chrioptachadh - -# should not be used anymore: -signYes=Thèid an teachdaireachd a shoidhneadh -signNo=Cha dèid an teachdaireachd a shoidhneadh - - -# PGP/MIME status: -pgpmimeNormal=Pròtacal: PGP/MIME -inlinePGPNormal=Pròtacal: PGP ion-loidhne -smimeNormal=Pròtacal: S/MIME -pgpmimeAuto=Pròtacal: PGP/MIME (fèin-obrachail) -inlinePGPAuto=Pròtacal: PGP ion-loidhne (fèin-obrachail) -smimeAuto=Pròtacal: S/MIME (fèin-obrachail) - -# should not be used anymore -pgpmimeYes=Thèid PGP/MIME a chleachdadh -pgpmimeNo=Thèid PGP ion-loidhne a chleachdadh - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Cha dèid an iuchair phoblach agad fhèin a cheangal ris -attachOwnKeyYes=Tèid an iuchair phoblach agad fhèin a cheangal ris -attachOwnKeyDisabled=Cha ghabh an iuchair phoblach agad fhèin a cheangal ris. Feumaidh tu iuchair shònraichte a thaghadh\nann an earrann OpenPGP dhe “Roghainnean nan cunntasan” gus an gleus seo a chur an coma. - -rulesConflict=Mhothaich sinn do chòmhstri ann an riaghailtean a-rèir faighteir\n%S\n\nA bheil thu airson an teachdaireachd a chur leis na roghainnean seo? -msgCompose.button.configure=&Rèitich -msgCompose.button.send=&Cuir an teachdaireachd -msgCompose.button.save=&Sàbhail an teachdaireachd - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Tha feum air an iuchair phoblach %S gus an soidhneadh a dhearbhadh -keyUsed=An iuchair phoblach %S a chaidh a chleachdadh gus an soidhneadh a dhearbhadh -clickDecrypt=; cleachd an gleus “Dì-chrioptaich/Dearbh” -clickDecryptRetry=; cleachd an gleus “Dì-chrioptaich/Dearbh” gus feuchainn ris a-rithist -clickDetailsButton=; briog air a’ phutan “Mion-fhiosrachadh” airson barrachd fiosrachaidh -clickImportButton=; briog air a’ phutan “Ion-phortaich iuchair” gus an iuchair ion-phortadh -keyTypeUnsupported=; cha chuir an tionndadh agad de GhnuPG taic ris an seòrsa iuchrach seo -decryptManually=; briog air a’ phutan “Dì-chrioptaich” airson an teachdaireachd seo a dhì-chrioptachadh -verifyManually=; briog air a’ phutan “Dearbh” airson an soidhneadh a dhearbhadh -headerView.button.verify=Dearbh -headerView.button.decrypt=Dì-chrioptaich -msgPart=Pàirt dhen teachdaireachd %S -msgSigned=air a soidhneadh -msgSignedUnkownKey=air a shoidhneadh le iuchair nach aithne dhuinn -msgEncrypted=air a crioptachadh -msgSignedAndEnc=air a soidhneadh is crioptachadh - unverifiedSig=Soidhneadh gun dearbhadh -incompleteDecrypt=Chan eil an dì-chrioptachadh coileanta -needKey=Mearachd – cha deach iuchair dhìomhair fhreagarrach a lorg gus an teachdaireachd a dhì-chrioptachadh -failedDecrypt=Mearachd – dh’fhàillig leis an dì-chrioptachadh badPhrase=Mearachd – droch abairt-fhaire missingMdcError=Mearachd – tha dìon an treibhdhireis (MDC) a dhìth no briste -failedDecryptVerify=Mearachd – dh’fhàillig leis an dì-chrioptachadh/dearbhadh -viewInfo=; Sealladh > Tèarainteachd na teachdaireachd airson barrachd fiosrachaidh -brokenExchangeMessage=Teachdaireachd PGP/MIME briste o MS-Exchange. - -decryptedMsg=Teachdaireachd air a dì-chrioptachadh -decryptedMsgWithFormatError=Teachdaireachd air a dì-chrioptachadh (chaidh fòrmat puist-d PGP briste aiseag a dh’adhbharaich seann fhrithealaiche Exchange ma dh’fhaoidte, mar sin chan eil sinn an dùil gum bi an toradh foirfe ri leughadh) - -usedAlgorithms=Algairimean ’gan cleachdadh: %1$S agus %2$S -pepStatusInfo.text=Staid teachdaireachd p≡p. -pepStatusInfo.title.m3=Fo ionnsaigh -pepStatusInfo.info.m3=Chan eil an teachdaireachd seo tèarainte agus bhean cuideigin rithe. -pepStatusInfo.title.m1=Amharasach -pepStatusInfo.info.m1=Tha co-sgrìobhaiche aig an teachdaireachd seo a chaidh a chomharrachadh mar fhear amharasach roimhe -pepStatusInfo.title.r0=Chan eil fhios -pepStatusInfo.info.r0=Chan eil fiosrachadh gu leòr san teachdaireachd seo airson measadh a bheil i tèarainte gus nach eil. -pepStatusInfo.title.r1=Chan urrainn dhuinn a dì-chrioptachadh -pepStatusInfo.info.r1=Cha ghabh an teachdaireachd seo a dhì-chrioptachadh air sgàth ’s nach eil an iuchair ri làimh. -pepStatusInfo.title.r2=Chan urrainn dhuinn a dì-chrioptachadh -pepStatusInfo.info.r2=Cha ghabh an teachdaireachd seo a dhì-chrioptachadh air sgàth ’s nach eil an iuchair ri làimh. -pepStatusInfo.title.r3=Neo-thèarainte -pepStatusInfo.info.r3=Chan eil an teachdaireachd seo tèarainte. -pepStatusInfo.title.r4=Neo-thèarainte do chuid -pepStatusInfo.info.r4=Chan eil an teachdaireachd seo tèarainte do gach co-sgrìobhaiche. -pepStatusInfo.title.r5=Tèarainteachd neo-earbsach -pepStatusInfo.info.r5=Chan eil dìon na teachdaireachd seo earbsach. -pepStatusInfo.title.r6=Tèarainte… -pepStatusInfo.info.r6=Tha an teachdaireachd seo tèarainte ach geumaidh tu aithne a’ cho-sgrìobhaiche agad a dhearbhadh fhathast. -pepStatusInfo.title.r7=Tèarainte ⁊ earbsach -pepStatusInfo.info.r7=Tha an teachdaireachd seo tèarainte ’s earbsach. - -pepStatusInfo.color.green=Uaine -pepStatusInfo.color.yellow=Buidhe -pepStatusInfo.color.red=Dearg -pepRevokeTrust.question=A bheil thu cinnteach nach eil thu airson earbsa a chur ann an %S tuilleadh? -pepRevokeMistrust.question=A bheil thu airson earbsa a chur san iuchair airson %S a-rithist? -pepRevokeTrust.doRevoke=Cuir crìoch air an &earbsa - -wksConfirmationReq=Iarrtas air dearbhadh eòlaire Web Key -wksConfirmationReq.message=Chaidh an teachdaireachd seo a chur leis an t-solaraiche puist-d agad a dhearbhadh gun deach an iuchair phoblach OpenPGP agad a luchdadh suas\ngun eòlaire Web Key aca.\nMa dh’fhoillsicheas tu an iuchair phoblach agad, bidh e nas fhasa do chàch an iuchair agad a lorg agus teachdaireachdan crioptaichte a chur thugad.\n\nMa tha thu airson an iuchair agad fhoillseachadh san eòlaire Web Key an-ràsta, briog air a’ phutan “Dearbh an t-iarrtas” air bàr na staid.\nMur eil, leig seachad an teachdaireachd seo. -wksConfirmationReq.button.label=Dearbh an t-iarrtas - -autocryptSetupReq=Dèan suidheachadh Autocrypt -autocryptSetupReq.button.label=Tòisich air an t-suidheachadh -autocryptSetupReq.setupMsg.desc=Tha am fiosrachadh uile san teachdaireachd seo gus na roghainnean Autocrypt is an iuchair dhìomhair agad a thar-aiseag on uidheam tùsail agad gu tèarainte. -autocryptSetupReq.setupMsg.backup=’S urrainn dhut an teachdaireachd seo a chumail ’na lethbhreac-glèidhidh dhen iuchair dhìomhair agad. Ma tha thu airson sin a dhèanamh, bu chòir dhut am facal-faire a sgrìobhadh air pìos pàipeir agus a ghlèidheadh gu tèarainte. -autocryptSetupReq.message.import=Gus na roghainnean is iuchraichean ion-phortadh gu Enigmail, briog air a’ phutan “Tòisich air an t-suidheachadh” air bàr na staid. -autocryptSetupReq.message.sent=Briog air an teachdaireachd air an uidheam ùr agad agus lean ris an stiùireadh gus na roghainnean ion-phortadh. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Cha deach leinn Enigmail a thòiseachadh.\n\nTha thu a’ cleachdadh GnuPG tionndadh %1$S ris nach cuir sinn taic tuilleadh. Feumaidh Enigmail GnuPG tionndadh %2$S no nas ùire. Chan obraich Enigmail gus an àrdaich thu an stàladh dhe GnuPG agad. -locateGpg=Lorg prògram GnuPG -invalidGpgPath=Cha ghabh GnuPG a ruith leis an t-slighe a chaidh a shònrachadh. Chaidh Enigmail a chur à comas gus an atharraich thu an t-slighe gu GnuPG a-rithist no gus an tòisich thu an aplacaid às ùr. -warningsAreReset=Chaidh gach rabhadh ath-shuidheachadh. -prefs.gpgFound=Chaidh GnuPG a lorg an-seo: %S -prefs.gpgNotFound=Cha deach GnuPG a lorg -prefs.warnAskNever=Rabhadh: ma chuireas tu an roghainn seo an comas, bidh teachdaireachdan gun chrioptachadh agad gun fhiosrachadh a bharrachd sam bith mur eil iuchair airson aon dhe na faightearan ann – chan innis Enigmail dhut nuair a thachras seo! -prefs.warnIdleTimeForUnknownAgent=Chan urrainn dhuinn ceangal ri gpg-agent. ’S dòcha gun cleachd an siostam agad inneal sònraichte gus abairtean-faire a làimhseachadh (m.e. gnome-keyring, seahorse-agent, KDE wallet manager, …). Gu mì-fhortanach, chan eil smachd aig Enigmail air nuair a dh’fhalbhas an ùine air abairt-fhaire airson an inneal a tha thu a’ chleachdadh.Mar sin, thèid roghainnean falbh na h-ùine aig Enigmail a leigeil seachad. -prefEnigmail.oneKeyserverOnly=Mearachd – chan urrainn dhut barrachd air aon fhrithealaiche iuchraichean a shònrachadh airson luchdadh a-nuas fèin-obrachail nan iuchraichean OpenPGP a tha a dhìth. -acSetupMessage.desc=Tar-chur an iuchair agad gu uidheam eile air a bheil Autocrypt an comas. (Dè a th’ ann an Autocrypt?) -aboutLicense.desc=Tha an còd aig Enigmail fosgailte agus ri fhaighinn fo cheadachas Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Cuir a-steach PIN an RIANAIRE airson a’ SmartCard agad -enterCardPin=Cuir a-steach PIN a’ SmartCard agad - -notInit=Mearachd – chan eil seirbheis Enigmail air a tòiseachadh fhathast badCommand=Mearachd – dh’fhàillig le àithne crioptachaidh cmdLine=loidhne-àithne is às-chur: -notRequired=Mearachd – chan eil crioptachadh riatanach -notComplete=Mearachd – chan eil gintinn na h-iuchrach deiseil fhathast -invalidEmail=Mearachd – seòladh no seòlaidhean puist-d mì-dhligheach noPassphrase=Mearachd – cha deach abairt-fhaire a sholar noPGPblock=Mearachd – cha deach bloca dàta OpenPGP armaichte dligheach a lorg -unverifiedReply=Tha amharas oirnn gun deach pàirt dhen teachdaireachd a tha eagaichte (an fhreagairt) atharrachadh -keyInMessageBody=Chaidh iuchair a lorg ann am bodhaig na teachdaireachd. Briog air “Ion-phortaich iuchair” gus an iuchair ion-phortadh -sigMismatch=Mearachd – soidhneadh neo-ionnann -cantImport=Mearachd ag ion-phortadh na h-iuchrach poblaich\n\n -doImportOne=A bheil thu airson %1$S (%2$S) ion-phortadh? -doImportMultiple=A bheil thu airson na h-iuchraichean seo ion-phortadh?\n\n%S -previewFailed=Chan urrainn dhuinn faidhle nan iuchraichean poblach a leughadh. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Cha ghabh an SmartCard %1$S a lorg sinn san inneal-leughaidh agad cleachdadh gus an teachdaireachd seo a phròiseasadh.\nCuir a-steach an SmartCard %2$S agad is feuch ris a-rithist. sc.insertCard=Tha an t-obrachadh feumach air a’ SmartCard %S agad.\nCuir a-steach an SmartCard a tha a dhìth is feuch ris a-rithist. sc.removeCard=Tha an t-obrachadh ag iarraidh nach eil SmartCard san inneal-leughaidh agad.\nThoir air falbh an SmartCard agad is feuch ris a-rithist. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Cha b’ urrainn dhuinn an t-inneal-leughaidh SmartCard agad inntrigeadh\nCeangail an t-inneal-leughaidh SmartCard agad, cuir a-steach a’ chairt agad agus feuch ris a-rithist. keyError.keySpecNotFound=Tha do lorg sinn iuchair air an dul-iuchrach agad airson an seòlaidh puist-d “%S”. keyError.keyIdNotFound=Tha do lorg sinn ID na h-iuchrach “%S” a rèitich thu air an dul-iuchrach agad. -keyError.resolutionAction=Tagh iuchair dhligheach ann an earrann OpenPGP dhe “Roghainnean nan cunntasan”. missingPassphrase=Tha abairt-fhaire a dhìth errorHandling.gpgAgentInvalid=Tha an siostam agad a’ ruith tionndadh dhe gpg-agent nach eil iomchaidh airson an tionndaidh agad dhe GnuPG. errorHandling.gpgAgentError=Dh’aithris GnuPG mearachd sa chonaltradh le gpg-agent (seo co-phàirt dhe GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=Chan urrainn dha GnuPG an abairt-fhaire agad iarraidh le pinentry. errorHandling.pinentryCursesError=Chaidh an stàladh agad dhe GnuPG a rèiteachadh ach an cleachd e a’ chonsoil airson PIN a chur a-steach le pinentry. Gidheadh, feumaidh tu tionndadh grafaigeach dhe pinentry airson chleachdadh le Enigmail. errorHandling.readFaq=Seo mearachd le suidheachadh no rèiteachadh an t-siostaim nach leig le Enigmail obair mar bu chòir ’s a ghabh a càradh gu fèin-obrachail.\n\nDian-mholamaid gun doir thu sùil air an làrach-lìn taice againn air https://enigmail.net/faq. - gpgNotFound=Cha deach am prògram GnuPG “%S” a lorg.\nDèan cinnteach gun do shònraich thu slighe an fhaidhle sho-ghnìomhaichte GnuPG mar bu chòir ann an roghainnean Enigmail. gpgNotInPath=Cha deach prògram GnuPG a lorg am broinn PATH.\nDèan cinnteach gun do shònraich thu slighe an fhaidhle sho-ghnìomhaichte GnuPG mar bu chòir ann an roghainnean Enigmail. enigmailNotAvailable=Chan eil bun-seirbheis Enigmail ri fhaighinn - -prefGood=Deagh shoidhneadh o %S -prefBad=DROCH shoidhneadh o %S - failCancel=Mearachd – chaidh sgur de dh’fhaighinn na h-iuchrach leis a’ chleachdaiche failKeyExtract=Mearachd – dh’fhàillig le àithne às-tharraing na h-iuchrach -failKeyNoSubkey=Chan eil (fo-)iuchair dhligheach ann notFirstBlock=Mearachd – chan eil a’ chiad bhloca OpenPGP ’na bhloca iuchrach poblaich importKeyConfirm=A bheil thu airson an iuchair/na h-iuchraichean a tha leabaichte san teachdaireachd ion-phortadh? -failKeyImport=Mearachd – dh’fhàillig le ion-phortachadh iuchrach fileWriteFailed=Cha deach leinn sgrìobhadh gun fhaidhle %S - importKey=Ion-phortaich an iuchair phoblach %S on fhrithealaiche iuchraichean: uploadKey=Cuir an iuchair phoblach %S gun fhrithealaiche iuchraichean: keyId=ID na h-iuchrach -keyAndSigDate=ID na h-iuchrach: 0x%1$S / Chaidh a soidhneadh: %2$S -keyFpr=Lorg-mheòir na h-iuchrach: %S -noEmailProvided=Tha dug thu seòladh puist-d seachad! -keyAlreadySigned=Chaidh an iuchair a shoidhneadh mar-thà, chan urrainn dhut a soidhneadh dà thuras. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=dh’fhalbh an ùine air %S createdHeader=Air a chruthachadh atLeastOneKey=Cha deach iuchair a thaghadh! Feumaidh tu iuchair no dhà a thaghadh airson gabhail ris a’ chòmhradh seo fewerKeysThanRecipients=Thagh thu uiread nas lugha de dh’iuchraichean na tha faightearan ris. A bheil thu cinnteach gu bheil liosta nan iuchraichean crioptachaidh coileanta? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Tagh iuchair OpenPGP dhìomhair gus na teachdaireachdan agad a shoidhneadh userSel.problemNoKey=Gun iuchair dhligheach userSel.problemMultipleKeys=Iomadh iuchair -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Cuir uaireigin eile - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=AN AIRE: Cha chuir gach cliant puist-d taic ri PGP/MIME. Ma tha thu mì-chinnteach, tagh an roghainn “%S”. first=a’ chiad second=an dàrna - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Tagh iuchair OpenPGP airson a’ chrioptachaidh -identityName=Dearbh-aithne: %S -switchPepMode=Tha thu a’ cleachdadh a’ “mhodh furasta p≡p” aig Enigmail.\n\nMa chuireas tu an comas OpenPGP no S/MIME airson cunntas, cuiridh tu p≡p à comas agus cleachdaidh tu am modh “àbhaisteach” aig Enigmail às aonais p≡p. -enableEnigmail=&Cuir à comas p≡p -amPrefAutocrypt.desc=’S e stannard a th’ ann an Autocrypt a mhìnicheas mar a thèid puist-d a chrioptachadh gu goireasach on dàrna ceann dhan cheann eile. Tha e a’ sònrachadh mar a cho-rèiticheas prògraman puist-d comasan crioptachaidh slighe puist-d àbhaisteach. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Ghnìomhaich thu an crioptachadh ach cha do thagh thu iuchair. Feumaidh tu iuchair dhligheach no dhà a shònrachadh o liosta nan iuchraichean gus puist-d a chuireas tu gu %1$S a chrioptachadh. A bheil thu airson an crioptachadh a chur à comas airson %2$S? -noKeyToUse=(gun iuchair – gun chrioptachadh) -noEmptyRule=Chan fhaod an riaghailt a bhith falamh! Suidhich seòladh puist-d ann an raon na riaghailt. -invalidAddress=Chan eil an seòladh/na seòlaidhean puist-d a chuir thu a-steach dligheach. Cha bu chòir dhut ainmean nam faightearan a shònrachadh, na sònraich ach na seòlaidhean puist-d fhèin. M.e.:\nMì-dhligheach: Ainm \nDligheach: ainm@seòladh.net -noCurlyBrackets=Tha ciall sònraichte air na camagan dualach {} agus cha bu chòir dhut an cleachdadh ann an seòladh puist-d. Ma tha thu airson atharrachadh cò ris a fhreagras an riaghailt seo, cleachd an roghainn “Cuir an riaghailt an sàs ma … an fhaightear”.\nGheibh thu barrachd fiosrachadh le putan na cobharach. - -# Strings used in enigmailRulesEditor.js never=Chan ann idir always=An-còmhnaidh possible=Comasach -deleteRule=A bheil thu airson an riaghailt a thagh thu a sguabadh às? -nextRcpt=(An ath-fhaightear) -negateRule=Gun a bhith -addKeyToRule=Cuir an iuchair %1$S (%2$S) ris an riaghailt a-rèir faighteir - -# Strings used in enigmailSearchKey.js -needOnline=Chan eil an gleus a thagh thu ri fhaighinn sa mhodh far loidhne. Rach air loidhne is feuch ris a-rithist. -noKeyserverConn=Cha b’ urrainn dhuinn ceangal ri frithealaiche iuchraichean air %S. -internalError=Thachair mearachd taobh a-staigh. Cha b’ urrainn dhuinn na h-iuchraichean a luchdadh a-nuas no an ion-phortadh. -noKeyFound=Tha do lorg sinn iuchair a fhreagras ris na h-abairtean luirg. -keyDownload.keyUnavailable=Chan eil iuchair air a bheil ID %S ri fhaighinn air an fhrithealaiche iuchraichean. Mar as trice, cha do luchdaidh sealbhadair na h-iuchrach suas i dhan fhrithealaiche iuchraichean.\n\nIarr air seòladair na teachdaireachd gun cuir iad an iuchair phoblach aca thugad air a’ phost-d. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Dh’fhàillig le suidheachadh earbsa an t-seilbheadair - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Dh’fhàillig le soidhneadh na h-iuchrach -alreadySigned.label=An aire: chaidh an iuchair %S a shoidhneadh leis an iuchair dhìomhair a thagh thu mu thràth. -alreadySignedexportable.label=An aire: chaidh an iuchair %S a shoidhneadh leis an iuchair dhìomhair a thagh thu mar thè a ghabhas às-phortadh. Chan eil soidhneadh ionadail gu ciall sam bith. -partlySigned.label=An aire: chaidh cuid dhe na IDan cleachdaiche aig an iuchair %S a shoidhneadh leis an iuchair dhìomhair a thagh thu mu thràth. -noTrustedOwnKeys=Cha deach iuchair iomchaidh a lorg gus a shoidhneadh! Feumaidh iuchair dhìomhair le làn-earbsa innte a bhith agad mus urrainn dhut iuchraichean a shoidhneadh. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=A’ luchdadh nan iuchraichean, fuirich greis… keyValid.unknown=chan eil fhios keyValid.invalid=mì-dhligheach keyValid.disabled=à comas keyValid.revoked=air chùl-ghairm keyValid.expired=dh’fhalbh an ùine air keyValid.noSubkey=chan eil fo-iuchair dligheach ann - -keyTrust.untrusted=gun earbsa ann +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=cugallach keyTrust.full=earbsach keyTrust.ultimate=cho earbsach ’s a ghabhas keyTrust.group=(buidheann) -keyType.public=poblach -keyType.publicAndSec=pobl/prìobh -keyMan.enableKey=Cuir an iuchair an comas -keyMan.disableKey=Cuir an iuchair à comas userAtt.photo=Buadh a’ chleachdaiche (dealbh JPEG) - -asciiArmorFile=Faidhlichean ASCII armaichte (*.asc) importKeyFile=Ion-phortaich faidhle iuchrach OpenPGP -gnupgFile=Faidhlichean GnuPG -saveRevokeCertAs=Cruthaich ⁊ sàbhail teisteanas cùl-ghairm -revokeCertOK=Chaidh an teisteanas cùl-ghairm a chruthachadh. ’S urrainn dhut a chleachdadh gus comharrachadh nach eil an iuchair phoblach agad dligheach tuilleadh, can ma bhios tu air an iuchair dhìomhair agad a chall.’S urrainn dhut a chleachdadh airson comharrachadh nach eil an iuchair phoblach agad dligheach tuilleadh, can ma chaill thu an iuchair dhìomhair agad. -revokeCertFailed=Cha b’ urrainn dhuinn an teisteanas cùl-ghairm a chruthachadh. - -addUidOK=Chaidh ID a’ chleachdaiche a chur ris -addUidFailed=Cha deach leinn ID a’ chleachdaiche a chur ris -noKeySelected=Bu chòir dhut iuchair no dhà a thaghadh gus na thagh thu a dhèanamh -exportToFile=Às-phortaich an iuchair phoblach gu faidhle -exportKeypairToFile=Às-phortaich an iuchair dhìomhair is phoblach gu faidhle -exportSecretKey=A bheil thu airson an iuchair dhìomhair a ghabhail a-steach san fhaidhle iuchrach OpenPGP air a shàbhaladh? -saveKeysOK=Chaidh na h-iuchraichean a shàbhaladh -saveKeysFailed=Cha deach leinn na h-iuchraichean a shàbhaladh -importKeysFailed=Cha deach leinn na h-iuchraichean ion-phortadh -enableKeyFailed=Dh’fhàillig le cur an/à comas nan iuchraichean -specificPubKeyFilename=%1$S (0x%2$S) pobl -specificPubSecKeyFilename=%1$S (0x%2$S) pobl-priobh -defaultPubKeyFilename=Iuchraichean-poblach-air-as-phortadh -defaultPubSecKeyFilename=Iuchraichean-poblach-is-priobhaideach-air-as-phortadh - -sendKeysOk=Chaidh an iuchair/na h-iuchraichean a chur -sendKeysFailed=Dh’fhàillig le cur nan iuchraichean -receiveKeysOk=Chaidh an iuchair/na h-iuchraichean ùrachadh -receiveKeysFailed=Dh’fhàillig le luchdadh a-nuas nan iuchraichean -keyUpload.verifyEmails=Cuiridh am frithealaiche iuchraichean post-d thugad airson gach seòladh puist-d dhen iuchair a luchdaich thu suas. Airson foillseachadh na h-iuchrach agad a dhearbhadh, feumaidh tu briogadh air a’ cheangal sa h-uile post-d a gheibh thu. - -importFromClip=A bheil thu airson iuchair no dhà ion-phortadh on stòr-bhòrd? -importFromUrl=Luchdaich a-nuas iuchair phoblach on URL seo: -copyToClipbrdFailed=Cha b’ urrainn dhuinn lethbhreac dhen iuchair/dhe na h-iuchraichean a chur air an stòr-bhòrd. -copyToClipbrdOK=Chaidh lethbhreac dhen iuchair/dhe na h-iuchraichean a chur air an stòr-bhòrd. - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S deleteSecretKey=RABHADH: Tha thu gu bhith iuchair dhìomhair a sguabadh às!\nMa sguabas tu às iuchair dhìomhair agad, chan urrainn dhut teachdaireachd sam bith a chaidh a chrioptachadh air a son a dhì-chrioptachadh no a cùl-ghairm tuilleadh.\n\nA bheil thu cinnteach gu bheil thu airson AN DÀ CHUID, an iuchair dhìomhair ’s an iuchair phoblach \n“%S” a sguabadh às? -deleteMix=RABHADH: Tha thu gu bhith iuchraichean dìomhair a sguabadh às!\nMa sguabas tu às iuchair dhìomhair agad, chan urrainn dhut teachdaireachd sam bith a chaidh a chrioptachadh air a son a dhì-chrioptachadh tuilleadh.\n\nA bheil thu cinnteach gu bheil thu airson AN DÀ CHUID na h-iuchraichean dìomhair ’s na h-iuchraichean poblach a sguabadh às? -deletePubKey=A bheil thu airson an iuchair phoblach\n“%S”\na sguabadh às? -deleteSelectedPubKey=A bheil thu airson na h-iuchraichean poblach a sguabadh às? -deleteKeyFailed=Cha b’ urrainn dhuinn an iuchair a sguabadh às. revokeKeyQuestion=Tha thu gu bhith an iuchair “%S” a chùl-ghairm.\n\nChan urrainn dhut soidhneadh leis an iuchair seo agus nuair a bhios i air a sgaoileadh, chan urrainn do chàch soidhneadh leatha tuilleadh. ’S urrainn dhut an iuchair a chleachdadh fhathast gus seann theachdaireachdan a dhì-chrioptachadh.\n\nA bheil thu airson leantainn air adhart?’S urrainn dhut an iuchair a chleachdadh fhathast airson seann-teachdaireachdan a dhì-chrioptachadh.\n\nA bheil thu airson leantainn air adhart? -revokeKeyOk=Chaidh an iuchair a chùl-ghairm. Ma tha an iuchair agad ri fhaighinn air frithealaiche iuchraichean, mholamaid gun luchdaidh thu suas a-rithist i ach am faic càch gun deach a cùl-ghairm. -revokeKeyFailed=Cha b’ urrainn dhuinn an iuchair a chùl-ghairm. revokeKeyNotPresent=Chan eil iuchair (0x%S) agad a fhreagras ris an teisteanas cùl-ghairm!\n\nMa chail thu an iuchair agad, feumaidh tu a h-ion-phortadh (can o fhrithealaiche iuchraichean) mus ion-phortaich thu an teisteanas cùl-ghairm! revokeKeyAlreadyRevoked=Chaidh an iuchair 0x%S a chùl-ghairm mu thràth. -refreshAllQuestion=Cha do thagh thu iuchair. Am bu toil leat a h-UILE iuchair ath-nuadhachadh? -refreshKeyServiceOn.warn=Rabhadh: Tha na h-iuchraichean agad ’gan ath-nuadhachadh sa chùlaibh air dòigh cho sàbhailte ’s a ghabhas.\nMa nì thu ath-nuadhachadh air na h-iuchraichean uile agad aig an aon àm, nochdaidh sin fiosrachadh mu do dhèidhinn gun fheum air sin.\nA bheil thu cinnteach gu bheil thu airson seo a dhèanamh? -refreshKey.warn=Rabhadh: a-rèir uiread nan iuchraichean is luaths a’ cheangail, dh’fhaoidte gun doir e fada fada gus a h-uile iuchair ath-nuadhachadh! -downloadContactsKeys.warn=Rabhadh: a-rèir uiread an luchd-aithne is luaths a’ cheangail, dh’fhaoidte gun doir e fada fada gus a h-uile iuchair a luchdadh a-nuas! -downloadContactsKeys.importFrom=A bheil thu airson an luchd-aithne o leabhar nan seòladh “%S” ion-phortadh? -keyMan.button.exportSecKey=À&s-phortaich na h-iuchraichean dìomhair -keyMan.button.exportPubKey=Na às-phortaich ach na h-iuchraichean &poblach keyMan.button.import=&Ion-phortaich -keyMan.button.refreshAll=Ath-nuadhaich a h-uile iuchai&r keyMan.button.revokeKey=Cùl-ghai&rm an iuchair - -keylist.noOtherUids=Chan eil dearbh-aithne eile aig an neach seo -keylist.hasOtherUids=Tha seo air cuideachd: -keylist.noPhotos=Chan eil dealbh ri làimh -keylist.hasPhotos=Dealbhan - -keyMan.addphoto.filepicker.title=Tagh dealbh gus a chur ris -keyMan.addphoto.warnLargeFile=Tha a faidhle a thagh thu nas motha na 25 kB.\nCha mholamaid gun cuir thu faidhlichean glè mhòra ris on a dh’adhbharaicheas sin iuchraichean glè mhòra. -keyMan.addphoto.noJpegFile=Tha coltas nach eil am faidhle a thagh thu ’na fhaidhle JPEG. Feuch an tagh thu faidhle eile. -keyMan.addphoto.failed=Cha b’ urrainn dhuinn an dealbh a chur ris. -noWksIdentity=Chan eil dearbh-aithne WKS aig an iuchair %S. -wksUpload.noKeySupported=Cha deach leis an luchdadh suas – tha coltas nach cuir an solaraiche agad taic ri WKS. - -keyman.addBlacklistKey.msg=A bheil thu cinnteach gum bu mhiann leat gun sguir p≡p a chleachdadh na h-iuchrach “%1$S (%2$S)” airson teachdaireachdan a chrioptachadh? -keyman.removeBlacklistKey.msg=A bheil thu airson cead a thoirt dha p≡p gun cleachd e an iuchair “%1$S (%2$S)” airson teachdaireachdan ri teachd? -keyman.addBlacklistKey.button=Cuir an iuchair ris an &dubh-liosta -keyman.removeBlacklistKey.button=Thoi&r an iuchair far na dubh-liosta - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Dh’fhàillig le atharrachadh prìomh ID a’ chleachdaiche -changePrimUidOK=Chaidh prìomh ID a’ chleachdaiche atharrachadh -revokeUidFailed=Dh’fhàillig le cùl-ghairm ID a’ chleachdaiche %S -revokeUidOK=Chaidh ID a’ chleachdaiche %S a chùl-ghairm. Ma tha an iuchair agad ri fhaighinn air frithealaiche iuchraichean, mholamaid gun luchdaich thu suas a-rithist i ach am faic càch gun deach a cùl-ghairm. -revokeUidQuestion=A bheil thu cinnteach gu bheil thu airson ID a’ chleachdaiche %S a chùl-ghairm? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=DEISEIL! Chaidh na h-iuchraichean ion-phortadh -importInfoBits=Biod -importInfoCreated=Air a chruthachadh -importInfoFpr=Lorg-mheòir -importInfoDetails=(Mion-fhiosrachadh) -importInfoNoKeys=Cha deach iuchair ion-phortadh. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=iuchair phoblach -keyTypePrimary=prìomh iuchair -keyTypeSubkey=fo-iuchair -keyTypePair=càraid iuchrach -keyExpiryNever=gun chrìoch keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Crioptaich -keyUsageSign=Soidhneadh -keyUsageCertify=Teistich -keyUsageAuthentication=Dearbhadh -keyDoesNotExpire=Chan fhalbh an ùine air an iuchair - -# Strings in enigmailGenCardKey.xul -keygen.started=Fuirich greis fhad ’s a tha an iuchair ga gintinn… -keygen.completed=Chaidh an iuchair a ghintinn. Seo ID na h-iuchrach ùire: 0x%S -keygen.keyBackup=Chaidh lethbhreac-glèidhidh dhen iuchair a dhèanamh mar %S -keygen.passRequired=Sònraich abairt-fhaire ma tha thu airson lethbhreac-glèidhidh dhen iuchair agad a chruthachadh taobh a-muigh a’ SmartCard agad. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Cha deach leinn am PIN atharrachadh - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Ag ath-nuadhachadh nan iuchraichean, fuirich greis… -keyserverProgress.uploading=A’ luchdadh suas nan iuchraichean, fuirich greis… -keyserverProgress.wksUploadFailed=Cha b’ urrainn dhuinn an iuchair agad a luchdadh suas gu seirbheis Web Key -keyserverProgress.wksUploadCompleted=Chaidh an iuchair phoblach agad a chur a-null dhan t-solaraiche agad. Gheibh thu post-d a dhearbhas gun do rinn thu fhèin air an luchdadh suas. -keyserverTitle.refreshing=Ath-nuadhaich na h-iuchraichean -keyserverTitle.uploading=Luchdadh suas iuchraichean -keyserver.result.download.none=Cha deach iuchair a luchdadh a-nuas. -keyserver.result.download.1of1=Chaidh an iuchair a luchdadh a-nuas. -keyserver.result.download.1ofN=Chaidh 1 à %S iuchair/iuchraichean a luchdadh a-nuas. -keyserver.result.download.NofN=Chaidh %1$S à %2$S iuchair/iuchraichean a luchdadh a-nuas. -keyserver.result.uploadOne=Chaidh an iuchair a luchdadh suas. -keyserver.result.uploadMany=Chaidh %S iuchair/iuchraichean a luchdadh suas. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Chan eil am faidhle a shònraich thu ’na fhaidhle so-ghnìomhaichte GnuPG. Feuch an sònraich thu faidhle eile. -setupWizard.installFailed=Tha coltas nach do shoirbhich leis an stàladh. Feuch ris an stàladh a-rithist no stàlaich GnuPG a làimh agus lorg e leis a’ phutan “Rùraich”. -setupWizard.downloadForbidden=A chum do thèarainteachd fhèin, cha luchdaich sinn a-nuas GnuPG. Tadhail air https://gnupg.org/ a luchdadh a-nuas GnuPG. -setupWizard.downloadImpossible=Chan urrainn dhuinn GnuPG a luchdadh a-nuas an-dràsta. Feuch ris a-rithist an ceann greis no tadhail air https://gnupg.org/ gus GnuPG a luchdadh a-nuas. -setupWizard.hashSumError=Cha b’ urrainn dhan draoidh treibhdhireas an fhaidhle a chaidh a luchdadh a-nuas a dhearbhadh. Dh’fhaoidte gu bheil am faidhle briste no gun deach beantainn ris. A bheil thu airson leantainn air adhart leis an stàladh co-dhiù? -setupWizard.importSettingsFile=Sònraich faidhle lethbhric-ghlèidhidh gus a luchdadh uaithe -setupWizard.invalidSettingsFile=Chan eil am faidhle seo ’na lethbhreac-glèidhidh dligheach de roghainnean Enigmail. -setupWizard.gpgConfExists=Tha faidhle rèiteachaidh GnuPG ann mar-thà. A bheil thu airson sgrìobhadh thairis air leis an fhear on t-seann-stàladh agad? -setupWizard.noGpgHomeDir=Tha coltas gun do rèitich thu %S ach an dèid a chleachdadh le GnuPG. Gidheadh, chan e pasgan a th’ ann – chan urrainn dhut a chleachdadh. -setupWizard.unmachtedIds=Tha aithne no dhà san t-seann shuidheachadh agad nach b’ urrainn dhuinn a mhaidseadh:\n%S\nLeum sinn thairis air na roghainnean aca-san. -setupWizard.foundAcSetupMessage=Lorg sinn teachdaireachd suidheachadh Autocrypt. Airson tòiseachadh air Autocrypt a shuidheachadh, briog air a’ phutan Tòisich air an t-suidheachadh gu h-ìosal. -setupWizard.foundAcNoSetupMsg=Mhothaich sinn gu bheil thu a’ cleachdadh cliant puist-d a ghèilleas ri Autocrypt ach cha do lorg sinn teachdaireachd suidheachadh Autocrypt. Mholamaid gun cruthaich thu teachdaireachd suidheachadh Autocrypt air an uidheam eile a th’ agad ’S gum briog thu air Sganaich am bogsa a-steach a-rithist an uairsin. Mar roghainn eile, ’s urrainn dhut na roghainnean is na h-iuchraichean agad às-phortadh o stàladh eile dhe Enigmail a th’ agad agus na roghainnean sin aiseag an-seo. -setupWizard.setupComplete=Tha Enigmail air a rèiteachadh mar bu chòir is ullamh ri chleachdadh a-nis. Airson barrachd fiosrachaidh air mar a chleachdas tu Enigmail, tadhail air an duilleag dhachaigh againn. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Thachair mearachd rè luchdadh a-nuas GnuPG. Thoir sùil air loga na consoil airson barrachd fiosrachaidh. -installGnuPG.installFailed=Thachair mearachd rè stàladh GnuPG. Thoir sùil air loga na consoil airson barrachd fiosrachaidh. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Feumaidh tu ainm is seòladh puist-d a chur a-steach -addUidDlg.nameMinLengthError=Feumaidh 5 caractaran a bhith san ainm air a char as lugha -addUidDlg.invalidEmailError=Feumaidh tu seòladh puist-d dligheach a thoirt seachad - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Cha chuir SmartCard OpenPGP taic ach ri caractaran ASCII san ainm is sloinneadh. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Chan eil an teisteanas tèarainteachd a thug an t-seirbheis-lìn seachad dligheach. errorType.SecurityProtocol=Chan aithne dhuinn am pròtacal tèarainteachd a chleachdas an t-seirbheis-lìn. errorType.Network=Thachair mearachd lìonraidh. - -# filter stuff -filter.folderRequired=Feumaidh tu pasgan-uidhe a thaghadh. -filter.decryptMove.label=Dì-chrioptaich gu buan (Enigmail) -filter.decryptCopy.label=Cruthaich lethbhreac dì-chrioptaichte dheth (Enigmail) -filter.decryptMove.warnExperimental=Rabhadh – dh’fhaoidte gum mill an roghainn criathraidh “Dì-chrioptaich gu buan” teachdaireachdan.\n\nDian-mholamaid gum feuch thu ris a’ chriathrag “Cruthaich lethbhreac dì-chrioptaichte” an toiseach, gun dearbh thu an toradh gu cùramach agus nach cleachd thu a’ chriathrag seo ach ma tha thu toilichte leis an toradh. -filter.tempPepFilterDesc=Criathrag shealach gus an teachdaireachd air a cur a stòradh gun chrioptachadh -filter.term.pgpencrypted.label=Le crioptachadh OpenPGP -filter.encrypt.label=Crioptaich gu iuchair (Enigmail) -filter.keyRequired=Feumaidh tu iuchair an fhaighteir a thaghadh. -filter.keyNotFound=Cha do lorg sinn iuchair crioptachaidh airson “%S”. -filter.warn.keyNotSecret=Rabhadh – cuiridh gnìomh “Crioptaich gu iuchair” na criathraige rud ùr an àite nam faightearan.\n\nMur eil an iuchair dhìomhair agad airson “%S”, chan urrainn dhut na puist-d a leughadh tuilleadh. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Cha b’ urrainn dhuinn an teachdaireachd leis a’ chuspair\n“%S”\na dhì-chrioptachadh. Am bu toigh leat feuchainn ris a-rithist le abairt-fhaire eile no am bu toigh leat leum a ghearradh thar na teachdaireachd? -converter.decryptAtt.failed=Cha b’ urrainn dhuinn ceanglachan “%1$S”\ndhen teachdaireachd leis a’ chuspair\n“%2$S”\na dhì-chrioptachadh. Am bu toigh leat feuchainn ris a-rithist le abairt-fhaire eile no am bu toigh leat leum a ghearradh thar na teachdaireachd? - -saveLogFile.title=Sàbhail faidhle loga - -# strings in gpg.jsm -unknownSigningAlg=Algairim soidhnidh nach aithne dhuinn (ID: %S) -unknownHashAlg=Hais chrioptografach nach aithne dhuinn (ID: %S) - -# strings in keyRing.jsm keyring.photo=Dealbh-camara keyRing.pubKeyRevoked=Chaidh an iuchair %1$S (ID na h-iuchrach: %2$S) a chùl-ghairm. keyRing.pubKeyExpired=Dh’fhalbh an ùine air an iuchair %1$S (ID na h-iuchrach>: %2$S). @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Dh’fhalbh an ùine air gach fo-iuchair crioptachaidh aig an iuchair %1$S (ID na h-iuchrach: %2$S). keyRing.noSecretKey=Chan eil an iuchair dhìomhair airson %1$S (ID na h-iuchrach: %2$S) air an dul-iuchrach agad a-rèir coltais; chan urrainn dhut an iuchair a chleachdadh airson soidhneadh. keyRing.encSubKeysUnusable=Chaidh gach fo-iuchair crioptachaidh aig an iuchair %1$S (ID na h-iuchrach: %2$S) a chùl-ghairm, dh’fhalbh an ùine orra no cha ghabh an cleachdadh air adhbhar air choireigin eile. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Chan urrainn dhuinn sàbhaladh dhan fhaidhle “%S”. Feuch an tagh thu faidhle eile. dataExportError=Tachair mearachd rè às-phortadh an dàta agad. -enigmailSettings=RoghainneanEnigmail -defaultBackupFileName=Enigmail-às-phortadh -specifyExportFile=Sònraich ainm faile airson an às-phortaidh -homedirParamNotSUpported=Cha chuir sinn taic ri paramadairean a bharrachd a rèiticheas slighean, can --homedir agus --keyring, a chùm às-phortadh/ion-phortadh nan roghainnean agad. Cleachd dòighean eile, can suidheachadh caochladair àrainneachd GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Falbhaidh an ùine air an iuchair %1$S agad ro %2$S là(ithean).\n\nMholamaid gun cruthaich thu càraid iuchrach ùr ’s gun rèitich thu na cunntasan co-cheangailte airson a chleachdadh. expiry.keysExpireSoon=Falbhaidh an ùine air na h-iuchraichean seo ro %1$S là(ithean):\n%2$S. Mholamaid gun cruthaich thu càraidean iuchrach ùr ’s gun rèitich thu na cunntasan co-cheangailte airson an cleachdadh. expiry.keyMissingOwnerTrust=Tha earbsa a dhìth air an iuchair dhìomhair %S agad.\n\nMholamaid gun suidhich thu “Tha thu ag earbsadh nan teisteanasan” gu “Cho earbsach ’s a ghabhas” ann an roghainnean na h-iuchrach. expiry.keysMissingOwnerTrust=Tha earbsa a dhìth na h-iuchraichean dìomhair seo:\n%S.\nMholamaid gun suidhich thu “Tha thu ag earbsadh nan teisteanasan” gu “Cho earbsach ’s a ghabhas” ann an roghainnean na h-iuchrach. expiry.OpenKeyManager=Fosgail stiùireadh nan iuchraichean Enigmail expiry.OpenKeyProperties=Fosgail roghainnean na h-iuchrach - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Seo teachdaireachd chrioptaichte. Gu mì-fhortanach, chan eil an iuchair dhìomhair agad gus an teachdaireachd a dhì-chrioptachadh. - -#strings in gpgAgent.jsm gpghomedir.notexists=Chan eil am pasgan “%S” far a bheil na h-iuchraichean OpenPGP agad ann ’s cha ghabh a chruthachadh. gpghomedir.notwritable=Gha ghabh sgrìobhadh sa phasgan “%S” sa bheil na h-iuchraichean OpenPGP agad. gpghomedir.notdirectory=’S e faidhle seach pasgan a th’ ann an “%S” far a bheil na h-iuchraichean OpenPGP agad ann. gpghomedir.notusable=Càraich ceadan a’ phasgain no atharraich an t-ionad “dachaigh” aig a’ GnuPG agad.Chan obraich GnuPG mar bu chòir mura dèan thu seo. gpgAgent.noAutostart=Tha thu a’ cleachdadh tionndadh %S dhe GnuPG. Iarraidh an tionndadh seo gun tòisich thu gpg-agent mus tòisich thu Thunderdbird agus gun deach caochladair “GPG_AGENT_INFO” na h-àrainneachd a luchdadh ro làimh.\n\nCha deach na cumhaidhean seo a choileanadh – chan urrainn dhut Enigmail a chleachdadh mus fhuasgail thu an duilgheadas seo. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Chan urrainn dhuinn na faclan-earbsa p≡p airson a’ chunntais agad fhèin a dhearbhadh. -pepTrustWords.cannotFindKey=Chan urrainn dhuinn an iuchair airson %S a lorg. -pepTrustWords.cannotStoreChange=Cha b’ urrainn dhuinn an earbsa a thaobh %S atharrachadh. -pepTrustWords.generalFailure=Chan urrainn dhuinn na faclan-earbsa airson %S fhaighinn. -pepTrustWords.partnerFingerprint=An lorg-mheòir airson %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Tha an solaraiche agad air an iuchair phoblach agad a chur ri eòlaire Web Key OpenPGP\n\nBriog air a’ phutan dearbhaidh ann am bann-cinn Enigmail gus foillseachadh na h-iuchrach poblaich agad a choileanadh. -wkdMessage.body.process=Seo post-d co-cheangailte ris a’ phròiseasadh fhèin-obrachail a luchdadh suas na h-iuchrach poblaich agad gu eòlaire Web Key OpenPGP.
Cha leig thu leas dad a dhèanamh aig an àm seo.
- -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Bu chòir dhut fhèin no an seòladair an teachdaireachd a chur a-rithist. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Ma sgrìobh thu fhèin an teachdaireachd seo, chan eil an iuchair agad ri làimh. -pepPrivacyStatus.RatingMistrustSuggestion=Dèan ceangal leis a’ cho-sgrìobhaiche agad a-rithist is sibh a’ feuchainn ri crathadh-làimhe eile a choileanadh. -pepPrivacyStatus.RatingReliableSuggestion=Coilean crathadh-làimhe leis a’ cho-sgrìobhaiche agad a thoirt faclan-earbsa ri chèile gu pearsanta no air a’ fòn. Cha leig thu leas crathadh-làimhe a dhèanamh le gach co-sgrìobhaiche ach aon turas agus nì sin cinnteach gum bi an conaltradh earbsach tèarainte. -pepPrivacyStatus.RatingTrustedSuggestion=Chan fheum thu dad a dhèanamh! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Thoir an aire nach eil an teachdaireachd seo tèarainte ma dh’fhaoidte. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Cuir ris am fiosrachadh a tha a dhìth -pepPrivacyStatus.RatingUnderAttackSuggestion=Dearbh susbaint na teachdaireachd seo le com-pàirtiche a’ chonaltraidh slighe seanail eile. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Dèan cinnteach gun deach staid na prìobhaideachd airson gach com-pàirtiche a’ chonaltraidh a shuidheachadh air “tèarainte” air a char as ìsle. -pepPrivacyStatus.RatingUnencryptedSuggestion=Iarr air a’ cho-sgrìobhaiche agad gun cleachd iad dòigh crioptachaidh no gun stàlaich iad p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Chan eil crioptachadh earbsach aig an teachdaireachd seo air neo tha soidhneadh a dhìth oirre. Iarr air a’ cho-sgrìobhaiche agad gun àrdaich iad am prògram crioptachaidh aca no gun stàlaich iad p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Tha crioptachadh no fòrmatadh briste air an teachdaireachd seo. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Cha ghabh an teachdaireachd seo a dhì-chrioptachadh air sgàth ’s nach eil an iuchair ri làimh. -pepPrivacyStatus.RatingMistrustExplanation=Tha co-sgrìobhaiche aig an teachdaireachd seo a chaidh a chomharrachadh mar fhear amharasach roimhe. -pepPrivacyStatus.RatingReliableExplanation=Tha an teachdaireachd seo tèarainte ach geumaidh tu aithne a’ cho-sgrìobhaiche agad a dhearbhadh fhathast. -pepPrivacyStatus.RatingTrustedExplanation=Tha an teachdaireachd seo tèarainte ’s earbsach. -pepPrivacyStatus.RatingUndefinedExplanation=Chan eil fiosrachadh gu leòr san teachdaireachd seo airson measadh a bheil i tèarainte gus nach eil. -pepPrivacyStatus.RatingUnderAttackExplanation=Chan eil an teachdaireachd seo tèarainte agus bhean cuideigin rithe. -pepPrivacyStatus.RatingUnencryptedExplanation=Chan eil an teachdaireachd seo tèarainte. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Chan eil an teachdaireachd seo tèarainte do gach co-sgrìobhaiche. -pepPrivacyStatus.RatingUnreliableExplanation=Chan eil dìon na teachdaireachd seo earbsach. - -pepPrivacyStatus.RatingBrokenText=Briste -pepPrivacyStatus.RatingHaveNoKeyText=Chan urrainn dhuinn a dì-chrioptachadh -pepPrivacyStatus.RatingMistrustText=Amharasach -pepPrivacyStatus.RatingReliableText=Tèarainte -pepPrivacyStatus.RatingTrustedText=Tèarainte ⁊ earbsach -pepPrivacyStatus.RatingUndefinedText=Chan eil fhios -pepPrivacyStatus.RatingUnderAttackText=Fo ionnsaigh -pepPrivacyStatus.RatingUnencryptedForSomeText=Neo-thèarainte do chuid -pepPrivacyStatus.RatingUnencryptedText=Neo-thèarainte -pepPrivacyStatus.RatingUnreliableText=Tèarainteachd neo-earbsach - -handshakeDlg.button.initHandshake=Crathadh-làimhe… -handshakeDlg.button.stopTrust=Na cuir earbsa ann tuilleadh -handshakeDlg.button.reTrust=Thoir air falbh an t-an-amharas -handshakeDlg.label.outgoingMessage=Teachdaireachd a-mach -handshakeDlg.label.incomingMessage=Teachdaireachd a-steach -handshakeDlg.error.noPeers=Cha ghabh crathadh-làimhe a dhèanamh às aonais co-sgrìobhaiche. -handshakeDlg.error.noProtection=Cuir dìon an comas ach an cleachd thu foincsean “crathadh-làimhe”. - -enigmail.acSetupPasswd.descEnterPasswd=Cuir a-steach an còd suidheachaidh a chì thu air an uidheam eile. -enigmail.acSetupPasswd.descCopyPasswd=Cuir a-steach an còd suidheachaidh gu h-ìosal air an uidheam eile ’s lean air adhart leis an t-suidheachadh. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Teachdaireachd suidheachadh Autocrypt -autocrypt.setupMsg.msgBody=Gus Autocrypt a shuidheachadh air an uidheam ùr agad, lean ris an stiùireadh a bu chòir dhut fhaicinn air an uidheam ùr agad. -autocrypt.setupMsg.fileTxt=Seo faidhle suidheachaidh Autocrypt a chleachdar airson roghainnean is iuchraichean a thar-chur o chliant gu cliant. ’S urrainn dhut a dhì-chrioptachadh leis a’ chòd suidheachaidh a chì thu air an t-seann-uidheam agad agus a iuchair ion-phortadh dhan dul-iuchrach agad an uairsin. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Na tha ùr ann an Enigmail v2.0 -upgradeInfo.welcome1=Fàilte gun Enigmail ùr, tionndadh 2.0! -upgradeInfo.welcome2=Tha iomadh gleus ùr no air atharrachadh san sgaoileadh seo. Thoir sùil air na tha ùr: -upgradeInfo.encSubject.title=Crioptachadh air cuspair na teachdaireachd -upgradeInfo.encSubject.desc=Leasaich sinn dòigh ùr a ghluaiseas cuspair a’ phuist-d dhan teachdaireachd chrioptaichte ’s a chuireas “Teachdaireachd le crioptachadh” an àite a’ chuspair a chithear. Nuair a thèid teachdaireachd dhen leithid a dhì-chrioptachadh, thèid an cuspair tùsail a chur ’na àite gu fèin-obrachail. Tha falach nan cuspairean an comas a ghnàth; tha roghainn ann gus a chur dheth mura còrd e riut. (Thoir an aire: iarraidh an gleus seo gun cuir thu an teachdaireachd le PGP/MIME.) -upgradeInfo.buttons.title=Chaidh an dòigh a dh’obraicheas na putanan crioptachaidh is soidhnidh atharrachadh -upgradeInfo.buttons.desc=Obraichidh na putanan Crioptaich is Soidhnich ann an uinneag an sgrìobhaidh an dà chuid le pròtacal OpenPGP agus S/MIME. Ma tha an dà chuid comasach, feuchaidh Enigmail am pròtacal a chleachdadh dhan a bheil a h-uile iuchair ri fhaighinn. -upgradeInfo.autocrypt.title=Taic ri Autocrypt -upgradeInfo.autocrypt.desc=Cuiridh Enigmail taic ri Autocrypt 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 p≡p am broinn Enigmail a-nis. Leigidh am modh furasta p≡p leat crioptachadh OpenPGP a chleachdadh cho soilleir ’s a ghabhas; cha leig thu leas dèiligeadh ri stiùireadh nan iuchraichean no sioncronachadh nan iuchraichean eadar uidheaman tuilleadh. -upgradeInfo.bottom.desc=Tadhail air an docamaideadh againn airson cobhair le cleachdadh Enigmail. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=Tha tionndadh ùr de dh’Enigmail/p≡p crypto-engine ri fhaighinn. Dè am bu toigh leat an t-ùrachadh a luchdadh a-nuas is a stàladh? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Mu Enigmail aboutEnigmail.title=Tha an taic ri OpenPGP ’ga sholar le Enigmail aboutEnigmail.team=Tha Enigmail ’ga leasachadh le sgioba leasachaidh Enigmail: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Ceadachas ⁊ taic aboutEnigmail.license=’S e bathar-bog le tùs fosgailte a th’ ann an Enigmail OpenPGP agus fo cheadachas %S aboutEnigmail.support=Tha taic is luchdaidhean a-nuas ri am faighinn air www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Ùrachadh GnuPG -updateGnuPG.title=Ùrachaidhean airson GnuPG -updateGnuPG.introduction.desc=Feumaidh Enigmail GnuPG airson crioptachadh a dhèanamh. Mholamaid gun cùm thu an stàladh agad dhe GnuPG cho ùr ’s a ghabhas. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -updateGnuPG.noUpdateRequired=Tha GnuPG cho ùr ’s a ghabhas. -updateGnuPG.cannotUpdate.header=Cha chuir Enigmail taic ri ùrachadh ach airson nam pacaidean seo: -updateGnuPG.cannotUpdate.footer=Tha coltas gu bheil thu a’ cleachdadh dreach eile dhe GnuPG; gu mì-fhortanach, chan urrainn do dh’Enigmail an stàladh agad dhe GnuPG ùrachadh dhut. -updateGnuPG.installUpdate=Stàlaich an t-ùrachadh -updateGnuPG.noMoreUpdates=Na doir sùil airson ùrachaidhean updateGnuPG.checkUpdate=Thoir sùil airson ùrachaidhean GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=Sguireadh dheth -keyserver.error.unknown=Thachair mearachd nach aithne dhuinn -keyserver.error.serverError=Dh’aithris am frithealaiche iuchraichean mearachd. -keyserver.error.importError=Cha deach leinn an iuchair a chaidh a luchdadh a-nuas ion-phortadh. -keyserver.error.unavailable=Chan eil am frithealaiche iuchraichean ri làimh. -keyserver.error.securityError=Cha chuir am frithealaiche iuchraichean taic ri inntrigeadh crioptaichte. -keyserver.error.certificateError=Chan eil teisteanas an fhrithealaiche iuchraichean dligheach. -keyserver.error.unsupported=Cha chuir Enigmail raic ris an fhrithealaiche iuchraichean. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Pàirt chrioptaichte na teachdaireachd -mimeDecrypt.encryptedPart.concealedData=Seo pàirt chrioptaichte teachdaireachd. Feumaidh tu fhosgladh ann an uinneag fa leth ’s tu a’ briogadh air a’ cheanglachan. - -#strings in gnupg-key.jsm import.secretKeyImportError=Thachair mearachd ann an GnuPG rè ion-phortadh nan iuchraichean dìomhair. Cha deach leis an ion-phortadh. - -#strings in importSettings.js -importSettings.errorNoFile=Chan eil am faidhle a shònraich thu ’na fhaidhle àbhaisteach! -importSettings.cancelWhileInProgress=Tha aiseag a’ dol air adhart. A bheil thu cinnteach gu bheil thu airson sgur dheth? -importSettings.button.abortImport=&Sguir dhen phròiseas +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/gd/help/compose.html enigmail-2.2.4/lang/gd/help/compose.html --- enigmail-2.1.6+ds1/lang/gd/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/editRcptRule.html enigmail-2.2.4/lang/gd/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/gd/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/help.html enigmail-2.2.4/lang/gd/help/help.html --- enigmail-2.1.6+ds1/lang/gd/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/initError.html enigmail-2.2.4/lang/gd/help/initError.html --- enigmail-2.1.6+ds1/lang/gd/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmime failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/messenger.html enigmail-2.2.4/lang/gd/help/messenger.html --- enigmail-2.1.6+ds1/lang/gd/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/rulesEditor.html enigmail-2.2.4/lang/gd/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/gd/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/gd/help/sendingPrefs.html enigmail-2.2.4/lang/gd/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/gd/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gd/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/gl/am-enigprefs.properties enigmail-2.2.4/lang/gl/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/gl/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Seguridade OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/gl/enigmail.dtd enigmail-2.2.4/lang/gl/enigmail.dtd --- enigmail-2.1.6+ds1/lang/gl/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' para especificar os enderezos de correo"> - - -' para especificar enderezos de correo para GnuPG. Desactivar se os/as destinatarios/as teñen vellas chaves de Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Seguranza OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: A xeración de chaves pode levar varios minutos. Non saia da aplicación mentres se xera a chave. Unha navegación activa ou realizar operacións intensivas co disco durante a xeración das chaves acelerará o proceso e beneficiará a aleatoriedade. Recibirá un aviso cando se complete a xeración das chaves."> - @@ -296,490 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' non é válido"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: A xeración da chave pode levar varios minutos. Non saia da aplicación mentres se estea a xerar a chave. Recibirá un aviso en canto remate o proceso."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/gl/enigmail.properties enigmail-2.2.4/lang/gl/enigmail.properties --- enigmail-2.1.6+ds1/lang/gl/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Alerta do Enigmail # enigConfirm=Enigmail Confirmation enigInfo=Información do Enigmail -enigError=Erro do Enigmail enigPrompt=Diálogo do Enigmail - -dlgYes=&Si dlgNo=&Non dlgKeepSetting=Lembrar a resposta e non preguntar de novo dlgNoPrompt=Non mostrar este diálogo de novo -dlg.button.delete=Eliminar dlg.button.cancel=&Cancelar dlg.button.close=Pe&char dlg.button.continue=Con&tinuar -dlg.button.skip=&Omitir -dlg.button.overwrite=&Sobrescribir -dlg.button.view=&Ver -dlg.button.retry=&Reintentar -dlg.button.ignore=&Ignorar -dlg.button.install=&Instalar dlg.button.ok=&Aceptar - repeatPrefix=\n\nEsta alerta repetirase %S repeatSuffixSingular=vez máis. 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\ninstalalo é usando o botón inferior do «Asistente de configuración». -initErr.setupWizard.button=Configurar o a&sistente passphraseCleared=A frase secreta foi borrada. cannotClearPassphrase=Está usando unha ferramenta non estándar (como gnome-keyring) para manexar as frases secretas. Por este motivo non é posíbel limpar a frase secreta desde o Enigmail. -noPhotoAvailable=A foto non está dispoñíbel -debugLog.title=Rexistro da depuración do Enigmail -error.photoPathNotReadable=A ruta da imaxe '%S' non se pode ler - -generalError=Erro: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Esta nova versión de Enigmail ten cambios importantes no manexo das preferencias e das opcións. Tentamos conservar os vellos axustes na nova versión. Con todo, non podemos cubrir todos os casos automaticamente. Por favor, comprobe as novas preferencias e opcións. -enigmailCommon.checkPreferences=Comprobar as preferencias... -preferences.defaultToPgpMime=Cambiamos a codificación predeterminada de mensaxes no Enigmail de Inline-PGP a PGP/MIME. Recomendámoslle que o manteña así.\n\nSe aínda desexa usar Inline-PGP de xeito predeterminado, pode facelo nos axustes da conta en Seguridade OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Executando Enigmail versión %S -enigmailPepVersion=Enigmail/p≡p versión %S usingAgent=Usando %S executábel %S para cifrar e descifrar agentError=ERRO: Produciuse un fallo ao acceder ao servizo Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Produciuse un erro ao acceder ao servizo Enigmail -onlyGPG=A xeración de chaves só funciona con GnuPG (non con PGP)! - -keygenComplete=Completouse a xeración da chave! Usarase a identidade <%S> para asinar. -revokeCertRecommended=Recoméndase crear un certificado de revogación para a súa chave. Este certificado pode utilizarse para invalidar a súa chave, p.ex. no caso de que perda a súa chave privada ou esta se vexa comprometida. Quere crear un certificado de revogación agora? -keyMan.button.generateCert=Xerar certificado -genCompleteNoSign=Completouse a xeración da chave! -genGoing=Xa se están a xerar as chaves! - -passNoMatch=As frases secretas non coinciden; introdúzaas de novo -passCheckBox=Marque a caixa se non quere unha frase secreta para a chave -passUserName=Especifique o nome de usuario/a para esta identidade -keygen.missingUserName=Non se especificou un nome para a conta/identidade seleccionada. \nIntroduza un valor no campo «Nome» nos axustes da conta. -keygen.passCharProblem=Está a usar caracteres especiais na frase secreta. Desafortunadamente, isto pode causar problemas noutros aplicativos. Recomendámoslle que escolla un contrasinal utilizando os seguintes caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Debido a razóns técnicas, a frase secreta non pode comezar ou rematar cun espazo. -changePassFailed=Produciuse un fallo ao cambiar a frase secreta. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=Xerar chave -keyAbort=Desexa interromper a xeración de chaves? -keyMan.button.generateKeyAbort=Cancelar a xeración da chave -keyMan.button.generateKeyContinue=Continuar coa xeración da chave -expiryTooLong=Non é posíbel crear unha chave con unha caducidade de máis de 100 anos. -expiryTooLongShorter=Non é posíbel crear unha chave que caduque en máis de 90 anos. -expiryTooShort=A súa chave debe ser válida alomenos durante un día. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Non foi posíbel cambiar a data de caducidade - -# Strings in enigmailMessengerOverlay.js -securityInfo=Información de seguridade de Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Posíbelmente é unha mensaxe PGP/MIME cifrada ou asinada; prema no botón Descifrar para verificalo - -saveAttachmentHeader=Enigmail: Gardar anexo descifrado -noTempDir=Non foi posíbel atopar un cartafol temporal no que escribir. Defina a variábel de contorno TEMP -attachmentPgpKey=O anexo '%S' que quere abrir parece ser un ficheiro de chave OpenPGP.\n\nPrema 'Importar' para importar as chaves contidas ou 'Ver' para ver o contido do ficheiro en unha xanela do navegador - -beginPgpPart=********* *INICIO DA PARTE CIFRADA OU ASINADA* ********* -endPgpPart=********** *FIN DA PARTE CIFRADA OU ASINADA* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Atopáronse múltiples bloques da mensaxe -- interrompeuse o descifrado/verificación* - -decryptOkNoSig=Aviso\n\nDescifrouse satisfactoriamente, mais a sinatura non se puido verificar correctamente. -msgOvl.button.contAnyway=&Continuar igualmente -signature.verifiedOK=A sinatura do anexo %S comprobouse correctamente -signature.verifyFailed=Non foi posíbel comprobar a sinatura do anexo %S -attachment.noMatchToSignature=Non foi posíbel asociar o anexo '%S' a un ficheiro de sinatura -attachment.noMatchFromSignature=Non foi posíbel asociar o ficheiro de sinatura '%S' a un anexo -fixBrokenExchangeMsg.failed=Non se conseguiu repara a mensaxe. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Esta chave non está vencellada a ningunha das súas contas de correo. Engada unha conta para cando menos un dos seguintes enderezo(s):\n\n%S -wksConfirmSuccess=Correo electrónico de confirmación enviado. -wksConfirmFailure=Produciuse un fallo no envío do correo de confirmación. -autocrypt.importSetupKey.accountPreconfigured=A conta xa está correctamente configurada para Autocrypt.\n\nConfirma que desexa sobrescribr os seus axustes con esta mensaxe de configuración? -autocrypt.importSetupKey.selfCreated=Esta mensaxe foi creada pola instancia do Enigmail actualmente en execución.\n\nCambie ao cliente de correo ao que desexa transferir a configuración e prema na mensaxe nese cliente de correo ao que quere importar a configuración. -autocrypt.importSetupKey.invalidMessage=Erro - non foi posíbel ler a mensaxe de configuración. A mensaxe parece corrompida. Tente crear unha nova no outro dispositivo. -autocrypt.importSetupKey.invalidKey=Erro - non foi posíbel importar a chave porque ou ben non é compatíbel coa súa versión do GnuPG ou ben se corrompeu. -autocrypt.importSetupKey.wrongPasswd=O contrasinal introducido é incorrecto. Desexa reintentalo? -autocrypt.importSetupKey.success=A mensaxe de configuración do Autocrypt procesouse correctamente. O Autocrypt está agora dispoñíbel para a súa conta «%S». - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Seleccionar chaves OpenPGP a inserir keysToUse=Seleccionar chaves OpenPGP que usar para %S pubKey=Chave pública para %S\n - -windowLocked=A xanela de composición está bloqueada; o envío foi cancelado -sendUnencrypted=Produciuse un fallo ao arrancar Enigmail.\nQuere enviar o mensaxe sen cifrar? -composeSpecifyEmail=Especifique o seu enderezo de correo principal, o que se utilizará para escoller a chave para asinar as mensaxes saíntes.\n Se o deixa en branco, usarase o enderezo de REMITE da mensaxe para escoller a chave para asinar. -sendingHiddenRcpt=Esta mensaxe ten destinos ocultos Cco (Copia carbón oculta). Se esta mensaxe está cifrada, é posíbel agochar os/as destinatarios/as ocultos/as (Cco) mais usuarios/as dalgúns productos (p.e. PGP Corp.) non poderán descifrar a mensaxe. Dito isto, recomendase evitar correos con Cco con mensaxes cifradas. -sendWithHiddenBcc=Agochar destinatarios/as Cco -sendWithShownBcc=Cifrar normalmente -sendingNews=Cancelouse o envío cifrado.\n\nEsta mensaxe non se pode cifrar porque hai destinos de grupos de novas. Reenvíe a mensaxe sen cifrar. -sendToNewsWarning=Aviso: está a piques de enviar unha mensaxe cifrada a un grupo de novas.\n\nIsto non é aconsellábel xa que só ten sentido se todoas as persoas do grupo poden descifrar a mensaxe, p.e. a mensaxe precisa ser cifrada coas chaves de todos/as participantes do grupo. Envíe esta mensaxe só se sabe exactamente o que está a facer.\n\nContinuar? -hasHTML=Aviso de correo HTML:\nEsta mensaxe pode conter HTML, o que podería causar fallos na sinatura/cifrado. Para evitar isto no futuro, debería premer a tecla SHIFT cando prema no botón Compoñer/Responder para enviar correo asinado.\nSe asina o correo de xeito predeterminado, debería desmarcar a opción 'Compoñer mensaxes en HTML' para desactivar o correo HTML de xeito permanente para esta conta de correo. -strippingHTML=A mensaxe contén información de formato en HTML que se perderá ao facer a conversión a texto plano para asinar/cifrar. Quere continuar? -msgCompose.button.sendAnyway=Enviar a mensaxe igualmente&Send Message Anywa -attachWarning=Os anexos a esta mensaxe non son locais e non se poden cifrar. Para cifrar os anexos, gárdeos primeiro como ficheiros locais e despois engádaos como ficheiros adxuntos. Quere enviar a mensaxe igualmente? quotedPrintableWarn=Activou a codificación 'entrecomiñado-imprimíbel' para o envío de mensaxes. Isto pode producir erros ao descifrar ou verificar a mensaxe.\nQuere desactivar o envío de mensaxes 'entrecomiñados-imprimíbeis' agora? -minimalLineWrapping=Definiu o axuste de liña a %S caracteres. Para un cifrado ou sinatura correcta, este valor ten que ser como mínimo 68.\nQuere mudar o axuste de liña a 68 caracteres agora? warning=Aviso -signIconClicked=Modificou manualmente a sinatura de mensaxes. Polo tanto, mentres que compón esta mensaxe, (des)activar a sinatura non depende de (des)activar o cifrado. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Produciuse un erro gardando o borrador -msgCompose.partiallyEncrypted.short=Teña tino co filtrado de información sensitiva - correo parcialmente cifrado. -msgCompose.partiallyEncrypted.inlinePGP=A mensaxe á que vostede está respondendo contiña partes cifradas e sen cifrar. Se o remitente non foi quen de descifrar algunhas partes da mensaxe en orixe, pode que vostede estea filtrando información confidencial que o remitente non puido descifrar.\n\nConsidere eliminar todas as citas da súa resposta a este remitente. - -msgCompose.internalEncryptionError=Erro interno: desactivouse o cifrado prometido. -msgCompose.internalError=Produciuse un erro interno - -msgCompose.toolbarTxt.signAndEncrypt=Esta mensaxe asinarase e cifrarase -msgCompose.toolbarTxt.signOnly=Esta mensaxe asinarase -msgCompose.toolbarTxt.encryptOnly=Esta mensaxe cifrarase -msgCompose.toolbarTxt.noEncryption=Esta mensaxe non se asinará nin cifrará -msgCompose.toolbarTxt.disabled=Desactivouse o Enigmail para a identidade seleccionada -msgCompose.protectSubject.tooltip=Protexer o asunto da mensaxe -msgCompose.noSubjectProtection.tooltip=Non protexer o asunto da mensaxe -msgCompose.protectSubject.dialogTitle=Activar a protección do axunto? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -msgCompose.protectSubject.yesButton=&Protexer o Asunto -msgCompose.protectSubject.noButton=&Deixar o Asunto sen protexer - -msgCompose.detailsButton.label=Detalles... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Descoñecido -msgCompose.pepSendUnsecure=Insegura -msgCompose.pepSendSecure=Seguro -msgCompose.pepSendTrusted=Segura e confiábel - -pep.alert.disabledForIdentity=p≡p está desactivado para a identidade actual. Active p≡p nas preferencias do Enigmail/p≡p. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Cancelouse o envío.\n\n - -# details: keyNotTrusted=A chave «%S» non é fiábel dabondo -keyNotFound=Non foi posíbel atopar a chave «%S» -keyRevoked=A chave «%S» revogouse -keyExpired=A chave «%S» caducou - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=ASINADO -statEncrypted=CIFRADO -statPlain=SEN ASINAR e SEN CIFRAR - -offlineSave=Gardar %S mensaxe a %S no cartafol de mensaxes sen enviar? - -onlineSend=Enviar %S mensaxe a %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=Enviar mensaxe sen cifrar -recipientsSelectionHdr=Seleccionar destinatarios para o cifrado - -configureNow=Aínda non configurou a seguridade Enigmail para a identidade seleccionada. Quere facer isto agora? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Cifrar mensaxe (automaticamente) -encryptMessageNorm=Cifrar mensaxe -signMessageAuto=Asinar mensaxe (automaticamente) -signMessageNorm=Asinar mensaxe - -encryptOff=Cifrado: DESACTIVADO -encryptOnWithReason=Cifrado: ACTIVADO (%S) -encryptOffWithReason=Cifrado: DESACTIVADO (%S) -encryptOn=Cifrado: ACTIVADO -signOn=Asinado: ACTIVADO -signOff=Asinado: DESACTIVADO -signOnWithReason=Asinado: ACTIVADO (%S) -signOffWithReason=Asinado: DESACTIVADO (%S) -reasonEnabledByDefault=activado de forma predeterminada -reasonManuallyForced=forzado manualmente -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=forzado polo cifrado automático -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=debido ao modo de cifrado - -# should not be used anymore: -encryptYes=Vaise cifrar a mensaxe -encryptNo=Non se vai a cifrar a mensaxe - -# should not be used anymore: -signYes=Vaise asinar a mensaxe -signNo=Non se vai asinar a mensaxe - - -# PGP/MIME status: -pgpmimeNormal=Protocolo: PGP/MIME -inlinePGPNormal=Protocolo: Inline PGP -smimeNormal=Protocolo: S/MIME -pgpmimeAuto=Protocolo: PGP/MIME (automaticamente) -inlinePGPAuto=Protocolo: Inline PGP (automaticamente) -smimeAuto=Protocolo: S/MIME (automático) - -# should not be used anymore -pgpmimeYes=Usarase PGP/MIME -pgpmimeNo=Usarase o Inline PGP - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Detectáronse conflitos nas regras por destinatario%S\n\nEnviar a mensaxe con esta configuración? -msgCompose.button.configure=&Configurar -msgCompose.button.send=Enviar mensaxe -msgCompose.button.save=Gardar mensaxe - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Necesítase a chave pública %S para verificar a sinatura -keyUsed=A chave pública %S usouse para comprobar a sinatura -clickDecrypt=; premer botón Descifrar -clickDecryptRetry=; premer botón Descifrar para tentar de novo -clickDetailsButton=; premer no botón 'Detalles' para ver máis información -clickImportButton=; prema no botón «Importar chave» para descargar a chave -keyTypeUnsupported=; o tipo de chave non é compatíbel coa versión de GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Descifrar -msgPart=Parte da mensaxe %S -msgSigned=asinado -msgSignedUnkownKey=asinado cunha chave descoñecida -msgEncrypted=cifrado -msgSignedAndEnc=asinado e cifrado - unverifiedSig=Sinatura sen verificar -incompleteDecrypt=Descifrado incompleto -needKey=Erro - precísase a chave privada para descifrar a mensaxe -failedDecrypt=Erro - fallou o descifrado badPhrase=Erro - mala frase secreta # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Erro - fallou o descifrado/verificación -viewInfo=; Ver > Información de seguridade da mensaxe para ver os detalles -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Mensaxe descifrada -decryptedMsgWithFormatError=Mensaxe descifrada (restabeleceuse o formato de correo PGP, roto probabelmente por un servidor Exchange antigo, así que o resultado pode non ser perfecto para a súa lectura) - -usedAlgorithms=Algoritmos usados: %1$S e %2$S -pepStatusInfo.text=Estado da mensaxe p≡p. -pepStatusInfo.title.m3=Sendo atacado -pepStatusInfo.info.m3=Esta mensaxe non é segura e foi alterada. -pepStatusInfo.title.m1=Non fiábel -pepStatusInfo.info.m1=Esta mensaxe ten un interlocutor marcado previamente como non fiábel -pepStatusInfo.title.r0=Descoñecido -pepStatusInfo.info.r0=Esta mensaxe non contén información dabondo para determinala como segura. -pepStatusInfo.title.r1=Non é posíbel descifrar -pepStatusInfo.info.r1=Non é posíbel descifrar esta mensaxe porque a chave non está dispoñíbel. -pepStatusInfo.title.r2=Non é posíbel descifrala -pepStatusInfo.info.r2=Non é posíbel descifrar a mensaxe porque a chave non está dispoñíbel. -pepStatusInfo.title.r3=Inseguro -pepStatusInfo.info.r3=Esta mensaxe non é segura. -pepStatusInfo.title.r4=Insegura para alguén -pepStatusInfo.info.r4=Esta mensaxe é insegura para algúns dos participantes. -pepStatusInfo.title.r5=Seguranza non fiábel -pepStatusInfo.info.r5=Esta mensaxe ten unha protección non fiábel. -pepStatusInfo.title.r6=Seguro... -pepStatusInfo.info.r6=Esta mensaxe é segura, aínda así, vostede precisa verificar a identidade do interlocutor. -pepStatusInfo.title.r7=Segura e confiábel -pepStatusInfo.info.r7=Esta mensaxe é segura e fiábel. - -pepStatusInfo.color.green=Verde -pepStatusInfo.color.yellow=Amarelo -pepStatusInfo.color.red=Vermello -pepRevokeTrust.question=Desexa cancelar a confianza en %S? -pepRevokeMistrust.question=Desexa volver confiar na chave de %S? -pepRevokeTrust.doRevoke=Cancelar confianza - -wksConfirmationReq=Petición de confirmación do directorio do servidor de chaves -wksConfirmationReq.message=Esta mensaxe enviouna o seu provedor de correo electrónico para confirmar a dispoñibilidade da súa chave pública OpenPGP\nno seu directorio do servidor de chaves.\nProporcionando a súa chave pública axudará a outros a descubrir a súa chave e deste xeito seren quen de cifrar\nmensaxes para vostede.\n\nSe desexa mostrar a súa chave no directorio do servidor de chaves\nagora, prema no botón «Confirmar petición» na barra do estado.\nNoutro caso, ignore esta mensaxe. -wksConfirmationReq.button.label=Confirmar petición - -autocryptSetupReq=Realizar configuración do Autocrypt -autocryptSetupReq.button.label=Iniciar configuración -autocryptSetupReq.setupMsg.desc=Esta mensaxe contén toda a información precisa para transferir os axustes do Autocrypt xunto coa súa chave secreta desde o dispositivo orixinal. -autocryptSetupReq.setupMsg.backup=Pode conservar esta mensaxe e usala como copia de seguranza da súa chave secreta. Se desexa facelo, debería escribir o contrasinal e gardalo de forma segura. -autocryptSetupReq.message.import=Para importar os axustes e chave(s) ao Enigmail. Prema no botón «Iniciar configuración» na barra de estado. -autocryptSetupReq.message.sent=Prema na mensaxe do seu dispositivo novo e siga as instrucións para importar os axustes. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Produciuse un fallo iniciando o Enigmail.\n\nEstá usando a versión %1$S do GnuPG que xa non compatíbel. O Enigmail require a versión %2$S ou unha máis recente. Anove a instalación do GnuPG ou o Enigmail non funcionará. -locateGpg=Localizar o programa GnuPG -invalidGpgPath=GnuPG non se pode executar coa ruta especificada. Enigmail ficará desactivado até que cambie a ruta de GnuPG de novo ou reinicie o aplicativo. -warningsAreReset=Restablecéronse todos os avisos. -prefs.gpgFound=Atopouse GnuPG en %S -prefs.gpgNotFound=Non se atopou o GnuPG -prefs.warnAskNever=Aviso: activar esta opción causará que non se cifre ningún correo se falta algunha das chaves dos/das destinatarios/as -- Enigmail non informará disto cando suceda! -prefs.warnIdleTimeForUnknownAgent=Non é posíbel conectar co gpg-agent. Quizais o seu sistema usa unha ferramenta especializada para manexar frases secretas (como gnome-keyring ou seahorse-agent, KDE wallet manager...). Desafortunadamente Enigmail non pode controlar o tempo límite das frases secretas na ferramenta que está usando. Polo tanto a configuración do tempo límite respectivo en Enigmail é ignorada. -prefEnigmail.oneKeyserverOnly=Erro - so se pode especificar un servidor de chaves para a descarga automática das chaves OpenPGP que falten. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail é software de fontes abertas coa licenza Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Introduza o PIN de administración da súa SmartCard -enterCardPin=Introduza o PIN da súa SmartCard - -notInit=Erro - non se iniciou o servizo Enigmail badCommand=Erro - fallou o comando de cifrado cmdLine=liña de comando e saída: -notRequired=Erro - non se precisa cifrado -notComplete=Erro - non se completou a xeración da chave -invalidEmail=Erro - enderezo(s) de correo non válido(s) noPassphrase=Erro - non se proporcionou a frase secreta noPGPblock=Erro - non se atopou un bloque de datos armado OpenPGP válido -unverifiedReply=Probabelmente modificouse a parte sangrada da mensaxe (resposta) -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Erro - A sinatura non coincide -# cantImport=Error importing public key\n\n -doImportOne=Desexa importar %1$S (%2$S)? -doImportMultiple=Desexa importar as seguintes chaves?\n\n%S -previewFailed=Non é posíbel ler o ficheiro da chave pública. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Non se pode utilizar a SmartCard %S atopada no seu lector para procesar a mensaxe.\nInsira a súa SmartCard %S e repita a operación. sc.insertCard=A operación require o uso da súa SmartCard %S.\nInsira a SmartCard requerida e repita a operación. sc.removeCard=A operación non require que teña a súa SmartCard no lector.\nRetire a súa SmartCard e repita a operación. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Non se puido acceder ao lector de tarxetas SmartCard \nConecte o lector de tarxetas, insira a SmartCard, e repita a operación. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Seleccione unha chave válida na sección OpenPGP dos axustes da conta missingPassphrase=Falta a frase secreta errorHandling.gpgAgentInvalid=O sistema está executando unha versión do gpg-agent que non é axeitada para a súa versión de GnuPG. errorHandling.gpgAgentError=GnuPG informou dun erro na comunicación co gpg-agent (un compoñente do GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG non puido consultar a frase secreta por medio de pinentry, # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Este é un erro de configuración do sistema que impide que o Enigmail funcione correctamente. Non se pode arranxar automaticamente.\n\nRecomendámoslle moito que consulte o noso sitio de asistencia en https://enigmail.net/faq. - gpgNotFound=Non se puido localizar o programa GnuPG '%S'.\nAsegúrese de que a ruta ao executábel GnuPG é correcto nas Preferencias de Enigmail. gpgNotInPath=Non se puido localizar o executábel de GnuPG na ruta (PATH).\nAsegúrese de que a ruta ao executábel GnuPG é correcto nas Preferencias de Enigmail. enigmailNotAvailable=O servizo principal do Enigmail non está dispoñíbel - -prefGood=Sinatura correcta de %S -prefBad=Sinatura INCORRECTA de %S - failCancel=Erro - A descarga da chave foi cancelada polo usuario failKeyExtract=Erro - fallou o comando de extración de chave -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Erro - o primeiro bloque OpenPGP non é un bloque de chave pública importKeyConfirm=Importar chave(s) pública(s) integradas na mensaxe? -failKeyImport=Erro - fallou a importación de chaves fileWriteFailed=Houbo un erro ao escribir ao ficheiro %S - importKey=Importar chave pública %S desde o servidor de chaves. uploadKey=Enviar chave pública %S ao servidor de chaves: keyId=ID de chave -keyAndSigDate=ID de chave: 0x%S / Asinado en: %S -keyFpr=Pegada dixital da chave: %S -noEmailProvided=Non proporcionou un enderezo de correo! -keyAlreadySigned=A chave xa está asinada, non pode asinala dúas veces. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=caducada %S createdHeader=Creada atLeastOneKey=Non se seleccionou ningunha chave! Ten que seleccionar polo menos unha chave para aceptar este diálogo fewerKeysThanRecipients=Seleccionou un número máis pequeno de chaves que de remitentes. Está seguro/a de que a lista de chaves para cifrar está completa? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Seleccionar unha chave privada OpenPGP para asinar as mensaxes userSel.problemNoKey=Ningunha chave válida userSel.problemMultipleKeys=Múltiples chaves -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Enviar máis tarde - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=NOTA: PGP/MIME non é compatíbel con todos os clientes de correo electrónico. Se vostede non está seguro, seleccione a opción %S. first=primeiro second=segundo - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Seleccionar chave OpenPGP para o cifrado -identityName=Identidade: %S -switchPepMode=Está usando actualmente o modo «p≡p Junior» do Enigmail.\n\nActivando o OpenPGP ou S/MIME para unha conta, está desactivando p≡p e usando o modo normal do Enigmail sen p≡p. -enableEnigmail=&Desactivar p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Activou o cifrado, mais non seleccionou unha chave. Para cifrar correos enviados a %S, precisa especificar unha ou varias chaves válidas da súa lista de chaves. Quere desactivar o cifrado para %S? -noKeyToUse=(ningún - sen cifrado) -noEmptyRule=A regra non pode estar baleira! Defina un enderezo de correo no campo da regra. -invalidAddress=Os enderezos de correo que introduciu non son válidos. Non debería definir os nomes dos/as destinatarios/as, defina só os enderezos de correo. P.e.:\nInválido: Un nome\nVálido: un.nome@enderezo.net -noCurlyBrackets=As chaves {} teñen un significado especial e non deberían usarse nun enderezo de correo electrónico. Se desexa modificar o comportamento desta regra, use a opción «Aplicar regra se o destinatario...» .\nHai máis información dispoñíbel no botón Axuda. - -# Strings used in enigmailRulesEditor.js never=Nunca always=Sempre possible=Posíbel -deleteRule=Está seguro de que quere eliminar a regra? -nextRcpt=(Seguinte destinatario) -negateRule=Non -addKeyToRule=Engadir unha chave %S (%S) á regra por-receptor - -# Strings used in enigmailSearchKey.js -needOnline=A función seleccionada non está dispoñíbel en modo sen conexión. Conéctese e ténteo de novo. -noKeyserverConn=Non foi posíbel conectar co servidor de chaves en %S. -internalError=Produciuse un erro interno. Non se puido descargar ou importar as chaves. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Fallou ao definir a confianza no propietario - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Fallou ao asinar a chave -alreadySigned.label=Nota: a chave %S xa está asinada coa chave privada seleccionada. -alreadySignedexportable.label=Nota: a chave %S xa está asinada exportábel coa chave privada seleccionada. Unha sinatura local non ten sentido. -partlySigned.label=Nota: algunhas ID de chave de usuario %S xa están asinadas coa chave secreta seleccionada. -noTrustedOwnKeys=Non se atopou ningunha chave axeitada para asinar. Precisa, cando menos, unha chave privada plenamente confiábel para asinar as chaves. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Cargando chaves, espere ... keyValid.unknown=descoñecido keyValid.invalid=incorrecto keyValid.disabled=desactivado keyValid.revoked=revogado keyValid.expired=caducado keyValid.noSubkey=subchave non válida - -keyTrust.untrusted=non fiábel +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=marxinal keyTrust.full=fiábel keyTrust.ultimate=definitiva keyTrust.group=(groupo) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Activar chave -keyMan.disableKey=Desactivar chave userAtt.photo=Usar atributo (imaxe JPEG) - -asciiArmorFile=Ficheiros con armadura ASCII (*.asc) importKeyFile=Importar o ficheiro coa chave OpenPGP -gnupgFile=Ficheiros GnuPG -saveRevokeCertAs=Crear e gardar certificado de revogación -revokeCertOK=O certificado de revogación creouse correctamente. Pode usalo para invalidar a súa chave pública, por exemplo, no caso de que a perdese. -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 -noKeySelected=Debe seleccionar alomenos unha chave para realizar a operación selecionada -exportToFile=Exportar chave pública a un ficheiro -exportKeypairToFile=Exportar as chaves secreta e pública a un ficheiro -exportSecretKey=Quere incluír a chave privada no ficheiro de chave OpenPGP que vai a gardar? -saveKeysOK=O ficheiro de chave foi gardado correctamente -saveKeysFailed=Produciuse un fallo ao gardar as chaves -importKeysFailed=Produciuse un fallo ao importar as chaves -enableKeyFailed=Produciuse un erro ao activar/desactivar as chaves -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Chaves-públicas-exportadas -defaultPubSecKeyFilename=Chaves-públicas-e-privadas-exportadas - -sendKeysOk=As chaves foron enviadas correctamente -sendKeysFailed=Produciuse un fallo ao enviar as chaves -receiveKeysOk=As chaves foron actualizadas correctamente -receiveKeysFailed=Produciuse un erro ao descargar as chaves -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Quere importar algunha(s) chaves do portarretallos? -importFromUrl=Descargue a chave pública nesta URL: -copyToClipbrdFailed=Non foi posíbel copiar a(s) chave(s) seleccionada(s) ao portarretallos. -copyToClipbrdOK=Chave(s) copiada(s) ao portarretallos - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=AVISO: vai eliminar chaves privadas!\nSe elimina a súa chave privada non poderá descifrar calquera mensaxe cifrado para esa chave.\n\nEstá seguro de que quere eliminar AMBAS as chaves, as chaves privadas e públicas seleccionadas? -deletePubKey=Desexa eliminar a chave pública\n'%S'? -deleteSelectedPubKey=Desexa eliminar as chaves públicas? -deleteKeyFailed=Non foi posíbel eliminar a chave. revokeKeyQuestion=Vai a revogar a chave «%S»\n\nXa non lle será posíbel volver asinar con esta chave. Unha vez revogada, os demais non serán quen de cifrar con ela. Pode seguir a usar a chave para descifrar as mensaxes antigas.\n\nDesexa continuar?\n\n -revokeKeyOk=A chave foi revogada. Se a súa chave está dispoñíbel nalgún servidor de chaves, é recomendábel que a suba de novo, para que outras persoas poidan ver a revogación. -revokeKeyFailed=Non se puido revogar a chave. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=A chave 0x%S xa foi revogada. -refreshAllQuestion=Non seleccionou ningunha chave. Desexa recargar TODAS as chaves? -refreshKeyServiceOn.warn=Aviso: as súas chaves están actualizańdose en segundo plano con tanta seguranza como é\nposíbel. Actualizar todas as chaves dunha vez descubrirá innecesariamente información sobre vostede.\nConfirma que desexa facelo? -refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da conexión, a recarga de todas as chaves pode ser un proceso bastante lento! -downloadContactsKeys.warn=Aviso: dependendo do número de contactos e da velocidade da conexión, a descarga de todas as chaves pode durar unha boa miga. -downloadContactsKeys.importFrom=Desexa importar contactos da axenda de enderezos «%S»? -keyMan.button.exportSecKey=Exportar chaves privadas -keyMan.button.exportPubKey=Exportar só chaves &públicas keyMan.button.import=&Importar -keyMan.button.refreshAll=&Recargar todas as chaves keyMan.button.revokeKey=&Revogar chave - -keylist.noOtherUids=Non ten outras identidades -keylist.hasOtherUids=Tamén coñecido como -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Seleccione unha foto para engadir -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=O ficheiro seleccionado non semella un ficheiro JPEG. Seleccione outro diferente. -keyMan.addphoto.failed=Non foi posíbel engadir a foto. -noWksIdentity=A chave %S non ten unha identidade no servizo web de chaves. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=Engadir a chave á &Lista negra -keyman.removeBlacklistKey.button=&Eliminar a chave da lista negra - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Produciuse un erro cambiando o ID de usuario principal -changePrimUidOK=O ID de usuario principal foi cambiado correctamente -revokeUidFailed=Produciuse un erro revogando o ID de usuario %S -revokeUidOK=O ID de usuario %S revogouse correctamente. Se a súa chave está dispoñíbel nalgún servidor de chaves, é recomendábel que a suba de novo, para que outras persoas poidan ver a revogación. -revokeUidQuestion=Está seguro de que quere revogar o ID de usuario %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=A chave importouse correctamente -importInfoBits=Bits -importInfoCreated=Creado -importInfoFpr=Pegada dixital -importInfoDetails=(Detalles) -importInfoNoKeys=Non hai chaves importadas - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=chave pública -keyTypePrimary=chave primaria -keyTypeSubkey=subchave -keyTypePair=par de chaves -keyExpiryNever=nunca keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Cifrar -keyUsageSign=Asinar -keyUsageCertify=Certificar -keyUsageAuthentication=Autenticación -keyDoesNotExpire=A chave non caduca - -# Strings in enigmailGenCardKey.xul -keygen.started=Agarde mentres se xera a chave ... -keygen.completed=Chave xerada. O novo ID da chave é: 0x%S -keygen.keyBackup=Fíxose unha copia de seguridade da chave a %S -keygen.passRequired=Especifique unha frase secreta se quere crear unha copia de seguranza da súa chave fóra da súa SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Produciuse un erro ao cambiar o PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Recargando chaves, agarde ... -keyserverProgress.uploading=Subindo chaves, agarde ... -keyserverProgress.wksUploadFailed=Non foi posíbel enviar a súa chave ao servidor de chaves -keyserverProgress.wksUploadCompleted=A súa chave pública enviouse correctamente ao provedor. Recibirá un correo electrónico para confirmar que vostede fixo o envío. -keyserverTitle.refreshing=Recargar chaves -keyserverTitle.uploading=Subir chave -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=O ficheiro especificado non é un executábel de GnuPG. Indique outro ficheiro. -setupWizard.installFailed=Parece que a instalación non se realizou correctamente. Tente facela de novo ou instale GnuPG manualmente e localíceo usando o botón Explorar. -setupWizard.downloadForbidden=Pola súa seguranza non descargaremos o GnuPG. Visite https://gnupg.org/ con fin de descargalo. -setupWizard.downloadImpossible=Non é posíbel descargar o GnuPG agora mesmo. Ténteo máis tarde ou visite https://gnupg.org/ con fin de descargalo. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Especificar a copia de seguridade que cargar -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=O ficheiro config de GnuPG xa existe. Desexa sobrescribilo co ficheiro da instalación antiga? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -setupWizard.unmachtedIds=Non foi posíbel emparellar as seguintes identidades da súa vella instalación:\n%S\nOmitíronse os axustes destas identidades. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Produciuse un erro mentres se tentaba descargar GnuPG. Comprobe o rexistro da consola para máis información. -installGnuPG.installFailed=Produciuse un erro mentres se instalaba GnuPG. Comprobe o rexistro da consola para máis información. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Debe que indicar un nome e un enderezo de correo -addUidDlg.nameMinLengthError=O nome debe ter polo menos 5 caracteres -addUidDlg.invalidEmailError=Debe especificar un enderezo de correo válido - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=A Smartcards OpenPGP unicamente aceptan caracteres ASCII no nome - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=O certificado de seguranza presentado polo servizo web non é válido. errorType.SecurityProtocol=O protocolo de seguranza usado polo servizo web é descoñecido. errorType.Network=Produciuse un erro de rede. - -# filter stuff -filter.folderRequired=Debe seleccionar un cartafol de destino. -filter.decryptMove.label=Descifrar permanentemente (Enigmail) -filter.decryptCopy.label=Crear unha copia descifrada (Enigmail) -filter.decryptMove.warnExperimental=Aviso: a acción do filtro «Descifrar permanentemente» pode provocar a destrución de mensaxes.\n\nRecomendámoslle que probe primeiro o filtro «Crear copia descifrada», comprobe o resultado con coidado e use este filtro unicamente se está satisfeito co resultado. -filter.tempPepFilterDesc=Filtro temporal para gardar a mensaxe enviada sen cifrar -filter.term.pgpencrypted.label=OpenPGP cifrado -# filter.encrypt.label=Encrypt to key (Enigmail) -filter.keyRequired=Debe seleccionar unha chave de destinatario. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Gardar o ficheiro do rexistro - -# strings in gpg.jsm -unknownSigningAlg=Algoritmo de asinado descoñecido (ID: %S) -unknownHashAlg=Hash de cifrado descoñecido (ID: %S) - -# strings in keyRing.jsm keyring.photo=Imaxe keyRing.pubKeyRevoked=A chave %1$S (ID da chave %2$S) revogouse. keyRing.pubKeyExpired=A chave %1$S (ID da chave %2$S) caducou. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Caducaron todas as sub-chaves de cifrado da chave %1$S (ID da chave %2$S). keyRing.noSecretKey=Non parece ter a chave secreta de %1$S (ID da chave %2$S) no anel de chaves. Non pode usar a chave para asinar. keyRing.encSubKeysUnusable=Todas as sub-chaves de cifrado da chave %1$S (ID da chave %2$S) revogáronse, caducaron ou non son utilizábeis. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Non é posíbel gardar no ficheiro «%S». Seleccione un ficheiro diferente. dataExportError=Produciuse un erro na exportación dos datos. -enigmailSettings=Axustes do Enigmail -defaultBackupFileName=Exportar-export. -specifyExportFile=Especificar o nome do ficheiro para exportar -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Abrir a xestión de chaves do Enigmail expiry.OpenKeyProperties=Abrir propiedades da chave - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Esta é unha mensaxe cifrada. Desafortunadamente non ten unha chave privada para descifrar a mensaxe. - -#strings in gpgAgent.jsm gpghomedir.notexists=O directorio «%S» coas as súas chaves OpenPGP non existe e non é posíbel crealo. gpghomedir.notwritable=O directorio «%S» coas as súas chaves OpenPGP non é escribíbel. gpghomedir.notdirectory=O cartafol «%S» que contén as súas chaves OpenPGP é un ficheiro no canto dun cartafol. gpghomedir.notusable=Modifique os permisos do cartafol ou cambie a localización do seu cartafol «home» do GnuPG. Noutro caso o GnuPG non poderá traballar correctamente. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Non foi posíbel verificar as palabras de control do p≡p da súa conta. -pepTrustWords.cannotFindKey=Non foi posíbel atopar a chave de %S. -pepTrustWords.cannotStoreChange=Non foi posíbel cambiar a confianza de %S. -pepTrustWords.generalFailure=Non foi posíbel obter as palabras de control para %S. -pepTrustWords.partnerFingerprint=Pegada dixital de %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=O seu provedor de correo electrónico procesou a petición para enviar a chave pública ao directorio do servidor de chaves do OpenPGP.\n\nPrema no botón de confirmación na cabeceira do Enigmail para completar a publicación da súa chave. -wkdMessage.body.process=Este é un correo electrónico relacionado co procesamento automático para enviar a súa chave pública ao directorio do servidor de chaves do OpenPGP.\n\nNon precisa realizar ningunha acción. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Ou ben vostede ou o remitente deberían reenviar a mensaxe. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Se escribiu esta mensaxe, a súa chave non está dispoñíbel. -pepPrivacyStatus.RatingMistrustSuggestion=Restabeleza a conexión co seu interlocutor e tente realizar outra negociación de enlace ou «handshake». -pepPrivacyStatus.RatingReliableSuggestion=Complete a negociación de enlace ou «handshake» co seu interlocutor intercambiando palabras de control en persoa ou por teléfono. Unha negociación de enlace só se precisa facer unha vez por interlocutor e proporcionará unha comunicación segura e fiábel. -pepPrivacyStatus.RatingTrustedSuggestion=Non precisa facer nada! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Engada a información necesaria. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -pepPrivacyStatus.RatingUnencryptedSuggestion=Pídalle ao interlocutor que use unha solución de cifrado ou instale p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Esta mensaxe ten un cifrado ou formatado rotos. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Esta mensaxe non se pode descifrar porque a chave non está dispoñíbel. -pepPrivacyStatus.RatingMistrustExplanation=Esta mensaxe ten un interlocutor marcado previamente como non fiábel. -pepPrivacyStatus.RatingReliableExplanation=Esta mensaxe é segura pero aínda así precisa verificar a identidade do interlocutor. -pepPrivacyStatus.RatingTrustedExplanation=Esta mensaxe é segura e confiábel. -pepPrivacyStatus.RatingUndefinedExplanation=Esta mensaxe non contén información dabondo para determinala como segura. -pepPrivacyStatus.RatingUnderAttackExplanation=Esta mensaxe non é segura e foi alterada. -pepPrivacyStatus.RatingUnencryptedExplanation=Esta mensaxe no é segura. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Esta mensaxe é insegura para algúns dos interlocutores. -pepPrivacyStatus.RatingUnreliableExplanation=A protección desta mensaxe non é fiábel. - -pepPrivacyStatus.RatingBrokenText=Roto -pepPrivacyStatus.RatingHaveNoKeyText=Non é posíbel descifrar -pepPrivacyStatus.RatingMistrustText=Non fiábel -pepPrivacyStatus.RatingReliableText=Seguro -pepPrivacyStatus.RatingTrustedText=Segura e confiábel -pepPrivacyStatus.RatingUndefinedText=Descoñecido -pepPrivacyStatus.RatingUnderAttackText=Sendo atacado -pepPrivacyStatus.RatingUnencryptedForSomeText=Insegura para algún -pepPrivacyStatus.RatingUnencryptedText=Inseguro -pepPrivacyStatus.RatingUnreliableText=Seguranza non fiábel - -handshakeDlg.button.initHandshake=Negociación de enlace... -handshakeDlg.button.stopTrust=Deixar de confiar -handshakeDlg.button.reTrust=Deixar de desconfiar -handshakeDlg.label.outgoingMessage=Mensaxe saínte -handshakeDlg.label.incomingMessage=Mensaxe entrante -handshakeDlg.error.noPeers=Non é posíbel negociar un enlace ou «handshake» sen interlocutores. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Mensaxe de configuración do Autocrypt -autocrypt.setupMsg.msgBody=Para configurar o seu novo dispositivo para o Autocrypt siga as instrucións que se deberían ver no dispositivo novo. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Que novidades hai no Enigmail v2.0? -upgradeInfo.welcome1=Benvido/a á nova versión do Enigmail 2.0! -upgradeInfo.welcome2=A versión contén unha morea de cambios e características novas. Tómese un minuto para coñecer as novidades: -upgradeInfo.encSubject.title=Cifrando o asunto da mensaxe -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -upgradeInfo.buttons.title=Cambiado o comportamento dos botóns de cifrar e de asinar -upgradeInfo.buttons.desc=Os botóns de Cifrar e Asinar na xanela de composición de mensaxes agora funcionan para os protocolos OpenPGP e S/MIME. Se ambos os algoritmos son posíbeis, o Enigmail preferirá aquel para o que hai chaves dispoñíbeis. -upgradeInfo.autocrypt.title=Compatibilidade para o Autocrypt -upgradeInfo.autocrypt.desc=O Enigmail xa é compatíbel co Autocrypt, 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 now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Lea a nosa documentación para obter axuda no uso do Enigmail. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Para poder usar o Enigmail/p≡p é necesario o GnuPG. Como non foi posíbel atopalo, podemos descargalo e instalalo por vostede. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Sobre Enigmail aboutEnigmail.title=Compatibilidade co OpenPGP proporcionada polo Enigmail aboutEnigmail.team=Enigmail é desenvolvido polo equipo do Enigmail: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licenza e asistencia aboutEnigmail.license=O OpenPGP do Enigmail é software aberto e con licenza %S aboutEnigmail.support=Asistencia e descargas dispoñíbeis en www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/gl/help/compose.html enigmail-2.2.4/lang/gl/help/compose.html --- enigmail-2.1.6+ds1/lang/gl/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - -Axuda de Enigmail: Composición de Mensaxe - - -

Axuda de Enigmail

- -

Usando Enigmail para compoñer mensaxes

- -
    -
  • Menú de Enigmail na ventá de Composición de correo -
      -
    • Asinar mensaxe: Activa/Desactiva o envío de correo asinado. O - usuario ou usuaria son notificados se a sinatura falla. -
    • -
    • Cifrar mensaxe: Activar/Desactiva o cifrado a todos os destinatarios - ou destinatarias antes do envío. Notifícase en caso de que se produza un erro no - cifrado. -

      Se Mostrar selección cando sexa necesario está definido na pestana de - Preferencias -> Selección de chaves, mostrarase unha listaxe de chaves se - hai algún enderezo na lista de destinatarios/as da mensaxe para os/as que non ten - chave pública.

      -

      Se a opción de non mostrar nunca o diálogo de selección de chaves OpenPGP - está activado na pestana Preferencias -> Selección de chaves, e hai enderezos - na lista de destinatarios/as para os que non ten a chave pública, a mensaxe enviaras - sen cifrar.

      -
    • -
    • Usar PGP/MIME para esta mensaxe: Activa/Desactiva o uso de PGP/MIME - para esta mensaxe. -

      Se sabe que o(s) destinatario(s) ou destinataria(s) poden ler correo utilizando o - formato PGP/MIME, debería utilizalo.

      -

      Esta característica depende da configuración na pestana Preferencias - -> PGP/MIME sendo a opción Permitir o uso de PGP/MIME ou Usar sempre - PGP/MIME.

      -
    • -
    • Opcións predeterminadas para a composición: Submenú. -
        -
      • Opcións de Sinatura/Cifrado...: atallo a Configuración das contas -> - Opcións OpenPGP. -
      • -
      • Opcións de envío...: atallo á pestana Preferencias -> - Envío. -
      • -
      • Opcións de selección de chaves...: atallo á pestana Preferencias -> - Selección de chaves. -
      • -
      • Opcións PGP/MIME...: atallo á pestana Preferencias -> - PGP/MIME. -
      • -
      -
    • -
    • Desfacer cifrado: Se hai un fallo ao enviar un correo, como o - servidor POP que non acepta unha solicitude, Enigmail non pode sabelo, e a - mensaxe cifrada seguirá na ventá de composición. Escollendo este elemento do - menú desfarase o cifrado/sinatura, volvendo o texto orixial á ventá de - composición.
      - Como un arranxo temporal, esta opción pode utilizarse para descifrar o - texto comentado ao responder mensaxes cifradas. Enigmail debería descifrar - a mensaxe automaticamente, mais se falla por algunha razón, pode utilizar - este elemento do menú para forzalo. -
    • -
    • Inserir chave pública: insire a chave pública nun bloque ASCII-armado - na posición actual do cursos na ventá de composición. Pediráselle o enderezo da - chave que quere inserir. As chaves inseridas desta maneira serán recoñecidas - automaticamente ao seren recividas por Enigmail. Despois da inserción da chave, - pode tamén escoller asinar/cifrar o correo se é preciso. De todos xeitos, non - insira máis dun bloque de chaves nunha mensaxe; simplemente especifique múltiples - enderezos de correo, separados por comas ou espazos, cando se lle pregunte. -
    • -
    • Limpar contrasinais gardados: Limpa os contrasinais gardados en caché. - Útil se ten múltiples contrasinais. -
    • -
    • Axuda: Mostra información de axuda desde o sitio web (esta páxina). -
    • -
    -
  • -
-
-

-Máis axuda dispoñíbel na -páxina web de Axuda de Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/gl/help/editRcptRule.html enigmail-2.2.4/lang/gl/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/gl/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - -Axuda de Enigmail: Editar regra OpenPGP - - -

Axuda de Enigmail

- -

Usando o Editor de regras de Enigmail Rules Editor: Editar regra OpenPGP

-

No Editor de regras, pode especificar configuracións predeterminadas por -destinatario/a para a activación de cifrado, sinatura e PGP/MIME, e definir que -chave(s) OpenPGP utilizar. Neste diálogo, pode especificar as regras para un único -ou unha única destinataria, e para un grupo de destinatarios/as con atributos -mois similares. -

-
    -
  • Definiar regras OpenPGP para: Contén os - enderezos de correo dos destinos (sen nomes, p.e. so un enderezo como - alguen@correo.dominio). Pode especificar varios enderezos de correo, - separados por espazos. O enderezo especificado aquí pode consistir só na parte do - dominio de xeito que calquera enderezo deste dominio coincidirá, - p.e. @correo.dominio funcionará con calquera@correo.dominio, - algun@correo.dominio, algunha@correo.dominio, etc. -
  • -
  • Aplicar regra se o/a destinatario/a ...: - Isto modifica a coincidencia dos enderezos de correo. Se se introducen múltiples - enderezos, a configuración aplicaráselles a todos eles. Os seguintes exemplos están - baseados en calquera@correo.dominio introducidos no seguinte campo de - Regras OpenPGP. -
      -
    • É exactamente: con esta configuración, a regra só se dispara con - correos a calquera@correo.dominio (exacto, coincidencia sensíbel a maiúsculas) -
    • -
    • Contén: con esta configuración, calquera correo que conteña a cadea coincide - p.e son.calquera@correo.dominio ou calquera@correo.dominio.net -
    • -
    • Comeza por: con esta configuración, calquera correo que comece coa cadea - coincidirá, p.e. calquera@correo.dominio.net, - calquera@correo.dominio-nome.com. -
    • -
    • Remata con: con esta configuración, calquera enderezo que remate coa cadea - coincidirá, p.e. soncalquera@correo.dominio, nonson.calquera@correo.dominio. -
    • -
    - -
  • -
  • Continuar coa seguinte regra que coincida co enderezo
    - Activando esta función permitirase definir unha regra sen ter que especificar un - ID de chave no campo Usar as seguintes chaves OpenPGP:, de xeito que - o enderezo se utilizar para buscar unha chave no momento do envío. Tamén se - procesarán outras regras para o(s) mesmo(s) enderezos igualmente. -
  • -
  • Non comprobar outras regras para os enderezos que coinciden
    - Activando esta función párase o procesamento de outras regras para un enderezo que xa - coincidiu; p.e. o procesado de regras continúa co seguinte destinatario -
  • -
  • Usar as seguintes chaves OpenPGP:
    - Use o botón Seleccionar chave(s).. para seleccionar as chaves dos/as - destinatarios/as que utilizar para o cifrado. Como na anterior acción, non se - procesan máis regras para enderezos que xa coincidiron. -
  • -
  • Predeterminado para sinatura: - activa ou desactiva a sinatura de mensaxes. Isto afirmar ou anula o que especificou na ventá - de composición de mensaxe. Os valores son: -
      -
    • Nunca: desactiva a sintaura, aínda que estea activada na ventá de composición - da mensaxe (anula outros valores)
      -
    • -
    • Si, se está seleccionado na Composición da mensaxe: deixa a sinatura - tal e como se especificou na ventá de composición da mensaxe -
    • -
    • Sempre: activa a sinatura, aínda que non estea activada na ventá de composición da mensaxe -
    • -
    -
  • -
-
Esta configuració de sinatura aplícase para todas -as regras que coincidan. Se unha das regras desactiva a sinatura, a mensaxe non se -asina, a pesar do que especifiquen outras regras Sempre.
-
-
    -
  • Cifrado: activa ou desactiva o cifrado - de mensaxes. As configuracións permitidas e o seu significado é o mesmo que para - a sinatura.
  • -
  • PGP/MIME: activar ou desactivar o uso - da codificación de mensaxes PGP/MIME (RFC 3156). - Se PGP/MIME está desactivado, as mensaxes codifícanse usando "PGP en liña". Os valores - permitidos e os seus significados son os mesmos que para a sinatura. -
  • -
-

As regras son procesadas no orde mostrado na lista no Editor de regras OpenPGP. -Cando unha regras coincide con un destinatario e contén un ID de chave OpenPGP, ademais -de utilizar o ID de chave especificado, o destinatario non se utiliza para procesar máis regras. -

-
-

-Pode atopar máis información de axuda dispoñíbel na -páxina de configuracións por-destinatario/a de Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/gl/help/initError.html enigmail-2.2.4/lang/gl/help/initError.html --- enigmail-2.1.6+ds1/lang/gl/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -
-

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/gl/help/messenger.html enigmail-2.2.4/lang/gl/help/messenger.html --- enigmail-2.1.6+ds1/lang/gl/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - -Axuda de Enigmail: Lectura de mensaxes - - -

Axuda de Enigmail

- -

Usando Enigmail para ler o correo

-
    -
  • Botón Descifra na ventá principal do correo
    - Este botón pode utilizarse para diferentes propósitos: descifrar, verificar, - ou importar chaves públicas. Normalmente o descifrado/verificación sucede - de xeito automático, mais isto pode desactivarse a través das preferencias. - De todos xeitos, se isto falla, normalmente aparecerá unha mensaxe de erro na - liañ de estdo de Enigmail. Se fai clic no botón Descifrar, poderá ver unha - mensaxe de erro máis detallada, incluída a saída do comando GnuPG. -
  • -
  • Iconas do lápis e a chave na cabeceira da mensaxe
    - As iconas do lápis e a chave ca cabeceira da mensaxe indican que - a mensaxe que está a ler está asinada e/ou cifrada e que a sinatura é correcta, - p.e. a mensaxe non mudou desde que foi asinada. Se a mensaxe tivese mudado, a icona - do lápis mudaría nun láspis roto para indicar que a sinatura non é - correcta. Se fai clic co botón dereito sobre o lápis ou a chave aparecerá un menú - coas seguintes opcións: -
      -
    • Información de seguridade OpenPGP: permite ver o estado da saída de GnuPG - para esta mensaxe.
    • -
    • Copiar información de seguridade OpenPGP: copia o estado da saída de - GnuPG ao portarretallos; para pegala nunha mensaxe de resposta, etc.
    • -
    • Ver ID de foto OpenPGP: permite ver o ID de fotoda persoa que - enviou a mensaxe, se é que tiña unha foto integrada na súa chave pública - (Esta opción só estará activada se hai un ID de foto na chave.)
    • -
    • Información de seguridade S/MIME: permite ver a información sobre - seguridade S/MIME para a mensaxe.
    • -
    -

    Se non ten definido keyserver-options auto-key-retrieve no seu ficheiro - gpg.conf e quere ler unha mensaxe asinada ou cifrada verá unha icona con un - lápis na área da cabeceira con un símbolo de interrogación enriba, - a liña de estado de Enigmail na cabeceira mostrará a mensaxe Parte da mensaxe - asinada; prema na icona do lápis para máis detalles e a mensaxe no panel da - mensaxe mostrará todos os bloques de sinaturas e indicadores de bloques de mensaxe OpenPGP.

    -

    Tamén pode ver isto se ten definido keyserver-options auto-key-retrieve - no seu ficheiro gpg.conf e a chave OpenPGP non está dispoñíbel no seu - sevidor de chaves.

    -

    Premendo na icona do lapis e símbolo de interrogación aparecerá unha ventá - advertindo que a chave non está dispoñíbel no seu anel de chaves. Premendo en OK - aparecerá outra ventá con unha lista de servidores de chaves dos cales pode seleccionar - desde onde descargar a chave pública da persoa que lle enviou o correo.

    -

    Para configurar a lista de servidores de chaves que quere usar, vaia á pestana - Enigmail -> Preferencias -> Básico e introduza os enderezos dos servidores - de chaves na caixa Servidor(es) de chaves: separados por comas. - O primeiro servidor da lista será o que se utilice como servidor de chaves predeterminado.

    -
  • -
  • Abrir ficheiros adxuntos cifrados / importar chaves OpenPGP adxuntas
    - Anexos nomeados *.pgp, *.asc e *.gpg son recoñecidos como anexos que poden ser - manexados especialmente por Enigmail. Facendo clic co botón dereito neses ficheiros - adxuntos actívanse dous elementos de menú especiais no menú contextual: Descifrar - e abrir e Descifrar e gardar. Use estes dous elementos do menú se quere - que Enigmail descifre un anexo antes de abrilo ou gardalo. Se un anexo é recoñecido como - un ficheiro de chave OpenPGP, ofreceráselle importar as chaves no seu anel de chaves. -
  • -

-

-Pode consultar máis información na -páxina web de axuda de Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/gl/help/rulesEditor.html enigmail-2.2.4/lang/gl/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/gl/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - -Axuda de Enigmail: Editor de regras - - -

Axuda de Enigmail

- -

Usando o Editor de regras de Enigmail

-

No Editor de regras, pode especificar as opcións predeterminadas por -destinatario/a para activar cifrado, sinatura e PGP/MIME, e definir que -chave(s) OpenPGP utilizar. Cada regra consiste en 5 campos e está -representada por unha soa liña: -

-
    -
  • Correo: os campos de remite do(s) correo(s) - o Para:, Cc: e Cco:the To:, Cc: and Bcc: que teñen que coincidir. - A coincidencia funciona en subcadeas (Pódense consultar máis detalles - no diálogo de edición da regra) -
  • -
  • Chave(s) OpenPGP: unha lista de ID's de chaves - para utilizar cos enderezos destinatarios
  • -
  • Asinar: activa ou desactiva a - sinatura de mensaxes. Isto afirma ou anula o que especificou na ventá de composición - da mensaxe. Os valores son: -
      -
    • Nunca: desactiva a sinatura, aínda que estea activa na ventá de - composición da mensaxe (anular outros valores)
      -
    • -
    • Posíbel: deixa a sinatura tal e como se especificou na ventá de - composición da mensaxe.
    • -
    • Sempre: activa a sinatura, aínda que non estea activada na ventá de composición da mensaxe -
    • -
    -
  • -
-
Estas configuracións da sinatura aplícanse para -todas as regras que coincidan. Se algunha das regras desactiva a sinatura, a mensaxe -non se asinará, a pesar do que digan outras regras Sempre.
-
-
    -
  • Cifrar: activa ou desactiva o - cifrado de mensaxes. As configuracións permitidas e o seu significado é o - mesmo que para as sinaturas.
  • -
  • PGP/MIME: activa ou desactiva o - uso da codificación de mensaxes PGP/MIME (RFC 3156). - Se PGP/MIME está desactivado, as mensaxes codifícanse usando "PGP en-liña". - Os valores permitidos e o seu significado son os mesmos que para a sinatura. -
  • -
-

As regras procésanse no orde que se mostra na lista. Cando unha regra coincide -co/a destinatario/a e contén un ID de chave OpenPGP, ademais de usar o ID de -chave especificado, o/a destinatario/a non se terá en conta ao procesar máis regras.

-

Nota: O editor de regras aínda non está completo. É posíbel escribir -regras máis avanzadas editando directamente o ficheiro de regras (estas regras non -poderás ser editadas despois no editor de regras) Máis información -sobre como editar directamente o ficheiro está dispoñíbel na páxina web de Enigmail

-
-

-Pode atopar máis información de axuda na -páxina web de Axuda de Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/gl/help/sendingPrefs.html enigmail-2.2.4/lang/gl/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/gl/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/gl/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/hr/am-enigprefs.properties enigmail-2.2.4/lang/hr/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/hr/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Nizovi korišteni u Mozilla upravitelju računa\n\nOpenPGP sigurnost +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/hr/enigmail.dtd enigmail-2.2.4/lang/hr/enigmail.dtd --- enigmail-2.1.6+ds1/lang/hr/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' da bi odredili email adrese"> - - -' znakove da bi odredili email adrese za GnuPG. Onesposobite ako primatelji imaju stare Hushmail ključeve."> - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP sigurnost)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NAPOMENA: Generiranje ključeva može trajati nekoliko minuta. Ne izlazite iz aplikacije dok se ključevi generiraju. Aktivno pregledavanje interneta ili provođenje operacija koje su zahtjevne za disk prilikom generiranja ključeva će napuniti 'bazen nasumičnosti' i ubrzati proces. Bit će te obaviješteni kad je generiranje ključeva gotovo."> - @@ -296,491 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' nije važeće"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NAPOMENA: Generiranje ključa može potrajati nekoliko minuta. Ne izlazite iz aplikacije dok se ključ generira. Bit će te obaviješteni kad je deneriranje završeno."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/hr/enigmail.properties enigmail-2.2.4/lang/hr/enigmail.properties --- enigmail-2.1.6+ds1/lang/hr/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail upozorenje # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail greška enigPrompt=Enigmail prompt - -dlgYes=&Da dlgNo=&Ne dlgKeepSetting=Zapamti moj odgovor i ne pitaj me više dlgNoPrompt=Ne pokazuj mi ovaj okvir ponovno -dlg.button.delete=&Obriši dlg.button.cancel=&Otkaži dlg.button.close=&Zatvori dlg.button.continue=Nastavi -dlg.button.skip=&Preskoči -dlg.button.overwrite=&Prepiši -dlg.button.view=&Pregledaj -dlg.button.retry=&Pokušaj ponovno -dlg.button.ignore=&Ignoriraj -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nOvo upozorenje će se ponoviti još %S repeatSuffixSingular=put. repeatSuffixPlural=puta. noRepeat=\n\nOvo upozorenje se neće ponavljati dok ne nadogradite Enigmail. - -pgpNotSupported=Izgleda da koristite Enigmail zajedno s PGP 6.x\n\nNažalost, PGP 6.x ima niz problema koji spriječavaju Enigmail da radi ispravno. Zbog toga Enigmail ne podržava PGP 6.x više; molimo Vas da se prebacite na GnuPG (GPG) umjesto toga.\n\nAko Vam treba pomoć pri prebacivanju na GnuPG, provjerite dio Enigmail naslovne stranice na kojem se nalazi Pomoć. -initErr.howToFixIt=Da bi koristili Enigmail morate imati GnuPG. Ako još niste instalirali GnuPG, najjednostavniji način da to napravite je koristeći "Čarobnjak postavljanja" gumb niže. -initErr.setupWizard.button=&Čarobnjak postavljanja passphraseCleared=Lozinka je očišćena. cannotClearPassphrase=Koristite ne standardni alat (npr. gnome-keyring) za upravljanje lozinkama. Zbog toga čišćenje lozinke nije moguće iz Enigmail-a. -noPhotoAvailable=Slika nije dostupna -debugLog.title=Enigmail zapis o otklanjanju pogreške -error.photoPathNotReadable=Putanja '%S' slike nije čitljiva - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Ova nova verzija Enigmail-a ima značajne promjene u rukovanju postavki i opcija. Pokušali smo prenijeti stare postavke na ovu novu verziju, no ne možemo pokriti sve slučajeve automatski. Molimo Vas da provjerite nove postavke i opcije. -enigmailCommon.checkPreferences=Provjeri postavke... -preferences.defaultToPgpMime=Promjenili smo zadano enkodiranje poruka u Enigmail-u sa Inline-PGP-a u PGP/MIME. Preporučamo Vam da to zadržite kao zadano.\n\nAko i dalje želite koristiti Inline-PGP kao zadani, možete to napraviti u postavkama računaa, pod OpenPGP sigurnost. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Koristim Enigmail verziju %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Koristim %1$S izvršnu datoteku %2$S za enkripciju i dekripciju agentError=POGREŠKA: Pristup Enigmime usluzi nije uspio! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Pogreška u pristupanju Enigmail usluzi -onlyGPG=Generiranje ključeva radi jedino s GnuPG-om (ne s PGP-om)! - -keygenComplete=Generiranje ključa završeno! Identitet <%S> će biti korišten za potpisivanje. -revokeCertRecommended=Preporučamo stvaranje certifikata za opoziv za Vaš ključ. Ovaj certifikat se može iskoristiti za poništavanje Vašeg ključa u slučaju da se Vaš tajni ključ izgubi ili postane kompromitiran. Želite li stvoriti certifikat za opoziv sad? -keyMan.button.generateCert=&Generiraj certifikat -genCompleteNoSign=Generiranje ključa završeno! -genGoing=Generiranje ključa je već u tijeku! - -passNoMatch=Lozinke se ne podudaraju; molimo Vas da ih ponovno unesete -passCheckBox=Označite kvačicom kutiju ako ne određujete lozinku za ključ -passUserName=Molimo Vas da odredite korisničko ime za ovaj identitet -keygen.missingUserName=Nije određeno ime za odabranu državu/identitet. Molimo unesite vrijednost u polje "Vaše ime" u postavkama računama. -keygen.passCharProblem=Koristite posebne znakove u svojoj lozinci. Nažalost, ovo može prouzročiti probleme drugim aplikacijama. Preporučamo da odaberete lozinku koja se sastoji jedino od ovih znakova:\na-z A-Z 0-9 /.;:,!?(){}[]%* -passSpaceProblem=Zbog tehničkih razloga Vaša lozinka ne može započeti ili završiti s razmakom. -changePassFailed=Promjena lozinke nije uspjela. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Generiraj ključ -keyAbort=Prekini generiranje ključa? -keyMan.button.generateKeyAbort=&Prekini generiranje ključa -keyMan.button.generateKeyContinue=&Nastavi generiranje ključa -expiryTooLong=Ne možete stvoriti ključ koji ističe za više od 100 godina. -expiryTooLongShorter=Ne možete stvoriti ključ koji ističe za više od 90 godina. -expiryTooShort=Vaš ključ mora biti valjan za najmanje jedan dan. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Datum isteka nije mogao biti promjenjen - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail sigurnosne informacije\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Potencionalno PGP/MIME enkriptirana ili potpisana poruka; kliknite gumb Dekriptiraj za provjeru - -saveAttachmentHeader=Enigmail: Pohrani dekriptirani privitak -noTempDir=Nije pronađena privremena mapa u koju se piše\nMolimo Vas da postavite TEMP varijablu -attachmentPgpKey=Čini se da je privitak '%S' koji otvarate datoteka OpenPGP ključa.\n\nKliknte 'Uvezi' da bi uveli ključeve ili 'Pregledaj' da bi pregledali sadržaj datoteke u prozoru preglednika - -beginPgpPart=********* *POČNI ENKRIPTRANI ili POTPISANI DIO* ********* -endPgpPart=********** *ZAVRŠI ENKRIPTIRANI ili POTPISANI DIO* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Pronađeni višestruki blokovi poruke -- dekripcija/provjera prekinuta* - -decryptOkNoSig=Upozorenje!\n\nDekripcija je provedena uspješno, ali potpisa nije mogao biti provjeren točno -msgOvl.button.contAnyway=&Svejedno nastavi -signature.verifiedOK=Potpis za privitak %S je uspješno provjeren -signature.verifyFailed=Potpis za privitak %S nije moguće provjeriti -attachment.noMatchToSignature=Nije moguće usporediti privitak '%S' s potpisnom datotekom -attachment.noMatchFromSignature=Nije moguće usporediti potpisnu datoteku '%S' s privitkom -fixBrokenExchangeMsg.failed=Popravak poruke nije uspio. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Odaberite OpenPGP ključeve za umetanje keysToUse=Odabeirte OpenPGP ključ(eve) za uporabu za %S pubKey=Javni ključ za %S\n - -windowLocked=Prozor stvaranja poruke je zaključan; slanje otkazano -sendUnencrypted=Inicijalizacija Enigmail-a nije uspjela.\nPoslati neenkriptiranu poruku? -composeSpecifyEmail=Molimo Vas da odredite svoju primarnu email adresu koja će biti korištena pri odabiru potpisnog ključa za odlazne poruke.\nAko ostavite prazno, OD adresa poruke će biti iskorištena za odabir potpisnog ključa. -sendingHiddenRcpt=Ova poruka ima BCC (slijepe kopije - skrivene) primatelje. Ukoliko je ova poruka enkriptirana moguće je sakriti BCC primatelje ali korisnici nekih proizvoda (npr. PGP Corp.) neće biti u mogućnosti dekriptirati poruku. S tim na umu, savjetujemo Vam da izbjegavate BCC email-ove kad radite s enkriptiranim porukama. -sendWithHiddenBcc=Sakrij BCC primatelje -sendWithShownBcc=Enkriptiraj normalno -sendingNews=Operacija Enkriptiranog slanja prekinuta.\n\nOva poruka ne može biti dekriptirana jer postoje grupe primatelja. Molimo Vas da ponovno pošaljete poruku bez enkripcije. -sendToNewsWarning=Upozorenje: poslati ćete neenkriptirani email grupi primatelja.\n\nOvo se ne potiče jer ima smisla jedino ako svi članovi grupe mogu dekriptirati poruku, odnosno poruka mora biti enkriptirana s ključevima svih članova grupe. Pošaljite ovu poruku jedino ako znate točno što radite.\n\nNastaviti? -hasHTML=HTML mail upozorenje:\nOva poruka može sadržavati HTML, što bi moglo prouzročiti neuspjeh potpisivanja/enkripcije. Da bi se to izbjeglo, u budućnosti bi trebali pritisnuti SHIFT tipku kad klikćete na Stvori/Odgovori gumb tako da pošaljete potpisan email.\nAko potpisujete email pod zadano, trebali bi odznačiti 'Stvori poruku u HTML-u' tako da trajno onemogućite HTML mail za ovaj račun. -strippingHTML=Poruka sadrži HTML informacije formatiranja koje će biti izgubljene prilikom pretvorbe u običan tekst za potpisivanje/enkripciju. Želite li nastaviti? -msgCompose.button.sendAnyway=&Pošalji poruku svejedno -attachWarning=Privitci ovoj poruci nisu lokalni, ne mogu biti enkriptirani. Da bi enkriptirali te privitke prvo ih pohranite kao lokalne datoteke, a zatim dodajte kao privitke. Želite li svejedno poslati poruku? quotedPrintableWarn=Omogućili ste enkodiranje 'citirano - pogodno za ispis' za poruke koje se šalju. Ovo može rezultirati netočnom dekripcijom i/ili provjerom Vaše poruke.\nŽelite li isključiti slanje takvih poruka sad? -minimalLineWrapping=Postavili ste omatanje linije na %S znakova. Za ispravnu enkripciju i/ili potpisivanje, ova vrijednost mora biti najmanje 68.\nŽelite li promjeniti omatanje linije na 68 znakova sad? warning=Upozorenje -signIconClicked=Ručno ste modificirali potpisivanje, stoga, dok stvarate ovu poruku, (de)aktiviranje potpisivanja ne ovisi više o (de)aktiviranju enkripcije. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Pogreška prilikom spremanja predloška -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Interna pogreška: obećana enkripcija onemogućena -msgCompose.internalError=Došlo je do interne pogreške. - -msgCompose.toolbarTxt.signAndEncrypt=Ova poruka će biti potpisana i enkriptirana -msgCompose.toolbarTxt.signOnly=Ova poruka će biti potpisana -msgCompose.toolbarTxt.encryptOnly=Ova poruka će biti enkriptirana -msgCompose.toolbarTxt.noEncryption=Ova poruka će biti nepotpisana i neenkriptirana -msgCompose.toolbarTxt.disabled=Enigmail je onemogućen za odabrani identitet -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=Detalji... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Operacija slanja prekinuta.\n\n - -# details: keyNotTrusted=Nema dovoljno povjerenja za ključ '%S' -keyNotFound=Ključ '%S' nije pronađen -keyRevoked=Ključ '%S' opozvan -keyExpired=Ključ '%S' je istekao - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=POTPISANO -statEncrypted=ENKRIPTIRANO -statPlain=NEPOTPISANO i NEENKRIPTIRANO - -offlineSave=Pohrani %1$S poruku za %2$S u mapi neposlanih poruka? - -onlineSend=Pošalji %1$S poruku %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Pošalji neenkriptiranu poruku -recipientsSelectionHdr=Odaberi primatelje za enkripciju - -configureNow=Još niste postavili Enigmail sigurnost za odabrani identitet. Želite li to učiniti sad? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Enkriptiraj poruku (automatski) -encryptMessageNorm=Enkriptiraj poruku -signMessageAuto=Potpiši poruku (automatski) -signMessageNorm=Potpiši poruku - -encryptOff=Enkripcija: ISKLJUČENA -encryptOnWithReason=Enkripcija: UKLJUČENA (%S) -encryptOffWithReason=Enkripcija: ISKLJUČENA (%S) -encryptOn=Enkripcija: UKLJUČENA -signOn=Potpisivanje: UKLJUČENO -signOff=Potpisivanje: ISKLJUČENO -signOnWithReason=Potpisivanje: UKLJUČENO (%S) -signOffWithReason=Potpisivanje: ISKLJUČENO (%S) -reasonEnabledByDefault=omogućeno pod zadano -reasonManuallyForced=prisiljeno ručno -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=prisiljeno po auto enkripciji -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=zbog enkripcijskog načina rada - -# should not be used anymore: -encryptYes=Poruka će biti enkriptirana -encryptNo=Poruka neće biti enkriptirana - -# should not be used anymore: -signYes=Poruka će biti potpisana -signNo=Poruka neće biti potpisana - - -# PGP/MIME status: -pgpmimeNormal=Protokol: PGP/MIME -inlinePGPNormal=Protokol: Inline PGP -# smimeNormal=Protocol: S/MIME -pgpmimeAuto=Protokol: PGP/MIME (automatski) -inlinePGPAuto=Protokol: Inline PGP (automatski) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME će biti korišten -pgpmimeNo=Inline PGP će biti korišten - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Otkrivena konfliktna pravila po primatelju\n%S\n\nPošalji poruku s ovim postavkama? -msgCompose.button.configure=&Postavi -msgCompose.button.send=&Pošalji poruku -msgCompose.button.save=&Spremi poruku - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Potreban je javni ključ %S da bi verificirali potpis -keyUsed=Javni ključ %S korišten za provjeru potpisa -clickDecrypt=; kliknite Dekriptiraj gumb -clickDecryptRetry=; kliknite Dekriptiraj gumb da bi pokušali ponovno -clickDetailsButton=; kliknite na 'Detalji' za više informacija -clickImportButton=; kliknite na 'Uvezi ključ' da bi preuzeli ključ -keyTypeUnsupported=; vrsta ključa nije podržana od strane Vaše verzije GnuPG-a -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Dekriptiraj -msgPart=Dio poruke %S -msgSigned=potpisan -msgSignedUnkownKey=potpisano nepoznatim ključem -msgEncrypted=enkriptiran -msgSignedAndEnc=potpisan i enkriptiran - unverifiedSig=Neverificiran potpis -incompleteDecrypt=Dekripcija nepotpuna -needKey=Greška - nije pronađen odgovarajući privatni/tajni ključ za dekripciju poruke -failedDecrypt=Greška - dekripcija nije uspjela badPhrase=Greška - loša lozinka # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Greška - dekripcija/verifikacija nije uspjela -viewInfo=; Pogledajte > Informacije o sigurnosti poruke za detalje -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Dekriptiraj poruku -decryptedMsgWithFormatError=Dekriptirana poruka (obnovljen potrgani PGP email format vjerovatno uzrokovan starim Exchange poslužitelje, tako da bi rezultat mogao biti nesavršen za čitanje) - -usedAlgorithms=Korišteni algoritmi: %S i %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Lociraj GnuPG program -invalidGpgPath=GnuPG ne može biti izvršen s danom putanjom. Enigmail je deaktiviran dok ne promjenite putanju za GnuPG ili ne pokrenete ponovno aplikaciju. -warningsAreReset=Sva upozorenja su ponovno postavljena. -prefs.gpgFound=GnuPG je pronađen u %S -prefs.gpgNotFound=Nije pronađen GnuPG -prefs.warnAskNever=Upozorenje: aktiviranje ove opcije će rezultirati neenkriptiranim email-ovima bez daljnjih informacija u slučaju nedostatka ključa za nekog od primatelja -- Enigmail Vas neće obavijestiti ako se to dogodi! -prefs.warnIdleTimeForUnknownAgent=Nije moguće spajanje s gpg-agent. Možda Vaš sustav koristi specijalizirani alat za upravljanje lozinkama (npr. gnome-keyring, seahorse-agent, KDE wallet manager...). Nažalost Enigmail ne može kontrolirati timeout lozinki za alat koji koristite. Zbog toga su pripadajuće postavke timeout-a u Enigmailu zanemarene. -prefEnigmail.oneKeyserverOnly=Pogreška - možete odrediti samo jedan poslužitelj ključeva za automatsko preuzimanje OpenPGP ključeva koji nedostaju. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Molimo unesite administratorski PIN Vaše SmartCard -enterCardPin=Molimo unesite svoj SmartCard PIN - -notInit=Pogreška - Enigmail usluga još nije inicijalizirana badCommand=Pogreška - naredba enkripcije nije uspjela cmdLine=naredbena linija i izlaz: -notRequired=Pogreška - enkripcija nije zahtjevana -notComplete=Pogreška - generiranje ključa još nije završeno -invalidEmail=Pogreška - pogrešna email adresa ili adrese noPassphrase=Pogreška - nije dana lozinka noPGPblock=Pogreška - nije pronađen valjan oklopljeni OpenPGP blok podataka -unverifiedReply=Uvučeni dio poruke (odgovor) je vjerovatno modificiran -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Pogreška - potpisi se ne slažu -# cantImport=Error importing public key\n\n -doImportOne=Uvezi %1$S (%2$S)? -doImportMultiple=Uvezi sljedeće ključeve?\n\n%S -previewFailed=Ne mogu pročitati datoteku javnog ključa. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=SmartCard %1$S pronađena u Vašem čitaču ne može biti korištena za obradu poruke.\nMolimo umetnite svoju SmartCard %S i ponovite operaciju. sc.insertCard=Operacija zahtjeva Vašu SmartCard %S.\nMolimo umetnite zahtjevanu SmartCard i ponovite operaciju. sc.removeCard=Operacija ne zahtjeva SmartCard u čitaču.\nMolimo uklonite svoju SmartCard i ponovite operaciju. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Vašoj SmartCard se ne može pristupiti\nMolimo spojite Vaš SmartCard čitač, umetnite karticu i ponovite operaciju. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Molimo odaberite ispravan ključ u OpenPGP odjelu u Postavkama računa. missingPassphrase=Nedostaje lozinka errorHandling.gpgAgentInvalid=Vaš sustav koristi verziju gpg-agent koja ne odgovara Vašoj GnuPG verziji. errorHandling.gpgAgentError=GnuPG je prijavio pogrešku u komunikaciji s gpg-agent -om (komponenta GnuPG-a). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG ne može poslati upit za Vašu lozinku putem unosa pin-a. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Ovo je greška sustava ili konfiguracije koja onemogućava da Enigmail radi ispravno i ne može biti popravljena automatski.\n\nPreporučamo da se posavjetujete s našom stranicom https://enigmail.net/faq. - gpgNotFound=Nije pronađen GnuPG program '%S'.\nBudite sigurni da ste postavili točnu putanju do izvršne datoteke u Enigmail postavkama. gpgNotInPath=Nije pronađena GnuPG izvršna datoteka na PUTANJI.\nBudite sigurni da ste postavili točnu putanju do izvršne datoteke u Enigmail postavkama. enigmailNotAvailable=Enigmail jezgrena usluga nije dostupna - -prefGood=Dobar potpis od %S -prefBad=LOŠ potpis od %S - failCancel=Pogreška - primanje ključa otkazano od strane korisnika failKeyExtract=Pogreška - naredba ekstrakcije ključa nije uspjela -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Pogreška - Prvi OpenPGP blok nije blok javnog ključa importKeyConfirm=Uvezi javni ključ(eve) ugrađen(e) u poruku? -failKeyImport=Pogreška - uvoz ključa nije uspio fileWriteFailed=Pisanje u datoteku %S nije uspjelo - importKey=Uvezi javni ključ %S sa poslužitelja ključeva: uploadKey=Pošalji javni ključ %S na poslužitelj ključeva: keyId=ID ključa -keyAndSigDate=ID ključa: 0x%1$S / potpisan: %2$S -keyFpr=Otisak prsta ključa: %S -noEmailProvided=Niste dali email adresu! -keyAlreadySigned=Ključ je već potpisan, ne možete ga potpisati dva puta. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=istekao %S createdHeader=Stvoren atLeastOneKey=Nije odabran ključ! Morate odabrati najmanje jedan ključ da bi prihvatili ovaj dijalog fewerKeysThanRecipients=Odabrali ste manji broj ključeva nego primatelja. Jeste li sigurni da je popis ključeva za enkripciju potpun? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Odabei tajni OpenPGP ključ za potpisivanje poruka userSel.problemNoKey=Nema važećih ključeva userSel.problemMultipleKeys=Višestruki ključevi -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Pošalji kasnije - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=prvu second=drugu - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Odaberite OpenPGP ključ za enkripciju -identityName=Identitet: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Aktivirali ste enkripciju ali niste odabrali ključ. Kako bi enkriptirali email-ove poslane prema %1$S morate odrediti jedan ili više važećih ključeva iz Vašeg popisa ključeva. Želite li onemogućiti enkripciju za %2$S? -noKeyToUse=(ništa - bez enkripcije) -noEmptyRule=Pravilo ne smije biti prazno! Molimo Vas postavite email adresu u polju Pravila. -invalidAddress=Jedna ili više email adresa koje ste unijeli nisu valjane. Ne bi trebali postavljati imena primatelja, samo email adrese. Npr:\nNeispravno: Neko Ime \nIspravno: neko.ime@adresa.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Nikad always=Uvijek possible=Moguće -deleteRule=Stvarno obrisati odabrano pravilo? -nextRcpt=(Sljedeći primatelj) -negateRule=Ne -addKeyToRule=Dodaj ključ %1$S (%2$S) pravilu po primatelju - -# Strings used in enigmailSearchKey.js -needOnline=Funkcija koju ste odabrali nije dostupna u izvanmrežnom načinu rada. Molimo Vas da se povežete s mrežom i probate opet. -noKeyserverConn=Spajanje na poslužitelj ključeva %S nije uspjelo. -internalError=Dogodila se interna pogreška. Ključevi se nisu mogli preuzeti ili uvesti. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Postavljanje povjerenja valsnika nije uspjelo - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Potpisivanje ključa nije uspjelo -alreadySigned.label=Napomena: ključ %S je već potpisan s odabranim tajnim ključem. -alreadySignedexportable.label=Napomena: ključ %S je već potpisan za izvoz sa odabranim privatnim ključem. Lokalni potpis nema smisla. -partlySigned.label=Napomena: neki ID-evi korisnika ključa %S su već potpisani s odabranim tajnim ključem. -noTrustedOwnKeys=Nije pronađen kvalificirani ključ za potpisivanje! Trebate barem jedan privatni ključ kojem se potpuno vjeruje kako bi potpisivali ključeve. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Učitavam ključeve, pričekajte... keyValid.unknown=nepoznat keyValid.invalid=neisprava keyValid.disabled=onemogućen keyValid.revoked=opozvan keyValid.expired=istekao keyValid.noSubkey=nema valjanog podključa - -keyTrust.untrusted=nesiguran +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=marginalan keyTrust.full=siguran keyTrust.ultimate=ultimativan keyTrust.group=(grupa) -keyType.public=javni -keyType.publicAndSec=javni/tajni -keyMan.enableKey=Omogući ključ -keyMan.disableKey=Onemogući ključ userAtt.photo=Koristi atribut (JPEG slike) - -asciiArmorFile=ASCII oklopljene datoteke (*.asc) importKeyFile=Uvezi OpenPGP datoteku ključa -gnupgFile=GnuPG datoteke -saveRevokeCertAs=Stvori i pohrani certifikat za opoziv -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Certifikat za opoziv nije mogao biti stvoren. - -addUidOK=Korisnički ID uspješno dodan -addUidFailed=Dodavanje korisničkog ID-a nije uspjelo -noKeySelected=Trebali bi odabrati barem jedan ključ kako bi proveli odabranu operaciju -exportToFile=Izvezi javni ključ u datoteku -exportKeypairToFile=Izvezi tajni i javni ključ u datoteku -exportSecretKey=Želite li uključiti tajni ključ u pohranjenu OpenPGP datoteku ključa? -saveKeysOK=Ključevi uspješno pohranjeni -saveKeysFailed=Pohrana ključeva nije uspjela -importKeysFailed=Uvoz ključeva nije uspio -enableKeyFailed=Omogućivanje/onemogućivanje ključeva nije uspjelo -specificPubKeyFilename=%1$S (0x%2$S) javni -specificPubSecKeyFilename=%1$S (0x%2$S) javni-tajni -defaultPubKeyFilename=Izvezeni-javni-ključevi -defaultPubSecKeyFilename=Izvezeni-javni-i-tajni-ključevi - -sendKeysOk=Ključ(evi) poslan(i) uspješno -sendKeysFailed=Slanje ključeva nije uspjelo -receiveKeysOk=Ključ(evi) uspješno ažuriran(i) -receiveKeysFailed=Preuzimanje ključeva nije uspjelo -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Želite li uvesti neke ključeve iz međuspremnika? -importFromUrl=Preuzmite javni ključ sa ovog URL-a: -copyToClipbrdFailed=Kopiranje odabranih ključeva u međuspremnik nije moguće. -copyToClipbrdOK=Ključ(evi) kopiran(i) u međuspremnik - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=UPOZORENJE: Pokušavate obrisati tajne ključeve!\nAko obrišete tajni ključ, nećete više moći dekriptirati poruke enkriptirane za taj ključ.\n\nŽelite li uistinu obrisati odabrane ključeve, tajne i javne? -deletePubKey=Želite li obrisati javni ključ\n'%S'? -deleteSelectedPubKey=Želite li obrisati javne ključeve? -deleteKeyFailed=Ključ se ne može obrisati. revokeKeyQuestion=Opozvati će te ključ '%S'.\n\nViše nećete biti u mogućnosti potpisivati ovim ključem, i jednom distribuirano, ostali neće moći dekriptirati s tim ključem. Još uvjek možete koristit ključ za dekripciju starih poruka.\n\nŽelite li nastaviti? -revokeKeyOk=Ključ je opozvan. Ako je Vaš ključ dostupan na poslužitelju ključeva, preporuča se ponovno postavljanje tako da drugi mogu vidjeti opoziv. -revokeKeyFailed=Ključ se ne može opozvati. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Niste odabrali nijedan ključ. Želite li osvježiti SVE ključeve? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Upozorenje: ovisno o broju ključeva i brzini veze, osvježenje svih ključeva može biti dugotrajan proces! -downloadContactsKeys.warn=Upozorenje: ovisno o broju kontakta i brzini veze, preuzimanje ključeva može biti dugotrajan proces! -downloadContactsKeys.importFrom=Uvesti kontakte iz adresara '%S'? -keyMan.button.exportSecKey=Izvezi &Tajne ključeve -keyMan.button.exportPubKey=Izvezi samo &Javne ključeve keyMan.button.import=&Uvezi -keyMan.button.refreshAll=&Osvježi sve ključeve keyMan.button.revokeKey=&Opozovi ključ - -keylist.noOtherUids=Nema drugih identiteta -keylist.hasOtherUids=Također poznat kao -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Odaberite sliku za dodavanje -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Izgleda da odabrana datoteka nije JPEG datoteka. Molimo Vas da odaberete drugu datoteku. -keyMan.addphoto.failed=Slika se ne može dodati. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Mijenjanje primarnog korisničkog ID-a nije uspjelo -changePrimUidOK=Primarni korisnički ID uspješno promijenjen -revokeUidFailed=Opoziv korisničkog ID-a %S nije uspio -revokeUidOK=Korisnički ID %S je uspješno opozvan. Ako je Vaš ključ dostupan na poslužitelju ključeva, preporuča se ponovno postavljanje, tako da ostali mogu vidjeti opoziv. -revokeUidQuestion=Želite li stvarno opozvati korisnički ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=USPJEH! Ključevi uvedeni -importInfoBits=Bitovi -importInfoCreated=Stvoreno -importInfoFpr=Otisak prsta -importInfoDetails=(Detalji) -importInfoNoKeys=Nema uvedenih ključeva. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=javni ključ -keyTypePrimary=primarni ključ -keyTypeSubkey=podključ -keyTypePair=par ključeva -keyExpiryNever=nikad keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Enkriptiraj -keyUsageSign=Potpiši -keyUsageCertify=Certificiraj -keyUsageAuthentication=Autentikacija -keyDoesNotExpire=Ključ ne ističe - -# Strings in enigmailGenCardKey.xul -keygen.started=Molimo pričekajte dok se ključ generira... -keygen.completed=Ključ generiran. Novi ID ključa je: 0x%S -keygen.keyBackup=Sigurnosna kopija ključa je %S -keygen.passRequired=Molimo Vas da odredite lozinku ako želite stvoriti sigurnosnu kopiju Vašeg ključa izvan SmartCard-a. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Promjena PIN-a nije uspjela - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Osvježujem ključeve, pričekajte... -keyserverProgress.uploading=Postavljam ključeve, pričekajte... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Osvježi ključeve -keyserverTitle.uploading=Postavljanje ključa -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Datoteka koju ste odredili nije izvršna datoteka GnuPG-a. Molimo odredite drugu datoteku. -setupWizard.installFailed=Izgleda da instalacija nije uspjela. Ili ponovno pokušajte ili instalirajte GnuPG ručno te ga locirajte koristeći Pregledaj gumb. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Odredite datoteku sigurnosne kopije iz koje će se učitavati -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Datoteka GnuPG postavki već postoji. Želite li ju prepisati s onom iz stare instalacije? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Dogodila se pogreška pri preuzimanju GnuPG-a. Molimo provjerite konzolni zapis za daljnje detalje. -installGnuPG.installFailed=Dogodila se pogreška prilikom instalacije GnuPG-a. Provjerite konzolni zapis za daljnje detalje. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Morate ispuniti ime i email adresu. -addUidDlg.nameMinLengthError=Ime mora imati minimalno 5 znakova -addUidDlg.invalidEmailError=Morate odrediti valjanu email adresu - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP SmartCard podržava jedino ASCII znakove u imenu/prezimenu. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Sigurnosni certifikat pružen od strane web usluge nije valjan. errorType.SecurityProtocol=Sigurnosni protokol korišten od strane web usluge je nepoznat. errorType.Network=Dogodila se mrežna pogreška. - -# filter stuff -filter.folderRequired=Morate odabrati ciljnu mapu. -filter.decryptMove.label=Dekriptiraj trajno (Enigmail) -filter.decryptCopy.label=Kreiraj dekriptiranu kopiju (Enigmail) -filter.decryptMove.warnExperimental=Upozorenje - filter akcija "Dekriptiraj trajno" može dovesti do uništenih poruka.\n\nSnažno preporučamo da prvo probate filter "Kreiraj dekriptiranu kopiju", pozorno testirate rezultate, te počnete koristit ovaj filter tek kad ste zadovoljni rezultatima. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Pohrani datoteku zapisa - -# strings in gpg.jsm -unknownSigningAlg=Nepoznat algoritam potpisivanja (ID: %S) -unknownHashAlg=Nepoznat kriptografski hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Slika keyRing.pubKeyRevoked=Ključ %1$S (ID ključa %2$S) je opozvan. keyRing.pubKeyExpired=Ključ %1$S (ID ključa %2$S) je istekao. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Svi enkripcijski podključevi ključa %1$S (ID ključa %2$S) su istekli. keyRing.noSecretKey=Izgleda da nemate tajni ključ za %1$S (ID ključa %2$S) na Vašem privjesku ključeva; ne možete koristiti taj ključ za potpisivanje. keyRing.encSubKeysUnusable=Svi enkripcijski podključevi ključa %1$S (ID ključa %2$S) su opozvani, istekli ili drugačije neiskoristivi. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Ne može se spremiti u datoteku '%S'. Molimo odredite drugu datoteku. dataExportError=Došlo je do greške prilikom izvoza Vaših podataka. -enigmailSettings=EnigmailPostavke -defaultBackupFileName=Enigmail-izvoz -specifyExportFile=Odredite ime za izvoz -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=O Enigmail-u # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/hr/help/compose.html enigmail-2.2.4/lang/hr/help/compose.html --- enigmail-2.1.6+ds1/lang/hr/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/editRcptRule.html enigmail-2.2.4/lang/hr/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/hr/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/help.html enigmail-2.2.4/lang/hr/help/help.html --- enigmail-2.1.6+ds1/lang/hr/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/initError.html enigmail-2.2.4/lang/hr/help/initError.html --- enigmail-2.1.6+ds1/lang/hr/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmime failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/messenger.html enigmail-2.2.4/lang/hr/help/messenger.html --- enigmail-2.1.6+ds1/lang/hr/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/rulesEditor.html enigmail-2.2.4/lang/hr/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/hr/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hr/help/sendingPrefs.html enigmail-2.2.4/lang/hr/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/hr/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hr/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/hu/am-enigprefs.properties enigmail-2.2.4/lang/hu/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/hu/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP biztonság +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/hu/enigmail.dtd enigmail-2.2.4/lang/hu/enigmail.dtd --- enigmail-2.1.6+ds1/lang/hu/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -” karaktereket az e-mail címek megadásához"> - - -” karaktereket az e-mail címek megadásához a GnuPG számára. Tiltsa le ezt a beállítást, ha régi Hushmail kulcsokat használ."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -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."> - @@ -296,495 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -” formátum helytelen."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MEGJEGYZÉS: A kulcskészítés több percet is igénybe vehet. Ne lépjen ki az alkalmazásból a kulcskészítés alatt. A kulcspár elkészültekor egy tájékoztató ablak fog megjelenni a képernyőn."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/hu/enigmail.properties enigmail-2.2.4/lang/hu/enigmail.properties --- enigmail-2.1.6+ds1/lang/hu/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail figyelmeztetés enigConfirm=Enigmail megerősítés enigInfo=Enigmail információ -enigError=Enigmail hiba enigPrompt=Enigmail kérdés - -dlgYes=&Igen dlgNo=&Nem dlgKeepSetting=Emlékezzen a válaszaimra, és ne kérdezze meg újra dlgNoPrompt=Ne mutassa újra ezt az ablakot -dlg.button.delete=&Törlés dlg.button.cancel=&Mégse dlg.button.close=&Bezárás dlg.button.continue=Foly&tatás -dlg.button.skip=&Kihagyás -dlg.button.overwrite=&Felülírás -dlg.button.view=&Megtekintés -dlg.button.retry=Új&ra -dlg.button.ignore=&Mellőzés -dlg.button.install=&Telepítés dlg.button.ok=&OK - repeatPrefix=\n\nAz értesítés ismétlődik még %S repeatSuffixSingular=alkalommal. repeatSuffixPlural=alkalommal. noRepeat=\n\nEz az értesítés nem ismétlődik, amíg nem frissíti az Enigmail programot. - -pgpNotSupported=Úgy tűnik, hogy az Enigmail a PGP 6.x rendszerrel dolgozik együtt.\n\nSajnos a PGP 6.x számos esetben akadályozza az Enigmail helyes működését. Emiatt az Enigmail nem támogatja többé a PGP 6.x rendszert. Használja inkább a GnuPG (GPG) csomagot.\n\nHa szüksége van segítségre a GPG-re történő átálláshoz, nézze meg az Enigmail honlapján a Help szakaszt. -initErr.howToFixIt=Az Enigmail használatához szükség van a GnuPG programra. Ha még nem telepítette a GnuPG programot, akkor a legegyszerűbben a „Beállítás Tündér” gombra kattintva teheti meg. -initErr.setupWizard.button=Beállítá&s Tündér passphraseCleared=A jelmondat törölve. cannotClearPassphrase=A jelmondatok kezeléséhez a nem szabványos programot (például: gnome-keyring)használja, ezért a kulcstároló ürítése nem lehetséges az Enigmail programban. -noPhotoAvailable=Nem érhető el fénykép -debugLog.title=Enigmail hibanapló -error.photoPathNotReadable=A(z) „%S” fénykép elérési útja nem olvasható. - -generalError=Error: %S - -# 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. 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. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=A használatban levő Enigmail verziószáma: %S -enigmailPepVersion=Enigmail/p≡p verzió: %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 Enigmail alapszolgáltatás elérése. - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -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”. -revokeCertRecommended=Erősen ajánljuk, hogy készítsen visszavonási tanúsítványt a kulcsához. Ez a tanúsítvány használható a kulcs érvénytelenítéséhez abban az esetben, ha a titkos kulcs elveszik vagy megsérül. Szeretné most létrehozni a visszavonási tanúsítványt? -keyMan.button.generateCert=&Tanúsítvány létrehozása -genCompleteNoSign=A kulcs elkészült! -genGoing=A kulcs készítése már folyamatban. - -passNoMatch=A megadott jelmondatok nem egyeznek, adja meg újra -passCheckBox=Jelölje be a négyzetet, ha nem ad meg a kulcshoz jelmondatot -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 jelmondat 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 kulcsokat „%S” részére? -keyMan.button.generateKey=&Kulcs létrehozása -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. -expiryTooLongShorter=Nem hozhat létre 90 évnél később lejáró kulcsot. -expiryTooShort=A kulcsnak legalább 1 napig érvényesnek kell lennie. -keyGenFailed=A kulcs létrehozása nem sikerült. Ellenőrizze az Enigmail konzolban a részleteket (Enigmail menü → Hibakeresési beállítások). -setKeyExpirationDateFailed=A lejárati idő nem változtatható meg - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail biztonsági adatok\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Az üzenet mellékletei nem lettek aláírva vagy titkosítva*\r\n\r\n -possiblyPgpMime=Lehetséges, hogy az üzenet PGP/MIME-mal titkosított vagy aláírt. Kattintson a „Visszafejtés” gombra az ellenőrzéshez. - -saveAttachmentHeader=Enigmail: Visszafejtett melléklet mentése -noTempDir=Nincs ideiglenes könyvtár a mentéshez.\nÁllítsa be a „TEMP” környezeti változó értékét. -attachmentPgpKey=A megnyitott melléklet („%S”) egy OpenPGP-kulcsfájl.\n\nVálassza az „Importálás” gombot a kulcs rögzítéséhez, vagy a „Megtekintés” gombot a fájl tartalmának böngészőablakban történő megtekintéséhez. - -beginPgpPart=********* *A TITKOSÍTOTT vagy ALÁÍRT TARTALOM KEZDETE* ********* -endPgpPart=********** *A TITKOSÍTOTT vagy ALÁÍRT TARTALOM VÉGE* *********** -notePartEncrypted=Enigmail: *A levél ezen része NINCS aláírva vagy titkosítva* -noteCutMessage=Enigmail: *Az üzenetben több blokk szerepel -- visszafejtés és ellenőrzés megszakítva* - -decryptOkNoSig=Figyelmeztetés!\n\nA visszafejtés sikerült, de az aláírást nem lehetett megfelelően ellenőrizni. -msgOvl.button.contAnyway=&Folytatás mindenképp -signature.verifiedOK=A(z) „%S” melléklet aláírása sikeresen ellenőrizve lett -signature.verifyFailed=A(z) „%S” melléklet aláírása nem ellenőrizhető -attachment.noMatchToSignature=A(z) „%S” melléklet aláírása nem jó -attachment.noMatchFromSignature=A(z) „%S” aláírásfájlhoz nem található melléklet -fixBrokenExchangeMsg.failed=Az üzenet megjavítása nem sikerült. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -wksConfirmSuccess=Jóváhagyó üzenet elküldve. -wksConfirmFailure=Jóváhagyó üzenet elküldése nem sikerült. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Válasszon beszúrandó OpenPGP-kulcsokat keysToUse=OpenPGP-kulcsok választása %S számára pubKey=%S nyilvános kulcsa\n - -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 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. -sendToNewsWarning=FIGYELMEZTETÉS: Titkosított üzenetet szeretett volna elküldeni egy hírcsoportnak.\n\nEz lehet, hogy nem helyes cselekedet, mert csak akkor elfogadható, ha a hírcsoport összes tagja vissza tudja fejteni az üzenetet. Például az üzenet a hírcsoport összes tagjának nyilvános kulcsával kerül titkosításra. Csak akkor küldje el ezt az üzenetet, ha valóban tudja, hogy mit csinál.\n\nKívánja folytatni? -hasHTML=HTML-levél figyelmeztetés:\nAz üzenet tartalmazhat HTML tartalmat, ami megakadályozhatja az aláírást, illetve a titkosítást. A jövőben ennek elkerülése végett használja a SHIFT billentyűt, amikor az Új üzenet/Válasz/Továbbítás gombokra kattint, hogy a küldéskor egyszerű levél legyen.\nHa a levél automatikus aláírása használatban van, be kell állítani a postafióknál, hogy a „Levelek írása HTML formátumban” jelölőnégyzet ki legyen kapcsolva. -strippingHTML=Az üzenet HTML formázásokra vonatkozó információkat tartalmaz, ami törlődik az egyszerű szöveggé történő átalakításkor, amire az aláíráskor/titkosításkor kerül sor. Szeretné folytatni? -msgCompose.button.sendAnyway=Ü&zenet küldése -attachWarning=A levélhez csatolt állomány nem helyi, ezért nem lehet titkosítani. A melléklet titkosításához előbb tárolja le az állományt a saját gépére, majd ez után csatolja a levélhez. Folytatni kívánja a figyelmeztetés figyelmen kívül hagyásával? quotedPrintableWarn=Engedélyezte a „quoted-printable” kódolást a levélküldéshez. Ez a levele téves visszafejtését, illetve ellenőrzését okozhatja.\nSzeretné kikapcsolni a „quoted-printable” alapú üzenetküldést most? -minimalLineWrapping=Beállította a sortördelést %S karakterre. A helyes titkosításhoz, illetve aláíráshoz ennek az értéknek legalább 68-nak kell lennie.\nSzeretné átállítani a sortördelést 68 karakterre most? warning=Figyelem -signIconClicked=Manuálisan módosította a postafiók Enigmail beállítását! Amennyiben folytatja a levél írását, úgy a postafiókhoz beállított Enigmail funkció (titkosítás, aláírás) érvényét veszti. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Hiba lépett fel a piszkozat mentése közben -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Belső hiba: az ígért titkosítási támogatás le van tiltva -msgCompose.internalError=Belső hiba történt. - -msgCompose.toolbarTxt.signAndEncrypt=Ez az üzenet alá lesz írva és titkosítva lesz -msgCompose.toolbarTxt.signOnly=Ez az üzenet alá lesz írva -msgCompose.toolbarTxt.encryptOnly=Ez az üzenet titkosítva lesz -msgCompose.toolbarTxt.noEncryption=Ez az üzenet aláírás nélküli és titkosítatlan lesz -msgCompose.toolbarTxt.disabled=Az Enigmail le van tiltva a kijelölt postafiókhoz -msgCompose.protectSubject.tooltip=Üzenet tárgyának védelme -msgCompose.noSubjectProtection.tooltip=Ne védje az üzenet tárgyát -msgCompose.protectSubject.dialogTitle=Be kívánja kapcsolni az üzenet tárgyának védelmét? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -msgCompose.protectSubject.yesButton=&Tárgy védelme -msgCompose.protectSubject.noButton=Tárgy védelmének &kikapcsolása - -msgCompose.detailsButton.label=Részletek… -msgCompose.detailsButton.accessKey=R - -msgCompose.pepSendUnknown=Ismeretlen -msgCompose.pepSendUnsecure=Nem biztonságos -msgCompose.pepSendSecure=Biztonságos -msgCompose.pepSendTrusted=Biztonságos és megbízható - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Küldés művelet megszakítva.\n\n - -# details: keyNotTrusted=Nem eléggé megbízható kulcs: „%S” -keyNotFound=Nem található a kulcs: „%S” -keyRevoked=A(z) „%S” kulcs vissza lett vonva -keyExpired=A(z) „%S” kulcs lejárt - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=ALÁÍRT -statEncrypted=TITKOSÍTOTT -statPlain=NINCS ALÁÍRVA ÉS TITKOSÍTATLAN - -offlineSave=Mentse a(z) %1$S üzenetet %2$S részére a Postázandó üzenetek közé? - -onlineSend=Küldje el a(z) %1$S üzenetet %2$S részére? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Titkosítatlan üzenet küldése -recipientsSelectionHdr=Válassza ki a címzetteket a titkosításhoz - -configureNow=Még nem állította be az Enigmail védelmet a kijelölt azonosítóhoz. Szeretné most megtenni? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Üzenet titkosítása (auto) -encryptMessageNorm=Üzenet titkosítása -signMessageAuto=Üzenet aláírása (auto) -signMessageNorm=Üzenet aláírása - -encryptOff=Titkosítás: KI -encryptOnWithReason=Titkosítás: BE (%S) -encryptOffWithReason=Titkosítás: KI (%S) -encryptOn=Titkosítás: BE -signOn=Aláírás: BE -signOff=Aláírás: KI -signOnWithReason=Aláírás: BE (%S) -signOffWithReason=Aláírás: KI (%S) -reasonEnabledByDefault=mindig bekapcsolva -reasonManuallyForced=kézzel kényszerítve -reasonByRecipientRules=Címzettenkénti szabályok alapján kényszerítve -reasonByAutoEncryption=automatikus titkosítással kényszerítve -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=az automatikus titkosítás miatt - -# should not be used anymore: -encryptYes=A levél titkosítva lesz -encryptNo=A levél nem lesz titkosítva - -# should not be used anymore: -signYes=A levél alá lesz írva -signNo=A levél nem lesz aláírva - - -# PGP/MIME status: -pgpmimeNormal=Protokoll: PGP/MIME -inlinePGPNormal=Protokoll: Beágyazott PGP -smimeNormal=Protokoll: S/MIME -pgpmimeAuto=Protokoll: PGP/MIME (auto) -inlinePGPAuto=Protokoll: Beágyazott PGP (auto) -smimeAuto=Protokoll: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=&PGP/MIME használatával -pgpmimeNo=Beágyazott PGP használatával - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=A címzettenkénti szabályok többszörösen egyeznek:\n%S\n\nElküldi az üzenetet ezekkel a beállításokkal? -msgCompose.button.configure=&Beállítás -msgCompose.button.send=Üzenet küldé&se -msgCompose.button.save=Üzenet &mentése - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=%S nyilvános kulcs szükséges az aláírás ellenőrzéséhez -keyUsed=%S nyilvános kulcs szükséges az aláírás ellenőrzéséhez -clickDecrypt=; kattintson a „Visszafejtés” gombra -clickDecryptRetry=; kattintson a „Visszafejtés” gombra az ismétléshez -clickDetailsButton=; További információkért kattintson a „Részletek” gombra -clickImportButton=; kattintson az „Importálás” gombra a kulcs letöltéséhez -keyTypeUnsupported=; ezt a kulcstípust nem támogatja a telepített GnuPG verzió -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Visszafejtés -msgPart=A levél része: %S -msgSigned=aláírt -msgSignedUnkownKey=ismeretlen kulccsal aláírt -msgEncrypted=titkosított -msgSignedAndEnc=aláírt és titkosított - unverifiedSig=Nem ellenőrzött aláírás -incompleteDecrypt=Visszafejtés nem teljes -needKey=Hiba – Titkos kulcs szükséges az üzenet visszafejtéséhez -failedDecrypt=Hiba – Visszafejtés sikertelen badPhrase=Hiba – Rossz jelmondat # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Hiba – A visszafejtés és az ellenőrzés sikertelen -viewInfo=; további részletek: „Nézet → Üzenet biztonsági adatai” -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Visszafejtett üzenet -decryptedMsgWithFormatError=Üzenet visszafejtése (visszaállítás hibás PGP levélformátumból, amelyet valószínűleg egy régi Exchange kiszolgáló okozott, így az eredménye esetleg nem lesz tökéletes) - -usedAlgorithms=Alkalmazott algoritmus: %S és %S -pepStatusInfo.text=p≡p Üzenet állapota. -pepStatusInfo.title.m3=Támadás alatt -pepStatusInfo.info.m3=Ez az üzenet nem biztonságos és meg lett változtatva. -pepStatusInfo.title.m1=Nem megbízható -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Ismeretlen -pepStatusInfo.info.r0=Ez az üzenet nem tartalmaz elegendő információt a biztonság meghatározásához. -pepStatusInfo.title.r1=Nem visszafejthető -pepStatusInfo.info.r1=Ez az üzenet nem visszafejthető, mert a kulcs nem elérhető. -pepStatusInfo.title.r2=Nem visszafejthető -pepStatusInfo.info.r2=Ez az üzenet nem visszafejthető, mert a kulcs nem elérhető. -pepStatusInfo.title.r3=Nem biztonságos -pepStatusInfo.info.r3=Ez az üzenet nem biztonságos. -pepStatusInfo.title.r4=Nem biztonságos néhány címzettnek -pepStatusInfo.info.r4=Ez az üzenet nem biztonságos néhány címzett számára. -pepStatusInfo.title.r5=Nem megbízható biztonság -pepStatusInfo.info.r5=Ez az üzenet nem megbízható védelemmel rendelkezik. -pepStatusInfo.title.r6=Biztonság… -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -pepStatusInfo.title.r7=Biztonságos és megbízható -pepStatusInfo.info.r7=Ez az üzenet biztonságos és megbízható. - -pepStatusInfo.color.green=Zöld -pepStatusInfo.color.yellow=Sárga -pepStatusInfo.color.red=Vörös -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -pepRevokeMistrust.question=Újra megbízhatónak jelöli a(z) „%S” kulcsot? -pepRevokeTrust.doRevoke=&Mégse megbízható - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -autocryptSetupReq.button.label=Telepítés indítás -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Enigmail indítási hiba.\n\nA GnuPG %1$S verzióját használja, amely már nem támogatott verzió. Az Enigmail legalább GnuPG %2$2 verziót vagy újabbat igényel. Frissítse a rendszerre telepített GnuPG verziót. ellenkező esetben az Enigmail nem fog működni. -locateGpg=GnuPG program elérési útja -invalidGpgPath=GnuPG nem indítható a megadott útvonalról. Az Enigmail kikapcsolt állapotba kerül mindaddig, amíg a GnuPG útvonala nincs kijavítva, vagy az alkalmazás újra nem indul. -warningsAreReset=A figyelmeztetések törölve lettek. -prefs.gpgFound=A talált GnuPG helye: %S -prefs.gpgNotFound=GnuPG nem található -prefs.warnAskNever=Figyelmeztetés: Az opció kiválasztása mindenféle további figyelmeztetés nélkül hatással lesz a nem titkosított levelekre, ha nincs kulcs valamelyik címzettnél -- Enigmail nem fogja értesíteni, ha ez történik. -prefs.warnIdleTimeForUnknownAgent=Nem sikerült csatlakozni a gpg-agent programhoz. Előfordulhat hogy az Ön rendszere speciális eszközt – gnome-keyring vagy seahorse-agent – használ a jelmondatok kezeléséhez. Sajnos az Enigmail így nem tudja befolyásolni az jelmondatok lejáratát az Ön által használt eszközben. Ennek megfelelően az Enigmail programban megadott lejárati idők figyelmen kívül lesznek hagyva. -prefEnigmail.oneKeyserverOnly=Hiba – Csak egy kulcskiszolgálót adhat meg a hiányzó OpenPGP-kulcsok automatikus letöltéséhez. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Az Enigmail nyílt forráskódú és a Mozilla Public License 2.0 szerint licencelt. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Írja be az intelligens kártya adminisztrátori PIN-kódját. -enterCardPin=Írja be az intelligens kártya PIN-kódját. - -notInit=Hiba – Az Enigmail szolgáltatás még nem indult el badCommand=Hiba – A titkosító parancs sikertelen volt cmdLine=parancssor és kimenet: -notRequired=Hiba – Titkosítás nem szükséges -notComplete=Hiba – A kulcskészítés még nem fejeződött be -invalidEmail=Hiba – Érvénytelen email cím(ek) noPassphrase=Hiba – Nincs jelmondat megadva noPGPblock=Hiba – Nem található érvényes védett OpenPGP-adatblokk -unverifiedReply=A beljebb kezdett üzenetrész (válasz) valószínűleg módosult -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Hiba – Eltérő aláírás -cantImport=Hiba a nyilvános kulcs importálásakor\n\n -doImportOne=Importálja a következőt: %1$S (%2$S)? -doImportMultiple=Importálja a következő OpenPGP-kulcsot?\n\n%S -previewFailed=A nyilvános kulcsfájl nem olvasható. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=A kártyaolvasóban a(z) „%1$S” intelligens kártya található, amely nem használható a művelet végrehajtásához.\nKérem, helyezze be a(z) „%2$S” intelligens kártyát és ismételje meg a műveletet. sc.insertCard=A művelet végrehajtásához a(z) „%S” intelligens kártyára van szükség.\nKérem, helyezze be az intelligens kártyát és ismételje meg a műveletet. sc.removeCard=A művelet végrehajtásához nincs szükség intelligens kártyára.\nKérem, távolítsa el az intelligens kártyát és ismételje meg a műveletet. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Az intelligens kártyaolvasó nem elérhető.\nKérem, csatlakoztassa az Intelligens kártyaolvasót, helyezze be a kártyát, majd ismételje meg a műveletet. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Adjon meg egy érvényes OpenPGP kulcsot a Postafiók beállításai párbeszédablakban az OpenPGP részben. missingPassphrase=Hiányzó jelmondat errorHandling.gpgAgentInvalid=A számítógépen olyan gpg-agent verzió található, amely nem működik együtt a telepített GnuPG verzióval. errorHandling.gpgAgentError=A GnuPG nem képes kommunikálni a gpg-agent programmal (amely a GnuPG része). @@ -384,35 +46,17 @@ errorHandling.pinentryError=A GnuPG nem tudja lekérdezni a jelmondatot a pinentry segítségével. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Ez egy rendszer telepítési vagy beállítási hiba, amely meggátolja az Enigmail programot a helyes működésben. Ez a hiba nem javítható automatikusan.\n\nA hibaelhárítással kapcsolatos teendőkért látogassa meg az Enigmail terméktámogatási weboldalát:https://enigmail.net/faq. - gpgNotFound=A GnuPG program („%S”) nem található.\nGyőződjön meg róla, hogy a GnuPG útvonala megfelelően van beállítva az Enigmail beállításainál. gpgNotInPath=A GPG program nem található az útvonalban (PATH).\nGyőződjön meg róla, hogy a GPG útvonala megfelelően van beállítva az Enigmail beállításainál. enigmailNotAvailable=Az Enigmail alapszolgáltatások nem érhetők el - -prefGood=Jó aláírás: %S -prefBad=ROSSZ aláírás: %S - failCancel=Hiba – Kulcslekérés a felhasználó által megszakítva failKeyExtract=Hiba – A kulcskinyerő parancs sikertelen volt -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Hiba – Az első OpenPGP-blokk nem nyilvános kulcs blokkja importKeyConfirm=Importálja a levélbe ágyazott nyilvános kulcsokat? -failKeyImport=Hiba – A kulcsok importálása sikertelen fileWriteFailed=Hiba történt a fájl írásakor: %S - importKey=Nyilvános kulcs importálása a kulcskiszolgálóról: %S uploadKey=Nyilvános kulcs küldése a kulcskiszolgálóra: %S keyId=Kulcsazonosító -keyAndSigDate=Kulcsazonosító: 0x%1$S / Aláírva: %2$S -keyFpr=Kulcs ujjlenyomata: %S -noEmailProvided=Nem adott meg e-mail címet. -keyAlreadySigned=A kulcs korábban már alá lett írva. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=lejár %S createdHeader=Létrehozva atLeastOneKey=Nincs kulcs kiválasztva. Ki kell választani legalább egy kulcsot az elfogadáshoz. fewerKeysThanRecipients=Kevesebb kulcsot választott ki, mint amennyi címzett van. Biztos benne, hogy a titkosítókulcsok listája teljes? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Válasszon ki titkos OpenPGP-kulcsot az üzenet aláírásához userSel.problemNoKey=Nincs érvényes kulcs userSel.problemMultipleKeys=Több kulcs -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Küldés később - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=első second=második - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Válasszon ki OpenPGP-kulcsot a titkosításhoz -identityName=Azonosító: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Aktiválta a titkosítást, de nem jelölt ki egy kulcsot. Ha %1$S számára küldött leveleit titkosítani szeretné, meg kell adnia egy vagy több kulcsot a kulcslistáról. Szeretné kikapcsolni a titkosítást %2$S számára? -noKeyToUse=(nincs – nincs titkosítás) -noEmptyRule=A szabály nem lehet üres. Adjon meg egy e-mail címet a Szabály mezőben. -invalidAddress=A beírt e-mail címek nem érvényesek. A címzettek nevét nem szabad beírni, csak az e-mail címet. Például:\nRossz: Senki Alfonz \nJó: alfonz.senki@cime.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Soha always=Mindig possible=Ha lehet -deleteRule=Valóban szeretné törölni a kijelölt szabályt? -nextRcpt=(Következő címzett) -negateRule=Nem -addKeyToRule=A(z) „%1$S” kulcs (%2$S) hozzáadása címzettenkénti szabályhoz - -# Strings used in enigmailSearchKey.js -needOnline=A kiválasztott funkció nem érhető el kapcsolat nélküli módban. Kérem, jelentkezzen be az Internetre, és próbálja ismét. -noKeyserverConn=Nem lehet kapcsolódni a kulcskiszolgálóhoz: %S. -internalError=Belső hiba lépett fel. A kulcsot nem lehetett letölteni, illetve importálni. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nem sikerült a tulajdonos megbízhatóságát beállítani. - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Kulcs aláírása nem sikerült. -alreadySigned.label=Megjegyzés: A(z) „%S” kulcs már alá van írva a kiválasztott titkos kulccsal. -alreadySignedexportable.label=Megjegyzés: A(z) „%S” kulcs már exportálhatóan alá van írva a kiválasztott titkos kulccsal. A helyi aláírást nem használja. -partlySigned.label=Megjegyzés: A(z) „%S” kulcshoz tartozó néhány felhasználói azonosító már alá van írva a kiválasztott titkos kulccsal. -noTrustedOwnKeys=Nem található megfelelő kulcs az aláíráshoz. Legalább egy teljesen megbízható titkos kulcsra van szükség a kulcsok aláírásához. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Kulcsok betöltése, kérem várjon… keyValid.unknown=ismeretlen keyValid.invalid=érvénytelen keyValid.disabled=letiltott keyValid.revoked=visszavont keyValid.expired=lejárt keyValid.noSubkey=nincs érvényes kulcsrész - -keyTrust.untrusted=megbízhatatlan +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=részben megbízható keyTrust.full=megbízható keyTrust.ultimate=teljesen megbízható keyTrust.group=(csoport) -keyType.public=nyilvános -keyType.publicAndSec=nyilvános/titkos -keyMan.enableKey=Kulcs engedélyezése -keyMan.disableKey=Kulcs tiltása userAtt.photo=Felhasználói tulajdonság (JPEG-kép) - -asciiArmorFile=ASCII-adat fájlok (*.asc) importKeyFile=OpenPGP-kulcsfájl importálása -gnupgFile=GnuPG fájlok -saveRevokeCertAs=Visszavonási tanúsítvány készítése és mentés -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=A visszavonási tanúsítvány létrehozása nem sikerült. - -addUidOK=Felhasználói azonosító hozzáadva. -addUidFailed=Nem sikerült hozzáadni a felhasználói azonosítót. -noKeySelected=Legalább egy kulcsot ki kell választani a listából, hogy a kijelölt művelet elvégezhető legyen. -exportToFile=Nyilvános kulcsok fájlba mentése -exportKeypairToFile=Titkos és nyilvános kulcsok fájlba mentése -exportSecretKey=Kívánja menteni a titkos kulcsot is az OpenPGP kulcs-fájlhoz? -saveKeysOK=A kulcsok mentése sikerült -saveKeysFailed=Nem sikerült a kulcsokat elmenteni. -importKeysFailed=Nem sikerült a kulcsokat beolvasni. -enableKeyFailed=Kulcsok engedélyezése/tiltása nem sikerült -specificPubKeyFilename=%1$S (0x%2$S) nyilvános -specificPubSecKeyFilename=%1$S (0x%2$S) nyilvános-titkos -defaultPubKeyFilename=Mentett-nyilvanos-kulcsok -defaultPubSecKeyFilename=Mentett-nyilvanos-es-titkos-kulcsok - -sendKeysOk=Kulcs(ok) elküldése sikerült -sendKeysFailed=Nem sikerült a kulcs(ok) elküldése -receiveKeysOk=Kulcs(ok) frissítése sikerült -receiveKeysFailed=Kulcs(ok) letöltése nem sikerült -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Szeretné a vágólapról betölteni a kulcs(ok)at? -importFromUrl=Nyilvános kulcs letöltése erről az URL-címről: -copyToClipbrdFailed=Nem sikerült a vágólapra másolni a kijelölt kulcs(ok)at. -copyToClipbrdOK=A kulcs(ok) a vágólapra kerültek - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=FIGYELMEZTETÉS: A titkos kulcsok törlését kezdeményezte.\nHa letörli a titkos kulcsot, akkor a korábban ezzel a kulccsal titkosított leveleit soha többé nem tudja visszafejteni.\n\nBiztosan törölni akar MINDEN kiválasztott titkos és nyilvános kulcsot? -deletePubKey=Szeretné törölni a következő nyilvános kulcsot\n„%S”? -deleteSelectedPubKey=Szeretné törölni a kijelölt nyilvános kulcsokat? -deleteKeyFailed=A kulcs nem törölhető. revokeKeyQuestion=A következő kulcs visszavonását kezdte el: „%S”.\n\nA kulcs visszavonása után Ön nem tud majd aláírni ezzel a kulccsal és a visszavonás közreadása után, mások sem tudnak majd – ehhez a kulcshoz tartozó – titkosított üzenetet küldeni. Továbbra is használhatja a kulcsot a régi üzenetek visszafejtésére.\n\nKívánja folytatni a visszavonást? -revokeKeyOk=A kulcs visszavonása sikerült. Ha a kulcs elérhető a kulcskiszolgálón, javasoljuk, hogy töltse fel oda is, hogy a nyilvánosság felé is látszódjon a visszavonás. -revokeKeyFailed=A kulcs nem vonható vissza. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=A(z) „0x%S” kulcs már vissza lett vonva. -refreshAllQuestion=Nincs kiválasztva egyetlen kulcs sem. Szeretné frissíteni az összes kulcsot? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Figyelmeztetés: Az összes kulcs frissítése hosszabb ideig eltarthat, a kulcsok mennyiségétől és a kapcsolat sebességétől függően.\n\nFolytatja? -downloadContactsKeys.warn=Figyelmeztetés: Az összes kulcs frissítése hosszabb ideig eltarthat, a kulcsok mennyiségétől és a kapcsolat sebességétől függően. -downloadContactsKeys.importFrom=Kívánja importálni a névjegyeket a következő címjegyzékből: %S? -keyMan.button.exportSecKey=Titkos kulcs &exportálása -keyMan.button.exportPubKey=Csak a &nyilvános kulcs exportálása keyMan.button.import=&Importálás -keyMan.button.refreshAll=Összes kulcs f&rissítése keyMan.button.revokeKey=Kulcs &visszavonás - -keylist.noOtherUids=Nincs több azonosító -keylist.hasOtherUids=Más néven -# keylist.noPhotos=No photo available -keylist.hasPhotos=Fényképek - -keyMan.addphoto.filepicker.title=Válassza ki a fotót -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=A kiválasztott fájl nem tűnik JPEG-fájlnak. Válasszon ki egy JPEG-fájlt. -keyMan.addphoto.failed=A fotó nem adható hozzá. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=Kulcs &felvétele a feketelistára -keyman.removeBlacklistKey.button=Kulcs &eltávolítása a feketelistától - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Az elsődleges felhasználói azonosító módosítása sikertelen. -changePrimUidOK=Sikerült módosítani az elsődleges felhasználói azonosítót. -revokeUidFailed=A(z) %S felhasználó azonosítójának visszavonása nem sikerült -revokeUidOK=%S felhasználói azonosító visszavonása sikerült. Ha a kulcs elérhető a kulcskiszolgálón, javasoljuk, hogy töltse fel oda is, hogy a nyilvánosság felé is látszódjon a visszavonás. -revokeUidQuestion=Valóban szeretné visszavonni a(z) %S felhasználó azonosítót? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Sikerült a kulcsok importálása -importInfoBits=Bit -importInfoCreated=Létrehozva -importInfoFpr=Ujjlenyomat -importInfoDetails=(Részletek) -importInfoNoKeys=Nincsenek kulcsok importálva. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=nyilvános kulcs -keyTypePrimary=elsődleges kulcs -keyTypeSubkey=kulcsrész -keyTypePair=kulcspár -keyExpiryNever=soha keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Titkosítás -keyUsageSign=Aláírás -keyUsageCertify=Tanúsítás -keyUsageAuthentication=Hitelesítés -keyDoesNotExpire=A kulcs soha nem jár le - -# Strings in enigmailGenCardKey.xul -keygen.started=Kérem várjon, amíg a kulcs elkészül… -keygen.completed=Kulcs elkészült. Az új kulcsazonosító: 0x%S -keygen.keyBackup=A kulcs lementve mint %S -keygen.passRequired=Adja meg a jelmondatát, ha szeretne biztonsági másolatot készíteni a kulcsról az intelligens kártyán kívülre. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN-kód módosítása nem sikerült. - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Kulcsok frissítése, kérem várjon… -keyserverProgress.uploading=Kulcsok feltöltése, kérem várjon… -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Kulcsok frissítése -keyserverTitle.uploading=Kulcs feltöltése -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=A megadott fájl nem egy GnuPG végrehajtható fájl. Adjon meg egy másik fájlt. -setupWizard.installFailed=Az telepítés nem sikerült. Próbálja meg újra a telepítést, vagy telepítse a GnuPG programot kézzel és adja meg az elérési útját a „Tallózás” gombbal. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Adja meg a betöltendő mentés fájlt -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=A GnuPG beállítófájl már létezik. Felül kívánja írni a fájlt egy régebbi telepítésből származó fájllal? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Hiba lépett fel a GnuPG letöltése során. További részleteket a konzol naplóban talál. -installGnuPG.installFailed=Hiba lépett fel a GnuPG telepítése során. További részleteket a konzol naplóban talál. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Ki kell töltenie a név és e-mail mezőket. -addUidDlg.nameMinLengthError=A névnek legalább 5 karakter hosszúnak kell lennie. -addUidDlg.invalidEmailError=Érvényes e-mail címet kell megadnia. - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Az OpenPGP intelligens kártya kizárólag ASCII karaktereket támogat a keresztnévben és a névben. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=A webszolgáltatás által megadott biztonsági tanúsítvány nem érvényes. errorType.SecurityProtocol=A webszolgáltatás által alkalmazott protokoll ismeretlen. errorType.Network=Hálózati hiba történt. - -# filter stuff -filter.folderRequired=Ki kell választania a célmappát. -filter.decryptMove.label=Végleges visszafejtés (Enigmail) -filter.decryptCopy.label=Visszafejtett másolat létrehozása (Enigmail) -filter.decryptMove.warnExperimental=Figyelmeztetés – a „Végleges visszafejtés” szűrőművelet tönkreteheti az üzeneteket.\n\nErősen ajánlott, hogy először a „Visszafejtett másolat létrehozása” szűrővel próbálkozzon, ellenőrizze az eredményt és csak akkor használja ezt a szűrőt, ha nem talált semmi problémát. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -filter.term.pgpencrypted.label=OpenPGP titkosított -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Naplófájl mentése - -# strings in gpg.jsm -unknownSigningAlg=Ismeretlen aláíró algoritmus (azonosító: %S) -unknownHashAlg=Ismeretlen kriptográfiai algoritmus (azonosító: %S) - -# strings in keyRing.jsm keyring.photo=Fénykép keyRing.pubKeyRevoked=A(z) „%1$S” kulcs (azonosító: %2$S) vissza lett vonva. keyRing.pubKeyExpired=A(z) „%1$S” kulcs (azonosító: %2$S) lejárt. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=A(z) „%1$S” kulcs (azonosító: %2$S) összes titkosító alkulcsa lejárt. keyRing.noSecretKey=Úgy tűnik nem rendelkezik a(z) %1$S titkos kulcsával (azonosító: %2$S) a számítógép kulcstartóján, így ezt a kulcsot nem használhatja aláírásra. keyRing.encSubKeysUnusable=A(z) „%1$S” kulcs (azonosító: %2$S) összes titkosító alkulcsa vissza lett vonva, lejárt, vagy más okból nem használható. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Hiba lépett fel a fájl mentése során: „%S”. Válasszon egy másik fájlt. dataExportError=Hiba történt az adatok exportálása során: %s. -enigmailSettings=EnigmailBeallitasok -defaultBackupFileName=Enigmail-export -specifyExportFile=Adja meg a fájlnevet az exportáláshoz -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Enigmail Kulcskezelő megnyitása expiry.OpenKeyProperties=Kulcs tulajdonságainak megjelenítése - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm gpghomedir.notexists=A(z) „%S” mappa, amelyben az OpenPGP kulcsai vannak, nem létezik, vagy nem hozható létre. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Nem lehet ellenőrizni a p≡p bizalmi szavakat a saját fiókját. -pepTrustWords.cannotFindKey=Nem található kulcs a következőhöz: %S -pepTrustWords.cannotStoreChange=Nem változtatható meg „%S” megbízhatósága. -pepTrustWords.generalFailure=Nem lehet beszerezni a bizalmi szavak-t a(z) %S számára. -pepTrustWords.partnerFingerprint=%S ujjlenyomata: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Vagy Önnek vagy küldőnek újra kellene küldenie az üzenetet. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -pepPrivacyStatus.RatingReliableSuggestion=A bizalmi szavak személyesen vagy telefonon történő cseréjével készítsen egy kézfogást a kommunikációs partnerével. A kézfogás partnerenként csak egyszer szükséges, és biztonságos és megbízható kommunikációt biztosít. -pepPrivacyStatus.RatingTrustedSuggestion=Nincs szükség beavatkozásra. -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Adja meg a szükséges információkat. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Ez az üzenet nem visszafejthető, mert a kulcs nem elérhető. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -pepPrivacyStatus.RatingTrustedExplanation=Ez az üzenet biztonságos és megbízható. -pepPrivacyStatus.RatingUndefinedExplanation=Ez az üzenet nem tartalmaz elegendő információt a biztonság meghatározásához. -pepPrivacyStatus.RatingUnderAttackExplanation=Ez az üzenet nem biztonságos és meg lett változtatva. -pepPrivacyStatus.RatingUnencryptedExplanation=Ez az üzenet nem biztonságos. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Ez az üzenet nem biztonságos néhány címzett számára. -pepPrivacyStatus.RatingUnreliableExplanation=Ez az üzenet nem megbízható védelemmel rendelkezik. - -pepPrivacyStatus.RatingBrokenText=Törött -pepPrivacyStatus.RatingHaveNoKeyText=Nem visszafejthető -pepPrivacyStatus.RatingMistrustText=Nem megbízható -pepPrivacyStatus.RatingReliableText=Biztonságos -pepPrivacyStatus.RatingTrustedText=Biztonságos és megbízható -pepPrivacyStatus.RatingUndefinedText=Ismeretlen -pepPrivacyStatus.RatingUnderAttackText=Támadás alatt -pepPrivacyStatus.RatingUnencryptedForSomeText=Nem biztonságos néhány címzettnek -pepPrivacyStatus.RatingUnencryptedText=Nem biztonságos -pepPrivacyStatus.RatingUnreliableText=Nem megbízható biztonság - -handshakeDlg.button.initHandshake=Kézfogás… -handshakeDlg.button.stopTrust=Megbízhatatlannak jelöl -# handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Kimenő üzenet -handshakeDlg.label.incomingMessage=Beérkezett üzenet -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Milyen újdonságok vannak az Enigmail v2.0 verziójában? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Az Enigmail névjegye # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licenc és támogatás # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -keyserver.error.serverError=A kulcskiszolgáló hibát jelzett. -# keyserver.error.importError=Failed to import the downloaded key. -keyserver.error.unavailable=A kulcskiszolgáló nem elérhető. -keyserver.error.securityError=A kulcskiszolgáló nem támogatja a titkosított hozzáférést. -keyserver.error.certificateError=A kulcskiszolgáló által megadott biztonsági tanúsítvány nem érvényes. -keyserver.error.unsupported=Az Enigmail nem támogatja kulcskiszolgálót. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Titkosított üzenetrész -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -importSettings.errorNoFile=A megadott fájl nem egy hagyományos fájl. -importSettings.cancelWhileInProgress=A visszaállítás folyamatban. Valóban megkívánja szakítani a folyamatot? -importSettings.button.abortImport=Művelet megszakítás&a +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/hu/help/compose.html enigmail-2.2.4/lang/hu/help/compose.html --- enigmail-2.1.6+ds1/lang/hu/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/editRcptRule.html enigmail-2.2.4/lang/hu/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/hu/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/help.html enigmail-2.2.4/lang/hu/help/help.html --- enigmail-2.1.6+ds1/lang/hu/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/initError.html enigmail-2.2.4/lang/hu/help/initError.html --- enigmail-2.1.6+ds1/lang/hu/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmime failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/messenger.html enigmail-2.2.4/lang/hu/help/messenger.html --- enigmail-2.1.6+ds1/lang/hu/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/rulesEditor.html enigmail-2.2.4/lang/hu/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/hu/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/hu/help/sendingPrefs.html enigmail-2.2.4/lang/hu/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/hu/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/hu/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/hy/am-enigprefs.properties enigmail-2.2.4/lang/hy/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/hy/am-enigprefs.properties 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/lang/hy/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1 @@ +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/hy/enigmail.dtd enigmail-2.2.4/lang/hy/enigmail.dtd --- enigmail-2.1.6+ds1/lang/hy/enigmail.dtd 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/lang/hy/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru enigmail-2.1.6+ds1/lang/hy/enigmail.properties enigmail-2.2.4/lang/hy/enigmail.properties --- enigmail-2.1.6+ds1/lang/hy/enigmail.properties 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/lang/hy/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,165 @@ +Enigmail=Enigmail +enigAlert=Enigmail֊ի զգուշացում +enigConfirm=Enigmail֊ի հաստատում +enigInfo=Enigmail֊ի տեղեկություններ +enigPrompt=Enigmail֊ի հրաւեր +dlgNo=&Ոչ +dlgKeepSetting=Հիշել և այլևս ցոյց չտալ +dlgNoPrompt=Այլևս ցոյց չտալ այս պատուհանը +dlg.button.cancel=&Չեղարկել +dlg.button.close=&Փակել +dlg.button.continue=Շարու&նակել +dlg.button.ok=&OK +repeatPrefix=\n\nԱյս զգուշացումը կը կրկնվի ևս %S +repeatSuffixSingular=անգամ։ +repeatSuffixPlural=անգամ։ +noRepeat=\n\nԱյս զգուշացումը չի հայտնվի, մինչև չթարմեցնեք Enigmail֊ը։ +passphraseCleared=Գաղտնաբառային արտահայտությունը մաքրած է։ +cannotClearPassphrase=Դուք օգտագործում Եք ոչ հասարակ գործիք գաղտնաբառային արտահայտությունները մշակելու համար (օրինակ՝ gnome-keyring)։ Enigmail֊ի գաղտնաբառային արտահայտության մաքրումը հնարավոր չէ Enigmail։ +usingVersion=օգտագործվում է Enigmail %S տարբերակի +usingAgent=Գաղտնագրման և վերծանման ժամանակ օգտագործվում է գործող նիշ %1$S %2$S +agentError=Enigmail հիմնական ծառայություն մուտքի սխալ +keysToUse=Ընտրեք OpenPGP բանալիներ %S +pubKey=Բաց բանալի %S ֊ի համար\n +quotedPrintableWarn=Դուք միացրել Եք «quoted-printable» կոդավորում ելնող նամակներում։ Այդ կարող է բերել սխալների վերծանման/ստորագրության ստուգման ժամանակ։\nԱնջատե՞լ «quoted-printable» կոդավորման օգտագործումը։ +warning=Զգուշացում +keyNotTrusted=«%S» բանալուն վստահությունը բավարար չէ +unverifiedSig=Չստուգված թուային ստորագրություն +badPhrase=Սխալ․ սխալ գատնաբառային արտահայտություն +missingMdcError=Սխալ - ամբողջականության պաշտպանության բացակայում կամ վնասում (MDC) +oldGpgVersion20=Չհաջողվեց նույնարկել Enigmail֊ը։\n\nԴուք օգտագործում Եք GnuPG %1$S տարբերակով, որը այլևս չի ապահովվում։ Enigmail֊ի աշխատանքի համար անպայման է տաբերակ %2$S֊ից ոչ ցածր։ Թարմեցրեք GnuPG֊ի տարբերակը Ձեր համակարգում։ +badCommand=Սխալ․ գաղտնագրման սխալ +cmdLine=հրամանային տող եի մուտքագրում․ +noPassphrase=Սխալ․ գաղտնաբառային արտահայտությունը նշված չէ +noPGPblock=Սխալ․ իրական պաշտպանված OpenPGP տվեալների պահուստը չի գտնվել +sc.wrongCardAvailable=Խելացի քարտ %1$S, որը գտնվել է Ձեր հաշուարկիչում չի կարող օգտագործվել այդ նամակի մշակման համար։\nՏեղադրեք խելացի քարտ %2$S֊ը և կրկնեք գործողությունը։ +sc.insertCard=Այդ գործողության համար պետք է Ձեր խելացի քարտը %S։\nՆերմուծեք այդ խելացի քարտը և փորձեք կրկին։ +sc.removeCard=Այդ գործողությունը կատարելու համար հաշուարկիչու պիտի չլինի խելացի քարտ։\nՀանեք խելացի քարտը և կրկին փորձեք։ +sc.noCardAvailable=Հաշուարկիչում խելացի քարտ չգտնվեց։\nՏեղադրեք խելացի քարտը և կրկին փորձեք։ +sc.noReaderAvailable=Խելացի քարտերի հաշուարկիչը չի գտնվել\nՄիացրեք հաշուարկիչը, տեղադրեք խելացի քարտը և փորձեք կրկին։ +keyError.keySpecNotFound=«%S» էլ․ փոստի համար համապատասխան բանալիների հավաքածույում բանալի չի գտնվել։ +keyError.keyIdNotFound=Կարգավորված բանալու նույնարկիչը «%S» բանալիների հավաքածույում չի գտնվել։ +missingPassphrase=Գաղտնաբառային արտահայտությունը բացակայում է +errorHandling.gpgAgentInvalid=gpg-agent֊ի տարբերակը Ձեր համակարգում անհամատեղելի է Ձեր GnuPG֊ի տարբերակի հետ։ +errorHandling.gpgAgentError=GnuPG֊ը տեղեկացրեց gpg-agent (GnuPG֊ի մասնիկի)֊ի հետ կապված սխալի մասին։ +errorHandling.dirmngrError=GnuPG֊ը տեղեկացրեց dirmngr (GnuPG֊ի մասնիկի)֊ի հետ կապված սխալի մասին։ +errorHandling.pinentryError=GnuPG֊ին չհաջողվեց հարցնել գաղտնաբառային արտահայտությունը pinentry֊ի միջոցով +errorHandling.pinentryCursesError=Ձեր GnuPG տեղադրումը կազմաձևված է pinentry֊ի համար վահանակը օգտագործելու համար: Այնուամենայնիվ, Enigmail- ի օգտագործման ժամանակ pinentry֊ի պատկերային տարբերակի կարիքն կունենաք: +errorHandling.readFaq=Սա համակարգի կարգավորման կամ կազմաձևման սխալ է, որը խանգարում է Enigmail֊ի ճշգրիտ աշխատանքին և չի կարող ուղղվել ինքնուրույն։\n\nԽերհուրդ ենք տալիս դիմել մեր վեբ կայքի աջակցությանը https://enigmail.net/faq հասցեով։ +gpgNotFound=Չհաջողվեց գտնել GnuPG «%S»։\nՀամոզվեք, որ Enigmail֊ի ընտրանքներում նշված է ճիշտ ուղի դեպի գործող GnuPG նիշը։ +gpgNotInPath=Չհաջողվեց գտնել GnuPG, օգտագործելով PATH դադարները։\nՀամոզվեք, որ Enigmail֊ի ընտրանքներում նշված է ճիշտ ուղի դեպի գործող GnuPG նիշը։ +enigmailNotAvailable=Enigmail֊ի հիմնական ծառայությունը հասանելի չէ +failCancel=Սխալ․ բանալու ստացումը չեղարկվեց օգտատիրոջ կողմից +failKeyExtract=Սխալ․ չհաջողվեց հանել բանալին +notFirstBlock=Սխալ․ առաջին բաժին OpenPGP֊ն բաց բանալու բաժին չէ +importKeyConfirm=Ներածե՞լ բաց բանալիները, որոնք ներդրված են նամակում։ +fileWriteFailed=Չհաջողվեց գրառել %S նիշում +importKey=%S բաց բանալու ներածում բանալիների սպասարկչից․ +uploadKey=Ուղարկել բաց բանալի %S֊ն բանալիների սպասարկիչ․ +keyId=Բանալու նույնարկիչ +createdHeader=Ստեղծված +atLeastOneKey=Բանալին ընտրված չէ։ պետք է ընտրել առնվազն մեկ բանալի։ +fewerKeysThanRecipients=Ընտրված բանալիների թիւը ստացողներից քիչ է։ Համոզուա՞ծ Եք, որ նշել Եք բոլոր բանալիները։ +userSel.button.goBack=Նշել բանալիներ +userSel.secretKeySel.title=Ընտրեք փակ OpenPGP բանալի Ձեր նամակների ստորագրության համար։ +userSel.problemNoKey=վավեր բանալիներ չկան +userSel.problemMultipleKeys=Բազում բանալիներ +first=առաջին +second=երկրորդ +never=Երբեք +always=Միշտ +possible=Հնարավոր է +keyValid.unknown=անհայտ +keyValid.invalid=անվավեր +keyValid.disabled=անջատված +keyValid.revoked=հետ կանչված +keyValid.expired=ժամկետանց +keyValid.noSubkey=սխալ ենթաբանալի +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted +keyTrust.marginal=նվազագույն +keyTrust.full=վստահում եմ +keyTrust.ultimate=բացարձակ +keyTrust.group=(խումբ) +userAtt.photo=օգտատիրոջ հատկանիշ (պատկեր JPEG) +importKeyFile=OpenPGP բանալու ներածման նիշ +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S +deleteSecretKey=Զգուշացում․ Դուք պատրաստվում Եք ջնջել փակ բանալի։\nՓակ բանալին ջնջելուց հետո Չեք կարող վերծանել նամակներ, որոնք գաղտնագրվել են այդ բանալով, և հետ կանչել բանալին նույնպէս Չեք կարող։\n\nՋնջե՞լ ԵՐԿՈՒ նշված բանալիները՝ և փակը, և բացը։\n«%S» +revokeKeyQuestion=Դուք պատրաստվում Եք հետ կանչել բանալի «%S»\n\nհետ կանչելուց հետո այն չի կարող օգտագործվել ստորագրության համար։ Հեռացումից հետո, այլ օգտատերերը չեն կարող օգտագործել այն գաղտնագրման համար։ Սակայն հին նամակները կարելի կը լինի վերծանել։\n\nՇարունակե՞լ։ +revokeKeyNotPresent=Դուք չունեք բանալի (0x%S), որը կհամապատասխանի այս մեկնաբանության վկայագրին։\n\nԵթե կորցրել Եք բանալին, ներածեք այն (օրինակ, բանալիների սպասարկչից) մեկնաբանության վկայագրի օգտագործումից առաջ։ +revokeKeyAlreadyRevoked=0x%S բանալին հետ է կանչված։ +keyMan.button.import=&Ներածում +keyMan.button.revokeKey=&հետ կանչել բանալին +keyAlgorithm_1=RSA +keyAlgorithm_2=RSA +keyAlgorithm_3=RSA +keyAlgorithm_16=ELG +keyAlgorithm_17=DSA +keyAlgorithm_18=ECDH +keyAlgorithm_19=ECDSA +keyAlgorithm_20=ELG +keyAlgorithm_22=EDDSA +# setupWizard.selectKeysButton=Select Keys +errorType.SecurityCertificate=Անվտանգության վկայագիր, որը տրվել է վեբ ծառայության կողմից, անվավեր է։ +errorType.SecurityProtocol=Վեբ֊ծառայությունը օգտագործում է անվտանգության անհայտ հաղորդակարգ։ +errorType.Network=Տեղի ունեցավ ցանցային սխալ։ +keyring.photo=Լուսանկար +keyRing.pubKeyRevoked=Բանալի %1$S (%2$S բանալու ID) հետ է կանչված։ +keyRing.pubKeyExpired=%1$S բանալու ժամկետը (%2$S բանալու ID) անցել է։ +keyRing.pubKeyNotForSigning=%1$S բանալին (%2$S բանալու ID) հնարավոր չէ օգտագործել ստորագրության համար։ +keyRing.pubKeyNotForEncryption=%1$S բանալին (%2$S բանալու ID) հնարավոր չէ օգտագործել գաղտնագրման համար։ +keyRing.keyDisabled=%1$S բանալին (%2$S բանալու ID) անջատված է և չի կարող օգտագործվել։ +keyRing.keyNotTrusted=Ոչ բավարար վստահության աստիճան %1$S բանալիի համար (%2$S բանալու ID)։ Ստորադրություն օգտագործելու համար, սահմանեք վստահության «բացարձակ» աստիճան։ +keyRing.keyInvalid=%1$S բանալին (ID %2$S) անվավեր է։ Հաստատեք իր ճշմարտությունը կամ ընտրեք Enigmail֊ի ընտրանքներում «օգտագործել գաղտնագրման լռելյայն ընտրանքները»։ +keyRing.signSubKeysRevoked=Ստորագրության բոլոր ենթաբանալիները %1$S բանալու համար (%2$S բանալու ID) հետ են կանչված։ +keyRing.signSubKeysExpired=%1$S բանալիում (%2$S բանալու ID) ստորագրության համար բոլոր ենթաբանալիների ժամկետն անցել է։ +keyRing.signSubKeysUnusable=%1$S բանալու ստորագրության համար բոլոր ենթաբանալիները (%2$S բանալու ID) հետ են կանչված, ժամկետանց են կամ չեն կարող օգտագործվել այլ պատճառներով։ +keyRing.encSubKeysRevoked=%1$S բանալու գաղտնագրման բոլոր ենթաբանալիները (%2$S բանալու ID) հետ են կանչված։ +keyRing.encSubKeysExpired=%1$S բանալու գաղտնագրության բոլոր ենթաբանալիների ժամկետն անցել է (%2$S բանալու ID)։ +keyRing.noSecretKey=%1$S բանալու համար (%2$S բանալու ID) բանալիների հավաքածուներում չկա համապատասխան փակ բանալի։ Այն չի կարող կիրառվել ստորագրությունների համար։ +keyRing.encSubKeysUnusable=%1$S բանալու գաղտնագրության համար բոլոր ենթաբանալիները %1$S (%2$S բանալու ID) հետ են կանչված, ժամկետանց են կամ չեն կարող օգտագործվել այլ պատճառներով։ +dataExportError=Տվեալների արտածման ժամանակ հայտնվեց սխալ։ +expiry.keyExpiresSoon=«%1$S» բանալիի ժամկետի սպառմանը մնացել է՝ %2$S։\n\nԽորհուրդ է տրվում ստեղծել բանալիների նոր զոյգ և կարգավորել համապատասխան հաշիվներ իրենց օգտագործման համար։ +expiry.keysExpireSoon=Ստորին բերված բանալիների ժամկետը կը սպառվի ավելի շուտ քան %1$S օրից:\n%2$S Խորհուրդ է տրվում ստեղծել նոր բանալիներ և կարգավորել իրենց օգտագործումը Ձեր հաշիվներում։ +expiry.keyMissingOwnerTrust=%S փակ բանալու մոտ վստահության աստիճանը բավարար բարձր չէ։\n\nԽորհուրդ ենք տալիս «Ձեր վստահության կարգավորումները»բանալիների ընտրնանքների տողում ընտրել «Բացարձակ վստահություն» տարբերակը։ +expiry.keysMissingOwnerTrust=Ներքևում բերված փակ բանալիներից նշված է ոչ բավարար վստահման աստիճան։\n%S։\nԽորհուրդ ենք տալիս «Ձեր վստահության կարգավորումները»բանալիների ընտրնանքների տողում ընտրել «Բացարձակ վստահություն» տարբերակը։ +expiry.OpenKeyManager=Բացել Enigmail բանալիների կառավարումը +expiry.OpenKeyProperties=Բացել բանալիների հատկությունները +gpghomedir.notexists=«%S» ցուցակը, որը պարունակում է Ձեր OpenPGP բանալիները, գոյություն չունի և չի կարող ստեղծվել։ +gpghomedir.notwritable=«%S» ցուցակը, որը պարունակում է Ձեր OpenPGP բանալիները, գրառման համար անհասանելի է։ +gpghomedir.notdirectory=«%S» տեղակայում,որը պարունակում է Ձեր OpenPGP բանալիները, նիշ է, ոչ թե ցուցակ։ +gpghomedir.notusable=Ուղղեք ցուցակի թույլտվությունները կամ փոխեք «տնային» GnuPG ցուցակի դիրքը, ճշգրիտ աշխատելու համար։ +gpgAgent.noAutostart=Դուք օգտագործում եք GnuPG -ի %S տարբերակը: Այս տարբերակը պահանջում է, որ դուք նախադրեք gpg-գործակալ նախքան Thunderdbird- ի գործարկումը, և որ «GPG_AGENT_INFO» շրջակա միջավայրի փոփոխականությունը նախապես բեռնվի:\n\nԱյս նախապայմանները չեն պահպանվում. Դուք չեք կարող օգտագործել Enigmail- ը, քանի դեռ չեք լուծել այս խնդիրը: +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. +aboutEnigmail.tabName=Enigmail֊ի մասին +aboutEnigmail.title=OpenPGPապահովում, Enigmail֊ի կողմից +aboutEnigmail.team=Enigmail֊ի վրայ աշխատող խումբը՝ +aboutEnigmail.projectLeader=Վարող ծրագրավորող՝ +aboutEnigmail.usability=օգտագործման հարմարություն՝ +aboutEnigmail.documentation=Փաստաթղթավորում՝ +aboutEnigmail.testing=Ստուգում՝ +aboutEnigmail.userSupport=օգտատերերին աջակցություն՝ +aboutEnigmail.userSupport.team=թիմը և ցուցակը/ֆորումի անդամները +aboutEnigmail.localization=Տեղայնացում՝ Դիտ․ լեզուային փաթեթների էջում Enigmail +aboutEnigmail.Credits=Մասնակիցներ՝ +aboutEnigmail.origAuthor=Enigmail ընդլայնման առաջնային հեղինակ՝ +aboutEnigmail.icons=Նշաններ՝ +aboutEnigmail.formerMembers=Խմբի նախկին մասնակիցներ՝ +aboutEnigmail.projectHosting=Նախագծի տեղակայում՝ +aboutEnigmail.licenseSupportTitle=Արտոնագիր և աջակցություն +aboutEnigmail.license=OpenPGP֊ն Enigmail ում չափանիշ է բաց ելային կոդով, որը տրամադրվում է %S պայմաններում +aboutEnigmail.support=Աջակցություն և բեռնման նիշերը առկա են www.enigmail.net կայքում։ +updateGnuPG.checkUpdate=Ստուգել GnuPG֊ի թարմացումները +import.secretKeyImportError=Գաղտնի բանալիներ ներմուծելիս GnuPG- ում սխալ է տեղի ունեցել: Ներմուծումը հաջող չէր: +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/it/am-enigprefs.properties enigmail-2.2.4/lang/it/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/it/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Sicurezza OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/it/enigmail.dtd enigmail-2.2.4/lang/it/enigmail.dtd --- enigmail-2.1.6+ds1/lang/it/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,284 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' per specificare gli indirizzi email"> - - -' per evidenziare gli indirizzi email a GnuPG. Disattivare se i destinatari usano vecchie chiavi Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sicurezza OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: la creazione della chiave può richiedere anche parecchi minuti. Non uscire dall'applicazione prima del termine dell'operazione. Navigare su internet o svolgere attività che sfruttino intensamente il disco durante la creazione della chiave potrà facilitare la generazione dei numeri casuali e accelerare il processo stesso. Sarai avvertito quando la creazione della chiave sarà stata completata."> - @@ -297,496 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' non è valido"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: La creazione della chiave può richiedere anche diversi minuti per essere completata. Non uscire dall'applicazione mentre la creazione della chiave è in corso. Sarai avvertito al termine del processo."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/it/enigmail.properties enigmail-2.2.4/lang/it/enigmail.properties --- enigmail-2.1.6+ds1/lang/it/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Avviso Enigmail enigConfirm=Conferma di Enigmail enigInfo=Informazioni Enigmail -enigError=Errore Enigmail enigPrompt=Richiesta Enigmail - -dlgYes=&Sì dlgNo=&No dlgKeepSetting=Ricorda la risposta e non chiedere ancora dlgNoPrompt=Non mostrare ancora questa finestra -dlg.button.delete=&Elimina dlg.button.cancel=&Annulla dlg.button.close=&Chiudi dlg.button.continue=Con&tinua -dlg.button.skip=&Salta -dlg.button.overwrite=S&ovrascrivi -dlg.button.view=&Visualizza -dlg.button.retry=&Riprova -dlg.button.ignore=&Ignora -dlg.button.install=&Installa dlg.button.ok=&OK - repeatPrefix=\n\nQuesto avviso sarà ripetuto %S repeatSuffixSingular=altra volta. repeatSuffixPlural=altre volte. noRepeat=\n\nQuesto avviso non sarà ripetuto fino a che non aggiornerai Enigmail. - -pgpNotSupported=Sembra che tu stia usando Enigmail insieme a PGP 6.x\n\nSfortunatamente, PGP 6.x ha una serie di problemi che impediscono a Enigmail di operare correttamente. Pertanto, Enigmail non supporta più PGP 6.x ed è necessario usare GnuPG (GPG) al suo posto.\n\nSe hai bisogno di aiuto su come passare da PGP a GnuPG, controlla la sezione 'Help' della pagina web di Enigmail. -initErr.howToFixIt=Per utilizzare Enigmail, è richiesto GnuPG. Se non hai ancora installato GnuPG, il modo più semplice per farlo è utilizzare il pulsante "Procedura guidata di configurazione" -initErr.setupWizard.button=Procedura guidata di configura&zione passphraseCleared=La frase segreta è stata cancellata. cannotClearPassphrase=Stai utilizzando uno strumento non standard (come gnome-keyring) per la gestione della frase segreta. Non è perciò possibile cancellare la frase segreta dall'interno di Enigmail. -noPhotoAvailable=Nessuna foto disponibile -debugLog.title=Log di debug di Enigmail -error.photoPathNotReadable=Il percorso '%S' della foto non è leggibile - -generalError=Errore: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Questa nuova versione di Enigmail apporta modifiche significative alla gestione delle preferenze e delle opzioni. Abbiamo provato a trasferire le vecchie impostazioni in questa nuova versione. Tuttavia, non siamo in grado di verificarle tutte automaticamente. Controlla le nuove preferenze e opzioni risultanti. -enigmailCommon.checkPreferences=Controlla preferenze... -preferences.defaultToPgpMime=Abbiamo modificato la cifratura predefinita del messaggio in Enigmail da PGP in linea a PGP/MIME. Ti consigliamo di mantenerla come predefinita.\n\nSe desideri utilizzare ancora PGP in linea in modo predefinito, puoi farlo nelle impostazioni dell'account sotto Sicurezza OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=In esecuzione la versione %S di Enigmail -enigmailPepVersion=Enigmail/p≡p versione %S usingAgent=L'eseguibile di %S in uso per cifrare e decifrare è: %S agentError=ERRORE: accesso al servizio Enigmime non riuscito! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Errore durante l'accesso al servizio Enigmail -onlyGPG=La creazione delle chiavi funziona solo con GnuPG (non con PGP)! - -keygenComplete=Creazione della chiave completata! L'identità <%S> sarà utilizzata per la firma. -revokeCertRecommended=Ti consigliamo decisamente di creare un certificato di revoca per la tua chiave. Questo certificato può essere usato per invalidare la tua chiave, se ad esempio la tua chiave privata viene smarrita o compromessa. Vuoi creare un certificato di revoca adesso? -keyMan.button.generateCert=&Genera certificato -genCompleteNoSign=Creazione certificato completata! -genGoing=La creazione della chiave è già in corso! - -passNoMatch=Le frasi segrete digitate non corrispondono; prova a reinserirle -passCheckBox=Marca la casella se non vuoi specificare una frase segreta per la chiave -passUserName=Specifica un nome utente per questa identità -keygen.missingUserName=Non è stato specificato alcun nome per l'account/identità selezionato. Digita un valore nel campo "Il tuo nome" nelle impostazioni dell'account. -keygen.passCharProblem=Stai utilizzando caratteri speciali nella tua frase segreta. Sfortunatamente, ciò può causare problemi con altre applicazione. Ti consigliamo di scegliere una frase segreta che contenga solo i caratteri che seguono:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character. -changePassFailed=Cambiamento della frase segreta non riuscito. - -keyConfirm=Vuoi generare chiave pubblica e privata per '%S'? -keyMan.button.generateKey=&Genera chiave -keyAbort=Interrompere la creazione della chiave? -keyMan.button.generateKeyAbort=&Interrompi la creazione della chiave -keyMan.button.generateKeyContinue=&Continua la creazione della chiave -expiryTooLong=Non puoi creare una chiave che scadrà tra più di 100 anni. -expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -expiryTooShort=La tua chiave deve essere valida per almeno un giorno. -keyGenFailed=La generazione della chiave non è riuscita. Controlla la console di Enigmail (Menu Enigmail > Opzioni di debug) per i dettagli. -setKeyExpirationDateFailed=La data di scadenza non dovrebbe essere modificata - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informazioni di sicurezza Enigmail\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *gli allegati a questo messaggio non sono stati firmati o cifrati*\r\n\r\n -possiblyPgpMime=Il messaggio potrebbe essere firmato o cifrato nel formato PGP/MIME; fai clic sul pulsante Decifra per verificare - -saveAttachmentHeader=Enigmail: salva allegato decifrato -noTempDir=Impossibile trovare una cartella temporanea in cui poter scrivere\nImposta la variabile di ambiente TEMP -attachmentPgpKey=L'allegato '%S' che stai aprendo sembra essere un file contenente chiavi OpenPGP.\n\nFai clic su 'Importa' per importare le chiavi contenute al suo interno oppure 'Visualizza' per visualizzare il file in una finestra del browser - -beginPgpPart=********* *INIZIO PARTE CIFRATA o FIRMATA* ********* -endPgpPart=********** *FINE PARTE CIFRATA o FIRMATA* ********** -notePartEncrypted=Enigmail: *Parti del messaggio NON sono state firmate o cifrate* -noteCutMessage=Enigmail: *Sono stati trovati blocchi di messaggio multipli -- decifratura/verifica interrotta* - -decryptOkNoSig=Attenzione\n\nLa decifratura è riuscita, ma non è stato possibile verificare correttamente la firma -msgOvl.button.contAnyway=&Continua comunque -signature.verifiedOK=La firma per l'allegato %S è stata verificata correttamente -signature.verifyFailed=La firma per l'allegato %S non può essere verificata -attachment.noMatchToSignature=L'allegato '%S' non corrisponde a un file di firma -attachment.noMatchFromSignature=Il file di firma '%S' non corrisponde a un allegato -fixBrokenExchangeMsg.failed=La riparazione del messaggio non è riuscita. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importa chiave -wksNoIdentity=Questa chiave non è collegata a nessuno dei tuoi account di posta. Aggiungi un account per almeno uno dei seguenti indirizzi di posta:\n\n%S -wksConfirmSuccess=Messaggio di conferma inviato. -wksConfirmFailure=Invio del messaggio di conferma non riuscito. -autocrypt.importSetupKey.accountPreconfigured=Il tuo account è già configurato correttamente per Autocrypt.\n\nVuoi davvero sovrascrivere le tue impostazioni con questo messaggio di configurazione? -autocrypt.importSetupKey.selfCreated=Questo messaggio è stato creato dalla tua istanza attualmente in esecuzione di Enigmail.\n\nPassa al client email dove vuoi trasferire le impostazioni, e clicca sul messaggio dentro a quel client per importare le impostazioni. -autocrypt.importSetupKey.invalidMessage=Errore - impossibile leggere il messaggio di configurazione. Il messaggio sembra essere danneggiato. Prova a creare un nuovo messaggio di configurazione sull'"altro" dispositivo. -autocrypt.importSetupKey.invalidKey=Errore la chiave non può essere importata. La chiave non è supportata dalla tua versione di GnuPG o è danneggiata. -autocrypt.importSetupKey.wrongPasswd=La password che hai digitato è errata. Vuoi riprovare? -autocrypt.importSetupKey.success=Il messaggio di configurazione di Autocrypt è stato elaborato correttamente. Autocrypt è ora disponibile per il tuo account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Scegli le chiavi OpenPGP da inserire keysToUse=Scegli la/le chiave/i OpenPGP da usare per %S pubKey=Chiave pubblica per %S\n - -windowLocked=La finestra di composizione è bloccata; invio annullato -sendUnencrypted=Inizializzazione di Enigmail non riuscita.\nInviare il messaggio non cifrato? -composeSpecifyEmail=Specifica il tuo indirizzo email principale, che sarà usato per scegliere la chiave che firmerà i messaggi in uscita.\n Se lasci in bianco, l'indirizzo del mittente nel campo DA di ogni messaggio sarà usato per scegliere la chiave per la firma. -sendingHiddenRcpt=Questo messaggio ha destinatari in CCN (copia nascosta). Se questo messaggio verrà cifrato, sarà possibile tenere nascosti i destinatari in CCN, ma gli utenti di alcuni programmi (come PGP Corp.) non saranno in grado di decifrare il messaggio. Pertanto, consigliamo di evitare di spedire messaggi cifrati a destinatari in CCN. -sendWithHiddenBcc=Nascondi i destinatari in CCN -sendWithShownBcc=Cifra normalmente -sendingNews=Operazione di invio cifrato interrotta.\n\nQuesto messaggio non può essere cifrato perché il destinatario è un gruppo di discussione. Invia nuovamente il messaggio senza cifratura. -sendToNewsWarning=Attenzione: stai per inviare un messaggio cifrato a un gruppo di discussione.\n\nCiò è altamente sconsigliabile, perché ha senso solo se tutti i membri del gruppo sono in grado di decifrare il messaggio, cioè se il messaggio viene cifrato con le chiavi di tutti i membri del gruppo. Invia questo messaggio solo se sai perfettamente cosa stai facendo.\n\nVuoi continuare? -hasHTML=Attenzione, email in formato HTML:\nQuesto messaggio potrebbe contenere parti in formato HTML, che potrebbero impedire la firma/cifratura. Per evitare questo in futuro, dovrai tenere premuto il tasto MAIUSC mentre fai clic sul pulsante Componi/Rispondi per inviare messaggi firmati.\nSe hai scelto di firmare le email in modo predefinito, deseleziona l'opzione 'Componi messaggi in HTML' per disabilitare permanentemente la creazione di email in HTML per questo account. -strippingHTML=Il messaggio contiene una formattazione in HTML che andrà persa con la conversione in testo semplice per la firma/cifratura. Desideri continuare? -msgCompose.button.sendAnyway=&Invia il messaggio comunque -attachWarning=Gli allegati di questo messaggio non sono locali e non possono essere cifrati. Per cifrare gli allegati, salvali prima come file locali e allega di nuovo questi ultimi. Vuoi inviare il messaggio comunque? quotedPrintableWarn=Hai abilitato la codifica 'quoted-printable' per l'invio dei messaggi. Questo può provocare errori nella decifratura e/o nella verifica del messaggio.\nVuoi disattivare ora l'invio di messaggi 'quoted-printable'? -minimalLineWrapping=Hai impostato l'interruzione di riga automatica ogni %S caratteri. Per una corretta cifratura e/o firma, questo valore deve essere almeno 68.\nVuoi impostare subito l'interruzione di riga dopo 68 caratteri? warning=Attenzione -signIconClicked=Hai modificato manualmente la firma. Pertanto, durante la composizione di questo messaggio, (dis)attivare la firma non dipende più dalla (dis)attivazione della cifratura. -errorOwnKeyUnusable=L'ID chiave '%S' configurato per l'identità corrente non restituisce una chiave OpenPGP usabile.\n\nAssicurati di avere una chiave OpenPGP valida, non scaduta, e che le impostazioni del tuo account rimandino a quella chiave.\nSe la tua chiave non è scaduta, allora controlla se hai impostato la fiduca nel Proprietario a "completa" o "definitiva" -msgCompose.cannotSaveDraft=Errore durante il salvataggio della bozza -msgCompose.partiallyEncrypted.short=Attenzione alle fughe di informazioni sensibili - messaggio cifrato parzialmente. -msgCompose.partiallyEncrypted.inlinePGP=Il messaggio a cui stai rispondendo contiene sia parti cifrate che non. Se il mittente non ha potuto decifrare alcune parti del messaggio in origine, potresti stare rivelando informazioni confidenziali che il mittente non poteva decifrare da solo.\n\nConsidera se rimuovere tutto il testo virgolettato dalla tua rispoosta a questo mittente. - -msgCompose.internalEncryptionError=Errore interno: cifratura promessa disabilitata -msgCompose.internalError=Si è verificato un errore interno. - -msgCompose.toolbarTxt.signAndEncrypt=Questo messaggio sarà firmato e cifrato -msgCompose.toolbarTxt.signOnly=Questo messaggio sarà firmato -msgCompose.toolbarTxt.encryptOnly=Questo messaggio sarà cifrato -msgCompose.toolbarTxt.noEncryption=Questo messaggio non sarà né firmato, né cifrato -msgCompose.toolbarTxt.disabled=Enigmail è disabilitato per l'identità selezionata -msgCompose.protectSubject.tooltip=Proteggi l'oggetto del messaggio -msgCompose.noSubjectProtection.tooltip=Non proteggere l'oggetto del messaggio -msgCompose.protectSubject.dialogTitle=Vuoi abilitare la protezione dell'oggetto? -msgCompose.protectSubject.question=Le email cifrate normali contengono l'oggetto non modificato.\n\nAbbiamo stabilito un protocollo per nascondere l'oggetto originale nel messaggio cifrato\ne rimpiazzarlo con del testo fittizio, in modo che l'oggetto sia visibile solo dopo che la mail è stata decifrata.\n\nVuoi proteggere l'oggetto nei messaggi cifrati? -msgCompose.protectSubject.yesButton=&Proteggi oggetto -msgCompose.protectSubject.noButton=&Lascia l'oggetto non protetto - -msgCompose.detailsButton.label=Dettagli... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Sconosciuto -msgCompose.pepSendUnsecure=Non sicuro -msgCompose.pepSendSecure=Sicuro -msgCompose.pepSendTrusted=Sicuro e affidabile - -pep.alert.disabledForIdentity=p≡p è disabilitato per l'identità attuale. Abilita p≡p dalle preferenze di Enigmail/p≡p. -pep.alert.weakReply=Stai per inoltrare o rispondere a un messaggio sicuro, ma il messaggio che manderai non lo sarà. Se scegli di procedere, le informazioni confidenziali potrebbero essere rivelate, mettendo te e i tuoi interlocutori a rischio. Sei sicuro di voler continuare? - - -# note: should end with double newline: -sendAborted=Operazione di invio interrotta.\n\n - -# details: keyNotTrusted=La chiave '%S' non è sufficientemente affidabile -keyNotFound=Chiave '%S' non trovata -keyRevoked=Chiave '%S' revocata -keyExpired=Chiave '%S' scaduta - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=FIRMATO -statEncrypted=CIFRATO -statPlain=NON FIRMATO E IN CHIARO - -offlineSave=Salvo il messaggio %S destinato a %S nella cartella 'Da inviare'? - -onlineSend=Invio il messaggio %S destinato a %S? -encryptKeysNote=Nota: il messaggio è cifrato per gli ID utente/Chiavi seguenti: %S -hiddenKey= - -signFailed=Errore in Enigmail: cifratura/firma non riuscita. Vuoi invia il messaggio non cifrato? -msgCompose.button.sendUnencrypted=&Invia messaggio in chiaro -recipientsSelectionHdr=Scegli i destinatari per la cifratura - -configureNow=Non hai ancora configurato le impostazioni di sicurezza Enigmail per questa identità. Vuoi farlo adesso? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Cifra messaggio (auto) -encryptMessageNorm=Cifra messaggio -signMessageAuto=Firma messaggio (auto) -signMessageNorm=Firma messaggio - -encryptOff=Cifratura: DISATTIVA -encryptOnWithReason=Cifratura: ATTIVA (%S) -encryptOffWithReason=Cifratura: DISATTIVA (%S) -encryptOn=Cifratura: ATTIVA -signOn=Firma: ATTIVA -signOff=Firma: DISATTIVA -signOnWithReason=Firma: ATTIVA (%S) -signOffWithReason=Firma: DISATTIVA (%S) -reasonEnabledByDefault=abilitato in modo predefinito -reasonManuallyForced=forzato manualmente -reasonByRecipientRules=forzato alle regole per destinatario -reasonByAutoEncryption=forzato dalla cifratura automatica -reasonByConflict=a causa di un conflitto nelle regole per destinatario -reasonByEncryptionMode=a causa della modalità di cifratura - -# should not be used anymore: -encryptYes=Il messaggio sarà cifrato -encryptNo=Il messaggio non sarà cifrato - -# should not be used anymore: -signYes=Il messaggio sarà firmato -signNo=Il messaggio non sarà firmato - - -# PGP/MIME status: -pgpmimeNormal=Protocollo: PGP/MIME -inlinePGPNormal=Protocollo: PGP in linea -smimeNormal=Protocollo: S/MIME -pgpmimeAuto=Protocollo: PGP/MIME (auto) -inlinePGPAuto=Protocollo: PGP in linea (auto) -smimeAuto=Protocollo: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=Sarà utilizzato PGP/MIME -pgpmimeNo=Sarà utilizzato PGP in linea - -# Attach own key status (tooltip strings): -attachOwnKeyNo=La tua chiave pubblica non sarà allegata -attachOwnKeyYes=La tua chiave pubblica sarà allegata -attachOwnKeyDisabled=La tua chiave pubblica non può essere allegata. Devi selezionare una chiave spcifica\nnella sezione OpenPGP delle Impostazioni Account per abilitare questa funzione. - -rulesConflict=Alcune delle regole impostate per i destinatari sono in conflitto fra di loro\n%S\n\nInviare il messaggio con queste impostazioni? -msgCompose.button.configure=&Configura -msgCompose.button.send=&Invia messaggio -msgCompose.button.save=&Salva messaggio - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Chiave pubblica %S richiesta per verificare la firma -keyUsed=Chiave pubblica %S utilizzata per verificare la firma -clickDecrypt=; fai clic sul pulsante 'Decifra' -clickDecryptRetry=; fai clic sul pulsante 'Decifra' per riprovare -clickDetailsButton=; fai clic sul pulsante 'Dettagli' per ulteriori informazioni -clickImportButton=; fai clic sul pulsante 'Importa chiave' per scaricare la chiave -keyTypeUnsupported=; il tipo di chiave non è supportato dalla tua versione di GnuPG -decryptManually=; fai clic sul pulsante 'Decifra' per decifrare il messaggio -verifyManually=; fai clic sul pulsante 'Verifica' per verificare la firma -headerView.button.verify=Verifica -headerView.button.decrypt=Decifra -msgPart=Parte del messaggio %S -msgSigned=firmato -msgSignedUnkownKey=firmato con una chiave sconosciuta -msgEncrypted=cifrato -msgSignedAndEnc=firmato e cifrato - unverifiedSig=Firma non verificata -incompleteDecrypt=Decifratura incompleta -needKey=Errore - serve la chiave segreta per decifrare il messaggio -failedDecrypt=Errore - decifratura non riuscita badPhrase=Errore - frase segreta non valida missingMdcError=Errore - protezione di integrità mancante o danneggiato (MDC) -failedDecryptVerify=Errore - decifratura/verifica non riuscita -viewInfo=; Visualizza > Informazioni di sicurezza messaggio per i dettagli -brokenExchangeMessage=Messaggio PGP/MIME danneggiato da MS-Exchange. - -decryptedMsg=Messaggio decifrato -decryptedMsgWithFormatError=Messaggio decifrato (ripristinato formato dell'email PGP danneggiata, probabilmente a causa di un server Exchange datato. Il risultato potrebbe non essere perfettamente leggibile) - -usedAlgorithms=Algoritmi utilizzati: %S e %S -pepStatusInfo.text=Stato del messaggio di p≡p . -pepStatusInfo.title.m3=Sotto attacco -pepStatusInfo.info.m3=Questo messaggio non è sicuro ed è stato alterato. -pepStatusInfo.title.m1=Diffidato -pepStatusInfo.info.m1=Questo messaggio ha un interlocutore che è stato precedentemente marcato come diffidato -pepStatusInfo.title.r0=Sconosciuto -pepStatusInfo.info.r0=Questo messaggio non contiene informazioni sufficienti per determinare se è sicuro. -pepStatusInfo.title.r1=Impossibile decifrare -pepStatusInfo.info.r1=Questo messaggio non può essere decifrato poiché la chiave non è disponibile. -pepStatusInfo.title.r2=Impossibile decifrare -pepStatusInfo.info.r2=Questo messaggio non può essere decifrato poiché la chiave non è disponibile. -pepStatusInfo.title.r3=Non sicuro -pepStatusInfo.info.r3=Questo messaggio non è sicuro. -pepStatusInfo.title.r4=Non sicuro per alcuni -pepStatusInfo.info.r4=Questo messaggio non è sicuro per alcuni interlocutori. -pepStatusInfo.title.r5=Sicurezza inaffidabile -pepStatusInfo.info.r5=Questo messaggio ha una protezione non affidabile. -pepStatusInfo.title.r6=Proteggi... -pepStatusInfo.info.r6=Questo messaggio è sicuro, ma devi comunque verificare l'identità del tuo interlocutore. -pepStatusInfo.title.r7=Sicuro e affidabile -pepStatusInfo.info.r7=Questo messaggio è sicuro e affidabile. - -pepStatusInfo.color.green=Verde -pepStatusInfo.color.yellow=Giallo -pepStatusInfo.color.red=Rosso -pepRevokeTrust.question=Vuoi davvero annullare la fiducia per %S? -pepRevokeMistrust.question=Vuoi davvero ripristinare la fiducia della chiave per %S? -pepRevokeTrust.doRevoke=Annulla &fiducia - -wksConfirmationReq=Richiesta di conferma directory WebKey -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=Conferma richiesta - -autocryptSetupReq=Esegui configurazione Autocrypt -autocryptSetupReq.button.label=Avvia configurazione -autocryptSetupReq.setupMsg.desc=Questo messaggio contiene tutte le informazioni per trasferire le tue impostazioni di Autocrypt insieme alla tua chiave segreta in modo sicuro dal tuo dispositivo originale. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -autocryptSetupReq.message.import=Per importare le impostazioni e le chiavi in Enigmail, fai clic sul pulsante "Avvia configurazione" nella barra di stato. -autocryptSetupReq.message.sent=Fai clic sul messaggio sul tuo nuovo dispositivo e segui le istruzioni per importare le impostazioni. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Inizializzazione di Enigmail non riuscita.\n\nStai utilizzando la versione %1$S di GnuPG, che non è più supportata. Enigmail richiede la versione %2$S o superiore di GnuPG. Aggiorna la tua installazione di GnuPG, o Enigmail non funzionerà. -locateGpg=Trova l'eseguibile di GnuPG -invalidGpgPath=GnuPG non può essere eseguito dal percorso impostato. Enigmail rimarrà quindi disattivato fino a quando non imposterai di nuovo il percorso di GnuPG o non riavvierai l'applicazione. -warningsAreReset=Tutti gli avvisi sono stati riattivati. -prefs.gpgFound=GnuPG è stato trovato in %S -prefs.gpgNotFound=Impossibile trovare GnuPG -prefs.warnAskNever=Attenzione: l'attivazione di questa opzione implica l'invio automatico di email in chiaro senza nessuna ulteriore comunicazione in mancanza di chiavi disponibili per anche uno solo dei destinatari -- Enigmail non mostrerà nessun messaggio di avvertimento nel caso in cui questa eventualità si verifichi! -prefs.warnIdleTimeForUnknownAgent=Impossibile connettersi a gpg-agent. Il tuo sistema utilizza uno strumento specializzato per la gestione della chiave segreta come gnome-keyring o seahorse-agent. Sfortunatamente, Enigmail non può controllare il timeout della frase segreta per lo strumento utilizzato. Perciò le relative impostazioni di timeout in Enigmail sono ignorate. -prefEnigmail.oneKeyserverOnly=Errore - puoi specificare un solo server per lo scaricamento automatico delle chiavi OpenPGP mancanti. -acSetupMessage.desc=Trasferisci la tua chiave a un altro dispositivo con Autocrypt (Cos'è Autocrypt) -aboutLicense.desc=Enigmail è open source e rilasciato nei termini della licenza Mozilla Public License 2.0.. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Inserisci l'Admin PIN della tua smartcard -enterCardPin=Inserisci il PIN della tua smartcard - -notInit=Errore - servizio Enigmail non ancora inizializzato badCommand=Errore - comando di cifratura non riuscito cmdLine=riga di comando e risultato: -notRequired=Errore - cifratura non richiesta -notComplete=Errore - la creazione della chiave non è ancora completata -invalidEmail=Errore - indirizzo/i email non valido/i noPassphrase=Errore - passphrase non inserita noPGPblock=Errore - non è stato trovato nessun blocco valido di dati OpenPGP -unverifiedReply=La parte di messaggio citata (in risposta) è stata probabilmente modificata -keyInMessageBody=È stata trovata una chiave nel corpo del messaggio. Clicca su 'Importa Chiave' per importare la chiave. -sigMismatch=Errore - firma non corrispondente -cantImport=Errore durante l'importazione della chiave pubblica\n\n -doImportOne=Vuoi importare %1$S (%2$S)? -doImportMultiple=Vuoi importare le seguenti chiavi?\n\n%S -previewFailed=Impossibile leggere il file della chiave pubblica. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=La smartcard %S trovata nel lettore non può essere utilizzata per elaborare il messaggio.\nInserisci la smartcard %S e ripeti l'operazione. sc.insertCard=L'operazione richiede la tua smartcard %S.\nInserisci la smartcard richiesta e ripeti l'operazione. sc.removeCard=L'operazione richiede che non ci siano smartcard nel lettore.\nRimuovi la tua smartcard e ripeti l'operazione. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Impossibile accedere al lettore di smartcard \nCollega il lettore, inserisci la scheda e ripeti l'operazione. keyError.keySpecNotFound=L'indirizzo di posta '%S' non corrisponde a una chiave del tuo portachiavi. keyError.keyIdNotFound=L'ID chiave configurato '%S' non è stato trovato nel tuo portachiavi. -keyError.resolutionAction=Seleziona un chiave valida nella sezione OpenPGP delle impostazioni del tuo account. missingPassphrase=Frase segreta mancante errorHandling.gpgAgentInvalid=Il tuo sistema esegue una versione di gpg-agent non appropriata alla tua versione di GnuPG. errorHandling.gpgAgentError=GnuPG ha segnalato un errore nella comunicazione con gpg-agent (un componente di GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG non è in grado di interrogare la tua frase segreta tramite pinentry. errorHandling.pinentryCursesError=La tua installazione GnuPG è configurata per usare la console per pinentry. Tuttavia, quando usi Enigmail è necessaria una versione con interfaccia grafica di pinentry. errorHandling.readFaq=Questa è una configurazione di sistema o un errore di configurazione che impedisce a Enigmail di funzionare correttamente e non può essere corretta automaticamente.\n\nTi consigliamo di consultare il nostro sito web di supporto su https://enigmail.net/faq. - gpgNotFound=Impossibile trovare l'eseguibile di GnuPG '%S'.\nAssicurati di aver impostato correttamente il percorso dell'eseguibile di GnuPG nelle impostazioni di Enigmail. gpgNotInPath=Impossibile trovare l'eseguibile di GnuPG nel PATH.\nAssicurati di aver impostato correttamente il percorso dell'eseguibile di GnuPG nelle impostazioni di Enigmail. enigmailNotAvailable=Il servizio principale di Enigmail non è disponibile - -prefGood=Firma autentica per %S -prefBad=Firma NON autentica per %S - failCancel=Errore - ricezione chiave annullata dall'utente failKeyExtract=Errore - comando di estrazione chiave non riuscito -failKeyNoSubkey=Nessuna (sotto)chiave valida notFirstBlock=Errore - il primo blocco di dati OpenPGP non è una chiave pubblica importKeyConfirm=Importare la/e chiave/i pubblica/he inserita/e nel messaggio? -failKeyImport=Errore - importazione chiave non riuscita fileWriteFailed=Impossibile scrivere nel file %S - importKey=Importa la chiave pubblica %S dal server: uploadKey=Invia la chiave pubblica %S al server: keyId=ID chiave -keyAndSigDate=ID chiave: 0x%S / Firmata il: %S -keyFpr=Impronta della chiave: %S -noEmailProvided=Non hai fornito nessun indirizzo email! -keyAlreadySigned=La chiave è già firmata, non puoi firmarla due volte. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=scaduta %S createdHeader=Creata atLeastOneKey=Nessuna chiave selezionata! Devi selezionare almeno una chiave per proseguire fewerKeysThanRecipients=Hai selezionato un numero di chiavi inferiore a quello dei destinatari. Sei sicuro che l'elenco delle chiavi con cui cifrare sia completo? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Seleziona una chiave segreta OpenPGP per firmare i messaggi userSel.problemNoKey=Nessuna chiave valida userSel.problemMultipleKeys=Chiavi multiple -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Invia più tardi - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=NOTA: PGP/MIME non è supportato da tutti i client di posta elettronica. Se hai dei dubbi, seleziona l'opzione %S. first=primo second=secondo - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Scegli la chiave OpenPGP per la cifratura -identityName=Identità: %S -switchPepMode=Stai utilizzando attualmente la modalità 'p≡p Junior' di Enigmail.\n\nAbilitando OpenPGP o S/MIME per un account, stai disabilitando p≡p e utilizzi la modalità 'normale' di Enigmail senza p≡p. -enableEnigmail=&Disabilita p≡p -amPrefAutocrypt.desc=Autocrypt è uno standard che definisce come realizzare una cifratura end-to-end pratica delle email. Specifica come i programmi email debbano negoziare i meccanismi di cifratura tramite delle email normali. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Hai attivato la cifratura, ma non hai selezionato nessuna chiave. Per cifrare i messaggi inviati a %S, devi specificare una o più chiavi valide dalla tua lista delle chiavi. Vuoi disattivare la cifratura per %S? -noKeyToUse=(nessuna - nessuna cifratura) -noEmptyRule=La regola non può essere vuota! Specifica un indirizzo email nel campo della regola. -invalidAddress=Gli indirizzi email che hai specificato non sono validi. Non devi digitare anche il nome dei destinatari, ma solo gli indirizzi email. Ad es.:\nNon valido: Nome Cognome \nValido: nome.cognome@indirizzo.net -noCurlyBrackets=Le parentesi graffe {} hanno un significato particolare\ne dovrebbero essere usate per un indirizzo di posta elettronica.\nSe vuoi modificare il comportamento di questa regola, usa\nl'opzione: 'Applica questa regola se il destinatario ---'.\nUlteriori informazioni sono disponibili utilizzando il pulsante di Aiuto. - -# Strings used in enigmailRulesEditor.js never=Mai always=Sempre possible=Possibile -deleteRule=Vuoi davvero eliminare la regola selezionata? -nextRcpt=(Destinatario successivo) -negateRule=Non -addKeyToRule=Aggiungi la chiave %S (%S) a una regola per destinatario - -# Strings used in enigmailSearchKey.js -needOnline=La funzione che hai selezionato non è disponibile nella modalità non in linea. Vai in linea e riprova. -noKeyserverConn=Impossibile collegarsi al server delle chiavi a %S. -internalError=Si è verificato un errore interno. Non è stato possibile né scaricare le chiavi, né importarle. -noKeyFound=Non abbiamo trovato alcuna chiave per i criteri di ricerca specificati. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Impostazione della fiducia nel proprietario non riuscita - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Firma della chiave non riuscita -alreadySigned.label=Nota: la chiave %S è già stata firmata con la chiave segreta selezionata. -alreadySignedexportable.label=Nota: la chiave %S è già firmata come esportabile con la chiave privata selezionata. Una firma locale non ha senso. -partlySigned.label=Nota: alcuni ID utente della chiave %S sono già firmati con la chiave segreta selezionata. -noTrustedOwnKeys=Non è stata trovata alcuna chiave idonea per firmare! Hai bisogno almeno di una chiave privata definitivamente affidabile per firmare le chiavi. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Caricamento delle chiavi in corso, attendere... keyValid.unknown=sconosciuta keyValid.invalid=non valida keyValid.disabled=disabilitata keyValid.revoked=revocata keyValid.expired=scaduta keyValid.noSubkey=non ci sono sottochiavi valide - -keyTrust.untrusted=senza fiducia +keyValid.valid=valido +keyValid.ownKey=mazzo di chiavi +keyTrust.untrusted=non attendibile keyTrust.marginal=marginale keyTrust.full=fidata keyTrust.ultimate=definitiva keyTrust.group=(gruppo) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Abilita chiave -keyMan.disableKey=Disabilita chiave userAtt.photo=Attributo dell'utente (immagine JPEG) - -asciiArmorFile=File con armatura ASCII (*.asc) importKeyFile=Importa file di chiave OpenPGP -gnupgFile=File di GnuPG -saveRevokeCertAs=Crea e salva certificato di revoca -revokeCertOK=Il certificato di revoca è stato creato correttamente. Puoi usarlo per togliere validità alla tua chiave pubblica, come nel caso in cui tu perda la tua chiave privata. -revokeCertFailed=Il certificato di revoca non può essere creato. - -addUidOK=ID utente aggiunto correttamente -addUidFailed=Aggiunta dello ID utente non riuscita -noKeySelected=Devi selezionare almeno una chiave per poter eseguire l'operazione selezionata -exportToFile=Esporta la chiave pubblica in un file -exportKeypairToFile=Esporta chiave privata e pubblica su file -exportSecretKey=Vuoi includere anche la chiave privata nel file di chiave OpenPGP che viene salvato? -saveKeysOK=Le chiavi sono state salvate correttamente -saveKeysFailed=Salvataggio delle chiavi non riuscito -importKeysFailed=Importazione delle chiavi non riuscita -enableKeyFailed=Abilitazione/disabilitazione delle chiavi non riuscita -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Chiavi-pubbliche-esportate -defaultPubSecKeyFilename=Chiavi-pubbliche-e-private-esportate - -sendKeysOk=Chiave/i inviata/e correttamente -sendKeysFailed=Invio delle chiavi non riuscito -receiveKeysOk=Chiave/i aggiornata/e correttamente -receiveKeysFailed=Scaricamento della/e chiave/i non riuscito -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Vuoi importare alcune chiavi dagli appunti? -importFromUrl=Scarica la chiave pubblica da questo URL: -copyToClipbrdFailed=Impossibile copiare le chiavi selezionate negli appunti. -copyToClipbrdOK=Chiave/i copiata/e negli appunti - -# deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=ATTENZIONE: Stai per eliminare delle chiavi private!\nSe elimini la tua chiave privata, non sarai più in grado di decifrare alcun messaggio cifrato per quella chiave.\n\nVuoi davvero eliminarle TUTTE, sia le chiavi private che le chiavi pubbliche? -deletePubKey=Vuoi eliminare la chiave pubblica\n'%S'? -deleteSelectedPubKey=Vuoi eliminare le chiavi pubbliche? -deleteKeyFailed=La chiave non può essere eliminata. +importPubKeysFailed=Le seguenti chiavi pubbliche potrebbero non essere importate in Thunderbird:\n\n%S +importSecKeysFailed=Le seguenti chiavi segrete potrebbero non essere importate in Thunderbird:\n\n%S +deleteSecretKey=ATTENZIONE: Stai per eliminare una chiave segreta!\nSe tu elimini la tua chiave segreta, non potrai più decifrare alcun messaggio cifrato per questa chiave, o non potrai più revocarla. revokeKeyQuestion=Stai per revocare la chiave '%S'.\n\nNon sarai più in grado di firmare con questa chiave, e, una volta distribuita, gli altri non saranno in grado di cifrare con la tale chiave. Puoi ancora utilizzare la chiave per decifrare i vecchi messaggi.\n\nVuoi continuare? -revokeKeyOk=La chiave è stata revocata. Se la tua chiave è disponibile su un server, è consigliabile spedirgliela di nuovo, così che tutti possano vedere la revoca. -revokeKeyFailed=La chiave non può essere revocata. -# revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! +revokeKeyNotPresent=Non hai alcuna chiave (0x%S) che corrisponde a questo certificato di recava!\n\nSe hai perso la tua chiave, dovrai importarla (es. da un serve di chiavi) prima d'importare il certificato di revoca! revokeKeyAlreadyRevoked=La chiave 0x%S è già stata revocata. -refreshAllQuestion=Non hai selezionato nessuna chiave. Vuoi ricaricare TUTTE le chiavi? -refreshKeyServiceOn.warn=Avviso: le tue chiavi sono in fase di aggiornamento sullo sfondo con la massima sicurezza possibile.\nL'aggiornamento di tutte le tue chiavi in un'unica soluzione rivelerà, senza che sia necessario, informazioni sul tuo conto.\nVuoi farlo davvero? -refreshKey.warn=Attenzione: in base al numero delle chiavi e alla velocità di connessione, ricaricare tutte le chiavi può essere un processo molto lungo! -downloadContactsKeys.warn=Avviso: in base al numero di contatti e alla velocità di connessione, lo scaricamento di tutte le chiavi potrebbe risultare un processo molto lungo. -downloadContactsKeys.importFrom=Vuoi importare i contatti dalla rubrica '%S'? -keyMan.button.exportSecKey=Esporta chiavi &segrete -keyMan.button.exportPubKey=Esporta solo le chiavi &pubbliche keyMan.button.import=&Importa -keyMan.button.refreshAll=&Ricarica tutte le chiavi keyMan.button.revokeKey=&Revoca chiave - -keylist.noOtherUids=Non ha altre identità -keylist.hasOtherUids=Noto anche come -keylist.noPhotos=Nessuna foto disponibile -keylist.hasPhotos=Foto - -keyMan.addphoto.filepicker.title=Seleziona foto da aggiungere -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Il file selezionato non sembra essere un file JPEG. Scegli un altro file. -keyMan.addphoto.failed=La foto non può essere aggiunta. -noWksIdentity=La chiave %S non ha un'identità WKS. -wksUpload.noKeySupported=Il caricamente non ha avuto successo - il tuo provider non sembra supportare WKS. - -keyman.addBlacklistKey.msg=Vuoi davvero che p≡p smetta di usare la chiave '%1$S (%2$S)' per cifrare i messaggi? -keyman.removeBlacklistKey.msg=Vuoi consentire a p≡p l'uso della chiave '%1$S (%2$S)' per i prossimi messaggi? -keyman.addBlacklistKey.button=Ins&erisci la chiave nella lista nera -keyman.removeBlacklistKey.button=&Rimuovi la chiave dalla lista nera - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Cambiamento dell'ID utente primario non riuscito -changePrimUidOK=L'ID utente primario è stato cambiato correttamente -revokeUidFailed=Revoca dell'ID utente %S non riuscita -revokeUidOK=L'ID utente %S è stato revocato con successo. Se la tua chiave è disponibile su un server delle chiavi, è consigliabile caricarla di nuovo, così che tutti possano vedere la revoca. -revokeUidQuestion=Vuoi veramente revocare l'ID utente %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUCCESSO! Chiavi importate -importInfoBits=Bit -importInfoCreated=Creato il -importInfoFpr=Impronta digitale -importInfoDetails=(Dettagli) -importInfoNoKeys=Nessuna chiave importata. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=chiave pubblica -keyTypePrimary=chiave principale -keyTypeSubkey=sottochiave -keyTypePair=coppia di chiavi -keyExpiryNever=mai keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Cifra -keyUsageSign=Firma -keyUsageCertify=Certifica -keyUsageAuthentication=Autenticazione -keyDoesNotExpire=La chiave non scade - -# Strings in enigmailGenCardKey.xul -keygen.started=Attendi mentre la chiave viene generata... -keygen.completed=Chiave generata. Il nuovo ID chiave è: 0x%S -keygen.keyBackup=La copia della chiave viene salvata in %S -keygen.passRequired=Inserisci una frase segreta se vuoi creare una copia di sicurezza della tua chiave al di fuori della tua smartcard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Cambiamento di PIN non riuscito - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Aggiornamento chiavi in corso, attendere... -keyserverProgress.uploading=Invio chiavi in corso, attendere... -keyserverProgress.wksUploadFailed=Impossibile caricare la tua chiave sul servizio WebKey -keyserverProgress.wksUploadCompleted=La tua chiave pubblica è stata inviata correttamente al tuo fornitore. Riceverai un messaggio per confermare che hai iniziato il caricamento. -keyserverTitle.refreshing=Ricarica le chiavi -keyserverTitle.uploading=Invia la chiave -keyserver.result.download.none=Nessuna chiave scaricata. -keyserver.result.download.1of1=Chiave scaricata correttamente. -keyserver.result.download.1ofN=Scaricata correttamente 1 chiave di %S. -keyserver.result.download.NofN=Scaricate correttamente %1$S chiavi di %2$S. -keyserver.result.uploadOne=Caricata correttamente 1 chiave. -keyserver.result.uploadMany=Caricate correttamente %S chiavi. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Il file specificato non è un eseguibile GnuPG. Scegli un altro file. -setupWizard.installFailed=Sembra che l'installazione non sia avvenuta correttamente. Prova nuovamente l'installazione o installa GnuPG manualmente e individua l'eseguibile utilizzando il pulsante Sfoglia. -setupWizard.downloadForbidden=Per la tua sicurezza, non scaricheremo GnuPG. Visita https://gnupg.org/ per scaricare GnuPG. -setupWizard.downloadImpossible=Impossibile scaricare GnuPG attualmente. Prova più tardi o visita https://gnupg.org/ per scaricare GnuPG. -setupWizard.hashSumError=Il wizard non ha potuto verificare l'integrità dei file scaricati.\nI file potrebbero essere corrotti o essere stati manomessi. Vuoi continuare l'installazione comunque? -setupWizard.importSettingsFile=Specifica il file di backup da caricare -setupWizard.invalidSettingsFile=Il file specificato non è un file di backup valido delle impostazioni di Enigmail. -setupWizard.gpgConfExists=Il file di configurazione di GnuPG esiste già. Vuoi sovrascriverlo con quello della tua vecchia installazione? -setupWizard.noGpgHomeDir=Sembra che tu abbia configurato %S perché sia usato con GnuPG. Tuttavia, questa non è una directory - non puoi usarlo. -setupWizard.unmachtedIds=Le seguenti identità della tua vecchia installazione potrebbero non essere verificate:\n%S\nLe impostazioni per queste identità sono state ignorate. -setupWizard.foundAcSetupMessage=Trovato Autocrypt Setup Message. Per iniziare il processo di configurazione di Autocrypt, clicca sul bottone Inizia Installazione qui sotto. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -setupWizard.setupComplete=Enigmail adesso è configurato e pronto all'uso. Per ulteriori informazioni riguardo all'uso di Enigmail visita la nostra pagina. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Si è verificato un errore durante il tentativo di scaricamento di GnuPG. Controlla il log per ulteriori dettagli. -installGnuPG.installFailed=Si è verificato un errore durante l'installazione di GnuPG. Controlla il log per ulteriori dettagli. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Devi inserire un nome e un indirizzo email -addUidDlg.nameMinLengthError=Il nome deve contenere almeno 5 caratteri -addUidDlg.invalidEmailError=Devi specificare un indirizzo email valido - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Le smartcard OpenPGP supportano solo caratteri ASCII in Nome/Cognome. - - -# network error types +setupWizard.selectKeysButton=Seleziona Chiavi errorType.SecurityCertificate=Il certificato di sicurezza presentato dal servizio web non è valido. errorType.SecurityProtocol=Il protocollo di sicurezza utilizzato dal servizio web è sconosciuto. errorType.Network=Si è verificato un errore di rete. - -# filter stuff -filter.folderRequired=Devi selezionare una cartella di destinazione. -filter.decryptMove.label=Decifra permanentemente (Enigmail) -filter.decryptCopy.label=Crea copia decifrata (Enigmail) -filter.decryptMove.warnExperimental=Avviso - l'azione di filtraggio "Decifra permanentemente" potrebbe provocare il danneggiamento dei messaggi.\n\nTi consigliamo vivamente di provare prima il filtro "Crea copia decifrata", verificare attentamente il risultato e iniziare a utilizzare questo filtro solo quando sei soddisfatto del risultato. -filter.tempPepFilterDesc=Filtro temporaneo per memorizzare senza cifratura il messaggio inviato -filter.term.pgpencrypted.label=Cifrato con OpenPGP -filter.encrypt.label=Cifra su chiave (Enigmail) -filter.keyRequired=Devi selezionare la chiave una chiave del destinatario. -filter.keyNotFound=Impossibile trovare una chiave di cifratura per "%S". -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Salva file di registro - -# strings in gpg.jsm -unknownSigningAlg=Algoritmo di firma sconosciuto (ID: %S) -unknownHashAlg=Hash crittografico sconosciuto (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=La chiave %1$S (ID chiave %2$S) è revocata. keyRing.pubKeyExpired=La chiave %1$S (ID chiave %2$S) è scaduta. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Tutte le sottochiavi di cifratura della chiave %1$S (ID chiave %2$S) sono scadute. keyRing.noSecretKey=Sembra che tu non abbia una chiave segreta per %1$S (ID chiave %2$S) nel tuo portachiavi; non puoi utilizzare la chiave per firmare. keyRing.encSubKeysUnusable=Tutte le sottochiavi di cifratura della chiave %1$S (ID chiave %2$S) sono revocate, scadute o altrimenti non utilizzabili. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Impossibile salvare sul file '%S'. Seleziona un altro file. dataExportError=Si è verificato un errore durante l'esportazione dei tuoi dati. -enigmailSettings=Impostazioni di Enigmail -defaultBackupFileName=Esportazione di Enigmail -specifyExportFile=Specifica il nome del file per l'esportazione -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm -# expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. -# expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. -# expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. +expiry.keyExpiresSoon=La tua chiave %1$S scadrà in meno di %2$S giorni.\n\nTi raccomandiamo di creare un nuova coppia di chiavi e configurare gli accounts corrispondenti per usarle. +expiry.keysExpireSoon=Le seguenti chiavi scadranno in meno di %1$S giorni:\n%2$S. Ti raccomandiamo di creare una nuova coppia di chiavi e configurare gli accounts corrispondenti per usarle. +expiry.keyMissingOwnerTrust=La tua chiave segreta %S possiede mancante affidabilità.\n\nTi raccomandiamo d'impostare "Affidati ai certificati" a "definitivo" nelle proprietà chiave. +expiry.keysMissingOwnerTrust=Il seguente del tuo segreto chiavi ha una mancata affidabilità.\n%S.\nTi raccomandiamo d'impostare "Affidati ai certificati" a "definitivo" nelle proprietà chiave. expiry.OpenKeyManager=Apri gestione delle chiavi di Enigmail expiry.OpenKeyProperties=Apri proprietà della chiave - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Questo è un messaggio cifrato. Sfortunatamente non hai la chiave privata per decifrare il messaggio. - -#strings in gpgAgent.jsm gpghomedir.notexists=La cartella '%S' che contiene le tue chiavi OpenPGP non esiste e non può essere creata. gpghomedir.notwritable=La cartella '%S' che contiene le tue chiavi OpenPGP non è scrivibile. gpghomedir.notdirectory=La cartella '%S' che contiene le tue chiavi OpenPGP è un file e non una cartella. gpghomedir.notusable=Correggi i permessi della cartella o cambia la posizione della tua cartella di GnuPG. Altrimenti, GnuPG non può funzionare correttamente. -# gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Impossibile verificare le trustword di p≡p per il proprio account. -pepTrustWords.cannotFindKey=Impossibile trovare la chiave per %S. -pepTrustWords.cannotStoreChange=Impossibile modificare la fiducia per %S. -pepTrustWords.generalFailure=Impossibile ottenere le trustword per %S. -pepTrustWords.partnerFingerprint=Impronta digitale per %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Il tuo fornitore di posta elettronica ha elaborato la tua richiesta di caricare la chiave pubblica nella directory WebKey di OpenPGP.\n\nFai clic sul pulsante di conferma nell'intestazione di Enigmail per completare la pubblicazione della tua chiave pubblica. -wkdMessage.body.process=Questo è un messaggio relativo all'elaborazione automatica per caricare la tua chiave pubblica sulla directory WebKey di OpenPGP.\n\nNon devi eseguire alcuna azione manuale a questo punto. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Tu o il mittente dovreste inviare nuovamente il messaggio. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Se hai composto questo messaggio, la tua chiave non è disponibile. -pepPrivacyStatus.RatingMistrustSuggestion=Stabilisci nuovamente la connessione con il tuo interlocutore e prova a completare un altro handshake. -pepPrivacyStatus.RatingReliableSuggestion=Completa un handshake con il tuo interlocutore scambiando le trustword di persona o telefonicamente. Un handshake è necessario solo una volta per interlocutore e assicurerà comunicazioni sicure e affidabili. -pepPrivacyStatus.RatingTrustedSuggestion=Nessuna azione richiesta! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Tieni presente che questo messaggio potrebbe non essere sicuro. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Aggiungi le informazioni necessarie. -pepPrivacyStatus.RatingUnderAttackSuggestion=Verifica che il contenuto di questo messaggio con il tuo interlocutore tramite un altro canale. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Accertati che lo stato della privacy per ciascun interlocutore sia almeno "sicuro". -pepPrivacyStatus.RatingUnencryptedSuggestion=Chiedi al tuo interlocutore di utilizzare una soluzione di cifratura o installare p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Questo messaggio ha una cifratura o formattazione danneggiata. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Questo messaggio non può essere decifrato poiché la chiave non è disponibile. -pepPrivacyStatus.RatingMistrustExplanation=Questo messaggio ha un interlocutore che precedentemente è stato marcato come diffidato. -pepPrivacyStatus.RatingReliableExplanation=Questo messaggio è sicuro, ma devi comunque verificare l'identità del tuo interlocutore. -pepPrivacyStatus.RatingTrustedExplanation=Questo messaggio è sicuro e affidabile. -pepPrivacyStatus.RatingUndefinedExplanation=Questo messaggio non contiene informazioni sufficienti per determinare se è sicuro. -pepPrivacyStatus.RatingUnderAttackExplanation=Questo messaggio non è sicuro ed è stato alterato. -pepPrivacyStatus.RatingUnencryptedExplanation=Questo messaggio non è sicuro. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Questo messaggio non è sicuro per alcuni interlocutori. -pepPrivacyStatus.RatingUnreliableExplanation=Questo messaggio ha una protezione non affidabile. - -pepPrivacyStatus.RatingBrokenText=Danneggiato -pepPrivacyStatus.RatingHaveNoKeyText=Impossibile decifrare -pepPrivacyStatus.RatingMistrustText=Diffidato -pepPrivacyStatus.RatingReliableText=Sicuro -pepPrivacyStatus.RatingTrustedText=Sicuro e affidabile -pepPrivacyStatus.RatingUndefinedText=Sconosciuto -pepPrivacyStatus.RatingUnderAttackText=Sotto attacco -pepPrivacyStatus.RatingUnencryptedForSomeText=Non sicuro per alcuni -pepPrivacyStatus.RatingUnencryptedText=Non sicuro -pepPrivacyStatus.RatingUnreliableText=Sicurezza inaffidabile - -handshakeDlg.button.initHandshake=Handshake... -handshakeDlg.button.stopTrust=Interrompi fiducia -handshakeDlg.button.reTrust=Interrompi diffida -handshakeDlg.label.outgoingMessage=Messaggio in uscita -handshakeDlg.label.incomingMessage=Messaggio in arrivo -handshakeDlg.error.noPeers=Impossibile eseguire l'handshake senza alcun interlocutore. -handshakeDlg.error.noProtection=Abilita la protezione per utilizzare la funzione "Handshake". - -enigmail.acSetupPasswd.descEnterPasswd=Digita il codice di configurazione che è visualizzato sull'altro dispositivo. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Messaggio di configurazione Autocrypt -autocrypt.setupMsg.msgBody=Per configurare il tuo nuovo dispositivo per Autocrypt, segui le istruzioni che dovrebbero essere presentate dal tuo nuovo dispositivo. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Cosa c'è di nuovo in Enigmail v2.0? -upgradeInfo.welcome1=Benvenuto nella nuova versione 2.0 di Enigmail! -upgradeInfo.welcome2=La versione contiene molte funzionalità nuove e modificate. Prenditi un minuto per scoprire le novità: -upgradeInfo.encSubject.title=Cifrare l'oggetto del messaggio -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -upgradeInfo.buttons.title=Comportamento dei pulsanti Cifra e Firma cambiato -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -upgradeInfo.autocrypt.title=Supporto per Autocrypt -upgradeInfo.autocrypt.desc=Enigmail ora supporta Autocrypt, un nuovo standard per distribuire le chiavi come parte dei messaggi inviati. Enigmail importa automaticamente la chiavi da messaggi compatibili con Autocrypt, in modo da poter cifrare ancora più messaggi di posta con il passare del tempo. -upgradeInfo.pEp.title=Nuova modalità Junior di p≡p (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Visita la nostra documentazione per aiuto sull'utilizzo di Enigmail. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Per utilizzare Enigmail/p≡p, è richiesto GnuPG. Poiché non riusciamo a trovarlo, ti consigliamo di scaricarlo e installarlo. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +gpgAgent.noAutostart=Stai usando la versione%S GnuPG. Questa versione richiede che tu esegua gpg-agent prima che Tunderbird venga avviato, e che questa variabile d'ambiente "GPG_AGENT_INFO" sia pre caricata.\n\nQueste precondizioni non sono soddisfatte - non puoi usare Enigmail finché non risolvi questo problema. +upgradeInfo.doctitle=Arrivederci da Enigmail +upgradeInfo.welcome1=La crittografia OpenPGP da adesso parte di Thunderbird +upgradeInfo.welcome2=Enigmail non è più richiesto in Thundebird, ed è diventato obsoleto - questa è la versione finale di Enigmail per Thunderbird. +upgradeInfo.migrateSettings.title=Migra la tue chiavi ed impostazioni da GnuPG a Thunderbird +upgradeInfo.migrateSettings.desc=Prima di disinstallare Enigmail, rimane che tu importi le tue chiavi da GnuPG in Thunderbird, migrando alcune importanti impostazioni da Enigmail in Thunderbird. Abbiamo preparato un processo automatico che eseguirà questi passaggi per te. +upgradeInfo.performMigration.buttonLabel=Avvia Migrazione Adesso +upgradeInfo.thankyou.title=Grazie per aver usato Enigmail +upgradeInfo.thankyou.desc1=E' stato un piacere lavorare a Enigmail per quasi due decenni. Siamo grati al poter aver contributo all'idea della crittografia emails. Speriamo che tu abbia trovato Enigmail utile e vorremmo ringraziarti per il tuo continuo supporto durante questi tanti anni. +upgradeInfo.thankyou.desc2=Se vuoi aiutare, per favore considera donare a Thunderbird . aboutEnigmail.tabName=Informazioni su Enigmail aboutEnigmail.title=Supporto OpenPGP fornito da Enigmail aboutEnigmail.team=Enigmail è sviluppato dalla squadra di Enigmail: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licenza e supporto aboutEnigmail.license=Enigmail OpenPGP è open source e rilasciato nei termini della %S aboutEnigmail.support=Supporto e download disponibili su www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Aggiornamento GnuPG -updateGnuPG.title=Aggiornamenti per GnuPG -updateGnuPG.introduction.desc=Enigmail richiede GnuPG per eseguire le sue funzioni crittografiche. Consigliamo di tenere aggiornata la tua installazione di GnuPG. -updateGnuPG.updateRequired=Una nuova versione di GnuPG è disponibile. Consigliamo vivamente di tenere aggiornata la tua installazione di GnuPG. Fai clic sul pulsante Installa aggiornamento per scaricare e installare l'aggiornamento. -updateGnuPG.noUpdateRequired=GnuPG è aggiornato. -updateGnuPG.cannotUpdate.header=Enigmail supporta solo l'aggiornamento dei pacchetti seguenti: -updateGnuPG.cannotUpdate.footer=Sembra che tu stia utilizzando una variante di GnuPG; sfortunatamente Enigmail non è in grado perciò di aggioranre la tua installazione di GnuPG. -updateGnuPG.installUpdate=Installa aggiornamento -updateGnuPG.noMoreUpdates=Non controllare aggiornamenti futuri updateGnuPG.checkUpdate=Controlla aggiornamenti di GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=Interrotto -keyserver.error.unknown=Si è verificato un errore sconosciuto -keyserver.error.serverError=Il server delle chiavi ha restituito un errore. -keyserver.error.importError=Importazione della chiave scaricata non riuscita. -keyserver.error.unavailable=Il server delle chiavi non è disponibile. -keyserver.error.securityError=Il server delle chiavi non supporta l'accesso cifrato. -keyserver.error.certificateError=Il certificato del server delle chiavi non è valido. -keyserver.error.unsupported=Il server delle chiavi non è supportato da Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Parte del messaggio cifrato -mimeDecrypt.encryptedPart.concealedData=Questo è una parte del messaggio cifrato. Devi aprirlo in una finestra separata facendo clic sull'allegato. - -#strings in gnupg-key.jsm import.secretKeyImportError=Si è verificato un errore in GnuPG durante l'importazione delle chiavi segrete. L'importazione non è avvenuta correttamente. - -#strings in importSettings.js -importSettings.errorNoFile=Il file specificato non è un file normale! -importSettings.cancelWhileInProgress=Il ripristino è in corso. Vuoi davvero interrompere il processo? -importSettings.button.abortImport=&Interrompi processo +passphrasePrompt=Per favore digita la frase segreta per le seguente chiave: %S +openpgpInitError=Si è verificato un errore durante l'inizializzazione dell'infrastruttura OpenPGP in Thunderbird.\n\nLa procedura guidata di migrazione non può continuare se OpenPGP non è correttamente inizializzato in Thunderbird. diff -Nru enigmail-2.1.6+ds1/lang/it/help/compose.html enigmail-2.2.4/lang/it/help/compose.html --- enigmail-2.1.6+ds1/lang/it/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ - -Enigmail Help: Composizione del Messaggio - - -

Enigmail Help

- -

Usare Enigmail durante la composizione dei messaggi

- -
    -
  • Menu di Enigmail nella finestra di Composizione dei messaggi -
      -
    • Firma il messaggio: Abilita/disabilita l'invio del messaggio firmato. L'utente viene avvertito se l'operazione di firma fallisce. -
    • -
    • Cifra il messaggio: Abilita/disabilita la cifratura per tutti i destinatari prima dell'invio. L'utente viene avvertito se l'operazione di cifratura fallisce. -

      Se in Impostazioni -> Scelta della chiave è stato impostato Mostra la finestra di selezione solo quando è necessario, e tra i destinatari del messaggio figurano indirizzi a cui non corrisponde nessuna delle chiavi pubbliche in tuo possesso, al momento dell'invio verrà mostrata una lista di chiavi tra cui scegliere.

      -

      Se in Impostazioni -> Scelta della chiave è stato impostato Non mostrare mai la finestra di selezione delle chiavi OpenPGP, e tra i destinatari del messaggio figurano indirizzi a cui non corrisponde nessuna delle chiavi pubbliche in tuo possesso, il messaggio sarà inviato come testo in chiaro, senza venire cifrato.

      -
    • -
    • Usa PGP/MIME per questo messaggio: Abilita/disabilita l'uso del formato PGP/MIME - per il messaggio corrente. -

      Se sai che i destinatari sono in grado di ricevere messaggi in formato PGP/MIME, allora faresti meglio ad usarlo.

      -

      La possibilità di attivare questa funzione dipende dall'avere impostato o meno Consenti l'uso di PGP/MIME, o Usa sempre PGP/MIME, in Impostazioni -> PGP/MIME.

      -
    • -
    • Impostazioni predefinite per la composizione: Sotto-menu. -
        -
      • Impostazioni di firma/cifratura...: scorciatoia per Configurazione account posta -> - OpenPGP. -
      • -
      • Impostazioni di invio...: scorciatoia per Impostazioni -> - invio. -
      • -
      • Impostazioni per la scelta della chiave...: scorciatoia per Impostazioni -> - Scelta della chiave. -
      • -
      • Impostazioni PGP/MIME...: scorciatoia per Impostazioni -> - PGP/MIME. -
      • -
      -
    • -
    • Annulla cifratura: Se si verifica un problema durante l'invio - del messaggio, se ad esempio il server rifiuta la richiesta, Enigmail non - avrà modo di saperlo e il messaggio continuerà ad - essere mostrato in formato cifrato nella finestra di composizione. Scegliendo - questa voce di menu, la firma/cifratura verranno annullate e nella - finestra di composizione apparirà nuovamente il testo in chiaro.
      - Come soluzione temporanea, questa opzione può anche essere usata per - decifrare il testo quotato quando si risponde a un messaggio cifrato. Enigmail - dovrebbe decifrare automaticamente il messaggio quotato, ma se cioò non - dovesse funzionare per qualche ragione, puoi usare questa voce di menu. -
    • -
    • Inserisci chiave pubblica: inserisci una chiave pubblica in formato - ASCII-armored a partire dalla posizione corrente del cursore nella finestra di - composizione. Ti verranno chiesti gli indirizzi email delle chiavi da inserire. - Le chiavi inserite in questo modo saranno automaticamente riconosciute da - Enigmail sul computer del destinatario. Dopo l'inserimento della chiave, - puoi ancora scegliere di cifrare/firmare il messaggio, se necessario. Attenzione - a non inserire più di un blocco di chiavi pubbliche in un messaggio; - specifica nel caso più indirizzi email, separati da virgole o spazi, per - lo stesso blocco. -
    • -
    • Cancella la passphrase memorizzata: Cancella la passphrase salvata in memoria. Utile se hai più di una passphrase. -
    • -
    • Aiuto: Mostra le informazioni di aiuto (questa pagina). -
    • -
    -
  • -
-
-

-Ulteriore aiuto è disponibile sul -sito web di Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/it/help/editRcptRule.html enigmail-2.2.4/lang/it/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/it/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ - -Enigmail Help: Modifica regole OpenPGP - - -

Enigmail Help

- -

Usare l'editor delle regole di Enigmail: Modifica di una regola OpenPGP

-

Nell'editor delle regole puoi specificare le impostazioni predefinite per ogni -destinatario per abilitare la cifratura, la firma, il formato PGP/MIME e per definire -quali chiavi OpenPGP usare. In questa finestra di dialogo, puoi specificare le regole -per un singolo destinatario o per un gruppo di destinatari con caratteristiche simili. -

-
    -
  • Imposta regole OpenPGP per : Contiene gli - indirizzi email dei destinatari (senza i nomi, ovvero solo indirizzi del tipo - nome.cognome@indirizzo.email). Puoi specificare indirizzi multipli, - separati sa spazi. - Gli indirizzi specificati qui possono consistere anche del solo dominio, in modo da - comprendere tutti i destinatari di quel dominio, ad esempio @indirizzo.email - corrisponderà sia a nome@indirizzo.email, - nome2@indirizzo.email, nome3@indirizzo.email, ecc. -
  • -
  • Applica la regola se il destinatario ...: - Questo modifica la corrispondenza dell'indirizzo email. - Se sono stati specificati indirizzi multipli, l'impostazione si applica a tutti. - Gli esempi qui sotto assumono che si stato immesso l'indirizzo nome@indirizzo.email - nel campo Regole OpenPGP sopra. -
      -
    • È esattamente: con questa impostazione, la regola viene - applicata solo ai messaggi indirizzati a nome@indirizzo.email - (corrispondenza esatta, maiuscole/minuscole ignorate). -
    • -
    • Contiene: con questa impostazione, la regola si applica a ogni - indirizzo contenente quello specificato, - ad esempio tuo.nome@indirizzo.email o altro.nome@indirizzo.email.suo -
    • -
    • Comincia con: con questa impostazione, la regola viene applicata a - ogni indirizzo che inizia con quello specificato, ad esempio - nome@indirizzo.email.suo, nome@indirizzo.email-2.suo. -
    • -
    • Finisce con: Con questa impostazione la regola viene applicata a - ogni indirizzo che finisce con quello specificato, ad esempio - tuonome@indirizzo.email o altro.nome@indirizzo.email -
    • -
    - -
  • -
  • Continua con la regola successiva per l'indirizzo corrispondente
    - Abilitare questa funzione ti permette di definire una regola senza dover specificare - un ID chiave nel campo Usa le seguenti chiavi OpenPGP:. In tal caso la - chiave da usare sarà scelta al momento dell'invio in base all'indirizzo email - del destinatario. Inoltre, saranno anche applicate le eventuali ulteriori regole per - lo stesso indirizzo. -
  • -
  • Non controllare le regole successive per l'indirizzo corrispondente
    - Abilitando questa funzione si impedisce l'applicazione di qualunque altra regola per - gli indirizzi corrispondenti, se questa regola viene applicata; il controllo delle - regole passa al destinatario seguente. -
  • -
  • Usa le seguenti chiavi OpenPGP:
    - Usa il pulsante Seleziona chiave/i.. per scegliere la chiave pubblica del - destinatario da usare per la cifratura. Come nel caso precedente, nessuna ulteriore - regola viene applicata allo stesso indirizzo. -
  • -
  • Impostazioni predefinite per... Firma: - abilita o disabilita - l'invio di messaggi firmati. Questa impostazione usa o ha la precedenza su - quella specificata nella finestra di composizione del messaggio. I valori - possibili sono: -
      -
    • Mai: disabilita la firma, anche se è attivata nella - finestra di composizione del messaggio (ha la precedenza sulle altre - impostazioni)
      -
    • -
    • Sì, se selezionato durante la composizione del messaggio: - usa l'impostazione specificata nella finestra - di composizione del messaggio -
    • -
    • Sempre: abilita la firma, anche se essa non è abilitata nella - finestra di composizione del messaggio -
    • -
    -
  • -
-
Le impostazioni sulla firma vengono -applicate per tutte le regole che corrispondono. Se una regola disabilita -la firma, il messaggio non verrà firmato, indipendentemente dalle -altre eventuali regole che specificano Sempre.
-
-
    -
  • Impostazioni predefinite per... Cifratura: abilita o disabilita - la cifratura del messaggio. Le possibili impostazioni sono le stesse della - firma e hanno lo stesso significato.
  • -
  • Impostazioni predefinite per... - PGP/MIME:abilita o disabilita - l'uso della codifica PGP/MIME (RFC 3156) per il messaggio. - Se PGP/MIME è disabilitato, i messaggi saranno codificati - usando "inline PGP". Le possibili impostazioni sono le stesse della - firma e hanno lo stesso significato. -
  • -
-

Le regole sono elaborate nell'ordine in cui appaiono nella lista -dell'Editor delle regole OpenPGP. -Se una regola è applicabile a un destinatario e contiene un ID chiave -OpenPGP, il destinatario, oltre a usare l'ID specificato, sarà ignorato -nell'elaborazione delle altre regole.

-
-

-Ulteriore aiuto è disponibile sulla -pagina web di Enigmail sulle regole per singolo destinatario -

- - diff -Nru enigmail-2.1.6+ds1/lang/it/help/initError.html enigmail-2.2.4/lang/it/help/initError.html --- enigmail-2.1.6+ds1/lang/it/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/it/help/messenger.html enigmail-2.2.4/lang/it/help/messenger.html --- enigmail-2.1.6+ds1/lang/it/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ - - Enigmail Help: Lettura dei messaggi - - -

Enigmail Help

- -

Usare Enigmail durante la lettura dei messaggi

-
    -
  • Pulsante Decifra nella finestra principale della posta
    - Questo pulsante può essere usato per molti scopi: decifrare, - verificare, o importare chiavi pubbliche. Di solito, la decifratura/verifica - dei messaggi viene fatta automaticamente, anche se questo può essere - disabilitato nelle impostazioni. Tuttavia, in caso di errori, apparirebbe - solo un breve messaggio nella barra di stato di Enigmail. Se premi il pulsante - Decifra, verrà mostrato un messaggio di errore più dettagliato, - che include anche l'output esatto di GnuPG. -
  • -
  • Icone della penna e della chiave tra le intestazioni del messaggio
    - Le icone Penna e Chiave tra le intestazioni del messaggio - indicano se esso è stato cifrato/firmato e se la firma è valida, - cioè se il messaggio non è stato modificato dopo la firma. Se ci - sono state modifiche, l'icona Penna apparirà come una Penna - spezzata per indicare che la firma non è valida. Premendo con il tasto - destro sulla penna o sulla chiave si visualizzerà un menu con le - seguenti opzioni: -
      -
    • Informazioni di sicurezza OpenPGP: mostra l'output di GnuPG per il - messaggio.
    • -
    • Copia le informazioni di sicurezza OpenPGP: copia l'output di GnuPG - negli appunti, ad esempio per incollarlo in un messaggio, ecc.
    • -
    • Mostra la foto-ID OpenPGP: Visualizza la Foto-ID del - mittente del messaggio, se una foto è presente nella sua chiave pubblica. - (Questa opzione è attiva solo se c'è una foto nella chiave - pubblica.)
    • -
    • Informazioni di sicurezza S/MIME: mostra le informazioni di sicurezza - S/MIME per il messaggio.
    • -
    -

    Se non hai impostato keyserver-options auto-key-retrieve nel file - gpg.conf file e visualizzi un messaggio firmato e/o cifrato, vedrai una - icona Penna tra le intestazioni del messaggio con un Punto - interrogativo su di essa, la riga di stato di Enigmail mostrerà la - scritta Parte del messaggio firmata; premi sull'icona della penna per i - dettagli e il messaggio nella finestra mostrerà tutte le - intestazioni OpenPGP e la firma in calce.

    -

    Puoi vedere questo messaggio anche se hai impostato keyserver-options - auto-key-retrieve nel file gpg.conf e la chiave OpenPGP richiesta - non è disponibile sul server della chiavi predefinito.

    -

    Premendo sull'icona Penna e punto interrogativo apparirà - una finestra che avverte che la chiave pubblica richiesta non è disponibile nel - tuo portachiavi. Premendo su OK apparirà un'altra finestra con una lista - di server di chiavi da cui potrai scegliere di scaricare la chiave pubblica del - mittente.

    -

    Per configurare la lista dei server di chiavi che vuoi usare, vai su - Enigmail -> - Impostazioni -> Generali e inserisci gli indirizzi dei server nella riga - Keyserver:, separati da una virgola. Il primo server sarà - considerato il predefinito.

    -
  • -
  • Apertura di allegati cifrati / importazioni di chiavi OpenPGP allegate
    - Gli allegati con estensioni *.pgp, *.asc e *.gpg sono riconosciuti da Enigmail - come allegati da trattare in modo speciale. Premendo con il tasto destro su tali - allegati, appariranno due speciali voci del menu contestuale: Decifra e - apri e Decifra e salva. Usa queste due voci se vuoi che Enigmail - decifri un allegato prima di aprirlo o salvarlo. Se un allegato è riconosciuto - essere una chiave OpenPGP, ti sarà offerta la possibilità di importarla - nel tuo portachiavi. -
  • -

-

-Ulteriore aiuto è disponibile sul -sito web di Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/it/help/rulesEditor.html enigmail-2.2.4/lang/it/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/it/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - -Enigmail Help: Editor delle regole - - -

Enigmail Help

- -

Usare l'editor delle regole di Enigmail

-

Nell'Editor delle regole, puoi specificare le impostazioni predefinite per ogni destinatario sull'abilitazione della cifratura, della firma del formato PGP/MIME, e sulla scelta della chiave OpenPGP da usare. Ogni regole è composta da 5 campi ed è rappresentata su una singola linea: -

-
    -
  • Email: L'indirizzo email che - compare nei campi A:, Cc: e Bcc:. La corrispondenza funziona anche per - sottostringhe (Ulteriori dettagli - possono essere trovati nella finestra di dialogo Modifica regola) -
  • -
  • Chiave/i OpenPGP: una lista di ID - chiave OpenPGP da usare per il destinatario
  • -
  • Firma: abilita o disabilita - l'invio di messaggi firmati. Questa impostazione usa o ha la precedenza su - quella specificata nella finestra di composizione del messaggio. I valori - possibili sono: -
      -
    • Mai: disabilita la firma, anche se è attivata nella - finestra di composizione del messaggio (ha la precedenza sulle altre - impostazioni)
      -
    • -
    • Possibile: usa l'impostazione specificata nella finestra - di composizione del messaggio
    • -
    • Sempre: abilita la firma, anche se essa non è abilitata nella - finestra di composizione del messaggio -
    • -
    -
  • -
-
Le impostazioni sulla firma vengono -applicate per tutte le regole che corrispondono. Se una regola disabilita -la firma, il messaggio non verrà firmato, indipendentemente dalle -altre eventuali regole che specificano Sempre.
-
-
    -
  • Cifra: abilita o disabilita - la cifratura del messaggio. Le possibili impostazioni sono le stesse della - firma e hanno lo stesso significato.
  • -
  • PGP/MIME: abilita o disabilita - l'uso della codifica PGP/MIME (RFC 3156) per il messaggio. - Se PGP/MIME è disabilitato, i messaggi saranno codificati - usando "inline PGP". Le possibili impostazioni sono le stesse della - firma e hanno lo stesso significato. -
  • -
-

Le regole sono elaborate nell'ordine in cui appaiono nella lista. -Se una regola è applicabile a un destinatario e contiene un ID chiave -OpenPGP, il destinatario, oltre a usare l'ID specificato, sarà ignorato -nell'elaborazione delle altre regole.

-

Nota: L'editor delle regole non è ancora completo. Regole -più avanzate possono essere create modificando direttamente il file -delle regole (tali regole non dovranno essere più modificate -con l'editor delle regole). Ulteriori informazioni sulla modifica diretta del file delle regole sono disponibili sulla home page di Enigmail.

-
-

-Ulteriore aiuto è disponibile sul -sito web di Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/it/help/sendingPrefs.html enigmail-2.2.4/lang/it/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/it/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/it/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/ja/am-enigprefs.properties enigmail-2.2.4/lang/ja/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ja/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP セキュリティ +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ja/enigmail.dtd enigmail-2.2.4/lang/ja/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ja/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' をメールアドレスを指定するために使用する"> - - -' をメールアドレスを指定するために使用します。もし、受取人が古い Hushmail 鍵を使用している場合は無効にしてください"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意:鍵生成には数分かかることがあります。生成途中でアプリケーションを終了しないでください。生成途中でウェブブラウザーを使用する、もしくはディスクアクセスが激しい処理を行うと「乱数プール」が満たされ、処理が早く終わります。鍵の生成が終了すると通知します。"> - @@ -296,495 +20,26 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意: 鍵生成には数分かかることがあります。鍵生成中はアプリケーションを終了しないでください。終了時にはお知らせします。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ja/enigmail.properties enigmail-2.2.4/lang/ja/enigmail.properties --- enigmail-2.1.6+ds1/lang/ja/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,418 +1,62 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail 警告 enigConfirm=Enigmail 確認 enigInfo=Enigmail 情報 -enigError=Enigmail エラー enigPrompt=Enigmail プロンプト - -dlgYes=はい(&Y) dlgNo=いいえ(&N) dlgKeepSetting=設定を保存し、次回から尋ねない dlgNoPrompt=次回からこのダイアログを表示しない -dlg.button.delete=削除(&D) dlg.button.cancel=キャンセル(&C) dlg.button.close=閉じる(&C) dlg.button.continue=続行(&T) -dlg.button.skip=スキップ(&S) -dlg.button.overwrite=上書き(&O) -dlg.button.view=表示(&V) -dlg.button.retry=再試行(&R) -dlg.button.ignore=無視(&I) -dlg.button.install=インストール(&I) dlg.button.ok=OK(&O) - repeatPrefix=\n\nこの警告は %S -repeatSuffixSingular=回繰り返されます -repeatSuffixPlural=回繰り返されます -noRepeat=\n\nEnigmail をアップグレードするまで、この警告は繰り返されません - -pgpNotSupported=Enigmail を PGP 6.x と共に使用しています\n\n残念ながら、PGP 6.x は Enigmail を誤動作させる問題を多数抱えています。そのため、Enigmail は PGP 6.x をサポートしていません。GnuPG (GPG) を代わりに使用してください\nもし、GnuPG への切り替えにヘルプが必要でしたら、Enigmail のホームページのヘルプを参照してください -initErr.howToFixIt=Enigmail の使用には GnuPG が必要です。GnuPG をまだインストールしていない場合には、下の「セットアップウィザード」ボタンから GnuPG をインストールすることができます -initErr.setupWizard.button=セットアップウィザード(&S) -passphraseCleared=パスフレーズを消去しました -cannotClearPassphrase=パスフレーズの管理に gnome-keyring などの非標準のツールを使用しているため、Enigmail はパスフレーズを消去できません -noPhotoAvailable=写真がありません -debugLog.title=Enigmail デバッグログ -error.photoPathNotReadable=写真へのパス '%S' は読み込めません - -generalError=エラー: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=この新しいバージョンの Enigmail では、設定項目が以前のバージョンから大きく変化しています。古い設定は自動的に移行されていますが、すべてのケースについて正常に移行できていることは保証できません。移行後の新しい設定を改めて確認することをお勧めします -enigmailCommon.checkPreferences=設定を確認する... -preferences.defaultToPgpMime=Enigmail での既定のエンコード方法はインライン PGP から PGP/MIME へ変更されました。この設定を維持することを推奨します\n\n既定のエンコード方法をインライン PGP へ変更したい場合には、アカウント設定 → OpenPGP セキュリティから変更できます - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - +repeatSuffixSingular=回繰り返されます。 +repeatSuffixPlural=回繰り返されます。 +noRepeat=\n\nEnigmail をアップグレードするまで、この警告は繰り返されません。 +passphraseCleared=パスフレーズを消去しました。 +cannotClearPassphrase=パスフレーズの管理に gnome-keyring などの非標準のツールを使用しているため、Enigmail はパスフレーズを消去できません。 usingVersion=実行中の Enigmail は、バージョン %S です -enigmailPepVersion=Enigmail/p≡p は、バージョン %S です usingAgent=%1$S は実行ファイル %2$S を用いて暗号化・復号をしています agentError=エラー: Enigmail コアサービスにアクセスできませんでした! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Enigmail サービスにアクセスできませんでした -onlyGPG=鍵の生成は GnuPG でのみ利用できます (PGP では動作しません!) - -keygenComplete=鍵の生成が終了しました。<%S> が署名に利用されます -revokeCertRecommended=失効証明書を作成することを強く推奨します。失効証明書は鍵を無効にしたい時、例えば、秘密鍵をなくしたりパスフレーズを忘れた時や、パスフレーズが第三者に漏洩するなど秘密鍵の信用が失われた時に利用できます。そのような失効証明書を今作成しますか? -keyMan.button.generateCert=証明書を生成(&G) -genCompleteNoSign=鍵の生成が終了しました -genGoing=鍵の生成が既に実行中です - -passNoMatch=パスフレーズが一致しませんでした。再度入力してください -passCheckBox=鍵に対してパスフレーズを設定しない場合は、チェックしてください -passUserName=ユーザー名をこの ID に指定してください -keygen.missingUserName=選択されたアカウントに関連付けられた名前が存在しません。アカウント設定の「名前」欄に適切な値を入力してください -keygen.passCharProblem=パスフレーズに特殊記号を使用しています。残念ながら、他のアプリケーションでトラブルの元となります。パスフレーズには、次の文字のみを使用することを推奨します:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=技術的制限により、パスフレーズはスペース記号で開始あるいは終了することはできません -changePassFailed=パスフレーズの変更に失敗しました - -keyConfirm='%S' の公開鍵と秘密鍵を生成しますか? -keyMan.button.generateKey=鍵を生成(&G) -keyAbort=鍵の生成を中止しますか? -keyMan.button.generateKeyAbort=鍵生成を中止(&A) -keyMan.button.generateKeyContinue=鍵生成を継続(&C) -expiryTooLong=100 年より長い間有効な鍵は生成できません -expiryTooLongShorter=90 年より長い間有効な鍵は生成できません -expiryTooShort=鍵は少なくとも 1 日間は有効でなければなりません -keyGenFailed=鍵の生成に失敗しました。詳細は、Enigmail のコンソール (メニュー Enigmail -> デバッグオプション) を確認してください -setKeyExpirationDateFailed=有効期限の変更に失敗しました - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail セキュリティ情報\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Attachments to this message have not been signed or encrypted*\n\n -possiblyPgpMime=おそらく PGP/MIME で暗号化もしくは署名されています。「復号/検証」機能を使用してください - -saveAttachmentHeader=Enigmail: 復号した添付ファイルを保存 -noTempDir=書き込み可能なテンポラリフォルダーが見つかりません\n環境変数 TEMP を適切な場所に設定してください -attachmentPgpKey=開こうとした添付ファイル '%S' は、OpenPGP 鍵ファイルのようです\n\n鍵をインポートするには「インポート」をクリックしてください。「表示」をクリックするとブラウザーウインドウで中身を確認できます - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted* - -decryptOkNoSig=警告\n\n復号に成功しましたが、署名は正しく検証できませんでした -msgOvl.button.contAnyway=それでも続行しますか?(&C) -signature.verifiedOK=添付ファイル %S の署名の検証に成功しました -signature.verifyFailed=添付ファイル %S の署名の検証に失敗しました -attachment.noMatchToSignature=添付ファイル '%S' は署名ファイルに適合しませんでした -attachment.noMatchFromSignature=署名ファイル '%S' は添付ファイルに適合しませんでした -fixBrokenExchangeMsg.failed=メッセージを修復できませんでした -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=鍵のインポート -wksNoIdentity=この鍵はあなたのメールアカウントのいずれにも関連付けられていません。以下のメールアドレスの少なくとも 1 つにアカウントを追加してください:\n\n%S -wksConfirmSuccess=確認メールを送信しました -wksConfirmFailure=確認メールの送信に失敗しました -autocrypt.importSetupKey.accountPreconfigured=あなたのアカウントは既に Autocrypt を使用するよう適切に設定されています\n\nこのセットアップメッセージで設定を上書きしますか? -autocrypt.importSetupKey.selfCreated=このメッセージはあなたが現在実行している Enigmail のインスタンスによって作成されました\n\n設定の移行先のメールクライアント上で、このメッセージをインポートしてください -autocrypt.importSetupKey.invalidMessage=エラー - セットアップメッセージの読み込みに失敗しました。メッセージが改竄されている可能性があります。あなたの他のデバイスでメッセージの作成を再度試みてください -autocrypt.importSetupKey.invalidKey=エラー - 鍵のインポートに失敗しました。あなたがお使いの GnuPG のバージョンではサポートされていないか、改竄されている可能性があります -autocrypt.importSetupKey.wrongPasswd=入力されたパスワードが間違っています。再度入力しますか? -autocrypt.importSetupKey.success=Autocrypt セットアップメッセージは正常に完了しました。あなたのアカウント '%S% で Autocrypt が利用可能となりました - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=エクスポートする OpenPGP 鍵のユーザー ID (メールアドレス) keysToUse=%S に使用する OpenPGP 鍵を選択してください -pubKey=%Sの公開鍵 \n - -windowLocked=作成画面がロックされています。送信はキャンセルされました -sendUnencrypted=Enigmail の初期化に失敗しました\n何もしないで平文を送信しますか? -composeSpecifyEmail=主に使うメールアドレスを決めてください。それは送信メッセージを署名する際に使用されます\n空白にした場合、差出人アドレスが署名をする際の鍵の ID として使用されます -sendingHiddenRcpt=このメッセージは BCC (blind carbon copy) での受取人が含まれています。このメッセージを暗号化した場合、BCC 受信者を隠蔽することが可能ですが PGP Corp. の製品のように復号できない製品があります。このようなことから暗号化メッセージには BCC の使用を避けることをお勧めします -sendWithHiddenBcc=BCC 受信者を隠蔽する -sendWithShownBcc=BCC 受信者を隠蔽しない -sendingNews=暗号化送信は中断しました\n\nニュースグループの受取人が含まれているため暗号化できませんでした。暗号化せずに再度このメッセージを送信してください -sendToNewsWarning=警告: あなたはニュースグループに送信するメッセージを暗号化しようとしています\n\nこれはグループのメンバー全員が復号可能と判断できる場合以外はお勧めできません。すなわち、グループ参加者全員の公開鍵が必要だということです。何をしようとしているかを判っている場合だけ送信して下さい\n\n続けますか? -hasHTML=HTML メールの警告:\nこのメッセージは HTML を含むと思われますが、その場合、署名/暗号化に失敗することがあります。今後にわたり回避するためには、署名付きメッセージを送るときには作成/返信ボタンを SHIFT キーを押しながらクリックしてください\nもし既定で署名する設定の場合は、このメールアカウントの設定で「HTML 形式でメッセージを作成する」のチェックボックスからチェックをはずし、恒久的に HTML メールを作成しないようにしてください -strippingHTML=メッセージに含まれる HTML 形式は、署名/暗号化する時にプレーンテキストに変換されるために、失われます。それでも続けますか? -msgCompose.button.sendAnyway=とにかく送信する(&S) -attachWarning=このメッセージに添付しようとしているのはローカルファイルではないので、暗号化できません。添付ファイルを暗号化するためには、まずローカルファイルとして保存してから添付してください。構わず次へ進みますか? +pubKey=%S の公開鍵 \n quotedPrintableWarn=Quoted-Printable エンコーディングが送信メッセージに対して有効になっています。 これにより、暗号化や、署名の検証の動作に悪影響を及ぼす可能性があります\n今すぐ Quoted-Printable エンコーディングを無効にしますか? -minimalLineWrapping=%S 文字で改行する設定になっています。正しい暗号化及び署名には、少なくとも 68 文字で改行する必要があります\n今すぐ改行文字数を 68 へ変更しますか? warning=警告 -signIconClicked=署名の設定を手動で変更します。これにより、このメッセージの作成中は、署名に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) を無視します -errorOwnKeyUnusable=現在の差出人に指定されている鍵 ID '%S' は利用可能な OpenPGP 鍵に適合しませんでした\n\nアカウント設定で有効かつ期限切れでない OpenPGP 鍵が指定されているか確認してください\n鍵が期限切れではないにもかかわらずこのエラーが表示される場合には、所有者による信用度が「完全」あるいは「絶対的」になっているか確認してください -msgCompose.cannotSaveDraft=下書きを暗号化して保存する際にエラーが発生しました: -msgCompose.partiallyEncrypted.short=機微情報の漏洩に注意してください - 部分的に暗号化されたメッセージです -msgCompose.partiallyEncrypted.inlinePGP=あなたが返信しようとしているメッセージには、暗号化されている部分と暗号化されていない部分があります。元のメッセージの送信者が暗号化されている部分を復号できていない場合、あなたがこのメッセージに返信することで元の送信者が復号できなかった機微情報の漏洩につながる可能性があります\n\n返信メッセージから、引用部をすべて除去することをお勧めします - -msgCompose.internalEncryptionError=内部エラー: 期待された暗号化が無効化されました -msgCompose.internalError=内部エラーが発生しました - -msgCompose.toolbarTxt.signAndEncrypt=このメッセージは暗号化および署名されます -msgCompose.toolbarTxt.signOnly=このメッセージは署名されます -msgCompose.toolbarTxt.encryptOnly=このメッセージは暗号化されます -msgCompose.toolbarTxt.noEncryption=このメッセージは暗号化も署名もされません -msgCompose.toolbarTxt.disabled=選択した差出人について Enigmail は無効化されています -msgCompose.protectSubject.tooltip=件名を保護します -msgCompose.noSubjectProtection.tooltip=件名を保護しません -msgCompose.protectSubject.dialogTitle=件名の保護を有効にしますか? -msgCompose.protectSubject.question=通常の暗号化されたメッセージでは、件名は保護されず改竄される可能性があります\n\n本来の件名を暗号化されたメッセージ中に埋め込んだうえで件名を代替テキストに置き換え、\n復号しない限り本来の件名を確認することができないようにすることが可能となりました\n\n暗号化されたメッセージにおける件名の保護を有効にしますか? -msgCompose.protectSubject.yesButton=件名を保護する(&P) -msgCompose.protectSubject.noButton=件名を保護しない(&L) - -msgCompose.detailsButton.label=詳細... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=不明 -msgCompose.pepSendUnsecure=安全ではない -msgCompose.pepSendSecure=安全 -msgCompose.pepSendTrusted=安全かつ信頼している - -pep.alert.disabledForIdentity=p≡p は現在のアカウントに対しては無効化されています。Enigmail/p≡p 設定から p≡p を有効化してください -pep.alert.weakReply=安全なメッセージに対して返信あるいは転送を行おうとしていますが、送信しようとしているメッセージは安全ではありません。このまま続行すると、あなたと通信相手の機微情報が漏洩する可能性があります。本当に続行しますか? - - -# note: should end with double newline: -sendAborted=送信が中断されました\n\n - -# details: keyNotTrusted=鍵 '%S' には十分な信用度がありません -keyNotFound=鍵 '%S' が見つかりません -keyRevoked=鍵 '%S' は失効しています -keyExpired=鍵 '%S' は期限切れです - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=署名された -statEncrypted=暗号化された -statPlain=署名も暗号化もされていない - -offlineSave=%2$S 宛の %1$S メッセージを未送信メッセージフォルダーへ保存しますか? - -onlineSend=%2$S 宛の %1$S メッセージを送信しますか? -encryptKeysNote=注意: メッセージは次のユーザー ID/鍵に対して暗号化されています: %S -hiddenKey=<隠蔽された鍵> - -signFailed=Enigmail エラー; 署名/暗号化に失敗しました。暗号化せずに平文を送信しますか? -msgCompose.button.sendUnencrypted=暗号化せずに平文を送信する(&S) -recipientsSelectionHdr=暗号化のための受取人を指定してください - -configureNow=この ID に対して Enigmail セキュリティ がまだ設定されていません。今すぐ設定しますか? - -# encryption/signing status and associated reasons: -encryptMessageAuto=暗号化: 有効 (自動) -encryptMessageNorm=暗号化: 有効 -signMessageAuto=署名: 有効 (自動) -signMessageNorm=署名: 有効 - -encryptOff=暗号化: 無効 -encryptOnWithReason=暗号化: 有効 (%S) -encryptOffWithReason=暗号化: 無効 (%S) -encryptOn=暗号化: 有効 -signOn=署名: 有効 -signOff=署名: 無効 -signOnWithReason=署名: 有効 (%S) -signOffWithReason=署名: 無効 (%S) -reasonEnabledByDefault=既定で有効 -reasonManuallyForced=手動で指定 -reasonByRecipientRules=Autocrypt あるいは受取人ごとの設定による指定 -reasonByAutoEncryption=送信時の設定による指定 -reasonByConflict=受取人ごとの設定に矛盾が存在 -reasonByEncryptionMode=暗号化モードによる指定 - -# should not be used anymore: -encryptYes=暗号化する -encryptNo=暗号化しない - -# should not be used anymore: -signYes=署名する -signNo=署名しない - - -# PGP/MIME status: -pgpmimeNormal=プロトコル: PGP/MIME -inlinePGPNormal=プロトコル: インライン PGP -smimeNormal=プロトコル: S/MIME -pgpmimeAuto=プロトコル: PGP/MIME (自動) -inlinePGPAuto=プロトコル: インライン PGP (自動) -smimeAuto=プロトコル: S/MIME (自動) - -# should not be used anymore -pgpmimeYes=PGP/MIME -pgpmimeNo=インライン PGP - -# Attach own key status (tooltip strings): -attachOwnKeyNo=あなたの公開鍵は添付されません -attachOwnKeyYes=あなたの公開鍵が添付されます -attachOwnKeyDisabled=あなたの公開鍵を添付することができません\nこの機能を有効化する、アカウント設定 → OpenPGP セキュリティにおいて鍵を指定する必要があります - -rulesConflict=受取人ごとの設定に矛盾があります\n%S\n\nこれらの設定でメッセージを送信しますか? -msgCompose.button.configure=設定する(&C) -msgCompose.button.send=メッセージを送信する(&S) -msgCompose.button.save=メッセージを保存する(&S) - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=署名の検証には公開鍵 %S が必要です -keyUsed=署名の検証には公開鍵 %S が使われました -clickDecrypt=; 「復号/検証」機能を使用してください -clickDecryptRetry=; 再度試すには、「復号/検証」機能を使用してください -clickDetailsButton=; 詳しくは「詳細」ボタンをクリックしてください -clickImportButton=; 「鍵のインポート」ボタンをクリックして鍵をインポートしてください -keyTypeUnsupported=; この形式の鍵はお使いのバージョンの GnuPG ではサポートされていません -decryptManually=; 「復号」ボタンをクリックしてメッセージを復号してください -verifyManually=; 「検証」ボタンをクリックして署名を検証してください -headerView.button.verify=検証 -headerView.button.decrypt=復号 -msgPart=メッセージの一部分が %S されています -msgSigned=署名 -msgSignedUnkownKey=不明な鍵で署名 -msgEncrypted=暗号化 -msgSignedAndEnc=署名かつ暗号化 - unverifiedSig=検証できない署名です -incompleteDecrypt=復号が不完全です -needKey=エラー - メッセージの復号に適合する秘密鍵が見つかりません -failedDecrypt=エラー - 復号に失敗しました badPhrase=エラー - 無効なパスフレーズです missingMdcError=エラー - 整合性の保護 (MDC) が失われているか破損しています -failedDecryptVerify=エラー - 復号/検証に失敗しました -viewInfo=; 詳細は「メッセージのセキュリティ情報」を確認してください -brokenExchangeMessage=MS-ExchangeからのPGP/MIMEが壊れています - -decryptedMsg=復号されたメッセージ -decryptedMsgWithFormatError=復号されたメッセージ (古い Exchange サーバーによる PGP フォーマットの破損を修復しているため、復号結果を正しく読むことができない可能性があります) - -usedAlgorithms=使用アルゴリズム: %1$S および %2$S -pepStatusInfo.text=p≡p メッセージ状況 -pepStatusInfo.title.m3=攻撃されている -pepStatusInfo.info.m3=このメッセージは攻撃されており、安全ではありません -pepStatusInfo.title.m1=誤って信頼された -pepStatusInfo.info.m1=このメッセージの通信相手は、「誤って信頼された」と記録されたことがあります -pepStatusInfo.title.r0=不明 -pepStatusInfo.info.r0=このメッセージには安全性を判断するために十分な情報が含まれていません -pepStatusInfo.title.r1=復号不可 -pepStatusInfo.info.r1=鍵が利用可能でないため、このメッセージを復号することができません -pepStatusInfo.title.r2=復号不可 -pepStatusInfo.info.r2=鍵が利用可能でないため、このメッセージを復号することができません -pepStatusInfo.title.r3=安全ではない -pepStatusInfo.info.r3=このメッセージは安全ではありません -pepStatusInfo.title.r4=安全ではない可能性あり -pepStatusInfo.info.r4=このメッセージは通信相手によっては安全ではありません -pepStatusInfo.title.r5=信頼できないセキュリティ -pepStatusInfo.info.r5=このメッセージには信頼できないセキュリティが施されています -pepStatusInfo.title.r6=安全... -pepStatusInfo.info.r6=このメッセージは安全ですが、通信相手を認証する必要があります -pepStatusInfo.title.r7=安全かつ信頼済み -pepStatusInfo.info.r7=このメッセージは安全かつ信頼済みです - -pepStatusInfo.color.green=緑 -pepStatusInfo.color.yellow=黄 -pepStatusInfo.color.red=赤 -pepRevokeTrust.question=鍵 %S の信用度を本当に取り消しますか? -pepRevokeMistrust.question=鍵 %S を本当に再び信用しますか? -pepRevokeTrust.doRevoke=信用度を取消(&T) - -wksConfirmationReq=Web Key Directory 確認リクエスト -wksConfirmationReq.message=このメッセージは、Web Key Directory へのアップロードを承認するかの確認のために\nあなたのメールプロバイダから送信されたものです\nあなたの公開鍵をアップロードすることで、あなたの通信相手があなたの公開鍵を見つけ、あなたに暗号化したメッセージを送信することが可能となります\n\nあなたの公開鍵のアップロードを承認する場合には、ステータスバーの「リクエストを承認」ボタンをクリックしてください\n承認しない場合にはこのメッセージを無視してください -wksConfirmationReq.button.label=リクエストを承認 - -autocryptSetupReq=Autocrypt セットアップの実行 -autocryptSetupReq.button.label=セットアップ開始 -autocryptSetupReq.setupMsg.desc=このメッセージには、あなたの秘密鍵を含めた Autocrypt のすべての設定を安全に他のデバイスから移行するための情報が含まれています -autocryptSetupReq.setupMsg.backup=このメッセージをバックアップすることで、秘密鍵をバックアップすることができます。パスワードを書き留め、安全に保管してください -autocryptSetupReq.message.import=設定と鍵をインポートするには、ステータスバーの「セットアップ開始」ボタンをクリックしてください -autocryptSetupReq.message.sent=新しいデバイス上のメッセージをクリックし、設定のインポートの指示に従ってください -postbox.cannotUseQuickReply.message=暗号化されたメッセージに返信しようとしています。テキストボックスの右上の「expand」アイコンをクリックして返信ウインドウを開き、そこからメッセージを送信してください - -# strings in pref-enigmail.js -oldGpgVersion20=Enigmail の初期化に失敗しました\n\nGnuPG バージョン %1$S がインストールされていますが、このバージョンの GnuPG は Enigmail では既にサポートされていません。Enigmail の動作には GnuPG バージョン %2$S 以降が必要です。GnuPG をアップグレードしてください -locateGpg=GnuPG プログラムを指定する -invalidGpgPath=GnuPG は設定されているパスでは実行できません。Enigmail は GnuPG のパスを再設定するか、アプリケーションを再起動するまで無効となります -warningsAreReset=すべての警告はリセットされました -prefs.gpgFound=GnuPG 実行ファイル:%S -prefs.gpgNotFound=GnuPG が見つかりませんでした -prefs.warnAskNever=警告: この設定を有効にすると、受取人の一人にでも鍵が見つからない場合に、一切の通知もなく暗号化されなくなります。Enigmail はこのようなことが起こっても一切通知しません -prefs.warnIdleTimeForUnknownAgent=gpg-agent に接続できません。このシステムではパスフレーズの管理に gpg-agent ではなく特別なツール (例:gnome-keyring、seahorse-agent、KDE wallet manager など) が使われているようです。Enigmail はこれらのツールによるパスフレーズの記憶時間を制御することができません。そのため、Enigmail でのパスフレーズの記憶時間の設定は無視されます -prefEnigmail.oneKeyserverOnly=エラー - OpenPGP 鍵の自動的なダウンロードのための公開鍵サーバーは 1 つしか指定できません -acSetupMessage.desc=Autocrypt が有効なデバイスへの鍵の移行 (Autocrypt とは) -aboutLicense.desc=Enigmail はオープンソースであり、Mozilla Public License 2.0 でライセンスされています"> - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=スマートカードの管理者 PIN を入力してください -enterCardPin=スマートカードの PIN を入力してください - -notInit=エラー - Enigmail サービスはまだ初期化されていません +oldGpgVersion20=Enigmail の初期化に失敗しました。\n\nGnuPG バージョン %1$S がインストールされていますが、このバージョンの GnuPG は Enigmail では既にサポートされていません。Enigmail の動作には GnuPG バージョン %2$S 以降が必要です。GnuPG をアップグレードしてください。 badCommand=エラー - 暗号化コマンドは失敗しました cmdLine=コマンドラインと出力: -notRequired=エラー - 暗号化は必要ありません -notComplete=エラー - 鍵の生成が終了していません -invalidEmail=エラー - 無効なメールアドレスです noPassphrase=エラー - パスフレーズが入力されていません noPGPblock=エラー - 有効な OpenPGP データブロックが見つかりません -unverifiedReply=インデントされた (返信) 部分がおそらく修正されています -keyInMessageBody=メッセージ中に鍵が含まれています。「鍵のインポート」をクリックして鍵をインポートしてください -sigMismatch=エラー - 署名が不正です -cantImport=公開鍵のインポートに失敗しました\n\n -doImportOne=鍵 %1$S (%2$S) をインポートしますか? -doImportMultiple=これらの鍵をインポートしますか?\n\n%S -previewFailed=公開鍵の読み込みに失敗しました - -# Strings used in errorHandling.jsm -sc.wrongCardAvailable=カードリーダに挿入されているスマートカード %1$S はこのメッセージの処理に使用できません\nスマートカード %2$S を挿入してもう一度操作をして下さい -sc.insertCard=この操作にはスマートカード %S が必要です\n必要なスマートカードを挿入してもう一度操作をして下さい -sc.removeCard=この操作にはスマートカードは不要です\nスマートカードを抜いてもう一度操作をして下さい -sc.noCardAvailable=スマートカードが見つかりません\nスマートカードを挿入して、もう一度操作を行ってください -sc.noReaderAvailable=スマートカードリーダにアクセスできません\nカードリーダを接続し、スマートカードを挿入して、もう一度操作を行ってください -keyError.keySpecNotFound=メールアドレス '%S' に適合する鍵が鍵束の中にありません -keyError.keyIdNotFound=指定された鍵 ID '%S' が鍵束の中にありません -keyError.resolutionAction=アカウント設定 → OpenPGP セキュリティにおいて正当な鍵を指定してください +sc.wrongCardAvailable=カードリーダに挿入されているスマートカード %1$S はこのメッセージの処理に使用できません。\nスマートカード %2$S を挿入してもう一度操作をして下さい。 +sc.insertCard=この操作にはスマートカード %S が必要です。\n必要なスマートカードを挿入してもう一度操作をして下さい。 +sc.removeCard=この操作にはスマートカードは不要です。\nスマートカードを抜いてもう一度操作をして下さい。 +sc.noCardAvailable=スマートカードが見つかりません。\nスマートカードを挿入して、もう一度操作を行ってください。 +sc.noReaderAvailable=スマートカードリーダにアクセスできません。\nカードリーダを接続し、スマートカードを挿入して、もう一度操作を行ってください。 +keyError.keySpecNotFound=メールアドレス '%S' に適合する鍵が鍵束の中にありません。 +keyError.keyIdNotFound=指定された鍵 ID '%S' が鍵束の中にありません。 missingPassphrase=パスフレーズが見つかりません -errorHandling.gpgAgentInvalid=システムで利用されている gpg-agent のバージョンは、GnuPG のバージョンと互換性がありません -errorHandling.gpgAgentError=GnuPG がコンポーネントの一部である gpg-agent とのコミュニケーションに関するエラーを報告しています -errorHandling.dirmngrError=GnuPG がコンポーネントの一部である dirmngr とのコミュニケーションに関するエラーを報告しています -errorHandling.pinentryError=GnuPG はあなたのパスフレーズを pinentry 経由で問い合わせることができませんでした -errorHandling.pinentryCursesError=コンソール版の pinentry を使用するよう GnuPG が設定されていますが、Enigmail ではグラフィカル版の pinentry が必要です -errorHandling.readFaq=これはシステムのセットアップあるいは設定のエラーであり、Enigmail が自動的に修正することはできません\n\n以下のウェブサイトを参照することを推奨します: https://www.enigmail.net/faq - -gpgNotFound=GnuPG プログラムを '%S' に見つけることができませんでした\nEnigmail の設定で、GnuPG 実行ファイルのパスが正しく設定されているかどうか確認してください -gpgNotInPath=GnuPG 実行ファイルを PATH の中から見つけられませんでした\nEnigmail の設定で、GnuPG 実行ファイルのパスが正しく設定されているかどうか確認してください +errorHandling.gpgAgentInvalid=システムで利用されている gpg-agent のバージョンは、GnuPG のバージョンと互換性がありません。 +errorHandling.gpgAgentError=GnuPG がコンポーネントの一部である gpg-agent とのコミュニケーションに関するエラーを報告しています。 +errorHandling.dirmngrError=GnuPG がコンポーネントの一部である dirmngr とのコミュニケーションに関するエラーを報告しています。 +errorHandling.pinentryError=GnuPG はあなたのパスフレーズを pinentry 経由で問い合わせることができませんでした。 +errorHandling.pinentryCursesError=コンソール版の pinentry を使用するよう GnuPG が設定されていますが、Enigmail ではグラフィカル版の pinentry が必要です。 +errorHandling.readFaq=これはシステムのセットアップあるいは設定のエラーであり、Enigmail が自動的に修正することはできません。\n\n以下のウェブサイトを参照することを推奨します: https://www.enigmail.net/faq +gpgNotFound=GnuPG プログラムを '%S' に見つけることができませんでした。\nEnigmail の設定で、GnuPG 実行ファイルのパスが正しく設定されているかどうか確認してください。 +gpgNotInPath=GnuPG 実行ファイルを PATH の中から見つけられませんでした。\nEnigmail の設定で、GnuPG 実行ファイルのパスが正しく設定されているかどうか確認してください enigmailNotAvailable=Enigmail コアサービスを利用できません - -prefGood=%S による正当な署名です -prefBad=%S による不正な署名です - failCancel=エラー - ユーザーによって鍵のダウンロードが中止されました failKeyExtract=エラー - 鍵の展開コマンドに失敗しました -failKeyNoSubkey=正当な鍵が見つかりません notFirstBlock=エラー - 最初の OpenPGP ブロックは公開鍵ではありません importKeyConfirm=メッセージ中に埋め込まれた鍵をインポートしますか? -failKeyImport=エラー - 鍵のインポートに失敗しました fileWriteFailed=ファイル %S への書き込みに失敗しました - importKey=公開鍵 %S を鍵サーバーからインポートします: uploadKey=公開鍵 %S を鍵サーバーへアップロードします: keyId=鍵 ID -keyAndSigDate=鍵 ID: 0x%1$S / 署名日時: %2$S -keyFpr=フィンガープリント: %S -noEmailProvided=メールアドレスが入力されていません! -keyAlreadySigned=この鍵は既に署名されています。2 度は署名できません - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=期限切れの %S createdHeader=生成されました atLeastOneKey=鍵が 1 つも選択されていません。少なくとも 1 つの鍵を選択する必要があります fewerKeysThanRecipients=受取人より少ない数の鍵しか選択されていません。鍵の選択を終了してもよろしいですか? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=署名用の秘密鍵を選択する userSel.problemNoKey=有効な鍵が見つかりません userSel.problemMultipleKeys=複数の鍵があります -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=後で送信 - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=注意: PGP/MIME はすべてのメールクライアントでサポートされているわけではありません。よくわからない場合は、%S 設定を選択してください first=一番目の second=二番目の - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=暗号化のための OpenPGP 鍵の選択 -identityName=ID: %S -switchPepMode=現在、Enigmail の 'p≡p Junior Mode' を利用しています\n\nアカウント設定で OpenPGP あるいは S/MIME を有効化すると、p≡p を無効化し Enigmail の標準モードを利用することになります -enableEnigmail=p≡p を無効化(&D) -amPrefAutocrypt.desc=Autocrypt は、メールのエンドツーエンド暗号化を簡便に達成するための標準です。通常のメールを用いて、メールクライアント間で暗号化の可否をやり取りすることができます - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=暗号化を有効にしましたが、鍵を選択していません。%1$S へ送付するメッセージを暗号化するためには、有効な鍵を鍵リストから選択する必要があります。%2$S への暗号化を無効にしますか? -noKeyToUse=(無し - 暗号化しない) -noEmptyRule=空のルールは無効です。ルール欄にメールアドレスを設定してください -invalidAddress=入力したメールアドレスが無効です。受取人の名前は設定できません。メールアドレスだけにしてください。例:\n 無効な例: Taro Yamada \n正しい例: taro.yamada@example.com -noCurlyBrackets=中括弧 {} は特別な意味を持ちますので、メールアドレスに使用しないでください。このルールに当てはまる時の動作を修正したいする場合は、'受取人が上記アドレス...' オプションを使用してください\n詳細な情報はヘルプボタンを押してください - -# Strings used in enigmailRulesEditor.js never=無効 always=有効 possible=返信時のみ -deleteRule=選択したルールを本当に削除しますか? -nextRcpt=(次の受取人) -negateRule=Not -addKeyToRule=鍵 %1$S (%2$S) を受取人ごとの設定に追加する - -# Strings used in enigmailSearchKey.js -needOnline=選択された機能はオフラインモードでは使用できません。オンラインのときにもう一度試してください -noKeyserverConn=鍵サーバー %S に接続できませんでした -internalError=内部エラーが発生しました。鍵をダウンロードすることができませんでした -noKeyFound=指定された検索条件に適合する鍵を発見できませんでした -keyDownload.keyUnavailable=ID %S に適合する鍵を鍵サーバー上で発見できませんでした。鍵の持ち主が、鍵をサーバーにアップロードしていないと思われます\n\n送信元に、公開鍵をあなたに送るよう依頼してください - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=所有者の信用度を設定できませんでした - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=鍵への署名に失敗しました -alreadySigned.label=注意: 鍵 ID %S は選択された秘密鍵によって既に署名されています -alreadySignedexportable.label=注意: 鍵 ID %S は選択された秘密鍵によって既にエクスポート可能な署名がされています。これに加えてローカル署名を行う意味はありません -partlySigned.label=注記: 鍵 ID %S の一部のユーザー ID は選択された秘密鍵によって既に署名されています -noTrustedOwnKeys=署名に利用可能な鍵が見つかりませんでした。鍵に署名するためには、絶対的に信用している秘密鍵を最低でも 1 つ所有している必要があります - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=鍵を読み込み中です。しばらくお待ちください... keyValid.unknown=不明 keyValid.invalid=無効 keyValid.disabled=無効化 keyValid.revoked=失効 -keyValid.expired=期限切れ +keyValid.expired=有効期限切れ keyValid.noSubkey=有効な副鍵なし - +keyValid.valid=有効 +keyValid.ownKey=自分自身の鍵 keyTrust.untrusted=信用していない -keyTrust.marginal=ある程度 +keyTrust.marginal=最低限 keyTrust.full=完全 keyTrust.ultimate=絶対的 keyTrust.group=(グループ) -keyType.public=公開鍵 -keyType.publicAndSec=公開鍵/秘密鍵 -keyMan.enableKey=鍵を有効化 -keyMan.disableKey=鍵を無効化 userAtt.photo=ユーザー属性 (JPEG イメージ) - -asciiArmorFile=ASCII 形式 (*.asc) importKeyFile=OpenPGP 鍵ファイルのインポート -gnupgFile=GnuPG ファイル -saveRevokeCertAs=失効証明書を生成して保存 -revokeCertOK=失効証明書を生成しました。これは秘密鍵をなくしてしまったときなどに公開鍵を無効にするために使用できます -revokeCertFailed=失効証明書の作成に失敗しました - -addUidOK=ユーザー ID の追加に成功しました -addUidFailed=ユーザー ID の追加に失敗しました -noKeySelected=選択した操作を実行するには、少なくとも 1 つの鍵を選択する必要があります -exportToFile=公開鍵をファイルへエクスポート -exportKeypairToFile=公開鍵/秘密鍵のペアをファイルへエクスポート -exportSecretKey=エクスポートする OpenPGP 鍵ファイルに秘密鍵を含めますか? -saveKeysOK=鍵を保存しました -saveKeysFailed=鍵の保存に失敗しました -importKeysFailed=インポートに失敗しました -enableKeyFailed=鍵の有効化/無効化に失敗しました -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Exported-public-keys -defaultPubSecKeyFilename=Exported-public-and-secret-keys - -sendKeysOk=鍵の送信に成功しました -sendKeysFailed=鍵の送信に失敗しました -receiveKeysOk=鍵の受信に成功しました -receiveKeysFailed=鍵の受信に失敗しました -keyUpload.verifyEmails=鍵サーバーから、あなたがアップロードした鍵のメールアドレスごとにメッセージが送信されます。鍵の公開を承認するには、メールアドレスごとに受信したメッセージに記載されているリンクをクリックする必要があります - -importFromClip=鍵をクリップボードからインポートしますか? -importFromUrl=公開鍵を次の URL からダウンロードします: -copyToClipbrdFailed=選択した鍵をクリップボードへコピーできませんでした -copyToClipbrdOK=鍵をクリップボードにコピーしました - -deleteSecretKey=警告: あなたは秘密鍵を削除しようとしています!\nもし秘密鍵を削除した場合、あなた宛に暗号化されたすべてのメッセージを復号できなくなり、鍵を失効することもできなくなります\n\n本当に秘密鍵と公開鍵の両方を削除しますか?\n'%S'? -deleteMix=警告: あなたは秘密鍵を削除しようとしています!\n秘密鍵を削除するとあなた宛に暗号化されたメッセージを復号できなくなります\n\n本当に選択した秘密鍵と公開鍵を削除しますか? -deletePubKey=公開鍵を削除しますか? "%S" -deleteSelectedPubKey=選択した公開鍵を削除しますか? -deleteKeyFailed=鍵を削除できませんでした -revokeKeyQuestion=鍵 '%S' を失効させようとしています\n\n失効させると、あなたがこの鍵でメッセージに署名をすることができなくなるほか、鍵サーバーなどで配布後は他の利用者がこの鍵であなた宛のメッセージを暗号化することができなくなります。失効後も、あなた宛の既存のメッセージの復号を行うことはできます\n\n本当に失効させますか? -revokeKeyOk=鍵は正常に失効しました。もしあなたの公開鍵が鍵サーバーで利用可能であれば、再アップロードする事を推奨します。そうすることにより、あなたの鍵が失効していることが周知されます -revokeKeyFailed=鍵を失効できませんでした +importPubKeysFailed=以下の公開鍵は Thunderbird にインポートできませんでした:\n\n%S +importSecKeysFailed=以下の秘密鍵は Thunderbird にインポートできませんでした:\n\n%S +deleteSecretKey=警告: あなたは秘密鍵を削除しようとしています!\nもし秘密鍵を削除した場合、あなた宛に暗号化されたすべてのメッセージを復号できなくなり、鍵を失効することもできなくなります。\n\n本当に秘密鍵と公開鍵の両方を削除しますか?\n'%S'? +revokeKeyQuestion=鍵 '%S' を失効させようとしています。\n\n失効させると、あなたがこの鍵でメッセージに署名をすることができなくなるほか、鍵サーバーなどで配布後は他の利用者がこの鍵であなた宛のメッセージを暗号化することができなくなります。失効後も、あなた宛の既存のメッセージの復号を行うことはできます。\n\n本当に失効させますか? revokeKeyNotPresent=この失効証明書に適合する鍵 (0x%S) が存在しません!\n\n鍵を持っていない場合、失効証明書よりも前に公開鍵をインポートする必要があります! -revokeKeyAlreadyRevoked=鍵 0x%S は既に失効しています -refreshAllQuestion=鍵が 1 つも選択されていません。すべての鍵を更新しますか? -refreshKeyServiceOn.warn=警告: あなたの鍵はこれからバックグラウンドで可能な限り安全に更新されます\nあなたのすべての鍵を同時に更新することは、あなたについての情報を不必要に明らかとしてしまう可能性があります\n本当に更新しますか? -refreshKey.warn=警告: 鍵の数や回線速度によっては、すべての鍵の更新に非常に時間がかかる可能性があります! -downloadContactsKeys.warn=注意:連絡先の数や接続速度によっては、すべての鍵のダウンロードに非常に時間がかかる可能性があります! -downloadContactsKeys.importFrom=アドレス帳 '%S' の連絡先の鍵を検索しますか? -keyMan.button.exportSecKey=秘密鍵を含めてエクスポート(&S) -keyMan.button.exportPubKey=公開鍵のみをエクスポート(&P) +revokeKeyAlreadyRevoked=鍵 0x%S は既に失効しています。 keyMan.button.import=インポート(&I) -keyMan.button.refreshAll=すべての鍵を更新(&R) keyMan.button.revokeKey=鍵の失効(&R) - -keylist.noOtherUids=他の ID はありません -keylist.hasOtherUids=別名 -keylist.noPhotos=写真は利用できません -keylist.hasPhotos=写真 - -keyMan.addphoto.filepicker.title=追加する写真の選択 -keyMan.addphoto.warnLargeFile=選択したファイルのサイズが 25 kB を超えています\n鍵のサイズが大きくなるため、大きな写真の追加は推奨されていません -keyMan.addphoto.noJpegFile=選択したファイルは JPEG 形式ではないようです。違うファイルを選択してください -keyMan.addphoto.failed=写真を追加できませんでした -noWksIdentity=鍵 %S には Web Key Service における身元確認が存在しません -wksUpload.noKeySupported=アップロードに失敗しました - あなたのプロダイバーは Web Key Service に対応していないようです - -keyman.addBlacklistKey.msg=鍵 '%1$S (%2$S)' を p≡p による暗号化で使用することを禁止しますか? -keyman.removeBlacklistKey.msg=鍵 '%1$S (%2$S)' を p≡p による暗号化で使用することを許可しますか? -keyman.addBlacklistKey.button=鍵を拒否リストに追加(&B) -keyman.removeBlacklistKey.button=拒否リストから除去(&R) - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=主に使うユーザー ID の変更に失敗しました -changePrimUidOK=主に使うユーザー ID を変更しました -revokeUidFailed=ユーザー ID %S の失効に失敗しました -revokeUidOK=ユーザー ID %S を失効させました。もしあなたの公開鍵が鍵サーバーで利用可能であれば、再アップロードする事を推奨します。そうすることにより、あなたのユーザー ID が失効していることが周知されます -revokeUidQuestion=本当にユーザー ID %S を失効させますか? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=鍵のインポートに成功しました! -importInfoBits=ビット -importInfoCreated=作成日時 -importInfoFpr=フィンガープリント -importInfoDetails=(詳細) -importInfoNoKeys=鍵はインポートされませんでした - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=公開鍵 -keyTypePrimary=主鍵 -keyTypeSubkey=副鍵 -keyTypePair=公開鍵/秘密鍵のペア -keyExpiryNever=無期限 keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,217 +101,46 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=暗号化 -keyUsageSign=署名 -keyUsageCertify=証明 -keyUsageAuthentication=認証 -keyDoesNotExpire=無期限 - -# Strings in enigmailGenCardKey.xul -keygen.started=鍵を生成中です。しばらくお待ちください... -keygen.completed=鍵を生成しました。新しい鍵 ID は次の通りです: 0x%S -keygen.keyBackup=%S として鍵をバックアップしました -keygen.passRequired=スマートカード以外の場所にバックアップをとるのであれば、パスフレーズを指定してください - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN の変更に失敗しました - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=鍵の更新中です。しばらくお待ち下さい -keyserverProgress.uploading=鍵のアップロード中です、しばらくお待ち下さい -keyserverProgress.wksUploadFailed=あなたの公開鍵を Web Key Service にアップロードすることができませんでした -keyserverProgress.wksUploadCompleted=あなたの公開鍵は正常にあなたのプロバイダーにアップロードされました。アップロードがあなたによるものであることを確認するためのメールが送られてきます -keyserverTitle.refreshing=鍵の更新 -keyserverTitle.uploading=鍵のアップロード -keyserver.result.download.none=鍵はダウンロードされませんでした -keyserver.result.download.1of1=鍵のダウンロードに成功しました -keyserver.result.download.1ofN=%S 個中 1 個の鍵のダウンロードに成功しました -keyserver.result.download.NofN=%2$S 個中 %1$S 個の鍵のダウンロードに成功しました -keyserver.result.uploadOne=1 個の鍵のアップロードに成功しました -keyserver.result.uploadMany=%S 個の鍵のアップロードに成功しました - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=指定されたファイルは GnuPG の実行ファイルではありません。他のファイルを指定してください -setupWizard.installFailed=インストールに失敗したようです。もう一度インストールを試みるか、GnuPG を手動でインストールした後で「選択」ボタンから指定してください -setupWizard.downloadForbidden=セキュリティ上の理由からダウンロードは行われません。https://www.gnupg.org/ にアクセスして GnuPG をダウンロードしてください -setupWizard.downloadImpossible=GnuPG を正常にダウンロードすることができませんでした。時間をおいてからもう一度ダウンロードを試みるか、https://www.gnupg.org/ にアクセスして GnuPG をダウンロードしてください -setupWizard.hashSumError=ダウンロードしたファイルの完全性を検証できませんでした。ファイルが破損しているか、改竄されている可能性があります。このままインストールを続行しますか? -setupWizard.importSettingsFile=インポートするファイルの指定 -setupWizard.invalidSettingsFile=指定されたファイルは正当な Enigmail の設定情報ファイルではありません -setupWizard.gpgConfExists=GnuPG の設定ファイルは既に存在します。古い環境の設定ファイルで上書きしますか? -setupWizard.noGpgHomeDir=GnuPG として %S が指定されていますが、これはフォルダーではないため利用できません -setupWizard.unmachtedIds=古い設定情報のうち、以下の差出人情報に適合するものがありません:\n%S\nこれらの差出人情報についての設定をスキップします -setupWizard.foundAcSetupMessage=Autocrypt セットアップメッセージを見つけました。下の「セットアップ開始」ボタンをクリックし、Autocrypt のセットアップを開始してください -setupWizard.foundAcNoSetupMsg=Autocrypt に対応しているクライアントの利用を検出しましたが、Autocrypt セットアップメッセージを見つけられませんでした。既存のデバイス上で Autocrypt セットアップメッセージを作成し、「受信ボックスの再スキャン」をクリックすることをお勧めします。あるいは、既存のインストール済みの Enigmail から設定と鍵をエクスポートし、この環境に復元することもできます -setupWizard.setupComplete=Enigmail はセットアップを正常に完了しました。さらなる情報は Enigmail ホールページ をご覧ください - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=GnuPG のダウンロード中にエラーが発生しました。詳細はコンソールログを確認してください -installGnuPG.installFailed=GnuPG のインストール中にエラーが発生しました。詳細はコンソールログを確認してください - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=名前とメールアドレスを入力して下さい -addUidDlg.nameMinLengthError=名前は 5 文字以上必要です -addUidDlg.invalidEmailError=有効なメールアドレスではありません - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP スマートカードでは、名前には ASCII 文字のみ利用可能です - - -# network error types -errorType.SecurityCertificate=ウェブサービスで使用されているセキュリティ証明書は正当なものではありません -errorType.SecurityProtocol=ウェブサービスで使用されているセキュリティプロトコルは未知のものです -errorType.Network=ネットワークエラーが発生しました - -# filter stuff -filter.folderRequired=フォルダーを選択してください -filter.decryptMove.label=メッセージを恒久的に復号する (Enigmail) -filter.decryptCopy.label=復号したメッセージのコピーを作成する (Enigmail) -filter.decryptMove.warnExperimental=警告:「メッセージを恒久的に復号する」フィルターは、メッセージを破損する可能性があります\n\nはじめに「復号したメッセージのコピーを作成する」フィルターを試験的に利用し、その結果に問題がないことを確認したうえで「メッセージを恒久的に復号する」フィルターを使用することを強く推奨します -filter.tempPepFilterDesc=暗号化されていない送信済みメッセージを保存するための一時的なフィルター -filter.term.pgpencrypted.label=OpenPGP 暗号化 -filter.encrypt.label=鍵に対して暗号化する (Enigmail) -filter.keyRequired=受信者の鍵を選択してください -filter.keyNotFound='%S' に対する暗号化鍵を見つけることができません -filter.warn.keyNotSecret=警告 - 「鍵に対して暗号化する」フィルターは、受信者を上書きします\n\n'%S' に対する秘密鍵を持っていない場合、メッセージを復号することはできなくなります - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=以下の件名のメッセージを復号することができませんでした\n件名: '%S'\n異なるパスフレーズで再試行するか、復号をスキップするか選択してください -converter.decryptAtt.failed=以下の件名のメッセージの添付ファイル '%1$S' を復号することができませんでした\n"件名: '%2$S'\n異なるパスフレーズで再試行するか、復号をスキップするか選択してください - -saveLogFile.title=ログをファイルに保存 - -# strings in gpg.jsm -unknownSigningAlg=未知の署名アルゴリズム (ID: %S) -unknownHashAlg=未知のハッシュ関数 (ID: %S) - -# strings in keyRing.jsm +setupWizard.selectKeysButton=鍵の選択 +errorType.SecurityCertificate=ウェブサービスで使用されているセキュリティ証明書は正当なものではありません。 +errorType.SecurityProtocol=ウェブサービスで使用されているセキュリティプロトコルは未知のものです。 +errorType.Network=ネットワークエラーが発生しました。 keyring.photo=写真 -keyRing.pubKeyRevoked=鍵 %1$S (鍵 ID %2$S) は失効しています -keyRing.pubKeyExpired=鍵 %1$S (鍵 ID %2$S) は有効期限切れです -keyRing.pubKeyNotForSigning=鍵 %1$S (鍵 ID %2$S) は署名には利用できません -keyRing.pubKeyNotForEncryption=鍵 %1$S (鍵 ID %2$S) は暗号化には利用できません -keyRing.keyDisabled=鍵 %1$S (鍵 ID %2$S) は無効化されているため利用できません -keyRing.keyNotTrusted=鍵 %1$S (鍵 ID %2$S) は十分に信用されていません。署名に利用するためには信用度を「絶対的」に設定する必要があります -keyRing.keyInvalid=鍵 %1$S (鍵 ID %2$S) は正当ではありません。この鍵を正しく検証するか、「標準の暗号化設定」を使用してください -keyRing.signSubKeysRevoked=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は失効しています -keyRing.signSubKeysExpired=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は有効期限切れです -keyRing.signSubKeysUnusable=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は失効、有効期限切れなどの理由により利用できません -keyRing.encSubKeysRevoked=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は失効しています -keyRing.encSubKeysExpired=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は有効期限切れです -keyRing.noSecretKey=鍵 %1$S (鍵 ID %2$S) の秘密鍵が存在しないため、この鍵を署名に利用することはできません -keyRing.encSubKeysUnusable=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は失効、有効期限切れなどの理由により利用できません - - -#strings in exportSettingsWizard.js -cannotWriteToFile=ファイル '%S' を保存できませんでした。違うファイルを選択してください -dataExportError=データのエクスポート中にエラーが発生しました -enigmailSettings=EnigmailSettings -defaultBackupFileName=Enigmail-export -specifyExportFile=エクスポートするファイル名を指定 -homedirParamNotSUpported=--homedir や --keyring などの、パスを指定する追加パラメーターのエクスポート/インポートには対応していません。パスの指定には、環境変数 GNUPGHOME の設定など他の方法を利用してください - -#strings in expiry.jsm -expiry.keyExpiresSoon=あなたの鍵 %1$S は %2$S 日以内に期限切れとなります\n\n新しい鍵ペアを作成し、アカウント設定を適切に更新することを推奨します -expiry.keysExpireSoon=以下の鍵は %1$S 日以内に期限切れとなります:\n%2$S\n\n。新しい鍵ペアを作成し、アカウント設定を適切に更新することを推奨します -expiry.keyMissingOwnerTrust=あなたの秘密鍵 %S の信用度が失われています\n\n鍵のプロパティから「所有者による信用度」を「絶対的」に設定することを推奨します -expiry.keysMissingOwnerTrust=以下の秘密鍵の信用度が失われています\n%S\n鍵のプロパティから「所有者による信用度」を「絶対的」に設定することを推奨します +keyRing.pubKeyRevoked=鍵 %1$S (鍵 ID %2$S) は失効しています。 +keyRing.pubKeyExpired=鍵 %1$S (鍵 ID %2$S) は有効期限切れです。 +keyRing.pubKeyNotForSigning=鍵 %1$S (鍵 ID %2$S) は署名には利用できません。 +keyRing.pubKeyNotForEncryption=鍵 %1$S (鍵 ID %2$S) は暗号化には利用できません。 +keyRing.keyDisabled=鍵 %1$S (鍵 ID %2$S) は無効化されているため利用できません。 +keyRing.keyNotTrusted=鍵 %1$S (鍵 ID %2$S) は十分に信用されていません。署名に利用するためには信用度を「絶対的」に設定する必要があります。 +keyRing.keyInvalid=鍵 %1$S (鍵 ID %2$S) は正当ではありません。この鍵を正しく検証するか、「標準の暗号化設定」を使用してください。 +keyRing.signSubKeysRevoked=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は失効しています。 +keyRing.signSubKeysExpired=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は有効期限切れです。 +keyRing.signSubKeysUnusable=鍵 %1$S (鍵 ID %2$S) のすべての署名用の副鍵は失効、有効期限切れなどの理由により利用できません。 +keyRing.encSubKeysRevoked=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は失効しています。 +keyRing.encSubKeysExpired=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は有効期限切れです。 +keyRing.noSecretKey=鍵 %1$S (鍵 ID %2$S) の秘密鍵が存在しないため、この鍵を署名に利用することはできません。 +keyRing.encSubKeysUnusable=鍵 %1$S (鍵 ID %2$S) のすべての暗号化用の副鍵は失効、有効期限切れなどの理由により利用できません。 +dataExportError=データのエクスポート中にエラーが発生しました。 +expiry.keyExpiresSoon=あなたの鍵 %1$S は %2$S 日以内に有効期限切れとなります。\n\n新しい鍵ペアを作成し、アカウント設定を適切に更新することを推奨します。 +expiry.keysExpireSoon=以下の鍵は %1$S 日以内に有効期限切れとなります:\n%2$S\n\n新しい鍵ペアを作成し、アカウント設定を適切に更新することを推奨します。 +expiry.keyMissingOwnerTrust=あなたの秘密鍵 %S の信用度が失われています。\n\n鍵のプロパティから「所有者による信用度」を「絶対的」に設定することを推奨します。 +expiry.keysMissingOwnerTrust=以下の秘密鍵の信用度が失われています。\n%S\n鍵のプロパティから「所有者による信用度」を「絶対的」に設定することを推奨します。 expiry.OpenKeyManager=鍵の管理を開く expiry.OpenKeyProperties=鍵のプロパティを開く - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=これは暗号化されたメッセージです。このメッセージに対応した秘密鍵がないため、復号することはできません - -#strings in gpgAgent.jsm -gpghomedir.notexists=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' は存在せず、作成することもできません -gpghomedir.notwritable=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' は書き込み可能ではありません -gpghomedir.notdirectory=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' はフォルダーではなくファイルです -gpghomedir.notusable=GnuPG が正しく動作するよう、フォルダーのパーミッションを変更するか、GnuPG の "Home" フォルダーの指定を変更してください -gpgAgent.noAutostart=今お使いの GnuPG のバージョンは %S です。このバージョンでは、Thunderbird の起動の時点で gpg-agent の事前起動および環境変数 "GPG_AGENT_INFO" の事前読み込みが必要となります。\n\nこれらの条件が満たされていないため、Enigmail を利用することはできません - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=あなた自身のアカウントの Trustword を認証することができません -pepTrustWords.cannotFindKey=%S のための鍵を見つけることができません. -pepTrustWords.cannotStoreChange=%S の信用度を変更することができませんでした. -pepTrustWords.generalFailure=%S の Trustword を取得することができません. -pepTrustWords.partnerFingerprint=%S のフィンガープリント: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=あなたのメールプロバイダは、あなたの公開鍵の OpenPGP Web Key Directory へのアップロードを進行中です\n\nEnigmail ヘッダーの確認ボタンをクリックし、公開鍵の公表を完了してください -wkdMessage.body.process=このメールは、あなたの公開鍵の OpenPGP Web Key Directory へのアップロードの自動プロセスによるものです\n\n現時点では、特に何も行う必要はありません - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=あなたか送信者のいずれかがメッセージを再送信する必要があります -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=あなたがこのメッセージを作成したのであれば、あなたの鍵は利用可能ではありません -pepPrivacyStatus.RatingMistrustSuggestion=あなたの通信相手との通信を再度確立し、ハンドシェイクを再度完了させてください -pepPrivacyStatus.RatingReliableSuggestion=あなたの通信相手と Trustword を対面あるいは電話で交換し、ハンドシェイクを完了させてください。ハンドシェイクは、通信相手ごとに一回だけ必要であり、それ以降は安全かつ信頼できる通信が可能となります -pepPrivacyStatus.RatingTrustedSuggestion=何も行う必要はありません! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=このメッセージは安全ではない可能性があります -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=必要な情報を追加してください -pepPrivacyStatus.RatingUnderAttackSuggestion=メッセージの内容と通信相手を別々に検証してください -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=一覧にある通信相手のプライバシー状況が最低でも「安全」であることを確認してください -pepPrivacyStatus.RatingUnencryptedSuggestion=あなたの通信相手に、GnuPG のような暗号ソリューションあるいは p≡p の利用を依頼してください -pepPrivacyStatus.RatingUnreliableSuggestion=このメッセージには信頼できる方法での暗号化あるいは署名が行われていません。あなたの通信相手に、GnuPG のような暗号ソリューションあるいは p≡p の利用を依頼してください - -pepPrivacyStatus.RatingBrokenExplanation=このメッセージは壊れた暗号化あるいはフォーマットです -pepPrivacyStatus.RatingHaveNoKeyExplanation=鍵が利用可能でないため、このメッセージを復号することができません -pepPrivacyStatus.RatingMistrustExplanation=このメッセージの通信相手は、以前に「誤って信用された」とマークされています -pepPrivacyStatus.RatingReliableExplanation=このメッセージは安全ですが、通信相手の身元を確認する必要があります -pepPrivacyStatus.RatingTrustedExplanation=このメッセージは安全かつ信頼されています -pepPrivacyStatus.RatingUndefinedExplanation=このメッセージが安全か否か判断する情報が不足しています -pepPrivacyStatus.RatingUnderAttackExplanation=このメッセージは安全ではありません。改竄されています -pepPrivacyStatus.RatingUnencryptedExplanation=このメッセージは安全ではありません -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=このメッセージは何人かの通信相手については安全ではありません -pepPrivacyStatus.RatingUnreliableExplanation=このメッセージは信頼できない保護が行われています - -pepPrivacyStatus.RatingBrokenText=壊れています -pepPrivacyStatus.RatingHaveNoKeyText=復号できません -pepPrivacyStatus.RatingMistrustText=誤って信用されています -pepPrivacyStatus.RatingReliableText=安全です -pepPrivacyStatus.RatingTrustedText=安全かつ信頼されています -pepPrivacyStatus.RatingUndefinedText=不明 -pepPrivacyStatus.RatingUnderAttackText=改竄されています -pepPrivacyStatus.RatingUnencryptedForSomeText=何人かの通信相手については安全ではありません -pepPrivacyStatus.RatingUnencryptedText=安全ではありません -pepPrivacyStatus.RatingUnreliableText=信頼できない保護 - -handshakeDlg.button.initHandshake=ハンドシェイク... -handshakeDlg.button.stopTrust=信用を中止 -handshakeDlg.button.reTrust=誤った信用を中止 -handshakeDlg.label.outgoingMessage=送信メッセージ -handshakeDlg.label.incomingMessage=受信メッセージ -handshakeDlg.error.noPeers=通信相手のいずれともハンドシェイクを行えません -handshakeDlg.error.noProtection=「ハンドシェイク」機能を有効化するため、保護を有効にしてください - -enigmail.acSetupPasswd.descEnterPasswd=他のデバイス上で表示されているセットアップコードを入力してください -enigmail.acSetupPasswd.descCopyPasswd=他のデバイス上でセットアップを進めるためのセットアップコードを入力してください - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt セットアップメッセージ -autocrypt.setupMsg.msgBody=新しいデバイスに Autocrypt をセットアップするには、デバイス上の指示に従ってください -autocrypt.setupMsg.fileTxt=このファイルは、デバイス間で Autocrypt の設定や鍵を移行するためのものです。元のデバイスに表示されているセットアップコードを入力することでこのファイルを復号し、鍵をインポートすることができます - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Enigmail バージョン 2.0 での変更点 +gpghomedir.notexists=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' は存在せず、作成することもできません。 +gpghomedir.notwritable=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' は書き込み可能ではありません。 +gpghomedir.notdirectory=あなたの OpenPGP 鍵を保存するためのフォルダー '%S' はフォルダーではなくファイルです。 +gpghomedir.notusable=GnuPG が正しく動作するよう、フォルダーのパーミッションを変更するか、GnuPG の "Home" フォルダーの指定を変更してください。 +gpgAgent.noAutostart=今お使いの GnuPG のバージョンは %S です。このバージョンでは、Thunderbird の起動の時点で gpg-agent の事前起動および環境変数 "GPG_AGENT_INFO" の事前読み込みが必要となります。\n\nこれらの条件が満たされていないため、Enigmail を利用することはできません。 +upgradeInfo.doctitle=Enigmail からの移行 upgradeInfo.welcome1=Enigmail バージョン 2.0 へようこそ! upgradeInfo.welcome2=このバージョンでは、多くの新機能の実装および機能の変更が行われています。それらを紹介します: -upgradeInfo.encSubject.title=メッセージの件名の保護 -upgradeInfo.encSubject.desc=これまでメッセージの件名は暗号化の対象となっていませんでしたが、新たに件名を暗号化されたメッセージ中に記録し、通常の件名には "Encrypted Mesage" と表示する機能を実装しました。このようなメッセージを復号すると、本来の件名が自動的に復元されます。メッセージの件名の保護は既定で有効となっていますが、設定から無効化することもできます。(注意: この機能は PGP/MIME メッセージのみで有効です) -upgradeInfo.buttons.title=暗号化および署名ボタンの改良 -upgradeInfo.buttons.desc=メッセージ編集ウインドウ上の 暗号化 および 署名 ボタンは、OpenPGP プロトコルだけでなく S/MIME プロトコルに対しても有効となります。両方のプロトコルが利用可能な場合、Enigmail はすべての鍵が利用可能なプロトコルを選択します -upgradeInfo.autocrypt.title=Autocrypt のサポート -upgradeInfo.autocrypt.desc=Enigmail は新たな鍵配布標準である Autocrypt をサポートします。Enigmail は Autocrypt に適合したメッセージから自動的に鍵をインポートすることで、メッセージの暗号化を推進します -upgradeInfo.pEp.title=p≡p (Pretty Easy Privacy) のサポート -upgradeInfo.pEp.desc=Enigmail は p≡p Junior Mode をサポートします。p≡p Junior Mode では、OpenPGP によるメッセージの暗号化を透過的に提供します。つまり、鍵の管理やデバイス間での鍵の同期を気にする必要がなくなります -upgradeInfo.bottom.desc=Enigmail 利用に関する詳細なヘルプは、オンラインドキュメント を参照してください - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Enigmail/p≡p を利用するためには GnuPG が必要ですが、あなたの環境に GnuPG がインストールされていることを確認できませんでした。GnuPG をダウンロード・インストールすることをお勧めします -pep.updateAvailable=新しいバージョンの EnigmailEnigmail/p≡p の暗号エンジンが利用可能です。この更新をダウンロード・インストールしますか? - -#strings in enigmailAbout.html +upgradeInfo.migrateSettings.title=あなたの鍵と設定の GnuPG から Thunderbird への移行 +upgradeInfo.migrateSettings.desc=Enigmail をアンインストールする前にやるべきことは、あなたの鍵と重要な設定を GnuPG から Thunderbird へ移行することです。ウィザードの準備ができました。 +upgradeInfo.performMigration.buttonLabel=移行を今すぐ開始 +upgradeInfo.thankyou.title=Enigmail をご利用いただきありがとうございました。 +upgradeInfo.thankyou.desc1=およそ 20 年間にわたり Enigmail の開発に携わり、電子メールの暗号化という理想に貢献できたことは私たちの誇りです。Enigmail を活用いただけたなら幸いです。長年のサポートに感謝いたします。 +upgradeInfo.thankyou.desc2=今後もご支援いただけるのであれば、Thunderbird への寄付 を是非ご検討ください。 aboutEnigmail.tabName=Enigmail について aboutEnigmail.title=OpenPGP のサポートは Enigmail によって提供されています aboutEnigmail.team=Enigmail は、Enigmail チームによって開発されています: @@ -819,39 +158,8 @@ aboutEnigmail.projectHosting=プロジェクトのホスティング: aboutEnigmail.licenseSupportTitle=ライセンスおよびサポート aboutEnigmail.license=Enigmail はオープンソースであり、%S でライセンスされています -aboutEnigmail.support=Enigmail のサポートおよびダウンロードは www.enigmail.net から利用可能です - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG の更新 -updateGnuPG.title=GnuPG の更新 -updateGnuPG.introduction.desc=Enigmail での暗号機能の利用には GnuPG が必要です。GnuPG を常に最新版に更新することをお勧めします -updateGnuPG.updateRequired=新しいバージョンの GnuPG が利用可能です。常に最新の GnuPG を利用することをお勧めします。「更新のインストール」ボタンをクリックし、GnuPG の更新をダウンロード、インストールしてください -updateGnuPG.noUpdateRequired=GnuPG は最新です -updateGnuPG.cannotUpdate.header=Enigmail は以下のパッケージの更新のみをサポートします: -updateGnuPG.cannotUpdate.footer=GnuPG の派生版の更新はサポートしていません; そのため、Enigmail がそれらの GnuPG を更新することはできません -updateGnuPG.installUpdate=更新のインストール -updateGnuPG.noMoreUpdates=今後更新を確認しない +aboutEnigmail.support=Enigmail のサポートおよびダウンロードは www.enigmail.net から利用可能です。 updateGnuPG.checkUpdate=GnuPG の更新を確認 - - -#strings in keyserver.jsm -keyserver.error.aborted=中止しました -keyserver.error.unknown=不明なエラーが発生しました -keyserver.error.serverError=鍵サーバーからエラーが報告されました -keyserver.error.importError=ダウンロードした鍵のインポートに失敗しました -keyserver.error.unavailable=鍵サーバーが利用できません -keyserver.error.securityError=鍵サーバーが暗号化された接続に対応していません -keyserver.error.certificateError=鍵サーバーの証明書が正当ではありません -keyserver.error.unsupported=Enigmail が対応している鍵サーバーではありません - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=暗号化されたメッセージの一部 -mimeDecrypt.encryptedPart.concealedData=これはメッセージのうち暗号化された部分となります。添付ファイルをクリックして別のウインドウで開く必要があります - -#strings in gnupg-key.jsm -import.secretKeyImportError=秘密鍵のインポート中に GnuPG でエラーが発生しました。インポートに失敗しました - -#strings in importSettings.js -importSettings.errorNoFile=ファイルの形式が正常ではありません! -importSettings.cancelWhileInProgress=復元中です。プロセスを中断しますか? -importSettings.button.abortImport=プロセスを中断(&A) +import.secretKeyImportError=秘密鍵のインポート中に GnuPG でエラーが発生しました。インポートに失敗しました。 +passphrasePrompt=以下の鍵のパスフレーズを入力してください: %S +openpgpInitError=Thunderbird の OpenPGP システムの初期化の際にエラーが発生しました。\n\nThunderbird の OpenPGP システムが正常に初期化されないと、移行ウィザードは正常に進行できません。 diff -Nru enigmail-2.1.6+ds1/lang/ja/help/compose.html enigmail-2.2.4/lang/ja/help/compose.html --- enigmail-2.1.6+ds1/lang/ja/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - Enigmail ヘルプ: メッセージの作成 - - - - -

Enigmail ヘルプ

- -

メッセージを作成するときの Enigmail の使用方法

- -
-
メッセージ作成画面での Enigmail メニュー
- -
-
-
署名
- -
-
    -
  • 有効 (自動): 署名に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、メッセージに署名するよう自動的に指定されています。
  • - -
  • 無効 (自動): 署名に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、メッセージに署名しないよう自動的に指定されています。
  • - -
  • 有効: メッセージに署名するよう設定を上書きしています。
  • - -
  • 無効: メッセージに署名しないよう設定を上書きしています。
  • -
-
- -
暗号化
- -
-
    -
  • 有効 (自動): 暗号化に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、メッセージを暗号化するよう自動的に指定されています。
  • - -
  • 無効 (自動): 暗号化に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、メッセージを暗号化しないよう自動的に指定されています。
  • - -
  • 有効: メッセージを暗号化するよう設定を上書きしています。
  • - -
  • 無効: メッセージを暗号化しないよう設定を上書きしています。
  • -
-
- -
PGP/MIME
- -
-
    -
  • PGP/MIME (自動): PGP/MIME に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、PGP/MIME で送信するよう自動的に指定されています。
  • - -
  • インライン PGP (自動): PGP/MIME に関する設定 (アカウントごとの設定、受取人ごとの設定、送信時の設定など) に従って、インライン PGP で送信するよう自動的に指定されています。
  • - -
  • PGP/MIME: PGP/MIME で送信するよう設定を上書きしています。
  • - -
  • インライン PGP: インライン PGP で送信するよう設定を上書きしています。
  • -
-
- -
すべての受取人の鍵を信頼する
- -
宛先に指定された受取人の鍵をすべて信頼します。
- -
標準設定に戻す
- -
もし、メッセージの送信に失敗した時、たとえば POP サーバーが要求を拒否した時など、Enigmail はそのことが分からないので、暗号化されたメッセージをメッセージ作成ウインドウにそのまま表示し続けます。このメニューを選ぶことにより暗号化・署名の設定を元に戻し、メッセージ作成ウインドウに元の文書を表示します。
暫定回避策として、このメニューは暗号化されたメッセージに対して返信する時に、強制的に復号することにも使用できます。
- -
自分の公開鍵の添付
- -
ASCII 形式の自分の公開鍵を添付します。この方法によって挿入された公開鍵は、受け取り側の Enigmail によって自動的に認識されます。公開鍵を添付した後でも、必要に応じてそのメッセージを署名および暗号化することができます。
- -
公開鍵の添付
- -
ASCII 形式の公開鍵を添付します。挿入する公開鍵のメールアドレスを選択するポップアップ画面がでます。この方法によって挿入された公開鍵は、受け取り側の Enigmail によって自動的に認識されます。公開鍵を添付した後でも、必要に応じてそのメッセージを署名および暗号化することができます。
- -
パスフレーズのクリア
- -
キャッシュされているパスフレーズをクリアします。複数のパスフレーズを使用しているときに便利です。
- -
設定
- -
-
    -
  • アカウントごとの設定...: アカウント設定 -> OpenPGP 設定 へのショートカットです。
  • - -
  • 送信時の設定...: Enigmail 設定 -> 送信 へのショートカットです。
  • - -
  • 鍵の選択の設定...: Enigmail 設定 -> 鍵の選択 へのショートカットです。
  • - -
-
- -
-
-
-
- -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/editRcptRule.html enigmail-2.2.4/lang/ja/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ja/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - Enigmail ヘルプ: 受取人ごとの設定の編集 - - - - -

Enigmail ヘルプ

- -

受取人ごとの設定の編集

- -

受取人ごとの設定の編集で、受取人ごとに署名、暗号化、PGP/MIME の可否および使用する OpenPGP 鍵を指定できます。このダイアログで 1 人の受取人、および同様な方法でグループに対して設定できます。

- -
-
メールアドレス
- -
受取人のメールアドレスが表示されます (名前は表示されずアドレスだけです 例: somebody@email.domain)。半角スペースで区切って複数のアドレスを入力することもできます。ここで指定するアドレスは、ドメインセクション (@ の右側) だけを指定できます。そうすることにより、同じドメインの (@ マークの右側が同じ) どんなアドレスにもルールを適用することができます。例えば @email.domain と入力した場合、body@email.domain, somebody@email.domain, anybody@email.domain などにもルールが適用されます。
- -
受取人が上記アドレス ... とき、ルールを適用
- -
電子メールアドレスの適用方法を指定します。もし、複数のアドレスが入力されている場合、この設定は全員に対して適用されます。以下は body@email.domainメールアドレス 欄に入力された場合の例です。 -
    -
  • と同一の: 指定したメールアドレスと同一の場合のみマッチします。body@email.domain (大文字小文字の違いは無視されます)
  • - -
  • を含む: 指定した文字列を含むメールアドレスがマッチします。例: anybody@email.domain, body@email.domain.net
  • - -
  • から始まる: 指定した文字列から始まるメールアドレスがマッチします。例: body@email.domain.net, body@email.domain-name.com
  • - -
  • で終わる: 指定した文字列で終わるメールアドレスがマッチします。例: anybody@email.domain, somebody@email.domain.
  • -
-
- -
当てはまるアドレスについては、次のルールを続いて適用
- -
これにチェックをすると、以下の OpenPGP 鍵を使用する の欄で鍵 ID の指定をする必要がなくなります。メールアドレスは、送信時にチェックされ、そのメールアドレスについてのルールが続いて適用されます。
- -
当てはまるアドレスについては、これ以上のルールを適用しない
- -
これにチェックをすると、このルールにマッチしたアドレスについては他のルールを適用しなくなります。ルール処理は次の受取人から行われることになります。
- -
以下の OpenPGP 鍵を使用する:
- -
鍵の選択(s)... ボタンをクリックし、暗号化に使用する受取人の鍵を選択してください。既に述べたように、マッチするアドレスに対してこれ以上のルール処理はされません。
- -
署名の既定の設定
- -
署名する/しないを決定します。これはメッセージ作成画面のの個別の設定によって上書きされます。 - -
    -
  • 無効: メッセージに署名しません。
  • - -
  • 返信時のみ有効: 署名されたメッセージに返信するときのみ署名します。
  • - -
  • 有効: メッセージに署名します。
  • -
この署名に関する設定はマッチするすべてのルールに対して適用されます。もし署名をしないルールが 1 つでもあれば、他の署名をするルールがマッチしても、署名はされません。 -
- -
暗号化の既定の設定
- -
暗号化する/しないを決定します。設定可能な項目と意味は、署名と同一です。
- -
PGP/MIME の既定の設定
- -
PGP/MIME (RFC 3156) を用いてメッセージをエンコードするかどうかを決定します。PGP/MIME が無効の場合、インライン PGP が使われます。設定可能な項目と意味は、署名と同一です。
-
- -

これらのルールは 受取人ごとの設定 に表示されている順に処理されます。ルールに受取人がマッチし、OpenPGP 鍵の ID を含み、加えて設定された鍵 ID を使用している場合には、その受取人に関してはそれ以上のルールは考慮されません。

-
- -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/help.html enigmail-2.2.4/lang/ja/help/help.html --- enigmail-2.1.6+ds1/lang/ja/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail ヘルプ - - - -

Enigmail ヘルプ

-

メッセージを読む時の Enigmail の使用方法

-
    -
  • メインウインドウの復号ボタン
    - このボタンをはいくつかの用途で使われます。: 暗号化、検証、または公開鍵のインポートなどです。通常、暗号化/検証は自動的に行われます。設定によって無効にすることも可能です。しかし、失敗した時には、短いエラーメッセージが Enigmail に表示されるだけです。このボタンをクリックすることで、GnuPG コマンドの出力結果を含めて詳細なエラーメッセージを表示します。
  • -
  • メッセージヘッダーのペンと鍵のアイコン
    - メッセージヘッダーに表示されている ペン のアイコンは、あなたが読んでいるメッセージの署名が正しいか、暗号化されているかを示しています。もしそのメッセージが署名された後に改ざんされている場合、ペンのアイコンは×印つきのペンのアイコンとして表示され問題を示します。ペンや鍵のアイコンを右クリックすることで、以下のメニューが表示されます。 -
      -
    • Enigmail セキュリティー情報: GnuPG がそのメッセージに対して出力した結果を表示します。
    • -
    • Enigmail セキュリティー情報をコピー: GnuPG の出力をクリップボードにコピーします。返信に貼るなどに利用できます。
    • -
    • OpenPGP フォト ID を表示: 公開鍵に写真が埋め込まれていれば、メッセージの送信者の フォト ID を表示します。(このオプションは写真が公開鍵に埋め込まれている場合に有効です。)
    • -
    • S/MIME セキュリティー情報: このメッセージの S/MIME セキュリティー情報を表示します。
    • -
    -

    もしあなたが keyserver-options auto-key-retrievegpg.conf に設定していない状態で署名か暗号化されているメッセージを読むと、ペンのアイコンがと共に表示され、ヘッダーのステータスラインに メッセージの一部分が 署名 されています; 詳しくは「詳細」ボタンをクリックしてください と表示され、メッセージペインには OpenPGP メッセージブロックと署名ブロックが表示されます。

    -

    keyserver-options auto-key-retrievegpg.conf に設定されている場合でも、OpenPGP 鍵が既定の鍵サーバーに無い場合は同様のアイコンが表示されます。

    -

    ペンと? のアイコンをクリックすると、該当する公開鍵を持っていない旨が表示されます。OK をクリックすると、鍵サーバーのリストが表示された別ウィンドウが開きメッセージの送信者の公開鍵をダウンロードすることができます。

    -

    あなたが使いたい公開鍵サーバーのリストを編集するには、Enigmail -> 設定 -> 鍵サーバー タブを選択し、公開鍵サーバー: の欄にアドレスをカンマ区切りで入力してください。リストの一番上のサーバーが既定で使用されます。

    -
  • -
  • 暗号化された添付ファイルを開く / 添付された OpenPGP 鍵のインポート
    - 拡張子が *.pgp, *.asc *.gpg の添付ファイルは Enigmail で自動的に認識されます。 それらの添付ファイルを右クリックすると、特別な選択肢がコンテキストメニューに表示されます。暗号化された添付ファイルの場合には、復号して開く復号して名前をつけて保存 が表示され、開いたり保存する前に添付ファイルを Enigmail で復号することができます。添付ファイルが OpenPGP 鍵ファイルの場合には、OpenPGP 鍵を読み込む が表示され、OpenPGP 鍵を読み込むことができます。
  • -
-
-

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page
-Enigmail について質問や意見がある場合には、Enigmail mailing list にメッセージを送信してください。

-

Enigmail はオープンソースであり、Mozilla Public License 2.0 でライセンスされています。

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/initError.html enigmail-2.2.4/lang/ja/help/initError.html --- enigmail-2.1.6+ds1/lang/ja/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - Enigmail ヘルプ: Enigmail の初期化に関する問題を解決するには - - - - -

Enigmail ヘルプ

- -

Enigmail の初期化に関する問題を解決するには

- -

Enigmail の初期化が成功しないことにはいくつかの原因があります。よくある原因は以下のようなものです。 - 更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page

- -
-
GnuPG が見つからない
-
-

- Enigmail を利用するためには、GnuPG がインストールされている必要があります。 - GnuPG が見つからない場合には、まずはじめに GnuPG の実行ファイルである gpg.exe (Windows の場合。他のプラットフォームの場合には gpg) がお使いのコンピューターにインストールされていることを確認してください。 - GnuPG がインストールされているにもかかわらず Enigmail がそれを検出できない場合には、GnuPG の実行ファイルへのパスを手動で設定してください (Enigmail > 設定) -

- -
Enigmail コアサービス の初期化に失敗する
- -
-

- Enigmail は、お使いの Thunderbird や SeaMonkey がビルドされた環境と同じ環境でビルドされたものしか動作しません。すなわち、Enigmail の公式リリースは mozilla.org からリリースされる Thunderbird や SeaMonkey でしか動作しません。 -

-

- Linux ディストリビューションなど、mozilla.org 以外からリリースされる Thunderbird や SeaMonkey をお使いの場合やご自分でビルドした Thunderbird や SeaMonkey をお使いの場合には、同じ提供元からリリースされる Enigmail を利用するか、ご自分でビルドする必要があります。Enigmail のビルドについては、Source Code section を参照してください。このようなビルド環境の違いに起因する問題を Enigmail のバグとして報告しないでください。 -

-
-
- -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/messenger.html enigmail-2.2.4/lang/ja/help/messenger.html --- enigmail-2.1.6+ds1/lang/ja/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - Enigmail ヘルプ: メッセージを読む - - - - -

Enigmail ヘルプ

- -

メッセージを読む時の Enigmail の使用方法

- -
-
メインウインドウの復号ボタン
- -
このボタンをはいくつかの用途で使われます。: 暗号化、検証、または公開鍵のインポートなどです。通常、暗号化/検証は自動的に行われます。設定によって無効にすることも可能です。しかし、失敗した時には、短いエラーメッセージが Enigmail に表示されるだけです。このボタンをクリックすることで、GnuPG コマンドの出力結果を含めて詳細なエラーメッセージを表示します。
- -
メッセージヘッダーのペンと鍵のアイコン
- -
- メッセージヘッダーに表示されている ペン のアイコンは、あなたが読んでいるメッセージの署名が正しいか、暗号化されているかを示しています。もしそのメッセージが署名された後に改ざんされている場合、ペンのアイコンは×印つきのペンのアイコンとして表示され問題を示します。ペンや鍵のアイコンを右クリックすることで、以下のメニューが表示されます。 - -
    -
  • Enigmail セキュリティー情報: GnuPG がそのメッセージに対して出力した結果を表示します。
  • - -
  • Enigmail セキュリティー情報をコピー: GnuPG の出力をクリップボードにコピーします。返信に貼るなどに利用できます。
  • - -
  • OpenPGP フォト ID を表示: 公開鍵に写真が埋め込まれていれば、メッセージの送信者の フォト ID を表示します。(このオプションは写真が公開鍵に埋め込まれている場合に有効です。)
  • - -
  • S/MIME セキュリティー情報: このメッセージの S/MIME セキュリティー情報を表示します。
  • -
- -

もしあなたが keyserver-options auto-key-retrievegpg.conf に設定していない状態で署名か暗号化されているメッセージを読むと、ペンのアイコンがと共に表示され、ヘッダーのステータスラインに メッセージの一部分が 署名 されています; 詳しくは「詳細」ボタンをクリックしてください と表示され、メッセージペインには OpenPGP メッセージブロックと署名ブロックが表示されます。

- -

keyserver-options auto-key-retrievegpg.conf に設定されている場合でも、OpenPGP 鍵が既定の鍵サーバーに無い場合は同様のアイコンが表示されます。

- -

ペンと? のアイコンをクリックすると、該当する公開鍵を持っていない旨が表示されます。OK をクリックすると、鍵サーバーのリストが表示された別ウィンドウが開きメッセージの送信者の公開鍵をダウンロードすることができます。

- -

あなたが使いたい公開鍵サーバーのリストを編集するには、Enigmail -> 設定 -> 鍵サーバー タブを選択し、公開鍵サーバー: の欄にアドレスをカンマ区切りで入力してください。リストの一番上のサーバーが既定で使用されます。

-
- -
暗号化された添付ファイルを開く / 添付された OpenPGP 鍵のインポート
- -
拡張子が *.pgp, *.asc *.gpg の添付ファイルは Enigmail で自動的に認識されます。 それらの添付ファイルを右クリックすると、特別な選択肢がコンテキストメニューに表示されます。暗号化された添付ファイルの場合には、復号して開く復号して名前をつけて保存 が表示され、開いたり保存する前に添付ファイルを Enigmail で復号することができます。添付ファイルが OpenPGP 鍵ファイルの場合には、OpenPGP 鍵を読み込む が表示され、OpenPGP 鍵を読み込むことができます。
-
-
- -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/rulesEditor.html enigmail-2.2.4/lang/ja/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ja/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - - Enigmail ヘルプ: 受取人ごとの設定 - - - - -

Enigmail ヘルプ

- -

Enigmail 受取人ごとの設定

- -

受取人ごとの設定では、受取人ごとに暗号化、署名、PGP/MIME に関する既定の設定と、どの OpenPGP 鍵を用いるかを設定できます。各ルールは 5 つのフィールドからなり、1 つの方針をあらわします。:

- -
-
メールアドレス
- -
メールアドレスを To:, Cc: そして Bcc: フィールドでマッチさせます。 マッチングは、部分一致で行われます。 (詳細は ルール編集 ダイアログにあります。)
- -
OpenPGP 鍵
- -
受取人ごとに用いる OpenPGP 鍵 ID を設定します。
- -
署名
- -
- 署名する/しないを決定します。これはメッセージ作成画面の個別の設定によって上書きされます。 - -
    -
  • 無効: メッセージに署名しません。
  • - -
  • 返信時のみ: 署名されたメッセージに返信するときのみ署名します。
  • - -
  • 有効: メッセージに署名します。
  • -
- -

この署名に関する設定はマッチするすべてのルールに対して適用されます。もし署名をしないルールが 1 つでもあれば、他の署名をするルールがマッチしても、署名はされません。

-
- -
暗号化
- -
暗号化する/しないを決定します。設定可能な項目と意味は、署名と同様です。
- -
PGP/MIME
- -
PGP/MIME (RFC 3156) を用いてメッセージをエンコードするかどうかを決定します。PGP/MIME が無効の場合、インライン PGP が使われます。設定可能な項目と意味は、署名と同一です。
-
- -

ルールは表示されている順に処理されます。あるルールが受取人にあてはまり、OpenPGP 鍵 ID、さらに特定された鍵 ID を含んでいる場合、その受取人については、他のルールは考慮されません。

- -

注意: ルールエディターはまだ完成していません。ルールファイルを直接編集することで、より詳細なルールを設定することが可能です (これらのルールはルールエディターで編集できなかったものです)。直接ファイルを編集することについての 詳細な情報 (英語) は Enigmail Homepage にあります。

-
- -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ja/help/sendingPrefs.html enigmail-2.2.4/lang/ja/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ja/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ja/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ - - - - - - Enigmail ヘルプ: 送信時の暗号化設定 - - - - -

Enigmail ヘルプ

- -

暗号化して送信する設定

- -

送信設定において、暗号化に関する一般的なモデルとルールを選択することができます。

-
-
標準の暗号化設定
-
この設定では、可能であれば確認なしに自動的に暗号化して送信します。 -

単に暗号化することでプライバシーを強化したいのであれば、この設定が適しています。 -

これは、葉書ではなく封書を用いることと類似しています。葉書とは異なり、封書であれば配送の過程でメッセージの内容が第三者の目に触れることはありません。 -

しかしながら封書を用いた場合と同様に、この設定では配送過程で第三者によってメッセージの内容が解読される可能性を完全に否定することはできません (そのために特別な技術を必要とするとしても)。 -

具体的なリスクとしては、正規の受取人を装った第三者による「偽物の鍵」に対して暗号化してしまうことが挙げられます。これを避けるためには、PGP の信頼モデルを利用するか (下記参照)、公開鍵のフィンガープリントが正しいか常に確認する必要があります。

- -
詳細な暗号化設定
-
この設定では、必要に応じて暗号化の設定を変更することができます。 -
    -
  • 署名/暗号化されたメッセージに対して自分も署名/暗号化して返信するか否か
  • -
  • 暗号化の際に受け入れる鍵の選定に OpenPGP の信頼モデル (Web of Trust、自分自身による署名あるいは、自分が信用する鍵による十分な数の署名を必要とします) を用いるか否か
  • -
  • 鍵が受け入れられる場合に、自動的に暗号化して送信するか否か
  • -
  • 送信前に暗号化について確認するか否か
  • -
-
- - 正規の受取人以外の第三者によって暗号化したメッセージの内容が解読されることを防ぐためには、詳細設定で「信用できる鍵のみ」を選択する必要があります。OpenPGP の信頼モデル (Web of Trust) を用いることで、偽物の鍵に対するリスクを軽減することができますが、このモデルを適切に利用するためには、自分自身による署名を行い、「所有者による信用度」を明示する必要があります。 - -

更なるヘルプは以下のサイトで利用できます (英語): Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/am-enigprefs.properties enigmail-2.2.4/lang/ko/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ko/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP 보안 +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ko/enigmail.dtd enigmail-2.2.4/lang/ko/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ko/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'를 사용"> - - -' 문자를 사용합니다. 받는 사람이 오래된 Hushmail 키를 사용하고 있는 경우는 비활성화 바랍니다."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OpenPGP 보안)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -주의:키 생성은 완료까지 몇 분 정도 걸릴 수 있습니다. 키 생성이 진행되는 동안 응용프로그램을 종료하지 마십시오. 키 생성 도중에 브라우저를 사용하거나 디스크 액세스가 많은 작업을 수행하면, '난수 풀'이 채워져 처리 속도가 빨라집니다. 키 생성이 완료되면 알려드립니다."> - @@ -296,489 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'은 잘못된 것입니다."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -주의:키 생성은 완료까지 몇 분 정도 걸릴 수 있습니다. 키 생성이 진행되는 동안 응용프로그램을 종료하지 마십시오. 키 생성이 완료되면 알려드립니다."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ko/enigmail.properties enigmail-2.2.4/lang/ko/enigmail.properties --- enigmail-2.1.6+ds1/lang/ko/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=에니그메일 - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=에니그메일 경고 # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=에니그메일 에러 enigPrompt=에니그메일 프롬프트 - -dlgYes=예(&Y) dlgNo=아니오(&N) dlgKeepSetting=설정을 저장해, 다음부터 묻지 않음 dlgNoPrompt=다음부터 이 대화상자를 표시하지 않음 -dlg.button.delete=삭제(&D) dlg.button.cancel=취소(&C) dlg.button.close=닫기(&C) dlg.button.continue=계속(&T) -dlg.button.skip=건너뛰기(&S) -dlg.button.overwrite=덧쓰기 &O -dlg.button.view=보기(&V) -dlg.button.retry=재시도 &R -dlg.button.ignore=무시 &I -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\n이 경고는 %S repeatSuffixSingular=회 반복됩니다. repeatSuffixPlural=회 반복됩니다. noRepeat=\n\nEnigmail를 업그레이드 할 때까지, 이 경고는 반복되지 않습니다. - -pgpNotSupported=에니그메일을 PGP 6.x와 함께 사용하고 계신것 같습니다.\n\n불행하게도, PGP 6.x는 Enigmail가 올바르게 동작하지 못하게하는 많은 문제점을 가지고 있습니다. 따라서, 에니그메일은 PGP 6.x를 더이상 지원하지 않습니다.. GnuPG (GPG)를 대신에 사용하세요.\n\n, GnuPG로 전환할 때 도움이 필요하다면, Enigmail 홈페이지의 Help 섹션을 참조하시기 바랍니다. -initErr.howToFixIt=에니그메일사용하려면 GnuPG가 필요합니다. GnuPG를 아직 설치하지 않았으면 아래의 설치마법사 버튼을 이용하는 것이 가장 쉽습니다. -initErr.setupWizard.button=설치마법사 &S passphraseCleared=암호문구를 지웠습니다 cannotClearPassphrase=암호문구 관리를 위해 gnome-keyring과 같이 비표준 프로그램을 사용합니다. 따라서 에니그메일에서 암호문구 삭제기능을 사용할 수 없습니다. -noPhotoAvailable=사진이 없습니다 -debugLog.title=에니그메일 디버그 로그 -error.photoPathNotReadable='%S'에서 사진을 찾을 수 없습니다. - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=에니그메일 새버전은 선택사항과 옵션이 많이 바뀌었습니다. 최대한 과거버전의 내용을 그대로 이전해 오려고 했으나 일부 자동으로 처리하지 못한 것이 있습니다. 새 버전의 선택사항과 옵션을 다시한번 점검해 주시기 바랍니다. -enigmailCommon.checkPreferences=선택사항을 점검하세요 ... -preferences.defaultToPgpMime=에니그메일에서 사용하는 인코딩 방식을 인라인PGP방식에서 PGP/MIME방식으로 변경하였습니다. 이 방식이 자동적용되도록 변경하지 마시길 권합니다. \n\n인라인PGP방식이 자동적용되도록 하려면 OpenPGP보안의 계정에서 설정을하시기 바랍니다. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=에니그메일 버전 %S 실행 중 -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=%S 실행파일 %S 를 이용해 암호화/복호화를 하고 있습니다. agentError=에러: 에니그메일 핵심 서비스에 액세스 할 수 없습니다! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=에니그메일 서비스에 액세스 할 수 없습니다. -onlyGPG=키 생성은 GnuPG에서만 이용할 수 있습니다. (PGP에서는 동작하지 않습니다! ) - -keygenComplete=키 생성 완료! 증명서 <%S>가 서명에 이용됩니다. -revokeCertRecommended=사용자의 키에 대한 폐기 인증서 작성을 강력히 추천 합니다. 이 인증서는 키를 무효로 하고 싶을 때, 예를 들어, 비밀키를 읽어버리거나 신뢰성을 보장할 수 없을 때 이용할 수 있습니다. 폐기 증명서를 지금 작성합니까? -keyMan.button.generateCert=인증서 생성(&G) -genCompleteNoSign=키 생성 완료! -genGoing=키 생성 이미 진행중! - -passNoMatch=패스프레이즈가 일치하지 않았습니다. 다시 입력해주세요 -passCheckBox=키에 대해 패스프레이즈를 설정하지 않는 경우 체크 -passUserName=이 증명서에 대한 사용자 명을 지정하세요 -keygen.missingUserName=계정이나 아이디 난에 성명을 입력하지 않았습니다. 계정설정의 Your name 난에 성명을 입력하세요. -keygen.passCharProblem=암호문구에 특수문자가 있습니다. 이 경우 프로그램에서 문제가 발생할 수 있습니다. 암호문구에는 다음 문자만을 사용하기를 바랍니다. :\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=기술적으로 처리하기 어려우므로, 공백문자를 암호문구의 첫자와 마지막 글자로 입력할 수 없습니다. -changePassFailed=패스프레이즈 변경 실패 - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=키 생성(&G) -keyAbort=키 생성을 중지합니까? -keyMan.button.generateKeyAbort=키 생성 중단(&A) -keyMan.button.generateKeyContinue=키 생성 계속(&C) -expiryTooLong=100년 이상의 유효기간이 있는 키는 생성 할 수 없습니다. -expiryTooLongShorter=유효기간이 90년이상인 키를 생성할 수 없습니다. -expiryTooShort=키는 적어도 1일간은 유효하지 않으면 안됩니다. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=유효기간 만기일을 수정할 수 없습니다. - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail 보안 정보 \n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=PGP/MIME 암호화 혹은 서명된 메시지 같습니다. 복호화화 버튼을 누르세요 - -saveAttachmentHeader=Enigmail: 복호화 한 첨부 파일을 저장 -noTempDir=쓰기 가능한 임시 디렉토리를 찾을 수 없음\nTEMP 환경 변수를 설정해 주세요 -attachmentPgpKey=열려고 한 첨부 파일 '%S'는, OpenPGP키 파일입니다. \n\n첨부된 키를 가져오려면 '가져오기'를 브라우저 윈도우에서 파일 내용을 보려면 '보기'를 클릭하세요 - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=에니그메일: 메시지가 여러 블록으로 나뉘어 있습니다.복호화/검증이 실패하였습니다. - -decryptOkNoSig=경고\n\n복호화에 성공했으나 서명은 올바르게 검증되지 않았습니다 -msgOvl.button.contAnyway=상관없이 계속 진행(&C) -signature.verifiedOK=첨부파일%S 의 서명을 대조한 결과 서명이 일치합니다. -signature.verifyFailed=첨부파일 %S의 서명을 대조한 결과 서명이 불일치합니다. -attachment.noMatchToSignature=첨부파일'%S'와 서명파일을 대조한 결과 불일치합니다. -attachment.noMatchFromSignature=서명파일 '%S'와 첨부파일을 대조한 결과 불일치합니다. -fixBrokenExchangeMsg.failed=메세지 수정 작업이 실패하였습니다. -enigmail.msgViewColumn.label=에니그메일 -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=삽입할 OpenPGP 키를 선택하세요 keysToUse=%S 사용할 OpenPGP키를 선택하세요 pubKey=%S 에 대한 공개키\n - -windowLocked=메시지 작성 화면이 잠김. 보내기 취소됨 -sendUnencrypted=Enigmail 초기화를 실패했습니다.\n암호화되지 않은 메시지를 보내시겠습니까? -composeSpecifyEmail=외부로 나가는 메시지에 대한 서명 키를 선택하는데 사용할 주로 사용하는 전자 메일 주소를 지정해 주세요.\n 공백으로 두면, 해당 메시지의 보내는 사람의 주소가 서명 키 선택에 사용됩니다. -sendingHiddenRcpt=이 메시지에는 BCC (숨은 참조)로 받는 사람이 있습니다. 이 메시지가 암호화되면, BCC로 받는 사람을 숨길 수는 있지만 몇몇 다른 PGP 제품 (예를 들어, PGP Corp.) 사용자가 메시지를 복호화 할 수 없게 될수도 있습니다. 이 경우, 암호화한 BCC-메일을 사용하지 않는게 좋습니다. -sendWithHiddenBcc=BCC 받는 사람 숨기기 -sendWithShownBcc=일반적인 방식으로 암호화 -sendingNews=암호화된 보내기 작업이 중단됐습니다.\n\n이 메시지는 뉴스 그룹의 받는 사람이 포함되어 있기 때문에 암호화될 수 없습니다. 암호화 하지말고 다시 이 메시지를 보내주세요. -sendToNewsWarning=경고: 뉴스그룹에 암호화한 메일을 보내려하고 있습니다.\n\n그룹의 모든 구성원이 이 메시지를 복호화 할 수 있어야 의미가 있기 때문에 이렇게 하는 것은 권장하지 않습니다. 예를 들어, 메시지는 그룹에 참여하고 있는 모든 사람의 키로 암호화 되어야 합니다. 지금 수행하고 있는 일이 어떤 일인지 정확히 알고있는 경우에만 메시지를 보내기 바랍니다.\n\n계속하시겠습니까? -hasHTML=HTML 메일 경고:\n이 메시지에는 서명/암호화 실패를 일으킬 수 있는 HTML이 포함되어 있는 것 같습니다. 앞으로 이 메시지를 무시하려면, 서명한 메일을 보낼 때 SHIFT 키를 누르면서 작성/답신 버튼을 클릭하시기 바랍니다.\n만약 기본으로 메일에 서명을 하고 있다면, 이 메일 계정에 대해 HTML 메일을 계속 사용하지 않도록하기 위해 'HTML로 메시지를 작성하기' 설정을 체크 해제하셔야 합니다. -strippingHTML=서명/암호화를 위해 텍스트 형식으로 변환하는 과정에서 손실되는 HTML 형식 정보가 메시지에 포함되어 있습니다. 정말로 진행할까요? -msgCompose.button.sendAnyway=그래도 메시지 보내기(&S) -attachWarning=이 메시지의 첨부물은 로컬에 있는 것이 아니기 때문에 암호화될 수 없습니다. 첨부물을 암호화하기 위해서는, 해당 첨부물을 로컬 파일로 우선 저정한 다음 이 파일들을 다시 첨부하세요. 그래도 메시지를 보내시겠습니까? quotedPrintableWarn=보내는 메시지에 'quoted-printable' 인코딩이 설정되어 있습니다. 이 설정으로 인해 메시지의 복호화 그리고/또는 검증을 올바로 할 수 없게될 소지가 있습니다. 지금 'quoted-printable' 메시지 보내기 설정을 끄시겠습니까? -minimalLineWrapping=%S 자가 될 때마다 줄 바꾸기 설정이 되어 있습니다. 제대로 암호화 그리고/또는 서명을 하려면, 적어도 이 값이 68 은 되어야합니다. \n 지금 줄 바꿈 문자 수를 68자로 변경합니까? warning=경고 -signIconClicked=서명을 수동으로 변경했습니다. 따라서 이 메시지를 작성하는 동안, 서명하기 활성/비활성은 더이상 암호화 활성/비활성하기에 의존하지 않습니다. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=초안을 저장할 때 에러 발생 -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=내부 에러: 해당 암호화 방법 사용 불가 -msgCompose.internalError=내부에러가 발생했습니다. - -msgCompose.toolbarTxt.signAndEncrypt=이 메시지에 서명을 하고 암호화 합니다. -msgCompose.toolbarTxt.signOnly=이 메시지에 서명을 합니다. -msgCompose.toolbarTxt.encryptOnly=이 메시지를 암호화 합니다. -msgCompose.toolbarTxt.noEncryption=이 메시지에 서명하지 않고 암호화도 하지 않습니다. -msgCompose.toolbarTxt.disabled=선택하신 아이디는 에니그메일을 사용할 수 없습니다. -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=상세내용 ... -msgCompose.detailsButton.accessKey=상세 - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=보내기 중단됨.\n\n - -# details: keyNotTrusted='%S' 키에 대한 신뢰 수준이 부족합니다. -keyNotFound='%S' 키를 찾을 수 없습니다. -keyRevoked='%S' 키가 취소되었습니다. -keyExpired='%S' 키 유효기일 경과 - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=서명됨 -statEncrypted=암호화됨 -statPlain=서명되고 암호화됨 - -offlineSave=%S 메시지를 보낼 편지함 폴더에 %S (으)로 저장하시겠습니까? - -onlineSend=%S 메시지를 %S (으)로 보냅니까? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey=<키 숨김> - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=암호화되지 않은 메시지 보내기(&S) -recipientsSelectionHdr=암호화하기 위해 받는 사람을 선택 - -configureNow=선택한 디지털 신분증에 대한 Enigmail 보안 설정이 아직 되어있지 않습니다. 지금 설정하시겠습니까? - -# encryption/signing status and associated reasons: -encryptMessageAuto=메시지 암호화 (자동) -encryptMessageNorm=메시지 암호화 -signMessageAuto=메시지 서명작업(자동) -signMessageNorm=메시지 서명작업 - -encryptOff=암호화작업: 정지 -encryptOnWithReason=암호화작업:진행중(%S) -encryptOffWithReason=암호화작업:정지 (%S) -encryptOn=암호화작업:진행중 -signOn=서명작업:진행중 -signOff=서명작업:정지 -signOnWithReason=서명작업:진행중 (%S) -signOffWithReason=서명작업:정지(%S) -reasonEnabledByDefault=기본적으로 가동 -reasonManuallyForced=수작업으로 적용 -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=자동 암호화 적용 -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=암호화 방식으로 인해 - -# should not be used anymore: -encryptYes=메시지는 암호화됩니다 -encryptNo=메시지가 암호화되지 않습니다 - -# should not be used anymore: -signYes=메시지는 서명됩니다 -signNo=메시지가 서명되지 않습니다 - - -# PGP/MIME status: -pgpmimeNormal=프로토콜: PGP/MIME -inlinePGPNormal=프로토콜:Inline PGP -# smimeNormal=Protocol: S/MIME -pgpmimeAuto=프로토콜:PGP/MIME (자동) -inlinePGPAuto=프로토콜l: Inline PGP (자동) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME 을 사용할 예정입니다. -pgpmimeNo=Inline PGP를 사용할 예정입니다. - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=받는 사람 별 규칙들이 서로 모순됩니다\n%S\n\n이렇게 설정해서 메시지를 보냅니까? -msgCompose.button.configure=설정(&C) -msgCompose.button.send=메시지 보내기(&S) -msgCompose.button.save=메시지 저장(&S) - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=공개키 %S 가 서명 검증에 필요함 -keyUsed=서명을 검증하기위해 공개키 %S 를 사용함. -clickDecrypt=; 복호화 버튼을 클릭 -clickDecryptRetry=; 다시 시도하려면 복호화 버튼을 클릭 -clickDetailsButton=; 자세한 내용을 보려면 "상세"버튼을 누르시오. -clickImportButton=; 키를 반입하려면 "키반입"버튼을 누르시오. -keyTypeUnsupported=; 사용하는 GnuPG버전에서는 해당 키 타입을 지원하지 않습니다. -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=복호화 -msgPart=%S 메시지의 일부분 -msgSigned=서명됨 -msgSignedUnkownKey=알 수 없는 키로 서명이 되었음. -msgEncrypted=암호화됨 -msgSignedAndEnc=서명되고 암호화됨 - unverifiedSig=검증되지않은 서명 -incompleteDecrypt=복호화 미완료 -needKey=에러 - 메시지를 복호화하려면 비밀키가 필요함 -failedDecrypt=에러 - 복호화 실패 badPhrase=에러 - 틀린 패스프레이즈 # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=에러 - 복호화/검증 실패 -viewInfo=; 세부사항은 보기 > 메시지 보안 정보 -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=복호화된 메시지 -decryptedMsgWithFormatError=메세지 복호화 (과거 익스체인지 서버를 사용할때 손상된 이메일이 복구되었습니다. 하지만 메시지를 읽을수 없을 수도 있습니다.) - -usedAlgorithms=사용하는 알고리즘은: %S 와 %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=GnuPG 프로그램 위치 지정 -invalidGpgPath=GnuPG가 지정된 경로에서 실행될 수 없습니다. Enigmail는 GnuPG로 경로를 다시 지정할 때까지 혹은 응용프로그램을 다시 시작할 때까지 비활성 상태가 됩니다. -warningsAreReset=모든 경고가 초기화 되었습니다. -prefs.gpgFound=%S 에서 GnuPG가 발견됨 -prefs.gpgNotFound=GnuPG를 찾을 수 없음 -prefs.warnAskNever=경고: 이 옵션을 활성화하면 받는 사람들 중 어느 한 사람에게 키가 없더라도 더는 알리지않기 때문에 전자 메일이 암호화되지 않은 상태로 방치될 수 있습니다 -- Enigmail 이런 경우가 발생해도 알려드리지 않을 것입니다! -prefs.warnIdleTimeForUnknownAgent=gpg에이전트를 연결할 수 없습니다. 암호문구를 관리하기 위해 gnome-keyring, seahorse-agent, KDE wallet manager과 같은 별도 프로그램을 사용하는 것 같습니다.에니그메일은 이들 프로그램이 사용하는 암호문구 유효기일을 이용할 수 없습니다. 그래서 에니그메일은 이런 프로그램이 설정한 유효기간은 무시합니다. -prefEnigmail.oneKeyserverOnly=오류 - 빠진 OpenPGP 키를 자동으로 다운로드 하기위해 하나의 키 서버만 지정할 수 있습니다. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=스마트 카드의 관리자 PIN을 입력해 주세요 -enterCardPin=스마트 카드 PIN을 입력해 주세요 - -notInit=에러 - Enigmail 서비스가 아직 초기화 안됨 badCommand=에러 - 암호화 명령 실패 cmdLine=명령 행 출력: -notRequired=에러 - 암호화 필요 없음 -notComplete=에러 - 키 생성이 아직 완료 안됨 -invalidEmail=에러 - 잘못된 전자 메일 주소 noPassphrase=에러 - 주어진 패스프레이즈 없음 noPGPblock=에러 - 유효하지 않은 보호형 OpenPGP 데이터 블록이 발견되었습니다 -unverifiedReply=들여쓰기 된 부분 (답장)이 변형된 것 같습니다 -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=에러 - 서명이 일치하지 않습니다 -# cantImport=Error importing public key\n\n -doImportOne=%1$S (%2$S)을 반입할까요? -doImportMultiple=다음 열쇠를 반입할까요?\n\n%S -previewFailed=공개키 파일을 읽을 수 없습니다. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=리더에 들어있는 %S 스마트카드가 메시지를 처리하는데 사용할 수 없습니다.\n%S 스마트카드를 삽입하고 다시 시도해보십시오. sc.insertCard=해당 작업은 사용자의 %S 스마트카드를 필요로합니다.\n필요한 스마트카드를 삽입하고 다시 시도해보십시오. sc.removeCard=해당 작업은 리더에 스마트카드가 들어있을 필요가 없습니다.\n스마트카드를 제거한 후 다시 시도해보십시오. @@ -376,7 +39,6 @@ sc.noReaderAvailable=스마트 카드 리더에 접근이 허용되지 않습니다\n카드 리더를 연결하고, 스마트 카드를 삽입 후, 작업을 다시 해보세요 # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=계정설정의 OpenPGP섹션에서 정상적인 열쇠를 선택하십시오. missingPassphrase=암호문구 분실 errorHandling.gpgAgentInvalid=이 시스템이 사용하는 gpg에이전트가 GnuPG시스템과 버전이 맞지 않습니다. errorHandling.gpgAgentError=GPG에이전트와 GnuPG가 통신과정에서 에러가 발생하였습니다. @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG가 pinentry를 이용하여 암호문구를 찾을 수 없습니다. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=시스템 셋업과 설정과정에서 에러가 발생하여 에니그메일이 정상가동하지 않고 있으며 자동적으로 회복될 수 없습니다. \n\n다음 사이트 https://enigmail.net/faq.를 참고하시기 바랍니다. - gpgNotFound=GnuPG 프로그램 '%S'을 찾을 수 없습니다.\n에니그메일 설정에서 GnuPG 실행 경로를 올바르게 설정 해 주세요. gpgNotInPath=이 경로에서 GnuPG 실행파일을 찾을 수 없습니다.\n에니그메일 설정에서 GnuPG 실행 경로를 올바르게 설정 해 주세요. enigmailNotAvailable=에니그메일 코어 서비스는 사용할 수 없습니다. - -prefGood=%S 의 올바른 서명 -prefBad=%S 의 잘못된 서명 - failCancel=에러 - 사용자에 의해 키 받기가 취소 되었습니다 failKeyExtract=에러 - 키 추출 명령 실패 -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=에러 - 첫 OpenPGP 블록이 공개키가 아닙니다 importKeyConfirm=메시지에 들어있는 키를 가져오겠습니까? -failKeyImport=에러 - 키 가져오기 실패 fileWriteFailed=파일 %S 로 쓰기 실패 - importKey=키 서버에서 공개키 %S 를 가져오기: uploadKey=키 서버에 공개키 %S 를 보내기: keyId=키 ID -keyAndSigDate=키 ID: 0x%S / %S 에 서명됨 -keyFpr=키 지문: %S -noEmailProvided=전자 메일 주소를 입력하지 않았습니다! -keyAlreadySigned=해당 키는 이미 서명되어 있습니다. 중복 서명할 수 없습니다. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=만료된 %S createdHeader=생성됨: atLeastOneKey=키가 선택되지 않았음! 적어도 하나의 키는 선택해주셔야 합니다 fewerKeysThanRecipients=받는 사람 수 보다 적은 수의 키를 선택했습니다. 정말로 암호화 할 키 목록 선택을 끝내셨습니까? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=메시지에 서명할 비밀 OpenPGP 키를 선택 userSel.problemNoKey=비정상 키 userSel.problemMultipleKeys=복수 키 -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=나중 발송 - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=1번째 second=2번째 - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=암호화에 사용할 OpenPGP 키 선택 -identityName=디지털 신분증: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=암호화를 활성화 했으나, 키를 선택하지 않으셨습니다. %S 에게 보낼 메일을 암호화하기 위해서는 키 목록에서 키를 선택해주셔야합니다. %S 에 대하여 암호화를 비활성 상태로 하시겠습니까? -noKeyToUse=(없음 - 암호화하지 않음) -noEmptyRule=규칙은 비어있을 수 없습니다! 규칙 필드에 전자 메일 주소를 설정해주세요. -invalidAddress=입력한 전자메일 주소가 잘못되어 있습니다. 받는 사람의 이름으로 설정해서는 안되고 전자 메일 주소만 가능합니다. 예:\n 잘못됨: Some Name \n올바름: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=하지않음 always=항상 possible=가능 -deleteRule=정말로 선택한 룰을 삭제합니까? -nextRcpt=(다음 받는 사람으로) -negateRule=안 -addKeyToRule=%1$S (%2$S) 키를 수신자별 원칙에 추가하세요. - -# Strings used in enigmailSearchKey.js -needOnline=선택한 기능은 오프라인 모드에서는 사용할 수 없습니다. 온라인에서 다시 시도해 주십시오. -noKeyserverConn=키 서버 %S 에 접속 할 수 없습니다. -internalError=내부 오류가 발생했습니다. 키가 다운로드되거나 가져오기할 수 없었습니다. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=소유자 신뢰 설정 실패 - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=키 서명 실패 -alreadySigned.label=주의: %S 키는 이미 선택한 비밀키로 서명되어 있습니다. -alreadySignedexportable.label=참고사항: %S 열쇠는 서명을 마쳤고 선택한 개인키와 함께 반출할 수 있습니다. 로컬 서명은 논리상 맞지 않습니다. -partlySigned.label=유의사항: %S 키의 사용자 아이디가 다른 비밀키로 이미 서명되었습니다. -noTrustedOwnKeys=서명에 사용할 열쇠를 찾을 수 없습니다. 서명을 하려면 신뢰수준이 높은 개인키가 하나 있어야 합니다. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=키를 불러오는 중, 잠시만 기다려주세요 ... keyValid.unknown=알수없음 keyValid.invalid=무효 keyValid.disabled=비활성 keyValid.revoked=폐기됨 keyValid.expired=만료됨 keyValid.noSubkey=유효한 서브키 없음 - -keyTrust.untrusted=신뢰안함 +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=최소 keyTrust.full=충분 keyTrust.ultimate=완전 keyTrust.group=(그룹) -keyType.public=공개 -keyType.publicAndSec=공개/비밀 -keyMan.enableKey=키 활성 -keyMan.disableKey=키 비활성 userAtt.photo=사용자 속성 (JPEG 이미지) - -asciiArmorFile=보호형 ASCII 파일 (*.asc) importKeyFile=OpenPGP 키 파일 반입 -gnupgFile=GnuPG 파일 -saveRevokeCertAs=폐기 증명서 생성 & 저장 -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=폐기 증명서가 생성되지 않았습니다. - -addUidOK=사용자 ID 추가 성공 -addUidFailed=사용자 ID 추가 실패 -noKeySelected=선택한 작업을 실행하려면 적어도 하나의 키를 선택해 주셔야 합니다 -exportToFile=파일로 공개키 내보내기 -exportKeypairToFile=비밀키와 공개키를 파일로 반출. -exportSecretKey=저장한 OpenPGP 키 파일에 비밀키를 포함시키겠습니까? -saveKeysOK=키가 성공적으로 저장되었습니다 -saveKeysFailed=키 저장하기 실패 -importKeysFailed=키 가져오기에 실패 -enableKeyFailed=키 활성화/비활성화 실패 -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=반출된 공개키 -defaultPubSecKeyFilename=반출된 공개키와 비밀키 - -sendKeysOk=키 보내기 성공 -sendKeysFailed=키 보내기 실패 -receiveKeysOk=키 업데이트 성공 -receiveKeysFailed=키 다운로드 실패 -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=클립보드에서 키를 가져오시겠습니까? -importFromUrl=이 URL에서 공개키를 다운로드: -copyToClipbrdFailed=선택한 키를 클립보드에 복사할 수 없습니다. -copyToClipbrdOK=클립보드에 키 복사됨 - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=경고:당신은 비밀키를 삭제하려고 하고 있습니다!\n당신의 비밀키를 삭제했을 경우, 해당 키로 암호화된 모든 메시지를 복호화 할 수 없습니다.\n\n정말로 비밀키와 공개키 양쪽 모두를 삭제합니까? -deletePubKey=공개키를 삭제합니까?\n'%S' -deleteSelectedPubKey=공개키를 삭제합니까? -deleteKeyFailed=키가 삭제되지 않았습니다. revokeKeyQuestion='%S'키를 취소하려고 합니다.\n\n이 키로 더 이상 서명 작업을 수행할 수 없습니다. 일단 반포하면 상대방이 이 키로 암호화할 수 없습니다. 예전 메시지를 복호화할 수는 있습니다. \n\n계속 진행하시겠습니까?\n -revokeKeyOk=키가 폐지되었습니다. 만약 키 서버에 당신의 공개키가 있다면, 다시 업로드하시기를 권장합니다. 그렇게 해주면 다른 사람들이 해당 키가 폐지된 것을 알 수 있습니다. -revokeKeyFailed=키가 폐지될 수 없습니다. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=키를 하나도 선택하지 않았습니다. 모든 키를 새로고칠까요? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=경고: 키의 갯수나 회선 속도에따라, 모든 키 새로고침은 상당한 시간이 걸리는 작업이 될 수 있습니다! -downloadContactsKeys.warn=유의사항: 선택한 연락처의 수와 통신속도에 따라 키를 다운로드하는 시간이 상당히 길 수 있습니다!\n -downloadContactsKeys.importFrom='%S' 주소록에서 연락처를 반입할까요? -keyMan.button.exportSecKey=비밀키 내보내기(&E) -keyMan.button.exportPubKey=공개키만 내보내기(&P) keyMan.button.import=가져오기(&I) -keyMan.button.refreshAll=모든 키 새로고침(&R) keyMan.button.revokeKey=키 폐기(&R) - -keylist.noOtherUids=다른 신원이 없음 -keylist.hasOtherUids=별명: -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=추가하려는 사진을 선택하세요. -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=선택한 파일형식이 JPEG 가 아닌 것 같습니다. 다른 파일을 선택하세요. -keyMan.addphoto.failed=사진이 추가되지 않았습니다. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=주 사용자 ID 변경 실패 -changePrimUidOK=주 사용자 ID 변경 성공 -revokeUidFailed=사용자 ID %S 폐지 실패 -revokeUidOK=사용자 ID %S 폐지 성공. 만약 키 서버에 당신의 공개키가 있다면, 다시 업로드하시기를 권장합니다. 그렇게 해주면 다른 사람들이 해당 키가 폐지된 것을 알 수 있습니다. -revokeUidQuestion=정말로 유저 ID %S 를 폐지합니까? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=키 반입 성공! -importInfoBits=비트 -importInfoCreated=생성완료 -importInfoFpr=지문 -importInfoDetails=(상세) -importInfoNoKeys=반입된 열쇠 없음. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=공개 키 -keyTypePrimary=주 키 -keyTypeSubkey=서브키 -keyTypePair=키 쌍 -keyExpiryNever=무기한 keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=타원곡선전자서명 알고리즘 keyAlgorithm_20=ELG keyAlgorithm_22=타원곡선전자서명알고리즘 -keyUsageEncrypt=암호화 -keyUsageSign=서명 -keyUsageCertify=인증 -keyUsageAuthentication=허가하기 -keyDoesNotExpire=열쇠유효기간 이내 - -# Strings in enigmailGenCardKey.xul -keygen.started=잠시 기다려 주십시오. 키가 생성되고 있습니다... -keygen.completed=키가 생성되었습니다. 새로운 키 ID: 0x%S -keygen.keyBackup=%S 로 키를 백업 됨 -keygen.passRequired=스마트 카드가 아닌 다른 저장장치에 백업을 생성하려면, 패스프레이즈를 지정해 주세요. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN 변경 실패 - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=키 새로고침 중, 잠시 기다려 주십시오 ... -keyserverProgress.uploading=키 업로드 중, 잠시 기다려 주십시오 ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=키 새로고침 -keyserverTitle.uploading=키 업로드 -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=GnuPG 실행파일이 아닙니다. 다른 파일을 선택하세요. -setupWizard.installFailed=설치가 실패한 것 같습니다. 다시 설치하거나 GnuPG를 수작업으로 설치한 다음 브라우즈 버튼으로 해당 프로그램을 지정하세요. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=적재할 백업파일을 지정하시오 -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=GnuPG 구성파일이 이미 있습니다. 과거 설치과정에서 만든 구성파일로 덧쓰기 할까요? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=GnuPG다운로드 과정에서 에러가 발생했습니다. 콘솔로그를 이용하여 자세한 내용을 점검하세요. -installGnuPG.installFailed=GnuPG설치과정에서 에러가 발생했습니다.콘솔로그를 이용하여 자세한 내용을 점검하세요. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=이름과 전자 메일 주소는 반드시 입력해야 함 -addUidDlg.nameMinLengthError=이름은 최소한 5글자(5 bytes)이상 이어야 함 -addUidDlg.invalidEmailError=유효한 전자 메일 주소를 지정해야 함 - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP 스마트카드는이름난에는 ASCII 문자만 허용합니다. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=웹서비스가 제시한 보안인증서가 비정상입니다. errorType.SecurityProtocol=웹서비스가 사용하는 보안 프로토콜을 알 수 없습니다. errorType.Network=네트워크 에러가 발생하였습니다. - -# filter stuff -filter.folderRequired=타켓 폴더를 선택하세요. -filter.decryptMove.label=(에니그메일) 영구 복호화 -filter.decryptCopy.label=(에니그메일) 복호화 사본 생성 -filter.decryptMove.warnExperimental=주의 - "영구히 복호화" 필터가 작동하면 메시지가 파손될 수 있습니다. \n\n처음에는" 보호화사본생성"을 선택하고 그 결과를 잘 점검합니다. 그다음에 영구히 복호화 필터를 적용하기를 권합니다. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=로그파일 저장 - -# strings in gpg.jsm -unknownSigningAlg=서명알고리즘(ID: %S)을 알지 못함. -unknownHashAlg=암호해쉬알고리즘 (ID: %S)을 알지 못함. - -# strings in keyRing.jsm keyring.photo=사진 keyRing.pubKeyRevoked=%1$S 열쇠(키아이디 %2$S)가 취소되었음. keyRing.pubKeyExpired=%1$S 열쇠(키아이디 %2$S)가 만료되었음. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=%1$S 열쇠(키아이디 %2$S)의 암호화용 부속 열쇠가 모두 유효기간 만료되었음. keyRing.noSecretKey=열쇠고리에 %1$S 열쇠(키아이디 %2$S)의 비밀열쇠가 없음.이 열쇠로는 서명을 할 수 없음. keyRing.encSubKeysUnusable=%1$S 열쇠(키아이디 %2$S)의 부속 열쇠가 모두 취소, 만기등으로 암호화 불가상태임. - - -#strings in exportSettingsWizard.js -cannotWriteToFile='%S'파일을 저장할 수 없음. 다른 파일을 선택하세요. dataExportError=데이터를 반출하는 과정에서 에러가 발생하였습니다. -enigmailSettings=에니그메일 셋팅 -defaultBackupFileName=에니그메일 반출 -specifyExportFile=반출할 파일 이름 지정 -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Enigmail에 대하여 # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/ko/help/compose.html enigmail-2.2.4/lang/ko/help/compose.html --- enigmail-2.1.6+ds1/lang/ko/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/help/editRcptRule.html enigmail-2.2.4/lang/ko/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ko/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ - -Enigmail 도움말: OpenPGP 규칙 편집하기 - - -

Enigmail 도움말

- -

Enigmail 규칙 편집기 사용하기: OpenPGP 규칙 편집하기

-

규칙 편집기에서는 받는 사람별로 암호화, 서명 그리고 PGP/MIME 활성화에 대한 기본 방침을 정할 수 있으며, 어떤 OpenPGP 키를 사용할지를 지정할 수 있습니다. 이 대화상자에서는 한 사람의 받는 사람 그리고 매우 유사한 방법으로 받는 사람 그룹에 대하여 규칙을 지정할 수 있습니다.

-
-
OpenPGP 규칙 설정 대상
-
-

받는 사람의 전자 메일 주소가 (이름을 제외하고, 예를 들어, somebody@email.domain과 같이 주소만) 들어갑니다. 여러 개의 전자 메일 주소를 공백 문자로 구분하여 지정할 수 있습니다. 주소는 도메인 만으로도 구성할 수 있습니다. 이렇게 하면 도메인에 속하는 어떤 주소와도 일치합니다. 예를 들어, @email.domain 은 body@email.domain, somebody@email.domain, anybody@emaildomain, 등과 일치하게 됩니다.

-
-
받는 사람이 위의 주소와 ... 일치하면 규칙을 적용합니다
-
-

이 옵션은 전자 메일 주소의 대조법을 변경합니다. 만약 다수의 주소가 입력되면 설정은 입력된 모두에 대해 적용됩니다. 아래의 예는 위의 필드에 OpenPGP 규칙으로 입력된 body@email.domain 를 기준으로 한 예시입니다.

-
    -
  • 정확히: 이렇게 설정되면, 규칙은 전자 메일 body@email.domain (완전히 일치, 대소문자 구분 안함)에 대해서만 효력을 발생합니다.
  • -
  • 일부분: 이렇게 설정되면, 지정된 문자열이 일부분 포함되어 있는 어떤 전자 메일 주소가 일치 됩니다. 예를 들어, anybody@email.domain 또는 body@email.domain.net
  • -
  • 시작부분이: 이렇게 설정되면, 지정된 문자열로 시작하는 어떤 전자 메일 주소가 일치됩니다. 예를 들어, body@email.domain.net, body@email.domain-name.com.
  • -
  • 끝부분이: 이렇게 설정되면, 지정된 문자열로 끝나는 어떤 메일 주소가 일치됩니다. 예를 들어, anybody@email.domain, somebody@email.domain.
    -
    -
  • -
-
-
일치하는 주소에 대해 이다음 규칙으로 계속 진행
-
-

이 기능을 활성화하면 규칙을 정의하긴 하지만 다음 OpenPGP 키들을 사용: 필드에 키 ID를 지정하지 않아도 되므로, 전자 메일 주소는 메시지를 보낼 때 키를 검사하는 용도로 사용됩니다. 그리고 같은 주소에 대해 일치하는 규칙이 계속 적용됩니다.

-
-
일치하는 주소에 대해 더는 규칙을 고려하지 않음
-
-

이 기능을 활성화하면 이 규칙이 일치하는 주소에 대해 다른 규칙이 더는 적용되지 않습니다. 다시 말해, 규칙 처리 작업은 다음 받는 사람으로 넘어갑니다.

-
-
다음 OpenPGP 키들을 사용:
-
-

암호화하는데 사용할 받는 사람 키를 선택하려면 키 선택 (S)... 버튼을 사용합니다. 바로 위의 동작과 마찬가지로 것처럼, 일치되는 주소에 대해 이후 다른 규칙이 추가적으로 적용되지 않게됩니다.

-
-
서명에 대한 기본 정책
-
-

메시지 서명를 활성화 또는 비활성화 합니다. 메시지 작성 윈도우에서 지정한 대로 할지, 무시하고 이 규칙에 설정된 정책을 적용할지를 결정합니다. 선택 가능한 정책은 다음과 같습니다:

-
    -
  • 하지 않음: 메시지 작성 윈도우에서 서명을 하도록 선택 되어있어도 서명을 하지 않습니다 (다른 모든 정책에 우선합니다)
    -
  • -
  • 예, 메시지 작성시에 선택되어 있는 경우: 메시지 작성 윈도우에서 선택한대로 놔둡니다
  • -
  • 항상: 메시지 작성 윈도우에서 서명을 하도록 선택되어있지 않아도, 서명합니다
  • -
-

이 서명 설정은 일치하는 모든 규칙에 적용됩니다. 규칙들 중 하나가 서명하기를 비활성화하면, 항상으로 설정해놓은 다른 규칙이 있더라도, 메시지는 서명되지 않습니다.

-
-
-
-
암호화
-
-

메시지 암호화를 활성화 또는 비활성화 합니다. 제공하는 정책과 그 의미는 메시지 서명에 대한 기본 정책에 설명된 것과 같습니다.

-
-
PGP/MIME
-
-

PGP/MIME (RFC 2156) 메시지 인코딩의 사용여부를 활성화 또는 비활성화 합니다. PGP/MIME가 비활성화되면 메시지는 "인라인 형식"으로 인코딩됩니다. 제공하는 정책과 그 의미는 메시지 서명에 대한 기본 정책에 설명된 것과 같습니다.

-
-
-

규칙들은 OpenPGP 규칙 편집기 내 목록에서 표시된 순서로 처리됩니다. 어떤 한 규칙이 받는 사람과 일치하고 OpenPGP 키 ID를 포함하는 경우, 추가적으로 키 ID를 사용하려고 지정해도, 이후 규칙을 처리할 때 그 받는 사람은 더 고려되지 않습니다.

-
-

-추가 도움말은 -Enigmail 받는 사람별 설정 페이지에서 얻을 수 있습니다.

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/help/initError.html enigmail-2.2.4/lang/ko/help/initError.html --- enigmail-2.1.6+ds1/lang/ko/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
-

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/help/messenger.html enigmail-2.2.4/lang/ko/help/messenger.html --- enigmail-2.1.6+ds1/lang/ko/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - -Enigmail 도움말 - - -

Enigmail 도움말

-

메시지를 읽을 때 Enigmail 사용하기

-
-
메인 메일 윈도우의 복호화 버튼
-
-
-

이 버튼은 여러가지 용도로 사용될 수 있습니다: 복호화, 검증, 또는 공개키 가져오기. 일반적으로 복화화/검증은 자동으로 이뤄지지만, 설정을 통해 비활성화 할 수 있습니다. 그러나 실패할 경우, Enigmail 상태 표시줄에 짧은 오류 메시지로 나타나게 됩니다. 복호화 버튼을 누르면, GnuPG 명령 행에서 발생되는 출력 메시지를 포함한 더 자세한 오류 메시지를 볼 수 있습니다.

-
-
머리말 표시부의 펜과 키 아이콘
-
-
-

메시지 머리말 표시부의 아이콘은 읽고 있는 메시지가 서명 그리고/또는 암호화되었는지 그리고 서명이 올바른 상태인지를 (예를 들어, 서명된 후 메시지가 변형되지 않았는지 등) 나타냅니다. 만약 메시지가 변형되었으면 아이콘은 서명이 올바르지 않은 상태임을 표시하기 위해 깨진 팬으로 바뀝니다. 팬이나 키 아이콘에서 오른쪽 버튼을 클릭하면 다음과 같은 옵션의 메뉴가 나타납니다: -

-
    -
  • OpenPGP 보안 정보: 메시지에 대하여 GnuPG 출력 상태를 볼 수 있습니다.
  • -
  • OpenPGP 보안 정보 복사: GnuPG 출력 상태를 클립보드에 복사합니다. 회신 메시지에 붙여넣기 등의 - 작업에 활용할 수 있습니다.
  • -
  • OpenPGP Photo ID 보기: 공개 키에 사진이 들어 있으면 메시지를 보낸 사람의 Photo ID를 - 볼 수 있습니다. (이 옵션은 키에 Photo ID가 있는 경우에만 활성화 됩니다.)
  • -
  • S/MIME 보안 정보: 메시지에 대한 S/MIME 보안 정보를 볼 수 있습니다.
  • -
-

만약 gpg.conf 파일에 keyserver-options auto-key-retrieve 설정을 해놓지 않은 상태에서 서명되거나 암호화된 메시지를 읽어 머리말 표시 영역의 아이콘에 물음표가 표시되는 것을 볼 수 있는 경우, 머리말 영역의 Enigmail 상태 표시줄은 서명된 메시지의 일부분; 세부사항을 보려면 펜 아이콘을 클릭으로 표시하여 사용자에게 알리고 메시지 구역의 메시지는 모든 OpenPGP 메시지 블록 표시자와 서명 블록을 보여줄 것 입니다.

-

gpg.conf 파일에 keyserver-options auto-key-retrieve 설정을 해놓은 상태에서 기본 키 서버에 OpenPGP 키가 없는 경우에도 이렇게 되는 것을 볼 수 있습니다.

-

팬과 물음표 아이콘을 클릭하면 키 링에 해당 키가 없다는 것을 알려주는 창이 나타날 것입니다. 확인을 누르면 보낸 사람의 공개키를 다운로드 할 키 서버를 선택할 수 있는 키 서버 목록 윈도우가 나타날 것 입니다.

-

사용하고자하는 키 서버를 목록을 설정하려면, Enigmail → 설정 → 기본 탭으로 가셔서 키 서버 지정: 박스에 콤마(,)로 구분된 키 서버 주소를 입력해주시기 바랍니다. 목록의 처음에 있는 키 서버가 기본으로 사용됩니다.

-
-
-
-
암호화된 첨부 파일 / 첨부된 OpenPGP 키 가져오기
-
-
-

*.pgp, *.asc 그리고 *.gpg 확장자로 되어 있는 첨부 파일은 Enigmail가 특별히 취급할 수 있는 첨부파일로서 인식됩니다. 해당 첨부파일에 오른쪽 클릭을 하면 컨텍스트 메뉴에 두 가지 특수 메뉴가 활성화 됩니다: 복호화 후 열기복호화 후 다른 이름으로 저장. 메시지를 열거나 저장하기 전에 첨부파일을 Enigmail이 복호화하기를 원하는 경우, 이 두 메뉴를 사용하십시오. 첨부파일이 OpenPGP 키 파일로 인식되면, 사용자가 키를 키 링으로 가져오기 할 수 있도록 할 것입니다.

-
-
-
-

이후 도움말은 Enigmail OpenPGP 도움말 웹 페이지에서 얻을 수 있습니다.

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/help/rulesEditor.html enigmail-2.2.4/lang/ko/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ko/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ko/help/sendingPrefs.html enigmail-2.2.4/lang/ko/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ko/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ko/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/lt/am-enigprefs.properties enigmail-2.2.4/lang/lt/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/lt/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP saugumas +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/lt/enigmail.dtd enigmail-2.2.4/lang/lt/enigmail.dtd --- enigmail-2.1.6+ds1/lang/lt/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -""> - - - - - - -“ nurodant el. pašto adresus"> - - -“ simbolius, siekiant nurodyti el. pašto adresus, skirtus GnuPG. Išjunkite, jei gavėjai turi senus „Hushmail“ raktus."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP saugumas)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PASTABA: Rakto generavimas gali užtrukti kelias minutes. Neužverkite programos, kol vyksta rakto generavimas. Aktyviai naršant ar atliekant operacijas, kurios reikalauja intensyvaus disko naudojimo, rakto generavimo metu padės sukurti atsitiktinesnį raktą ir pagreitins procesą. Jums bus pranešta, kai rakto generavimas bus baigtas."> - @@ -296,501 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“ yra netinkamas"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PASTABA: Rakto generavimas gali užtrukti kelias minutes. Neužverkite programos, kol generuojamas raktas. Jums bus pranešta, kai raktas bus sugeneruotas."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/lt/enigmail.properties enigmail-2.2.4/lang/lt/enigmail.properties --- enigmail-2.1.6+ds1/lang/lt/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail įspėjimas enigConfirm=Enigmail patvirtinimas enigInfo=Enigmail informacija -enigError=Enigmail klaida enigPrompt=Enigmail įvedimas - -dlgYes=&Taip dlgNo=&Ne dlgKeepSetting=Prisiminti atsakymą ir daugiau nebeklausti dlgNoPrompt=Daugiau neberodyti šio pranešimo -dlg.button.delete=&Ištrinti dlg.button.cancel=&Atsisakyti dlg.button.close=&Užverti dlg.button.continue=&Tęsti -dlg.button.skip=&Praleisti -dlg.button.overwrite=&Perrašyti -dlg.button.view=Rod&ymas -dlg.button.retry=&Bandyti dar kartą -dlg.button.ignore=&Nepaisyti -dlg.button.install=Į&diegti dlg.button.ok=&Gerai - repeatPrefix=\n\nŠis įspėjimas bus kartojamas %S repeatSuffixSingular=kartą. repeatSuffixPlural=kartus. noRepeat=\n\nŠis įspėjimas nebus rodomas kol neatnaujinsite Enigmail. - -pgpNotSupported=Atrodo, kad naudojate Enigmail kartu su PGP 6.x\n\nDeja, PGP 6.x turi daug problemų, kurios neleidžia Enigmail teisingai veikti. Be to, Enigmail daugiau nebepalaiko PGP 6.x; vietoj to, naudokite GnuPG (GPG).\n\nJei reikia pagalbos pradedant naudoti GnuPG, žiūrėkite pagalbos sekciją Enigmail internetinėje svetainėje. -initErr.howToFixIt=Norint naudoti Enigmail, reikalinga GnuPG. Jeigu jūs dar neįdiegėte GnuPG, lengviausias būdas tai padaryti yra pasinaudoti žemiau esančiu mygtuku "Sąrankos vediklis". -initErr.setupWizard.button=&Sąrankos vediklis passphraseCleared=Slaptafrazė išvalyta. cannotClearPassphrase=Slaptafrazės apdorojimui naudojate nestandartinį įrankį (tokį kaip gnome-keyring). Slaptafrazės išvalymas, naudojant Enigmail yra neįmanomas. -noPhotoAvailable=Nėra nuotraukos -debugLog.title=Enigmail derinimo žurnalas -error.photoPathNotReadable=Kelias iki nuotraukos „%S“ neperskaitomas - -generalError=Klaida: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Ši nauja Enigmail versija turi daug pakeitimų nustatymuose ir parinktyse. Mes bandėme perkelti senus nustatymus į šią naują versiją. Tačiau negalime aprašyti visų situacijų. Peržiūrėkite visus nustatymus ir parinktis. -enigmailCommon.checkPreferences=Tikrinti nustatymus... -preferences.defaultToPgpMime=Mes pakeitėme numatytąjį laiškų kodavimą programoje Enigmail iš įterptojo PGP į PGP/MIME. Rekomenduojame jums tai palikti kaip numatytąjį nustatymą.\n\nJeigu vis tik pagal numatymą norite naudoti įterptąjį PGP, tuomet galite tai nustatyti Paskyros nustatymuose, skyrelyje OpenPGP saugumas. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Enigmail versija %S -enigmailPepVersion=Enigmail/p≡p versija %S usingAgent=Šifravimui ir iššifravimui naudojamas %S sukompiliuotas failas %S agentError=KLAIDA: Nepavyko pasiekti Enigmime tarnybos! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Klaida bandant pasiekti Enigmail tarnybą -onlyGPG=Rakto generavimas veikia tik su GnuPG (ne su PGP)! - -keygenComplete=Raktas sugeneruotas! Pasirašymui bus naudojama <%S> tapatybė. -revokeCertRecommended=Mes primygtinai rekomenduojame savo raktui sukurti panaikinimo liudijimą. Šis liudijimas galės būti naudojamas paversti jūsų raktą negaliojančiu, pvz., jei prarasite savo slaptąjį raktą ar jis bus sukompromituotas. Ar norite dabar sukurti tokį liudijimą? -keyMan.button.generateCert=&Generuoti liudijimą -genCompleteNoSign=Raktas sėkmingai sugeneruotas! -genGoing=Raktas generuojamas! - -passNoMatch=Slaptafrazės nesutampa; įveskite dar kartą -passCheckBox=Pažymėkite žymimąjį langelį jei raktui nenurodote slaptafrazės -passUserName=Nurodykite naudotojo vardą, šiai tapatybei -keygen.missingUserName=Pasirinktai paskyrai/tapatybei nėra nurodytas joks vardas. Paskyrų nuostatose, laukelyje "Asmenvardis", įveskite reikšmę. -keygen.passCharProblem=Jūs savo slaptafrazėje naudojate specialius simbolius. Deja, tai gali sukelti problemų kitoms programoms. Rekomenduojame jums pasirinkti slaptafrazę, kurioje būtų tik kurie nors iš šių simbolių:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Dėl techninių priežasčių, jūsų slaptafrazė negali prasidėti ar baigtis tarpu. -changePassFailed=Nepavyko pakeisti slaptafrazės. - -keyConfirm=Sugeneruoti viešąjį ir slaptąjį raktą, skirtą „%S“? -keyMan.button.generateKey=&Generuoti raktą -keyAbort=Nutraukti raktų generavimą? -keyMan.button.generateKeyAbort=&Nutraukti raktų generavimą? -keyMan.button.generateKeyContinue=&Tęsti raktų generavimą? -expiryTooLong=Negalite sukurti rakto, kurio galiojimas baigsis daugiau nei po 100 metų. -expiryTooLongShorter=Negalite sukurti rakto, kurio galiojimas baigsis daugiau nei po 90 metų. -expiryTooShort=Jūsų raktas turi galioti bent vieną dieną. -keyGenFailed=Nepavyko sugeneruoti rakto. Išsamesnei informacijai, patikrinkite Enigmail pultą (Meniu Enigmail > Derinimo parinktys). -setKeyExpirationDateFailed=Nepavyko pakeisti galiojimo pabaigos datos - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail saugumo informacija\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Šiame laiške esantys priedai nebuvo nei pasirašyti, nei šifruoti*\r\n\r\n -possiblyPgpMime=Galimai PGP/MIME šifruotas ar pasirašytas laiškas; norėdami patikrinti, naudokite „Iššifruoti/Patikrinti“ funkciją - -saveAttachmentHeader=Enigmail: Įrašyti iššifruotą priedą -noTempDir=Nepavyko rasti laikino aplanko į kurį galima būtų rašyti\nNustatykite TEMP aplinkos kintamąjį -attachmentPgpKey=Priedas „%S“, kurį bandote atverti yra OpenPGP rakto failas.\n\nSpustelėkite „Importuoti“, norėdami importuoti visus jame esančius raktus arba „Rodymas“ ir naršyklės lange bus parodytas failo turinys - -beginPgpPart=**********ŠIFRUOTOS ar PASIRAŠYTOS DALIES PRADŽIA********** -endPgpPart=**********ŠIFRUOTOS ar PASIRAŠYTOS DALIES PABAIGA********** -notePartEncrypted=Enigmail: *Laiško dalys NEBUVO nei pasirašytos, nei šifruotos* -noteCutMessage=Enigmail: *Rastos kelios laiško dalys -- iššifravimas/tikrinimas nutrauktas* - -decryptOkNoSig=Įspėjimas\n\nIššifravimas buvo sėkmingas, bet nepavyko patikrinti parašo -msgOvl.button.contAnyway=&Vis tiek tęsti -signature.verifiedOK=Priedo %S parašas sėkmingai patvirtintas -signature.verifyFailed=Nepavyko patvirtinti priedo %S parašo -attachment.noMatchToSignature=Nepavyko rasti atitinkamo priedo „%S“, skirto parašo failui -attachment.noMatchFromSignature=Nepavyko rasti atitinkamo parašo failo „%S“, skirto priedui -fixBrokenExchangeMsg.failed=Nepavyko pataisyti laiško. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importuoti raktą -wksNoIdentity=Šis raktas nėra susietas su jokia iš jūsų el. pašto paskyrų. Pridėkite paskyrą bent vienam iš šių el. pašto adresų:\n\n%S -wksConfirmSuccess=Patvirtinimo el. laiškas išsiųstas. -wksConfirmFailure=Patvirtinimo el. laiško siuntimas nepavyko. -autocrypt.importSetupKey.accountPreconfigured=Jūsų paskyra jau yra teisingai sukonfigūruota naudoti Autocrypt.\n\nAr tikrai norite perrašyti savo nustatymus šiuo sąrankos laišku? -autocrypt.importSetupKey.selfCreated=Šis laiškas buvo sukurtas šiuo metu paleisto Enigmail egzemplioriaus.\n\nPrašome perjungti į el. pašto kliento programą į kurią norite perkelti nustatymus ir, norint importuoti nustatymus, spustelėti ant laiško toje kitoje el. pašto kliento programoje. -autocrypt.importSetupKey.invalidMessage=Klaida - nepavyko perskaityti sąrankos laiško. Atrodo, kad laiškas buvo pažeistas. Pabandykite savo "kitame" įrenginyje sukurti naują sąrankos laišką. -autocrypt.importSetupKey.invalidKey=Klaida - nepavyko importuoti rakto. Raktas yra arba nepalaikomas jūsų GnuPG versijos, arba jis susigadino. -autocrypt.importSetupKey.wrongPasswd=Jūsų įvestas slaptažodis yra neteisingas. Ar norite bandyti dar kartą? -autocrypt.importSetupKey.success=Autocrypt sąrankos laiškas buvo sėkmingai apdorotas. Dabar, Autocrypt yra prieinama jūsų "%S" paskyrai. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Pasirinkite OpenPGP raktus kuriuos įterpti keysToUse=Pasirinkite kurį OpenPGP raktą(-us) naudoti %S pubKey=Viešasis raktas skirtas %S\n - -windowLocked=Rašymo langas užrakintas; siuntimas atšauktas -sendUnencrypted=Nepavyko inicijuoti Enigmail.\nSiųsti nešifruotą laišką? -composeSpecifyEmail=Nurodykite savo pagrindinį el. pašto adresą, kuris bus naudojamas pasirenkant raktą išeinantiems laiškams.\nJei paliksite tuščią, NUO laukelio adresas bus naudojamas pasirinkti raktą. -sendingHiddenRcpt=Šis laiškas turi BCC(nematomą kopiją) gavėjų. Jei šis laiškas šifruotas, įmanoma paslėpti BCC gavėjus, bet kai kurių programų naudotojai (pvz. PGP Corp) negalės iššifruoti laiško. Mes rekomenduojame vengti BCC laiškų su šifruotais pranešimais. -sendWithHiddenBcc=Slėpti BCC gavėjus -sendWithShownBcc=Šifruoti įprastai -sendingNews=Užšifruoto siuntimo operacija atšaukta.\n\nšis laiškas negali būti užšifruotas, nes yra naujienų grupių gavėjų. Persiųskite šį laišką nešifruojant. -sendToNewsWarning=Įspėjimas: jūs tuoj išsiųsite užšifruotą laišką naujienų grupei.\n\nTai nepatartina, nes toks veiksmas turi prasmę tik tada jei visi nariai gali iššifruoti laišką t.y. laiškas turi būti šifruotas su visų grupės narių raktais. šį laišką siųskite tik tada jei žinote ką darote.\n\nTęsti? -hasHTML=HTML laiško įspėjimas:\nšiame laiške gali būti HTML, kuri gali sukelti problemų pasirašant/šifruojant. Norint to išvengti ateityje, jūs turėtumėte laikyti SHIFT kai spaudžiate „Rašyti/Atsakyti“ mygtuką, pasirašytam laiškui išsiųsti.\nJei visada pasirašote laišką, nustatymuose turėtumėte atžymėti „Kurti laiškus su HTML“, norint visam laikui išjungti HTML laiškus šiai pašto paskyrai. -strippingHTML=Laiške yra HTML formatavimo informacija, kuri bus prarasta konvertuojant į paprastą tekstą, pasirašymo/šifravimo metu. Tęsti? -msgCompose.button.sendAnyway=&Vistiek siųsti -attachWarning=Šio laiško priedai nėra vietiniai, jie negali būti užšifruoti. Norėdami užšifruoti šiuos priedus, įrašykite juos savo kompiuteryje ir tuomet pridėkite failus. Ar vis tiek norite siųsti šį laišką? quotedPrintableWarn=Jūs įjungėte „quoted-printable“ kodavimą siunčiamiems laiškams. Tai gali įtakoti neteisingą jūsų laiško iššifravimą ir/ar patikrinimą.\nAr norite dabar išjungti „quoted-printable“ siunčiamiems laiškams? -minimalLineWrapping=Jūs nustatėte eilučių laužymą %S simboliais. Norint teisingai užšifruoti ar/ir pasirašyti, ši vertė turi būti bent 68.\nAr norite dabar nustatyti eilučių laužymą ties 68 simboliais? warning=Įspėjimas -signIconClicked=Jūs pakeitėte pasirašymą. Nepaisant to, kol jūs rašote šį laišką, pasirašymo (de)aktyvavimas daugiau nepriklauso nuo šifravimo (de)aktyvacijos. -errorOwnKeyUnusable=Dabartinei tapatybei sukonfigūruotas rakto ID "%S" nesuteikia jokio galimo naudoti OpenPGP rakto.\n\nĮsitikinkite, kad turite galiojantį, nepasibaigusio galiojimo OpenPGP raktą ir, kad jūsų paskyros nustatymai nurodo į tą raktą.\nJeigu jūsų rakto galiojimas yra nepasibaigęs, tuomet patikrinkite ar nustatėte pasitikėjimą savininku į "pilnas" arba "visiškas". -msgCompose.cannotSaveDraft=Klaida, įrašant juodraštį -msgCompose.partiallyEncrypted.short=Saugokitės slaptos informacijos nutekėjimo - dalinai šifruotas el. paštas. -msgCompose.partiallyEncrypted.inlinePGP=Laiške į kurį atsakote, buvo šifruotų ir nešifruotų dalių. Jeigu siuntėjui pradžioje nepavyko iššifruoti kai kurių laiško dalių, tuomet gali būti, kad atskleidžiate slaptą informaciją, kurią siuntėjas pradžioje negalėjo pats iššifruoti.\n\nApsvarstykite galimybę iš savo atsakymo šiam siuntėjui, pašalinti visą cituojamą tekstą. - -msgCompose.internalEncryptionError=Vidinė klaida: žadėtas šifravimas išjungtas -msgCompose.internalError=Įvyko vidinė klaida. - -msgCompose.toolbarTxt.signAndEncrypt=Šis laiškas bus pasirašytas ir šifruotas -msgCompose.toolbarTxt.signOnly=Šis laiškas bus pasirašytas -msgCompose.toolbarTxt.encryptOnly=Šis laiškas bus šifruotas -msgCompose.toolbarTxt.noEncryption=Šis laiškas bus nepasirašytas ir nešifruotas -msgCompose.toolbarTxt.disabled=Enigmail pasirinktai tapatybei yra išjungta -msgCompose.protectSubject.tooltip=Apsaugoti laiško temą -msgCompose.noSubjectProtection.tooltip=Neapsaugoti laiško temos -msgCompose.protectSubject.dialogTitle=Įjungti temos apsaugą? -msgCompose.protectSubject.question=Įprastuose šifruotuose el. laiškuose yra neredaguotą temą.\n\nMes nustatėme standartą, skirtą nuslėpti šifruotame laiške pradinę temą\nir pakeisti ją fiktyviu tekstu, tokiu būdu tema bus matoma tik iššifravus el. laišką.\n\nAr norite šifruotuose laiškuose apsaugoti temą? -msgCompose.protectSubject.yesButton=A&psaugoti temą -msgCompose.protectSubject.noButton=Pa&likti temą neapsaugotą - -msgCompose.detailsButton.label=Išsamiau ... -msgCompose.detailsButton.accessKey=l - -msgCompose.pepSendUnknown=Nežinoma -msgCompose.pepSendUnsecure=Nesaugus -msgCompose.pepSendSecure=Saugus -msgCompose.pepSendTrusted=Saugus ir patikimas - -pep.alert.disabledForIdentity=p≡p dabartinei tapatybei yra išjungta. Įjunkite p≡p per Enigmail/p≡p nuostatas. -pep.alert.weakReply=Jūs ketinate persiųsti ar atsakyti į saugų laišką, tačiau laiškas, kurį siunčiate yra nesaugus. Jei pasirinksite tęsti, gali būti atskleista konfidenciali informacija, kuri sukels pavojų jums ir jūsų bendravimo partneriui. Ar tikrai norite tęsti? - - -# note: should end with double newline: -sendAborted=Siuntimo operacija nutraukta.\n\n - -# details: keyNotTrusted=Nepakanka pasitikėjimo raktui "%S" -keyNotFound=Raktas "%S" nerastas -keyRevoked=Raktas "%S" panaikintas -keyExpired=Pasibaigė "%S" rakto galiojimas - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=PASIRAŠYTAS -statEncrypted=ŠIFRUOTAS -statPlain=NEPASIRAŠYTAS ir NEŠIFRUOTAS - -offlineSave=Įrašyti %S laišką į %S neišsiųstų laiškų aplanke? - -onlineSend=Išsiųsti %S laišką į %S? -encryptKeysNote=Pastaba: laiškas užšifruotas naudojant šiuos naudotojo ID/Raktus: %S -hiddenKey= - -signFailed=Klaida Enigmail: šifravimas/pasirašymas nepavyko. Siųsti laišką nešifruotu pavidalu? -msgCompose.button.sendUnencrypted=&Siųsti nešifruotą laišką -recipientsSelectionHdr=Pasirinkite gavėjus šifravimui - -configureNow=Pasirinktai tapatybei jūs nenustatėte Enigmail saugumo. Ar norite tai padaryti dabar? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Šifruoti laišką (automatiškai) -encryptMessageNorm=Šifruoti laišką -signMessageAuto=Pasirašyti laišką (automatiškai) -signMessageNorm=Pasirašyti laišką - -encryptOff=Šifravimas: IŠJUNGTAS -encryptOnWithReason=Šifravimas: ĮJUNGTAS (%S) -encryptOffWithReason=Šifravimas: IŠJUNGTAS (%S) -encryptOn=Šifravimas: ĮJUNGTAS -signOn=Pasirašymas: ĮJUNGTAS -signOff=Pasirašymas: IŠJUNGTAS -signOnWithReason=Pasirašymas: ĮJUNGTAS (%S) -signOffWithReason=Pasirašymas: IŠJUNGTAS (%S) -reasonEnabledByDefault=įjungta pagal numatymą -reasonManuallyForced=priverstinai rankiniu būdu -reasonByRecipientRules=priverstinai pagal kiekvieno atskiro gavėjo taisykles -reasonByAutoEncryption=priverstinai pagal automatinį šifravimą -reasonByConflict=dėl konflikto kiekvieno atskiro gavėjo taisyklėse -reasonByEncryptionMode=dėl šifravimo veiksenos - -# should not be used anymore: -encryptYes=Laiškas bus užšifruotas -encryptNo=Laiškas nebus užšifruotas - -# should not be used anymore: -signYes=Laiškas bus pasirašytas -signNo=Laiškas nebus pasirašytas - - -# PGP/MIME status: -pgpmimeNormal=Protokolas: PGP/MIME -inlinePGPNormal=Protokolas: Įterptasis PGP -smimeNormal=Protokolas: S/MIME -pgpmimeAuto=Protokolas: PGP/MIME (automatiškai) -inlinePGPAuto=Protokolas: Įterptasis PGP (automatiškai) -smimeAuto=Protokolas: S/MIME (automatiškai) - -# should not be used anymore -pgpmimeYes=Bus naudojama PGP/MIME -pgpmimeNo=Bus naudojamas įterptasis PGP - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Jūsų pačių viešasis raktas nebus pridėtas -attachOwnKeyYes=Bus pridėtas jūsų pačių viešasis raktas -attachOwnKeyDisabled=Nepavyko pridėti jūsų pačių viešojo rakto. Norėdami įjungti šią ypatybę,\nturite Paskyros nustatymuose, OpenPGP sekcijoje pasirinkti tam tikrą raktą. - -rulesConflict=Aptiktos nesuderinamos kiekvienam-gavėjui taisyklės\n%S\n\nSiųsti laišką su šiais nustatymais? -msgCompose.button.configure=&Konfigūruoti -msgCompose.button.send=&Siųsti laišką -msgCompose.button.save=Į&rašyti laišką - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Viešas rakto %S parašas turi būti patikrintas -keyUsed=Parašo patvirtinimui panaudotas viešasis raktas %S -clickDecrypt=; naudokite „Iššifruoti/Patikrinti“ funkciją -clickDecryptRetry=; norėdami bandyti dar kartą, naudokite „Iššifruoti/Patikrinti“ funkciją -clickDetailsButton=; išsamesnei informacijai, spustelėkite ant mygtuko "Išsamiau" -clickImportButton=; norėdami importuoti raktą, spustelėkite ant mygtuko "Importuoti raktą" -keyTypeUnsupported=; jūsų GnuPG versija nepalaiko rakto tipo -decryptManually=; norėdami iššifruoti laišką, spustelėkite ant mygtuko "Iššifruoti" -verifyManually=; norėdami patikrinti parašą, spustelėkite ant mygtuko "Patikrinti" -headerView.button.verify=Patikrinti -headerView.button.decrypt=Iššifruoti -msgPart=%S laiško dalis -msgSigned=pasirašytas -msgSignedUnkownKey=pasirašytas, naudojant nežinomą raktą -msgEncrypted=užšifruotas -msgSignedAndEnc=pasirašyta ir užšifruota - unverifiedSig=Nepatvirtintas parašas -incompleteDecrypt=Iššifravimas nepilnas -needKey=Klaida - laiško iššifravimui nerasta jokio slaptojo rakto -failedDecrypt=Klaida - nepavyko iššifruoti badPhrase=Klaida - bloga slaptafrazė missingMdcError=Klaida - trūksta arba sugadinta vientisumo apsauga (MDC) -failedDecryptVerify=Klaida - iššifravimas/patikrinimas nepavyko -viewInfo=; Rodymas > Laiško saugumo informacija, išsamesnei informacijai -brokenExchangeMessage=Sugadintas PGP/MIME laiškas iš MS-Exchange. - -decryptedMsg=Iššifruotas laiškas -decryptedMsgWithFormatError=Iššifruotas laiškas (atkurtas sugadintas PGP laiško formatas, jį greičiausiai sugadino senas Exchange serveris, gali būti neįmanoma perskaityti laiško) - -usedAlgorithms=Naudoti algoritmai: %1$S ir %2$S -pepStatusInfo.text=p≡p laiško būsena. -pepStatusInfo.title.m3=Puolamas -pepStatusInfo.info.m3=Šis laiškas nėra saugus ir buvo klastojamas. -pepStatusInfo.title.m1=Nebepatikimas -pepStatusInfo.info.m1=Šiame laiške yra bendravimo partneris, kuris anksčiau buvo pažymėtas kaip nepatikimas -pepStatusInfo.title.r0=Nežinoma -pepStatusInfo.info.r0=Šiame laiške nėra pakankamai informacijos, kad būtų nuspręsta ar jis yra saugus ar ne. -pepStatusInfo.title.r1=Nepavyksta iššifruoti -pepStatusInfo.info.r1=Šis laiškas negali būti iššifruotas, nes raktas nėra prieinamas. -pepStatusInfo.title.r2=Nepavyksta iššifruoti -pepStatusInfo.info.r2=Šis laiškas negali būti iššifruotas, nes raktas nėra prieinamas. -pepStatusInfo.title.r3=Nesaugus -pepStatusInfo.info.r3=Šis laiškas yra nesaugus. -pepStatusInfo.title.r4=Kai kuriems nesaugus -pepStatusInfo.info.r4=Kai kuriems bendravimo partneriams šis laiškas yra nesaugus. -pepStatusInfo.title.r5=Nepatikimas saugumas -pepStatusInfo.info.r5=Šiame laiške yra nepatikima apsauga. -pepStatusInfo.title.r6=Saugus... -pepStatusInfo.info.r6=Šis laiškas yra saugus, tačiau vis tiek turite patvirtinti savo bendravimo partnerio tapatybę. -pepStatusInfo.title.r7=Saugus ir patikimas -pepStatusInfo.info.r7=Šis laiškas yra saugus ir patikimas. - -pepStatusInfo.color.green=Žalia -pepStatusInfo.color.yellow=Geltona -pepStatusInfo.color.red=Raudona -pepRevokeTrust.question=Ar tikrai norite atsisakyti pasitikėjimo, skirto %S? -pepRevokeMistrust.question=Ar tikrai norite iš naujo pasitikėti raktu, skirtu %S? -pepRevokeTrust.doRevoke=Atsisakyti &pasitikėjimo - -wksConfirmationReq=Saityno raktų katalogo patvirtinimo užklausa -wksConfirmationReq.message=Šį laišką išsiuntė jūsų el. pašto tiekėjas, kad patvirtintų jūsų OpenPGP viešojo rakto išskleidimą\nsavo saityno raktų kataloge.\nJūsų viešojo rakto pateikimas padeda kitiems atrasti jūsų raktą ir todėl, turėti galimybę šifruoti jums laiškus.\n\nJeigu norite išskleisti savo raktą saityno raktų kataloge dabar, tuomet būsenos juostoje spustelėkite mygtuką "Patvirtinti užklausą".\nPriešingu atveju, tiesiog, nepaisykite šio laiško. -wksConfirmationReq.button.label=Patvirtinti užklausą - -autocryptSetupReq=Atlikti Autocrypt sąranką -autocryptSetupReq.button.label=Pradėti sąranką -autocryptSetupReq.setupMsg.desc=Šiame laiške yra visa informacija, kurios reikia, norint saugiai perkelti jūsų Autocrypt nustatymus kartu su slaptuoju raktu iš jūsų pradinio įrenginio. -autocryptSetupReq.setupMsg.backup=Galite pasilikti šį laišką ir jį naudoti kaip savo slaptojo rakto atsarginę kopiją. Jeigu norite taip daryti, turėtumėte užsirašyti slaptažodį ir laikyti jį saugioje vietoje. -autocryptSetupReq.message.import=Norėdami importuoti nustatymus ir raktą(-us) į Enigmail, spustelėkite būsenos juostoje ant mygtuko "Pradėti sąranką". -autocryptSetupReq.message.sent=Spustelėkite ant pranešimo savo naujame įrenginyje ir sekite instrukcijas, norėdami importuoti nustatymus. -postbox.cannotUseQuickReply.message=Atsakote į šifruotą laišką. Norėdami atverti savo atsakymą lange, naudokite teksto langelio viršutiniame dešiniajame kampe esančią "išskleidimo" piktogramą, ir išsiųskite atsakymą iš ten. - -# strings in pref-enigmail.js oldGpgVersion20=Enigmail inicijavimas patyrė nesėkmę.\n\nJūs naudojate GnuPG versiją %1$S, kuri yra daugiau nebepalaikoma. Enigmail reikalauja GnuPG versijos %2$S arba naujesnės. Prašome atnaujinti savo GnuPG įdiegimą arba kitu atveju Enigmail neveiks. -locateGpg=Surasti GnuPG programą -invalidGpgPath=Nurodytam kelyje GnuPG negali būti įvykdyta. Enigmail išjungta kol jūs pakeisite kelią iki GnuPG arba iš naujo paleisite programą. -warningsAreReset=Visi įspėjimai buvo atstatyti. -prefs.gpgFound=GnuPG rasta kataloge %S -prefs.gpgNotFound=Nepavyko rasti GnuPG -prefs.warnAskNever=Įspėjimas: įjungus šią parinktį nebus pranešama jei vienam iš gavėjų nėra rakto ir laiškas nešifruotas! -prefs.warnIdleTimeForUnknownAgent=Nepavyko prisijungti prie gpg-agent. Gal jūsų sistema slaptafrazės įvedimui naudoja specialų įrankį, tokį kaip gnome-keyring ar seahorse-agent. Dėja Enigmail negali valdyti įvedimo laiko jūsų įrankyje. Laiko nustatymai Enigmail programoje yra ignoruojami. -prefEnigmail.oneKeyserverOnly=Klaida - automatiniam trūkstamų OpenPGP raktų atsiuntimui galite nurodyti tik vieną raktų serverį. -acSetupMessage.desc=Perkelkite savo raktą į kitą Autocrypt įgalintą įrenginį. (Kas yra Autocrypt) -aboutLicense.desc=Enigmail yra atvirojo kodo ir yra licencijuota pagal "Mozilla" viešąją licenciją 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Įveskite SmartCard ADMIN PIN -enterCardPin=Įveskite SmartCard PIN - -notInit=Klaida - Enigmail tarnyba kol kas neinicijuota badCommand=Klaida - šifravimo komanda nepavyko cmdLine=komandų eilutė ir išvestis: -notRequired=Klaida - šifravimas nereikalingas -notComplete=Klaida - rakto generavimas dar nebaigtas -invalidEmail=Klaida - netinkamas el. pašto adresas(-ai) noPassphrase=Klaida - nepateikta slaptafrazė noPGPblock=Klaida - nerastas tinkamas „armored OpenPGP“ duomenų blokas -unverifiedReply=Cituojama laiško dalis (atsakyme) turbūt buvo pakeista -keyInMessageBody=Pagrindinėje laiško dalyje buvo rastas raktas. Norėdami importuoti raktą, spustelėkite "Importuoti raktą" -sigMismatch=Klaida - parašas nesutampa -cantImport=Klaida importuojant viešąjį raktą\n\n -doImportOne=Importuoti %1$S (%2$S)? -doImportMultiple=Importuoti šiuos raktus?\n\n%S -previewFailed=Nepavyksta perskaityti viešojo rakto failo. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Rasta SmartCard %S jūsų įrenginyje negali būti panaudota skaitant laišką.\nĮdėkite savo SmartCard %S ir pakartokite operaciją. sc.insertCard=Operacijai atlikti reikia SmartCard %S.\nĮdėkite reikalingą SmartCard ir pakartokite operaciją. sc.removeCard=Operacijai atlikti reikia jog SmartCard nebūtų įrenginyje.\nIšimkite SmartCard ir pakartokite operaciją. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Jūsų SmartCard skaitytuvas nepasiekiamas\nPrijunkite SmartCard skaitytuvą, įdėkite kortelę ir pakartokite operaciją. keyError.keySpecNotFound=El. pašto adresui "%S" nepavyksta rasti rakto atitikmens jūsų raktinėje. keyError.keyIdNotFound=Jūsų raktinėje nepavyko rasti rakto ID "%S". -keyError.resolutionAction=Pasirinkite savo Paskyros nustatymuose, OpenPGP sekcijoje, galiojantį raktą. missingPassphrase=Trūksta slaptafrazės errorHandling.gpgAgentInvalid=Jūsų sistemoje yra paleista gpg-agent versija, kuri nėra tinkama jūsų GnuPG versijai. errorHandling.gpgAgentError=GnuPG pranešė apie klaidą susisiekime su gpg-agent (GnuPG komponentu). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG negali užklausti jūsų slaptafrazės per pin įvedimą. errorHandling.pinentryCursesError=Jūsų GnuPG diegimas yra sukonfigūruotas taip, kad PIN įvedimui naudotų pultą. Vis dėlto, naudojant Enigmail, jums reikia grafinės PIN įvedimo versijos. errorHandling.readFaq=Tai yra sistemos sąrankos ar konigūracijos klaida, kuri neleidžia Enigmail tinkamai veikti ir kuri negali būti automatiškai pataisyta.\n\nMes primygtinai rekomenduojame, kad jūs paieškotumėte informacijos mūsų palaikymo svetainėje, adresu https://enigmail.net/faq. - gpgNotFound=Nepavyko rasti GnuPG programos „%S“.\nĮsitikinkite jog Enigmail nustatymuose nurodėte teisingą GnuPG kelią. gpgNotInPath=Nepavyko rasti GnuPG vykdomojo failo PATH.\nĮsitikinkite jog Enigmail nustatymuose nurodėte teisingą GnuPG kelią. enigmailNotAvailable=Pagrindinė Enigmail tarnyba neprieinama - -prefGood=GERAS parašas iš %S -prefBad=BLOGAS parašas iš %S - failCancel=Klaida - rakto gavimą atšaukė naudotojas failKeyExtract=Klaida - rakto išgavimo komanda nepavyko -failKeyNoSubkey=Nėra galiojančio porakčio/rakto notFirstBlock=Klaida - pirmas OpenPGP blokas nėra viešasis raktas importKeyConfirm=Importuoti viešąjį(-uosius) raktą(-us) įterptus laiške? -failKeyImport=Klaida - nepavyko importuoti rakto fileWriteFailed=Nepavyko įrašyti į failą %S - importKey=Importuoti iš raktų serverio viešąjį raktą %S: uploadKey=Siųsti viešąjį raktą %S į raktų serverį: keyId=Rakto ID -keyAndSigDate=Rakto ID: 0x%S / Pasirašyta: %S -keyFpr=Rakto kontrolinis kodas: %S -noEmailProvided=Jūs nepateikėte el. pašto adreso! -keyAlreadySigned=Raktas jau pasirašytas, negalite jo pasirašyti antrą kartą. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=pasibaigęs galiojimas %S createdHeader=Sukurtas atLeastOneKey=Nepasirinktas raktas! Turite pasirinkti bent vieną raktą patvirtinant šį dialogą fewerKeysThanRecipients=Jūs pasirinkote mažiau raktų nei yra gavėjų. Ar jūs įsitikinę jog raktų, kuriuos reikia užšifruoti, sąrašas pilnas? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Pasirinkite slaptąjį OpenPGP raktą laiškų pasirašymui userSel.problemNoKey=Nėra galiojančio rakto userSel.problemMultipleKeys=Keli raktai -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Siųsti vėliau - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=PASTABA: Ne visos el. pašto kliento programos palaiko PGP/MIME. Jeigu nesate tikri, pasirinkite %S parinktį. first=pirmas second=antras - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Pasirinkite OpenPGP raktą šifravimui -identityName=Tapatybė: %S -switchPepMode=Šiuo metu naudojate Enigmail "p≡p jaunių" veikseną.\n\nĮjungdami paskyrai OpenPGP ar S/MIME, išjungiate p≡p ir naudojate "įprastą" Enigmail veikseną be p≡p. -enableEnigmail=&Išjungti p≡p -amPrefAutocrypt.desc=Autocrypt yra standartas, kuris apibrėžia kaip pasiekti patogų ištisinį el. laiškų šifravimą. Jis nurodo, kaip el. pašto programos užmezga šifravimo galimybes, naudodamos įprastus el. laiškus. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Jūs įjungėte šifravimą, bet nepasirinkote rakto. Norint užšifruoti laiškus siunčiamus %S, jūs turite nurodyti vieną ar kelis tinkamus raktus iš jūsų raktų sąrašo. Ar norite išjungti šifravimą skirtą %S? -noKeyToUse=(nėra - be šifravimo) -noEmptyRule=Taisyklė negali būti tuščia! Nurodykite el. pašto adresą taisyklės laukelyje. -invalidAddress=El. pašto adresas(-ai) kuriuos įvedėte yra neteisingi. Jūs neturėtumėte nurodyti gavėjų vardų, o tik el. pašto adresus. Pvz.:\nNeteisingas: Vardenis Pavardenis \nTeisingas: vardenis.pavardenis@adresas.lt -noCurlyBrackets=Laužtiniai skliaustai {} turi specialią reikšmę ir neturėtų būti naudojami el. pašto adrese. Jei norite pakeisti atitinkamą elgesį šiai taisyklei, naudokite „Pritaikyti taisyklę, jei gavėjas ...“ parinktį.\nDaugiau informacijos yra prieinama žinyne. - -# Strings used in enigmailRulesEditor.js never=Niekada always=Visada possible=Įmanoma -deleteRule=Tikrai ištrinti pasirinktą taisyklę? -nextRcpt=(Kitas gavėjas) -negateRule=Ne -addKeyToRule=Pridėti raktą %S (%S) į kiekvienam-gavėjui taisyklę - -# Strings used in enigmailSearchKey.js -needOnline=Pasirinkta funkcija neprieinama dirbant atsijungus. Prisijunkite ir bandykite dar kartą. -noKeyserverConn=Nepavyko prisijungti prie raktų serverio ties %S. -internalError=Kilo vidinė klaida. Raktų importuoti ar atsisiųsti nepavyko. -noKeyFound=Mums nepavyko rasti rakto, kuris atitiktų nurodytus paieškos kriterijus. -keyDownload.keyUnavailable=Raktas, kurio ID %S nėra prieinamas raktų serveryje. Tikriausiai, rakto savininkas neįkėlė savo rakto į raktų serverį.\n\nPaprašykite laiško siuntėjo, kad išsiųstų jums savo viešąjį raktą el. paštu. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nepavyko nustatyti pasitikėjimą savininku - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Rakto pasirašyti nepavyko -alreadySigned.label=Pastaba: raktas %S jau pasirašytas pasirinktu slaptuoju raktu. -alreadySignedexportable.label=Pastaba: raktas %S jau yra tinkamas eksportavimui ir pasirašytas, naudojant pasirinktą slaptąjį raktą. Vietinis parašas neturi prasmės. -partlySigned.label=Pastaba: kai kurie rakto %S naudotojų ID jau pasirašyti pasirinktu slaptuoju raktu. -noTrustedOwnKeys=Pasirašymui nerasta nei vieno tinkamo rakto! Norint pasirašinėti raktus, jums reikia bent vieno pilnai patikimo slaptojo rakto. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Įkraunami raktai, prašome palaukti ... keyValid.unknown=nežinomas keyValid.invalid=netinkamas keyValid.disabled=išjungtas keyValid.revoked=panaikintas keyValid.expired=nebegaliojantis keyValid.noSubkey=nėra tinkamo porakčio - +keyValid.valid=galioja +keyValid.ownKey=nuosavas raktas keyTrust.untrusted=nepatikimas keyTrust.marginal=dalinai patikimas keyTrust.full=patikimas keyTrust.ultimate=visiškas keyTrust.group=(grupė) -keyType.public=viešas -keyType.publicAndSec=viešas/saugus -keyMan.enableKey=Įjungti raktą -keyMan.disableKey=Išjungti raktą userAtt.photo=Naudotojo savybė (JPEG paveikslas) - -asciiArmorFile=ASCII Armored failai (*.asc) importKeyFile=Importuoti OpenPGP rakto failą -gnupgFile=GnuPG failai -saveRevokeCertAs=Sukurti ir įrašyti panaikinimo liudijimą -revokeCertOK=Panaikinimo liudijimas buvo sėkmingai sukurtas. Galite jį naudoti, norėdami paversti savo viešąjį raktą negaliojančiu, pvz., tuo atveju, jei prarasite savo slaptąjį raktą. -revokeCertFailed=Nepavyko sukurti panaikinimo liudijimo. - -addUidOK=Naudotojo ID sėkmingai pridėta -addUidFailed=Pridėti naudotojo ID nepavyko -noKeySelected=Pasirinktai operacijai atlikti jūs turite pasirinkti bent vieną raktą -exportToFile=Eksportuoti viešąjį raktą į failą -exportKeypairToFile=Eksportuoti slaptąjį ir viešąjį raktą į failą -exportSecretKey=Ar norite įtraukti slaptąjį raktą į įrašytą OpenPGP rakto failą? -saveKeysOK=Raktai sėkmingai įrašyti -saveKeysFailed=Raktų įrašyti nepavyko -importKeysFailed=Raktų importuoti nepavyko -enableKeyFailed=Raktų įjungti/išjungti nepavyko -specificPubKeyFilename=%S (0x%S) viešas -specificPubSecKeyFilename=%S (0x%S) viešas-saugus -defaultPubKeyFilename=Eksportuoti-viešieji-raktai -defaultPubSecKeyFilename=Eksportuoti-viešieji-ir-slaptieji-raktai - -sendKeysOk=Raktas(-ai) sėkmingai išsiųsti -sendKeysFailed=Raktų išsiųsti nepavyko -receiveKeysOk=Raktas(-ai) sėkmingai atnaujinti -receiveKeysFailed=Raktų atsiuntimas nepavyko -keyUpload.verifyEmails=Raktų serveris kiekvieno jūsų įkelto rakto el. paštui atsiųs po el. laišką. Norėdami patvirtinti savo rakto paskelbimą, kiekviename gautame el. laiške spustelėkite ant nuorodos. - -importFromClip=Ar norite importuoti raktą(-us) iš iškarpinės? -importFromUrl=Atsisiųsti viešąjį raktą iš šio URL: -copyToClipbrdFailed=Nepavyko nukopijuoti pasirinkto rakto(-ų) į iškarpinę. -copyToClipbrdOK=Raktas(-ai) nukopijuoti į iškarpinę - +importPubKeysFailed=Nepavyko į Thunderbird importuoti šių viešųjų raktų:\n\n%S +importSecKeysFailed=Nepavyko į Thunderbird importuoti šių slaptųjų raktų:\n\n%S deleteSecretKey=ĮSPĖJIMAS: Jūs ketinate ištrinti slaptąjį raktą!\nJei ištrinsite savo slaptąjį raktą, daugiau nebegalėsite iššifruoti jokių tam raktui užšifruotų laiškų ir nebegalėsite to rakto panaikinti.\n\nAr tikrai norite ištrinti ABU (slaptąjį ir viešąjį) raktus\n„%S“? -deleteMix=ĮSPĖJIMAS: Jūs ketinate ištrinti slaptuosius raktus!\nJeigu ištrinsite savo slaptąjį raktą, nebegalėsite iššifruoti laiškų užšifruotų tuo raktu.\nAr tikrai norite ištrinti ABU (pasirinktą slaptąjį ir viešąjį) raktus? -deletePubKey=Ar tikrai norite ištrinti viešąjį raktą\n„%S“? -deleteSelectedPubKey=Ar norite ištrinti viešuosius raktus? -deleteKeyFailed=Nepavyko ištrinti rakto. revokeKeyQuestion=Ketinate panaikinti raktą "%S".\n\nDaugiau nebegalėsite pasirašyti šiuo raktu, o jį išplatinus, kiti daugiau nebegalės šifruoti naudojant tą raktą. Jūs vis dar galite naudoti raktą senų laiškų iššifravimui.\n\nAr norite tęsti? -revokeKeyOk=Raktas panaikintas. Jeigu jūsų raktas yra prieinamas raktų serveryje, rekomenduojama jį įkelti iš naujo, kad kiti matytų, jog jis buvo panaikintas. -revokeKeyFailed=Nepavyko panaikinti rakto. revokeKeyNotPresent=Jūs neturite jokio rakto (0x%S), kuris atitiktų šį panaikinimo liudijimą!\n\nJei praradote savo raktą, tuomet prieš importuodami panaikinimo liudijimą, privalote importuoti raktą (pvz., iš raktų serverio)! revokeKeyAlreadyRevoked=Raktas 0x%S jau buvo panaikintas. -refreshAllQuestion=Nepasirinkote jokio rakto. Ar norite atnaujinti VISUS raktus? -refreshKeyServiceOn.warn=Įspėjimai: Šiuo metu jūsų raktai kaip įmanoma saugiau yra fone įkeliami iš naujo.\nVisų raktų įkėlimas iš naujo vienu metu gali bereikalingai atskleisti informaciją apie jus.\nAr tikrai norite tai padaryti? -refreshKey.warn=Įspėjimas: priklausomai nuo raktų skaičiaus ir interneto greičio, raktų atnaujinimas gali užtrukti! -downloadContactsKeys.warn=Įspėjimas: priklausomai nuo raktų skaičiaus ir interneto greičio, raktų atnaujinimas gali užtrukti! -downloadContactsKeys.importFrom=Importuoti kontaktus iš „%S“ adresų knygutės? -keyMan.button.exportSecKey=Eksportuoti &slaptuosius raktus -keyMan.button.exportPubKey=Eksportuoti tik &viešuosius raktus keyMan.button.import=&Importuoti -keyMan.button.refreshAll=&Iš naujo įkelti visus raktus keyMan.button.revokeKey=&Panaikinti raktą - -keylist.noOtherUids=Neturi kitų tapatybių -keylist.hasOtherUids=Taip pat žinomas kaip -keylist.noPhotos=Nėra prieinamos nuotraukos -keylist.hasPhotos=Nuotraukos - -keyMan.addphoto.filepicker.title=Pasirinkite nuotrauką kuri bus pridėta -keyMan.addphoto.warnLargeFile=Jūsų pasirinktas failas yra didesnis nei 25 kB.\nNerekomenduotina pridėti didelių failų, nes tai sąlygoja labai didelius raktus. -keyMan.addphoto.noJpegFile=Pasirinktas failas nėra JPEG failas. Pasirinkite kitą failą. -keyMan.addphoto.failed=Nepavyko pridėti nuotraukos. -noWksIdentity=Raktas %S neturi WKS tapatybės. -wksUpload.noKeySupported=Įkėlimas nebuvo sėkmingas - atrodo, kad jūsų tiekėjas nepalaiko WPS. - -keyman.addBlacklistKey.msg=Ar tikrai norite, kad p≡p laiškų šifravimui nustotų naudoti "%1$S (%2$S)" raktą? -keyman.removeBlacklistKey.msg=Ar norite leisti p≡p būsimiems laiškams naudoti raktą "%1$S (%2$S)"? -keyman.addBlacklistKey.button=Į&traukti raktą į juodąjį sąrašą -keyman.removeBlacklistKey.button=Š&alinti raktą iš juodojo sąrašo - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Nepavyko pakeisti pagrindinio naudotojo ID -changePrimUidOK=Pagrindinio naudotojo ID sėkmingai pakeistas -revokeUidFailed=Naudotojo ID %S panaikinimas nepavyko -revokeUidOK=Naudotojo ID %S sėkmingai panaikintas. Jeigu jūsų raktas prieinamas raktų serveryje, rekomenduojama jį įkelti pakartotinai, kad kiti žinotų, jog jis panaikintas. -revokeUidQuestion=Ar tikrai norite panaikinti naudotojo ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=PAVYKO! Raktai importuoti -importInfoBits=bitų -importInfoCreated=Sukurtas -importInfoFpr=Kontrolinis kodas -importInfoDetails=(Išsamiau) -importInfoNoKeys=Neimportuota jokių raktų. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=viešasis raktas -keyTypePrimary=pirminis raktas -keyTypeSubkey=poraktis -keyTypePair=raktų pora -keyExpiryNever=niekada keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Šifravimas -keyUsageSign=Pasirašymas -keyUsageCertify=Sertifikuoti -keyUsageAuthentication=Tapatybės patvirtinimas -keyDoesNotExpire=Raktas neturi galiojimo pabaigos - -# Strings in enigmailGenCardKey.xul -keygen.started=Palaukite kol bus sugeneruotas raktas... -keygen.completed=Raktas sugeneruotas. Naujas rakto ID yra: 0x%S -keygen.keyBackup=Rakto atsarginė kopija padaryta kaip %S -keygen.passRequired=Nurodykite slaptafrazę jei norite sukurti savo rakto atsarginę kopiją už SmartCard ribų. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Nepavyko pakeisti PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Raktai įkeliami iš naujo, prašome palaukti... -keyserverProgress.uploading=Raktai įkeliami, palaukite... -keyserverProgress.wksUploadFailed=Nepavyko įkelti jūsų raktą į saityno raktų paslaugą. -keyserverProgress.wksUploadCompleted=Jūsų viešasis raktas buvo sėkmingai pateiktas jūsų tiekėjui. Jūs gausite el. laišką, patvirtinantį, jog inicijavote įkėlimą. -keyserverTitle.refreshing=Atnaujinti raktus -keyserverTitle.uploading=Rakto įkėlimas -keyserver.result.download.none=Neatsisiųsta jokio rakto. -keyserver.result.download.1of1=Raktas sėkmingai atsisiųstas. -keyserver.result.download.1ofN=Sėkmingai atsisiųstas 1 iš %S raktų. -keyserver.result.download.NofN=Sėkmingai atsisiųsta %1$S iš %2$S raktų. -keyserver.result.uploadOne=Sėkmingai įkeltas 1 raktas. -keyserver.result.uploadMany=Sėkmingai įkelta raktų: %S. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Jūsų pasirinktas failas nėra GnuPG vykdomasis failas. Pasirinkite kitą failą. -setupWizard.installFailed=Atrodo diegimas nepavyko. Pabandykite iš naujo arba įdiekite GnuPG rankiniu būdu ir pasirinkite jį su naršymo mygtuku. -setupWizard.downloadForbidden=Jūsų pačių saugumui, mes nesiųsime GnuPG. Norėdami atsisiųsti GnuPG, apsilankykite https://gnupg.org/ . -setupWizard.downloadImpossible=Šiuo metu mums nepavyko atsisiųsti GnuPG. Bandykite vėliau arba, norėdami atsisiųsti GnuPG, apsilankykite https://gnupg.org/ . -setupWizard.hashSumError=Vedikliui nepavyko patikrinti atsiųsto failo vietisumo. Gali būti, kad failas buvo netinkamai atsisiųstas arba suklastotas. Ar vis tiek norite tęsti diegimą? -setupWizard.importSettingsFile=Nurodykite atsarginės kopijos failą, iš kurio įkelti -setupWizard.invalidSettingsFile=Nurodytas failas nėra tinkamas Enigmail Nustatymų atsarginės kopijos failas. -setupWizard.gpgConfExists=GnuPG konfigūracijos failas jau yra. Ar norite jį perrašyti konfigūracijos failu iš savo senojo diegimo? -setupWizard.noGpgHomeDir=Atrodo, kad esate sukonfigūravę %S, kad ji būtų naudojama su GnuPG. Vis dėlto, tai nėra katalogas - jūs negalite jo naudoti. -setupWizard.unmachtedIds=Šioms jūsų senos sąrankos tapatybėms nepavyko rasti atitikmenų:\n%S\nNustatymai šioms tapatybėms buvo praleisti. -setupWizard.foundAcSetupMessage=Rastas Autocrypt sąrankos laiškas. Norėdami inicijuoti Autocrypt sąrankos procedūrą, sputelėkite žemiau ant mygtuko Pradėti sąranką. -setupWizard.foundAcNoSetupMsg=Mes nustatėme, kad jūs naudojate su Autocrypt suderinamą el. pašto kliento programą, tačiau mums nepavyko rasti jokio Autocrypt sąrankos laiško. Rekomenduojame esamame įrenginyje susikurti Autocrypt sąrankos laišką, o tuomet spustelėti Peržiūrėti gautųjų aplanką. Priešingu atveju, galite eksportuoti savo nustatymus ir raktus iš esamo Enigmail diegimo ir čia atkurti šiuos nustatymus. -setupWizard.setupComplete=Dabar, Enigmail yra tinkamai sukonfigūruota ir paruošta naudoti. Tolimesnei informacijai apie naudojimąsi Enigmail, apsilankykite mūsų internetinėje svetainėje. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Atsiunčiant GnuPG įvyko klaida. Tolimesnei informacijai, žiūrėkite pulto žurnalą. -installGnuPG.installFailed=Diegiant GnuPG įvyko klaida. Tolimesnei informacijai, žiūrėkite pulto žurnalą. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Turite užpildyti vardą ir el. pašto adresą -addUidDlg.nameMinLengthError=Vardą turi sudaryti bent 5 simboliai -addUidDlg.invalidEmailError=Turite nurodyti teisingą el. pašto adresą - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP SmartCards Varde/Pavardėje palaiko tik ASCII simbolius. - - -# network error types +setupWizard.selectKeysButton=Pasirinkti raktus errorType.SecurityCertificate=Interneto tarnybos pateiktas saugumo liudijimas negalioja. errorType.SecurityProtocol=Saugumo protokolas kurį naudoja tarnyba yra nežinomas. errorType.Network=Įvyko tinklo klaida. - -# filter stuff -filter.folderRequired=Privalote pasirinkti paskirties aplanką. -filter.decryptMove.label=Iššifruoti visam laikui (Enigmail) -filter.decryptCopy.label=Sukurti iššifruotą kopiją (Enigmail) -filter.decryptMove.warnExperimental=Įspėjimas - filtro veiksmas "Iššifruoti visam laikui" gali privesti prie sunaikintų laiškų.\n\nPrimygtinai jums rekomenduojame, iš pradžių, išbandyti filtrą "Sukurti iššifruotą kopiją", atsargiai išbandyti rezultatą ir pradėti naudoti šį filtrą tik tuomet, kai būsite patenkinti rezultatu. -filter.tempPepFilterDesc=Laikinas filtras, skirtas laikyti išsiųstus laiškus nešifruotai -filter.term.pgpencrypted.label=OpenPGP šifruotas -filter.encrypt.label=Šifruoti į raktą (Enigmail) -filter.keyRequired=Privalote pasirinkti gavėjo raktą. -filter.keyNotFound=Nepavyko rasti šifravimo rakto, skirto "%S". -filter.warn.keyNotSecret=Įspėjimas - filtro veiksmas "Šifruoti į raktą" pakeičia visus gavėjus.\n\nJeigu neturite "%S" slaptojo rakto, daugiau nebegalėsite skaityti el. laiškų. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Nepavyko iššifruoti laiško, kurio tema\n"%S".\nAr norite bandyti dar kartą, naudojant kitą slaptafrazę, ar verčiau praleisti laišką? -converter.decryptAtt.failed=Nepavyko iššifruoti priedo "%1$S"\nlaiške, kurio tema\n"%2$S".\nAr norite bandyti dar kartą, naudojant kitą slaptafrazę, ar verčiau praleisti laišką? - -saveLogFile.title=Įrašyti žurnalo failą - -# strings in gpg.jsm -unknownSigningAlg=Nežinomas pasirašymo algoritmas (ID: %S) -unknownHashAlg=Nežinoma šifravimo maiša (ID: %S) - -# strings in keyRing.jsm keyring.photo=Nuotrauka keyRing.pubKeyRevoked=Raktas %1$S (rakto ID %2$S) yra panaikintas. keyRing.pubKeyExpired=Pasibaigė rakto %1$S (rakto ID %2$S) galiojimas. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Pasibaigė visų rakto %1$S (rakto ID %2$S) porakčių galiojimas. keyRing.noSecretKey=Atrodo, kad savo raktinėje neturite slaptojo rakto, skirto %1$S (rakto ID %2$S); negalite naudoti rakto pasirašymui. keyRing.encSubKeysUnusable=Visi rakto %1$S (rakto ID %2$S) šifravimo porakčiai yra panaikinti, yra pasibaigęs jų galiojimas ar jie yra kitaip netinkami naudoti. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Nepavyksta įrašyti į failą "%S". Prašome pasirinkti kitą failą. dataExportError=Jūsų duomenų eksportavimo metu įvyko klaida. -enigmailSettings=EnigmailNustatymai -defaultBackupFileName=Enigmail-eksportavimas -specifyExportFile=Nurodykite failo pavadinimą eksportavimui -homedirParamNotSUpported=Papildomi parametrai, tokie kaip --homedir ir --keyring, kurie konfigūruoja kelius, nėra palaikomi jūsų eksportavimo/atkūrimo nustatymų. Naudokite alternatyvius būdu, tokius kaip aplinkos kintamojo GNUPGHOME, nustatymas. - -#strings in expiry.jsm expiry.keyExpiresSoon=Jūsų raktas %1$S nustos galioti mažiau nei po %2$S dienų.\n\nRekomenduojame sukurti naują raktų porą ir sukonfigūruoti atitinkamas paskyras naujo rakto naudojimui. expiry.keysExpireSoon=Šie raktai nustos galioti po mažiau nei %1$S dienų:\n%2$S. Rekomenduojame susikurti naujus raktus ir sukonfigūruoti atitinkamas paskyras naudoti naujus raktus. expiry.keyMissingOwnerTrust=Jūsų slaptajam raktui %S trūksta pasitikėjimo.\n\nRekomenduojame, kad rakto savybėse nustatytumėte "Jūs pasikliaujate sertifikavimais" į "visiškas". expiry.keysMissingOwnerTrust=Šiems jūsų slaptiesiems raktams trūksta pasitikėjimo.\n%S.\n\nRekomenduojame, kad rakto savybėse nustatytumėte "Jūs pasikliaujate sertifikavimais" į "visiškas". expiry.OpenKeyManager=Atverti Enigmail raktų tvarkymą expiry.OpenKeyProperties=Atverti rakto savybes - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Tai yra šifruotas laiškas. Deja, jūs neturite šio laiško iššifravimui skirto slaptojo rakto. - -#strings in gpgAgent.jsm gpghomedir.notexists=Katalogo "%S" su jūsų OpenPGP raktais nėra ir jis negali būti sukurtas. gpghomedir.notwritable=Katalogas "%S", kuriame yra jūsų OpenPGP raktai, nėra skirtas rašymui. gpghomedir.notdirectory=Katalogas "%S", kuriame yra jūsų your OpenPGP raktai, iš tiesų, yra failas, o ne katalogas. gpghomedir.notusable=Pataisykite katalogo leidimus arba pakeiskite savo GnuPG "namų" katalogo vietą. Priešingu atveju GnuPG negalės tinkamai veikti. gpgAgent.noAutostart=Jūs naudojate GnuPG versiją %S. Ši versija reikalauja, kad paleistumėte gpg-agent dar prieš paleisdami Thunderdbird ir, kad kintamasis "GPG_AGENT_INFO" būtų iš anksto įkeltas.\n\nŠios išankstinės sąlygos nėra patenkintos - jūs negalite naudoti Enigmail, kol neišspręsite šios problemos. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Nepavyksta patikrinti p≡p pasitikėjimo žodžių jūsų paskyrai. -pepTrustWords.cannotFindKey=Nepavyksta rasti rakto, skirto %S. -pepTrustWords.cannotStoreChange=Nepavyko pakeisti pasitikėjimo %S raktu. -pepTrustWords.generalFailure=Nepavyksta gauti pasitikėjimo žodžių, skirtų %S. -pepTrustWords.partnerFingerprint=%S kontrolinis kodas: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Jūsų el. pašto tiekėjas apdorojo jūsų užklausą įkelti jūsų viešąjį raktą į OpenPGP saityno raktų katalogą.\n\nNorėdami užbaigti savo viešojo rakto paskelbimą, spustelėkite Enigmail antraštėje patvirtinimo mygtuką. -wkdMessage.body.process=Tai yra automatinis el. laiškas, susijęs su automatiniu apdorojimu, skirtu įkelti jūsų viešąjį raktą į OpenPGP saityno raktų katalogą.\n\nŠiuo metu jums nereikia atlikti jokių papildomų veiksmų. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Arba jūs, arba siuntėjas turėtų išsiųsti laišką iš naujo. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Jeigu jūs parašėte šį laišką, tuomet jūsų raktas yra neprieinamas. -pepPrivacyStatus.RatingMistrustSuggestion=Iš naujo užmegzkite ryšį su savo bendravimo partneriu ir pabandykite užbaigti dar vieną išankstinį suderinimą. -pepPrivacyStatus.RatingReliableSuggestion=Užbaikite išankstinį suderinimą su savo bendravimo partneriu, pasakydami vienas kitam savo pasitikėjimo žodžius asmeniškai ar telefonu. Išankstinis suderinimas su kiekvienu partneriu yra reikalingas tik vieną kartą ir užtikrina saugų bei patikimą bendravimą. -pepPrivacyStatus.RatingTrustedSuggestion=Nereikalingas joks veiksmas! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Turėkite omenyje, kad šis laiškas gali būti nesaugus. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Pridėkite reikiamą informaciją. -pepPrivacyStatus.RatingUnderAttackSuggestion=Patvirtinkite šio laiško turinį su savo bendravimo partneriu, naudodami kitą kanalą. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Įsitikinkite, kad privatumo būsena kiekvienam išvardytam susirašinėjimo partneriui yra bent "saugi". -pepPrivacyStatus.RatingUnencryptedSuggestion=Paprašykite savo bendravimo partnerio naudoti šifravimo sprendimą arba įsidiegti p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Šiame laiške nėra patikimo šifravimo arba trūksta parašo. Paprašykite savo bendravimo partnerio, kad atnaujintų savo šifravimo sprendimą ar įsidiegtų p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Šiame laiške yra sugadintas šifravimas ar formatavimas. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Šis laiškas negali būti iššifruotas, nes raktas nėra prieinamas. -pepPrivacyStatus.RatingMistrustExplanation=Šiame laiške yra bendravimo partneris, kuris anksčiau buvo pažymėtas kaip nepatikimas. -pepPrivacyStatus.RatingReliableExplanation=Šis laiškas yra saugus, tačiau vis tiek turite patvirtinti savo bendravimo partnerio tapatybę. -pepPrivacyStatus.RatingTrustedExplanation=Šis laiškas yra saugus ir patikimas. -pepPrivacyStatus.RatingUndefinedExplanation=Šiame laiške nėra pakankamai informacijos, kad būtų nuspręsta ar jis yra saugus ar ne. -pepPrivacyStatus.RatingUnderAttackExplanation=Šis laiškas nėra saugus ir buvo klastojamas. -pepPrivacyStatus.RatingUnencryptedExplanation=Šis laiškas yra nesaugus. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Kai kuriems bendravimo partneriams šis laiškas yra nesaugus. -pepPrivacyStatus.RatingUnreliableExplanation=Šiame laiške yra nepatikima apsauga. - -pepPrivacyStatus.RatingBrokenText=Sugadintas -pepPrivacyStatus.RatingHaveNoKeyText=Nepavyksta iššifruoti -pepPrivacyStatus.RatingMistrustText=Nebepatikimas -pepPrivacyStatus.RatingReliableText=Saugus -pepPrivacyStatus.RatingTrustedText=Saugus ir patikimas -pepPrivacyStatus.RatingUndefinedText=Nežinoma -pepPrivacyStatus.RatingUnderAttackText=Puolamas -pepPrivacyStatus.RatingUnencryptedForSomeText=Kai kuriems nesaugus -pepPrivacyStatus.RatingUnencryptedText=Nesaugus -pepPrivacyStatus.RatingUnreliableText=Nepatikimas saugumas - -handshakeDlg.button.initHandshake=Išankstinis suderinimas... -handshakeDlg.button.stopTrust=Nustoti pasitikėti -handshakeDlg.button.reTrust=Nustoti nebepasitikėti -handshakeDlg.label.outgoingMessage=Išsiunčiamas laiškas -handshakeDlg.label.incomingMessage=Gaunamas laiškas -handshakeDlg.error.noPeers=Nepavyksta atlikti išankstinio suderinimo be jokių susirašinėtojų. -handshakeDlg.error.noProtection=Norėdami naudoti "išankstinio suderinimo" funkciją, įjunkite apsaugą. - -enigmail.acSetupPasswd.descEnterPasswd=Įveskite kitame įrenginyje rodomą sąrankos kodą. -enigmail.acSetupPasswd.descCopyPasswd=Norėdami tęsti sąranką, įveskite žemiau esantį sąrankos kodą savo kitame įrenginyje. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt sąrankos laiškas -autocrypt.setupMsg.msgBody=Norėdami nusistatyti savo naujajame įrenginyje Autocrypt, sekite instrukciją, kurią turėtų pateikti jūsų naujasis įrenginys. -autocrypt.setupMsg.fileTxt=Tai yra Autocrypt sąrankos failas, kuris naudojamas nustatymų ir raktų perkėlimui tarp kliento programų. Jūs galite jį iššifruoti, naudodami jūsų senajame įrenginyje rodomą sąrankos kodą ir tuomet iš įrenginio importuoti raktą į savo raktinę. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Kas naujo Enigmail v2.0? -upgradeInfo.welcome1=Sveiki atvykę į naująją Enigmail versiją 2.0! -upgradeInfo.welcome2=Šioje laidoje yra daug naujų ir pakeistų ypatybių. Skirkite minutėlę ir sužinokite kas naujo: -upgradeInfo.encSubject.title=Laiško temos šifravimas -upgradeInfo.encSubject.desc=Mes sukūrėme naują būda, kuris perkelia el. laiško tema į šifruotą laišką ir pakeičia matomą temą į "Šifruotas laiškas". Iššifravus tokį laišką, pradinė tema yra pakeičiama automatiškai. Temos slėpimas yra įjungtas pagal numatymą; jeigu jums tai nepatinka, yra nuostata, skirta tai išjungti. (Pastaba: ši ypatybė reikalauja, kad laiškas būtų išsiųstas naudojant PGP/MIME.) -upgradeInfo.buttons.title=Pakeista šifravimo ir pasirašymo mygtukų elgsena -upgradeInfo.buttons.desc=Laiško rašymo lange esantys mygtukai Šifruoti ir Pasirašyti dabar veikia tiek OpenPGP, tiek S/MIME protokolams. Jeigu yra galimi abu algoritmai, tuomet Enigmail bandys teikti pirmenybę tam, kuriam yra prieinami visi raktai. -upgradeInfo.autocrypt.title=Autocrypt palaikymas -upgradeInfo.autocrypt.desc=Dabar, Enigmail palaiko Autocrypt, naują standartą, skirtą platinti raktus kaip išsiųstų laiškų dalį. Enigmail automatiškai importuoja raktus iš su Autocrypt suderinamų laiškų ir tokiu būdu, bėgant laikui, gali būti šifruota vis daugiau ir daugiau laiškų. -upgradeInfo.pEp.title=Naujoji p≡p jaunių veiksena (Ganėtinai lengvas privatumas) -upgradeInfo.pEp.desc=Dabar, programoje Enigmail yra p≡p jaunių veiksena. p≡p jaunių veiksena leidžia jums naudoti OpenPGP šifravimą kaip įmanoma skaidriau; jums daugiau nebereikia rūpintis raktų tvarkymu ir raktų sinchronizavimu tarp įrenginių. -upgradeInfo.bottom.desc=Norėdami gauti pagalbos, naudojantis Enigmail, apsilankykite mūsų dokumentacijos puslapyje. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Norint naudoti Enigmail/p≡p, yra reikalinga GnuPG. Kadangi mums nepavyko jos rasti, siūlome atsiųsti ir ją jums įdiegti. -pep.updateAvailable=Yra prieinama nauja Enigmail/p≡p kriptografijos modulio versija. Ar norėtumėte atsisiųsti ir įsidiegti atnaujinimą? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Atsisveikinimas su Enigmail +upgradeInfo.welcome1=Dabar, OpenPGP šifravimas yra Thunderbird dalis +upgradeInfo.welcome2=Enigmail daugiau nebereikalinga naudojantis Thunderbird ir tapo nebenaudojama - tai yra paskutinė Enigmail versija, skirta Thunderbird. +upgradeInfo.migrateSettings.title=Perkelkite savo raktus ir nustatymus iš GnuPG į Thunderbird +upgradeInfo.migrateSettings.desc=Viskas, kas belieka prieš pašalinant Enigmail, tai importuoti savo raktus iš GnuPG į Thunderbird ir perkelti kai kuriuos svarbius nustatymus iš Enigmail į Thunderbird. Esame parengę vediklį, kuris atliks šiuos žingsnius už jus. +upgradeInfo.performMigration.buttonLabel=Pradėti perkėlimą dabar +upgradeInfo.thankyou.title=Ačiū, kad naudojatės Enigmail +upgradeInfo.thankyou.desc1=Buvo malonu, beveik du dešimtmečius dirbti ties Enigmail. Dėkojame ir vertiname, kad galėjome prisidėti prie šifruotų el. laiškų idėjos. Tikimės, kad jums Enigmail buvo naudinga ir norime jums padėkoti už jūsų tęstinį palaikymą per visus šiuos metus. +upgradeInfo.thankyou.desc2=Jei norite padėti, apsvarstykite galimybę paaukoti Thunderbird. aboutEnigmail.tabName=Apie Enigmail aboutEnigmail.title=Enigmail pateikiamas OpenPGP palaikymas aboutEnigmail.team=Enigmail kuria Enigmail komanda: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licencija ir palaikymas aboutEnigmail.license=Enigmail OpenPGP atvirojo kodo ir yra licencijuota pagal %S aboutEnigmail.support=Palaikymas ir atsiuntimai yra prieinami iš www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG atnaujinimas -updateGnuPG.title=GnuPG atnaujinimai -updateGnuPG.introduction.desc=Enigmail savo kriptografijos funkcijų atlikimui reikalauja GnuPG. Rekomenduojame išlaikyti savo GnuPG diegimą atnaujintą. -updateGnuPG.updateRequired=Yra prieinama naujesnė GnuPG versija. Mes primygtinai rekomenduojame, kad išlaikytumėte savo GnuPG diegimą atnaujintą. Norėdami atsisiųsti ir įdiegti atnaujinimą, spustelėkite ant mygtuko Įdiegti atnaujinimą. -updateGnuPG.noUpdateRequired=GnuPG yra naujausios versijos. -updateGnuPG.cannotUpdate.header=Enigmail palaiko tik šių paketų atnaujinimą: -updateGnuPG.cannotUpdate.footer=Atrodo, kad jūs naudojate kitokį GnuGP variantą; deja, tačiau todėl programai Enigmail nėra įmanoma atnaujinti jūsų GnuGP diegimo. -updateGnuPG.installUpdate=Įdiegti atnaujinimą -updateGnuPG.noMoreUpdates=Ateityje nebetikrinti ar yra atnaujinimų updateGnuPG.checkUpdate=Tikrinti ar yra GnuPG atnaujinimų - - -#strings in keyserver.jsm -keyserver.error.aborted=Nutraukta -keyserver.error.unknown=Įvyko nežinoma klaida -keyserver.error.serverError=Raktų serveris pranešė apie klaidą. -keyserver.error.importError=Nepavyko importuoti atsisiųsto rakto. -keyserver.error.unavailable=Raktų serveris yra neprieinamas. -keyserver.error.securityError=Raktų serveris nepalaiko šifruotos prieigos. -keyserver.error.certificateError=Raktų serverio liudijimas negalioja. -keyserver.error.unsupported=Enigmail nepalaiko raktų serverio. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Šifruota laiško dalis -mimeDecrypt.encryptedPart.concealedData=Tai yra šifruota laiško dalis. Jūs turite atverti ją atskirame lange, spusteldami ant priedo. - -#strings in gnupg-key.jsm import.secretKeyImportError=Importuojant slaptuosius raktus, GnuPG įvyko klaida. Importavimas nebuvo sėkmingas. - -#strings in importSettings.js -importSettings.errorNoFile=Jūsų nurodytas failas nėra įprastas failas! -importSettings.cancelWhileInProgress=Vyksta atkūrimas. Ar tikrai norite nutraukti procesą? -importSettings.button.abortImport=&Nutraukti procesą +passphrasePrompt=Įveskite slaptafrazę, skirtą šiam raktui: %S +openpgpInitError=Inicijuojant OpenPGP infrastruktūrą programoje Thunderbird, įvyko klaida.\n\nPerkėlimo vediklis negalės tęsti, jei OpenPGP, esanti programoje Thunderbird, nebus tinkamai inicijuota. diff -Nru enigmail-2.1.6+ds1/lang/lt/help/compose.html enigmail-2.2.4/lang/lt/help/compose.html --- enigmail-2.1.6+ds1/lang/lt/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/editRcptRule.html enigmail-2.2.4/lang/lt/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/lt/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/help.html enigmail-2.2.4/lang/lt/help/help.html --- enigmail-2.1.6+ds1/lang/lt/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail OpenPGP Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail OpenPGP mailing list

-

Enigmail OpenPGP is open source and licensed under the Mozilla Public License

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/initError.html enigmail-2.2.4/lang/lt/help/initError.html --- enigmail-2.1.6+ds1/lang/lt/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/messenger.html enigmail-2.2.4/lang/lt/help/messenger.html --- enigmail-2.1.6+ds1/lang/lt/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/rulesEditor.html enigmail-2.2.4/lang/lt/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/lt/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/lt/help/sendingPrefs.html enigmail-2.2.4/lang/lt/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/lt/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/lt/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/nb/am-enigprefs.properties enigmail-2.2.4/lang/nb/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/nb/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Sikkerhet +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/nb/enigmail.dtd enigmail-2.2.4/lang/nb/enigmail.dtd --- enigmail-2.1.6+ds1/lang/nb/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' for å spesifisere epostadresser"> - - -' for å spesifsere epostadresser for GnuPG. Deaktiver om mottakerne bruker gamle Hushmail-nøkler."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP-sikkerhet)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MERK: Nøkkelgenerering kan ta intill flere minutter å gjennomføre. Ikke avbryt programmet mens nøkkelgenerering pågår. Gjennomføring av harddisk-insentive oppgavevr mens nøkkelgenrerering pågår vil gjøre prosessen hurtigere. Du vil få beskjed når nøkkelgenerering er fullført."> - @@ -296,491 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' er ugyldig"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MERK: Nøkkelgenerering kan ta flere minutter, ikke avslutt programmet, du vil få beskjed når det er fullført."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/nb/enigmail.properties enigmail-2.2.4/lang/nb/enigmail.properties --- enigmail-2.1.6+ds1/lang/nb/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmal - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail varsel # enigConfirm=Enigmail Confirmation enigInfo=Enigmail-informasjon -enigError=Enigmail feil enigPrompt=Enigmail forespørsel - -dlgYes=&Ja dlgNo=&Nei dlgKeepSetting=Husk svaret og ikke spør igjen dlgNoPrompt=Ikke vis meg denne dialogen igjen -dlg.button.delete=&Slett dlg.button.cancel=&Avbryt dlg.button.close=&Lukk dlg.button.continue=&Fortsett -dlg.button.skip=&Hopp over -dlg.button.overwrite=&Overskriv -dlg.button.view=&Vis -dlg.button.retry=&Prøv igjen -dlg.button.ignore=&Ignorer -dlg.button.install=&Installer dlg.button.ok=&OK - repeatPrefix=\n \n \nDenne meldingen vil gjentas %S repeatSuffixSingular=gang til. repeatSuffixPlural=ganger til. noRepeat=\n \n \nDette varselet vil ikke gjentas før du oppgraderer Enigmail. - -pgpNotSupported=Du ser ut til å bruke Enigmail sammen med with PGP 6.x\n\\Beklaglivis er ikke dette støttet da PGP 6.x har en rekke kompabilitetsproblemer med Enigmail. Hjelp for å endre til GnuPG finnes på websidene. -initErr.howToFixIt=For å kunne bruke Enigmail kreves GnuPG. Hvis du ikke har installert GnuPG ennå kan du gjøre dette ved hjelp av oppsettsveilederknappen under. -initErr.setupWizard.button=&Oppsettsveileder passphraseCleared=Passfrasen har blitt nullstilt. cannotClearPassphrase=Du bruker et ikke-standard verktøy (f.eks. gnome-keyring) for passfrasehåndtering. Det er derfor ikke mulig å tilbakestille passfrasen i Enigmail. -noPhotoAvailable=Intet bilde tilgjengelig -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Bildesti '%S' er ikke lesbar - -generalError=Feil: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Denne versjonen av Enigmail har omfattende endringer i håndteringen av innstillinger. Vi har forsøkt å overføre dine gamle innstllinger til denne versjonen, men det fungerer ikke for alle typer innstillinger. Vennligst dobbeltsjekk de nye innstillingene dine. -enigmailCommon.checkPreferences=Sjekk innstillinger ... -preferences.defaultToPgpMime=Vi har endret standard meldingskoding i Enigmail fra Inline-PGP til PGP/MIME. Vi anbefaler at du beholder dette som standard. \n \nHvis du fortsatt vil bruke Inline-PGP som standard kan du sette dette i konto-innstillinger under OpenPGP-sikkerhet. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Kjører Enigmail versjon %S -enigmailPepVersion=Enigmail/p≡p-versjon %S usingAgent=Bruker %S filen %S til å kryptere og dekryptere agentError=FEIL: Klarer ikke å få tilgang til enigmail! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Feil i tilgang til Enigmail-tjenesten -onlyGPG=Nøkkelgenerering fungerer kun med GnuPG (ikke med PGP)! - -keygenComplete=Nøkkelgenerering fullført! Identitet <%S> vil bli brukt til signering. -revokeCertRecommended=Vi anbefaler på det sterkeste å lage et tilbaketrekkingssertifikat. F.eks. om du skulle miste den private nøkkelen eller passfrasen din kommer på avveie. Ønsker du å lage dette sertifikatet nå? -keyMan.button.generateCert=&Generer sertifikat -genCompleteNoSign=Nøkkelgenerering fullført! -genGoing=Nøkkelgenerering pågår allerede! - -passNoMatch=Passfrasene stemmer ikke overens, vennligst prøv igjen. -passCheckBox=Kryss av for om nøkkelen ikke skal beskyttes med passfrase -passUserName=Angi brukernavn for denne identiteten -keygen.missingUserName=Det er ikke angitt noe navn for den valgte kontoen/identiteten. Angi en verdi i feltet "Ditt navn" i kontoinnstillinger. -keygen.passCharProblem=Du bruker spesialtegn i passfrasen din. Dessverre kan dette skape problemer for andre applikasjoner. Vi anbefaler at du kun benytter tegn fra følgende grupper: \na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Av tekniske årsaker kan ikke passfrasen din starte eller slutte med mellomromstegnet. -changePassFailed=Endring av passfrase mislyktes. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Genererer nøkkel -keyAbort=Avbryt nøkkelgenerering? -keyMan.button.generateKeyAbort=&Avbryt nøkkelgenerering -keyMan.button.generateKeyContinue=&Fortsett nøkkelgenerering -expiryTooLong=Du kan ikke lage en nøkkel som utløper om mer enn 100 år. -expiryTooLongShorter=Du kan ikke lage en nøkkel som utløper om mer enn 90 år. -expiryTooShort=Nøkkelen må være gyldig i minst én dag. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Utløpsdatoen kunne ikke endres. - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail sikkerhetsinformasjon\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Mulig PGP/MIME kryptert eller signert melding; klikk knapp for dekryptering for å bekrefte - -saveAttachmentHeader=Enigmail: Lagre dekryptert vedlegg -noTempDir=Kunne ikke finne en midlertidig mappe å skrive til\nVennligst sett TEMP-miljøvariablen -attachmentPgpKey=Vedlegget '%S' du åpner tyder på å være en OpenPGP-nøkkel\n\nKlikk Ja for å importere nøklene eller Nei for å se hva de inneholder i et vindu. - -beginPgpPart=********* *BEGYNN KRYPTERT ELLER SIGNERT DEL* ********* -endPgpPart=********** *AVSLUTT KRYPTERT ELLER SIGNERT DEL* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Flere meldingsblokker funnet -- dekryptering/bekreftelse avsluttet* - -decryptOkNoSig=Advarsel\n\nDekryptering var vellykket, men signaturen kunne ikke bekreftes. -msgOvl.button.contAnyway=&Fortsett uansett -signature.verifiedOK=Signaturen på vedlegg %S lot seg verifisere -signature.verifyFailed=Signaturen på vedlegg %S lot seg ikke verifisere -attachment.noMatchToSignature=Kunne ikke finne tilhørende signaturfil for vedlegg '%S' -attachment.noMatchFromSignature=Kunne ikke finne et vedlegg tilhørende signaturfil '%S' -fixBrokenExchangeMsg.failed=Klarte ikke å reparere meldingen -enigmail.msgViewColumn.label=Enigmal -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Dene nøkkelen er ikke lenket til noen av dine e-postkontoer. Legg til en konto for minst én av følgende e-postadresse(r):\n\n%S -wksConfirmSuccess=Bekreftelses-e-post sendt. -wksConfirmFailure=Sending av bekreftelses-e-posten mislyktes. -autocrypt.importSetupKey.accountPreconfigured=Kontoen din er allerede satt opp riktig for Autocrypt.\n\nØnsker du å overskrive innstillingene dine med denne oppsettsmeldingen? -autocrypt.importSetupKey.selfCreated=Meldingen ble opprettet av den nåværende kjørende Enigmail-instansen.\n\nBytt til e-postklienten du ønsker å overføre innstillingene til, og klikk på meldingen på den på den e-postklienten for å importere innstillingene. -autocrypt.importSetupKey.invalidMessage=Feil - kunne ikke lese oppsettsmeldingen. Meldingen ser ut til å være skadet. Prøv å opprette en ny oppsettsmelding på din "andre" enhet. -autocrypt.importSetupKey.invalidKey=Feil - nøkkelen kunne ikke importeres. Nøkkelen er enten ikke støttet av din versjon av GnuPG, eller så har den blitt skadet. -autocrypt.importSetupKey.wrongPasswd=Passordet du skrev inn er feil. Ønsker du å prøve igjen? -autocrypt.importSetupKey.success=Autocrypt-oppsettsmeldingen ble behandlet. Autocrypt er nå tilgjengelig for din konto "%S". - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Velg OpenPGP nøkkel å sette inn keysToUse=Velg OpenPGP Nøkkel/Nøkler å bruke for %S pubKey=Offentlig nøkkel for %S\n - -windowLocked=skrive-vindu er låst; sending avbrutt -sendUnencrypted=Feilet å starte enigmine.\nSend melding ukryptert? -composeSpecifyEmail=Vennligst spesifiser primær epostadresse, som vil bli brukt til å velge en signeringsnøkkel for utgående meldinger.\n Om blank vil FRA-adressen til meldingen bli brukt til å bestemme nøkkel. -sendingHiddenRcpt=Denne meldingen har BCC (blindkopi)-mottakere. Hvis meldingen krypteres er det mulig å skjule BCC-mottakere, men noen programmer (fra bla. PGP Corp.) vil ikke kunne dekryptere meldingen. På grunn av dette anbefaler vi å ikke bruke BCC-mottakere i krypterte meldinger. -sendWithHiddenBcc=Skjul BCC-mottakere -sendWithShownBcc=Krypter på normal måte -sendingNews=Kryptert sendingsoperasjon avbrutt.\n\nDenne meldingen kunne ikke sendes fordi der er meldingsgruppe-mottagere. -sendToNewsWarning=Advarsel: du er i ferd med å sende en kryptert epost til en nyhetsgruppe. \n \nDette er ikke anbefalt siden det kun gir mening om alle medlemmene av gruppen kan dekryptere meldingen, dvs. at meldingen må krypteres med nøklene til samtlige gruppemedlemmer. Vennligst send meldingen kun hvis du vet nøyaktig hva du gjør. \n \nFortsett? -hasHTML=HTML meldingsvarsel:\nDenne meldingen kan inneholde HTML, som kan forårsake signering/kryptering til å feile. Deaktiver HTML-meldinger om du ønsker å benytte denne funksjonen. -strippingHTML=Meldingen inneholder HTML-informasjon som vil bli tapt under konvertering til enkel tekst. Ønsker du å fortsette? -msgCompose.button.sendAnyway=&Send melding uansett -attachWarning=Vedlegg til denne meldingen er ikke lagret lokalt, og kan ikke bli kryptert. Om du ønsker å kryptere vedleggene, lagre dem lokalt og legg dem ved. Ønsker du likevel å fortsette? quotedPrintableWarn=Du har aktivert 'quoted-printable' koding for sending av meldinger. dette kan resultare i ukorrekt kryptering og/eller verifisering av meldingen.\n Ønsker du å skru av 'quoted-printable' nå? -minimalLineWrapping=Du har angitt at tekstlinjer skal brytes ved %S tegn. For korrept kryptering og/eller signering må denne verdien være minst 68. \nVil du endre tekstbryting til 68 tegn? warning=Advarsel -signIconClicked=Du har manuelt modifisert signering. Derfor vil ikke (de)aktivering av signering avhenge av (de)aktivering av kryptering. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Feil under lagring av utkast -msgCompose.partiallyEncrypted.short=Pass deg for å lekke sensitiv informasjon - i særdeleshet kryptert e-post. -msgCompose.partiallyEncrypted.inlinePGP=Meldingen du svarer på inneholdt både ukrypterte og krypterte deler. Hvis senderen ikke kunne dekryptere noen deler av meldingen opprinnelig, kan det hende du lekker konfidensiell informasjon om at senderen ikke opprinnelig kunne dekryptere selv.\n\nOvervei å fjerne all sitert tekst fra ditt svar til denne avsenderen. - -msgCompose.internalEncryptionError=Intern feil: avtalt kryptering deaktivert -msgCompose.internalError=Det har oppstått en intern feil. - -msgCompose.toolbarTxt.signAndEncrypt=Meldingen vil bli signert og kryptert -msgCompose.toolbarTxt.signOnly=Meldigen vil bli signert -msgCompose.toolbarTxt.encryptOnly=Meldigen vil bli kryptert -msgCompose.toolbarTxt.noEncryption=Meldingen vil ikke bli signert eller kryptert -msgCompose.toolbarTxt.disabled=Enigmail er deaktivert for den valgte identiteten -msgCompose.protectSubject.tooltip=Beskytt meldingsemnet -msgCompose.noSubjectProtection.tooltip=Ikke beskytt meldingsemnet -msgCompose.protectSubject.dialogTitle=Skru på beskyttelse av emnet? -msgCompose.protectSubject.question=Vanlige krypterte e-poster inneholder det uredigerte emnet.\n\nVi har etablert en standard for skjuling av det opprinnelige emnet i den krypterte meldingen\nog erstatte det med en lure-tekst, slik at det egentlige emnet kun er synlig etter at e-posten er dekryptert.\n\nØnsker du å beskytte emnet i krypterte meldinger? -msgCompose.protectSubject.yesButton=&Beskytt emne -msgCompose.protectSubject.noButton=&Levn emne ubeskyttet - -msgCompose.detailsButton.label=Detaljer ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Ukjent -msgCompose.pepSendUnsecure=Usikker -msgCompose.pepSendSecure=Sikker -msgCompose.pepSendTrusted=Sikker og betrodd - -pep.alert.disabledForIdentity=p≡p er avskrudd for nåværende identitet. Skru på p≡p via Enigmail/p≡p-innstillingene. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Sendingsoperasjon.\n\n - -# details: keyNotTrusted=Ikke høyt nok tillitsnivå for nøkkel '%S' -keyNotFound=Nøkkel '%S' ble ikke funnet -keyRevoked=Nøkkel '%S' trukket tilbake -keyExpired=Nøkkel '%S' utgått på dato - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=SIGNERT -statEncrypted=KRYPTERT -statPlain=REN TEKST - -offlineSave=Lagre %S melding til %S mappe for usendte elementer? - -onlineSend=Send %S melding til %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Send melding ukryptert -recipientsSelectionHdr=Velg mottakere for kryptering - -configureNow=Du har enda ikke satt opp Enigmail-sikkerhet (Engimail) for denne identiteten. Ønsker du å gjøre dette nå? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Krypter melding (auto) -encryptMessageNorm=Krypter melding -signMessageAuto=Signert melding (auto) -signMessageNorm=Signer melding - -encryptOff=Kryptering: AV -encryptOnWithReason=Kryptering: PÅ (%S) -encryptOffWithReason=Kryptering: AV (%S) -encryptOn=Kryptering: PÅ -signOn=Signering: PÅ -signOff=Signering: AV -signOnWithReason=Signering: AV (%S) -signOffWithReason=Signering: AV (%S) -reasonEnabledByDefault=påslått som standard -reasonManuallyForced=manuelt tvunget -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=tvunget av automatisk kryptering -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=på grunn av krypteringsmodus - -# should not be used anymore: -encryptYes=Melding vil bli kryptert -encryptNo=Melding vil ikke bli kryptert - -# should not be used anymore: -signYes=Melding vil bli signert -signNo=Melding vil ikke bli signert - - -# PGP/MIME status: -pgpmimeNormal=Protokoll: PGP/MIME -inlinePGPNormal=Protokoll: Inline PGP -smimeNormal=Protokoll: S/MIME -pgpmimeAuto=Protokoll: PGP/MIME (auto) -inlinePGPAuto=Protokoll: Inline PGP (auto) -smimeAuto=Protokoll: S/MIME (automatisk) - -# should not be used anymore -pgpmimeYes=PGP/MIME vil bli benyttet -pgpmimeNo=Inline PGP vil bli benyttet - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Konflikt i mottakerrelaterte regler:\n%S\n\nSend melding med desse instillingene? -msgCompose.button.configure=&Sett opp -msgCompose.button.send=&Send melding -msgCompose.button.save=&Lagre melding - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Offentlig nøkkel %S trengs for å verifisere melding -keyUsed=Offentlig nøkkel %S ble brukt for å verifisere signatur -clickDecrypt=; klikk Dekrypter-knappen -clickDecryptRetry=; klikk på dekrypter-knappen for å prøve igjen -clickDetailsButton=; klikk på detaljer-knappen for mer informasjon -clickImportButton=; klikk på importer nøkkel-knappen for å lasted ned nøkkelen -keyTypeUnsupported=; nøkkeltypen er ikke støttet av din versjon av GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Dekrypter -msgPart=Del av meldingen %S -msgSigned=signert -msgSignedUnkownKey=signert med ukjent nøkkel -msgEncrypted=kryptert -msgSignedAndEnc=signert og kryptert - unverifiedSig=Ikke-verifisert signatur -incompleteDecrypt=Dekryptering ukomplett -needKey=Feil - privat nøkkel trengs til å dekryptere -failedDecrypt=Feil - Dekryptering feilet badPhrase=Feil - Feil passfrase # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Feil - Dekryptering / Verifisering feilet -viewInfo=; Vis -> Meldings sikkerhetsinfo for detaljer -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Dekryptert melding -decryptedMsgWithFormatError=Dekryptert melding (reparert misformet PGP epostformat sannsynligvis pga en gammel MS Exchange-tjener. Resultatet kan være vanskelig å lese) - -usedAlgorithms=Benyttede algoritmer: %S og %S -pepStatusInfo.text=p≡p-meldingsstatus -pepStatusInfo.title.m3=Under angrep -pepStatusInfo.info.m3=Denne meldingen er ikke sikker, og har blitt tuklet med. -pepStatusInfo.title.m1=Mistrodd -pepStatusInfo.info.m1=Denne meldingen har en samtalepartner som tidligere har blitt markert som mistrodd. -pepStatusInfo.title.r0=Ukjent -pepStatusInfo.info.r0=Denne meddelelsen inneholder ikke nok informasjon til å fastsette hvorvidt den er sikker. -pepStatusInfo.title.r1=Kan ikke dekryptere -pepStatusInfo.info.r1=Meldingen kan ikke dekrypteres fordi nøkkelen ikke er tilgjengelig. -pepStatusInfo.title.r2=Kan ikke dekryptere -pepStatusInfo.info.r2=Meldingen kan ikke dekrypteres fordi nøkkelen ikke er tilgjengelig. -pepStatusInfo.title.r3=Usikker -pepStatusInfo.info.r3=Denne meldingen er usikker. -pepStatusInfo.title.r4=Usikker for noen -pepStatusInfo.info.r4=Denne meldingen er usikret for noen samtalepartnere. -pepStatusInfo.title.r5=Upålitelig sikkerhet -pepStatusInfo.info.r5=Denne meldingen har upålitelig beskyttelse -pepStatusInfo.title.r6=Sikker… -pepStatusInfo.info.r6=Denne meldingen er sikker, men du må fremdeles bekrefte identiteten til din samtalepartner. -pepStatusInfo.title.r7=Sikker og betrodd -pepStatusInfo.info.r7=Denne meldingen er sikker og betrodd. - -pepStatusInfo.color.green=Grønn -pepStatusInfo.color.yellow=Gul -pepStatusInfo.color.red=Rød -pepRevokeTrust.question=Ønsker du virkelig å avbryte tillitsforholdet til %S? -pepRevokeMistrust.question=Ønsker du virkelig å stole på nøkkelen for %S igjen? -pepRevokeTrust.doRevoke=Avbryt %tillit - -wksConfirmationReq=Bekreftelsesforespørsel for nettnøkkelmappe -wksConfirmationReq.message=Denne meldingen har blitt sendt av din e-posttilbyder for å bekrefte utrullig av din offentligeOpenPGP-nøkkel\ni deres nettnøkkelmappe.\nÅ tilby din offentlige nøkkel slik hjelper andre å oppdage din nøkkel, og på den måten kan de kryptere meldinger til deg.\n\nHvis du ønsker å rulle ut din nøkkel i nettnøkkelmappen nå, klikk på "Bekreft forespørsel" i statusfeltet.\nEllers kan du se bort fra denne meldingen. -wksConfirmationReq.button.label=Bekreft forespørsel - -autocryptSetupReq=Utfør Autocrypt-oppsett -autocryptSetupReq.button.label=Start oppsett -autocryptSetupReq.setupMsg.desc=Denne meldingen inneholder all informasjon for sikker overføring av dine Autocrypt-innstillinger, sammen med din hemmelige nøkkel fra din opprinnelige enhet. -autocryptSetupReq.setupMsg.backup=Du kan beholde denne meldingen og bruke den som sikkerhetskopi for din hemmelige nøkkel. Hvis du ønsker å gjøre det, burde du skrive ned passordet og lagre det sikkert. -autocryptSetupReq.message.import=For å importere innstillingene og nøkkel/nøkler i Enigmail, klikk på "Start oppsett" i statusfeltet. -autocryptSetupReq.message.sent=Klikk på meldingen på din nye enhet og følg instruksjonene for å importere innstillingene. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Igangsetting av Enigmail mislyktes.\n\nDu bruker GnuPG-versjon %1$S, som ikke støttes lenger. Enigmail krever GnuPG-versjon %2$S eller nyere. Oppgrader din GnuPG-installasjon for at Enigmail skal virke. -locateGpg=Lokaliser GnuPG-programmet -invalidGpgPath=GnuPG kan ikke kjøre fra banen som ble spesifisert. Enigmail er derfor deaktivert intill du endrer banen til GnuPG, eller til du starter programmet på nytt. -warningsAreReset=Alle advarsler har blitt nullstilt. -prefs.gpgFound=GnuPG ble funnet i %S -prefs.gpgNotFound=Kunne ikke finne GnuPG -prefs.warnAskNever=Advarsel: ved å aktivere dette valget resulterer det i en ukryptert melding uten noe videre informasjon om nøkkel ikke finnes for en av mottagerene -- Enigmail vil ikke informere deg om dette skjer! -prefs.warnIdleTimeForUnknownAgent=Kan ikke kople til gpg-agent. Dette kan skje om systemet ditt bruker et eget verktøy for passfrasehåndtering (f.eks. gnome-keyring, seahore-agent, KDE wallet manager,...) Dessverre kan ikke Enigmail kontrollere passfrasetimeout for verktøyet du bruker. Innstillinger for dette i Enigmail vil derfor ignoreres. -prefEnigmail.oneKeyserverOnly=Feil - du kan kun angi én nøkkeltjener for automatisk nedlasting av manglende OpenPGP-nøkler. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail er fri programvare, under Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Skriv inn ADMIN PIN til ditt smartkort -enterCardPin=Skriv inn din smartkort PIN - -notInit=Feil - Enigmail-tjenesten er ikke startet badCommand=Feil - krypteringskommando feilet cmdLine=kommandolinje og resultat: -notRequired=Feil - ingen kryptering er nødvendig -notComplete=Feil - nøkkelgenerering har ikke fullført -invalidEmail=Feil - ugyldig(e) epostadresse(r) noPassphrase=Feil - ingen passfrase er oppgitt noPGPblock=Feil - Ingen beskyttet OpenPGP data blokk er funnet -unverifiedReply=Innrykket meldingsdel (svar) er antageligvis endret -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Feil - Signaturen stemmer ikke overens -# cantImport=Error importing public key\n\n -doImportOne=Importer %1$S (%2$S)? -doImportMultiple=Importer følgende nøkeler? %S -previewFailed=Kan ikke lese offentlig nøkkel-fil. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Smartkortet %1$S i leseren kan ikke brukes for å behandle meldingen. \nVennligst sett i smartkort %S og gjenta operasjonen. sc.insertCard=Denne operasjonen er avhengig av smartkortet %S. \nVennligst sett smartkoret i leseren og gjenta operasjonen. sc.removeCard=Denne operasjonen krever at det ikke er noe smartkort i leseren. Vennligst fjern smartkortet fra leseren og gjenta operasjonen. @@ -376,7 +39,6 @@ sc.noReaderAvailable=SmartCard-leseren ble ikke funnet.\n Vennligst kobl til leseren. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Velg en gyldig nøkkel i OpenPGP-delen av kontoinnstillingene dine. missingPassphrase=Manglende passfrase errorHandling.gpgAgentInvalid=Systemet ditt bruker en versjon av gpg-agent som ikke passer sammen med GnuPG-versjonen din. errorHandling.gpgAgentError=GnuPG rapporterte en feil i kommunikasjonen med gpg-agent (en komponent i GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG kan ikke be om passfrasen din via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Dette er en førstegangsveiviser- eller oppsettsfeil som hindrer Enigmail i å fungere normalt, og som ikke kan rettes automatisk. \n \nVi anbefaler sterkt at du konsulterer supportnettsiden vår på https://enigmail.net/faq. - gpgNotFound=Klarte ikke å finne GnuPG-programmet '%S'\nKontroller banen. gpgNotInPath=Kunne ikke finne GnuPG i PATH-variablen.\nKontroller at banen stemmer i Enigmail instillingene. enigmailNotAvailable=Sentral Enigmail-tjeneste ikke tilgjengelig - -prefGood=God signatur fra %S -prefBad=Dårlig signatur fra %S - failCancel=Feil - Nøkkelhenting avbrutt av bruker failKeyExtract=Feil - Nøkkelutentings-kommando feilet -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Feil - Første OpenPGP blokk tilhører ikke en offentlig nøkkel importKeyConfirm=Importer offentlige nøkler fra meldignen? -failKeyImport=Feil - nøkkelimportering feilet fileWriteFailed=Klarte ikke å skrive til filen %S - importKey=Importer offentlig nøkkel %S fra nøkkeltjener: uploadKey=Send offentlig nøkkel %S til nøkkeltjener: keyId=NøkkelID -keyAndSigDate=NøkkelID: 0x%S / Signert den: %S -keyFpr=Fingeravtrykk: %S -noEmailProvided=Du oppgav ikke en epostadresse -keyAlreadySigned=Denne nøkkelen har allerede blitt signert, du kan ikke signere den flere ganger - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=utløpt %S createdHeader=Laget atLeastOneKey=Ingen nøkkel valgt! Du må velge minst en nøkkel for å kunne akseptere denne dialogen fewerKeysThanRecipients=Du har valgt færre nøkler enn mottakere. Er du sikker på at lista med nøkler du vil kryptere til er komplett? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Velg en OpenPGP privatnøkkel for å signere meldingene dine userSel.problemNoKey=Ingen gyldig nøkkel userSel.problemMultipleKeys=Flere nøkler -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Send senere - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=Merk: PGP/MIME støttes ikke av alle e-postklienter. Hvis du er usikker, velg %S-valget. first=første second=andre - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Velg OpenPGP-nøkkel til kryptering -identityName=Identitet: %S -switchPepMode=Du bruker nå 'p≡p-juniormoduset' i Enigmail.\n\nVed å skru på OpenPGP eller S/MIME for en konto, skrur du av p≡p og bruker 'vanlig'-modus i Enigmail, uten p≡p. -enableEnigmail=&Skru av p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Du har aktivert kryptering, men ikke valgt en nøkkel. For å kunne kryptere eposter sendt til %S må du velge en eller flere nøkler å kryptere til. Ønsker du å deaktivere kryptering til: %S? -noKeyToUse=(ingen - ingen kryptering) -noEmptyRule=Denne regelen kan ikke være tom! vennligst sett en epostadresse i regelfeletet. -invalidAddress=Epostadressen(e) du har skrevet er ikke gyldige. Du skal ikke skrive navnet på mottakeren, bare epostadressen. For eksempel:\nUgyldig: Some Name \nGyldig: some.name@address.net -noCurlyBrackets=Krøllparantesene {} har en spesiell betydning, og kan ikke brukes i e-postadresser. Om du ønsker å endre filteroppførselen for denne regelen, bruk 'Gjør regelen gjeldende om mottaker…' , mer info finnes i "Hjelp"-menyen. - -# Strings used in enigmailRulesEditor.js never=Aldri always=Alltid possible=Mulig -deleteRule=Virkelig slette den valgte regel? -nextRcpt=(neste mottaker) -negateRule=Ikke -addKeyToRule=Legg nøkkelen %1$S (%2$S) til per mottaker-regel - -# Strings used in enigmailSearchKey.js -needOnline=Funksjonen du har valg er ikke tilgjengelig i frakoblet modus. Venngligst kobl til og prøv igjen. -noKeyserverConn=Kunne ikke koble til nøkkeltjener på %S. -internalError=En intern feil oppstod. Nøklene kunne ikke bli lastet ned eller importert. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nøkkelpålitelighet kunne ikke bli satt - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Nøkkelsignering feilet -alreadySigned.label=Merk: nøkkelen %S er allerede singert med den valgte privatnøkkelen. -alreadySignedexportable.label=Merk: nøkkelen %S er allerede signert som eksporterbar med den valgte privatnøkkelen. En lokal signatur gir ikke mening. -partlySigned.label=Merk: noen bruker-IDer til nøkkelen %S er allerede signert med den valgte privatnøkkelen -noTrustedOwnKeys=Ingen kvalifisert nøkkel funnet for signering! Du trenger minst én fullt tiltrodd privatnøkkel for å signere nøkler. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Laster inn nøkler, vennligst vent... keyValid.unknown=ukjent keyValid.invalid=ugyldig keyValid.disabled=deaktivert keyValid.revoked=trukket keyValid.expired=utløpt keyValid.noSubkey=ingen gyldig undernøkkel - -keyTrust.untrusted=ikke til å stole på +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=marginal keyTrust.full=stolt på keyTrust.ultimate=fullstendig keyTrust.group=(gruppe) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Aktiver nøkkel -keyMan.disableKey=Deaktiver nøkkel userAtt.photo=brukerattributt (JPEG bilde) - -asciiArmorFile=ASCII armored-filer (*.asc) importKeyFile=Importer OpenPGP nøkkelfil -gnupgFile=GnuPG Filer -saveRevokeCertAs=Lag og lagre tilbaketrekkingssertifikat -revokeCertOK=Tilbaketrekkingssertifikatetet har blitt laget. Du kan bruke det til å gjøre din offentlige nøkkel ubrukelig, f.eks. hvis du skulle miste din hemmelige nøkkel. -revokeCertFailed=Tilbaketrekkingssertifikatet kunne ikke lages. - -addUidOK=BrukerID lagt til vellykket. -addUidFailed=Kunne ikke legge til BrukerID. -noKeySelected=Du må velge minst en nøkkel å foreta operasjonen på. -exportToFile=Eksporter offentlig nøkkel til fil -exportKeypairToFile=Eksporter privat og offentlig nøkkel til fil -exportSecretKey=Ønsker du å inkludere den private nøkkelen i den lagrede OpenPGP-filen? -saveKeysOK=Nøklene ble lagret vellykket -saveKeysFailed=Kunne ikke lagre nøklene -importKeysFailed=Importering av nøkler feilet -enableKeyFailed=Aktivering/Deaktivering av nøkler feilet -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Eksporter offentlige nøkler -defaultPubSecKeyFilename=Eksporter offentlige og private nøkler - -sendKeysOk=Nøkler sendt vellykket -sendKeysFailed=Sending av nøkler feilet -receiveKeysOk=Nøkler oppdatert vellykket -receiveKeysFailed=Nedlasting av nøkler feilet -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Ønsker du å importere noen nøkler fra utklippstavlen? -importFromUrl=Last ned offentlig nøkkel fra denne URLen: -copyToClipbrdFailed=Kunne ikke kopiere de valgte nøkler til utklippstavlen -copyToClipbrdOK=Valgte nøkler kopiert til utklippstavle - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=Advarsel: Du er i gang med å slette en privat nøkkel!\nOm du sletter en privat nøkkel, vil du ikke klare å dekryptere meldinger som er kryptert med den offentlige nøkkelen\n\nØnsker du virkelig å både slette den private og den offentlige nøkkelen?\n'%S'? -deletePubKey=Ønsker du å slette den offentlige nøkkelen\n'%S'? -deleteSelectedPubKey=Ønsker du å slette de offentlige nøklene? -deleteKeyFailed=Nøkkelen kunne ikke bli slettet revokeKeyQuestion=Du er i ferd med å trekke tilbake nøkkel '%S'. \n \nDu vil ikke lenger kunne signere med denne nøkkelen, og når tilbaketrekkingen er distribuert vil andre ikke lenger kunne kryptere til denne nøkkelen. Du kan fortsatt bruke nøkkelen for å dekryptere gamle meldinger. \n \nVil du fortsette? -revokeKeyOk=Nøkkelen har blitt trukket tilbake. Om nøkkelen er tilgjengelig på en nøkkeltjener er det annbefalt å laste den opp igjen så andre kan se at den er trukket tilbake. -revokeKeyFailed=Nøkkelen kunne ikke bli trukket tilbake # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=Nøkkelen 0x%S har allerede blitt tilbakekalt. -refreshAllQuestion=Du valgte ikke noen nøkkel, nøsker du å oppdatere alle? -refreshKeyServiceOn.warn=Advarsel: Nøklene dine blir gjenoppfrisket i bakgrunnen så sikkert som mulig.\nÅ gjenoppfriske alle nøklene samtidig vil avsløre informasjon om deg i unøde.\nØnsker du virkelig å gjøre dette? -refreshKey.warn=Warning: Avhengig av antall nøkler og båndbredde kan det ta lang tid å oppdatere alle nøkler. Ønsker du å fortsette? -downloadContactsKeys.warn=Advarsel: avhengig av antall kontakter og tilkoplingshastighet kan det ta lang tid å laste ned alle nøklene! -downloadContactsKeys.importFrom=Importer kontakter fra adressebok '%S'? -keyMan.button.exportSecKey=&Export Secret Keys -keyMan.button.exportPubKey=Eksporter kun &Offentlige nøkler keyMan.button.import=&Importer -keyMan.button.refreshAll=&&Oppdater alle nøkler keyMan.button.revokeKey=&&Trekk tilbake nøkkel - -keylist.noOtherUids=Har ingen andre identiteter -keylist.hasOtherUids=Også kjent som -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Velg bilde å legge til -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Den valgte filen virker ikke å være en JPEG-fil. Vennligst velg en annen fil. -keyMan.addphoto.failed=Kunne ikke legge til bildet -noWksIdentity=Nøkkelen %S har ikke en WKS-identitet. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=&Svartelist nøkkelen -keyman.removeBlacklistKey.button=&Fjern nøkkel fra svarteliste - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Feilet å endre den primære BrukerID-en -changePrimUidOK=Primær BrukerID endret vellykket. -revokeUidFailed=Tilbaketrekking av BrukerID %S feilet -revokeUidOK=BrukerID %S har blitt trukket tilbake, om nøkkelen er tilgjengelig på en nøkkeltjener bør du laste den opp igjen. -revokeUidQuestion=Ønsker du virkelig å trekke tilbake BrukerID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Suksess! Nøkler importert -importInfoBits=Biter -importInfoCreated=Laget -importInfoFpr=Fingeravtrykk -importInfoDetails=(Detaljer) -importInfoNoKeys=Ingen nøkler importert. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=offentlig nøkkel -keyTypePrimary=Primærnøkkel -keyTypeSubkey=undernøkkel -keyTypePair=nøkkelpar -keyExpiryNever=aldri keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Krypter -keyUsageSign=Signer -keyUsageCertify=Sertifiser -keyUsageAuthentication=Autentisering -keyDoesNotExpire=Nøkkel utløper ikke - -# Strings in enigmailGenCardKey.xul -keygen.started=Vennligst vent mens nøkkel blir generert .... -keygen.completed=Nøkkelen har blitt generert. Den nye NøkkelID er: 0x%S -keygen.keyBackup=Backup av nøkkel er lagret som %S -keygen.passRequired=Vennligst spesifiser en passfrase om du ønsker å lagre en backup utenfor smartkortet ditt. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Klarte ikke å endre PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Oppdaterer nøkler, vennligst vent ... -keyserverProgress.uploading=Laster opp nøkler, vennligst vent... -keyserverProgress.wksUploadFailed=Kunne ikke late opp nøkkelen din til nettnøkkeltjenesten -keyserverProgress.wksUploadCompleted=Din offentlige nøkkel ble sendt til din tilbyder. Du vil motta en e-post for å bekrefte at du igangsatte opplastingen. -keyserverTitle.refreshing=Oppdater nøkler -keyserverTitle.uploading=Nøkkelopplasting -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Filen du anga er ikke GnuPG-programmet. Vennligst oppig en annen fil. -setupWizard.installFailed=Det virker som om installasjonen ikke gikk bra. Prøv igjen eller installer GnuPG manuelt og angi plassering med Bla igjennom-knappen. -setupWizard.downloadForbidden=For din egen sikkerhet laster vi ikke ned GnuPG automatisk. Besøk https://gnupg.org/ for å laste det ned. -setupWizard.downloadImpossible=Kan ikke laste ned GnuPG akkurat nå. Prøv igjen senere, eller besøk https://gnupg.org/ for å laste det ned. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Angi fil å hente sikkerhetskopi fra -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Oppsettsfil for GnuPG finnes allerede. Vil du overskrive den med versjonen fra din gamle installasjon? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -setupWizard.unmachtedIds=Følgende identiteter for ditt gamle oppsett kunne ikke jamføres:\n%S\nInnstillingene for disse identitetene ble hoppet over. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Det oppsto en feil under nedlasting av GnuPG. Sjekk konsolloggen for flere detaljer. -installGnuPG.installFailed=Det oppsto en feil under installasjon av GnuPG. Sjekk konsolloggen for flere detaljer. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Du må angi et navn og en e-postadresse -addUidDlg.nameMinLengthError=Navnet må innholdet minst fem tegn -addUidDlg.invalidEmailError=Du må angi en gyldig e-postadresse - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP-smartkort støtter kun ASCII-tegn i Fornavn/Navn. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Sikkerhetssertifikatet til webtjenesten er ikke gyldig errorType.SecurityProtocol=Sikkerhetsprotokollen brukt av webtjenesten er ikke kjent errorType.Network=En nettverksfeil har oppstått - -# filter stuff -filter.folderRequired=Du må velge en målkatalog -filter.decryptMove.label=Dekrypter permanent (Enigmail) -filter.decryptCopy.label=Lag dekryptert kopi (Enigmail) -filter.decryptMove.warnExperimental=Advarsel - filtreringshandlingen "Dekrypter permanent" kan føre til ødelagte meldinger. \n \nVi anbefaler på det sterkeste at du først prøver "Lag dekryptert kopi"-filteret, tester resultatet nøye, og at du ikke benytter "Dekryptert permanent" før du er fornøyd med resultatet av testingen. -filter.tempPepFilterDesc=Midlertidig filter for å lagre sendt melding ukryptert -filter.term.pgpencrypted.label=OpenPGP-kryptert -filter.encrypt.label=Krypter til nøkkel (Enigmail) -filter.keyRequired=Du må velge en mottagernøkkel. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Lagre loggfil - -# strings in gpg.jsm -unknownSigningAlg=Ukjent signeringsalgoritme (ID: %S) -unknownHashAlg=Ukjent kryptografisk hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Bilde keyRing.pubKeyRevoked=Nøkkelen %1$S (nøkkel-ID %2$S) er trukket tilbake. keyRing.pubKeyExpired=Nøkkelen %1$S (nøkkel-ID %2$S) er utløpt. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Alle undernøkler for kryptering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er utløpt. keyRing.noSecretKey=Det virker ikke som du har privatnøkkelen til %1$S (nøkkel-ID %2$S) i nøkkelringen din. Du kan derfor ikke benytte denne nøkkelen for signering. keyRing.encSubKeysUnusable=Alle undernøkler for kryptering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er tilbakekalt, har løpt ut eller er av andre grunner ikke mulige å bruke. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Kan ikke lagre til filen '%S'. Angi en annen fil. dataExportError=En feil oppsto under eksport av dataene dine. -enigmailSettings=Enigmail-innstillinger -defaultBackupFileName=Enigmail-eksport -specifyExportFile=Angi filnavn for eksport -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Åpne Enigmail-nøkkelbehandling expiry.OpenKeyProperties=Åpne nøkkelegenskaper - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Dette er en kryptert melding. Desverre har du ikke den hemmelige nøkkelen for dekryptering av meldingen. - -#strings in gpgAgent.jsm gpghomedir.notexists=Mappen "%S" som inneholder dine OpenPGP-nøkler, finnes ikke og kan ikke opprettes. gpghomedir.notwritable=Mappen "%S" som inneholder dine OpenPGP-nøkler er ikke skrivbar. gpghomedir.notdirectory=Mappen "%S" som inneholder dine OpenPGP-nøkler er en fil istedenfor en mappe. gpghomedir.notusable=Ordne mappetilganger eller endre plasseringen for "hjem"-mappen for din GnuPG-mappe. GnuPG trenger dette for å fungere. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Kan ikke bekrefte p≡p-tillitsord for egen konto. -pepTrustWords.cannotFindKey=Kan ikke finne nøkkel for %S. -pepTrustWords.cannotStoreChange=Kunne ikke endre tillit for %S. -pepTrustWords.generalFailure=Kan ikke hente tillitsord for %S. -pepTrustWords.partnerFingerprint=Fingeravtrykk for %S. - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Din e-posttilbyder behandlet din forespørsel om å laste opp din offentlige nøkkel til OpenPGP-nettnøkkelmappen.\n\nKlikk på bekreftelsesknappen i Enigmail-hodet for å fullføre offentliggjøring av din offentlige nøkkel. -wkdMessage.body.process=Dette er en e-post som har med automatisk behandling for å laste opp din offentlige nøkkel til OpenPGP-nettnøkkelmappen å gjøre.\n\nDu trenger ikke å gjøre noe manuelt. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Enten du eller avsenderen må sende meldingen på nytt -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Hvis du skrev denne meldingen, er ikke nøkkelen din tilgjengelig. -pepPrivacyStatus.RatingMistrustSuggestion=Gjenopprett tilkoblingen med din samtalepartner og prøv å fullføre et nytt handtrykk. -pepPrivacyStatus.RatingReliableSuggestion=Sluttfør et håndtrykk med din samtalepartner ved å utveksle tillitsord på tomannshånd eller over telefon. Et håndtrykk trengs én gang per partner, og vil sikre at kommunikasjonen er sikker og betrodd. -pepPrivacyStatus.RatingTrustedSuggestion=Ingen handling nødvendig! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Legg til nødvendig informasjon. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -pepPrivacyStatus.RatingUnencryptedSuggestion=Spør din kommunikasjonspartner om å bruke en krypteringsløsning eller installere p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Meldingen har knekt kryptering eller formatering. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Meldingen kan ikke dekrypteres fordi nøkkelen ikke er tilgjengelig. -pepPrivacyStatus.RatingMistrustExplanation=Denne meldingen har en samtalepartner som tidligere har blitt markert som mistrodd. -pepPrivacyStatus.RatingReliableExplanation=Denne meldingen er sikker, men du må fremdeles bekrefte identiteten til din samtalepartner. -pepPrivacyStatus.RatingTrustedExplanation=Denne meldingen er sikker og betrodd. -pepPrivacyStatus.RatingUndefinedExplanation=Denne meddelelsen inneholder ikke nok informasjon til å fastsette hvorvidt den er sikker. -pepPrivacyStatus.RatingUnderAttackExplanation=Denne meldingen er ikke sikker, og har blitt tuklet med. -pepPrivacyStatus.RatingUnencryptedExplanation=Denne meldingen er usikker. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Denne meldingen er usikret for noen samtalepartnere. -pepPrivacyStatus.RatingUnreliableExplanation=Denne meldingen har upålitelig beskyttelse - -pepPrivacyStatus.RatingBrokenText=Knekt -pepPrivacyStatus.RatingHaveNoKeyText=Kan ikke dekryptere -pepPrivacyStatus.RatingMistrustText=Mistrodd -pepPrivacyStatus.RatingReliableText=Sikker -pepPrivacyStatus.RatingTrustedText=Sikker og betrodd -pepPrivacyStatus.RatingUndefinedText=Ukjent -pepPrivacyStatus.RatingUnderAttackText=Under angrep -pepPrivacyStatus.RatingUnencryptedForSomeText=Usikker for noen -pepPrivacyStatus.RatingUnencryptedText=Usikker -pepPrivacyStatus.RatingUnreliableText=Upålitelig sikkerhet - -handshakeDlg.button.initHandshake=Håndtrykk… -handshakeDlg.button.stopTrust=Stopp tiltro -handshakeDlg.button.reTrust=Fjern mistillit -handshakeDlg.label.outgoingMessage=Utgående melding -handshakeDlg.label.incomingMessage=Innkommende melding -handshakeDlg.error.noPeers=Kan ikke utføre håndtrykk uten korrespondenter. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt-oppsettsmelding -autocrypt.setupMsg.msgBody=For å sette opp din nye enhet til bruk med Autocrypt, følg instruksjonene som forhåpentligvis presenteres for deg av din nye enhet. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Hva er nytt i Enigmail v2.0? -upgradeInfo.welcome1=Velkommen til nye Enigmail, versjon 2.0! -upgradeInfo.welcome2=Utgivelsen inneholder mange nye og endrede funksjoner. Ta deg noen minutter for å lære hva som er nytt: -upgradeInfo.encSubject.title=Krypterer meldingsemnet -upgradeInfo.encSubject.desc=Vi utviklet en ny metode som flytter e-postemnet inn i den krypterte meldingen, og erstatter det synlige emnet med "Kryptert melding". Når en slik melding dekrypteres, blir det opprinnelige emnet erstattet automatisk. Skjuling av emnet er skrudd på som forvalg; det er en innstilling for å skru det av hvis du ikke liker det. (Merk: Denne funksjonen krever at meldingen sendes med PGP/MIME.) -upgradeInfo.buttons.title=Endret oppførsel for "Krypter" og "Signer"-knapper -upgradeInfo.buttons.desc=Krypter- og Signer -knappene i skrivevinduet fungerer nå for både OpenPGP- og S/MIME -protokollene. Hvis både algoritmene er mulige, vil Enigmail prøve å foretrekke én som har alle nøklene tilgjengelig. -upgradeInfo.autocrypt.title=Støtte for Autocrypt -upgradeInfo.autocrypt.desc=Enigmail støtter nå Autocrypt, en ny standard for å distribuere nøkler som del av sendte meldinger. Enigmail importerer automatisk nøkler meldinger av Autocrypt-standard, slik at at flere og flere e-poster kan krypteres ettersom tiden går. -upgradeInfo.pEp.title=Nytt p≡p-juniormodus (praktisk enkelt personvern) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Besøk dokumentasjonen for hjelp med bruk av Enigmail. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=For å kunne bruke Enigmail/p≡p, kreves GnuPG. Siden det ikke ble fannet, kan det lastes ned og installeres for deg. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Om Enigmail aboutEnigmail.title=OpenPGP-støtte skaffet til veie av Enigmail aboutEnigmail.team=Enigmail utvikles av Enigmail-laget: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Lisens og støtte aboutEnigmail.license=Enigmail OpenPGP er fri programvare, under %S aboutEnigmail.support=Støtte og nedlastinger tilgjengelig fra www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/nb/help/compose.html enigmail-2.2.4/lang/nb/help/compose.html --- enigmail-2.1.6+ds1/lang/nb/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/nb/help/editRcptRule.html enigmail-2.2.4/lang/nb/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/nb/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/nb/help/initError.html enigmail-2.2.4/lang/nb/help/initError.html --- enigmail-2.1.6+ds1/lang/nb/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/nb/help/messenger.html enigmail-2.2.4/lang/nb/help/messenger.html --- enigmail-2.1.6+ds1/lang/nb/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/nb/help/rulesEditor.html enigmail-2.2.4/lang/nb/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/nb/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/nb/help/sendingPrefs.html enigmail-2.2.4/lang/nb/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/nb/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nb/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/nl/am-enigprefs.properties enigmail-2.2.4/lang/nl/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/nl/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP-beveiliging +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/nl/enigmail.dtd enigmail-2.2.4/lang/nl/enigmail.dtd --- enigmail-2.1.6+ds1/lang/nl/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -’"> - - - - - - -’ gebruiken om e-mailadressen op te geven"> - - -’ om e-mailadressen voor GnuPG op te geven. Schakel dit uit als ontvangers oude Hushmail-sleutels hebben."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPMERKING: Het maken van een sleutel kan meerdere minuten duren. Sluit het programma niet af tijdens dit proces. Het helpt om tegelijkertijd websites te bezoeken of acties uit te voeren die de harde schijf intensief gebruiken. Dit zorgt ervoor dat het ‘willekeurbuffer’ gevuld blijft en dat het aanmaken van de sleutel sneller verloopt. Zodra de sleutel klaar is wordt een melding getoond."> - @@ -296,494 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -’ ongeldig"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LET OP: het genereren van een sleutel kan enkele minuten duren. Sluit het programma niet tijdens het aanmaken van de sleutel. U wordt gewaarschuwd zodra de sleutel is aangemaakt."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/nl/enigmail.properties enigmail-2.2.4/lang/nl/enigmail.properties --- enigmail-2.1.6+ds1/lang/nl/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Waarschuwing van Enigmail enigConfirm=Bevestiging van Enigmail -enigInfo=Enigmail-informatie -enigError=Fout van Enigmail +enigInfo=Informatie van Enigmail enigPrompt=Vraag van Enigmail - -dlgYes=&Ja dlgNo=&Nee dlgKeepSetting=Mijn antwoord onthouden en niet opnieuw vragen dlgNoPrompt=Dit dialoogvenster niet opnieuw tonen -dlg.button.delete=&Verwijderen dlg.button.cancel=&Annuleren dlg.button.close=&Sluiten dlg.button.continue=&Doorgaan -dlg.button.skip=&Overslaan -dlg.button.overwrite=&Overschrijven -dlg.button.view=&Bekijken -dlg.button.retry=&Opnieuw proberen -dlg.button.ignore=&Negeren -dlg.button.install=&Installeren dlg.button.ok=&OK - repeatPrefix=\n\nDeze waarschuwing zal zich %S repeatSuffixSingular=keer herhalen. repeatSuffixPlural=keer herhalen. noRepeat=\n\nDeze waarschuwing zal niet worden herhaald totdat u een upgrade van Enigmail uitvoert. - -pgpNotSupported=U gebruikt Enigmail samen met PGP 6.x\n\nJammer genoeg zijn er een aantal problemen met PGP 6.x waardoor Enigmail niet goed functioneert. 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, hebt u GnuPG nodig. Als u GnuPG nog niet hebt geïnstalleerd, kunt u op ‘Installatieassistent’ klikken. -initErr.setupWizard.button=&Installatieassistent passphraseCleared=De wachtwoordzin is gewist. cannotClearPassphrase=U gebruikt een niet-standaard hulpmiddel (zoals gnome-keyring) voor het afhandelen van wachtwoordzinnen. Het is daarom niet mogelijk om de wachtwoordzin vanuit Enigmail leeg te maken. -noPhotoAvailable=Geen foto beschikbaar -debugLog.title=Debuglogboek van Enigmail -error.photoPathNotReadable=Fotopad ‘%S’ is niet leesbaar - -generalError=Fout: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Deze nieuwe versie van Enigmail bevat significante wijzigingen omtrent de afhandeling van voorkeuren en opties. We hebben geprobeerd de oude instellingen in deze nieuwe versie over te nemen, maar kunnen dit niet in alle gevallen garanderen. Controleer voor de zekerheid nogmaals de nieuwe voorkeuren en opties. -enigmailCommon.checkPreferences=Voorkeuren controleren… -preferences.defaultToPgpMime=We hebben het standaard versleutelingsprotocol in Enigmail van Inline-PGP naar PGP/MIME gewijzigd. Het wordt aanbevolen deze standaardinstelling zo te laten.\n\nAls u toch standaard Inline-PGP wilt gebruiken, kunt u dit doen in de Accountinstellingen onder OpenPGP-beveiliging. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Huidige versie van Enigmail %S -enigmailPepVersion=Enigmail/p≡p-versie %S usingAgent=Uitvoerbaar bestand %2$S voor %1$S wordt voor versleuteling en ontcijfering gebruikt agentError=FOUT: geen toegang tot Enigmail-service! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Fout bij toegang tot Enigmail-service -onlyGPG=Sleutelgeneratie werkt alleen met GnuPG (niet met PGP)! - -keygenComplete=Sleutelgeneratie voltooid! Voor het ondertekenen zal identiteit <%S> worden gebruikt. -revokeCertRecommended=Het wordt ten zeerste aanbevolen een intrekkingscertificaat voor uw sleutel aan te maken. Dit certificaat kan worden gebruikt om uw sleutel ongeldig te maken, bijvoorbeeld als u uw geheime sleutel bent verloren of deze is gestolen. Wilt u nu een intrekkingscertificaat aanmaken? -keyMan.button.generateCert=Certificaat &aanmaken -genCompleteNoSign=Sleutelgeneratie voltooid! -genGoing=Sleutelgeneratie wordt al uitgevoerd! - -passNoMatch=Wachtwoordzinnen komen niet overeen; voer ze opnieuw in -passCheckBox=Vink dit aan als u geen wachtwoordzin voor deze sleutel wilt gebruiken -passUserName=Geef een gebruikersnaam op voor deze identiteit -keygen.missingUserName=Er is geen naam voor de gekozen account/identiteit opgegeven. Geef in het veld ‘Uw naam’ in de Accountinstellingen een waarde in. -keygen.passCharProblem=U gebruikt bijzondere tekens in uw wachtwoordzin. Helaas kan dit problemen veroorzaken met andere programma’s. Het is raadzaam een wachtwoordzin te kiezen die uitsluitend de volgende tekens bevat:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Om technische redenen is het niet mogelijk dat uw wachtwoordzin met een spatie begint of op een spatie eindigt. -changePassFailed=Wijzigen van wachtwoordzin mislukt. - -keyConfirm=Publieke en geheime sleutel voor ‘%S’ aanmaken? -keyMan.button.generateKey=&Geheime sleutel aanmaken -keyAbort=Aanmaken sleutel afbreken? -keyMan.button.generateKeyAbort=&Aanmaken van sleutel afbreken -keyMan.button.generateKeyContinue=&Doorgaan met aanmaken van sleutel -expiryTooLong=Het is niet mogelijk om een sleutel te maken die over meer dan 100 jaar vervalt. -expiryTooLongShorter=Het is niet mogelijk om een sleutel te maken die over meer dan 90 jaar vervalt. -expiryTooShort=Uw sleutel moet minstens één dag geldig zijn. -keyGenFailed=Het aanmaken van de sleutel is mislukt. Bekijk de console van Enigmail voor details (Menu Enigmail > Enigmail debuggen). -setKeyExpirationDateFailed=De vervaldatum kon niet worden gewijzigd - -# Strings in enigmailMessengerOverlay.js -securityInfo=Beveiligingsinformatie van Enigmail\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *bijlagen bij dit bericht zijn niet ondertekend of versleuteld*\n\n -possiblyPgpMime=Mogelijk met PGP/MIME versleuteld of ondertekend bericht; klik op de knop Ontcijferen om te verifiëren - -saveAttachmentHeader=Enigmail: ontcijferde bijlage opslaan -noTempDir=Kon geen tijdelijke map vinden om naar te schrijven\nStel de omgevingsvariabele TEMP in -attachmentPgpKey=De bijlage ‘%S’ die u wilt openen lijkt een OpenPGP-sleutelbestand te zijn.\n\nKlik op ‘Importeren’ om de ingesloten sleutels te importeren, of klik op ‘Bekijken’ om de inhoud van het bestand te bekijken in een browservenster - -beginPgpPart=********* *BEGIN VAN VERSLEUTELD of ONDERTEKEND DEEL* ********* -endPgpPart=********** *EINDE VAN VERSLEUTELD of ONDERTEKEND DEEL* ********** -notePartEncrypted=Enigmail: *delen van het bericht zijn NIET ondertekend of versleuteld* -noteCutMessage=Enigmail: *Meerdere berichtblokken gevonden - ontcijferen/verifiëren afgebroken* - -decryptOkNoSig=Waarschuwing\n\nOntcijfering is gelukt, maar de ondertekening kon niet juist worden geverifieerd -msgOvl.button.contAnyway=&Toch doorgaan -signature.verifiedOK=De ondertekening voor bijlage %S is met succes geverifieerd -signature.verifyFailed=De ondertekening voor bijlage %S kon niet worden geverifieerd -attachment.noMatchToSignature=Kon bijlage ‘%S’ niet aan een ondertekeningsbestand koppelen -attachment.noMatchFromSignature=Kon ondertekeningsbestand ‘%S’ niet aan een bijlage koppelen -fixBrokenExchangeMsg.failed=Berichtreparatie mislukt. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Deze sleutel is niet aan een van uw e-mailaccounts verbonden. Voeg een account voor tenminste een van de volgende e-mailadressen toe:\n\n%S -wksConfirmSuccess=Bevestigings-e-mail verzonden. -wksConfirmFailure=Het versturen van de bevestigings-e-mail is mislukt. -autocrypt.importSetupKey.accountPreconfigured=Uw account is al juist geconfigureerd voor Autocrypt.\n\nWilt u uw instellingen echt overschrijven met dit instellingsbericht? -autocrypt.importSetupKey.selfCreated=Dit bericht is gecreëerd door het exemplaar van Enigmail dat momenteel wordt uitgevoerd.\n\nWissel naar de e-mailclient waar u de instellingen naartoe wilt overzetten en klik in die e-mailclient op het bericht om de instellingen te importeren. -autocrypt.importSetupKey.invalidMessage=Fout - kon instellingsbericht niet lezen. Het bericht lijkt beschadigd. Creëer een nieuw instellingsbericht op uw andere apparaat. -autocrypt.importSetupKey.invalidKey=Fout - de sleutel kon niet worden geïmporteerd. De sleutel wordt ofwel niet ondersteund door uw versie van GnuPG of is beschadigd. -autocrypt.importSetupKey.wrongPasswd=Het door u ingevoerde wachtwoord is fout. Wilt u het nogmaals proberen? -autocrypt.importSetupKey.success=Het Autocrypt-instellingsbericht is met succes verwerkt. Autocrypt is nu beschikbaar voor uw account ‘%S’. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Selecteer OpenPGP-sleutels om in te voegen keysToUse=Selecteer OpenPGP-sleutel(s) om te gebruiken voor %S pubKey=Publieke sleutel voor %S\n - -windowLocked=Opstelvenster is geblokkeerd; verzending geannuleerd -sendUnencrypted=Initialiseren van Enigmail mislukt.\nNiet-versleuteld bericht verzenden? -composeSpecifyEmail=Geef uw primaire e-mailadres op. Dit wordt gebruikt om de sleutel voor het ondertekenen van uitgaande berichten te kiezen.\nAls u dit niet invult, wordt het VAN-adres van het bericht gebruikt om de sleutel te kiezen. -sendingHiddenRcpt=Dit bericht heeft BCC-ontvangers (blind copy). Als dit bericht wordt versleuteld, is het mogelijk om de BCC-ontvangers te verbergen, maar gebruikers van sommige producten (bv. PGP Corp.) zullen het bericht niet kunnen ontcijferen. Om deze reden wordt aanbevolen BCC-e-mails bij versleutelde berichten te vermijden. -sendWithHiddenBcc=BCC-ontvangers verbergen -sendWithShownBcc=Normaal versleutelen -sendingNews=Versleutelde verzending afgebroken.\n\nDit bericht kan niet worden versleuteld, omdat er nieuwsgroepontvangers zijn. Verzend het bericht opnieuw zonder versleuteling. -sendToNewsWarning=Waarschuwing: je staat op het punt een versleutelde e-mail naar een nieuwsgroep te verzenden.\n\nDit wordt afgeraden, omdat dit alleen zin heeft als alle leden van de groep dit bericht kunnen ontcijferen, dus het bericht moet worden versleuteld met de sleutels van alle leden van de groep. Verzend dit bericht alleen als je precies weet wat je doet.\n\nDoorgaan? -hasHTML=HTML-berichtwaarschuwing:\nDit bericht bevat vermoedelijk HTML, wat ervoor kan zorgen dat ondertekening of versleuteling mislukt. Houd de SHIFT-toets ingedrukt wanneer u op de knop Opstellen/Antwoorden klikt om een ondertekend bericht te verzenden en dit probleem in de toekomst te vermijden. Als u dit berichten standaard ondertekent, vink dan de optie ‘Berichten opstellen in HTML-indeling’ uit om het gebruik van HTML voor deze account definitief uit te schakelen. -strippingHTML=Het bericht bevat HTML-opmaakgegevens. Deze gaat verloren bij het converteren naar platte tekst voor ondertekening of versleuteling. Wilt u doorgaan? -msgCompose.button.sendAnyway=Bericht toch &verzenden -attachWarning=Bijlagen bij dit bericht zijn niet lokaal, dus ze kunnen niet worden versleuteld. Om bijlagen te versleutelen, dient u deze eerst lokaal op te slaan en daarna toe te voegen. Bericht toch verzenden? quotedPrintableWarn=U hebt de ‘quoted-printable’-codering voor het verzenden van berichten ingeschakeld. Dit kan resulteren in een onjuiste ontcijfering of verificatie van uw bericht.\nWilt u de ‘quoted-printable’-optie nu uitschakelen? -minimalLineWrapping=U hebt regelterugloop ingesteld op %S tekens. Voor juiste versleuteling en/of ondertekening moet dit getal minstens 68 zijn.\nWilt u de regelterugloop nu naar 68 tekens wijzigen? warning=Waarschuwing -signIconClicked=U hebt handmatig ondertekenen aangepast. Daarom zal het (de)activeren van de ondertekening tijdens het opstellen van dit bericht niet meer afhankelijk zijn van het (de)activeren van de versleuteling. -errorOwnKeyUnusable=De sleutel-ID ‘%S’ die voor de huidige identiteit is geconfigureerd, levert geen bruikbare OpenPGP-sleutel op.\n\nZorg ervoor dat u een geldige, niet-vervallen OpenPGP-sleutel hebt en dat deze in uw accountinstellingen is ingesteld.\nAls uw sleutel niet is vervallen, controleer dan of u het Eigenaarsvertrouwen op ‘volledig’ of ‘maximaal’ hebt ingesteld. -msgCompose.cannotSaveDraft=Fout bij opslaan van concept -msgCompose.partiallyEncrypted.short=Pas op dat u geen gevoelige informatie lekt - gedeeltelijk versleuteld e-mailbericht. -msgCompose.partiallyEncrypted.inlinePGP=Het bericht waarop u antwoordt, bevat zowel onversleutelde als versleutelde delen. Als de afzender niet in staat was om sommige delen te ontcijferen, is het mogelijk dat u vertrouwelijke informatie lekt die de afzender zelf niet kon ontcijferen.\n\nWij adviseren u alle geciteerde tekst uit uw antwoord aan deze afzender te verwijderen. - -msgCompose.internalEncryptionError=Interne fout: beloofde versleuteling uitgeschakeld -msgCompose.internalError=Er is een interne fout opgetreden. - -msgCompose.toolbarTxt.signAndEncrypt=Dit bericht zal worden ondertekend en versleuteld -msgCompose.toolbarTxt.signOnly=Dit bericht zal worden ondertekend -msgCompose.toolbarTxt.encryptOnly=Dit bericht zal worden versleuteld -msgCompose.toolbarTxt.noEncryption=Dit bericht zal niet worden ondertekend en niet worden versleuteld -msgCompose.toolbarTxt.disabled=Enigmail is voor het gekozen profiel uitgeschakeld -msgCompose.protectSubject.tooltip=Het berichtonderwerp beschermen -msgCompose.noSubjectProtection.tooltip=Het berichtonderwerp niet beschermen -msgCompose.protectSubject.dialogTitle=Bescherming van Onderwerp inschakelen? -msgCompose.protectSubject.question=Normale versleutelde berichten bevatten het ongeredigeerde onderwerp. Wij hebben een standaard bewerkstelligd om het oorspronkelijke onderwerp te verbergen in het versleutelde bericht en het te vervangen door een dummytekst, zodat het onderwerp alleen zichtbaar is nadat het e-mailbericht is ontsleuteld.\n\nWilt u het onderwerp van versleutelde berichten beschermen? -msgCompose.protectSubject.yesButton=Onderwerp &beschermen -msgCompose.protectSubject.noButton=Onderwerp &onbeschermd laten - -msgCompose.detailsButton.label=Details… -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=onbekend -msgCompose.pepSendUnsecure=onveilig -msgCompose.pepSendSecure=veilig -msgCompose.pepSendTrusted=veilig & vertrouwd - -pep.alert.disabledForIdentity=p≡p is voor de huidige identiteit uitgeschakeld. Schakel p≡p in via Enigmail/p≡p-voorkeuren. -pep.alert.weakReply=U staat op het punt om een veilig bericht onveilig door te sturen of te beantwoorden. Als u doorgaat, kan er vertrouwelijke informatie lekken, waardoor u en uw correspondent in gevaar gebracht kunnen worden. Weet u zeker dat u door wilt gaan? - - -# note: should end with double newline: -sendAborted=Verzendhandeling afgebroken.\n\n - -# details: keyNotTrusted=Niet voldoende vertrouwensbasis voor sleutel ‘%S’ -keyNotFound=Sleutel ‘%S’ niet gevonden -keyRevoked=Sleutel ‘%S’ ingetrokken -keyExpired=Sleutel ‘%S’ verlopen - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=ONDERTEKEND -statEncrypted=VERSLEUTELD -statPlain=PLATTE TEKST - -offlineSave=%S bericht opslaan naar %S in map Niet-verzonden berichten? - -onlineSend=%S bericht naar %S verzenden? -encryptKeysNote=Noot: het bericht is met de volgende gebruikers-ID/-sleutel versleuteld: %S -hiddenKey= - -signFailed=Fout in Enigmail: versleuteling/ondertekening is mislukt. Wilt u het bericht niet-versleuteld verzenden? -msgCompose.button.sendUnencrypted=Onversleuteld bericht &verzenden -recipientsSelectionHdr=Ontvangers voor versleuteling selecteren - -configureNow=U hebt nog geen Enigmail-beveiliging voor de geselecteerde identiteit ingesteld. Wilt u dit nu doen? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Bericht versleutelen (auto) -encryptMessageNorm=Bericht versleutelen -signMessageAuto=Bericht ondertekenen (auto) -signMessageNorm=Bericht ondertekenen - -encryptOff=Versleuteling: UIT -encryptOnWithReason=Versleuteling: AAN (%S) -encryptOffWithReason=Versleuteling: UIT (%S) -encryptOn=Versleuteling: AAN -signOn=Ondertekenen: AAN -signOff=Ondertekenen: UIT -signOnWithReason=Ondertekenen: AAN (%S) -signOffWithReason=Ondertekenen: UIT (%S) -reasonEnabledByDefault=standaard ingeschakeld -reasonManuallyForced=handmatig afgedwongen -reasonByRecipientRules=afgedwongen door ontvangerregels -reasonByAutoEncryption=afgedwongen door automatische versleuteling -reasonByConflict=door conflicterende ontvangerregels -reasonByEncryptionMode=vanwege versleutelingsmodus - -# should not be used anymore: -encryptYes=Bericht zal worden versleuteld -encryptNo=Bericht zal niet worden versleuteld - -# should not be used anymore: -signYes=Bericht zal worden ondertekend -signNo=Bericht zal niet worden ondertekend - - -# PGP/MIME status: -pgpmimeNormal=Protocol: PGP/MIME -inlinePGPNormal=Protocol: Inline PGP -smimeNormal=Protocol: S/MIME -pgpmimeAuto=Protocol: PGP/MIME (auto) -inlinePGPAuto=Protocol: Inline PGP (auto) -smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME zal worden gebruikt -pgpmimeNo=Inline PGP zal worden gebruikt - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Uw eigen publieke sleutel zal niet worden gekoppeld -attachOwnKeyYes=Uw eigen publieke sleutel zal worden gekoppeld -attachOwnKeyDisabled=Uw eigen publieke sleutel kan niet worden gekoppeld. U moet een specifieke sleutel selecteren\nin de sectie OpenPGP van de accountinstellingen om deze functie in te schakelen. - -rulesConflict=Conflicterende per-ontvanger-regels gevonden\n%S\n\nBericht met deze instellingen verzenden? -msgCompose.button.configure=&Instellen -msgCompose.button.send=Bericht &verzenden -msgCompose.button.save=Bericht &opslaan - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Publieke sleutel %S is nodig om de ondertekening te verifiëren -keyUsed=Publieke sleutel %S gebruikt om ondertekening te verifiëren -clickDecrypt=; gebruik de functie ‘Ontcijferen/verifiëren’ -clickDecryptRetry=; gebruik ‘Ontcijferen/verifiëren’ om het opnieuw te proberen -clickDetailsButton=; klik op ‘Details’ voor meer informatie -clickImportButton=; klik op ‘Sleutel importeren’ om de sleutel te importeren -keyTypeUnsupported=; het sleuteltype wordt niet door uw versie van GnuPG ondersteund -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Ontcijferen -msgPart=Deel van het bericht %S -msgSigned=ondertekend -msgSignedUnkownKey=ondertekend met onbekende sleutel -msgEncrypted=versleuteld -msgSignedAndEnc=ondertekend en versleuteld - unverifiedSig=Ongeverifieerde ondertekening -incompleteDecrypt=Ontcijfering onvolledig -needKey=Fout - geheime sleutel nodig om het bericht te ontcijferen -failedDecrypt=Fout - ontcijfering mislukt -badPhrase=Fout - onjuiste wachtwoordzin -missingMdcError=Fout - ontbrekende of ongeldige integriteitsbescherming (MDC) -failedDecryptVerify=Fout - ontcijfering/verificatie mislukt -viewInfo=; Beeld > Berichtbeveiliginginfo voor details -brokenExchangeMessage=Ongeldig PGP/MIME-bericht van MS Exchange - -decryptedMsg=Ontcijferd bericht -decryptedMsgWithFormatError=Ontcijferd bericht (beschadigde PGP-e-mailindeling hersteld, waarschijnlijk veroorzaakt door een oude Exchange-server, waardoor het resultaat misschien niet perfect leesbaar is) - -usedAlgorithms=Gebruikte algoritmen: %1$S en %2$S -pepStatusInfo.text=p≡p Berichtstatus. -pepStatusInfo.title.m3=Aangevallen -pepStatusInfo.info.m3=Dit bericht is niet veilig en is gemanipuleerd. -pepStatusInfo.title.m1=Gewantrouwd -pepStatusInfo.info.m1=Dit bericht bevat een correspondent die voorheen als gewantrouwd werd gemarkeerd -pepStatusInfo.title.r0=Onbekend -pepStatusInfo.info.r0=Dit bericht bevat onvoldoende informatie om vast te stellen of het veilig is. -pepStatusInfo.title.r1=Kan niet ontcijferen -pepStatusInfo.info.r1=Dit bericht kan niet worden ontcijferd, omdat de sleutel niet beschikbaar is. -pepStatusInfo.title.r2=Kan niet ontcijferen -pepStatusInfo.info.r2=Dit bericht kan niet worden ontcijferd, omdat de sleutel niet beschikbaar is. -pepStatusInfo.title.r3=Onveilig -pepStatusInfo.info.r3=Dit bericht is onveilig. -pepStatusInfo.title.r4=Onveilig voor enkelen -pepStatusInfo.info.r4=Dit bericht is onveilig voor sommige correspondenten. -pepStatusInfo.title.r5=Onbetrouwbare beveiliging -pepStatusInfo.info.r5=Dit bericht heeft onbetrouwbare bescherming. -pepStatusInfo.title.r6=Veilig… -pepStatusInfo.info.r6=Dit bericht is veilig, maar u moet de identiteit van uw correspondent nog verifiëren. -pepStatusInfo.title.r7=Veilig & vertrouwd -pepStatusInfo.info.r7=Dit bericht is veilig en vertrouwd. - -pepStatusInfo.color.green=Groen -pepStatusInfo.color.yellow=Geel -pepStatusInfo.color.red=Rood -pepRevokeTrust.question=Wilt u echt het vertrouwen voor %S annuleren? -pepRevokeMistrust.question=Wilt u de sleutel voor %S echt opnieuw vertrouwen? -pepRevokeTrust.doRevoke=Vertrouwen &annuleren - -wksConfirmationReq=Bevestigingsverzoek van Web Key Directory -wksConfirmationReq.message=Dit bericht is door uw e-mailprovider verzonden om de distributie van uw OpenPGP publieke sleutel in hun Webkey-directory te bevestigen.\nDoor uw publieke sleutel aan te leveren, stelt u anderen in staat om uw sleutel te vinden en zo berichten naar u te kunnen versleutelen.\n\nAls u nu uw sleutel in de Webkey-directory wilt distribueren, klik dan op de knop ‘Verzoek bevestigen’ in de statusbalk. Anders kunt u dit bericht negeren. -wksConfirmationReq.button.label=Verzoek bevestigen - -autocryptSetupReq=Autocrypt-set-up uitvoeren -autocryptSetupReq.button.label=Set-up starten -autocryptSetupReq.setupMsg.desc=Dit bericht bevat alle informatie die nodig is om uw Autocrypt-instellingen samen met uw privésleutel veilig van uw originele apparaat over te plaatsen. -autocryptSetupReq.setupMsg.backup=U kunt dit bericht bewaren en het gebruiken als een veiligheidskopie van uw privésleutel. Als u dit wilt doen, schrijf dan het wachtwoord op en bewaar dit op een veilige plaats. -autocryptSetupReq.message.import=Klik op de knop ‘Set-up starten’ in de statusbalk om de instellingen en sleutel(s) in Enigmail te importeren -autocryptSetupReq.message.sent=Klik op het bericht op uw nieuwe apparaat en volg de instructies om uw instellingen te importeren. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js +badPhrase=Fout – onjuiste wachtwoordzin +missingMdcError=Fout – ontbrekende of ongeldige integriteitsbescherming (MDC) oldGpgVersion20=Initialisatie van Enigmail is mislukt.\n\nU gebruikt GnuPG versie %1$S, die niet meer wordt ondersteund. Enigmail vereist GnuPG versie %2$S of nieuwer. Upgrade uw installatie van GnuPG, anders zal Enigmail niet werken. -locateGpg=GnuPG-programma lokaliseren -invalidGpgPath=GnuPG kan niet worden gestart met het opgegeven pad. Enigmail zal uitgeschakeld blijven totdat u het pad van GnuPG opnieuw wijzigt of totdat u het programma herstart. -warningsAreReset=Alle waarschuwingen zijn teruggezet. -prefs.gpgFound=GnuPG is gevonden in %S -prefs.gpgNotFound=Kon GnuPG niet vinden -prefs.warnAskNever=Waarschuwing: het aanzetten van deze optie zal leiden tot onversleutelde e-mails zonder enig bericht als er voor een van de ontvangers geen sleutel bestaat - Enigmail zal u niet informeren als dit gebeurt! -prefs.warnIdleTimeForUnknownAgent=Kon geen verbinding met gpg-agent maken. Misschien gebruikt uw systeem een aangepast programma voor het afhandelen van uw wachtwoordzin (bv. gnome-keyring of seahorse-agent). Enigmail heeft helaas geen invloed op de geldigheidsduur van de wachtwoordzin van het programma dat u gebruikt. De instellingen in Enigmail worden daarom genegeerd. -prefEnigmail.oneKeyserverOnly=Fout - u kunt slechts één sleutelserver instellen voor het automatisch downloaden van ontbrekende OpenPGP-sleutels. -acSetupMessage.desc=Uw sleutel overbrengen naar een ander Autocrypt-enabled apparaat. (Wat is Autocrypt) -aboutLicense.desc=Enigmail is open source en gelicentieerd onder de Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Typ de beheerpincode van uw smartcard -enterCardPin=Typ de pincode van uw smartcard - -notInit=Fout - Enigmail-service nog niet geïnitialiseerd badCommand=Fout - versleutelingsopdracht mislukt cmdLine=opdrachtregel en uitvoer: -notRequired=Fout - geen versleuteling vereist -notComplete=Fout – sleutelgeneratie nog niet voltooid -invalidEmail=Fout - ongeldig(e) e-mailadres(sen) noPassphrase=Fout - geen wachtwoordzin opgegeven noPGPblock=Fout - Geen geldig gewapend OpenPGP-gegevensblok gevonden -unverifiedReply=Ingesprongen berichtdeel (antwoord) is waarschijnlijk aangepast -keyInMessageBody=Sleutel in berichttekst gevonden. Klik op ‘Sleutel importeren’ om de sleutel te importeren -sigMismatch=Fout - Ondertekeningen komen niet overeen -cantImport=Fout bij het importeren van de publieke sleutel\n\n -doImportOne=%1$S (%2$S) importeren? -doImportMultiple=De volgende sleutels importeren?\n\n%S -previewFailed=Kan het bestand met de publieke sleutel niet importeren. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=De smartcard %1$S, die in uw lezer is gevonden, kan niet worden gebruikt om dit bericht te verwerken.\nVoer smartcard %S in en herhaal de handeling. sc.insertCard=Deze handeling vereist uw smartcard %S. \nVoer de vereiste kaart in en herhaal de handeling. sc.removeCard=Deze handeling vereist geen smartcard in de lezer. \nVerwijder uw kaart en herhaal de handeling. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Uw smartcardlezer kon niet worden gevonden.\nKoppel uw smartcardlezer, voer uw kaart in en herhaal de handeling. keyError.keySpecNotFound=Het e-mailadres ‘%S’ komt niet overeen met een sleutel in uw keyring. keyError.keyIdNotFound=De ingestelde sleutel-ID ‘%S’ kan niet in uw keyring worden gevonden. -keyError.resolutionAction=Kies een geldige sleutel in OpenPGP-beveiliging bij uw Accountinstellingen. missingPassphrase=Ontbrekende wachtwoordzin errorHandling.gpgAgentInvalid=Er is een versie van gpg-agent op uw systeem actief die niet geschikt is voor uw GnuPG-versie. errorHandling.gpgAgentError=GnuPG heeft een fout gemeld in de communicatie met gpg-agent (een component van GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG kan niet om uw wachtwoordzin vragen via pincode-invoer. errorHandling.pinentryCursesError=Uw GnuPG-installatie is geconfigureerd om de console te gebruiken voor pincode-invoer. Als u Enigmail gebruikt, moet u echter een grafische versie gebruiken. errorHandling.readFaq=Dit is een systeeminstallatie- of configuratiefout die voorkomt dat Enigmail goed kan werken en niet automatisch kan worden hersteld.\n\nHet wordt ten zeerste aanbevolen onze ondersteuningswebsite https://enigmail.net/faq te raadplegen. - gpgNotFound=Kan het GnuPG-programma ‘%S’ niet vinden.\nZorg ervoor dat u het uitvoerbare pad van GPG goed hebt ingesteld in de Enigmail-voorkeuren. gpgNotInPath=Kan GnuPG niet vinden in het PATH.\nZorg ervoor dat u het uitvoerbare pad van GPG goed hebt ingesteld in de Enigmail-voorkeuren. enigmailNotAvailable=Enigmail-coreservices zijn niet beschikbaar - -prefGood=Goede ondertekening van %S -prefBad=ONJUISTE ondertekening van %S - failCancel=Fout - Sleutelontvangst geannuleerd door gebruiker failKeyExtract=Fout - sleutelextractieopdracht mislukt -failKeyNoSubkey=Geen geldige (sub-)sleutel notFirstBlock=Fout - Eerste OpenPGP-blok is geen publiek sleutelblok importKeyConfirm=Publieke sleutel(s) die in het bericht zijn ingesloten importeren? -failKeyImport=Fout - sleutel importeren mislukt fileWriteFailed=Schrijven naar bestand %S mislukt - importKey=Publieke sleutel %S importeren van sleutelserver: uploadKey=Publieke sleutel %S verzenden naar sleutelserver: keyId=Sleutel-ID -keyAndSigDate=Sleutel-ID: 0x%1$S / Ondertekend op: %2$S -keyFpr=Vingerafdruk van sleutel: %S -noEmailProvided=U hebt geen e-mailadres opgegeven! -keyAlreadySigned=De sleutel is al ondertekend. U kunt het geen twee keer ondertekenen. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=vervallen %S createdHeader=Aangemaakt atLeastOneKey=Geen sleutel geselecteerd! U moet minstens één sleutel kiezen in dit dialoogvenster fewerKeysThanRecipients=U hebt een kleiner aantal sleutels geselecteerd dan dat er ontvangers zijn. Weet u zeker dat de lijst van sleutels volledig is? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Selecteer een Geheime OpenPGP-sleutel om uw berichten te ondertekenen userSel.problemNoKey=Geen geldige sleutel userSel.problemMultipleKeys=Meerdere sleutels -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Later verzenden - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=Noot: PGP/MIME wordt niet door alle e-mailclients ondersteund. Als u het niet zeker weet, kies dan de optie %S. first=eerste second=tweede - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=OpenPGP-sleutel voor versleuteling selecteren -identityName=Identiteit: %S -switchPepMode=U gebruikt momenteel de ‘p≡p-juniormodus’ van Enigmail.\n\nDoor OpenPGP of S/MIME voor een account in te schakelen, schakelt u p≡p en de ‘normale’ modus van Enigmail zonder p≡p uit. -enableEnigmail=p≡p &uitschakelen -amPrefAutocrypt.desc=Autocrypt is een standaard die definieert hoe u eenvoudig end-to-end-versleuteling van e-mailberichten kunt bereiken. Het specificeert hoe e-mailprogramma’s onderhandelen over versleutelingsmogelijkheden via reguliere e-mailberichten. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=U hebt versleuteling geactiveerd, maar geen sleutel geselecteerd. Om versleutelde mails naar %S te verzenden, dient u een geldige sleutel uit uw sleutellijst op te geven. Wilt u versleuteling voor %S uitschakelen? -noKeyToUse=(geen - niet versleutelen) -noEmptyRule=De regel mag niet leeg zijn! Geef een e-mailadres op in het Regelveld -invalidAddress=Het e-mailadres dat u hebt opgegeven, is niet geldig. U mag de naam van de ontvangers niet gebruiken, alleen hun e-mailadres. Bv.:\nOngeldig: Een Naam \nGeldig: een.naam@adres.net -noCurlyBrackets=De accolades {} hebben een speciale betekenis en zouden niet in een e-mailadres mogen worden gebruikt. Als u de vergelijkingsfuncties voor deze regel wilt aanpassen, gebruik dan de optie ‘Regel toepassen als ontvanger…’. Meer informatie is beschikbaar via de knop Help. - -# Strings used in enigmailRulesEditor.js never=Nooit always=Altijd possible=Mogelijk -deleteRule=De geselecteerde regel echt verwijderen? -nextRcpt=(Volgende ontvanger) -negateRule=Niet -addKeyToRule=Sleutel %1$S (%2$S) per ontvanger aan regel toevoegen - -# Strings used in enigmailSearchKey.js -needOnline=De functie die u hebt geselecteerd, is niet in de offlinemodus beschikbaar. Ga online en probeer het opnieuw. -noKeyserverConn=Kon geen verbinding maken met sleutelserver op %S. -internalError=Er is een interne fout opgetreden. De sleutels konden niet worden gedownload of geïmporteerd. -noKeyFound=Wij konden geen sleutel vinden die aan de opgegeven zoekcriteria voldoet. -keyDownload.keyUnavailable=De sleutel met ID %S is niet beschikbaar op de sleutelserver. Waarschijnlijk heeft de eigenaar van de sleutel zijn sleutel niet naar de sleutelserver geüpload.\n\nVraag de afzender van het bericht om u zijn sleutel via e-mail toe te sturen. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Instellen van sleutelvertrouwen mislukt - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Ondertekenen van sleutel mislukt -alreadySigned.label=Let op: de sleutel %S is al ondertekend met de geselecteerde geheime sleutel. -alreadySignedexportable.label=Noot: de sleutel ‘%S’ is al exporteerbaar ondertekend met de gekozen geheime sleutel. Een lokale ondertekening heeft geen zin. -partlySigned.label=Let op: enkele gebruikers-ID’s van sleutel %S zijn al ondertekend met de gekozen geheime sleutel. -noTrustedOwnKeys=Geen voor ondertekening in aanmerking komende sleutel gevonden! U moet minstens een volledig vertrouwde geheime sleutel hebben om sleutels te kunnen ondertekenen. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Sleutels worden geladen, even geduld… keyValid.unknown=onbekend keyValid.invalid=ongeldig keyValid.disabled=uitgeschakeld keyValid.revoked=ingetrokken keyValid.expired=vervallen keyValid.noSubkey=geen geldige subsleutel - -keyTrust.untrusted=onbetrouwbaar +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=weinig keyTrust.full=betrouwbaar keyTrust.ultimate=maximaal keyTrust.group=(groep) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Sleutel inschakelen -keyMan.disableKey=Sleutel uitschakelen userAtt.photo=Gebruikerskenmerk (JPEG-afbeelding) - -asciiArmorFile=ASCII-armored bestanden (*.asc) importKeyFile=OpenPGP-sleutelbestand importeren -gnupgFile=GnuPG-bestanden -saveRevokeCertAs=Intrekkingscertificaat aanmaken en opslaan -revokeCertOK=Het intrekkingscertificaat is met succes aangemaakt. U kunt dit certificaat gebruiken om uw publieke sleutel ongeldig te maken, bijvoorbeeld als u uw geheime sleutel hebt verloren. -revokeCertFailed=Het intrekkingscertificaat kon worden niet aangemaakt. - -addUidOK=Gebruikers-ID met succes toegevoegd -addUidFailed=Toevoegen van gebruikers-ID mislukt -noKeySelected=U dient minstens één sleutel te selecteren om de gevraagde handeling uit te voeren -exportToFile=Ppublieke sleutel naar bestand exporteren -exportKeypairToFile=Geheime en publieke sleutel naar bestand exporteren -exportSecretKey=Wilt u uw geheime sleutel in het opgeslagen OpenPGP-bestand bijvoegen? -saveKeysOK=De sleutels zijn met succes opgeslagen -saveKeysFailed=Opslaan van sleutels mislukt -importKeysFailed=Importeren van sleutels mislukt -enableKeyFailed=Sleutels in-/uitschakelen mislukt -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Geëxporteerde-publieke-sleutels -defaultPubSecKeyFilename=Geëxporteerde-publieke-en-geheime-sleutels - -sendKeysOk=Sleutel(s) met succes verzonden -sendKeysFailed=Verzenden van sleutels is mislukt -receiveKeysOk=Sleutel(s) met succes bijgewerkt -receiveKeysFailed=Downloaden van sleutels mislukt -keyUpload.verifyEmails=De sleutelserver zal u een e-mail sturen voor elk e-mailadres van de sleutel die u heeft geüpload. Om de publicatie van uw sleutel te bevestigen, moet u op de koppeling in elke e-mail die u ontvangt klikken. - -importFromClip=Wilt u de sleutel(s) van het klembord importeren? -importFromUrl=Publieke sleutel van deze URL downloaden: -copyToClipbrdFailed=Kopiëren van sleutels naar het klembord mislukt. -copyToClipbrdOK=Sleutel(s) naar het klembord gekopieerd - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S deleteSecretKey=WAARSCHUWING: u gaat een geheime sleutel verwijderen!\nAls u uw geheime sleutel verwijdert, kunt u geen versleutelde berichten voor die sleutel meer ontcijferen en kunt u uw sleutel niet meer intrekken.\n\nWeet u zeker dat u zowel uw geheime als uw publieke sleutel ‘%S’ wilt verwijderen? -deleteMix=WAARSCHUWING: je gaat geheime sleutels verwijderen!\nAls je je geheime sleutel verwijdert, kun je je berichten niet meer met die sleutel ontcijferen.\n\nWeet je zeker dat je BEIDE sleutels wilt verwijderen, zowel de geheime als de publieke sleutel? -deletePubKey=Wilt u de publieke sleutel verwijderen?\n‘%S’ -deleteSelectedPubKey=Wilt u de publieke sleutels verwijderen? -deleteKeyFailed=De sleutel kon niet worden verwijderd. revokeKeyQuestion=U gaat de sleutel ‘%S’ intrekken.\n\nU zal niet meer kunnen ondertekenen met deze sleutel, en zodra verspreid, kunnen anderen deze niet meer voor het versleutelen gebruiken. U kunt deze sleutel nog wel gebruiken voor het ontcijferen van oude berichten.\n\nWilt u doorgaan? -revokeKeyOk=De sleutel is ingetrokken. Als uw sleutel op een sleutelserver beschikbaar is, wordt aanbevolen de sleutel opnieuw te uploaden, zodat anderen de intrekking kunnen zien. -revokeKeyFailed=De sleutel kon niet worden ingetrokken. revokeKeyNotPresent=U hebt geen sleutel (0x%S) die overeenkomt met dit intrekkingscertificaat!\n\nAls u uw sleutel bent kwijtgeraakt, moet u hem importeren vóór u het intrekkingscertificaat importeert (bv. van een sleutelserver)! revokeKeyAlreadyRevoked=De sleutel 0x%S is al ingetrokken. -refreshAllQuestion=U hebt geen sleutel geselecteerd. Wilt u ALLE sleutels verversen? -refreshKeyServiceOn.warn=Waarschuwing: uw sleutels worden momenteel zo veilig mogelijk in de achtergrond ververst.\nAls u al uw sleutels tegelijk ververst, zal dit onnodig informatie over u onthullen.\nWilt u dit echt doen? -refreshKey.warn=Waarschuwing: afhankelijk van het aantal sleutels en de verbindingssnelheid kan het verversen van alle sleutels een langduring proces zijn! -downloadContactsKeys.warn=Let op: afhankelijk van het aantal contactpersonen en de verbindingssnelheid kan het downloaden van alle sleutels een langdurig proces zijn! -downloadContactsKeys.importFrom=Contacten uit adresboek ‘%S’ importeren? -keyMan.button.exportSecKey=&Geheime sleutels exporteren -keyMan.button.exportPubKey=&Alleen publieke sleutels exporteren keyMan.button.import=&Importeren -keyMan.button.refreshAll=Alle sleutels &verversen keyMan.button.revokeKey=&Sleutel intrekken - -keylist.noOtherUids=Heeft geen andere identiteiten -keylist.hasOtherUids=Ook bekend als -keylist.noPhotos=Geen foto beschikbaar -keylist.hasPhotos=Foto’s - -keyMan.addphoto.filepicker.title=Selecteer foto om toe te voegen -keyMan.addphoto.warnLargeFile=Het bestand dat u hebt gekozen, is groter dan 25 Kb.\nHet toevoegen van grote bestanden wordt niet aanbevolen, omdat de sleutels anders erg groot kunnen worden. -keyMan.addphoto.noJpegFile=Het geselecteerde bestand lijkt geen JPEG-bestand te zijn. Kies een ander bestand. -keyMan.addphoto.failed=De foto kon niet worden toegevoegd. -noWksIdentity=De sleutel %S heeft geen WKS-identiteit. -wksUpload.noKeySupported=De upload is mislukt - het lijkt erop dat uw provider WKS niet ondersteunt. - -keyman.addBlacklistKey.msg=Wilt u echt dat p≡p de sleutel ‘%1$S (%2$S)’ niet meer gebruikt voor het versleutelen van berichten? -keyman.removeBlacklistKey.msg=Wilt u p≡p toestemming geven om sleutel ‘%1$S (%2$S)’ voor toekomstige berichten te gebruiken? -keyman.addBlacklistKey.button=Sleutel op &zwarte lijst zetten -keyman.removeBlacklistKey.button=Sleutel van &zwarte lijst verwijderen - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Aanpassen van primaire gebruikers-ID mislukt -changePrimUidOK=De primaire gebruikers-ID is met succes aangepast -revokeUidFailed=Intrekken van gebruikers-ID %S mislukt -revokeUidOK=Gebruikers-ID %S is met succes ingetrokken. Als uw sleutel op een sleutelserver beschikbaar is, wordt aanbevolen de sleutel opnieuw te uploaden, zodat anderen de intrekking kunnen zien. -revokeUidQuestion=Wilt u de gebruikers-ID %S echt intrekken? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=GELUKT! Sleutels geïmporteerd -importInfoBits=Bits -importInfoCreated=Aangemaakt -importInfoFpr=Vingerafdruk -importInfoDetails=(Details) -importInfoNoKeys=Geen sleutels geïmporteerd. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=publieke sleutel -keyTypePrimary=primaire sleutel -keyTypeSubkey=subsleutel -keyTypePair=sleutelpaar -keyExpiryNever=nooit keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Versleutelen -keyUsageSign=Ondertekenen -keyUsageCertify=Certificeren -keyUsageAuthentication=Authenticatie -keyDoesNotExpire=Sleutel vervalt niet - -# Strings in enigmailGenCardKey.xul -keygen.started=Even geduld terwijl de sleutel aangemaakt wordt… -keygen.completed=Sleutel aangemaakt. De nieuwe sleutel-ID is: 0x%S -keygen.keyBackup=De back-up van de sleutel is opgeslagen als %S -keygen.passRequired=Geef een wachtwoordzin op als u een back-up van uw sleutel buiten uw smartcard wilt bewaren. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Wijzigen van pincode mislukt - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Sleutels worden ververst, even geduld… -keyserverProgress.uploading=Sleutels worden geüpload, even geduld… -keyserverProgress.wksUploadFailed=Kon uw sleutel niet uploaden naar de Web Key Service -keyserverProgress.wksUploadCompleted=Uw publieke sleutel werd met succes naar uw provider gestuurd. U zult een e-mail krijgen om te bevestigen dat u de upload hebt aangevraagd. -keyserverTitle.refreshing=Sleutels verversen -keyserverTitle.uploading=Sleutel uploaden -keyserver.result.download.none=Geen sleutel gedownload. -keyserver.result.download.1of1=Sleutel met succes gedownload. -keyserver.result.download.1ofN=1 van %S sleutels met succes gedownload. -keyserver.result.download.NofN=%1$S van %2$S sleutels met succes gedownload. -keyserver.result.uploadOne=1 sleutel met succes geüpload. -keyserver.result.uploadMany=%S sleutels met succes geüpload. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Het bestand dat u hebt opgegeven, is geen GnuPG-programma. Kies een ander bestand. -setupWizard.installFailed=Het lijkt erop dat de installatie is mislukt. Probeer de installatie opnieuw, of installeer GnuPG zelf en geef de plaats aan met de knop Bladeren. -setupWizard.downloadForbidden=Voor uw eigen veiligheid downloaden we GnuPG niet. Bezoek https://gnupg.org/ om GnuPG te downloaden. -setupWizard.downloadImpossible=We kunnen GnuPG op dit moment niet downloaden. Probeer het later opnieuw, of ga naar https://gnupg.org/ om GnuPG te downloaden. -setupWizard.hashSumError=De wizard kon de integriteit van het gedownloade bestand niet controleren. Het bestand kan ongeldig of gemanipuleerd zijn. Wilt u toch doorgaan met de installatie? -setupWizard.importSettingsFile=Geef reservekopiebestand op waarvan moet worden geladen -setupWizard.invalidSettingsFile=Het opgegeven bestand is geen geldig reseverkopiebestand voor Enigmail-instellingen. -setupWizard.gpgConfExists=Het GnuPG-configuratiebestand bestaat al. Wilt u dit overschrijven met dat uit uw oude installatie? -setupWizard.noGpgHomeDir=U heeft %S gespecificeerd om voor GnuPG te gebruiken. Dit is echter geen map – u kunt deze niet gebruiken. -setupWizard.unmachtedIds=De volgende identiteiten van uw oude set-up konden niet worden gevonden.\n%S\nDe instellingen voor deze identiteiten zijn overgeslagen. -setupWizard.foundAcSetupMessage=Autocrypt-instellingsbericht gevonden. Klik op de knop Set-up starten hieronder om de Autocrypt-configuratie te starten. -setupWizard.foundAcNoSetupMsg=Wij hebben gedetecteerd dat u een e-mailclient gebruikt die aan Autocrypt voldoet, maar we konden geen Autocrypt-instellingsbericht vinden. Wij raden u aan om een Autocrypt-instellingsbericht op uw bestaande apparaat aan te maken en vervolgens op Postvak IN opnieuw scannen te klikken. U kunt ook uw instellingen en sleutels in een bestaande Enigmail-installatie exporteren en die instellingen hier importeren. -setupWizard.setupComplete=Enigmail is nu goed geconfigureerd en klaar voor gebruik. Kijk voor meer info over het gebruik van Enigmail op onze startpagina. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Er is een fout opgetreden bij het downloaden van GnuPG. Controleer de console-uitvoer voor nadere details. -installGnuPG.installFailed=Er is een fout opgetreden tijdens het installeren van GnuPG. Controleer de console-uitvoer voor nadere details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=U moet een naam en e-mailadres invullen -addUidDlg.nameMinLengthError=De naam moet minstens 5 tekens bevatten -addUidDlg.invalidEmailError=U moet een geldig e-mailadres opgeven - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP-smartcards ondersteunen alleen ASCII-tekens in Voornaam/Achternaam. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Het door de webservice aangeboden beveiligingscertificaat is niet geldig. errorType.SecurityProtocol=Het door de webservice gebruikte beveiligingsprotocol is onbekend. errorType.Network=Er is een netwerkfout opgetreden. - -# filter stuff -filter.folderRequired=U moet een doelmap kiezen. -filter.decryptMove.label=Permanent ontcijferen (Enigmail) -filter.decryptCopy.label=Ontcijferde kopie aanmaken (Enigmail) -filter.decryptMove.warnExperimental=Waarschuwing. ‘Permanent ontcijferen’ kan leiden tot beschadigde of kapotte berichten.\n\nHet wordt aanbevolen eerst ‘Ontcijferde kopie genereren’ te proberen, het resultaat zorgvuldig te testen, en alleen dan de permanente actie uit te voeren. -filter.tempPepFilterDesc=Tijdelijk filter om verzonden bericht onversleuteld op te slaan -filter.term.pgpencrypted.label=Versleuteld met OpenPGP -filter.encrypt.label=Naar sleutel versleutelen (Enigmail) -filter.keyRequired=U moet een sleutel van een ontvanger selecteren. -filter.keyNotFound=Kon geen coderingssleutel vinden voor ‘%S’. -filter.warn.keyNotSecret=Waarschuwing - de filteractie ‘Naar sleutel versleutelen’ vervangt de ontvangers.\n\nAls u de geheime sleutel voor ‘%S’ niet hebt, kunt u de e-mails niet meer lezen. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Kon bericht met het volgende onderwerp niet ontcijferen:\n‘%S’.\nWilt u het nogmaals proberen met een andere wachtwoordzin, of wilt u dit bericht overslaan? -converter.decryptAtt.failed=Kon bijlage ‘%1$S’\nvan bericht met het volgende onderwerp niet ontcijferen: \n‘%2$S’.\nWilt u het nogmaals proberen met een andere wachtwoordzin, of wilt u het bericht overslaan? - -saveLogFile.title=Logbestand opslaan - -# strings in gpg.jsm -unknownSigningAlg=Onbekend ondertekeningsalgoritme (ID: %S) -unknownHashAlg=Onbekende cryptografische hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=De sleutel %1$S (sleutel-ID %2$S) is ingetrokken. keyRing.pubKeyExpired=De sleutel %1$S (sleutel-ID %2$S) is vervallen. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Alle subsleutels voor versleuteling van sleutel %1$S (sleutel-ID %2$S) zijn vervallen. keyRing.noSecretKey=Het lijkt erop dat u niet de geheime sleutel van %1$S (sleutel-ID %2$S) in uw keyring hebt; u kunt deze sleutel niet gebruiken voor ondertekening. keyRing.encSubKeysUnusable=Alle subsleutels voor versleuteling van sleutel %1$S (sleutel-ID %2$S) zijn ingetrokken, vervallen of anderszins onbruikbaar. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Kan niet opslaan naar bestand ‘%S’. Kies een ander bestand. dataExportError=Er is een fout opgetreden tijdens het exporteren van uw gegevens. -enigmailSettings=Enigmail-instellingen -defaultBackupFileName=Enigmail-export -specifyExportFile=Geef bestandsnaam op om te exporteren -homedirParamNotSUpported=Extra parameters waarmee paden worden geconfigureerd, zoals --homedir en --keyring, worden niet ondersteund bij het exporteren/herstellen van uw instellingen. Gebruik andere manieren, zoals het instellen van de variabele GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Uw sleutel %1$S zal binnen %2$S dagen vervallen.\n\nWij raden aan om een nieuw sleutelpaar aan te maken en de overeenkomende accounts in te stellen om deze nieuwe sleutel te gebruiken. expiry.keysExpireSoon=De volgende sleutels zullen binnen %1$S dagen vervallen:\n%2$S. Wij raden u aan om nieuwe sleutels aan te maken en de overeenkomende accounts in te stellen om deze nieuwe sleutels te gebruiken. expiry.keyMissingOwnerTrust=Voor uw geheime sleutel %S is geen vertrouwen ingesteld.\n\nWij bevelen u aan om ‘U vertrouwt op certificeringen’ op maximaal in te stellen bij de eigenschappen van de sleutel. expiry.keysMissingOwnerTrust=Voor uw onderstaande geheime sleutels is geen vertrouwen ingesteld:\n%S.\nWij raden u aan om ‘U vertrouwt op certificeringen’ op maximaal in te stellen bij de eigenschappen van de sleutel. expiry.OpenKeyManager=Enigmail-sleutelbeheer openen expiry.OpenKeyProperties=Sleuteleigenschappen openen - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Dit is een versleuteld bericht. Helaas heeft u geen privésleutel waarmee u het bericht kunt ontcijferen. - -#strings in gpgAgent.jsm gpghomedir.notexists=De map ‘%S’ die uw OpenPGP-sleutels bevat bestaat niet en kan niet worden aangemaakt. gpghomedir.notwritable=De map ‘%S’ die uw OpenPGP-sleutels bevat, is niet schrijfbaar. gpghomedir.notdirectory=De map ‘%S’ die uw OpenPGP-sleutels bevat, is een bestand in plaats van een map. gpghomedir.notusable=Herstel de rechten van de map of wijzig de locatie van uw GnuPG-hoofdmap. GnuPG kan anders niet correct werken. gpgAgent.noAutostart=U gebruikt GnuPG versie %S. Voor deze versie moet u gpg-agent opstarten voordat u Thunderbird start en moet de omgevingsvariabele GPG_AGENT_INFO vooraf ingesteld zijn.\n\nEr is niet aan deze voorwaarden voldaan - u kunt Enigmail pas gebruiken als u dit probleem heeft opgelost. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=p≡p-vertrouwwoorden voor eigen account kunnen niet worden geverifieerd. -pepTrustWords.cannotFindKey=Kan sleutel voor %S niet vinden. -pepTrustWords.cannotStoreChange=Kon vertrouwen voor %S niet wijzigen. -pepTrustWords.generalFailure=Kan vertrouwenswoorden voor %S niet verkrijgen. -pepTrustWords.partnerFingerprint=Vingerafdruk voor %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Uw e-mailprovider heeft uw verzoek om uw publieke sleutel naar de OpenPGP Web Key Directory te uploaden verwerkt.\n\nKlik de knop Bevestigen in de header van Enigmail om het publiceren van uw publieke sleutel af te ronden. -wkdMessage.body.process=Dit is een e-mailbericht met betrekking tot de automatische verwerking van het uploaden van uw publieke sleutel op de OpenPGP Web Key Directory.\n\nU hoeft hier op dit moment geen handmatige actie op te ondernemen. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=U of de afzender moet het bericht opnieuw verzenden. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Als u dit bericht het opgesteld, dan is uw sleutel niet beschikbaar. -pepPrivacyStatus.RatingMistrustSuggestion=Herstel de verbinding met uw correspondent en probeer een andere handdruk te voltooien. -pepPrivacyStatus.RatingReliableSuggestion=Voltooi een handdruk met uw correspondent door persoonlijk of via de telefoon vertrouwenswoorden uit te wisselen. Aan handdruk is slechts een keer per correspondent nodig en verzekert u van veilige en vertrouwde communicatie. -pepPrivacyStatus.RatingTrustedSuggestion=Geen actie nodig! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Houd er rekening mee dat dit bericht misschien niet veilig is. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Voeg de benodigde informatie toe. -pepPrivacyStatus.RatingUnderAttackSuggestion=Controleer de inhoud van dit bericht met uw correspondent via een ander kanaal. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Zorg ervoor dat de privacystatus voor alle getoonde correspondenten tenminste ‘veilig’ is. -pepPrivacyStatus.RatingUnencryptedSuggestion=Vraag uw correspondent om een versleutelingsoplossing te gebruiken of om p≡p te installeren. -pepPrivacyStatus.RatingUnreliableSuggestion=Dit bericht heeft geen betrouwbare versleuteling of handtekening. Vraag uw correspondent om zijn encryptiesoftware te upgraden of om p≡p te installeren. - -pepPrivacyStatus.RatingBrokenExplanation=Dit bericht heeft ongeldige versleuteling of opmaak. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Dit bericht kan niet ontcijferd worden, omdat de sleutel niet beschikbaar is. -pepPrivacyStatus.RatingMistrustExplanation=Dit bericht heeft een correspondent die eerder als gewantrouwd is gemarkeerd. -pepPrivacyStatus.RatingReliableExplanation=Dit bericht is veilig, maar u moet de identiteit van uw correspondent wel nog verifiëren. -pepPrivacyStatus.RatingTrustedExplanation=Dit bericht is veilig en vertrouwd. -pepPrivacyStatus.RatingUndefinedExplanation=Dit bericht bevat onvoldoende informatie om te bepalen of het veilig is. -pepPrivacyStatus.RatingUnderAttackExplanation=Dit bericht is niet veilig en er is mee geknoeid. -pepPrivacyStatus.RatingUnencryptedExplanation=Dit bericht is onveilig. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Dit bericht is onveilig voor enkele correspondenten. -pepPrivacyStatus.RatingUnreliableExplanation=Dit bericht heeft onbetrouwbare bescherming. - -pepPrivacyStatus.RatingBrokenText=Ongeldig -pepPrivacyStatus.RatingHaveNoKeyText=Ontcijferen niet mogelijk -pepPrivacyStatus.RatingMistrustText=Gewantrouwd -pepPrivacyStatus.RatingReliableText=Veilig -pepPrivacyStatus.RatingTrustedText=Veilig & vertrouwd -pepPrivacyStatus.RatingUndefinedText=Onbekend -pepPrivacyStatus.RatingUnderAttackText=Aangevallen -pepPrivacyStatus.RatingUnencryptedForSomeText=Onveilig voor enkele ontvangers -pepPrivacyStatus.RatingUnencryptedText=Onveilig -pepPrivacyStatus.RatingUnreliableText=Onbetrouwbare beveiliging - -handshakeDlg.button.initHandshake=Handdruk… -handshakeDlg.button.stopTrust=Stoppen met vertrouwen -handshakeDlg.button.reTrust=Wantrouwen stopzetten -handshakeDlg.label.outgoingMessage=Uitgaand bericht -handshakeDlg.label.incomingMessage=Inkomend bericht -handshakeDlg.error.noPeers=Kan geen handshake uitvoeren zonder correspondenten. -handshakeDlg.error.noProtection=Schakel beveiliging in om de handdrukfunctie te gebruiken. - -enigmail.acSetupPasswd.descEnterPasswd=Voer de instellingscode in die op het andere apparaat wordt getoond -enigmail.acSetupPasswd.descCopyPasswd=Voer de hieronder vermelde instellingscode in op uw andere apparaat om verder te gaan met de installatie. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt-instellingsbericht -autocrypt.setupMsg.msgBody=Volg de instructies die door uw nieuwe apparaat getoond worden, om Autocrypt op het nieuwe apparaat te configureren. -autocrypt.setupMsg.fileTxt=Dit is het Autocrypt-instellingsbestand dat gebruikt wordt om uw instellingen en sleutels tussen clients uit te wisselen. U kunt het ontcijferen door middel van de instellingcode die op uw oude apparaat wordt getoond en vervolgens de sleutel in uw keyring importeren. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Wat is er nieuw in Enigmail v2.0? -upgradeInfo.welcome1=Welkom bij de nieuwe Enigmail versie 2.0! -upgradeInfo.welcome2=De versie bevat veel nieuwe en gewijzigde functies. Neem even de tijd om te ontdekken wat er nieuw is: -upgradeInfo.encSubject.title=Versleutelen van het onderwerp van het bericht -upgradeInfo.encSubject.desc=We hebben een nieuwe manier ontwikkeld die het onderwerp van de e-mail naar het versleutelde bericht verplaatst en het zichtbare onderwerp vervangt door ‘Versleuteld bericht’. Als zo’n bericht ontsleuteld is, wordt het originele onderwerp automatisch vervangen. Het vervangen van het onderwerp staat standaard aan; er is een optie om dit uit te schakelen als u dit niet wilt. (Noot: voor deze optie is het noodzakelijk dat het bericht met PGP/MIME wordt verzonden.) -upgradeInfo.buttons.title=Gewijzigd gedrag van de knoppen Versleutelen en Ondertekenen -upgradeInfo.buttons.desc=De knoppen Versleutelen en Ondertekenen in het berichtopstelvenster werken nu zowel voor het OpenPGP- als het S/MIME-protocol. Als beide algoritmes mogelijk zijn, zal Enigmail het protocol waarvoor alle sleutels beschikbaar zijn te verkiezen. -upgradeInfo.autocrypt.title=Ondersteuning voor Autocrypt -upgradeInfo.autocrypt.desc=Enigmail ondersteunt nu Autocrypt, 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 p≡p-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 onze documentatie voor hulp over het gebruik van Enigmail. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=Er is een nieuwe versie van Enigmail/p≡p beschikbaar. Wilt u de update downloaden en installeren? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Over Enigmail aboutEnigmail.title=OpenPGP-ondersteuning geleverd door Enigmail aboutEnigmail.team=Enigmail wordt ontwikkeld door het Enigmail-team: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=licentie & ondersteuning aboutEnigmail.license=Enigmail OpenPGP is opensource en gelicentieerd onder de %S aboutEnigmail.support=Ondersteuning en download is beschikbaar op www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG bijwerken -updateGnuPG.title=Updates voor GnuPG -updateGnuPG.introduction.desc=Enigmail heeft GnuPG nodig voor het uitvoeren van de cryptografische. Wij raden u aan om un installatie van GnuPG up-to-date te houden. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -updateGnuPG.noUpdateRequired=GnuPG is up-to-date. -updateGnuPG.cannotUpdate.header=Enigmail ondersteunt alleen bijwerken van de volgende pakketten: -updateGnuPG.cannotUpdate.footer=Het lijkt erop dat u een andere variant van GunPG gebruikt; het is daarom helaas niet mogelijk voor Enigmail om uw GnuPG-installatie bij te werken. -updateGnuPG.installUpdate=Update installeren -updateGnuPG.noMoreUpdates=Niet op toekomstige updates controleren updateGnuPG.checkUpdate=Controleren op GnuPG-updates - - -#strings in keyserver.jsm -keyserver.error.aborted=Afgebroken -keyserver.error.unknown=Er is een onbekende fout opgetreden -keyserver.error.serverError=De sleutelserver meldde een fout. -keyserver.error.importError=Kon de gedownloade sleutel niet importeren. -keyserver.error.unavailable=De sleutelserver is niet beschikbaar. -keyserver.error.securityError=De sleutelserver ondersteunt geen versleutelde toegang. -keyserver.error.certificateError=Het certificaat van de sleutelserver is ongeldig. -keyserver.error.unsupported=De sleutelserver wordt niet ondersteund door Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Versleuteld berichtdeel -mimeDecrypt.encryptedPart.concealedData=Dit is een versleuteld berichtdeel. U kunt dit een een apart venster openen door op de bijlage te klikken. - -#strings in gnupg-key.jsm import.secretKeyImportError=Er is een fout opgetreden in GnuPG bij het importeren van de geheime sleutels. Het importeren is mislukt. - -#strings in importSettings.js -importSettings.errorNoFile=Het bestand dat u op heeft gegeven is geen normaal bestand! -importSettings.cancelWhileInProgress=Bezig met herstellen. Wilt u het proces echt afbreken? -importSettings.button.abortImport=Proces &afbreken +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/nl/help/compose.html enigmail-2.2.4/lang/nl/help/compose.html --- enigmail-2.1.6+ds1/lang/nl/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail help: Opstellen van een bericht - - - - - -

Enigmail help

- -

Enigmail gebruiken bij het opstellen van een bericht

- -
-
Enigmail menu in het Mail/Opstellen venster
- -
-
-
Onderteken bericht
- -
Ondertekende mail verzenden in- of uitschakelen. De gebruiker wordt gewaarschuwd als het ondertekenen mislukt.
- -
Versleutel bericht
-
-

Versleuteling voor alle ontvanger(s) in- of uitschakelen. De gebruiker wordt gewaarschuwd als de versleuteling mislukt.

- -

Als Selectie tonen wanneer nodig ingesteld is in de Voorkeuren -> Sleutelselectie tab, dan zal er een lijst van sleutel getoond worden als er ontvangers in de lijst staan van wie u geen publieke sleutel hebt.

- -

Als Toon nooit het PGP dialoogvenster voor sleutelselectie ingesteld is in de Voorkeuren -> Sleutelselectie tab, en er zijn adressen in de lijst met ontvangers van wie u geen publieke sleutel hebt, dan wordt de mail onversleuteld verstuurd.

-
- -
Gebruik PGP/MIME voor dit bericht
- -
- Het gebruik van PGP/MIME voor dit bericht in- of uitschakelen. - -

Als u weet dat uw ontvanger mail kan lezen in het PGP/MIME formaat, dan gebruikt u dit best ook.

- -

Deze mogelijkheid is afhankelijk van de instellingen in de Voorkeuren -> PGP/MIME tab. Deze moet ingesteld zijn op Sta het gebruik van PGP/MIME toe of Gebruik altijd PGP/MIME.

-
- -
Standaardopties voor berichtcompositie
- -
-
    -
  • Ondertekening/versleuteling opties...: snelkoppeling naar de Accountinstellingen -> OpenPGP opties.
  • - -
  • Verzenden opties...: snelkoppeling naar de Voorkeuren -> Verzend tab.
  • - -
  • Sleutelselectie opties...: snelkoppeling naar de Voorkeuren -> Sleutelselectie tab.
  • - -
  • PGP/MIME opties...: snelkoppeling naar de Voorkeuren -> PGP/MIME tab.
  • -
-
- -
Versleuteling ongedaan maken
- -
-

Als er een fout is bij het verzenden van de e-mail zoals wanneer de POP server de aanvraag niet accepteerd, zal Enigmail dit niet weten en het versleuteld bericht zal nog altijd getoond worden in het Opstelvenster. Bij het kiezen van dit menu-item wordt de versleuteling of ondertekening uit de mail verwijderd.

- -

Deze optie kan ook gebruikt worden als een tijdelijke oplossing om de aangehaalde tekst in versleutelde berichten te ontcijferen bij het antwoorden. Enigmail zou het aangehaalde bericht automatisch moeten ontcijferen, maar als dat om één of andere reden mislukt, kan u dit menu-item gebruiken om het te forceren.

-
- -
Publieke sleutel invoegen
- -
Voegt een ASCII gewapende publieke sleutel in op de huidige cursorpositie in het Opstelvenster. U krijgt de vraag welk e-mailadres er gebruikt moet worden voor de in te voegen sleutel(s). Sleutels die op deze manier zijn ingevoegd, zullen automatisch herkend worden door Enigmail bij het ontvangen. Na sleutelinvoeging kan u nog steeds uw e-mail ondertekenen of versleutelen. Voeg niet meer dan één sleutelblok in in een bericht; specifieer gewoon meerdere e-mailadressen, gescheiden door komma's of spaties.
- -
Vergeet opgeslagen wachtwoord
- -
Verwijdert het opgeslagen wachtwoord. Dit is nuttig als u meerdere wachtwoorden gebruikt.
- -
Help
- -
Toont de helpinformatie van de website (deze pagina).
-
-
-
-
- -

Verdere help kan u vinden op de Enigmail support website

- - diff -Nru enigmail-2.1.6+ds1/lang/nl/help/editRcptRule.html enigmail-2.2.4/lang/nl/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/nl/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail help: Bewerk PGP regels - - - - - -

Enigmail help

- -

De Enigmail regeleditor gebruiken: PGP regels bewerken

- -

In de Regeleditor kan u standaarden opgeven om versleuteling, ondertekening en PGP/MIME te gebruiken en om te definiëren welke OpenPGP sleutel(s) er gebruikt moeten worden. In dit dialoogvenster kan u de regels voor een enkele ontvanger opgeven en voor een groep van ontvangers met sterk vergelijkbare eigenschappen.

- -
-
Stel PGP regels in voor
- -
bevat de e-mailadressen van de ontvangers (zonder namen, d.w.z. enkel een adres zoals persoon@email.domain). U kan meerdere e-mailadressen opgeven, gescheiden door spaties. Het opgegeven e-mailadres kan bestaan uit enkel de domeinnaam zodat alle e-mailadressen van dit domein ermee overeenkomen. Bijvoorbeeld @email.domain zal overeenkomen met per@email.domain,soon@email.domain, persoon@email.domain, enz.
- -
Pas regel toe als ontvanger ...
- -
- Dit past de vergelijking van de e-mailadressen aan. Als er meerdere e-mailadressen opgegeven zijn, zal de instelling betrekking hebben op alle e-mailadressen. De voorbeelden hieronder zijn gebaseerd op persoon@email.domain ingegeven in het PGP regels veld erboven. - -
    -
  • Is exact met deze instelling heeft de regel enkel betrekking op e-mails naar persoon@email.domain (exact, niet hoofdlettergevoelig).
  • - -
  • Bevat met deze instelling zal de regel toegepast worden op elk e-mailadres dat deze tekenreeks bevat. B.v. persoon@email.domain or soon@email.domain.net
  • - -
  • Begint met met deze instelling wordt de regel toegepast op e-mailadressen die beginnen met de opgegeven tekenreeks. B.v. per@email.domain.net, per@email.domain-name.com.
  • - -
  • Eindigt met met deze instelling wordt de regel toegpast op e-mailadressen die eindigen met de opgegeven tekenreeks. B.v. persoon@email.domain, soon@email.domain.
  • -
-
- -
Ga verder met de volgende regel voor het overeenstemmende adres
- -
Het inschakelen van deze functie staat u toe om een regel te definiëren zonder een KeyID in het Gebruik de volgende OpenPGP sleutel: veld, zodat het e-mailadres gebruikt wordt om de sleutel te controleren op het moment van verzenden. Verdere regels voor hetzelfde adres zullen ook uitgevoerd worden.
- -
Controleer verdere regels voor het overeenstemmende adres niet
- -
Het inschakelen van deze functie zorgt ervoor dat andere regels niet uitgevoerd worden als het adres met deze regel overeenstemd. Er wordt dus direct naar de volgende ontvanger overgeschakeld.
- -
Gebruik de volgende OpenPGP sleutels
- -
Gebruik de Selecteer sleutel(s).. knop om de sleutel van de ontvanger te kiezen die u wilt gebruiken voor versleuteling. Net zoals bij de bovenstaande actie zullen er geen verdere regels voor het overeenstemmende adres uitgevoerd worden.
- -
Standaard voor ondertekening
- -
- Ondertekening in- of uitschakelen. Dit gebruikt of overschrijft datgene dat u opgegeven hebt in het berichtopstel venster. Mogelijke waarden zijn: - -
    -
  • Nooit: ondertekening uitschakelen, zelf al is het ingeschakeld in het berichtopstelvenster (overschrijft de andere waarden)
  • - -
  • Ja, als het geselecteerd is bij Berichtopstelling: laat ondertekening zoals opgegeven in het berichtopstelvenster
  • - -
  • Altijd: ondertekening inschakelen, zelfs al is het niet ingeschakeld in het berichtopstelvenster
  • -
Deze ondertekeningsregels worden toegepast op alle regels die ermee overeenkomen. Als één van de regesl ondertekening uitschakeld, dan word het bericht niet ondertekend, ook al hebt u een regel die Altijd opgeeft bij ondertekening. -
- -
Versleuteling
- -
berichtversleuteling in- of uitschakelen. De toegestane instellingen en hun betekening zijn dezelfde als voor berichtondertekening.
- -
PGP/MIME
- -
Het gebruik van PGP/MIME (RFC 3156) berichtencodering in- of uitschakelen. Als PGP/MIME uitgeschakeld is, worden de berichten met "inline PGP) ondertekend of versleuteld. De toegestane waarden en hun betekenis zijn dezelfde als deze voor berichtondertekening.
-
- -

De regels worden uitgevoerd in de volgorde waarin ze weergegeven worden in de PGP regeleditor. Wanneer een regel overeenstemt met een ontvanger en een PGP sleutel ID bevat, met daarbij nog een opgegeven sleutel ID, dan wordt de ontvanger niet meer gecontroleerd bij het uitvoeren van verdere regels.

-
- -

Verdere help is beschikbaar op de Enigmail per-ontvanger instellingen pagina

- - diff -Nru enigmail-2.1.6+ds1/lang/nl/help/initError.html enigmail-2.2.4/lang/nl/help/initError.html --- enigmail-2.1.6+ds1/lang/nl/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail help: Het oplossen van problemen met de OpenPGP initialisatie - - - - - -

OpenPGP Help

- -

Het oplossen van problemen met de OpenPGP initialisatie

- -

Er zijn verschillende oorzaken voor het mislukken van de OpenPGP initialisatie. De bekendsten worden hieronder beschreven; - voor meer informatie kunt u de Enigmail help website bezoeken.

- -
-
Kon GnuPG niet vinden
-
-

- Voor een goede werking van OpenPGP moet de applicatie GnuPG geïnstalleerd zijn. - Als GnuPG niet kan worden gevonden, moet u er eerst voor zorgen dat de applicatie gpg.exe (voor Windows; gpg voor andere platformen) op uw PC daadwerkelijk aanwezig is. - Als GnuPG (gpg.exe of gpg) daadwerkelijk geïnstalleerd is, maar OpenPGP kan het toch niet vinden, moet u het pad naar GnuPG in de OpenPGP instellingen ingeven (Menu OpenPGP) > Voorkeuren). -

- -
Initialisatie van EnigMIME is mislukt
- -
-

- OpenPGP werkt alleen als deze in dezelfde ontwikkelomgeving als Thunderbird of SeaMonkey gecreëerd (gecompileerd) is. U kunt de officiële Enigmail samen met officiële versies van Thunderbird of SeaMonkey downloaden van mozilla.org. -

-

- Als u Thunderbird of SeaMonkey in een andere versie/variant van een andere bron download (bv. van een Linux distributie provider), of als u de applicatie zelf gecompileerd heeft, moet u ook een versie van Enigmail gebruiken die in dezelfde ontwikelomgeving gecompileerd is. Om Enigmail zelf te compileren moet u de instructies opvolgen op de Enigmail website in Gebied Source-Code. Gelieve geen eventuele foutmeldingen (bugs) over dit probleem te maken, omdat er daarvoor geen andere oplossing is. -

-
-
- -

Verdere hulp is beschikbaar op de Enigmail support website.

- - diff -Nru enigmail-2.1.6+ds1/lang/nl/help/messenger.html enigmail-2.2.4/lang/nl/help/messenger.html --- enigmail-2.1.6+ds1/lang/nl/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail help

- -

Enigmail gebruiken bij het lezen van berichten

- -
-
Ontcijferknop in het hoofdvenster
- -
Deze knop kan gebruikt worden voor verschillende doelen: ontcijferen, verifiëren of publieke sleutels importeren. Normaalgesproken gebeurt ontcijfering/verificatie automatisch, maar dit kan uitgeschakeld worden door middel van een instelling. Hoewel, als dit mislukt, wordt er een kort foutbericht weergegeven in de Enigmail statusregel. Als u op de Ontcijferknop klikt, zal u een meer gedetailleerd foutbericht zien, samen met de uitvoer van het GPG commando.
- -
Pen- en sleuteliconen in de berichtkop
- -
- Het Pen en Sleutel icoon in de berichtkop toont of het bericht dat u aan het lezen bent ondertekend en/of versleuteld was en of de ondertekening goed is, d.w.z. als het bericht niet gewijzigd is sinds de ondertekening. Als het bericht toch gewijzigd is, zal het Pen icoon veranderen naar een Gebroken pen om aan te geven dat de ondertekening ongeldig is. Een rechtermuisklik op het Pen- of Sleutelicoon geeft een menu met de volgende opties: - -
    -
  • OpenPGP beveiligingsinfo: staat u toe de outputstatus van GPG voor het bericht te bekijken.
  • - -
  • Kopieer OpenPGP beveiligingsinfo: kopieert de output status van GPG naar het klembord; om in een antwoord te plakken, enz.
  • - -
  • Bekijk PGP foto ID: staat u toe om het Foto ID van de persoon die u het bericht gezonden heeft te bekijken, als er natuurlijk een foto ingebed zit in de publieke sleutel. (Deze optie is enkel beschikbaar als er een Foto ID bestaat in de gebruikte sleutel.)
  • - -
  • S/MIME beveilingsinfo: staat u toe om de S/MIME beveilingsinfo van het bericht te bekijken.
  • -
- -

Als u keyserver-options auto-key-retrieve niet ingesteld hebt in uw gpg.conf bestand en u leest een bericht dat ondertekend of versleuteld is, dan zal u een Pen icoon in de hoofding zien met een Vraagteken er op. De Enigmail statusregel zal zeggen Gedeelte van het bericht getekend; klik op het pen icoon voor details en het bericht in het berichtvenster zal alle OpenPGP informatie, samen met de ondertekening tonen.

- -

U kan dit ook zien als u keyserver-options auto-key-retrieve ingesteld hebt in uw gpg.conf bestand en als de OpenPGP key niet beschikbaar is op de standaard keyserver.

- -

Een klik op het Pen en Vraagteken icoon zal een venster tonen met het bericht dat de sleutel niet in uw sleutelbos zit. Als u dan op OK klikt, krijgt u een ander venster met een lijst met publieke keyservers waaruit u kan kiezen om de publieke sleutel van de verzender te downloaden.

- -

Ga naar Enigmail -> Voorkeuren -> Basis tab en geef het adres van de keyserver in in het Keyserver(s): vakje, gescheiden door een komma om een lijst van keyservers die u wilt gebruiken te configureren. De eerste keyserver uit de lijst zal als standaardserver gebruikt worden.

-
- -
Versleutelde bijlagen openen / bijgevoegde OpenPGP sleutels importeren
- -
Bijlagen met de extensie *.pgp, *.asc en *.gpg worden herkend door Enigmail en worden speciaal behandeld. Bij een rechtermuisklik op zo een bijlage krijg je twee speciale menu items in het contextmenu: Ontcijfer en open en Ontcijfer en sla op als.... Gebruik deze twee menu items als u wilt dat Enigmail de bijlage ontcijfert voor deze te openen of op te slaan. Als een bijlage herkend word als een OpenPGP sleutelbestand, krijg je de kans om de sleutels in je sleutelbos te importeren.
-
-
- -

Verdere help is verkrijgbaar op de Enigmail Helppagina

- - diff -Nru enigmail-2.1.6+ds1/lang/nl/help/rulesEditor.html enigmail-2.2.4/lang/nl/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/nl/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail help: Regeleditor - - - - - -

Enigmail help

- -

De regeleditor gebruiken

- -

In de regeleditor kan u standaarden opgeven per ontvanger om versleuteling, ondertekening en PGP/MIME in- of uit te schakelen. U kan er ook OpenPGP sleutels definiëren. Elke regel bestaat uit 5 velden en wordt getoond op een enkele lijn:

- -
-
E-mail
- -
De e-mail(s) van de Aan:, Cc: and Bcc: velden om te controleren. De controle werkt op subreeksen (Verdere details kunnen gevonden worden in het Bewerk regel dialoogvenster).
- -
PGP sleutel(s)
- -
een lijst van PGP sleutel ID's om te gebruiken voor de ontvanger
- -
Onderteken
- -
- berichtondertekening in- of uitschakelen. Dit gebruikt of overschrijft de instelling die u gebruikt in het berichtenopstelvenster. De waarden zijn: - -
    -
  • Nooit: ondertekening uitschakelen, zelf al is het ingeschakeld in het berichtopstelvenster (overschrijft de andere waarden)
  • - -
  • Mogelijk: laat ondertekening als opgegeven in het berichtopstelvenster
  • - -
  • Altijd: ondertekening inschakelen, zelfs al is het niet ingeschakeld in het berichtopstelvenster
  • -
- -

Deze ondertekeningsinstellingen worden toegepast op alle regels die ermee overeenstemmen. Als één van de regels ondertekening uitschakeld, zal het bericht niet ondertekend worden, ook al is er een regel die Altijd opgeeft.

-
- -
Versleutel
- -
berichtversleuteling in- of uitschakelen. De toegestane instellingen zijn dezelfde als voor berichtondertekening.
- -
PGP/MIME
- -
het gebruik van PGP/MIME (RFC 3156) in- of uitschakelen. Als PGP/MIME uitgeschakeld is, zullen de berichten versleuteld of ondertekend worden met "inline PGP". De toegestane waarden en hun betekenis zijn dezelfde als voor berichtondertekening.
-
- -

De regels worden uitgevoerd in de volgorde waarin ze weergegeven worden in de PGP regeleditor. Wanneer een regel overeenstemt met een ontvanger en een PGP sleutel ID bevat, met daarbij nog een opgegeven sleutel ID, dan wordt de ontvanger niet meer gecontroleerd bij het uitvoeren van verdere regels.

- -

Let op: De regeleditor is nog niet volledig. Het is mogelijk om meer geavanceerde regels te schrijven door het regelbestand direct te bewerken (deze regels zouden dan niet meer bewerkt mogen worden in de regeleditor). Verdere informatie voor het direct bewerken van het bestand is beschikbaar op de Enigmail homepage

-
- -

Verdere help is beschikbaar op de Enigmail support website

- - diff -Nru enigmail-2.1.6+ds1/lang/nl/help/sendingPrefs.html enigmail-2.2.4/lang/nl/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/nl/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/nl/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail help: OpenPGP regel bewerken - - - - - -

Enigmail help

- -

Voorkeuren instellen om versleutelde e-mail te versturen

- -

Bij de Verzenden voorkeuren kunt u het algemene model en de voorkeuren voor versleuteling kiezen.

-
-
Handige versleuteling
-
Met deze instellingen worden e-mails zonder bevestiging versleuteld, indien mogelijk. -

Deze instelling is geschikt als u uw privacy wilt vergroten door versleutelde e-mails te versturen in plaats van onversleutelde e-mails als dat mogelijk is. -

Het effect is alsof u vrieven stuurt in plaats van ansichtkaarten. In tegenstelling tot bij ansichtkaarten, kunnen brieven normaal gesproken niet gelezen worden tijdens het transport. -

Het is echter net als bij brieven niet zeker, dat niemand de brief tijdens het transport opent (hoewel daar wel technische inspanning voor nodig is). -

Een concreet risico is dat u per ongeluk ‘vervalste sleutels’ gebruikt, die u van iemand heeft gekregen die beweert dat de sleutel eigendom is van de persoon die u wilt e-mailen. Om dit risico te voorkomen kunt u ofwel het vertrouwensmodel van OpenPGP gebruiken (zie onder) of u moet altijd controleren of de vingerafdruk van de publieke sleutel juist is.

- -
Handmatige versleuteling
-
Met deze instellingen kunt u de verschillende voorkeuren voor versleuteling handmatig aan uw behoefte aanpassen. U kunt opgeven: -
    -
  • of antwoorden op versleutelde/ondertekende e-mails ook automatisch versleuteld/ondertekend moeten worden;
  • -
  • of u het vertrouwensmodel van OpenPGP wilt gebruiken om sleutels te accepteren (dit betekent dat u om een sleutel te kunnen gebruiken, u deze sleutel moet ondertekenen, of dat er genoeg andere personen zijn die u vertrouwt die de sleutel ondertekend hebben);
  • -
  • of u automatisch alle e-mails versleuteld wilt versturen als alle sleutels geaccepteerd zijn;
  • -
  • of en wanneer u eindelijk wilt bevestigen dat u een e-mail wilt versturen.
  • -
-
- - Als u het belangrijk vindt dat inhoud die u versleutelt niet door andere personen of organisaties gelezen kan worden, dan dient u de handmatige instellingen te kiezen en op zijn minst de optie te selecteren om alleen sleutels te accepteren als u of andere mensen ze ondertekend hebben. Hoewel dit model het risico op vervalste sleutels vermindert, moet u wel actief sleutels ondertekenen en het eigenaarsvertrouwen aangeven via sleutelbeheer. - - - diff -Nru enigmail-2.1.6+ds1/lang/pl/am-enigprefs.properties enigmail-2.2.4/lang/pl/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/pl/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/pl/enigmail.dtd enigmail-2.2.4/lang/pl/enigmail.dtd --- enigmail-2.1.6+ds1/lang/pl/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”"> - - - - - - -”"> - - -” do oznaczania adresów e-mail dla GnuPG. Wyłącz tę funkcję, jeżeli adresaci posiadają stare klucze Hushmail."> - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Konfiguracja kont -> OpenPGP)."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Uwaga! Tworzenie klucza może potrwać kilka minut. Nie zamykaj programu w trakcie działania generatora. Aktywne używanie przeglądarki lub wykonywanie intensywnych operacji dyskowych podczas tworzenia klucza przyspieszy proces. Koniec procesu zostanie zasygnalizowany odpowiednim komunikatem."> - @@ -296,491 +20,24 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -” jest nieprawidłowy"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Uwaga! Tworzenie klucza może potrwać kilka minut. Nie zamykaj programu w trakcie działania generatora. Koniec procesu zostanie zasygnalizowany odpowiednim komunikatem."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/pl/enigmail.properties enigmail-2.2.4/lang/pl/enigmail.properties --- enigmail-2.1.6+ds1/lang/pl/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,418 +1,62 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Ostrzeżenie Enigmail enigConfirm=Potwierdzenie Enigmail enigInfo=Informacja Enigmail -enigError=Błąd Enigmail enigPrompt=Wprowadź dane Enigmail - -dlgYes=&Tak dlgNo=&Nie dlgKeepSetting=Zapamiętaj mój wybór i nie pytaj ponownie dlgNoPrompt=Nie wyświetlaj więcej tego okna -dlg.button.delete=&Usuń dlg.button.cancel=&Anuluj dlg.button.close=&Zamknij dlg.button.continue=&Kontynuuj -dlg.button.skip=&Pomiń -dlg.button.overwrite=Przepisać -dlg.button.view=Po&dgląd -dlg.button.retry=Znowu -dlg.button.ignore=&Ignorować -dlg.button.install=Za&instaluj dlg.button.ok=&OK - repeatPrefix=\n\nTo ostrzeżenie będzie powtórzone %S repeatSuffixSingular=raz. repeatSuffixPlural=razy. noRepeat=\n\nTo ostrzeżenie nie pojawi się dopóki nie zaktualizujesz Enigmail. - -pgpNotSupported=Wygląda na to, że używasz Enigmail razem z PGP 6.x\n\nNiestety, PGP 6.x ma dużo właściwości, które powodują niepoprawne działanie Enigmail. Dlatego też PGP 6.x nie będzie dłużej obsługiwane przez Enigmail. Zamiast tego zalecane jest zainstalowanie GnuPG (GPG).\n\nJeżeli potrzebujesz pomocy przy instalacji GnuPG, sprawdź sekcję „Pomoc” na stronie domowej Enigmail. -initErr.howToFixIt=Enigmail wymaga GnuPG do działania. Jeśli nie zainstalowano jeszcze GnuPG, najprościej będzie użyć przycisku "Asystent konfiguracji" poniżej. -initErr.setupWizard.button=&Asystent konfiguracji passphraseCleared=Hasło zostało usunięte z pamięci. cannotClearPassphrase=Używasz niestandardowego narzędzia do obsługi haseł, takiego jak np. gnome-keyring lub Portfel KDE. Wyczyszczenie hasła jest niestety niemożliwe z poziomu Enigmail. -noPhotoAvailable=Brak zdjęcia -debugLog.title=Dziennik zdarzeń debugowania Enigmail -error.photoPathNotReadable=Nie można odczytać ścieżki „%S” - -generalError=Błąd: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Ta wersja Enigmail wprowadza istotne zmiany w obsłudze preferencji i opcji. Dołożyliśmy wszelkich starań, aby przenieść ustawienia z poprzednich wersji do aktualnej, tam gdzie było to możliwe. Prosimy o dokładne sprawdzenie nowych preferencji i opcji. -enigmailCommon.checkPreferences=Sprawdź preferencje... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Uruchomiono Enigmail, wersja %S -enigmailPepVersion=Enigmail/p≡p wersja %S usingAgent=Szyfrowanie i weryfikacja programem %S: %S agentError=BŁĄD: Nie można uzyskać dostępu do usługi Enigmail! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Wystąpił błąd podczas próby uzyskania dostępu do usługi Enigmail -onlyGPG=Tworzenie kluczy działa tylko z GnuPG (nie działa z PGP)! - -keygenComplete=Zakończono tworzenie klucza!\nTożsamość <%S> będzie używana do podpisywania. -revokeCertRecommended=Zaleca się utworzenie certyfikatu unieważnienia dla tego klucza. Certyfikat ten posłuży do unieważnienia klucza, np. jeżeli zaginie klucz prywatny lub zostanie on wykradziony. Czy chcesz utworzyć teraz taki certyfikat? -keyMan.button.generateCert=&Utwórz certyfikat -genCompleteNoSign=Zakończono tworzenie klucza! -genGoing=Trwa tworzenie klucza…! - -passNoMatch=Wprowadzone hasła są niezgodne – proszę wprowadź ponownie -passCheckBox=Proszę zaznaczyć pole, jeśli nie podano hasła do klucza -passUserName=Podaj nazwę użytkownika dla tej tożsamości -keygen.missingUserName=Wybrane konto/tożsamość nie ma nazwy. Proszę podać nazwę w polu "Twoja nazwa" w ustawieniach konta. -keygen.passCharProblem=W swoim haśle używasz znaków specjalnych. Niestety, może to powodować problemy w innych programach. Zalecamy hasła składające się tylko z następujących znaków:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Z powodów technicznych hasło nie może zaczynać się lub kończyć spacją. -changePassFailed=Nie udało się zmienić hasła. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Utwórz klucz -keyAbort=Czy przerwać tworzenie klucza? -keyMan.button.generateKeyAbort=&Przerwij tworzenie klucza -keyMan.button.generateKeyContinue=&Kontynuuj tworzenie klucza -expiryTooLong=Nie można tworzyć kluczy ważnych dłużej niż 100 lat. -expiryTooLongShorter=Nie można tworzyć kluczy, których okres ważności jest dłuższy niż 90 lat. -expiryTooShort=Klucz musi być ważny przynajmniej jeden dzień. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Data wygaśnięcia nie mogła zostać zmieniona - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informacja Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Wiadomość prawdopodobnie została podpisana/zaszyfrowana za pomocą PGP/MIME – naciśnij przycisk „Odszyfruj/Weryfikuj”, aby to sprawdzić - -saveAttachmentHeader=Enigmail: Zapisz odszyfrowany załącznik -noTempDir=Nie można znaleźć katalogu plików tymczasowych.\nProszę ustawić odpowiednią ścieżkę jako wartość zmiennej systemowej TEMP. -attachmentPgpKey=Otwierany załącznik „%S” jest plikiem klucza OpenPGP.\n\nNaciśnij przycisk „Import”, aby zaimportować zawarty w nim klucz lub „Podgląd”, aby wyświetlić zawartość w oknie przeglądarki. - -beginPgpPart=********* *POCZĄTEK CZĘŚCI SZYFROWANEJ / PODPISANEJ* ********* -endPgpPart=********** *KONIEC CZĘŚCI SZYFROWANEJ / PODPISANEJ* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Znaleziono bloki wielu wiadomości – przerwano odszyfrowanie/weryfikację* - -decryptOkNoSig=Uwaga!\n\nWiadomość została odszyfrowana, ale nie można prawidłowo zweryfikować podpisu. -msgOvl.button.contAnyway=Czy chcesz &kontynuować? -signature.verifiedOK=Podpis załącznika %S został pomyślnie zweryfikowany -signature.verifyFailed=Nie można zweryfikować podpisu załącznika %S -attachment.noMatchToSignature=Nie można dopasować załącznika „%S” do pliku podpisu -attachment.noMatchFromSignature=Nie można dopasować pliku podpisu „%S” do załącznika -fixBrokenExchangeMsg.failed=Nie udało się naprawić wiadomości. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -wksConfirmSuccess=Wysłano e-mail potwierdzający. -wksConfirmFailure=Wysłanie potwierdzającej wiadomości e-mail nie powiodło się. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -autocrypt.importSetupKey.invalidKey=Błąd - nie można zaimportować tego klucza. Klucz nie jest wspierany przez twoją wersję GnuPG lub też jest uszkodzony. -autocrypt.importSetupKey.wrongPasswd=Podane hasło jest nieprawidłowe. Czy chcesz spróbować ponownie? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Wybierz klucze OpenPGP do wstawienia keysToUse=Wybierz klucze OpenPGP używane dla %S pubKey=Klucz publiczny dla %S\n - -windowLocked=Okno tworzenia wiadomości jest zablokowane – wysyłanie anulowane -sendUnencrypted=Nie udało się zainicjować Enigmail.\nCzy wysłać niezaszyfrowaną wiadomość? -composeSpecifyEmail=Wybierz swój adres e-mail, według którego wybierany będzie klucz do podpisywania wysyłanych wiadomości.\n Jeżeli zostawisz to pole niewypełnione, zostanie użyty adres z pola OD: wysyłanej wiadomości. -sendingHiddenRcpt=Ta wiadomość zawiera adresy w polu Ukryta kopia. Jeżeli wiadomość jest szyfrowana, możliwe jest ukrycie odbiorców ukrytej kopii, ale użytkownicy niektórych produktów, np. PGP Corp. nie będą mogli odszyfrować takiej wiadomości. Z tego powodu zaleca się nie korzystać z pól Ukryta kopia w szyfrowanych wiadomościach. -sendWithHiddenBcc=Ukryj odbiorców ukrytej kopii -sendWithShownBcc=Zaszyfruj normalnie -sendingNews=Operacja wysyłania szyfrowanej wiadomości została przerwana.\n\nWiadomości tej nie można zaszyfrować, ponieważ na liście odbiorców jest grupa dyskusyjna. Należy ponownie wysyłać wiadomość bez szyfrowania. -sendToNewsWarning=Uwaga! Wysyłasz zaszyfrowaną wiadomość na adres grupy dyskusyjnej.\n\nOdradzamy takie działanie, ponieważ ma ono sens tylko wtedy, gdy wszyscy użytkownicy grupy mogą odszyfrować taką wiadomość, tzn. wiadomość taka musiałaby być zaszyfrowana kluczami wszystkich użytkowników grupy. Wyślij wiadomość tylko, jeżeli wiesz dokładnie co robisz.\n\nCzy kontynuować? -hasHTML=Ostrzeżenie o wiadomości w formacie HTML:\nTa wiadomość może zawierać kod HTML, co może uniemożliwić podpisanie/szyfrowanie wiadomości. Aby zapobiec temu w przyszłości, wciśnij klawisz SHIFT, gdy naciskasz przycisk komponowania/odpowiedzi, żeby wysyłać podpisane wiadomości.\nJeżeli domyślnie wysyłasz podpisane wiadomości, należy w ustawieniach odznaczyć funkcję „Podczas tworzenia wiadomości używaj edytora HTML”, aby na stałe wyłączyć wiadomości HTML dla tego konta pocztowego. -strippingHTML=Wiadomość zawiera informację o formatowaniu w HTML, która zostanie utracona po konwersji do zwykłego tekstu przy podpisywaniu/szyfrowaniu. Czy chcesz kontynuować? -msgCompose.button.sendAnyway=&Wyślij wiadomość -attachWarning=Załączniki do tej wiadomości nie są zapisane lokalnie i nie mogą być zaszyfrowane. Aby je zaszyfrować, należy zapisać załączniki jako pliki lokalne i następnie dołączyć do wiadomości. Czy na pewno wysłać wiadomość? quotedPrintableWarn=Włączono kodowanie „quoted-printable” dla wysyłanych wiadomości. Może to spowodować nieprawidłowe odszyfrowanie lub weryfikację wiadomości.\nCzy wyłączyć to kodowanie? -minimalLineWrapping=Ustawiono zawijanie wierszy dłuższych niż %S znaków. Aby poprawnie szyfrować lub podpisywać wiadomości, ta wartość musi wynosić co najmniej 68.\nCzy ustawić zawijanie wiersza powyżej 68 znaków? warning=Uwaga -signIconClicked=Zmieniono ręcznie opcje podpisywania. Dlatego też, podczas komponowania tej wiadomości dezaktywacja/aktywacja podpisywania nie zależy od dezaktywacji/aktywacji szyfrowania. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Błąd podczas zapisywania projektu -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Błąd wewnętrzny: zadeklarowane szyfrowanie wyłączone -msgCompose.internalError=Wystąpił błąd wewnętrzny. - -msgCompose.toolbarTxt.signAndEncrypt=Ta wiadomość zostanie podpisana i zaszyfrowana -msgCompose.toolbarTxt.signOnly=Ta wiadomość zostanie podpisana -msgCompose.toolbarTxt.encryptOnly=Ta wiadomość zostanie zaszyfrowana -msgCompose.toolbarTxt.noEncryption=Ten komunikat będzie niepodpisane i nieszyfrowane -msgCompose.toolbarTxt.disabled=Enigmail jest wyłączona dla wybranej tożsamości -msgCompose.protectSubject.tooltip=Chroń temat wiadomości -msgCompose.noSubjectProtection.tooltip=Nie chroń tematu wiadomości -msgCompose.protectSubject.dialogTitle=Czy włączyć ochronę tematu wiadomości? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -msgCompose.protectSubject.yesButton=Chroń &temat -msgCompose.protectSubject.noButton=&Pozostaw temat bez ochrony - -msgCompose.detailsButton.label=Szczegóły ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Nieznany -msgCompose.pepSendUnsecure=Niezabezpieczone -msgCompose.pepSendSecure=Bezpieczne -msgCompose.pepSendTrusted=Bezpieczne i zaufane - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Operacja wysyłania została anulowana.\n\n - -# details: keyNotTrusted=Za mało zaufania dla klucza „%S” -keyNotFound=Nie znaleziono klucza „%S” -keyRevoked=Klucz „%S” został unieważniony -keyExpired=Klucz „%S” utracił ważność - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=PODPISANĄ -statEncrypted=ZASZYFROWANĄ -statPlain=NIEPODPISANĄ i NIEZASZYFROWANĄ - -offlineSave=Czy zapisać wiadomość %1$S do %2$S w katalogu „Niewysłane”? - -onlineSend=Czy wysłać wiadomość %S do %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Wyślij niezaszyfrowaną wiadomość -recipientsSelectionHdr=Wybierz odbiorców do szyfrowania - -configureNow=Nie włączono jeszcze zabezpieczeń Enigmail dla tej tożsamości. Czy chcesz to zrobić teraz? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Szyfruj wiadomość (automatycznie) -encryptMessageNorm=Szyfruj Wiadomość -signMessageAuto=Podpisz wiadomość (automatycznie) -signMessageNorm=Podpisz wiadomość - -encryptOff=Szyfrowanie: WYŁĄCZONE -encryptOnWithReason=Szyfrowanie: WŁĄCZONE (%S) -encryptOffWithReason=Szyfrowanie: WYŁĄCZONE (%S) -encryptOn=Szyfrowanie: WŁĄCZONE -signOn=Podpisanie: WŁĄCZONE -signOff=Podpisanie: WYŁĄCZONE -signOnWithReason=Podpisanie: WŁĄCZONE (%S) -signOffWithReason=Podpisanie: WYŁĄCZONE (%S) -reasonEnabledByDefault=domyślnie włączone -reasonManuallyForced=ręcznie wymuszone -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=wymuszony przez szyfrowanie automatyczne -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=ze względu na tryb szyfrowania - -# should not be used anymore: -encryptYes=Wiadomość zostanie zaszyfrowana -encryptNo=Wiadomość nie zostanie zaszyfrowana - -# should not be used anymore: -signYes=Wiadomość zostanie podpisana -signNo=Wiadomość nie zostanie podpisana - - -# PGP/MIME status: -pgpmimeNormal=Protokół: PGP/MIME -inlinePGPNormal=Protokół: PGP Inline -smimeNormal=Protokół: S/MIME -pgpmimeAuto=Protokół: PGP/MIME (automatyczny) -inlinePGPAuto=Protokół: PGP Inline (automatyczny) -smimeAuto=Protokół: S/MIME (automatyczny) - -# should not be used anymore -pgpmimeYes=Zostanie użyte PGP/MIME -pgpmimeNo=Zostanie użyte PGP/Inline - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Wykryto kolizję reguł Enigmail dla odbiorcy\n%S\n\nCzy wysłać wiadomość z tymi ustawieniami? -msgCompose.button.configure=&Konfiguruj -msgCompose.button.send=&Wyślij wiadomość -msgCompose.button.save=&Zapisz wiadomość - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Wymagany jest klucz publiczny %S, aby zweryfikować podpis -keyUsed=Klucz publiczny %S służy do weryfikacji podpisu -clickDecrypt=; naciśnij przycisk „Odszyfruj” -clickDecryptRetry=; naciśnij przycisk „Odszyfruj”, aby ponowić próbę -clickDetailsButton=; kliknij na przycisk „Szczegóły”, aby uzyskać więcej informacji -clickImportButton=; kliknij na przycisk "Importuj klucz", aby zaimportować klucz -keyTypeUnsupported=; ten typ klucza nie jest wspierany przez twoją wersję GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Rozszyfruj -msgPart=Część wiadomości %S -msgSigned=podpisana -msgSignedUnkownKey=podpisana nieznanym kluczem -msgEncrypted=zaszyfrowana -msgSignedAndEnc=podpisana i zaszyfrowana - unverifiedSig=Podpis bez weryfikacji -incompleteDecrypt=Odszyfrowanie nie zostało zakończone -needKey=Błąd – potrzebny klucz, aby odszyfrować wiadomość -failedDecrypt=Błąd – odszyfrowanie nie powiodło się badPhrase=Błąd – nieprawidłowe hasło -# missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Błąd – nie powiodło się odszyfrowanie/weryfikacja -viewInfo=; Widok » Informacje o zabezpieczeniach wiadomości, aby zobaczyć szczegóły -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Odszyfrowana wiadomość -decryptedMsgWithFormatError=Rozszyfrowana wiadomość (formatowanie uszkodzone prawdopodobnie przez serwer Exchange, wiadomość może być trudna do odczytania). - -usedAlgorithms=Używane algorytmy: %1$S i %2$S -pepStatusInfo.text=Status wiadomości p≡p. -# pepStatusInfo.title.m3=Under Attack -pepStatusInfo.info.m3=Ta wiadomość nie jest bezpieczna i została naruszona. -pepStatusInfo.title.m1=Brak zaufania -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Nieznany -pepStatusInfo.info.r0=Ta wiadomość nie zawiera wystarczających informacji, aby określić czy jest bezpieczna. -pepStatusInfo.title.r1=Nie można odszyfrować -pepStatusInfo.info.r1=Nie można odszyfrować tej wiadomości, ponieważ brak dostępnego klucza. -pepStatusInfo.title.r2=Nie można odszyfrować -pepStatusInfo.info.r2=Nie można odszyfrować tej wiadomości, ponieważ nie ma dostępnego klucza. -pepStatusInfo.title.r3=Niezabezpieczone -pepStatusInfo.info.r3=Ta wiadomość nie jest bezpieczna. -pepStatusInfo.title.r4=Niezabezpieczone dla niektórych -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -pepStatusInfo.title.r5=Zabezpieczenie niewiarygodne -pepStatusInfo.info.r5=Ta wiadomość ma niewiarygodne zabezpieczenie. -# pepStatusInfo.title.r6=Secure... -pepStatusInfo.info.r6=Ta wiadomość jest zabezpieczona, ale nadal musisz potwierdzić tożsamość korespondenta. -pepStatusInfo.title.r7=Bezpieczne i zaufane -pepStatusInfo.info.r7=Ta wiadomość jest bezpieczna i zaufana. - -pepStatusInfo.color.green=Zielony -pepStatusInfo.color.yellow=Żółty -pepStatusInfo.color.red=Czerwony -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -pepRevokeMistrust.question=Czy na pewno chcesz ponownie zaufać kluczowi dla %S? -pepRevokeTrust.doRevoke=Anuluj &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=Potwierdź - -autocryptSetupReq=Wykonaj konfigurację Autocrypt -autocryptSetupReq.button.label=Rozpocznij konfigurację -autocryptSetupReq.setupMsg.desc=Ta wiadomość zawiera wszystkie informacje potrzebne aby bezpiecznie przenieść z poprzedniego urządzenia twoje ustawienia Autocrypt, razem z twoim kluczem prywatnym. -autocryptSetupReq.setupMsg.backup=Możesz zachować tą wiadomość i użyć jej jako kopii zapasowej twojego klucza prywatnego. Jeśli chcesz to zrobić, powinieneś zapisać hasło i przechowywać je bezpiecznie. -autocryptSetupReq.message.import=Aby zaimportować ustawienia i klucz(e) do Enigmail, proszę kliknąć na przycisk „Rozpocznij konfigurację” na pasku statusu. -autocryptSetupReq.message.sent=Aby zaimportować ustawienia, proszę kliknąć na wiadomości na twoim nowym urządzeniu i postępować według instrukcji. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js +missingMdcError=Błąd - brakująca lub uszkodzona ochrona integralności (MDC) oldGpgVersion20=Nie udało się zainicjować Enigmail.\n\nUżywasz GnuPG w wersji %1$S, która nie jest już odsługiwana. Enigmail wymaga GnuPG w wersji %2$S lub nowszej. Proszę uaktualnić swoją instalację GnuPG albo Enigmail nie będzie działać. -locateGpg=Znajdź program GnuPG -invalidGpgPath=Nie udało się uruchomić GnuPG z podanej ścieżki. Dlatego też Enigmail będzie nieaktywne, dopóki nie zostanie zmieniona ścieżka do programu GnuPG lub dopóki nie zrestartujesz aplikacji. -warningsAreReset=Wszystkie ostrzeżenia będą pokazywane od nowa. -prefs.gpgFound=Znaleziono GnuPG w katalogu %S -prefs.gpgNotFound=Nie można znależć GnuPG -prefs.warnAskNever=Ostrzeżenie! Włączenie tej opcji oznacza niezaszyfrowane wiadomości bez żadnej informacji o brakującym kluczu dla któregoś z odbiorców – Enigmail nie poinformuje o takim przypadku! -prefs.warnIdleTimeForUnknownAgent=Twój system używa specjalistycznych narzędzi do obsługi haseł, takich jak np. gnome-keyring, seahorse-agent lub Portfel KDE. Niestety Enigmail nie może kontrolować limitu czasu hasła dla używanego narzędzia. Dlatego poszczególne ustawienia limitu czasu w Enigmail są pomijane. -prefEnigmail.oneKeyserverOnly=Błąd – w ustawieniach automatycznego pobierania brakujących kluczy OpenPGP można wskazać tylko jeden serwer kluczy. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail jest oprogramowaniem open source udostępnianym na licencji Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Wprowadź ADMIN PIN swojej karty SmartCard -enterCardPin=Wprowadź PIN swojej karty SmartCard - -notInit=Błąd – usługa Enigmail nie zainicjowana badCommand=Błąd – nie powiodło się polecenie szyfrowania cmdLine=składnia i wynik polecenia: -notRequired=Błąd – szyfrowanie nie jest wymagane -notComplete=Błąd – generowanie kluczy nie jest jeszcze zakończone -invalidEmail=Błąd – nieprawidłowe adresy e-mail noPassphrase=Błąd – nie podano hasła noPGPblock=Błąd – nie znaleziono prawidłowego bloku danych OpenPGP -unverifiedReply=Cytowana część wiadomości (odpowiedzi) została prawdopodobnie zmodyfikowana -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Błąd – podpis nie pasuje -# cantImport=Error importing public key\n\n -doImportOne=Czy zaimportować %1$S (%2$S)? -doImportMultiple=Czy zaimportować następujące klucze?\n\n%S -previewFailed=Nie można wczytać pliku klucza publicznego. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Karta SmartCard %S znaleziona w czytniku nie może być użyta do przetworzenia wiadomości.\nWłóż kartę %S i ponów operację. sc.insertCard=Ta operacja wymaga karty SmartCard %S.\nWłóż wymaganą kartę i ponów operację. sc.removeCard=Ta operacja wymaga usunięcia karty SmartCard z czytnika.\nUsuń kartę i ponów operację. sc.noCardAvailable=Nie znaleziono karty SmartCard w czytniku\nWłóż kartę do czytnika i ponów operację sc.noReaderAvailable=Brak dostępu do czytnika kart SmartCard\nPodłącz czytnik, włóż swoją kartę i ponów operację -# keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. -# keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Proszę wybrać ważny klucz w sekcji OpenPGP ustawień konta. +keyError.keySpecNotFound=Adres e-mail '%S nie może być dopasowany do twojego klucza w zbiorze. +keyError.keyIdNotFound=Skonfigurowanego klucza ID '%S' nie można znaleźć w twoim zbiorze kluczy. missingPassphrase=Brak hasła errorHandling.gpgAgentInvalid=Twój system zawiera wersję programu gpg-agent, która nie jest wspierana przez twoją wersję GnuPG. errorHandling.gpgAgentError=Program GnuPG zgłosił błąd komunikacji z gpg-agent (składnikiem GnuPG). -# errorHandling.dirmngrError=GnuPG reported an error in the communication with dirmngr (a component of GnuPG). -# errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. -# errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. -# errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - +errorHandling.dirmngrError=GnuPG raportuje błąd w komunikacji z dirmngr (komponent GnuPG). +errorHandling.pinentryError=GnuPG nie może zapytać o twoje hasło za pomocą pinentry. +errorHandling.pinentryCursesError=Twoja instalacja GnuPG jest skonfigurowana do używania konsoli dla pinentry. Jednak podczas korzystania z Enigmail potrzebujesz graficznej wersji pinentry. +errorHandling.readFaq=Jest to błąd ustawień systemu lub konfiguracji, który uniemożliwia prawidłowe działanie Enigmail i nie może zostać naprawiony automatycznie. Zdecydowanie zalecamy zapoznanie się z naszą witryną pomocy technicznej pod adresem https://enigmail.net/faq. gpgNotFound=Nie odnaleziono programu GnuPG „%S”.\nSprawdź w ustawieniach Enigmail czy jest określona prawidłowa ścieżka do programu GnuPG. gpgNotInPath=W podanym położeniu nie znaleziono programu GnuPG.\nSprawdź w ustawieniach Enigmail czy jest określona prawidłowa ścieżka do programu GnuPG. enigmailNotAvailable=Usługa Enigmail nie jest dostępna - -prefGood=Prawidłowy podpis od %S -prefBad=NIEPRAWIDŁOWY podpis od %S - failCancel=Błąd – użytkownik anulował odbiór klucza failKeyExtract=Błąd – nie powiodło się uzyskanie klucza -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Błąd – pierwszy blok OpenPGP nie jest blokiem klucza publicznego importKeyConfirm=Czy zaimportować klucze publiczne osadzone w wiadomości? -failKeyImport=Błąd – nie powiodło się zaimportowanie klucza fileWriteFailed=Błąd zapisu do pliku %S - importKey=Importowanie klucza publicznego %S z serwera kluczy: uploadKey=Eksportowanie klucza publicznego %S do serwera: keyId=ID klucza -keyAndSigDate=ID klucza: 0x%S / Podpisano dnia: %S -keyFpr=Odcisk klucza: %S -noEmailProvided=Nie podano adresu e-mail! -keyAlreadySigned=Ten klucz jest już podpisany, nie można podpisać go ponownie. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=wygasł %S createdHeader=Utworzony atLeastOneKey=Nie wybrano klucza! Należy zaznaczyć co najmniej jedną pozycję. fewerKeysThanRecipients=Zaznaczono mniejszą liczbę kluczy niż odbiorców. Czy masz pewność, że ten zestaw kluczy do szyfrowania jest kompletny? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Wybierz klucz prywatny OpenPGP, aby podpisać wiadomość userSel.problemNoKey=Brak ważnego klucza userSel.problemMultipleKeys=Wiele kluczy -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Wyślij później - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=pierwszą second=drugą - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Wybierz klucz OpenPGP do szyfrowania -identityName=Tożsamość: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -enableEnigmail=&Wyłącz p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Uaktywniono szyfrowanie, ale nie wybrano żadnego klucza. Aby szyfrować wiadomości wysyłane do %S, należy wybrać co najmniej jeden ważny klucz z listy dostępnych. Czy chcesz wyłączyć szyfrowanie wiadomości do %S? -noKeyToUse=(brak – bez szyfrowania) -noEmptyRule=Reguła nie może być pusta! Wprowadź adres e-mail w polu edycji reguły. -invalidAddress=Wprowadzone adresy e-mail są niepoprawne. Nie należy wpisywać nazwy adresata, tylko sam adres. Np.\nNieprawidłowo: Jan Kowalski \nPrawidłowo: jakis.adres@poczta.pl -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Nigdy always=Zawsze possible=Możliwe -deleteRule=Czy usunąć wybraną regułę? -nextRcpt=(Następny adresat) -negateRule=Nie -addKeyToRule=Dodaj klucz %S (%S) do reguły dla adresata - -# Strings used in enigmailSearchKey.js -needOnline=Wybrana funkcja nie jest dostępna w trybie offline. Włącz tryb online i spróbuj ponownie. -noKeyserverConn=Nie można połączyć się z serwerem kluczy %S. -internalError=Wystąpił wewnętrzny błąd. Nie można pobrać/zaimportować kluczy. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nie powiodło się ustawienie poziomu zaufania dla właściciela - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Nie udało się podpisać klucza -alreadySigned.label=Informacja: klucz %S jest już podpisany za pomocą wybranego klucza prywatnego. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -partlySigned.label=Informacja: niektóre numery ID klucza %S zostały już podpisane przez wybrany klucz prywatny. -noTrustedOwnKeys=Nie znaleziono żadnego klucza zdatnego do podpisywania! Musisz mieć przynajmniej jeden w pełni zaufany klucz prywatny aby podpisywać klucze. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Wczytywanie kluczy, proszę czekać... keyValid.unknown=nieznany keyValid.invalid=niepoprawny keyValid.disabled=wyłączony keyValid.revoked=unieważniony keyValid.expired=utracił ważność keyValid.noSubkey=brak podklucza - -keyTrust.untrusted=brak +keyValid.valid=ważny +keyValid.ownKey=własny klucz +keyTrust.untrusted=nie zaufane keyTrust.marginal=ograniczone keyTrust.full=pełne keyTrust.ultimate=absolutne keyTrust.group=(grupa) -keyType.public=pub -keyType.publicAndSec=pub/pryw -keyMan.enableKey=Włącz klucz -keyMan.disableKey=Wyłącz klucz userAtt.photo=Atrybuty użytkownika (obraz JPEG) - -asciiArmorFile=Opakowanie ASCII (*.asc) importKeyFile=Import plik klucza OpenPGP -gnupgFile=Pliki GnuPG -saveRevokeCertAs=Utwórz i zapisz certyfikat unieważnienia -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Nie udało się utworzyć certyfikatu unieważnienia. - -addUidOK=Nowe ID zostało dodane -addUidFailed=Nie udało się dodać nowego ID -noKeySelected=Aby wykonać wybraną operację, należy zaznaczyć co najmniej jeden klucz -exportToFile=Eksport klucza publicznego do pliku -exportKeypairToFile=Eksport tajne i klucza publicznego do pliku -exportSecretKey=Czy chcesz dołączyć klucz prywatny do zapisywanego pliku z kluczami OpenPGP? -saveKeysOK=Klucze zostały zapisane -saveKeysFailed=Nie udało się zapisać kluczy -importKeysFailed=Nie udało się zaimportować kluczy -enableKeyFailed=Nie udało się włączenie/wyłączenie kluczy -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-pryw -defaultPubKeyFilename=Eksportowane-klucze-publiczne -defaultPubSecKeyFilename=Eksportowane-klucze-publiczne-i-prywatne - -sendKeysOk=Klucze zostały wysyłane -sendKeysFailed=Nie udało się wysłać kluczy -receiveKeysOk=Klucze zostały zaktualizowane -receiveKeysFailed=Nie udało się pobrać kluczy -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Czy chcesz zaimportować klucze ze schowka? -importFromUrl=Pobierz klucz publiczny z tego URL: -copyToClipbrdFailed=Nie udało się skopiować wybranych kluczy do schowka. -copyToClipbrdOK=Skopiowano klucze do schowka - -# deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=UWAGA! Zamierzasz usunąć klucze prywatne!\nJeśli usuniesz ten klucz, nie będziesz mieć możliwości odszyfrowania wiadomości zaszyfrowanych tym kluczem.\n\nCzy na pewno chcesz usunąć wszystkie zaznaczone klucze prywatne i publiczne? -deletePubKey=Czy chcesz usunąć klucz publiczny\n„%S”? -deleteSelectedPubKey=Czy chcesz usunąć wybrane klucze publiczne? -deleteKeyFailed=Nie udało się usunąć tego klucza. +importPubKeysFailed=Następujących kluczy publicznych nie można zaimportować do Thunderbirda: %S +importSecKeysFailed=Następujących kluczy prywatnych nie można zaimportować do Thunderbirda: %S +deleteSecretKey=OSTRZEŻENIE: Masz zamiar usunąć tajny klucz! Jeśli usuniesz swój tajny klucz, nie będziesz już w stanie odszyfrować żadnych wiadomości zaszyfrowanych dla tego klucza ani nie będziesz mógł go odwołać. Czy naprawdę chcesz usunąć zarówno, tajny klucz i klucz publiczny '%S'? revokeKeyQuestion=Zaraz unieważnisz klucz '%S'.\n\nNie będziesz w stanie podpisywać tym kluczem, oraz po dystrybucji, inni nie będą mogli używać go do szyfrowania. Nadal możesz używać go do odszyfrowywania starych wiadomości.\n\nPotwierdzić? -revokeKeyOk=Klucz został unieważniony. Jeżeli klucz jest dostępny na serwerze kluczy, zalecane jest ponowne wysłanie go na serwer, tak aby inni użytkownicy otrzymali informację o unieważnieniu. -revokeKeyFailed=Nie udało się unieważnić tego klucza. -# revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! +revokeKeyNotPresent=Nie posiadasz klucza (0x%S) który pasuje do tego certyfikatu odwołania!\nJeśli zgubiłeś klucz, musisz go zaimportować (np. Z serwera kluczy) przed importowaniem certyfikatu odwołania! revokeKeyAlreadyRevoked=Klucz 0x%S już jest unieważniony. -refreshAllQuestion=Nie wybrano żadnego klucza. Czy chcesz odświeżyć wszystkie klucze? -refreshKeyServiceOn.warn=Uwaga: Twoje klucze są odświeżane w tle tak bezpiecznie jak to możliwe.\nOdświeżenie wszystkich twoich klucz naraz może niepotrzebnie ujawnić informacje na twój temat.\nCzy na pewno chcesz to zrobić? -refreshKey.warn=Uwaga! W zależności od liczby kluczy i parametrów połączenia, odświeżenie wszystkich kluczy może być długą operacją! -downloadContactsKeys.warn=Uwaga! W zależności od liczby kontaktów i parametrów połączenia, pobieranie wszystkich kluczy może być długą operacją! -downloadContactsKeys.importFrom=Czy zaimportować kontakty z książki adresowej „%S”? -keyMan.button.exportSecKey=&Eksportuj klucze prywatne -keyMan.button.exportPubKey=Eksportuj tylko klucze &publiczne keyMan.button.import=&Importuj -keyMan.button.refreshAll=&Odśwież wszystkie klucze keyMan.button.revokeKey=&Unieważnij klucz - -keylist.noOtherUids=Nie ma innych tożsamości -keylist.hasOtherUids=Także znany jako -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Wybierz zdjęcie do dodania -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Wybrany plik nie jest w formacie JPEG. Wybierz inny plik. -keyMan.addphoto.failed=Nie można dodać zdjęcia. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Nie udało się zmienić głównego identyfikatora użytkownika -changePrimUidOK=Zmieniono główny identyfikator użytkownika -revokeUidFailed=Nie udało się unieważnić ID użytkownika %S -revokeUidOK=ID użytkownika %S został unieważniony. Jeżeli klucz jest dostępny na serwerze kluczy, zalecane jest ponowne wysłanie go na serwer, tak aby inni użytkownicy otrzymali informację o unieważnieniu. -revokeUidQuestion=Czy na pewno chcesz unieważnić ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUKCES! Zaimportowano klucze -# importInfoBits=Bits -importInfoCreated=Utworzono -importInfoFpr=Odcisk -importInfoDetails=(Szczegóły) -importInfoNoKeys=Nie zaimportowano żadnych kluczy. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=klucz publiczny -keyTypePrimary=klucz główny -keyTypeSubkey=podklucz -keyTypePair=para kluczy -keyExpiryNever=nigdy keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,217 +101,46 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Szyfruj -keyUsageSign=Podpisz -keyUsageCertify=Certyfikuj -keyUsageAuthentication=Uwierzytelnianie -keyDoesNotExpire=Klucz nigdy nie traci ważności - -# Strings in enigmailGenCardKey.xul -keygen.started=Proszę czekać. Trwa proces tworzenia klucza… -keygen.completed=Klucz został utworzony. Nowy ID klucza to: 0x%S. -keygen.keyBackup=Klucz został zapisany jako %S -keygen.passRequired=Podaj hasło, jeśli chcesz utworzyć kopię zapasową swojego klucza poza kartą SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Nie udało się zmienić numeru PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Trwa odświeżanie kluczy… Proszę czekać. -keyserverProgress.uploading=Trwa wysyłanie kluczy, proszę czekać... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -keyserverProgress.wksUploadCompleted=Twój klucz publiczny został wysłany do dostawcy. Otrzymasz e-mail z potwierdzeniem, że zainicjowałeś wgrywanie. -keyserverTitle.refreshing=Odświeżanie kluczy -keyserverTitle.uploading=Wysyłanie kluczy -keyserver.result.download.none=Nie pobrano żadnego klucza. -keyserver.result.download.1of1=Pobrano klucz. -keyserver.result.download.1ofN=Pobrano 1 z %S kluczy. -keyserver.result.download.NofN=Pobrano %1$S z %2$S kluczy. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Wybrany plik GnuPG nie jest plikiem wykonywalnym. Wybierz inny plik. -setupWizard.installFailed=Wygląda na to, że instalacja nie powiodła się. Spróbuj ponownie uruchomić instalację lub zainstaluj GnuPG ręcznie i zlokalizuj go, używając przycisku Przeglądaj… -setupWizard.downloadForbidden=Dla twojego własnego bezpieczeństwa nie pobierzemy GnuPG. Odwiedź proszę https://gnupg.org/ aby pobrać samodzielnie GnuPG. -setupWizard.downloadImpossible=W tej chwili nie można pobrać GnuPG. Proszę spróbować później lub odwiedzić stronę https://gnupg.org/, aby pobrać GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Wybierz plik kopii zapasowej do wczytania -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Plik konfiguracyjny GnuPG już istnieje. Czy chcesz nadpisać go plikiem ze swojej poprzedniej instalacji? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Podczas pobierania GnuPG wystąpił błąd. Otwórz proszę dziennik konsoli, aby zobaczyć szczegółowe informacje. -installGnuPG.installFailed=Podczas instalowania GnuPG wystąpił błąd. Otwórz proszę dziennik konsoli, aby zobaczyć szczegółowe informacje. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Należy uzupełnić nazwę i adres e-mail -addUidDlg.nameMinLengthError=Nazwa musi składać się z co najmniej 5 znaków -addUidDlg.invalidEmailError=Należy podać poprawny adres e-mail - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Karta SmartCard obsługuje jedynie znaki ASCII w polach „Imię i nazwisko”/„Nazwa”. - - -# network error types +setupWizard.selectKeysButton=Wybierz klucze errorType.SecurityCertificate=Usługa przedstawia nieważny certyfikat zabezpieczeń. errorType.SecurityProtocol=Usługa używa nieznanego protokołu zabezpieczeń. errorType.Network=Wystąpił błąd sieci. - -# filter stuff -filter.folderRequired=Musisz wybrać katalog docelowy. -filter.decryptMove.label=Odszyfrować na stałe (Enigmail) -filter.decryptCopy.label=Tworzenie kopii szyfrowanej (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -filter.term.pgpencrypted.label=Zaszyfrowany OpenPGP -# filter.encrypt.label=Encrypt to key (Enigmail) -filter.keyRequired=Musisz wybrać klucz odbiorcy. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Zapisz plik dziennika - -# strings in gpg.jsm -unknownSigningAlg=Nieznany algorytm podpisu (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Zdjęcie keyRing.pubKeyRevoked=Klucz %1$S (ID klucza %2$S) jest unieważniony. keyRing.pubKeyExpired=Klucz %1$S (ID klucza %2$S) utracił ważność. keyRing.pubKeyNotForSigning=Klucz %1$S (key ID %2$S) nie może być użyty do podpisywania. -# keyRing.pubKeyNotForEncryption=The key %1$S (key ID %2$S) cannot be used for encryption. +keyRing.pubKeyNotForEncryption=Klucz %1$S (key ID %2$S) nie może być używany do szyfrowania. keyRing.keyDisabled=Klucz %1$S (ID klucza %2$S) jest wyłączony; nie może zostać użyty. keyRing.keyNotTrusted=Brak wystarczającego zaufania dla klucza %1$S (key ID %2$S). Proszę ustawić poziom zaufania klucza na absolutny, aby używać go do podpisywania. keyRing.keyInvalid=Klucz %1$S (ID klucza %2$S) nie jest ważny. Proszę spróbuj zweryfikować go poprawnie. Możesz też użyć domyślnych ustawień szyfrowania w oknie preferencji Enigmail. -# keyRing.signSubKeysRevoked=All signing-subkeys of key %1$S (key ID %2$S) are revoked. +keyRing.signSubKeysRevoked=Wszystkie podklucze klucza podpisującego %1$S (key ID %2$S) są odwołane. keyRing.signSubKeysExpired=Wszystkie podklucze klucza %1$S (ID klucza %2$S) utraciły ważność. keyRing.signSubKeysUnusable=Wszystkie podklucze klucza %1$S (key ID %2$S) zostały unieważnione, wygasły lub z innych powodów nie nadają się do użytku. -# keyRing.encSubKeysRevoked=All encryption subkeys of key %1$S (key ID %2$S) are revoked. +keyRing.encSubKeysRevoked=Wszystkie podklucze szyfrowania klucza %1$S (key ID %2$S) są odwołane keyRing.encSubKeysExpired=Wszystkie podklucze szyfrowania klucza %1$S (ID klucza %2$S) utraciły ważność. -keyRing.noSecretKey=Wygląda na, że nie masz klucza prywatnego dla %1$S (key ID %2$S) w swoim zestawie kluczy. Nie możesz użyć go do podpisywania. +keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. keyRing.encSubKeysUnusable=Wszystkie podklucze klucza %1$S (key ID %2$S) zostały unieważnione, wygasły lub z innych powodów nie nadają się do użytku. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Nie można zapisać pliku „%S”. Proszę wybierz inny plik. dataExportError=Wystąpił błąd podczas eksportowania twoich danych. -enigmailSettings=Ustawienia Enigmail -# defaultBackupFileName=Enigmail-export -specifyExportFile=Podaj nazwę pliku do wyeksportowania -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm -# expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. -# expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. -# expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. +expiry.keyExpiresSoon=Twój klucz %1$S wygaśnie za mniej niż %2$S dni. Zalecamy utworzenie nowej pary kluczy i skonfigurowanie odpowiednich kont do korzystania z niej. +expiry.keysExpireSoon=Twoje następujące klucze wygasną za mniej niż%1$S dni:\n%2$S. Zalecamy utworzenie nowych kluczy i skonfigurowanie odpowiednich kont, aby z nich korzystać. +expiry.keyMissingOwnerTrust=W Twoim kluczu prywatnym %S brakuje zaufania. Zaleca się ustawienie zaufania na najwyższe we właściwościach klucza. +expiry.keysMissingOwnerTrust=Poniższe klucze prywatne nie są zaufane. %S. Zalecamy aby we właściwościach klucza ustawić poleganie certyfikatu na najwyższy. expiry.OpenKeyManager=Otwórz zarządzanie kluczami Enigmail expiry.OpenKeyProperties=Właściwości Open Key - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm gpghomedir.notexists=Katalog "%S" zawierający twoje klucze OpenPGP nie istnieje i nie można go utworzyć. gpghomedir.notwritable=Katalog "%S" zawierający twoje klucze OpenPGP nie jest zapisywalny. gpghomedir.notdirectory=Katalog "%S" zawierający twoje klucze OpenPGP jest plikiem, a nie katalogiem. -# gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. -# gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -pepTrustWords.cannotFindKey=Nie można znaleźć klucza dla %S. -pepTrustWords.cannotStoreChange=Nie można zmienić poziomu zaufania dla %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -pepTrustWords.partnerFingerprint=Odcisk dla %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -wkdMessage.body.process=Ta wiadomość dotyczy automatycznego procesu wgrywania twojego klucza publicznego do katalogu kluczy OpenPGP.\n\nNie musisz nic robić. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Jeśli utworzyłeś tę wiadomość, twój klucz nie jest dostępny. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -pepPrivacyStatus.RatingTrustedSuggestion=Nie jest wymagane żadne działanie! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Proszę podać wymaganie informacje. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Ta wiadomość jest niepoprawnie zaszyfrowana lub sformatowana. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Nie można odszyfrować tej wiadomości, ponieważ nie ma dostępnego klucza. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -pepPrivacyStatus.RatingReliableExplanation=Ta wiadomość jest zabezpieczona, ale nadal musisz potwierdzić tożsamość korespondenta. -pepPrivacyStatus.RatingTrustedExplanation=Ta wiadomość jest bezpieczna i zaufana. -pepPrivacyStatus.RatingUndefinedExplanation=Ta wiadomość nie zawiera wystarczających informacji, aby określić czy jest bezpieczna. -pepPrivacyStatus.RatingUnderAttackExplanation=Ta wiadomość nie jest bezpieczna i została naruszona. -pepPrivacyStatus.RatingUnencryptedExplanation=Ta wiadomość nie jest bezpieczna. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -pepPrivacyStatus.RatingUnreliableExplanation=Ta wiadomość ma niewiarygodne zabezpieczenie. - -# pepPrivacyStatus.RatingBrokenText=Broken -pepPrivacyStatus.RatingHaveNoKeyText=Nie można odszyfrować -pepPrivacyStatus.RatingMistrustText=Brak zaufania -pepPrivacyStatus.RatingReliableText=Bezpieczne -pepPrivacyStatus.RatingTrustedText=Bezpieczne i zaufane -pepPrivacyStatus.RatingUndefinedText=Nieznany -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -pepPrivacyStatus.RatingUnencryptedForSomeText=Niezabezpieczone dla niektórych -pepPrivacyStatus.RatingUnencryptedText=Niezabezpieczone -pepPrivacyStatus.RatingUnreliableText=Zabezpieczenie niewiarygodne - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Wiadomość wychodząca -handshakeDlg.label.incomingMessage=Wiadomość przychodząca -handshakeDlg.error.noPeers=Handshake nie jest możliwy przy braku korespondentów. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Wiadomość konfiguracyjna Autocrypt -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Co nowego w wersji 2.0 Enigmail? -upgradeInfo.welcome1=Witaj w nowym Enigmail wersja 2.0! -upgradeInfo.welcome2=Ta wersja zawiera dużo nowości i zmian w funkcjonowaniu. Proszę poświęć minutę, aby dowiedzieć się co nowego: -upgradeInfo.encSubject.title=Szyfrowanie tematu wiadomości -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -upgradeInfo.autocrypt.title=Wsparcie dla Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Proszę odwiedzić naszą dokumentację, aby uzyskać pomoc w używaniu Enigmail. - -#strings in pEpAdapter.jsm -# 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. -pep.updateAvailable=Dostępna jest nowa wersja silnika kryptograficznego Enigmail/p≡p. Czy chcesz pobrać i zainstalować aktualizację? - -#strings in enigmailAbout.html +gpghomedir.notusable=Proszę poprawić uprawnienia do katalogu lub zmienić lokalizację katalogu „domowego” GnuPG. W przeciwnym razie GnuPG nie będzie działać poprawnie. +gpgAgent.noAutostart=Używasz GnuPG w wersji %S. Ta wersja wymaga, abyś uruchomił gpg-agent przed uruchomieniem Thunderbirda, a zmienna środowiskowa „GPG_AGENT_INFO” była wstępnie załadowana. Te warunki wstępne nie są spełnione - nie możesz używać Enigmail, dopóki nie rozwiążesz tego problemu. +upgradeInfo.doctitle=Do widzenia od Enigmail +upgradeInfo.welcome1=Szyfrowanie OpenPGP jest od teraz częścią Thunderbirda. +upgradeInfo.welcome2=Enigmail nie jest dłużej wymagany w Thunderbirdzie, i stał się przestarzały - to jest finalna wersja Enigmail dla Thunderbird. +upgradeInfo.migrateSettings.title=Migracja twoich kluczy i ustawień z GnuPG do Thunderbird +upgradeInfo.migrateSettings.desc=Przed odinstalowaniem Enigmaila pozostaje tylko import kluczy z GnuPG do Thunderbirda i migracja niektórych ważnych ustawień z Enigmail do Thunderbirda. Przygotowaliśmy kreatora, który wykona te czynności za Ciebie. +upgradeInfo.performMigration.buttonLabel=Rozpocznij migrację teraz +upgradeInfo.thankyou.title=Dziękujemy za korzystanie z Enigmail +upgradeInfo.thankyou.desc1=Praca nad Enigmail była przyjemnością przez prawie dwie dekady. Jesteśmy wdzięczni, że mogliśmy przyczynić się do powstania idei zaszyfrowanych wiadomości e-mail. Mamy nadzieję, że Enigmail okazał się przydatny i chcieli byśmy podziękować za nieustające wsparcie przez te wiele lat. +upgradeInfo.thankyou.desc2=Jeśli chcesz pomóc, proszę rozważ 1 donating to Thunderbird1. aboutEnigmail.tabName=O Enigmail aboutEnigmail.title=Enigmail - wsparcie dla OpenPGP aboutEnigmail.team=Enigmail jest rozwijane przez grupę Enigmail: @@ -810,7 +149,7 @@ aboutEnigmail.documentation=Dokumentacja: aboutEnigmail.testing=Testowanie: aboutEnigmail.userSupport=Wsparcie użytkowników: -# aboutEnigmail.userSupport.team=the team and the list/forum members +aboutEnigmail.userSupport.team=Zespół i lista członków forum. aboutEnigmail.localization=Lokalizacja: Zobacz stronę pakietów językowych Enigmail aboutEnigmail.Credits=Zasługi: aboutEnigmail.origAuthor=Pierwotny autor rozszerzenia Enigmail @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licencja i wsparcie aboutEnigmail.license=Enigmail OpenPGP jest otwartym oprogramowaniem open source na licencji %S. aboutEnigmail.support=Wsparcie i pliki do pobrania są dostępne na www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Aktualizacja GnuPG -updateGnuPG.title=Aktualizacje GnuPG -updateGnuPG.introduction.desc=Enigmail wymaga programu GnuPG, aby móc realizować swoje funkcje kryptograficzne. Zalecamy posiadanie aktualnej instalacji GnuPG. -updateGnuPG.updateRequired=Dostępna jest nowsza wersja GnuPG. Zalecamy używanie zawsze najnowszej wersji GnuPG. Kliknij, proszę na przycisk Zainstaluj aktualizację, aby pobrać i zainstalować aktualizację. -updateGnuPG.noUpdateRequired=GnuPG jest aktualny. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -updateGnuPG.installUpdate=Zainstaluj aktualizację -updateGnuPG.noMoreUpdates=Nie sprawdzaj przyszłych aktualizacji updateGnuPG.checkUpdate=Sprawdź aktualizacje GnuPG - - -#strings in keyserver.jsm -keyserver.error.aborted=Przerwano -keyserver.error.unknown=Wystąpił nieznany błąd -keyserver.error.serverError=Serwer kluczy zakomunikował błąd. -keyserver.error.importError=Zaimportowanie pobranego klucza nie powiodło się. -keyserver.error.unavailable=Serwer kluczy nie jest dostępny. -keyserver.error.securityError=Serwer kluczy nie wspiera dostępu szyfrowanego. -keyserver.error.certificateError=Certyfikat serwera kluczy jest nieprawidłowy. -keyserver.error.unsupported=Ten serwer kluczy nie jest wspierany przez Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm -# import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +import.secretKeyImportError=Wystąpił błąd w GnuPG podczas importowania tajnych kluczy. Importowanie nie powiodło się. +passphrasePrompt=Proszę podać hasło dla następującego klucza: %S +openpgpInitError=Wystąpił błąd podczas inicjalizacji infrastruktury OpenPGP w Thunderbirdzie. Kreator migracji nie może kontynuować, jeśli OpenPGP w Thunderbirdzie nie został poprawnie zainicjowany. diff -Nru enigmail-2.1.6+ds1/lang/pl/help/compose.html enigmail-2.2.4/lang/pl/help/compose.html --- enigmail-2.1.6+ds1/lang/pl/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Pomoc dla Enigmail: Tworzenie wiadomości - - - - - -

Pomoc dla Enigmail

- -

Używanie Enigmail w oknie tworzenia wiadomości

- -
-
Menu Enigmail w oknie tworzenia wiadomości
- -
-
-
Podpisz wiadomość
- -
Włącza/wyłącza podpisywanie wiadomości. Użytkownik jest powiadamiany, jeśli podpisywanie się nie powiodło.
- -
Szyfruj wiadomość
-
-

Włącza/wyłącza szyfrowanie dla wszystkich odbiorców przed wysłaniem. Użytkownik jest powiadamiany, jeśli szyfrowanie się nie powiodło.

- -

Jeśli funkcja Wyświetlaj wybór w razie potrzeby, jest ustawiona na karcie Ustawienia » Zaawansowane » Wybór klucza, będzie wyświetlana lista kluczy, jeśli na liście odbiorców wiadomości znajdują się adresy dla, których nie masz kluczy publicznych.

- -

Jeśli funkcja Nigdy nie wyświetlaj wyboru klucza OpenPGP, jest ustawiona na karcie Ustawienia » Wybór klucza, wiadomość będzie wysyłana niezaszyfrowana, jeśli na liście odbiorców wiadomości znajdują się adresy dla, których nie masz kluczy publicznych.

-
- -
Użyj PGP/MIME dla tej wiadomości
- -
- Włącza/wyłącza użycie PGP/MIME dla danej wiadomości. - -

Jeśli wiesz, że odbiorca może przeczytać wiadomość za pomocą formatu PGP/MIME, należy go użyć.

- -

Ta funkcja jest zależna od ustawień na karcie Ustawienia » PGP/MIME Zezwalaj na używanie PGP/MIME lub Zawsze używaj PGP/MIME.

-
- -
Domyślne opcje tworzenia wiadomości
- -
-
    -
  • Opcje podpisu/szyfrowania… – skrót do Konfiguracja kont » OpenPGP.
  • - -
  • Wysyłanie wiadomości… – skrót do karty Ustawienia » Wysyłanie.
  • - -
  • Opcje wyboru kluczy… – skrót do do karty Ustawienia » Wybór kluczy.
  • - -
  • Opcje PGP/MIME… – skrót do do karty Ustawienia » PGP/MIME.
  • -
-
- -
Cofnij szyfrowanie
- -
-

Jeśli wysyłanie wiadomości się nie powiodło, na przykład z powodu odrzucenia żądania przez serwer POP, Enigmail nie będzie o tym wiedział i zaszyfrowana wiadomość będzie wyświetlana w oknie tworzenia wiadomości. Wybranie tej funkcji spowoduje cofnięcie szyfrowania/podpisywania i w oknie tworzenia wiadomości będzie wyświetlany oryginalny tekst.

- -

Jako tymczasowe rozwiązanie, funkcja ta może być również używana do odszyfrowania cytowanego tekstu podczas odpowiedzi na zaszyfrowane wiadomości. Enigmail powinien automatycznie rozszyfrować cytowaną wiadomość, ale jeśli z jakiegoś powodu zawiedzie, można za pomocą tej funkcji wymusić deszyfrowanie.

-
- -
Wstaw klucz publiczny
- -
Wstawia w oknie tworzenia wiadomości blok klucza publicznego w aktualnej pozycji kursora. Użytkownik będzie proszony o podanie adresu e-mail wstawianego klucza. Klucze wstawiane w ten sposób będą u odbiorcy automatycznie rozpoznawane przez Enigmail. Po wstawieniu klucza można nadal wybrać podpisanie/szyfrowanie wiadomości. Nie należy do wiadomości wstawiać więcej niż jeden blok klucza, wystarczy, gdy pojawi się monit, podać wiele adresów e-mail, oddzielając je przecinkami lub spacjami.
- -
Wyczyść zapisane hasło
- -
Czyści zbuforowane szyfry. Użyteczne, jeśli masz wiele szyfrów.
- -
Pomoc
- -
Wyświetla pomocne informacje z witryny internetowej (tę stronę).
-
-
-
-
- -

Więcej pomocy można uzyskać na stronie pomocy Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pl/help/editRcptRule.html enigmail-2.2.4/lang/pl/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/pl/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Pomoc dla Enigmail: Edycja reguł OpenPGP - - - - - -

Pomoc dla Enigmail

- -

Używanie edytora reguł Enigmail: Edycja reguł OpenPGP

- -

W edytorze reguł można określić dla każdego odbiorcy domyślne ustawienia szyfrowania, podpisywania, PGP/MIME i zdefiniować używane klucze OpenPGP. W tym oknie dialogowym można określić reguły dla konkretnego odbiorcy i dla grupy odbiorców, używając podobnych atrybutów.

- -
-
Pole „Określ reguły OpenPGP dla”
- -
Reguły zawierają adresy e-mail odbiorcy (bez nazwisk, po prostu adres, jak: somebody@nazwa_domeny). Możesz podać kilka adresów e-mail, rozdzielając je spacjami. Podany tutaj adres może składać się tylko z domeny, np. @nazwa_domeny. Reguła będzie wówczas pasowała do wszystkich adresów w tej domenie, np. @nazwa_domeny będzie pasować do body@nazwa_domenyl, somebody@nazwa_domeny, anybody@nazwa_domeny itd.
- -
Zastosuj regułę, gdy adresat…
- -
- Ustawienie to modyfikuje dopasowanie adresów e-mail. Jeśli jest podane wiele adresów, ustawienie będzie miało zastosowanie do wszystkich. Przykłady są oparte na przykładowym adresie body@nazwa_domeny podanym w powyższym polu. - -
    -
  • Jest taki sam, jak – reguła będzie miała zastosowanie tylko do wiadomości adresowanych do body@nazwa_domeny (wielkość znaków musi się zgadzać).
  • - -
  • Zawiera – będzie pasował każdy adres wiadomości zawierający podany ciąg znaków, np. anybody@nazwa_domeny lub body@nazwa_domeny.net.
  • - -
  • Rozpoczyna się od – będzie pasował każdy adres wiadomości rozpoczynający się podanym ciągiem znaków, np. body@nazwa_domeny.net, body@nazwa_domeny-nazwa.com.
  • - -
  • Kończy się na – będzie pasował każdy adres wiadomości kończący się podanym ciągiem znaków, np. anybody@nazwa_domeny, somebody@nazwa_domeny.
  • -
-
- -
Przejdź do następnej reguły pasującej do adresu
- -
Włączenie tej funkcji umożliwi zdefiniowanie reguły, ale nie trzeba określać klucza w polu Użyj następujących kluczy OpenPGP:, więc adres e-mail jest wykorzystywany do sprawdzania klucza w momencie wysyłania. Dla tego adresu będą również przetwarzane inne reguły.
- -
Nie sprawdzaj kolejnych reguł pasujących do adresu
- -
Włączenie tej funkcji, jeśli reguła pasuje, zatrzyma przetwarzanie innych reguł dla pasujących adresów, na przykład kontynuowanie przetwarzania reguły dla następnego odbiorcy.
- -
Użyj następujących kluczy OpenPGP:
- -
Użyj przycisku Wybierz klucze, by wybrać klucze odbiorcy, które będą używane do szyfrowania. Oprócz czynności określonej powyżej żadne inne reguły nie są przetwarzane.
- -
Wysyłając wiadomości włącz…
- -
- Włącza lub wyłącza podpisywanie wiadomości. Funkcja ta używa lub zastępuje to, co zostało określone w oknie tworzenia wiadomości. Ustawienia są następujące: - -
    -
  • Nigdy – wyłącza podpisywanie, nawet jeśli zostało włączone w oknie tworzenia wiadomości (zastępuje wszystkie inne wartości reguł),
  • - -
  • Tak, jeśli zaznaczono taką opcję tworzenia wiadomości – pozostawia sposób podpisywania określony w oknie tworzenia wiadomości,
  • - -
  • Zawsze – włącza podpisywanie, nawet jeśli nie zostało włączone w oknie tworzenia wiadomości.
  • -
Te ustawienia podpisywania są stosowane do wszystkich reguł, do których pasują. Jeśli jedna z reguł wyłącza podpisywanie, wiadomość nie będzie podpisywana, pomimo że inne reguły mają ustawienie zawsze. -
- -
Szyfrowanie
- -
Włącza lub wyłącza szyfrowanie wiadomości. Ustawienia i ich znaczenie są takie same jak dla podpisywania wiadomości.
- -
PGP/MIME
- -
Włącza lub wyłącza kodowanie wiadomości w formacie PGP/MIME (RFC 3156). Jeśli PGP/MIME jest wyłączone, wiadomości są kodowane za pomocą „inline PGP”. Ustawienia i ich znaczenie są takie same jak dla podpisywania wiadomości.
-
- -

Reguły są przetwarzane w kolejności, w jakiej są wyświetlane w edytorze reguł OpenPGP. Gdy reguła pasuje do odbiorcy i zawiera klucz OpenPGP, oprócz używania określonego klucza, przy kolejnym przetwarzaniu reguł odbiorca nie jest brany pod uwagę.

-
- -

Więcej pomocy można uzyskać na stronie pomocy Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pl/help/initError.html enigmail-2.2.4/lang/pl/help/initError.html --- enigmail-2.1.6+ds1/lang/pl/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - Pomoc dla Enigmail: Jak rozwiązać problemy z zainicjowaniem OpenPGP - - - - - -

Pomoc dla Enigmail

- -

Jak rozwiązać problemy z zainicjowaniem OpenPGP

- -

Zainicjowanie OpenPGP może się nie powieść z różnych powodów. Najczęściej występujące są opisane poniżej. Więcej informacji na ten temat można znaleźć na stronie pomocy Enigmail.

- -
-
Nie można znaleźć GnuPG
-
-

- Aby OpenPGP działało, musi być zainstalowane narzędzie GnuPG. - Jeśli nie można znaleźć GnuPG, najpierw należy sprawdzić czy na komputerz jest zainstalowanye plik wykonywalny: gpg.exe w systemie Windows lub gpg w innych systemach. - Jeśli GnuPG jest zainstalowane i OpenPGP nie może go znaleźć, trzeba w ustawieniach OpenPGP (menu OpenPGP » Preferencje) ręcznie określić ścieżkę do GnuPG. -

- -
Nie udało się zainicjować Enigmime
- -
-

- OpenPGP działa tylko, jeśli zostało zbudowane za pomocą tego samego środowiska tworzenia, co np. Thunderbird lub SeaMonkey. Oznacza to, że możesz używać oficjalnych wydań Enigmail tylko jeśli używasz oficjalnych wydań Thunderbird lub SeaMonkey dostarczanych przez mozilla.org. -

-

- Jeśli używasz wersji Thunderbirda lub SeaMonkey pochodzących z innych źródeł, np. od dostarczyciela twojej dystrybucji Linuksa lub aplikacja została zbudowana we własnym zakresie, należy użyć Enigmail zbudowanego przez to samo źródło lub zbudować go we własnym zakresie. Aby zbudować Enigmail, przejdź do sekcji z kodem źródłowym znajdującej się na stronie Enigmail. Nie zgłaszaj błędów dotyczących tego błędu - nie są one rozwiązywalne. -

-
- -
-

Więcej pomocy można uzyskać na stronie pomocy Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pl/help/messenger.html enigmail-2.2.4/lang/pl/help/messenger.html --- enigmail-2.1.6+ds1/lang/pl/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Pomoc dla Enigmail: Czytanie wiadomości - - - - - -

Pomoc dla Enigmail

- -

Używanie Enigmail podczas czytania wiadomości

- -
-
Przycisk Deszyfruj w głównym oknie wiadomości
- -
Przycisk ten może być używany do różnych celów: deszyfrowania, weryfikowania lub importowania kluczy publicznych. Normalnie deszyfrowanie/weryfikowanie odbywa się automatycznie i może być wyłączone w ustawieniach. Jeśli automatyczne deszyfrowanie/weryfikowanie się nie powiedzie, w pasku statusu Enigmail zostanie wyświetlona informacja o błędzie. Po naciśnięciu przycisku Deszyfruj zostaną wyświetlone szczegółowe informacje dotyczące tego błędu zawierające polecenia z GnuPG.
- -
Ikony pióra i klucza wyświetlane w nagłówku wiadomości
- -
- Ikony pióra i klucza wyświetlane w nagłówku wiadomości informują, czy aktualnie czytana wiadomość została podpisana i/lub zaszyfrowana i czy podpis jest prawidłowy, np. że wiadomość nie została zmieniona od czasu jej podpisania. Jeśli wiadomość została zmieniona, kolor ikony pióra zostanie zmieniony na czerwony, informując, że podpis jest nieprawidłowy. Kliknięcie prawym przyciskiem myszy którejś z tych ikon, spowoduje wyświetlenie menu zawierającego następujące opcje: - -
    -
  • Informacje OpenPGP… – umożliwia podgląd statusu elementów wyjściowych z GnuPG dla wiadomości.
  • - -
  • Kopiuj informacje OpenPGP – kopiuje status elementów wyjściowych z GnuPG do schowka, by następnie można było wstawić je do odpowiedzi na wiadomość itp.
  • - -
  • Pokaż zdjęcie – umożliwia podgląd zdjęcia osoby, która wysłała wiadomość, jeśli zdjęcie zostało dołączone do klucza publicznego. (Ta funkcja będzie włączona tylko, jeśli zdjęcie jest w kluczu danego nadawcy).
  • - -
  • Informacje S/MIME… – umożliwia zobaczenie informacji bezpieczeństwa S/MIME dla wiadomości.
  • -
- -

Jeśli w pliku gpg.conf nie są ustawione funkcje keyserver-options auto-key-retrieve i czytasz podpisaną lub zaszyfrowaną wiadomość, w nagłówku czytanej wiadomości będzie widoczna ikona pióra ze znakiem zapytania, a w pasku statusu Enigmail będzie wyświetlana informacja Część wiadomości podpisana; kliknij ikonę pióra, by zobaczyć szczegóły i w wiadomości zostanie wyświetlony blok zawierający wszystkie wskaźniki OpenPGP i blok podpisu.

- -

Możesz także zobaczyć tę informację, jeśli w pliku gpg.conf są ustawione funkcje keyserver-options auto-key-retrieve, a klucz OpenPGP jest niedostępny na domyślnym serwerze kluczy.

- -

Po kliknięciu ikony pióra ze znakiem zapytania, zostanie wyświetlone okno informujące, że klucz nie jest dostępny w twojej bazie kluczy. Po naciśnięciu przycisku OK, zostanie wyświetlone kolejne okno zawierające listę serwerów kluczy, z której można wybrać do pobrania klucz publiczny nadawcy.

- -

Aby skonfigurować listę serwerów kluczy, których chcesz używać, przejdź na kartę OpenPGP » Ustawienia » Zaawansowane » Serwery kluczy i w polu Określ swoje serwery kluczy, wprowadź adresy serwerów kluczy, oddzielając je przecinkami. Pierwszy serwer na liście będzie używany jako domyślny serwer.

-
- -
Otwierania zaszyfrowanych załączników/importowanie załączonych kluczy OpenPGP
- -
Załączniki z rozszerzeniem *.pgp, *.asc i *.gpg są rozpoznawane jako załączniki, które mogą być obsługiwane przez Enigmail specjalnie. Kliknięcie takiego załącznika prawym przyciskiem myszy spowoduje wyświetlenie w menu kontekstowym dwóch specjalnych elementów: Deszyfruj i otwórz i Deszyfruj i zapisz jako… Użyj tych dwóch elementów, jeśli chcesz, by Enigmail deszyfrował załącznik przed otworzeniem lub jego zapisaniem. Jeśli załącznik jest rozpoznany jako plik klucza OpenPGP, zostanie zaoferowane zaimportowanie kluczy do twojej bazy kluczy.
-
-
- -

Więcej pomocy można uzyskać na stronie pomocy Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pl/help/rulesEditor.html enigmail-2.2.4/lang/pl/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/pl/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Pomoc dla Enigmail – Edytor reguł - - - - - -

Pomoc dla Enigmail

- -

Użycie edytora reguł

- -

W edytorze reguł można określić domyślne ustawienia dla każdego adresata: włączyć szyfrowanie, podpisywanie, kodowanie PGP/MIME oraz zdefiniować działanie kluczy OpenPGP. Każda reguła składa się z pięciu, umieszczonych każde w osobnym wierszu, pól:

- -
-
E-mail
- -
Pola do dopasowywania wiadomości e-mail – Do:, Kopia: i Ukryta kopia:. Dopasowywanie działa w oparciu o substringi. Więcej szczegółów można znaleźć w oknie dialogowym edytora reguł.
- -
Klucze OpenPGP
- -
Wykaz ID kluczy OpenPGP używanych dla adresata
- -
Podpis
- -
- Włącza lub wyłącza podpisywanie wiadomości. Ta funkcja używa lub nadpisuje, to co zostało określone w oknie tworzenia wiadomości. Dostępne ustawienia: - -
    -
  • Nigdy – wyłącza podpisywanie wiadomości, nawet jeśli funkcja była włączona w oknie tworzenia wiadomości – unieważnia inne ustawienia.
  • - -
  • Pozostaw – pozostawia podpis, taki jaki był ustawiony w oknie tworzenia wiadomości,
  • - -
  • Zawsze – włącza podpisywanie wiadomości, nawet jeśli nie było włączone w oknie tworzenia wiadomości.
  • -
- -

Ustawienia podpisywania są stosowane dla tych wszystkich reguł, które mają włączoną funkcję podpisywania. Jeśli jakaś reguła wyłącza podpisywanie, wiadomość nie będzie podpisywana bez względu na inne reguły, które określają Zawsze.

-
- -
Szyfrowanie
- -
Włącza lub wyłącza szyfrowanie wiadomości. Dostępne ustawienia i znaczenie są takie same, jak dla podpisywania wiadomości.
- -
PGP/MIME
- -
Włącza lub wyłącza używanie kodowania PGP/MIME (RFC 3156) wiadomości. Jeśli PGP/MIME jest wyłączone, wiadomości są kodowane za pomocą „inline PGP”. Dostępne ustawienia i znaczenie są takie same, jak dla podpisywania wiadomości.
-
- -

Reguły są przetwarzane w kolejności, w jakiej są wyświetlane na liście. W przypadku, gdy reguła pasuje do odbiorcy i zawiera ID klucza OpenPGP, oprócz korzystania z określonego ID klucza odbiorcy, nic innego nie jest brane pod uwagę podczas przetwarzania kolejnych reguł.

- -

Informacja. Proces twórczy edytora reguł nie jest jeszcze zakończony. Bardziej zaawansowane reguły można tworzyć, edytując bezpośrednio plik reguł. Reguły edytowane w ten sposób nie powinny już być nigdy edytowane w edytorze reguł. Więcej informacji na temat bezpośredniego edytowania pliku reguł jest dostępnych na stronie domowej Enigmail.

-
- -

Więcej pomocy można uzyskać na stronie pomocy Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pl/help/sendingPrefs.html enigmail-2.2.4/lang/pl/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/pl/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pl/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Pomoc dla Enigmail – Edytowanie reguł OpenPGP - - - - - -

Pomoc dla Enigmail

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/am-enigprefs.properties enigmail-2.2.4/lang/pt-BR/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/pt-BR/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Segurança OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/enigmail.dtd enigmail-2.2.4/lang/pt-BR/enigmail.dtd --- enigmail-2.1.6+ds1/lang/pt-BR/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' para especificar endereços de email"> - - -' para especificar endereços de email para o GnuPG. Desabilite caso os destinatários possuam chaves antigas do Hushmail keys."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Segurança OṕenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: A geração de chaves pode levar até vários minutos para terminar. Não feche o navegador enquanto a geração de chaves estiver em processo. Navegar ou realizar operações intensivas de disco irão preencher o 'espaço aleatório' e agilizar o processo. Você será alertado quando a geração de chaves estiver concluída."> - @@ -296,487 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' é inválido"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: A geração da chave pode levar até vários minutos para terminar. Não saia da aplicação enquanto a geração da chave estiver em progresso. Você será alertado quando a geração da chave estiver completa."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/enigmail.properties enigmail-2.2.4/lang/pt-BR/enigmail.properties --- enigmail-2.1.6+ds1/lang/pt-BR/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Alerta do Enigmail # enigConfirm=Enigmail Confirmation enigInfo=Informação acerca do Enigmail -enigError=Erro do Enigmail enigPrompt=Pergunta do Enigmail - -dlgYes=&Sim dlgNo=&Não dlgKeepSetting=Lembrar da minha resposta e não me perguntar novamente dlgNoPrompt=Não mostrar esta mensagem novamente -dlg.button.delete=Apagar (&D) dlg.button.cancel=&Cancelar dlg.button.close=Fe&char dlg.button.continue=Con&tinuar -dlg.button.skip=Pular (&S) -dlg.button.overwrite=&Sobrescrever -dlg.button.view=&Visualizar -dlg.button.retry=&Tentar Novamente -dlg.button.ignore=&Ignorar -dlg.button.install=&Instalar dlg.button.ok=&OK - 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.howToFixIt=Para utilizar o Enigmail, é necessário ter instalado o GnuPG. Se você não instalou o GnuPG ainda, a forma mais fácil é utilizar o "Assistente de Configuração" através do botão abaixo. -initErr.setupWizard.button=&Setup passphraseCleared=A senha foi removida. cannotClearPassphrase=Você está utilizando uma ferramenta fora do padrão (como a gnome-keyring) para a cuidar da senha. Limpar a senha não é mais possível de dentro do Enigmail. -noPhotoAvailable=Nenhuma foto disponível -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=O caminho para a foto em '%S' não é válido - -generalError=Erro: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Essa nova versão do Enigmail muda o gerenciamento das preferências e opções. Tentamos transferir os antigos padrões para esta nova versão. No entanto, não podemos cobrir todos os casos automaticamente. Por favor cheque novamente os resultados das novas preferências e opções. -enigmailCommon.checkPreferences=Checar preferências... -preferences.defaultToPgpMime=Nós mudamos a codificação da mensagem padrão no Enigmail de Inline-PGP para PGP/MIME. Nós recomendamos manter isto como padrão.\n\nSe você ainda quiser usar o Inline-PGP por padrão, você pode fazer através das configurações de conta na Segurança OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Rodando Enigmail versão %S -enigmailPepVersion=Enigmail/p≡p versão %S usingAgent=Utilizando %S com o executável %S para criptografar e descriptografar agentError=ERRO: Falha ao acessar o serviço Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Erro ao acessar serviço Enigmail -onlyGPG=Geração de chaves funciona apenas com GnuPG (não com PGP)! - -keygenComplete=Geração de chaves completa! A identidade <%S> será utilizada para assinar. -revokeCertRecommended=É altamente recomendado criar o certificado para revogação da sua chave. Este certificado pode ser usado para invalidar sua chave, por exemplo: No caso de perder a sua chave secreta ou ela for comprometida. Você deseja criar o certificado de revogação agora? -keyMan.button.generateCert=&Gerar Certificado -genCompleteNoSign=Geração de chaves completada! -genGoing=Geração de chaves já em progresso! - -passNoMatch=Senhas não conferem; por favor tente novamente -passCheckBox=Por favor marque a opção correspondente se não for especificar senha para a chave -passUserName=Por favor especifique o nome do usuário para esta identidade -keygen.missingUserName=Nenhum nome foi especificado para a conta/identidade selecionada. Por favor preencha o campo "Seu nome" nas configurações de conta. -keygen.passCharProblem=Você está utilizando caracteres especiais na sua senha. Infelizmente, isto pode causar problemas para outras aplicações. Nós recomendamos que você escolha uma senha contendo apenas alguns destes caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Devido a questões técnicas, sua senha não pode iniciar ou terminar com um caracter de espaço. -changePassFailed=A mudança de senha falhou. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Gerar Chave -keyAbort=Abortar geração da chave? -keyMan.button.generateKeyAbort=&Abortar Geração de Chaves -keyMan.button.generateKeyContinue=&Continuar Geração de Chaves -expiryTooLong=Você não pode criar uma chave que expire em mais do que 100 anos. -expiryTooLongShorter=Você não pode criar uma chave que expira daqui a mais de 90 anos. -expiryTooShort=Sua chave deve ser válida por pelo menos um dia. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=A data de validade não pôde ser mudada - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informações de Segurança do Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Mensagem possivelmente criptografada ou assinada com PGP/MIME; clique no botao Descriptografar para verificar - -saveAttachmentHeader=Enigmail: Salvar anexo descriptografada -noTempDir=Não foi possível encontrar um diretório temporário para gravar\nPor favor defina a variável de ambiente TEMP -attachmentPgpKey=O anexo '%S' que você está abrindo parece ser um arquivo de chave OpenPGP.\n\nClique em SIM para importar as chaves contidas ou NÃO para ver o conteúdo do arquivo em uma janela do navegador - -beginPgpPart=********* *INÍCIO DA PARTE CRIPTOGRAFADA ou ASSINADA* ********* -endPgpPart=********** *FIM DA PARTE CRIPTOGRAFADA ou ASSINADA* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Múltiplos blocos de mensagem encontrados -- descriptografia/verificação cancelada* - -decryptOkNoSig=Aviso\n\nA descriptografia foi efetuada com sucesso, mas a assinatura não pode ser verificada corretamente -msgOvl.button.contAnyway=&Continuar Assim Mesmo -signature.verifiedOK=A assinatura para o anexo %S foi verificada com sucesso -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 -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Esta chave não está ligada a nenhuma das suas contas de mail. Por favor adicione uma conta para ao menos um dos seguintes endereço(s) de mail:\n\n%S -wksConfirmSuccess=Email de confirmação enviado. -wksConfirmFailure=Envio do email de confirmação falhou -autocrypt.importSetupKey.accountPreconfigured=A sua conta já está corretamente configurada para criptografia automática.\nVocê tem certeza de que quer sobrescrever as suas configurações com a contida nesta mensagem? -autocrypt.importSetupKey.selfCreated=Esta mensagem foi criada pela sua atual instância do Enigmail.\n\nPor favor troque o cliente de mail para o qual você deseja transferir as configurações, e clique na mensagem naquele cliente de mail para importar as configurações. -autocrypt.importSetupKey.invalidMessage=Erro - não foi possível ler a mensagem se configuração. A mensagem parece estar corrompida. Por favor tente criar uma nova configuração de mensagem os seus "outros" dispositivos. -autocrypt.importSetupKey.invalidKey=Erro - a chave não pode ser importada. a chave não é suportado pela sua versão de GnuPG ou ela se corrompeu. -autocrypt.importSetupKey.wrongPasswd=A senha que você digitou está errada. Quer tentar novamente? -autocrypt.importSetupKey.success=A mensgem de Auto-encriptação foi processada com sucesso. A auto-encriptação agoar estpa disponível para a sua conta '%S' - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -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 - -windowLocked=Janela de composição bloqueada; envio cancelado -sendUnencrypted=Falha ao inicializar o Enigmail.\nEnviar mensagem sem criptografia? -composeSpecifyEmail=Especifique o seu endereço de email primário, o qual será utilizado para escolher a chave de assinatura para mensagens de saída.\n Se o endereço não for informado, o endereço de ORIGEM da mensagem será utilizado para escolher a chave de assinatura. -sendingHiddenRcpt=Esta mensagem possui destinatários BCC (cópia-carbono oculta). Caso esta mensagem seja criptografada, é possível ocultar os destinatários que estão marcados como BCC, mas os usuários de outros produtos, como o PGP, não poderão decriptografar a mensagem. Logo, recomendamos que você evite enviar mensagens criptografadas com destinatários BCC. -sendWithHiddenBcc=Ocultar destinatários BCC -sendWithShownBcc=Criptografar normalmente -sendingNews=Operação de envio criptografado cancelada.\n\nEsta mensagem não pode ser criptografada porque existem destinatários de um grupo de discussão. Por favor reenvie a mensagem sem criptografia. -sendToNewsWarning=Aviso: você está prestes a enviar uma mensagem criptografada para um grupo de discussão.\n\nIsto não é recomendado porque só faz sentido se todos os membros do grupo puderem descriptografar a mensagem, ou seja, a mensagem precisa ser criptografada com as chaves de TODOS os participantes do grupo. Por favor envie esta mensagem apenas se você sabe exatamente o que está fazendo.\n\nContinuar? -hasHTML=Aviso de mensagem HTML:\nEsta mensagem pode conter HTML, que pode causar problemas durante a assinatura/criptografia. Para evitar isto, você deve pressionar a tecla SHIFT ao clicar no botão Compor/Responder para enviar uma mensagem assinada.\nSe você assina as mensagens por padrão, você deve desmarcar a opção 'Compor Mensagens em HTML' nas preferências para desabilitar o envio de mensagens HTML permanentemente para esta conta de email. -strippingHTML=A mensagem contém informações de formatação HTML que podem ser perdidas ao convertê-la para texto puro para assinatura/criptografia. Você deseja continuar? -msgCompose.button.sendAnyway=Enviar Mensagem A&ssim Mesmo -attachWarning=Os anexos desta mensagem não estão presentes localmente, e portanto não podem ser criptografados. Para poder criptografar os anexos, armazene-os como arquivos locais primeiro e depois anexe-os. Você deseja enviar a mensagem assim mesmo? quotedPrintableWarn=Você habilitou o tipo de codificação 'quoted-printable' para o envio de mensagens. Isto pode resultar em erros de decriptografia e/ou verificação de sua mensagem.\nVocê deseja desligar a opção 'quoted-printable' agora? -minimalLineWrapping=Você definiu a quebra de linha em %S caracteres. Para a correta criptografia e/ou assinatura, este valor precisa ser de pelo menos 68 caracteres.\nVocê deseja alterar a quebra de linha para 68 caracteres agora? warning=Aviso -signIconClicked=Você alterou manualmente a assinatura. Logo, enquanto você estiver compondo esta mensagem, (des)ativar a assinatura não depende mais de (de)ativar a criptografia. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Erro durante o salvamento do rascunho -msgCompose.partiallyEncrypted.short=Esteja atento quantoa vazamento de informação sensível - email parcialmente criptografado. -msgCompose.partiallyEncrypted.inlinePGP=A mensagem que você está respondendo, contém partes não-criptografas junto a partes criptografadas. Se o remetente não foi capaz de descriptografar a parte originalmente ocultada, você poderá estar vazando informação confidencial que o remetente não foi capaz de descriptografar.\n\nPor Favor considere remover todos o texto entre aspas da sua resposta para este remetente. - -msgCompose.internalEncryptionError=Erro Interno: criptografia prometida desativada -msgCompose.internalError=Um erro interno ocorreu. - -msgCompose.toolbarTxt.signAndEncrypt=Essa mensagem será assinada e encriptada -msgCompose.toolbarTxt.signOnly=Essa mensagem será assinada -msgCompose.toolbarTxt.encryptOnly=Essa mensagem será encriptada -msgCompose.toolbarTxt.noEncryption=Esta mensagem terá removida a sua assinatura e criptografia -msgCompose.toolbarTxt.disabled=Enigmail foi desabilitado para a identidade selecionada -msgCompose.protectSubject.tooltip=Proteja o assunto da mensagem -msgCompose.noSubjectProtection.tooltip=Não proteger o assunto da mensagem -msgCompose.protectSubject.dialogTitle=Habilitar a proteção do assunto? -msgCompose.protectSubject.question=emails regulares criptografados contêm o assunto sem alteração\nNós criamos um padrão para esconder o assunto original da mensagem dentro da parte criptografada\ne substituímos com um texto padrão, de forma ao assunto só possa ser visto após o email ter sido descriptografado.\n\nVocê quer proteger o assunto nas mensagens criptografadas? -msgCompose.protectSubject.yesButton=&Proteger o Assunto -msgCompose.protectSubject.noButton=&Deixar o assunto desprotegido - -msgCompose.detailsButton.label=Detalhes... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Desconhecido -msgCompose.pepSendUnsecure=Inseguro -msgCompose.pepSendSecure=Seguro -msgCompose.pepSendTrusted=Seguro & Confiável - -pep.alert.disabledForIdentity=p≡p está desativado pra a identidade atual. Por favor habilite p≡p via as preferências do Enigmail/p≡p . -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Operação de envio abortada.\n\n - -# details: keyNotTrusted=Não há confiança suficiente para a chave '%S' -keyNotFound=Chave '%S' não encontrada -keyRevoked=Chave '%S' revogada -keyExpired=Chave '%S' expirada - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=ASSINADA -statEncrypted=CRIPTOGRAFADA -statPlain=TEXTO PURO - -offlineSave=Salvar %S mensagem para %S a pasta de Mensagens Não Enviadas? - -onlineSend=Enviar %S mensagem para %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -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? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Criptografar a Mensagem (automático) -encryptMessageNorm=Criptografar a Mensagem -signMessageAuto=Assinar mensagem (automático) -signMessageNorm=Assinar Mensagem - -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 -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=forçado por auto encriptação -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=Devido ao modo de encriptação - -# should not be used anymore: -encryptYes=A mensagem será criptografada -encryptNo=A mensagem não será criptografada - -# should not be used anymore: -signYes=A mensagem será assinada -signNo=A mensagem não será assinada - - -# PGP/MIME status: -pgpmimeNormal=Protocolo: PGP/MIME -inlinePGPNormal=Protocolo: Inline PGP -smimeNormal=Protocolo: S/MIME -pgpmimeAuto=Protocolo: PGP/MIME (automático) -inlinePGPAuto=Protocolo: Inline PGP (automático) -smimeAuto=Protocolo: S/MIME (automático) - -# should not be used anymore -pgpmimeYes=PGP/MIME será usado -pgpmimeNo=Será usado Inline PGP - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Detectadas regras por destinatário conflitantes\n%S\n\nEnviar a mensagem com estas configurações? -msgCompose.button.configure=&Configurar -msgCompose.button.send=Enviar Men&sagem -msgCompose.button.save=&Salvar Mensagem - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Chave pública %S necessária para verificar assinatura -keyUsed=A chave pública %S foi usada para verificar a assinatura -clickDecrypt=; clique o botão Descriptografar -clickDecryptRetry=; clique o botão Descriptografar para tentar novamente -clickDetailsButton=; clique no botão 'Detalhes' para mais informações -clickImportButton=; clique no botão 'Importar chave' para importar a chave -keyTypeUnsupported=;o tipo de chave não é suportado pela sua versão de GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Descriptografar -msgPart=Parte da mensagem %S -msgSigned=assinada -msgSignedUnkownKey=assinada com uma chave desconhecida -msgEncrypted=criptografada -msgSignedAndEnc=assinada e criptografada - unverifiedSig=Assinatura não verificada -incompleteDecrypt=Descriptografia incompleta -needKey=Erro - chave secreta necessária para descriptografar a mensagem -failedDecrypt=Erro - descriptografia falhou badPhrase=Erro - senha incorreta # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Erro - descriptografia/verificação falhou -viewInfo=; Ver > Informações de Segurança da Mensagem para detalhes -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Mensagem descriptografada -decryptedMsgWithFormatError=Mensagem desencriptada (restaurado o PGP quebrado no email, provavelmente causado por um servidor Exchange antigo, então o resultado pode não ser ideal para a leitura) - -usedAlgorithms=Algoritmos usados: %1$S e %2$S -pepStatusInfo.text=p≡p Estado da Mensagem. -pepStatusInfo.title.m3=Sob Ataque -pepStatusInfo.info.m3=Esta mensagem não é segura e foi adulterada. -pepStatusInfo.title.m1=Não-confiável -pepStatusInfo.info.m1=Esta mensagem tem um parceiro de comunicação que préviamente foi marcado como não-confiável -pepStatusInfo.title.r0=Desconhecido -pepStatusInfo.info.r0=Esta mensagem não contém informação suficiente para determinar se ela é segura. -pepStatusInfo.title.r1=Não é possível descriptografar -pepStatusInfo.info.r1=Esta mensagem não pôde ser descriptografada devido a chave não estar disponível. -pepStatusInfo.title.r2=Não foi possível descriptografar -pepStatusInfo.info.r2=A mensagem não pôde ser descriptografada devido a ausência da chave. -pepStatusInfo.title.r3=Inseguro -pepStatusInfo.info.r3=Esta mensagem é insegura. -pepStatusInfo.title.r4=Inseguro para alguns -pepStatusInfo.info.r4=Esta mensagem é insegura para alguns parceiros de comunicação. -pepStatusInfo.title.r5=Segurança não-confiável -pepStatusInfo.info.r5=Esta mensagem não possui uma proteção confiável. -pepStatusInfo.title.r6=Seguro... -pepStatusInfo.info.r6=Esta mensagem é segura mas você precisa verificar a identidade do parceiro de comunicação. -pepStatusInfo.title.r7=Seguro & Confiável -pepStatusInfo.info.r7=Esta mensagem é segura e confiável. - -pepStatusInfo.color.green=Verde -pepStatusInfo.color.yellow=Amarelo -pepStatusInfo.color.red=Vermelho -pepRevokeTrust.question=Você realmente deseja cancelar a confiança em %S ? -pepRevokeMistrust.question=Você realmente quer confiar novamente na chave para %S ? -pepRevokeTrust.doRevoke=Cancelar &trust - -wksConfirmationReq=Confirmada a Requisição ao diretório de chaves Web -wksConfirmationReq.message=Esta mensagem foi enviada para o seu provedor de mail para confirmar a instalação da sua chave pública OpenPGP\nno Diretório de chaves Web.\nDisponibilizar a sua chave pública ajuda outros a encontrar a sua chave e desta forma possibilitar que criptografem mensagem para você.\n\nSe você quiser disponibilizar a sua chave no diretório de chaves Web agora, por favor clique no botão "Confirmar Requisição" na barra de estado.\nCaso contrário, simplesmente ignore esta mensagem. -wksConfirmationReq.button.label=Confirmar a requisição - -autocryptSetupReq=Criar configurações para Auto-encriptação -autocryptSetupReq.button.label=Configurar agora -autocryptSetupReq.setupMsg.desc=Esta mensagem contém toda a informação necessária para transferir suas configurações de Autocriptografia juntamente com sua senha secreta de forma segura do seu dispositivo original. -autocryptSetupReq.setupMsg.backup=Você pode manter esta mensagem e usá-la como cópia de segurança para a sua chave secreta. Se você quiser fazer isto, você deve anotar a senha e armazená-la de forma segura. -autocryptSetupReq.message.import=Para importar as configurações e chave(s) no Enigmail, por favor clique no botão "Iniciar Configuração" na barra de estado. -autocryptSetupReq.message.sent=Por favor clique na mensagem em seu novo dispositivo e siga as instruções para importar as configurações. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=A inicialização do Enigmail falhou.\n\nVocê está utilizando o GnuPG versão %1$S, que não é mais suportada. O Enigmail necessita da GnuPG versão %2$S ou mais recente. Por favor atualize a sua instalação do GnuPG, ou o Enigmail não irá funcionar. -locateGpg=Localizar o programa GnuPG -invalidGpgPath=O GnuPG não pode ser executado com o caminho fornecido. Logo, o Enigmail será desativado até que o caminho para o GnuPG seja alterado novamente ou até que a aplicação seja reiniciada. -warningsAreReset=Todos os avisos de erro foram reinicializados. -prefs.gpgFound=GnuPG foi encontrado em %S -prefs.gpgNotFound=Não foi possível encontrar o GnuPG -prefs.warnAskNever=Aviso: ativar esta opção fará com que os emails sejam enviados sem criptografia sem nenhum tipo de aviso caso não existe a chave correspondente para um dos destinatários -- o Enigmail não irá informá-lo se isto ocorrer! -prefs.warnIdleTimeForUnknownAgent=O seu sistema utilizar uma ferramenta especial para obter senhas, como o gnome-keyring ou seahorse-agent. Infelizmente o Enigmail não pode controlar o timeout para entrara de senhas na ferramenta que você está utilizando. Logo, os tempos definidos para timeout no Enigmail serão ignorados. -prefEnigmail.oneKeyserverOnly=Erro - você pode especificar apenas um servidor de chaves para baixar automaticamente as chaves OpenPGP que estiverem faltando. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc= O Enigmail é um software de código aberto e é licenciado sob o Licença Pública Mozilla 2.0 - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Digite o ADMIN PIN do SmartCard -enterCardPin=Digite o PIN do SmartCard - -notInit=Erro - Serviço Enigmail não foi inicializado badCommand=Erro - comando de criptografia falhou cmdLine=linha de comando e saída: -notRequired=Erro - criptografia não é necessária -notComplete=Erro - geração de chave não completada -invalidEmail=Erro - endereço(s) de email inválido(s) noPassphrase=Erro - nenhuma senha fornecida noPGPblock=Erro - Bloco de dados PGP-armor válido não encontrado -unverifiedReply=Parte da mensagem indentada (resposta) provavelmente foi alterada -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Erro - Assinatura não confere -# cantImport=Error importing public key\n\n -doImportOne=Importar %1$S (%2$S)? -doImportMultiple=Importar as seguintes chaves?\n\n%S -previewFailed=Não consigo ler o arquivo da chave pública. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=O SmartCard %S que foi encontrado em sua leitora não pode ser utilizado para processar a mensagem.\nPor favor insira o SmartCard %S e repita a operação. sc.insertCard=A operação necessita do SmartCard %S.\nPor favor insira o SmartCard solicitado e repita a operação. sc.removeCard=A operação não necessita de um SmartCard na leitora.\nPor favor remova o seu SmartCard e repita a operação. @@ -376,7 +39,6 @@ sc.noReaderAvailable=A sua leitora de SmartCard não pode ser acessada\nPor favor conecte a sua leitora de SmartCard reader, insira o cartão e repita a operação. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Por favor selecione uma chave vãlida na seção OpenPGP das configurações da sua conta. missingPassphrase=Senha não preenchida errorHandling.gpgAgentInvalid=Seu sistema está utilizando uma versão do agente pgp que não está adaptado para funcionar com a sua versão de GnuPG. errorHandling.gpgAgentError=GnuPG avisou sobre um erro de comunicação com o gpg-agente ( um componente do GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG não pode consultar sua senha via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Esta é uma configuração do sistema ou algum erro de configuração que impede o Enigmail de funcionar corretamente e não pode ser corrigido automaticamente.\n\nNós recomendamos fortemente que você consulte o nosso site web de suporte através do endereço https://enigmail.net/faq. - gpgNotFound=Não foi possível localizar o programa do GnuPG '%S'.\nCertifique-se de que o caminho do executável do GnuPG esteja configurado corretamente nas Preferências do Enigmail. gpgNotInPath=Não foi possível localizar o executável do GnuPG no PATH.\nCertifique-se de que você definiu o caminho correto para o executável do GnuPG nas Preferências do Enigmail. enigmailNotAvailable=O Serviço principal do Enigmail não está disponível - -prefGood=Assinatura válida de %S -prefBad=Assinatura INVÁLIDA de %S - failCancel=Erro - Recebimento de chave cancelado pelo usuário failKeyExtract=Erro - comando de extração de chave falhou -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Erro - Primeiro bloco OpenPGP não é o bloco de chave pública importKeyConfirm=Importar chave(s) pública(s) contidas na mensagem? -failKeyImport=Erro - importação de chave falhou fileWriteFailed=Falha ao escrever no arquivo %S - importKey=Importar chave pública %S do servidor de chaves: uploadKey=Enviar chave pública %S para o servidor de chaves: keyId=ID da Chave -keyAndSigDate=ID da Chave: 0x%S / Assinada em: %S -keyFpr=Impressão digital da Chave: %S -noEmailProvided=Você não forneceu um endereço de email! -keyAlreadySigned=A chave já está assinada, você não pode assiná-la duas vezes. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expirada em %S createdHeader=Criada em atLeastOneKey=Nenhuma chave selecionada! Você precisa selecionar pelo menos uma chave para aceitar este diálogo 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? @@ -420,168 +64,34 @@ 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 -pgpMimeNote=NOTA: PGP/MIME só é suportado por um número limitado de clientes de email. Se você não tem certeza, selecione a opção %S. first=primeiro second=segundo - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Selecione a Chave OpenPGP para Criptografia -identityName=Identidade: %S -switchPepMode=Se você estiver utilizando o modo 'p≡p Junior' do Enigmail.\n\nAo habilitar o suporte ao OpenPGP ou ao S/MIME para uma conta, você estará desabilitando p≡p e utilizando usará o modo 'regular' do Enigmail sem p≡p. -enableEnigmail=&Desabilitando p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Você ativou a criptografia, mas não selecionou uma chave. Para poder criptografar emails enviados para %S, você precisa especificar uma ou mais chaves válidas a partir de sua relação de chaves. Você deseja desabilitar a criptografia para %S? -noKeyToUse=(nenhuma - sem criptografia) -noEmptyRule=A Regra não pode ser vazia! Por favor defina um endereço de email no campo de Regra. -invalidAddress=O(s) endereço(s) de email que você entrou não são válidos. Você não deve definir os nomes dos destinatários, apenas os endereços de email. Por exemplo:\nInválido: Fulano \nVálido: fulano.qualquer@endereco.net -noCurlyBrackets=As chaves {} possuem um significado especial e não devem ser usadas em endereços de email. Se você quiser modificar o respectivo comportamento para esta regra, utilizar a opção 'Aplicar esta regra caso o destinatário ...'.\nMais informações estão disponíveis no botão Ajuda. - -# Strings used in enigmailRulesEditor.js never=Nunca always=Sempre possible=Possível -deleteRule=Deseja apagar a regra selecionada? -nextRcpt=(Próximo destinatário) -negateRule=Não -addKeyToRule=Acrescentar a chave %S (%S) à regra por destinatário - -# Strings used in enigmailSearchKey.js -needOnline=A funão que você selecionou não está disponível em modo offline. Por favor vá para o modo online e tente novamente. -noKeyserverConn=Não foi possível conectar ao servidor de chaves em %S. -internalError=Um erro interno ocorreu. As chaves não puderam ser baixadas ou importadas. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Falha ao definir o nível de confiança - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Assinatura de chave falhou -alreadySigned.label=Nota: a chave %S já está assinada com a chave secreta selecionada. -alreadySignedexportable.label=Nota: a chave %S já está marcada como sendo exportável com a chave privada selecionada. Não faz sentido utilizar uma assinatura local. -partlySigned.label=Nota: alguns logins da chave %S estão já assinalados com a chave secreta selecionada. -noTrustedOwnKeys=nenhuma chave candidata foi encontrada para assinar! Você precisa de ao menos uma chave privada totalmente confiável para poder assinar chaves. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Carregando chaves, por favor aguarde ... keyValid.unknown=desconhecida keyValid.invalid=inválida keyValid.disabled=desabilitada keyValid.revoked=revogada keyValid.expired=expirada keyValid.noSubkey=nenhuma sub-chave válida - -keyTrust.untrusted=não-confiável +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=mínima keyTrust.full=confiável keyTrust.ultimate=total keyTrust.group=(grupo) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Habilitar Chave -keyMan.disableKey=Desabilitar Chave userAtt.photo=Atributo de Usuário (imagem JPEG) - -asciiArmorFile=ASCII Seguro importKeyFile=Importar Arquivo de Chave OpenPGP -gnupgFile=Arquivos do GnuPG -saveRevokeCertAs=Criar e Salvar Certificado de Revogação -revokeCertOK=O certificado de revogação foi criado com sucesso. Você pode utilizá-lo para invalidar a sua chave pública, exemplo: no caso de ter perdido a sua chave secreta. -revokeCertFailed=O certificado de revogação não pode ser criado. - -addUidOK=ID de Usuário acrescentado com sucesso -addUidFailed=Falha ao acrescentar ID de usuário -noKeySelected=Você deve escolher pelo menos uma chave para poder executar a operação desejada -exportToFile=Exportar Chave Pública para Arquivo -exportKeypairToFile=Exportar as chaves secretas e públicas para arquivo -exportSecretKey=Você deseja incluir a chave secreta no arquivo de chaves OpenPGP a ser salvo? -saveKeysOK=As chaves foram salvas com sucesso -saveKeysFailed=Falha ao salvar as chaves -importKeysFailed=Falha ao importar as chaves -enableKeyFailed=Falha ao habilitar/desabilitar as chaves -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Chaves-públicas-exportadas -defaultPubSecKeyFilename=Chaves-públicas-e-secretas-exportadas - -sendKeysOk=Chave(s) enviada(s) com sucesso -sendKeysFailed=Envio de chaves falhou -receiveKeysOk=Chave(s) atualizadas com sucesso -receiveKeysFailed=Baixa de chaves falhou -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Você deseja importar chaves a partir do clipboard? -importFromUrl=Baixe a chave pública nesta URL: -copyToClipbrdFailed=Não foi possível copiar a(s) chave(s) selecionadas para o clipboard. -copyToClipbrdOK=Chave(s) copiadas para o clipboard - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=AVISO: Você está prestes a apagar as chaves secretas!\nSe você apagar a sua chave secreta, não será mais possível descriptografar nenhuma mensagem criptografada com esta chave.\n\nVocê realmente quer apagar AMBAS as chaves secreta e pública selecionadas? -deletePubKey=Você quer apagar a chave pública\n'%S'? -deleteSelectedPubKey=Você quer apagar as chaves públicas? -deleteKeyFailed=A chave não pode ser removida. revokeKeyQuestion=Você está prestes a revogar a chave '%S'.\n\nNão será mais permitido assinar utilizando esta chave, e uma vez distribuída, outros também não serão mais permitidos criptografar utilizando eta chave. Você ainda poderá usar esta chave para descriptografar mensagens antigas.\n\nDeseja continuar? -revokeKeyOk=A chave foi revogada. Se a sua chave está disponível em um servidor de chaves, é recomendado que você reenvie-a para que outros usuários vejam a revogação. -revokeKeyFailed=A chave não pode ser revogada. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=A chave 0x%S já foi revogada anteriormente. -refreshAllQuestion=Você não selecionou uma chave. Você quer atualizar TODAS as chaves? -refreshKeyServiceOn.warn=Aviso: Suas chaves estão sendo atualizadas em segundo plano o mais seguro quão é possível.\nAtualizar todas as suas chaves de uma só vez irá revelar informação acerca de você de forma desnecessária.\nVocê quer realmente fazer isto? -refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da sua conexão, atualizar todas as chaves pode ser um processo bem demorado! -downloadContactsKeys.warn=Aviso: dependendo do número de contatos e da velocidade de sua conexão, baixar todas as chaves pode ser um processo demorado! -downloadContactsKeys.importFrom=Importar contatos do livro de endereços '%S'? -keyMan.button.exportSecKey=&Exportar Chaves Secretas -keyMan.button.exportPubKey=Exportar Apenas Chaves &Públicas keyMan.button.import=&Importar -keyMan.button.refreshAll=Atualiza&r Todas as Chaves keyMan.button.revokeKey=&Revogar Chave - -keylist.noOtherUids=Não possui outras identidades -keylist.hasOtherUids=Também conhecido como -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Selecionar foto para acrescentar -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=O arquivo selecionado não parece ser um arquivo JPEG. Escolha outro tipo de arquivo. -keyMan.addphoto.failed=A foto não pode ser acrescentada. -noWksIdentity=A chave %S não tem uma identidade WKS. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=Colocar a chave na &Lista negra -keyman.removeBlacklistKey.button=&Remover a chave da lista negra - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Falha ao alterar o ID de usuário primário -changePrimUidOK=O ID de usuário primário foi alterado com sucesso -revokeUidFailed=Falha ao revogar o ID de usuário %S -revokeUidOK=O ID de usuário %S foi revogado com sucesso. Caso a sua chave esteja disponível em um servidor de chaves, é recomendável reenviá-la, para que outros possam ver que foi revogado. -revokeUidQuestion=Você realmente deseja revogar o ID de usuário %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUCESSO! Chaves importadas -importInfoBits=Bits -importInfoCreated=Criado -importInfoFpr=Impressão digital -importInfoDetails=(Detalhes) -importInfoNoKeys=Nenhuma chave importada. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=chave pública -keyTypePrimary=chave primária -keyTypeSubkey=sub-chave -keyTypePair=par de chaves -keyExpiryNever=nunca keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Criptografar -keyUsageSign=Assinar -keyUsageCertify=Certificar -keyUsageAuthentication=Autenticação -keyDoesNotExpire=A chave não expira - -# Strings in enigmailGenCardKey.xul -keygen.started=Por favor aguarde enquanto a chave está sendo gerada .... -keygen.completed=Chave Gerada. O novo ID da Chave é: 0x%S -keygen.keyBackup=Uma cópia de segurança da chave foi salva como %S -keygen.passRequired=Por favor especifique uma senha para criar uma cópia de segurança de sua chave fora de seu SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Falha ao trocar o PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Atualizando chaves, por favor aguarde ... -keyserverProgress.uploading=Enviando chaves, por favor aguarde ... -keyserverProgress.wksUploadFailed=Não foi possível enviar a sua chave para o serviço de chaves Web -keyserverProgress.wksUploadCompleted=A sua chave publica foi enviada com sucesso ao seu provedor. Você receberá um email para confirmar que foi feito o envio. -keyserverTitle.refreshing=Atualizar Chaves -keyserverTitle.uploading=Envio de Chaves -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=O arquivo que você especificou não é um executável do GnuPG. Especifique um arquivo diferente. -setupWizard.installFailed=Parece que a instalação não obteve êxito. Tente instalar novamente, ou instale o GnuPG manualmente e localize-o com o botão "Localizar". -setupWizard.downloadForbidden=Para a sua segurança, nós não vamos baixar o GnuPG. Por favor visite https://gnupg.org/ para baixar o GnuPG. -setupWizard.downloadImpossible=Não é possível baixar o GnuPG agora. Tente mais tarde ou navegue em https://gnupg.org/ para poder baixar o GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Escolha de onde será carregado o arquivo de cópia de segurança -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Há um arquivo de configuração existente do GnuPG. Deseja sobrescrever com o arquivo da sua instalação antiga? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -setupWizard.unmachtedIds=As seguintes identidades da sua antiga configuração não puderam ser encontradas:\n%S\nAs configurações para estas identidades serão ignoradas. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Um erro aconteceu ao tentar baixar o GnuPG. Verifique o log de erros para mais detalhes. -installGnuPG.installFailed=Um erro ocorreu ao instalar o GnuPG. Verifique o log de erros para mais detalhes. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Você precisa preencher um nome e um endereço de email -addUidDlg.nameMinLengthError=O nome precisa ter pelo menos 5 caracteres -addUidDlg.invalidEmailError=Você deve especificar um endereço de email válido - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP Smartcards suporta apenas caracteres ASCII em Nome/Sobrenome. - - -# network error types +# setupWizard.selectKeysButton=Select Keys 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.decryptMove.label=Descriptografar permanentemente (Enigmail) -filter.decryptCopy.label=Criar uma Copia decriptada (Enigmail) -filter.decryptMove.warnExperimental=Alerta - a ação do filtro "descriptografar permanentemente" pode levar a destruição de mensagens.\n\nNós recomendamos fortemente que primeiro tente usar o filtro "Criar cópia descriptografada", teste o resultado com cuidado, e apenas começe a utilzar este filtro caso o resultado tenha sido satisfatório. -filter.tempPepFilterDesc=temporariamente o filtro para a loja enviou a mensagem sem estar criptografada -filter.term.pgpencrypted.label=Criptografado por OpenPGP -filter.encrypt.label=Encriptografar para a chave (Enigmail) -filter.keyRequired=Você precisa selecionar uma chave do destinatário. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Salvar Arquivo de Log - -# strings in gpg.jsm -unknownSigningAlg=Algoritmo de assinatura desconhecido (ID: %S) -unknownHashAlg=Hash de criptografia desconhecido (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=A chave %1$S (ID da chave: %2$S) foi revogada. keyRing.pubKeyExpired=A chave %1$S (ID da chave %2$S) expirou. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Todas as sub-chaves criptografadas da chave %1$S (ID da chave:%2$S) expiraram. keyRing.noSecretKey=Aparentemente você parece não possuir a chave secreta para %1$S (ID da chave:%2$S) na sua lista de chaves; você não pode usar a chave para assinar. keyRing.encSubKeysUnusable=Todas as sub-chaves criptografadas da chave %1$S (ID da chave:%2$S) foram revogadas, expiradas ou foram inutilizadas. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Não foi possível salvar o arquivo '%S'. Por favor selecione um arquivo diferente. dataExportError=Um erro occorreu durante a exportação dos seus dados. -enigmailSettings=Configurações do Enigmail -defaultBackupFileName=Enigmail-Exportar -specifyExportFile=Especifique o nome do arquivo para exportação -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Abrir o gerenciador de chaves do Enigmail expiry.OpenKeyProperties=Abrir as propriedades da Chave - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Esta é uma mensagem criptografada. Infelizmente você não tem o chave privada para descriptografar a mensagem. - -#strings in gpgAgent.jsm gpghomedir.notexists=O diretório '%S' contendo a sua chave OpenPGP não existe e não pode ser criado. gpghomedir.notwritable=Não há permissão de escrita para o diretório '%S' que contém as suas chaves OpenPGP. gpghomedir.notdirectory=O diretório '%S' que contém suas chaves OpenPGP é um arquivo invês de ser um diretório. gpghomedir.notusable=Por Favor corrija as permissões do diretório ou altere a localização do diretório "home" do seu GnuPG. GnuPG nãopoderá funcionar de outra forma. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=As palavras-confiáveis p≡p para a própria conta não puderam ser verificadas. -pepTrustWords.cannotFindKey=Não foi encontrada a chave para %S. -pepTrustWords.cannotStoreChange=Não foi possível alterar a confiança em %S. -pepTrustWords.generalFailure=Palavras confiáveis não podem ser obtidas para %S. -pepTrustWords.partnerFingerprint=Impressão Digital para %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=O seu provedor de mais processou a sua requisição para envio da sua chave pública para o diretório de chaves web do OpenPGP.\n\nPor favor clique no botão de confirmar do cabeçalho do Enigmail para completar a publicação da sua chave pública. -wkdMessage.body.process=Este é um email sobre o processamento automático para enviar a sua chave pública para o Diretório de chaves OpenPGP da Web.\n\nVocê não precisa tomar nenhuma atitude agora. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Ou você ou o remetente deve reenviar a mensagem. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Se você criou esta mensagem, sua chave não está disponível. -pepPrivacyStatus.RatingMistrustSuggestion=Re-estabeleça a conexão com seu parceiro de comunicação e tente completar outra negociação. -pepPrivacyStatus.RatingReliableSuggestion=Complete a negociação com o seu parceiro de comunicação através da troca de trustwords pessoalmente ou pelo telefone. A negociação é necessária apenas uma única vez para cada parceiro e serve para garantir a comunicação de forma segura e confiável. -pepPrivacyStatus.RatingTrustedSuggestion=Nenhuma ação se faz necessária! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Por favor adicione as informações necessárias. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -pepPrivacyStatus.RatingUnencryptedSuggestion=Por favor peça ao seu parceiro de comunicação para utilizar uma solução de criptografia ou instalar o p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Esta mensagem tem criptografia danificada ou formato inválido. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Esta mensagem não pôde ser descriptografada porque a chave não está disponível. -pepPrivacyStatus.RatingMistrustExplanation=Esta mensagem tem um parceiro de comunicação que previamente foi marcado como não-confiável. -pepPrivacyStatus.RatingReliableExplanation=Esta mensagem é segura mas você precisa verificar a identidade do seu parceiro de comunicação. -pepPrivacyStatus.RatingTrustedExplanation=Esta mensagem é segura e confiável. -pepPrivacyStatus.RatingUndefinedExplanation=Esta mensagem não contém informação suficiente para determinar se é segura. -pepPrivacyStatus.RatingUnderAttackExplanation=Esta mensagem não é segura e foi adulterada. -pepPrivacyStatus.RatingUnencryptedExplanation=Esta mensagem é insegura. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Esta mensagem é insegura para alguns parceiros de comunicação. -pepPrivacyStatus.RatingUnreliableExplanation=Esta mensagem não tem uma proteção confiável. - -pepPrivacyStatus.RatingBrokenText=Quebrado -pepPrivacyStatus.RatingHaveNoKeyText=Não foi possível descriptografar -pepPrivacyStatus.RatingMistrustText=Não-confiável -pepPrivacyStatus.RatingReliableText=Seguro -pepPrivacyStatus.RatingTrustedText=Seguro & Confiável -pepPrivacyStatus.RatingUndefinedText=Desconhecido -pepPrivacyStatus.RatingUnderAttackText=Sob Ataque -pepPrivacyStatus.RatingUnencryptedForSomeText=Inseguro para alguns -pepPrivacyStatus.RatingUnencryptedText=Inseguro -pepPrivacyStatus.RatingUnreliableText=Segurança não-confiável - -handshakeDlg.button.initHandshake=Negociação... -handshakeDlg.button.stopTrust=Parar Confiança -handshakeDlg.button.reTrust=Pare de desconfiar -handshakeDlg.label.outgoingMessage=Enviando mensagem -handshakeDlg.label.incomingMessage=Recebendo mensagem -handshakeDlg.error.noPeers=Não é possivel trocar informação sem que haja algum correspondente. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Ajustar Mensagem para modo de Auto-encriptação -autocrypt.setupMsg.msgBody=Para configurar o seu novo dispositivo para Auto-encriptar, por favor siga as instruções que serão mostradas no seu novo dispositivo. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=O que há de novo no Enigmail 2.0? -upgradeInfo.welcome1=Bem-vindo ao novo Enigmail versão 2.0! -upgradeInfo.welcome2=Esta versão contém muitas funcionalidades novas e que foram alteradas. Por favor gaste um minuto para descobrir quais são as novidades: -upgradeInfo.encSubject.title=Criptografando o Assunto da Mensagem -upgradeInfo.encSubject.desc=Nós desenvolvemos um novo método para mover o assunto do email para dentro da mensagem criptografada, e substitue o assunto mostrado com "Mensagem Criptografada". Uma vez que a mensagem seja descriptografada, o assunto original será substituído automaticamente. Esconder o assunto estará ativo por padrão; existe uma preferência para desativar caso não goste. (Nota: esta funcionalidade requer que a mensagem seja enviada com o PGP/MIME.) -upgradeInfo.buttons.title=Alterar o comportamento dos botões de Criptografar e Assinar -upgradeInfo.buttons.desc=Os botões de criptografar e assinar no editor de mensagens agora funcionam para ambos os protocolos OpenPGP e S/MIME. Se ambos os algoritmos são possíveis, o Enigmail para preferir aquele para o qual todas as chaves estejam disponíveis. -upgradeInfo.autocrypt.title=Suporte para Auto-encriptação -upgradeInfo.autocrypt.desc=O Enigmail agora suporta Criptografia Automática, 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 now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Por favor acesse noss documentaçãopara obter ajuda no uso do Enigmail. - -#strings in pEpAdapter.jsm -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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Sobre o Enigmail aboutEnigmail.title=Suporte ao OpenPGP provido por Enigmail aboutEnigmail.team=Enigmail foi desenvolvido pela Equipe Enigmail: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licença & Suporte aboutEnigmail.license=Enigmail OpenPGP é open source e está licenciado sob a %S aboutEnigmail.support=Suporte e distribuição disponível em www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/compose.html enigmail-2.2.4/lang/pt-BR/help/compose.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - -Ajuda do Enigmail: Composição de Mensagem - - -

Ajuda do Enigmail

- -

Utilizando o Enigmail ao compor mensagens

- -
    -
  • Menu do Enigmail na janela de Composição de Mensagem -
      -
    • Assinar mensagem: Habilitar/Desabilitar o envio de mensagens assinadas. O usuário será notificado se a assinatura falhar. -
    • -
    • Criptografar mensagem: Habilitar/Desabilitar criptografia para todos os destinatário(s) antes de enviar a mensagem. O usuário será notificado caso a criptografia falhe. -

      Caso a opção Mostrar seleção quanto necessário estiver habilitada na aba Preferências -> Seleção de Chaves - , uma lista de chaves será mostrada caso existam endereços na lista de destinatários da mensagem para os quais você não possua uma chave pública correspondente.

      -

      Caso a opção Nunca mostrar diálogo de seleção de chaves OpenPGP estiver habilitada na aba Preferêencias -> Seleção de Chaves, e existam - endereços na lista de destinatários para os quais você não possua a chave pública correspondente, a mensagem será enviada sem criptografia.

      -
    • -
    • Utilizar PGP/MIME para esta mensagem: Habilitar/Desabilitar o uso de - PGP/MIME - para esta mensagem. -

      Se você sabe que o(s) destinatário(s) consegue(m) ler mensagens utilizando o formato PGP/MIME format, - você deve utilizar esta opção.

      -

      Esta facilidade depende de ter a opção da aba Preferências -> PGP/MIME configurada para Permitir o uso de PGP/MIME ou Sempre usar PGP/MIME.

      -
    • -
    • Opções padrão para composição: Submenu. -
        -
      • Opções de Assinatura/Criptografia...: atalho para Configurações de Conta -> Opções do OpenPGP. -
      • -
      • Opções de Envio...: atalho para a aba Preferências -> Envio. -
      • -
      • Opções de seleções de Chave...: atalho para a aba Preferências -> Seleção de Chaves. -
      • -
      • Opções de PGP/MIME...: atalho para a aba Preferências -> PGP/MIME. -
      • -
      -
    • Desfazer criptografia: Casa haja uma falha ao enviar a mensagem, - tal como um servidor POP não aceitar o pedido, o Enigmail não saberá sobre o ocorrido, - e a mensagem criptografada continuará a ser mostrada na janela de Composição de Mensagem. - Escolhendo este item de menu fará com que a criptografia/assinatura seja desfeita, - revertendo a janela de Composição de Mensagem de volta ao seu texto original.
      - Como uma solução temporária, esta opção também pode ser utilizada para descriptografar a - o texto de citação da mensagem anterior (quote) quando estiver respondendo mensagens criptografadas. - O Enigmail deve automaticamente descriptografar a citação, mas caso isto falhe por alguma razão, você pode - utilizar este item do menu para forçá-lo. -
    • -
    • Inserir chave pública: inserir o bloco ASCII com a chave pública na posição - atual do cursor na janela de Composição. Você será perguntado sobre os endereços das chaves a serem inseridas. - Chaves inseridas desta maneira serão reconhecidas pelo Enigmail do destinatário. Após a inserção da chave, você - ainda pode escolher assinar/criptografar a mensagem como for necessário. Não insira mais de um bloco de chave por mensagem; apenas especifique - múltiplos endereços de email, separados por vírgulas ou espaços, quando for solicitado. -
    • -
    • Remover senha: Remove a senha armazenada. Útil quando você possui múltiplas senhas. -
    • -
    • Ajuda: Mostra informaçóes de Ajuda (esta página). -
    • -
    -
  • -
-
-

-Mais ajuda pode ser encontrada na -página web de Ajuda do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/editRcptRule.html enigmail-2.2.4/lang/pt-BR/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - -Ajuda do Enigmail: Edição de Regra do OpenPGP - - -

Ajuda do Enigmail

- -

Usando o Editor de Regras do Enigmail: Editando uma Regra OpenPGP

-

No Editor de Regras, você pode especificar padrões por destinatário para permitir criptografia, assinatura e PGP/MIME, e definir quais chaves OpenPGP serão utilizadas. Neste diálogo, você poderá especificar as regras para um único destinatário, ou para um grupo de destinatários com características similares. -

-
    -
  • Definir Regras OpenPGP para: Contém os endereços de email dos destinatários (sem nomes, por exemplo: apenas um endereço como - alguem@dominio). Você pode especificar diversos endereços, separados por espaços. - O endereço especificado aqui pode consistir apenas da parte com o domínio, de forma que qualquer mensagem que faça parte deste domínio será processada, por exemplo @email.domain permitirá processar mensagens como usuario@email.domain, - alguem@email.domain, qualquerumy@email.domain, etc. -
  • -
  • Aplicar regra se o destinatário for ...: - Esta opção modifica a maneira como os endereços são processados. - Caso múltiplos endereços sejam colocados, esta configuração será aplicada a todos. - Os exemplos abaixo são baseados no endereço usuario@email.domain - mostrado no exemplo de Regras OpenPGP mostrado acima. -
      -
    • É exatamente: com esta configuração, esta regra será apenas utilizada em emails para usuario@email.domain (texto exato, sem levar em consideração maiúsculas ou minúsculas). -
    • -
    • Contém: com esta configuração, qualquer endereço de email contendo a sub-palavra especificada é encontrada, por exemplo qualquerum@email.domain ou usuario@email.domain.net -
    • -
    • Começa com: com esta configuração, qualquer endereço começando com esta palavra é processado, por exemplo usuario@email.domain.net, usuario@email.domain-name.com. -
    • -
    • Termina com: com esta configuração, qualquer endereço terminando com esta palavra será processado, por exemplo qualquerum@email.domain, - alguem@email.domain. -
    • -
    - -
  • -
  • Continua com a próxima regra para o endereço selecionado
    - Ligando esta funçã permitirá que se defina uma regra mas não seja necessário especificar um ID de Chave no campo Usar as seguintes chaves OpenPGP:, de formad que o endereço de email será utilizado para verificar por uma chave na hora do envio. Além disso, regras criadas para o mesmo endereço serão processadas també. -
  • -
  • Não continuar verificando regras para o endereço selecionado
    - Ligando esta função, o processamento de quaisquer outras regras será abortado para o(s) endereço(s) selecionado(s) caso esta regra seja utilizada, ou seja, o processamento de regras continua com o próximo destinatário. -
  • -
  • Utilizar as seguintes chaves OpenPGP:
    - Utilize o botão Selecionar Chave(s).. para selecionar as chaves de destinatário que serão utilizadas para criptografia. - Como na ação descrita anteriormente, nenhuma regra adicional para o(s) endereço(s) selecionado(s) serão processadas. -
  • -
  • Padrão para Assinatura: habilitar ou desabilitar assinatura de mensagens. - Esta opção utiliza ou sobrepõe o que você especificou na janela de composição de mensagem. - Os valores são: -
      -
    • Nunca: desabilitar assinatura, mesmo quando tiver sido habilitada na janela de composição de mensagem. (sobrepõe os outros valores)
      -
    • -
    • Sim, se selecionado na Composição da Mensagem: deixe a assinatura como especificada na janela de composição de mensagem -
    • -
    • Sempre: habilitar assinatura, mesmo se não foi habilitada na janela de composição de mensagem -
    • -
    -
  • -
-
Estas configurações de assinatura são aplicadas para todas as regras que coincidirem. -Caso uma das regras desabilite assinatura, a mensagem não será assinada, mesmo que outras regras especifiquem Sempre assinar.
-
-
    -
  • Criptografia: habilitar ou desabilitar criptografia de mensagem. - As configurações permitidas e seu significado é o mesmo que para assinatura de mensagens.
  • -
  • PGP/MIME: habilitar ou desabilitar o uso de codificação de mensagem PGP/MIME (RFC 3156). - Caso o PGP/MIME esteja desligado, as mensagens são codificadas utilizando o processo "PGP inline". Os valores permitidos e seus significados são os mesmos utilizados para assinatura de mensagens. -
  • -
-

As regras são processadas na ordem mostrada na lista do Editor de Regras OpenPGP. Sempre que uma regras coincidir com um destinatário e conter um ID de Chave OpenPGP, além de utilizar o ID de Chave especificado, o destinatário não é mais considerado ao se processar as regras seguintes. -

-
-

-Mais ajuda pode ser encontrada na -página web de Ajuda do Enigmail para Configuraçáo por Destinatário -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/initError.html enigmail-2.2.4/lang/pt-BR/help/initError.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - Ajuda do Enigmail: Como Resolver Problemas com a Inicialização do OpenPGP - - - - -

Ajuda do Enigmail

- -

Como Resolver Problemas Com a Inicialização do OpenPGP

- -

Existem diversas razões pelas quais a inicialização do OpenPGP pode falhar. As mais comuns estão descritas abaixo; - Para mais informações visite a página de suporte do Enigmail.

- -
-
GnuPG não pode ser encontrado
-
-

- Para que o OpenPGP funcione, a ferramenta GnuPG precisa estar instalada. - Caso o GnuPG não seja encontrado, verifique primeiramente se o arquivo executável gpg.exe (no Windows; gpg nas outras plataformas) está instalado em seu computador. - Caso o GnuPG esteja instalado, e o OpenPGP não consiga encontrá-lo, você precisará informar manualmente o caminho para ele nas Preferências do OpenPGP Preferences (menu OpenPGP > Preferências) -

- -
Falha ao inicializar o Enigmime
- -
-

- O OpenPGP funciona apenas se tiver sido compilado utilizando-se o mesmo ambiente utilizado para construir o Thunderbird ou SeaMonkey. Isto significa que você apenas pode utilizar uma versão oficial do Enigmail se utilizar também uma versão oficial do Thunderbird ou SeaMonkey fornecida pela mozilla.org. -

-

- Caso você utilize uma versão do Thunderbird ou SeaMonkey de outro fornecedor (por exemplo, do distribuidor de sua distribuição Linux), ou se você mesmo compilou a aplicação, você deve utilizar uma versão construída pelo mesmo fornecedor, ou compilar uma versão do Enigmail. Para compilar o Enigmail, siga as instruções na seção Código Fonte na página do Enigmail. Por favor não abra relatórios de erro sobre este problema, ele não pode ser resolvido de outra maneira. -

-
-
-

Mais ajuda está disponível na Página de Suporte do Enigmail.

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/messenger.html enigmail-2.2.4/lang/pt-BR/help/messenger.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - -Ajuda do Enigmail: Leitura de Mensagens - - -

Ajuda do Enigmail

- -

Utilizando o Enigmail durante a leitura de mensagens

-
    -
  • Botão Descriptografar na janela principal de mensagens
    - Este botão pode ser utilizado para diversas funções: descriptografar, verificar ou importar chaves públicas. Normalmente a criptografia/verificação ocorre automaticamente, embora isto possa ser desabilitado através de uma opção. No entanto, se isto falhar, geralmente uma pequena mensagem de erro irá aparecer na barra de status do Enigmail. Se você clicar no no botão Descriptografar, você poderá ver uma mensagem de erro mais detalhada, incluindo a saída do comando GnuPG. -
  • -
  • Ícones de Caneta e Chave no Cabeçalho da Mensagem
    - Os ícones de Caneta e Chave no cabeçalho da mensagem indicam s a mensagem que você está lendo foi assinada e/ou criptografada e se a assinatura é válida, ou seja, se a mensagem não foi alterada desde que foi assinada. Caso a mensagem tenha sido alterada, o ícone da Caneta irá mudar para um ícone de Caneta Quebrada para indicar que a assinatura não é válida. Clicando com o botão direito em qualquer um dos ícones de Caneta ou Chave trará um menu com as seguintes opçóes: -
      -
    • Informações de Segurança do OpenPGP: permite que você veja a saída do GnuPG para esta mensagem.
    • -
    • Copiar Informações de Segurança do OpenPGP: copia a saída do GnuPG para a área de transferência; para colar em uma mensagem, por exemplo.
    • -
    • Ver ID com Foto do OpenPGP: permite que você visualize o ID com Foto da pessoa que enviou a mensagem, caso possua uma foto contida em sua Chave Pública. - (Esta opção apenas será habilitada caso um ID com Foto exista na chave da pessoa.)
    • -
    • Informações de Segurança S/MIME: permite que você visualize as Informações de Segurança S/MIME para a mensagem.
    • -
    -

    Se você não tiver a opção de buscar chaves automaticamente no servidor de chaves definida em seu gpg.conf e ler uma mensagem que está assinada ou criptografada, você verá um ícone de uma Caneta no cabeçalho da mensagem juntamente com um Ponto de Interrogação nele, e a barra de status na área do cabeçalho do Enigmail dirá Parte da mensagem foi assinada; clique no ícone da caneta para detalhes e a mensagem mostrará todos os indicadores de blocos de mensagem do OpenPGP e o bloco de assinatura.

    -

    Você também pode ver este ícone caso tenha a opção de buscar chaves automaticamente no servidor de chaves definida em seu gpg.conf e a chave OpenPGP não esteja disponível no servidor de chaves padrão.

    -

    Clicando no ícone de Caneta com Ponto de Interrogação irá trazer uma janela informando que a chave não está disponível em seu chaveiro. Clicando em OK irá trazer uma outra janela com uma relação de servidores de chaves a partir dos quais você poderá selecionar de onde deseja baixar a chave pública do remetente.

    -

    Para configurar a lista de servidores de chaves que você deseja utilizar, vá até a aba Enigmail -> - Preferências -> Báasicas e entre com os endereços dos servidores de chaves na caixa Servidor(es) de Chaves: separados por uma vírgulas. O primeiro servidor de chaves na lista será utilizado como padrão.

    -
  • -
  • Abrindo anexos criptografados / importando chaves OpenPGP anexadas
    - Anexos terminando em *.pgp, *.asc e *.gpg são reconhecidos como anexos que podem ser tratados de forma especial pelo Enigmail. Clicando com o botão direito em um destes anexos habilita dois itens especiais no menu de contexto: Descriptografar e Abrir e Descriptografar e Salvar. Utilize estes dois itens se você quer que o Enigmail descriptografe um anexo antes de abrí-lo ou salvá-lo. Caso um anexo seja reconhecido com um arquivo de chave OpenPGP, será oferecida a oportunidade de importar as chaves em seu chaveiro. -
  • -

-

-Mais ajuda pode ser encontrada na página web de Ajuda do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/rulesEditor.html enigmail-2.2.4/lang/pt-BR/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ - -Ajuda do Enigmail: Editor de Regras - - -

Ajuda do Enigmail

- -

Utilizando o Editor de Regras do Enigmail

-

No Editor de Regras, você pode especificar os padrões para cada destinatário para permitir criptografia, assinatura e PGP/MIME, e para definir quais chaves OpenPGP serão utilizadas. Cada regra consiste em 5 campos e é representada em uma única linha: -

-
    -
  • Email: o endereço de email que serão pesquisados nos campos De:, Cc: e Bcc:. A pesquisa funciona em sub-palavras (Maiores detalhes podem ser encontrados no diálogo do Editor de Regras) -
  • -
  • Chave(s) OpenPGP: uma lista de Id's de Chaves OpenPGP -Key ID's para utilizar para este destinatário
  • -
  • Assinar: habilitar ou desabilitar a assinatura da mensagem. Esta opção utiliza ou sobrepõe o que você especificou na janela de composição de mensagem. Os valores são: -
      -
    • Nunca: desabilita a assinatura, mesmo se estiver habilitada na janela de composição de mensagem (sobrepõe os outros valores)
      -
    • -
    • Possível: deixa a opção de assinatura como especificada na janela de composição de mensagem
    • -
    • Sempre: habilita assinatura, mesmo se não estiver habilitada na janela de composição de mensagem -
    • -
    -
  • -
-
Estas opções de assinatura se aplicam para todas as regras que forem selecionadas. Caso uma destas regras desabilite a assinatura, a mensagem não será assinada, não importando o que outras regras especificarem Sempre.
-
-
    -
  • Criptografar: habilita ou desabilita criptografia de mensagem. As opções permitidas e seus significados são os mesmos definidos para assinatura de mensagem.
  • -
  • PGP/MIME: habilita ou desabilita o uso de codificação PGP/MIME (RFC 3156). - Caso a opção PGP/MIME esteja desabilitada, as mensagens são codificadas utilizando o "PGP inline". Os valores permitidos e seus significados são os mesmos da assinatura de mensagem. -
  • -
-

As regras são processadas na ordem em que são mostradas na lista. Sempre que uma coincide com um destinatário e contém um ID de Chave OpenPGP, além de utilizar o ID de Chave especificado, o destinatário não é mais considerado ao se processar as regras seguintes.

-

Nota: O editor de regras ainda não está completo. É possível escrever regras muito mais avançadas editando o arquivo de regras diretamente (neste caso, as regras não deverão ser mais editadas no editor de regras). Maiores informações sobre como editar o arquivo diretamente estão disponíveis na página do Enigmail

-
-

-Mais ajuda pode ser encontrada na página de Ajuda do Enigmail na web -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-BR/help/sendingPrefs.html enigmail-2.2.4/lang/pt-BR/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/pt-BR/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-BR/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/am-enigprefs.properties enigmail-2.2.4/lang/pt-PT/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/pt-PT/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Segurança OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/enigmail.dtd enigmail-2.2.4/lang/pt-PT/enigmail.dtd --- enigmail-2.1.6+ds1/lang/pt-PT/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' para especificar endereços de correio eletrónico"> - - -' para especificar endereços de correio eletrónico para o GnuPG. Desativar se os destinatários apenas possuírem chaves Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Segurança OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: A operação de criar chave pode demorar vários minutos a completar. Não feche a aplicação enquanto a operação estiver em progresso. Navegar ativamente ou levar a cabo operações de uso intensivo do disco irão repor o nível do repositório de aleatoriedade e acelerar o processo. Será avisado quando a chave estiver criada."> - @@ -296,488 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' não é válido"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTA: Criar a chave pode demorar vários minutos. Não feche a aplicação enquanto a operação não terminar. Será alertado quando a chave estiver criada."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/enigmail.properties enigmail-2.2.4/lang/pt-PT/enigmail.properties --- enigmail-2.1.6+ds1/lang/pt-PT/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail: Aviso # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail: Erro enigPrompt=Enigmail: Comando - -dlgYes=&Sim dlgNo=&Não dlgKeepSetting=Lembrar a resposta e não perguntar novamente dlgNoPrompt=Não mostrar este diálogo novamente -dlg.button.delete=&Apagar dlg.button.cancel=&Cancelar dlg.button.close=&Fechar dlg.button.continue=Con&tinuar -dlg.button.skip=&Saltar -dlg.button.overwrite=S&obrepor -dlg.button.view=&Ver -dlg.button.retry=&Repetir -dlg.button.ignore=&Ignorar -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nEste aviso irá repetir-se mais %S repeatSuffixSingular=vez. repeatSuffixPlural=vezes. noRepeat=\n\nEste aviso não se repetirá até à atualização do Enigmail. - -pgpNotSupported=Parece que está a usar o Enigmail em conjunto com o PGP 6.x\n\nInfelizmente, o PGP 6.x tem uma série de problemas que impedem o correto funcionamento do Enigmail. Assim, o Enigmail já não suporta o PGP 6.x; por favor, passe antes a usar o GnuPG (GPG).\n\nSe necessita de ajuda na mudança para o GnuPG, consulte a secção de ajuda no site do Enigmail. -initErr.howToFixIt=Para usar o Enigmail, é necessário o GnuPG. Se ainda não o instalou, a forma mais fácil será usando o botão "Assistente de Configuração". -initErr.setupWizard.button=&Assistente de Configuração passphraseCleared=A senha foi limpa. cannotClearPassphrase=Está a usar uma ferramenta não convencional (como gnome-keyring) para manipular frases de acesso. Por esse motivo, não é possível apagar a frase de acesso a partir do Enigmail. -noPhotoAvailable=Foto não disponível -debugLog.title=Registo de Depuração do Enigmail -error.photoPathNotReadable=Não foi possível aceder ao caminho '%S' para a fotografia - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Esta nova versão do Enigmail tem alterações significativas no tratamento das preferências e opções. Tentámos transferir as opções antigas para esta versão. Contudo, não foi possível cobrir todos os casos automaticamente. Por favor, verifique com cuidado as novas preferências e opções. -enigmailCommon.checkPreferences=Verificar Preferências ... -preferences.defaultToPgpMime=A codificação de mensagem por omissão no Enigmail foi alterada de PGP embebido para PGP/MIME. Recomenda-se que mantenha esta configuração como omissão.\n\nSe mesmo assim deseja usar PGP embebido por omissão, pode fazê-lo nas Definições da conta em Segurança OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Executando a versão %S do Enigmail -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Usando o programa %1$S com o executável %2$S para cifrar e decifrar agentError=ERRO: Foi impossível aceder ao serviço Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Erro ao aceder ao serviço Enigmime -onlyGPG=Só pode criar chaves com o GnuPG (não com o PGP)! - -keygenComplete=Nova chave criada!\nA identidade <%S> será usada para assinar. -revokeCertRecommended=Recomendamos vivamente a criação de um certificado de revogação para a sua chave. Este certificado pode ser usado para invalidar a sua chave, por exemplo, na eventualidade da perder a sua chave privada ou de esta ter sido comprometida. Deseja criar um certificado de revogação agora? -keyMan.button.generateCert=&Criar Certificado -genCompleteNoSign=Nova chave criada! -genGoing=Já está a criar uma nova chave! - -passNoMatch=As senhas não coincidem; por favor, introduza-as de novo -passCheckBox=Seleccionar se não desejar definir uma senha para esta chave -passUserName=Por favor indique o nome de utilizador para esta identidade -keygen.missingUserName=Não foi indicado nenhum nome para a conta/identidade selecionada. Por favor introduza um valor no campo "O seu Nome" nas definições de conta. -keygen.passCharProblem=Está a usar caracteres especiais na sua frase senha. Infelizmente, isso pode causar problemas para outras aplicações. Recomenda-se que escolha uma frase senha contendo apenas estes caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Devido a problemas técnicos, a sua senha não pode começar nem acabar com um espaço. -changePassFailed=A alteração da senha falhou. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Criar Chave -keyAbort=Abortar criação da nova chave? -keyMan.button.generateKeyAbort=&Abortar Criação de Chave -keyMan.button.generateKeyContinue=&Continuar a Criar a Chave -expiryTooLong=Não pode criar uma chave com o prazo de expiração superior a 100 anos. -expiryTooLongShorter=Não pode criar uma chave que expire em mais de 90 anos. -expiryTooShort=A chave tem de ser válida por um mínimo de um dia. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=A data de expiração não pôde ser alterada - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informação de Segurança Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Mensagem possivelmente assinada ou cifrada com PGP/MIME. Clique Decifrar para verificar. - -saveAttachmentHeader=Enigmail: Guardar anexo decifrado -noTempDir=Não foi possível encontrar uma diretoria temporária na qual escrever\nPor favor, configure a variável de ambiente TEMP -attachmentPgpKey=O anexo '%S' que está a abrir aparenta ser uma chave OpenPGP.\n\nClique 'Importar' para importar as chaves lá contidas ou 'Ver' para ver o conteúdo do ficheiro numa janela do navegador web - -beginPgpPart=********* *INÍCIO de PARTE ASSINADA ou CIFRADA* ********* -endPgpPart=********** *FIM de PARTE ASSINADA ou CIFRADA* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Encontrados múltiplos blocos de mensagem -- verificação/decifração abortada* - -decryptOkNoSig=Aviso\n\nA mensagem foi corretamente decifrada mas não foi possível verificar a assinatura -msgOvl.button.contAnyway=&Continuar Mesmo Assim -signature.verifiedOK=A assinatura do anexo %S foi verificada com sucesso -signature.verifyFailed=A assinatura do anexo %S não pôde ser verificada -attachment.noMatchToSignature=Não foi possível fazer corresponder o anexo %S a uma assinatura -attachment.noMatchFromSignature=Não foi possível fazer corresponder a assinatura %S a um anexo -fixBrokenExchangeMsg.failed=Não foi possível reparar a mensagem. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Seleccione as chaves OpenPGP a Inserir keysToUse=Seleccione a(s) chave(s) OpenPGP a usar para %S pubKey=Chave pública para %S\n - -windowLocked=A janela de composição está bloqueada; envio cancelado -sendUnencrypted=A inicialização do Enigmail falhou.\nEnviar a mensagem em claro? -composeSpecifyEmail=Por favor, indique o seu endereço de correio principal, que será usado para escolher a chave para assinar as mensagens a enviar.\nSe o deixar em branco, será usado o endereço no campo FROM (De) para escolher a chave a usar. -sendingHiddenRcpt=Esta mensagem tem destinatários BCC (Cópia oculta). Se esta mensagem for cifrada é possível esconder os destinatários BCC, mas os utilizadores de alguns produtos (ex: PGP Corp.) não serão capazes de decifrar a mensagem. Assim, recomendamos evitar enviar mensagens cifradas com destinatários BCC. -sendWithHiddenBcc=Esconder destinatários BCC -sendWithShownBcc=Cifrar normalmente -sendingNews=Operação de envio interrompida.\n\nEsta mensagem não pode ser cifrada uma vez que tem grupos de discussão como destinatários. Por favor, envie a mensagem sem a cifrar. -sendToNewsWarning=Aviso: está prestes a enviar uma mensagem cifrada para um grupo de discussão.\n\nNão o recomendamos porque apenas faria sentido se todos os membros do grupo pudessem decifrar a mensagem, ou seja, a mensagem teria de ser cifrada com a chave de todos os participantes no grupo. Por favor, envie esta mensagem apenas se souber exatamente o que está a fazer.\n\nContinuar? -hasHTML=Aviso de correio HTML:\nEsta mensagem parece conter HTML, o que poderá causar a falha da operação de assinar/cifrar. Para evitar esta situação no futuro, deve pressionar a tecla SHIFT ao fazer clique no botão Compor/Responder para enviar correio assinado.\nSe envia correio assinado por omissão, deve desseleccionar a opção 'Compor mensagens em HTML' para desativar permanentemente o envio de correio HTML nesta conta. -strippingHTML=A mensagem contém formatação HTML que será perdida ao ser convertida para texto simples para assinar/cifrar. Deseja continuar? -msgCompose.button.sendAnyway=&Enviar Mensagem Mesmo Assim -attachWarning=Os anexos a esta mensagem não são locais, pelo que não podem ser cifrados. Para cifrar os anexos, guarde-os como ficheiros locais, anexando depois estes ficheiros. Deseja enviar a mensagem mesmo assim? quotedPrintableWarn=Escolheu a codificação 'quoted-printable' para enviar mensagens. Isto pode ter como resultado uma incorreta decifração ou verificação da sua mensagem.\nDeseja desseleccionar o envio de mensagens 'quoted-printable'? -minimalLineWrapping=Configurou a quebra automática de linha para %S caracteres. Para cifrar ou assinar corretamente, este valor deve ser pelo menos 68.\nDeseja alterar a quebra automática de linha para 68 caracteres? warning=Aviso -signIconClicked=Alterou manualmente a assinatura. Desta forma, ao compor esta mensagem, (des)ativar a assinatura já não depende de (des)ativar a cifra. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Erro ao guardar rascunho -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Erro Interno: desativada a cifra prometida -msgCompose.internalError=Ocorreu um erro interno. - -msgCompose.toolbarTxt.signAndEncrypt=A mensagem será assinada e cifrada -msgCompose.toolbarTxt.signOnly=A mensagem será assinada -msgCompose.toolbarTxt.encryptOnly=A mensagem será cifrada -msgCompose.toolbarTxt.noEncryption=A mensagem não será assinada nem cifrada -msgCompose.toolbarTxt.disabled=O Enigmail está desativado para a identidade seleccionada -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=Detalhes ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Desconhecido -# msgCompose.pepSendUnsecure=Unsecure -msgCompose.pepSendSecure=Seguro -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Operação de envio interrompida.\n\n - -# details: keyNotTrusted=A chave '%S' não é suficientemente confiável -keyNotFound=A chave '%S' não foi encontrada -keyRevoked=A chave '%S' está revogada -keyExpired=A chave '%S' está expirada - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=ASSINADA -statEncrypted=CIFRADA -statPlain=NÃO ASSINADA e NÃO CIFRADA - -offlineSave=Guardar a mensagem %1$S para %2$S na pasta Mensagens Não Enviadas? - -onlineSend=Enviar mensagem %1$S para %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Enviar Mensagem Não Cifrada -recipientsSelectionHdr=Escolha os Destinatários para os quais Cifrar - -configureNow=Ainda não configurou a segurança Enigmail para a identidade seleccionada. Deseja fazê-lo agora? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Cifrar Mensagem (auto) -encryptMessageNorm=Cifrar Mensagem -signMessageAuto=Assinar Mensagem (auto) -signMessageNorm=Assinar Mensagem - -encryptOff=Cifrar: Desligado -encryptOnWithReason=Cifrar: Ligado (%S) -encryptOffWithReason=Cifrar: Desligado (%S) -encryptOn=Cifrar: Ligado -signOn=Assinar: Ligado -signOff=Assinar: Desligado -signOnWithReason=Assinar: Ligado (%S) -signOffWithReason=Assinar: Desligado (%S) -reasonEnabledByDefault=ativado por omissão -reasonManuallyForced=forçado manualmente -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=forçado por modo de cifra automática -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=devido ao modo de cifra - -# should not be used anymore: -encryptYes=A mensagem será cifrada -encryptNo=A mensagem não será cifrada - -# should not be used anymore: -signYes=A mensagem será assinada -signNo=A mensagem não será assinada - - -# PGP/MIME status: -pgpmimeNormal=Protocolo: PGP/MIME -inlinePGPNormal=Protocolo: PGP embebido -smimeNormal=Protocolo: S/MIME -pgpmimeAuto=Protocolo: PGP/MIME (auto) -inlinePGPAuto=Protocolo: PGP embebido (auto) -smimeAuto=Protocolo: S/MIME (automático) - -# should not be used anymore -pgpmimeYes=Será usado PGP/MIME -pgpmimeNo=Será usado PGP embebido - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Detetado conflito em regras por destinatário\n%S\n\nEnviar mensagem com esta configuração? -msgCompose.button.configure=&Configurar -msgCompose.button.send=&Enviar Mensagem -msgCompose.button.save=&Guardar Mensagem - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=É necessária a chave pública %S para verificar a assinatura -keyUsed=Chave pública %S usada para verificar a assinatura -clickDecrypt=; clique no botão Decifrar -clickDecryptRetry=; clique no botão Decifrar para tentar novamente -clickDetailsButton=; premir o botão 'Detalhes' para mais informação -clickImportButton=; premir o botão 'Importar Chave' para transferir a chave -keyTypeUnsupported=; o tipo de chave não é suportado pela sua versão do GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Decifrar -msgPart=Parte da mensagem %S -msgSigned=assinada -msgSignedUnkownKey=assinada com chave desconhecida -msgEncrypted=cifrada -msgSignedAndEnc=assinada e cifrada - unverifiedSig=Assinatura não verificada -incompleteDecrypt=Decifração incompleta -needKey=Erro - não foi encontrada a chave privada correspondente para decifrar a mensagem -failedDecrypt=Erro - foi impossível decifrar badPhrase=Erro - senha incorreta # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Erro - foi impossível decifrar/verificar -viewInfo=; Escolha Ver > Informação de segurança da mensagem para mais informação -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Mensagem decifrada -decryptedMsgWithFormatError=Mensagem decifrada (restaurado o formato PGP defeituoso provavelmente causado por um servidor Exchange antigo, podendo resultar numa mensagem de difícil leitura) - -usedAlgorithms=Algoritmos utilizados: %S e %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -pepStatusInfo.info.m3=Esta mensagem não é segura e foi alterada. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Desconhecido -pepStatusInfo.info.r0=Esta mensagem não contém informação suficiente para determinar se é segura. -# pepStatusInfo.title.r1=Cannot Decrypt -pepStatusInfo.info.r1=Esta mensagem não pode ser decifrada porque a chave não está disponível. -# pepStatusInfo.title.r2=Cannot Decrypt -pepStatusInfo.info.r2=Esta mensagem não pode ser decifrada porque a chave não está disponível. -# pepStatusInfo.title.r3=Unsecure -pepStatusInfo.info.r3=Esta mensagem não é segura. -pepStatusInfo.title.r4=Inseguro para Alguns -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -pepStatusInfo.title.r5=Segurança Não Confiável -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -pepStatusInfo.info.r6=Esta mensagem é segura mas ainda necessita de verificar a identidade do seu correspondente. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -pepStatusInfo.color.red=Vermelho -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -pepRevokeTrust.doRevoke=Cancelar &confiança - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=Confirmar Pedido - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Localizar o executável GnuPG -invalidGpgPath=O GnuPG não pôde ser executado a partir da localização fornecida. Assim, o Enigmail está desativado até o alterar novamente ou até reiniciar a aplicação. -warningsAreReset=Todos os avisos foram removidos. -prefs.gpgFound=GnuPG encontrado em %S -prefs.gpgNotFound=Não foi possível encontrar o GnuPG -prefs.warnAskNever=Aviso: ativar esta opção terá como resultado mensagens não cifradas serem enviadas sem qualquer aviso sempre que não for encontrada qualquer chave para um dos destinatários -- O OpenPG não o informará se isto acontecer! -prefs.warnIdleTimeForUnknownAgent=O seu sistema possui uma ferramenta especial para gestão de senhas, como o gnome-keyring ou seahorse-agent. Infelizmente, o Enigmail não pode controlar o tempo de expiração da chave com a ferramenta que está a usar. Por esse motivo a configuração do tempo de expiração respetiva será ignorada. -prefEnigmail.oneKeyserverOnly=Erro - Apenas pode indicar um servidor de chaves para importação automática de chaves OpenPGP. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Por favor, introduza o PIN de ADMINISTRAÇÃO do seu SmartCard -enterCardPin=Por favor, introduza o PIN do seu SmartCard - -notInit=Erro - O serviço Enigmail ainda não está inicializado badCommand=Erro - foi impossível cifrar cmdLine=linha de comando e saída: -notRequired=Erro - cifra não requerida -notComplete=Erro - nova chave ainda não criada -invalidEmail=Erro - endereço(s) de correio não válido(s) noPassphrase=Erro - senha não introduzida noPGPblock=Erro - Não foi encontrado um bloco OpenPGP válido -unverifiedReply=A parte indentada da mensagem (resposta) foi provavelmente modificada -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Erro - Assinatura não coincidente -# cantImport=Error importing public key\n\n -doImportOne=Importar %1$S (%2$S)? -doImportMultiple=Importar as seguintes chaves?\n\n%S -previewFailed=Não foi possível ler o ficheiro de chave pública. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=O SmartCard %S encontrado no seu leitor não pôde ser usado para processar a mensagem.\nPor favor, insira o seu SmartCard %S e repita a operação. sc.insertCard=A operação requer o seu SmartCard %S.\nPor favor insira o SmartCard requerido e repita a operação. sc.removeCard=A operação não necessita de qualquer SmartCard inserido no leitor.\nPor favor remova o SmartCard e repita a operação. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Não foi possível aceder ao seu leitor de SmartCards\nPor favor, ligue o seu leitor de SmartCards, insira o seu cartão e repita a operação. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Por favor selecione uma chave válida na secção OpenPGP nas Definições da conta. missingPassphrase=Introduza uma frase de acesso errorHandling.gpgAgentInvalid=O seu sistema está a executar uma versão do gpg-agent que não é adequada para a sua versão GnuPG. errorHandling.gpgAgentError=O GnuPG reportou um erro na comunicação com gpg-agent (uma componente do GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=O GnuPG não consegue consultar a sua frase de acesso via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Isto é um erro provocado por configurações ou definições de sistema que impede o Enigmail de funcionar corretamente e não pode ser resolvido automaticamente.\n\nRecomenda-se veementemente que consulte o nosso sítio web de suporte em https://enigmail.net/faq. - gpgNotFound=Foi impossível encontrar o GnuPG em '%S'.\nCertifique-se de que configurou corretamente a localização do executável GnuPG nas Preferências do Enigmail. gpgNotInPath=Foi impossível encontrar o executável GnuPG no PATH.\nCertifique-se de que configurou corretamente a localização do executável GnuPG nas Preferências do Enigmail. enigmailNotAvailable=Serviço básico do Enigmail indisponível - -prefGood=Assinatura válida de %S -prefBad=Assinatura INVÁLIDA de %S - failCancel=Erro - Importação de chave cancelada pelo utilizador failKeyExtract=Erro - O comando de extração de chave falhou -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Erro - O primeiro bloco OpenPGP não contém uma chave pública importKeyConfirm=Importar chave(s) pública(s) contidas na mensagem? -failKeyImport=Erro - a importação de chave falhou fileWriteFailed=Erro ao escrever no ficheiro %S - importKey=Importar a chave pública %S do servidor: uploadKey=Exportar chave %S para o servidor: keyId=Identificador da chave -keyAndSigDate=Identificador da chave: 0x%1$S / Assinada em: %2$S -keyFpr=Impressão digital da chave: %S -noEmailProvided=Não introduziu um endereço de correio eletrónico! -keyAlreadySigned=A chave já está assinada, não pode assiná-la novamente. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expirada em %S createdHeader=Criada atLeastOneKey=Nenhuma chave seleccionada! Deve seleccionar pelo menos uma chave para fechar este diálogo fewerKeysThanRecipients=Seleccionou menos chaves que destinatários. Tem a certeza de que a lista de chaves para cifrar está completa? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Seleccionar uma Chave OpenPGP Privada para Assinar as Suas Mensagens userSel.problemNoKey=Não foi encontrada uma chave válida userSel.problemMultipleKeys=Múltiplas chaves -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Enviar mais tarde - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=primeira second=segunda - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Seleccione a chave OpenPGP para Cifrar -identityName=Identidade: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Ativou a cifra mas não selecionou uma chave. Para cifrar o correio enviado para %1$S, necessita de escolher uma ou várias chaves válidas da sua lista de chaves. Deseja desativar a cifra para %2$S? -noKeyToUse=(nenhuma - em claro) -noEmptyRule=A Regra não pode ficar em branco! Por favor, introduza um endereço de correio no campo Regra. -invalidAddress=O(s) endereço(s) de correio que introduziu não são válidos. Não deve introduzir o nome dos destinatários, apenas os seus endereços. Ex:\nInválido: Nome Qualquer \nVálido: nome.qualquer@endereco.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Nunca always=Sempre possible=Possível -deleteRule=Deseja mesmo remover a regra seleccionada? -nextRcpt=(Próximo destinatário) -negateRule=Não -addKeyToRule=Adicionar a chave %1$S (%2$S) à regra por destinatário - -# Strings used in enigmailSearchKey.js -needOnline=A função que seleccionou não está disponível quando desligado da Internet. Por favor, ligue-se à rede e tente novamente. -noKeyserverConn=Foi impossível estabelecer ligação com o servidor %S. -internalError=Ocorreu um erro interno. Foi impossível transferir ou importar as chaves. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Erro ao definir a confiança no utilizador - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Erro ao assinar a chave -alreadySigned.label=Nota: a chave %S já está assinada com a chave privada selecionada. -alreadySignedexportable.label=Nota: a chave %S já está assinada como exportável com a chave privada selecionada. Uma assinatura local não faz sentido. -partlySigned.label=Nota: alguns identificadores de utilizador da chave %S já estão assinados com a chave secreta selecionada. -noTrustedOwnKeys=Não foi encontrada nenhuma chave elegível para assinar! Necessita de pelo menos uma chave privada com total confiança para poder assinar chaves. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Carregando as chaves, por favor aguarde... keyValid.unknown=desconhecida keyValid.invalid=inválida keyValid.disabled=desativada keyValid.revoked=revogada keyValid.expired=expirada keyValid.noSubkey=sem subchave válida - -keyTrust.untrusted=nula +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=marginal keyTrust.full=normal keyTrust.ultimate=total keyTrust.group=(grupo) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Ativar Chave -keyMan.disableKey=Desativar Chave userAtt.photo=Atributo de utilizador (imagem JPEG) - -asciiArmorFile=Armadura ASCII (*.asc) importKeyFile=Importar Ficheiro com Chaves OpenPGP -gnupgFile=Ficheiros GnuPG -saveRevokeCertAs=Criar e Guardar Certificado de Revogação -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=O certificado de revogação não pôde ser criado. - -addUidOK=Identificador de utilizador adicionado com sucesso. -addUidFailed=Erro ao adicionar o identificador de utilizador -noKeySelected=Deve seleccionar pelo menos uma chave para completar a operação seleccionada -exportToFile=Exportar Chave Pública para Ficheiro -exportKeypairToFile=Exportar as Chaves Pública e Privada para um Ficheiro -exportSecretKey=Deseja incluir a chave privada no ficheiro de chave OpenPGP guardado? -saveKeysOK=As chaves foram guardadas com sucesso -saveKeysFailed=Erro ao guardar as chaves -importKeysFailed=Erro ao importar as chaves -enableKeyFailed=A ativação/desativação das chaves falhou -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Chaves-publicas-exportadas -defaultPubSecKeyFilename=Chaves-publicas-e-privadas-exportadas - -sendKeysOk=Chave(s) enviadas com sucesso -sendKeysFailed=Erro ao enviar as chaves -receiveKeysOk=Chave(s) atualizada(s) com sucesso -receiveKeysFailed=Erro ao importar as chaves -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Deseja importar chaves da Área de Transferência? -importFromUrl=Descarregar chave pública deste URL: -copyToClipbrdFailed=Foi impossível copiar as chaves seleccionadas para a Área de Transferência. -copyToClipbrdOK=Chave(s) copiada(s) para a Área de Transferência - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=AVISO: Está prestes a apagar chaves privadas!\nSe apagar a sua chave privada, não poderá mais decifrar mensagens cifradas para essa chave.\n\nDeseja realmente apagar AMBAS as chaves seleccionadas, pública e privada? -deletePubKey=Deseja remover a chave pública\n'%S'? -deleteSelectedPubKey=Deseja apagar as chaves públicas? -deleteKeyFailed=Foi impossível remover a chave. revokeKeyQuestion=Está prestes a revogar a chave %S.\n\nIrá perder a hipótese de assinar com esta chave e, após distribuído este certificado, mais ninguém lhe poderá enviar mensagens cifradas com essa chave. Poderá continuar a usar a chave para decifrar mensagens antigas.\n\nDeseja continuar? -revokeKeyOk=A chave foi revogada. Se tinha a chave disponível num servidor, deve exportá-la de novo, para que todos possam ver a revogação. -revokeKeyFailed=Foi impossível revogar a chave. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Não seleccionou qualquer chave. Deseja refrescar TODAS as chaves? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da sua ligação, refrescar todas as chaves pode ser um processo bastante longo! -downloadContactsKeys.warn=Aviso: dependendo do número de contactos e da velocidade de ligação, transferir todas as chaves pode demorar um tempo apreciável. -downloadContactsKeys.importFrom=Importar contactos do livro de endereços '%S'? -keyMan.button.exportSecKey=&Exportar Chaves Privadas -keyMan.button.exportPubKey=Exportar Apenas Chaves &Públicas keyMan.button.import=&Importar -keyMan.button.refreshAll=&Refrescar Todas as Chaves keyMan.button.revokeKey=&Revogar Chave - -keylist.noOtherUids=Não tem outras identidades -keylist.hasOtherUids=Também conhecido como -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Seleccionar fotografia a adicionar -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=O ficheiro seleccionado não aparenta estar no formato JPEG. Por favor, seleccione um ficheiro diferente. -keyMan.addphoto.failed=A fotografia não pôde ser adicionada. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Erro ao alterar o Identificador de Utilizador principal -changePrimUidOK=O Identificador de Utilizador principal foi alterado com sucesso -revokeUidFailed=Foi impossível revogar o Identificador de Utilizador %S -revokeUidOK=Identificador de Utilizador %S foi revogado com sucesso. Se tinha a chave disponível num servidor, deve exportá-la de novo, para que todos possam ver a revogação. -revokeUidQuestion=Tem a certeza que deseja revogar o Identificador de Utilizador %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUCESSO! Chaves importadas -importInfoBits=Bits -importInfoCreated=Criada -importInfoFpr=Impressão digital -importInfoDetails=(Detalhes) -importInfoNoKeys=Nenhuma chave importada. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=chave pública -keyTypePrimary=chave primária -keyTypeSubkey=chave secundária -keyTypePair=par de chaves -keyExpiryNever=nunca keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Cifrar -keyUsageSign=Assinar -keyUsageCertify=Certificar -keyUsageAuthentication=Autenticação -keyDoesNotExpire=A chave nunca expira - -# Strings in enigmailGenCardKey.xul -keygen.started=Por favor, aguarde enquanto a chave está a ser criada .... -keygen.completed=Chave criada. O identificador da nova chave é: 0x%S -keygen.keyBackup=Foi efetuada um cópia de segurança da chave com o nome %S -keygen.passRequired=Por favor, introduza uma senha se deseja criar uma cópia de segurança da sua chave fora do SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=A alteração do PIN falhou - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Refrescando as chaves, aguarde por favor... -keyserverProgress.uploading=Transferindo as chaves, aguarde por favor ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Refrescar Chaves -keyserverTitle.uploading=Transferência de Chaves -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=O ficheiro que escolheu não é um executável GnuPG. Por favor, indique outro ficheiro. -setupWizard.installFailed=Parece que a instalação não foi bem sucedida. Tente instalar de novo ou instalar o GnuPG manualmente e localizá-lo usando o botão Procurar. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Indique o ficheiro da cópia de segurança -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=O ficheiro de configuração do GnuPG já existe. Deseja substituí-lo pelo ficheiro da sua instalação anterior? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Ocorreu um erro ao tentar transferir o GnuPG. Por favor verifique a Consola de Erro para mais detalhes. -installGnuPG.installFailed=Ocorreu um erro ao instalar o GnuPG. Por favor, verifique a Consola de Erro para mais detalhes. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Tem de inserir um nome e endereço de correio eletrónico -addUidDlg.nameMinLengthError=O nome deve ter pelo menos 5 caracteres -addUidDlg.invalidEmailError=Deve inserir um endereço de correio eletrónico válido - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Os Smartcards OpenPGP apenas suportam caracteres ASCII no Nome/Apelido. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=O certificado de segurança apresentado pelo serviço web não é válido. errorType.SecurityProtocol=O protocolo de segurança usado pelo serviço web não é conhecido. errorType.Network=Ocorreu um erro de rede. - -# filter stuff -filter.folderRequired=Deve escolher uma pasta de destino. -filter.decryptMove.label=Decifrar permanentemente (Enigmail) -filter.decryptCopy.label=Criar Cópia Decifrada (Enigmail) -filter.decryptMove.warnExperimental=Aviso - a ação do filtro 'Decifrar permanentemente' poderá levar à destruição de mensagens.\n\nRecomenda-se vivamente que tente primeiro o filtro "Criar Cópia Decifrada", testando o resultado com atenção, e apenas use este filtro se ficar satisfeito com o resultado. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Guardar Ficheiro de Registo - -# strings in gpg.jsm -unknownSigningAlg=Algoritmo de assinatura desconhecido (Identificador: %S) -unknownHashAlg=Hash criptográfico desconhecido (Identificador: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=A chave %1$S (Identificador %2$S) foi revogada. keyRing.pubKeyExpired=A chave %1$S (Identificador %2$S) expirou. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Todas as subchaves de cifra da chave %1$S (Identificador %2$S) expiraram. keyRing.noSecretKey=Parece que não tem a chave secreta de %1$S (Identificador %2$S) no seu porta-chaves; não pode usar a chave para assinar. keyRing.encSubKeysUnusable=Todas as subchaves de cifra da chave %1$S (Identificador %2$S) foram revogadas, expiraram ou estão, de outro modo, inutilizáveis. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Não foi possível guardar para o ficheiro '%S'. Por favor selecione outro ficheiro. dataExportError=Ocorreu um erro a exportar os seus dados. -enigmailSettings=DefinicoesEnigmail -defaultBackupFileName=Enigmail-export -specifyExportFile=Indique o nome do ficheiro para exportar -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Abrir Gestor de Chaves do Enigmail # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm gpghomedir.notexists=A diretoria '%S' contendo as suas chaves OpenPGP não existe e não pode ser criada. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -pepTrustWords.cannotFindKey=Não foi possível encontrar a chave para %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -pepTrustWords.partnerFingerprint=Impressão Digital para %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -wkdMessage.body.process=Esta é uma mensagem relacionada com o processamento automático para transferir a sua chave pública para a Diretoria Web Key Open PGP.\n\nNão é necessário tomar qualquer ação neste momento. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Por favor, adicione a informação necessária. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Esta mensagem não pode ser decifrada porque a chave não está disponível. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -pepPrivacyStatus.RatingReliableExplanation=Esta mensagem é segura mas ainda necessita de verificar a identidade do seu correspondente. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -pepPrivacyStatus.RatingUndefinedExplanation=Esta mensagem não contém informação suficiente para determinar se é segura. -pepPrivacyStatus.RatingUnderAttackExplanation=Esta mensagem não é segura e foi alterada. -pepPrivacyStatus.RatingUnencryptedExplanation=Esta mensagem não é segura. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=Seguro -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -pepPrivacyStatus.RatingUndefinedText=Desconhecido -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -pepPrivacyStatus.RatingUnencryptedForSomeText=Inseguro para Alguns -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -pepPrivacyStatus.RatingUnreliableText=Segurança Não Confiável - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Mensagem a enviar -handshakeDlg.label.incomingMessage=Mensagem recebida -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Sobre o Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/compose.html enigmail-2.2.4/lang/pt-PT/help/compose.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ - - - Ajuda do Enigmail: Composição de Mensagens - - - - -

Ajuda do Enigmail

- -

Usando o Enigmail ao compor mensagens

- -
    -
  • Menu Enigmail na janela Correio/Composição -
      -
    • Assinar mensagem: Activar/Desactivar o envio de correio assinado. O utilizador - será notificado se a assinatura falhar.
    • -
    • Cifrar mensagem: Activar/Desactivar a encriptação para todo(s) o(s) destinatário(s) - antes do envio. O utilizador será notificado se a encriptação falhar. -

      Se a opção Mostrar selecção quando necessário estiver seleccionada no separador - Preferências Enigmail -> Selecção de chaves, será apresentada uma lista de chaves - no caso de haver endereços de email na lista de destinatários para os quais tenha a chave pública.

      -

      Se a opção Nunca mostrar selecção de chave OpenPGP estiver seleccionada no separador - Preferências Enigmail -> Selecção de chaves, e houver endereços de email na lista de - destinatários para os quais não tem a chave pública, a mensagem será enviada em claro.

      -
    • -
    • Usar PGP/MIME para esta mensagem: Activar/Desactivar o uso de - PGP/MIME - para esta mensagem. -

      Se sabe que o(s) destinatário(s) podem ler correio electrónico no formato PGP/MIME, deve - usá-lo.

      -

      Esta funcionalidade depende da configuração no separador Preferências -> PGP/MIME - estar para Permitir o uso de PGP/MIME ou Usar sempre PGP/MIME.

      -
    • Opções de composição por omissão: Submenu. -
        -
      • Opções de assinar/cifrar...: atalho para Opções de conta -> Opções OpenPGP. -
      • -
      • Opções de envio...: atalho para o separador Preferências -> Ao Enviar. -
      • -
      • Opções de Selecção de chaves...: atalho o separador Preferências -> - Selecção de chaves.
      • -
      • Opções PGP/MIME...: atalho para o separador Preferências -> PGP/MIME. -
      • -
      -
    • -
    • Desfazer encriptação: se acontecer um erro ao enviar o correio, por exemplo o servidor - POP não aceitar o pedido, o Enigmail não terá conhecimento disso e a mensagem cifrada continuará - a ser mostrada na janela de composição. Ao escolher este item de menu reverterá a operação de - encriptação, colocando o texto original novamente na janela.
      - Como solução temporária, esta opção pode também ser usada para decifrar as citações - ao responder a mensagens cifradas. O Enigmail deve decifrar automaticamente as mensagens - cifradas, mas se isso falhar por alguma razão, pode usar este item de menu para o forçar. -
    • -
    • Inserir chave pública: inserir bloco de chave pública em ASCII na posição corrente - do cursor na janela de Composição. Ser-lhe-á pedido o endereço de correio electrónico da(s) - chave(s) a inserir. As chaves inseridas desta forma serão automaticamente reconhecidas pelo - Enigmail na recepção. Após a inserção da chave, pode escolher assinar/cifrar a mensagem - consoante necessário. Não insira mais do que um bloco de chave por mensagem; em vez disso, - indique os vários endereços de email separados por vírgulas ou espaços quando tal lhe - for pedido. -
    • -
    • Limpar senha memorizada: Limpa a senha guardada em memória. Útil se tem várias senhas - diferentes.
    • -
    • Editar regras por destinatário
    • -
    • Ajuda: Mostra a informação de ajuda do site web (esta página). -
    -
  • -
-
-

-Ajuda adicional disponível na -página web de Ajuda do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/editRcptRule.html enigmail-2.2.4/lang/pt-PT/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - - - Ajuda do Engimail: Editar Regras OpenPGP - - - - -

Ajuda do Enigmail

- -

Usar o Editor de Regras do Enigmail: Editar Regras OpenPGP

-

No Editor de Regras, pode especificar, para cada destinatário, se deseja cifrar, assinar ou -usar PGP/MIME por omissão e ainda quais as chaves OpenPGP a usar. Neste diálogo, pode especificar -as regras para cada destinatário individualmente ou para cada grupo de destinatários com -atributos semelhantes. -

-
    -
  • Configurar regras OpenPGP para: Contém os - endereços de email dos destinatários (sem nomes, isto é, apenas um endereço como - alguem@dominio.email). Pode indicar vários endereços de email, separados por espaços. - Os endereços indicados aqui podem conter apenas o domínio, de forma a que apenas os endereços - daquele domínio sejam mostrados, por exemplo, @dominio.email permitiria mostrar os - endereços pessoa@dominio.email, alguem@dominio.email, - qualquer@dominio.email, etc. -
  • -
  • Aplicar regra se destinatário ...: - Altera a forma de correspondência de endereços de email. Se forem introduzidos vários endereços, - esta definição aplicar-se-á a todos. Os exemplos abaixo baseiam-se em introduzir - pessoa@dominio.email no campo Regras OpenPGP definido acima. -
      -
    • É exactamente: com esta configuração, a regra apenas se aplicará às mensagens para - pessoa@dominio.email (correspondência exacta, ignorando maiúsculas/minúsculas). -
    • -
    • Contém: com esta configuração, a regra aplicar-se-á a todos os endereços que contenham - a cadeia de caracteres especificada, por exemplo qualquerpessoa@dominio.email ou - pessoa@dominio.email.net -
    • -
    • Começa por: com esta configuração, a regra irá aplicar-se a qualquer endereço - iniciado pela cadeia de caracteres especificada, como pessoa@dominio.email.net ou - pessoa@dominio.email-nome.com. -
    • -
    • Termina em: esta configuração aplica a regra a todos os endereços terminados com - a cadeia de caracteres especificada, tais como qualquerpessoa@dominio.email ou - umapessoa@dominio.email. -
    • -
    - -
  • -
  • Continuar com a próxima regra para os endereços coindidentes
    - Activar esta função permitirá definir uma regra sem ter que especificar o Identificador da chave em - Usar as seguintes chaves OpenPGP:, de forma a que o endereço de email seja usado para - procurar a chave ao enviar. De igual modo, as regras seguintes para os mesmos endereços serão - processadas da mesma maneira. -
  • -
  • Não verificar mais regras para os endereços coincidentes
    - Activar esta definição impede o processamento de quaisquer outras regras para os endereços - coincidentes, caso esta regra seja verificada; ou seja, o processamento de regras continua - com o próximo destinatário. -
  • -
  • Definições por omissão para assinar: activar ou desactivar - a assinatura de mensagens. Esta definição usa ou sobrepõe-se ao que especificou na janela de composições - de mensagens. Os valores são: -
      -
    • Nunca: desactivar a assinatura, mesmo se estiver seleccionada na janela de composição de - mensagens (sobrepõe-se a outros valores)
      -
    • -
    • Sim, se seleccionado na Composição de Mensagens: deixar a assinatura como especificado na - janela de composição de mensagens -
    • -
    • Sempre: Activar a assinatura, mesmo se não estiver - seleccionada na janela de composição de mensagens -
    • -
    -
  • -
-
Estas configurações de assinatura são aplicadas a todas as regras -coincidentes. Se uma das regras desactivar a assinatura, a mensagem não será assinada, independentemente -do que outras regras especifiquem. Sempre.
-
-
    -
  • Cifrar: Activar ou desactivar a encriptação de mensagens. - As configurações permitidas e o seu significado são os mesmos que para a assinatura de mensagens.
  • -
  • PGP/MIME: activar ou desactivar o uso de PGP/MIME (RFC 3156) - para a codificação de mensagens. Se não seleccionar PGP/MIME, as mensagens serão codificadas usando o - método "PGP embebido". Os valores permitidos e o seu significado são os mesmos que para a assinatura de - mensagens. -
  • -
-

As regras são processadas na ordem em que são mostradas na lista Editor de Regras por -Destinatário. Sempre que uma regra coincidir com um destinatário e contiver um Identificador de chave OpenPGP, -para além de usar o Identificador de chave específico, implica que o destinatário não seja mais considerado ao -processar regras posteriores. -

-
-

-Pode encontrar mais ajuda na -página de Configurações de Regras por Destinatário do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/initError.html enigmail-2.2.4/lang/pt-PT/help/initError.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ - - - - - Ajuda Enigmail: Como Resolver Problemas na Inicialização do OpenPGP - - - - -

Ajuda Enigmail

- -

Como Resolver Problemas na Inicialização do OpenPGP

- -

Há vários motivos para que o OpenPGP não consiga inicializar. Os mais comuns estão descritos abaixo; para mais informação, visite por favor a Página de Suporte do Enigmail.

- -
- -
GnuPG não foi encontrado
- -
-

- Para que o OpenPGP possa funcionar, é necessário que a ferramenta GnuPG esteja instalada. - Se não for possível encontrar o GnuPG, certifique-se que o executável gpg.exe (em Windows; gpg nas outras platformas) está instalado no seu computador. - Em caso afirmativo, e se o OpenPGP não o conseguir encontrar, é necessário configurar manualmente o caminho para o GnuPG nas Preferências (menu OpenPGP > Preferências) -

- -
Não foi possível inicializar o Enigmime
- - -
-

O OpenPGP funciona apenas se for compilado na mesma plataforma que o Thunderbird ou Seamonkey. Isto significa que a versão oficial do Enigmail apenas pode ser usada em conjunto com as versões oficiais do Thunderbird ou Seamonkey fornecidas pela mozilla.org. -

-

Se usa o Thunderbird ou Seamonkey provenientes de outra fonte (por exemplo, o fornecedor da sua distribuição de Linux), ou se compilou a aplicação localmente, deve usar uma versão de Enigmail do mesmo fornecedor ou compilar o Enigmail localmente. Instruções para compilar o Enigmail podem ser encontradas na Secção de Código Fonte da página web do Enigmail. Por favor, não submeta nenhum relatório de erro sobre este problema, uma vez que não tem solução. -

- -
- -
-

Pode encontrar mais ajuda no Sítio Web de Suporte ao Enigmail.

- - - - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/messenger.html enigmail-2.2.4/lang/pt-PT/help/messenger.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - Ajuda Enigmail: Leitura de mensagens - - - - -

Ajuda Enigmail

- -

Usar o Enigmail ao ler mensagens

-
    -
  • Botão Decifrar na janela principal do Mail & Newsgroups / Thunderbird
    - Este botão pode ser usado para: decifrar, verificar ou importar chaves públicas. - Normalmente, as mensagens são decifradas e verificadas automaticamente, embora - este comportamento possa ser desactivado numa preferência. Contudo, se isto falhar, - será apresentada uma curta mensagem de erro na barra de estado do Enigmail. Se clicar - sobre o botão Decifrar, poderá ver uma mensagem mais detalhada, incluindo a saída - do comando GnuPG. -
  • -
  • Ícones da Caneta e da Chave no Cabeçalho da Mensagem
    - Os ícones da Caneta e da Chave no Cabeçalho da Mensagem indicam se - a mensagem que está a ler foi assinada e/ou cifrada e se a assinatura é válida, ou - seja, se a mensagem não foi alterada desde que foi assinada. Se a mensagem foi - alterada o ícone da Caneta mudará para uma Caneta Quebrada para - indicar que a assinatura não é válida. Clicar com o botão alternativo do rato quer no - ícone da Caneta quer no ícone da Chave fará aparecer um menu com as seguintes - opções: -
      -
    • Informação de Segurança OpenPGP: permite ver a saída do GnuPG para a - mensagem.
    • -
    • Copiar Informação de Segurança OpenPGP: copia a saída do GnuPG para a - área de transferência; para colar numa mensagem de resposta, etc.
    • -
    • Ver Identificador Fotográfico OpenPGP: permite ver o Identificador - Fotográfico do remetente, se ele tiver uma fotografia embebida na sua Chave - Pública. (Esta opção estará activa apenas se existir um Identificador - Fotográfico na chave.) -
    • -
    • Informação de Segurança S/MIME: permite ver a informação de segurança - S/MIME da mensagem. -
    • -
    -

    Se não tiver keyserver-options auto-key-retrieve no seu ficheiro - gpg.conf e receber uma mensagem assinada ou cifrada, verá, na área de - visualização do cabeçalho da mensagem, um ícone com uma Caneta com um - ponto de interrogação sobreposto, a barra de estado do Enigmail na área do - cabeçalho dirá Parte da mensagem assinada; para mais informação, clique sobre - o ícone da caneta e a mensagem no Painel de Mensagem mostrará os indicadores - de um bloco OpenPGP e o bloco da assinatura.

    -

    Também poderá ver isto se tiver keyserver-options auto-key-retrieve - no seu ficheiro gpg.conf e a chave não estiver disponível no seu - servidor de chaves por omissão.

    -

    Clicar sobre o ícone da Caneta e Ponto de Interrogação fará aparecer - uma janela informando que a chave não está disponível no seu porta-chaves. Clicar - em OK mostrará outra janela com uma lista de servidores de chaves para escolher - a partir de qual quer fazer a transferência da chave pública do remetente.

    -

    Para configurar a lista dos servidores de chaves que deseja usar, vá ao separador - Enigmail -> Preferências -> Básicas e introduza os endereços dos servidores - no campo Servidor(es) de chave(s):, separados por vírgulas. O - servidor de chaves listado em primeiro lugar será usado como o servidor por omissão. -

    -
  • -
  • Abrir anexos cifrados / importar chaves OpenPGP em anexo
    - Anexos de nome *.pgp, *.asc, e *.gpg são reconhecidos como podendo ter um tratamento - especial por parte do Enigmail. Clicar com o botão alternativo do rato num anexo - deste tipo, activa dois itens de menu especiais no menu de contexto: Decifrar e - Abrir e Decifrar e Gravar Como.... Use estes dois itens de menu se - deseja que o Enigmail decifre um anexo antes de o abrir ou gravar. Se um anexo for - reconhecido como um ficheiro contendo uma chave OpenPGP, é-lhe oferecida a - possibilidade de importar as chaves para o seu porta-chaves. -
  • -
-
-

-Ajuda adicional disponível na -página web de Ajuda do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/rulesEditor.html enigmail-2.2.4/lang/pt-PT/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ - - - Ajuda do Enigmail: Editor de Regras - - - - -

Ajuda do Enigmail

- -

Usar o Editor de Regras do Enigmail

-

No Editor de Regras, pode indicar as configurações a usar por omissão para cifrar, -assinar e usar PGP/MIME, por destinatário e quais as chaves a usar. Cada regra consiste -em 5 campos e é representada numa única linha:

-
    -
  • Email: o(s) endereço(s) de email dos campos - Para:, CC:, e BCC: a encontrar. Cada coincidência trabalha em - substrings (Mais detalhes na janela do Editor de - Regras) -
  • -
  • Chave(s) OpenPGP: a lista de Identificadores - de chaves OpenPGP a usar para o destinatário -
  • -
  • Assinar: activar ou desactivar o assinar - de mensagens. Esta configuração usa ou sobrepõe-se ao indicado na janela de Composição - de mensagens. Os valores são: -
      -
    • Nunca: a mensagem não será assinada, mesmo com uma configuração em contrário - na janela de composição de mensagens (sobrepõe-se a outros valores)
      -
    • -
    • Possível: a mensagem será assinada ou não, consoante a configuração na - janela de composição de mensagens. -
    • -
    • Sempre: a mensagem será assinada, mesmo que a assinatura esteja - desactivada na janela de composição de - mensagens -
    • -
    -
    Estas configurações aplicam-se a todas as regras - coincidentes. Se uma das regras desactivar a assinatura, a mensagem não será assinada, - independentemente de outras regras especificadas. Sempre.
    -
    -
  • -
  • Cifrar: activar ou desactivar a encriptação - de mensagens. As configurações permitidas e o seu significado são os mesmos de que - para a assinatura de mensagens. -
  • -
  • PGP/MIME: activar ou desactivar o uso da - codificação de mensagens PGP/MIME (RFC 3156). Se a PGP/MIME estiver desactivada, as - mensagens serão codificadas usando "PGP embebido". As configurações permitidas e o - seu significado são os mesmo de que para a assinatura de mensagens. -
  • -
-

As regras são processadas na ordem em que são mostradas na lista. Sempre que uma regra -coincidir com um destinatário e contiver um Identificador de chave OpenPGP, esse destinatário não -será mais considerado ao processar as regras seguintes, para além de ser usado o Identificador de -chave especificado.

-

Nota: O editor de regras ainda não está completo. É possível escrever regras -mais avançadas editando o ficheiro de regras directamente (estas regras não devem ser -posteriormente editadas no editor de regras). Mais informação -sobre a edição directa deste ficheiro está disponível na Homepage do Enigmail.

-
-

-Ajuda adicional disponível na -página web de Ajuda do Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/pt-PT/help/sendingPrefs.html enigmail-2.2.4/lang/pt-PT/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/pt-PT/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/pt-PT/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/ro/am-enigprefs.properties enigmail-2.2.4/lang/ro/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ro/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Securitate OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ro/enigmail.dtd enigmail-2.2.4/lang/ro/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ro/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ro/enigmail.properties enigmail-2.2.4/lang/ro/enigmail.properties --- enigmail-2.1.6+ds1/lang/ro/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - # enigAlert=Enigmail Alert # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -# enigError=Enigmail Error # enigPrompt=Enigmail Prompt - -dlgYes=&Da # dlgNo=&No # dlgKeepSetting=Remember my answer and do not ask me again # dlgNoPrompt=Do not show me this dialog again -# dlg.button.delete=&Delete # dlg.button.cancel=&Cancel # dlg.button.close=&Close dlg.button.continue=Con&tinuare -# dlg.button.skip=&Skip -# dlg.button.overwrite=&Overwrite -# dlg.button.view=&View -dlg.button.retry=&Reîncercați -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - # repeatPrefix=\n\nThis alert will repeat %S # repeatSuffixSingular=more time. repeatSuffixPlural=de mai multe ori. # noRepeat=\n\nThis alert will not repeat until you upgrade Enigmail. - -# pgpNotSupported=You seem to be using Enigmail together with PGP 6.x\n\nUnfortunately, PGP 6.x has a number of issues that prevent Enigmail from working correctly. Therefore, Enigmail does not support PGP 6.x anymore; please switch to GnuPG (GPG) instead.\n\nIf you need help on switching to GnuPG, check the Help section of the Enigmail homepage. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -initErr.setupWizard.button=Configurare inițială (&Setup) # passphraseCleared=The passphrase has been cleared. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Nu este disponibilă nici o fotografie -# debugLog.title=Enigmail Debug Log -# error.photoPathNotReadable=Photo path '%S' is not readable - -generalError=Eroare: %S - -# Strings in configure.jsm -# enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -# enigmailCommon.checkPreferences=Check Preferences ... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Folosiți Enigmail versiunea %S -# enigmailPepVersion=Enigmail/p≡p version %S # usingAgent=Using %1$S executable %2$S to encrypt and decrypt agentError=EROARE: Nu poate fi accesat serviciul Enigmail principal! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -# accessError=Error in accessing Enigmail service -# onlyGPG=Key generation only works with GnuPG (not with PGP)! - -# keygenComplete=Key generation completed! Identity <%S> will be used for signing. -# revokeCertRecommended=We highly recommend to create a revocation certificate for your key. This certificate can be used to invalidate your key, e.g. in case your secret key gets lost or compromised. Do you want to create such a revocation certificate now? -# keyMan.button.generateCert=&Generate Certificate -# genCompleteNoSign=Key generation completed! -genGoing=Generarea cheii este deja în desfășurare! - -# passNoMatch=Passphrase entries do not match; please re-enter -# passCheckBox=Please check box if specifying no passphrase for key -# passUserName=Please specify user name for this identity -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -# passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character. -changePassFailed=Schimbarea parolei a eșuat - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Generați cheia -# keyAbort=Abort key generation? -# keyMan.button.generateKeyAbort=&Abort Key Generation -keyMan.button.generateKeyContinue=&Continuați generarea cheii -expiryTooLong=Nu puteți crea o cheie care să expire în mai mult de 100 de ani. -# expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -# expiryTooShort=Your key must be valid for at least one day. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -# setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -# securityInfo=Enigmail Security Info\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -# possiblyPgpMime=Possibly PGP/MIME encrypted or signed message; use 'Decrypt/Verify' function to verify - -saveAttachmentHeader=Enigmail: Salvați atașamentul descifrat -# noTempDir=Could not find a temporary directory to write to\nPlease set the TEMP environment variable -# attachmentPgpKey=The attachment '%S' you are opening appears to be an OpenPGP key file.\n\nClick 'Import' to import the keys contained or 'View' to view the file contents in a browser window - -# beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *SFÂRȘITUL PĂRȚII CRIPTATE sau SEMNATE* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -# noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted* - -# decryptOkNoSig=Warning\n\nDecryption was successful, but the signature could not be verified correctly -# msgOvl.button.contAnyway=&Continue Anyway -# signature.verifiedOK=The signature for attachment %S was successfully verified -# signature.verifyFailed=The signature for attachment %S could not be verified -# attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -# attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -# keysToExport=Select OpenPGP Keys to Insert # keysToUse=Select OpenPGP Key(s) to use for %S pubKey=Cheie publică pentru %S\n - -# windowLocked=Compose window is locked; send cancelled -# sendUnencrypted=Failed to initialize Enigmail.\nSend unencrypted message? -# composeSpecifyEmail=Please specify your primary email address, which will be used to choose the signing key for outgoing messages.\n If you leave it blank, the FROM address of the message will be used to choose the signing key. -# sendingHiddenRcpt=This message has BCC (blind copy) recipients. If this message is encrypted, it is possible to hide the BCC recipients but users of some products (e.g. PGP Corp.) will not be able to decrypt the message. Given this, we recommend to avoid BCC-emails with encrypted messages. -# sendWithHiddenBcc=Hide BCC recipients -# sendWithShownBcc=Encrypt normally -# sendingNews=Encrypted send operation aborted.\n\nThis message cannot be encrypted because there are newsgroup recipients. Please re-send the message without encryption. -# sendToNewsWarning=Warning: you are about to send an encrypted email to a newsgroup.\n\nThis is discouraged because it only makes sense if all members of the group can decrypt the message, i.e. the message needs to be encrypted with the keys of all group participants. Please send this message only if you know exactly what you are doing.\n\nContinue? -# hasHTML=HTML email warning:\nThis message may contain HTML, which could cause signing/encryption to fail. To avoid this in the future, you should press the SHIFT key when clicking on the Compose/Reply button to send signed email.\nIf you sign email by default, you should uncheck the 'Compose Messages in HTML' preference box to permanently disable HTML email for this email account. -# strippingHTML=Message contains HTML formatting information that will be lost when converting to plain text for signing/encryption. Do you wish to proceed? -# msgCompose.button.sendAnyway=&Send Message Anyway -# attachWarning=Attachments to this message are not local, they cannot be encrypted. In order to encrypt the attachments, store them as local files first and attach these files. Do you wish to send the message anyway? # quotedPrintableWarn=You have enabled 'quoted-printable' encoding for sending messages. This may result in incorrect decryption and/or verification of your message.\nDo you wish to turn off sending 'quoted-printable' messages now? -# minimalLineWrapping=You have set line wrapping to %S characters. For correct encryption and/or signing, this value needs to be at least 68.\nDo you wish to change line wrapping to 68 characters now? # warning=Warning -# signIconClicked=You have manually modified signing. Therefore, while you are composing this message, (de)activating signing does not depend anymore on (de)activating encryption. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -msgCompose.internalError=S-a produs o eroare internă. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -# msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Necunoscut -msgCompose.pepSendUnsecure=Nesigur -msgCompose.pepSendSecure=Sigur -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -# sendAborted=Send operation aborted.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -# statSigned=SIGNED -# statEncrypted=ENCRYPTED -# statPlain=UNSIGNED and UNENCRYPTED - -# offlineSave=Save %1$S message to %2$S in Unsent Messages folder? - -# onlineSend=Send %1$S message to %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -# msgCompose.button.sendUnencrypted=&Send Unencrypted Message -# recipientsSelectionHdr=Select Recipients for Encryption - -# configureNow=You did not yet configure Enigmail security for the selected identity. Do you want to do this now? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Cifrați mesajul (automat) -encryptMessageNorm=Cifrați mesajul -signMessageAuto=Semnați mesajul (automat) -signMessageNorm=Semnați mesajul - -encryptOff=Cifrare: NU -# encryptOnWithReason=Encryption: ON (%S) -encryptOffWithReason=Cifrare: NU (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -signOnWithReason=Semnare: DA (%S) -signOffWithReason=Semnare: NU (%S) -reasonEnabledByDefault=implicit activ -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Mesajul va fi cifrat -# encryptNo=Message will not be encrypted - -# should not be used anymore: -# signYes=Message will be signed -# signNo=Message will not be signed - - -# PGP/MIME status: -pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -smimeAuto=Protocol: S/MIME (automat) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -# rulesConflict=Conflicting per-recipient rules detected\n%S\n\nSend message with these settings? -# msgCompose.button.configure=&Configure -# msgCompose.button.send=&Send Message -# msgCompose.button.save=&Save Message - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Cheia publică %S este necesară pentru a verifica semnătura -# keyUsed=Public key %S used to verify signature -# clickDecrypt=; use 'Decrypt/Verify' function -# clickDecryptRetry=; use 'Decrypt/Verify' function to retry -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -# headerView.button.decrypt=Decrypt -msgPart=Parte a mesajului %S -msgSigned=semnat -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=cifrat -# msgSignedAndEnc=signed and encrypted - unverifiedSig=Semnătură neverificată -# incompleteDecrypt=Decryption incomplete -# needKey=Error - no matching secret key found to decrypt message -# failedDecrypt=Error - decryption failed badPhrase=Eroare - parolă greșită # missingMdcError=Error - missing or broken integrity protection (MDC) -# failedDecryptVerify=Error - decryption/verification failed -# viewInfo=; View > Message security info for details -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Mesaj descifrat -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -usedAlgorithms=Algoritmi utilizați: %1$S și %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -pepStatusInfo.info.m3=Mesajul nu este sigur și a fost modificat pe traseu. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Necunoscut -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -pepStatusInfo.title.r3=Nesigur -pepStatusInfo.info.r3=Acest mesaj este transmis nesigur. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -pepStatusInfo.title.r5=Securitate incertă -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -pepStatusInfo.info.r6=Acest mesaj este sigur, dar este totuși necesar să verificați identitatea interlocutorului Dvs.. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -pepStatusInfo.color.green=Verde -pepStatusInfo.color.yellow=Galben -pepStatusInfo.color.red=Roșu -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -# locateGpg=Locate GnuPG program -# invalidGpgPath=GnuPG cannot be executed with the path provided. Enigmail is therefore deactivated until you change the path to GnuPG again or until you restart the application. -warningsAreReset=Toate avertismentele au fost anulate. -# prefs.gpgFound=GnuPG was found in %S -# prefs.gpgNotFound=Could not find GnuPG -# prefs.warnAskNever=Warning: activating this option will result in unencrypted emails without any further information if there is no key for one of the recipients -- Enigmail will not inform you if this happens! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -# prefEnigmail.oneKeyserverOnly=Error - you can only specify one keyserver for automatic downloading of missing OpenPGP keys. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -# enterAdminPin=Please type in the ADMIN PIN of your SmartCard -# enterCardPin=Please type your SmartCard PIN - -# notInit=Error - Enigmail service not yet initialized # badCommand=Error - encryption command failed cmdLine=linie de comandă și afișare: -# notRequired=Error - no encryption required -notComplete=Eroare - generarea cheii nu este încă finalizată -invalidEmail=Eroare - adrese de e-mail incorecte # noPassphrase=Error - no passphrase supplied # noPGPblock=Error - No valid armored OpenPGP data block found -# unverifiedReply=Indented message part (reply) was probably modified -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -# sigMismatch=Error - Signature mismatch -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm # sc.wrongCardAvailable=The SmartCard %1$S found in your reader cannot be used to process the message.\nPlease insert your SmartCard %2$S and repeat the operation. # sc.insertCard=The operation requires your SmartCard %S.\nPlease insert the required SmartCard and repeat the operation. # sc.removeCard=The operation requires no SmartCard to be in the reader.\nPlease remove your SmartCard and repeat the operation. @@ -376,7 +39,6 @@ # sc.noReaderAvailable=Your SmartCard reader could not be accessed\nPlease attach your SmartCard reader, insert your card, and repeat the operation. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. missingPassphrase=Parolă lipsă # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - # gpgNotFound=Unable to locate GnuPG program '%S'.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. # gpgNotInPath=Unable to locate GnuPG executable in the PATH.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. enigmailNotAvailable=Serviciul principal Enigmail nu este disponibil - -# prefGood=Good signature from %S -# prefBad=BAD signature from %S - # failCancel=Error - Key receive cancelled by user # failKeyExtract=Error - key extraction command failed -# failKeyNoSubkey=No valid (sub-)key # notFirstBlock=Error - First OpenPGP block not public key block # importKeyConfirm=Import public key(s) embedded in message? -failKeyImport=Eroare - importarea cheii a eșuat # fileWriteFailed=Failed to write to file %S - # importKey=Import public key %S from keyserver: uploadKey=Trimiteți cheia publică %S la serverul de chei: keyId=Identificator de cheie -# keyAndSigDate=Key ID: 0x%1$S / Signed on: %2$S -# keyFpr=Key fingerprint: %S -# noEmailProvided=You did not provide an email address! -# keyAlreadySigned=The key is already signed, you cannot sign it twice. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -# selKeyExpired=expired %S createdHeader=Creat # atLeastOneKey=No key selected! You have to select at least one key to accept this dialog # fewerKeysThanRecipients=You have selected a smaller number of keys than recipients. Are you sure that the list of keys to encrypt is complete? @@ -420,168 +64,34 @@ # userSel.secretKeySel.title=Select a Secret OpenPGP Key to Sign Your Messages # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Expediați mai târziu - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. # first=first second=al doilea - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -# encryptKeyHeader=Select OpenPGP Key for Encryption -identityName=Identitate: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -# noEncryption=You have activated encryption, but you did not select a key. In order to encrypt emails sent to %1$S, you need to specify one or several valid key(s) from your key list. Do you want to disable encryption for %2$S? -# noKeyToUse=(none - no encryption) -# noEmptyRule=The Rule may not be empty! Please set an email address in the Rule field. -# invalidAddress=The email address(es) you have entered are not valid. You should not set the names of the recipients, just the email addresses. E.g.:\nInvalid: Some Name \nValid: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js # never=Never always=Întotdeauna # possible=Possible -deleteRule=Confirmați ștergerea regulii selectate? -# nextRcpt=(Next recipient) -# negateRule=Not -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -# needOnline=The function you have selected is not available in offline mode. Please go online and try again. -# noKeyserverConn=Could not connect to keyserver at %S. -# internalError=An internal error occurred. The keys could not be downloaded or imported. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -# setKeyTrustFailed=Setting owner trust failed - - -# Strings in enigmailSignKeyDlg.js -# signKeyFailed=Key signing failed -# alreadySigned.label=Note: the key %S is already signed with the selected secret key. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -# keyMan.loadingKeys=Loading keys, please wait ... # keyValid.unknown=unknown # keyValid.invalid=invalid # keyValid.disabled=disabled # keyValid.revoked=revoked keyValid.expired=expiră # keyValid.noSubkey=no valid subkey - -# keyTrust.untrusted=untrusted +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted # keyTrust.marginal=marginal # keyTrust.full=trusted # keyTrust.ultimate=ultimate # keyTrust.group=(group) -# keyType.public=pub -# keyType.publicAndSec=pub/sec -# keyMan.enableKey=Enable Key -# keyMan.disableKey=Disable Key userAtt.photo=Atribut al utilizatorului (imagine JPEG) - -# asciiArmorFile=ASCII Armored Files (*.asc) # importKeyFile=Import OpenPGP Key File -gnupgFile=Fișiere GnuPG -# saveRevokeCertAs=Create & Save Revocation Certificate -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -# revokeCertFailed=The revocation certificate could not be created. - -addUidOK=Identificatorul utilizatorului a fost adăugat cu succes -# addUidFailed=Adding the User ID failed -# noKeySelected=You should select at least one key in order to perform the selected operation -# exportToFile=Export Public Key To File -exportKeypairToFile=Exportați cheia secretă și cea publică în fișierul -# exportSecretKey=Do you want to include the secret key in the saved OpenPGP key file? -saveKeysOK=Cheile au fost salvate cu succes -saveKeysFailed=Salvarea cheilor a eșuat -importKeysFailed=Importarea cheilor a eșuat -enableKeyFailed=Activarea/dezactivarea cheilor a eșuat -# specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Chei-publice-exportate -# defaultPubSecKeyFilename=Exported-public-and-secret-keys - -sendKeysOk=Cheile au fost trimise cu succes -sendKeysFailed=Trimiterea cheilor a eșuat -receiveKeysOk=Cheile au fost actualizate cu succes -receiveKeysFailed=Descărcarea cheilor a eșuat -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -# importFromClip=Do you want to import some key(s) from clipboard? -# importFromUrl=Download public key from this URL: -# copyToClipbrdFailed=Could not copy the selected key(s) to the clipboard. -# copyToClipbrdOK=Key(s) copied to clipboard - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -# deleteMix=WARNING: You are about to delete secret keys!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key.\n\nDo you really want to delete BOTH, the selected secret and public keys? -# deletePubKey=Do you want to delete the public key\n'%S'? -# deleteSelectedPubKey=Do you want to delete the public keys? -# deleteKeyFailed=The key could not be deleted. # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -# revokeKeyOk=The key has been revoked. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -revokeKeyFailed=Cheia nu poate fi revocată. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -# refreshAllQuestion=You did not select any key. Would you like to refresh ALL keys? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -# refreshKey.warn=Warning: depending on the number of keys and the connection speed, refreshing all keys could be quite a lengthy process! -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -# keyMan.button.exportSecKey=Export &Secret Keys -# keyMan.button.exportPubKey=Export &Public Keys Only keyMan.button.import=&Import -# keyMan.button.refreshAll=&Refresh All Keys keyMan.button.revokeKey=&Revocați cheia - -# keylist.noOtherUids=Has no other identities -keylist.hasOtherUids=Cunoscut și ca -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -# keyMan.addphoto.filepicker.title=Select photo to add -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -# keyMan.addphoto.failed=The photo could not be added. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -# changePrimUidFailed=Changing the primary User ID failed -# changePrimUidOK=The primary user ID was changed successfully -# revokeUidFailed=Revoking the user ID %S failed -# revokeUidOK=User ID %S was revoked successfully. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -# revokeUidQuestion=Do you really want to revoke the user ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUCCESS! Cheile au fost importate -# importInfoBits=Bits -importInfoCreated=Creat -# importInfoFpr=Fingerprint -importInfoDetails=(Detalii) -importInfoNoKeys=Nu a fost importată nici o cheie. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=cheie publică -keyTypePrimary=cheie primară -keyTypeSubkey=subcheie -keyTypePair=pereche de chei -keyExpiryNever=niciodată keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -# keyUsageEncrypt=Encrypt -# keyUsageSign=Sign -# keyUsageCertify=Certify -# keyUsageAuthentication=Authentication -# keyDoesNotExpire=Key does not expire - -# Strings in enigmailGenCardKey.xul -# keygen.started=Please wait while the key is being generated .... -keygen.completed=Cheia a fost generată. Identificatorul noii chei este: 0x%S -# keygen.keyBackup=The key is backed up as %S -# keygen.passRequired=Please specify a passphrase if you want to create a backup copy of your key outside your SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Eroare la generarea PIN-ului - -# Strings in enigRetrieveProgres.js -# keyserverProgress.refreshing=Refreshing keys, please wait ... -# keyserverProgress.uploading=Uploading keys, please wait ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -# keyserverTitle.refreshing=Refresh Keys -# keyserverTitle.uploading=Key Upload -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Indicați fișierul din care se va încărca salvarea -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -# addUidDlg.nameOrEmailError=You have to fill in a name and an email address -# addUidDlg.nameMinLengthError=The name must at least have 5 characters -# addUidDlg.invalidEmailError=You must specify a valid email address - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +# setupWizard.selectKeysButton=Select Keys # errorType.SecurityCertificate=The security certificate presented by the web service is not valid. # errorType.SecurityProtocol=The security protocol used by the web service is unknown. # errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -unknownSigningAlg=Algoritm de semnare necunoscut (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Fotografie # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -specifyExportFile=Indicați numele fișierului pentru exportare -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Administrarea cheilor Open Enigmail # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -pepTrustWords.cannotFindKey=Nu se poate găsi cheia pentru %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -pepTrustWords.partnerFingerprint=Amprentă pentru %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -pepPrivacyStatus.RatingTrustedSuggestion=Nu este necesară nici o acțiune! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -pepPrivacyStatus.RatingReliableExplanation=Acest mesaj este sigur, dar este totuși necesar să verificați identitatea interlocutorului Dvs.. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -pepPrivacyStatus.RatingUnderAttackExplanation=Mesajul nu este sigur și a fost modificat pe traseu. -pepPrivacyStatus.RatingUnencryptedExplanation=Acest mesaj este transmis nesigur. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=Sigur -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -pepPrivacyStatus.RatingUndefinedText=Necunoscut -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -pepPrivacyStatus.RatingUnencryptedText=Nesigur -pepPrivacyStatus.RatingUnreliableText=Securitate incertă - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Mesaj trimis -handshakeDlg.label.incomingMessage=Mesaj primit -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. # aboutEnigmail.tabName=About Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/ro/help/compose.html enigmail-2.2.4/lang/ro/help/compose.html --- enigmail-2.1.6+ds1/lang/ro/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/editRcptRule.html enigmail-2.2.4/lang/ro/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ro/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/help.html enigmail-2.2.4/lang/ro/help/help.html --- enigmail-2.1.6+ds1/lang/ro/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License 2.0

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/initError.html enigmail-2.2.4/lang/ro/help/initError.html --- enigmail-2.1.6+ds1/lang/ro/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmail Core Service failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/messenger.html enigmail-2.2.4/lang/ro/help/messenger.html --- enigmail-2.1.6+ds1/lang/ro/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/rulesEditor.html enigmail-2.2.4/lang/ro/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ro/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ro/help/sendingPrefs.html enigmail-2.2.4/lang/ro/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ro/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ro/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encrypted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/ru/am-enigprefs.properties enigmail-2.2.4/lang/ru/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/ru/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Защита OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/ru/enigmail.dtd enigmail-2.2.4/lang/ru/enigmail.dtd --- enigmail-2.1.6+ds1/lang/ru/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,288 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -»"> - - - - - - -' для указания адресов электронной почты"> - - -' будут указывать адреса электронной почты для GnuPG. Отключите, если у адресатов есть старые ключи в формате Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Защита OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ПРИМЕЧАНИЕ: создание -ключей может занять несколько минут. Не закрывайте приложение во время -этого процесса. Интенсивные операции в Интернете или на диске во время -создания ключей пополнят 'запас случайности' и ускорят процесс. -О завершении вас известят."> - @@ -301,515 +20,22 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -» неверна."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ПРИМЕЧАНИЕ: -создание ключей может занять несколько минут. Не закрывайте -приложение во время этого процесса. О завершении вас известят."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/ru/enigmail.properties enigmail-2.2.4/lang/ru/enigmail.properties --- enigmail-2.1.6+ds1/lang/ru/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Предупреждение Enigmail enigConfirm=Подтверждение Enigmail enigInfo=Сведения Enigmail -enigError=Ошибка Enigmail enigPrompt=Приглашение Enigmail - -dlgYes=&Да dlgNo=&Нет dlgKeepSetting=Запомнить и больше не показывать это окно dlgNoPrompt=Не отображать больше этот диалог -dlg.button.delete=&Удалить dlg.button.cancel=&Отмена dlg.button.close=&Закрыть dlg.button.continue=Прод&олжить -dlg.button.skip=&Пропустить -dlg.button.overwrite=&Перезаписать -dlg.button.view=П&росмотреть -dlg.button.retry=&Повторить попытку -dlg.button.ignore=&Игнорировать -dlg.button.install=&Установить dlg.button.ok=&OK - repeatPrefix=\n\nЭто предупреждение повторится еще %S repeatSuffixSingular=раз. repeatSuffixPlural=раз(а). noRepeat=\n\nЭто предупреждение не будет появляться, пока вы не обновите Enigmail. - -pgpNotSupported=Вы используете Enigmail вместе с PGP 6.x.\n\nPGP 6.x имеет ряд проблем, не позволяющих Enigmail работать корректно, поэтому Enigmail больше его не поддерживает. Установите вместо него GnuPG (GPG).\n\nЕсли вам нужна помощь в установке GnuPG, обратитесь к справочному разделу сайта Enigmail. -initErr.howToFixIt=Для использования Enigmail требуется программа GnuPG. Если она ещё не установлена, простейший способ сделать это — использовать «Мастер настройки». -initErr.setupWizard.button=&Мастер настройки passphraseCleared=Парольная фраза очищена. cannotClearPassphrase=Вы используете нестандартный инструментарий для обработки парольных фраз (например, gnome-keyring). Очистка парольной фразы из Enigmail невозможна. -noPhotoAvailable=Нет фотографии -debugLog.title=Журнал отладки Enigmail -error.photoPathNotReadable=Не удаётся прочитать путь к фотографии «%S» - -generalError=Ошибка: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=В обновлённой версии Enigmail значительно изменились параметры настройки. Мы постарались перенести ваши прежние настройки в новую версию, но не во всех случаях это можно сделать автоматически. Перепроверьте обновлённые параметры. -enigmailCommon.checkPreferences=Перейти к параметрам… -preferences.defaultToPgpMime=Способ шифрования по умолчанию в Enigmail был изменён с «Inline-PGP» на «PGP/MIME». Рекомендуется сохранить этот вариант по умолчанию.\n\nЕсли вы хотите по умолчанию использовать Inline-PGP, это можно указать в разделе «Защита OpenPGP» параметров учётной записи. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Используется Enigmail версии %S -enigmailPepVersion=Enigmail/p≡p версии %S usingAgent=Для шифрования и расшифровки используется исполняемый файл %1$S %2$S agentError=Ошибка доступа к основной службе Enigmail - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Ошибка доступа к службе Enigmail -onlyGPG=Создание ключей возможно только при использовании GnuPG (не PGP). - -keygenComplete=Создание ключа завершено. Для подписи будет использоваться идентификатор <%S>. -revokeCertRecommended=Рекомендуется создать для вашего ключа сертификат отзыва. С помощью этого сертификата можно объявить ключ недействительным, если закрытый ключ утерян или скомпрометирован. Создать сертификат отзыва? -keyMan.button.generateCert=&Создать сертификат -genCompleteNoSign=Создание ключей завершено. -genGoing=Создание ключа уже выполняется. - -passNoMatch=Введённые парольные фразы не совпадают. Введите фразы ещё раз. -passCheckBox=Установите флажок, если не хотите указывать парольную фразу для ключа -passUserName=Укажите имя пользователя для этой учетной записи -keygen.missingUserName=Для выбранной учётной записи/профиля не указано имя. Заполните поле «Имя отправителя» в параметрах учётной записи. -keygen.passCharProblem=В парольной фразе использованы специальные символы. Это может вызвать проблемы в других приложениях. Рекомендуется в парольной фразе использовать только следующие символы:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Из-за технических ограничений парольная фраза не может начинаться или заканчиваться пробелом. -changePassFailed=Не удалось сменить парольную фразу. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Создать ключ -keyAbort=Прервать генерацию ключа? -keyMan.button.generateKeyAbort=&Прервать генерацию ключа -keyMan.button.generateKeyContinue=П&родолжить создание ключа -expiryTooLong=Нельзя создать ключ со сроком действия более 100 лет. -expiryTooLongShorter=Нельзя создать ключ со сроком действия более 90 лет. -expiryTooShort=Ключ должен быть действителен минимум один день. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Не удалось изменить дату окончания срока действия. - -# Strings in enigmailMessengerOverlay.js -securityInfo=Информация о защите Enigmail\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Возможно, сообщение зашифровано или подписано с помощью PGP/MIME; для проверки используйте функцию «Расшифровать/Проверить» - -saveAttachmentHeader=Enigmail: сохранение расшифрованного вложения -noTempDir=Не удалось найти временный каталог для записи.\nЗадайте его, используя переменную среды TEMP. -attachmentPgpKey=Открываемое вложение «%S», по всей видимости, является файлом ключа OpenPGP.\n\nНажмите «Импортировать», чтобы импортировать ключи, или «Просмотреть», чтобы просмотреть содержимое файла. - -beginPgpPart=********* *НАЧАЛО ЗАШИФРОВАННОЙ ИЛИ ПОДПИСАННОЙ ЧАСТИ СООБЩЕНИЯ* ********* -endPgpPart=********** *КОНЕЦ ЗАШИФРОВАННОЙ ИЛИ ПОДПИСАННОЙ ЧАСТИ СООБЩЕНИЯ* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *В сообщении обнаружено несколько блоков. Расшифровка/проверка подписи прервана* - -decryptOkNoSig=Предупреждение\n\nРасшифровка прошла успешно, но корректно проверить цифровую подпись не удалось. -msgOvl.button.contAnyway=&Всё равно продолжить -signature.verifiedOK=Подпись для вложения %S успешно проверена -signature.verifyFailed=Не удалось проверить подпись для вложения %S -attachment.noMatchToSignature=Не удалось соотнести вложение «%S» с файлом подписи -attachment.noMatchFromSignature=Не удалось соотнести файл подписи «%S» с вложением -fixBrokenExchangeMsg.failed=Не удалось восстановить сообщение. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Импортировать ключ -wksNoIdentity=Этот ключ не связан ни с одной вашей учётной записью электронной почты. Добавьте учётную запись как минимум для одного из следующих адресов электронной почты:\n\n%S -wksConfirmSuccess=Подтверждающее сообщение отправлено. -wksConfirmFailure=Не удалось отправить подтверждающее сообщение. -autocrypt.importSetupKey.accountPreconfigured=Ваша учётная запись уже настроена для использования автошифра.\n\nИспользовать новые параметры из этого сообщения для установки? -autocrypt.importSetupKey.selfCreated=Это сообщение было создано запущенным экземпляром Enigmail.\n\nПереключитесь на почтовый клиент, в который нужно перенести параметры, и нажмите в нем на сообщение, чтобы выполнить импорт. -autocrypt.importSetupKey.invalidMessage=Ошибка — не удалось прочитать сообщение для установки. По всей видимости, оно повреждено. Отправьте новое сообщение для установки с другого устройства. -autocrypt.importSetupKey.invalidKey=Ошибка — не удалось импортировать ключ. Ключ не поддерживается вашей версией GnuPG или повреждён. -autocrypt.importSetupKey.wrongPasswd=Введён неправильный пароль. Повторить попытку? -autocrypt.importSetupKey.success=Сообщение для настройки автошифра обработано успешно. Теперь автошифр доступен для вашей учётной записи «%S». - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Выберите ключи OpenPGP для вставки keysToUse=Выберите ключи OpenPGP для использования с %S pubKey=Открытый ключ для %S\n - -windowLocked=Окно составления сообщений заблокировано. Отправка отменена. -sendUnencrypted=Ошибка инициализации Enigmail.\nОтправить незашифрованную почту? -composeSpecifyEmail=Укажите основной адрес электронной почты, который будет использоваться при выборе ключа подписи для исходящих сообщений.\nЕсли вы оставите поле пустым, для выбора будет использован адрес из поля «От». -sendingHiddenRcpt=Для этого сообщения указаны получатели скрытой копии. Если сообщение зашифровано, вы можете скрыть получателей скрытой копии, но пользователи некоторых продуктов (например, корпорации PGP) не смогут его расшифровать. В связи с этим мы рекомендуем не использовать функцию скрытой копии для зашифрованных сообщений. -sendWithHiddenBcc=Скрыть получателей скрытой копии -sendWithShownBcc=Обычное шифрование -sendingNews=Операция отправки прервана.\n\nЭто сообщение не может быть зашифровано, поскольку в списке адресатов есть группы новостей. Отправьте это сообщение без шифрования. -sendToNewsWarning=Предупреждение: вы собираетесь отправить зашифрованное сообщение в группу новостей.\n\nЭто не приветствуется, так как имеет смысл только в случае, если все участники конференции смогут расшифровать его. Для этого сообщение должно быть зашифровано на ключи всех участников конференции. Отправляйте это сообщение, только если вы точно знаете, что делаете.\n\nПродолжить? -hasHTML=Предупреждение:\nЭто сообщение может содержать HTML, что может привести к ошибкам во время шифрования или создания подписи. Чтобы отправить подписанное сообщение, при нажатии на кнопку «Создать» или «Ответить» удерживайте клавишу SHIFT.\nЕсли вы отправляете подписанные сообщения по умолчанию, снимите флажок «Составлять сообщения в формате HTML» в параметрах учётной записи, чтобы отключить использование HTML при создании сообщений для этой учётной записи. -strippingHTML=Сообщение содержит HTML-форматирование, которое будет потеряно при преобразовании в обычный текст для подписания или шифрования. Продолжить? -msgCompose.button.sendAnyway=&Всё равно отправить сообщение -attachWarning=Вложения в это сообщение не являются локальными, поэтому их нельзя зашифровать. Чтобы зашифровать их, сохраните их сначала как локальные файлы, а затем уже вложите в сообщение. Вы хотите все равно отправить это сообщение? quotedPrintableWarn=Вы включили кодирование «quoted-printable» в исходящих сообщениях. Это может привести к ошибкам во время расшифровки и/или проверки подписи.\nОтключить использование кодирования «quoted-printable»? -minimalLineWrapping=Вы указали, что необходимо переносить строки длиннее следующего количества символов: %S. Для корректного шифрования и/или подписывания это значение должно быть не менее 68.\nУвеличить ширину строк до 68 символов? warning=Предупреждение -signIconClicked=Вы самостоятельно указали, нужно ли подписывать это сообщение, поэтому использование подписи больше не зависит от использования шифрования. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Ошибка сохранения черновика -msgCompose.partiallyEncrypted.short=Остерегайтесь раскрытия конфиденциальных данных: сообщение зашифровано частично. -msgCompose.partiallyEncrypted.inlinePGP=Сообщение, на которое вы отвечаете, содержало зашифрованные и незашифрованные части. Если отправитель изначально не смог самостоятельно расшифровать некоторые части сообщения, вы рискуете раскрыть содержащуюся в них конфиденциальную информацию.\n\nРекомендуем удалить весь цитируемый текст из ответа этому отправителю. - -msgCompose.internalEncryptionError=Внутренняя ошибка: ожидаемое шифрование отключено -msgCompose.internalError=Произошла внутренняя ошибка. - -msgCompose.toolbarTxt.signAndEncrypt=Это сообщение будет подписано и зашифровано -msgCompose.toolbarTxt.signOnly=Это сообщение будет подписано -msgCompose.toolbarTxt.encryptOnly=Это сообщение будет зашифровано -msgCompose.toolbarTxt.noEncryption=Это сообщение будет не подписано и не зашифровано -msgCompose.toolbarTxt.disabled=Enigmail отключён для выбранного профиля -msgCompose.protectSubject.tooltip=Защитить тему сообщения -msgCompose.noSubjectProtection.tooltip=Не защищать тему сообщения -msgCompose.protectSubject.dialogTitle=Включить защиту темы? -msgCompose.protectSubject.question=Обычно зашифрованные сообщения содержат неизменённую тему.\n\nМы разработали стандарт, позволяющий скрывать исходную тему в зашифрованном сообщении\nи заменять её на замещающий текст. Таким образом тему можно прочитать только после расшифровки сообщения.\n\nЗащищать тему в зашифрованных сообщениях? -msgCompose.protectSubject.yesButton=&Защищать тему -msgCompose.protectSubject.noButton=&Оставлять тему незащищённой - -msgCompose.detailsButton.label=Подробности… -msgCompose.detailsButton.accessKey=П - -msgCompose.pepSendUnknown=Неизвестно -msgCompose.pepSendUnsecure=Не защищено -msgCompose.pepSendSecure=Защищено -msgCompose.pepSendTrusted=Защищено и доверенно - -pep.alert.disabledForIdentity=Для текущей учётной записи p≡p отключён. Включите p≡p в параметрах Enigmail/p≡p. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Операция отправки прервана.\n\n - -# details: keyNotTrusted=Недостаточно доверия ключу «%S» -keyNotFound=Ключ «%S» не найден -keyRevoked=Ключ «%S» отозван -keyExpired=Истёк срок действия ключа «%S» - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=ПОДПИСАНО -statEncrypted=ЗАШИФРОВАНО -statPlain=НЕ ПОДПИСАНО и НЕ ЗАШИФРОВАНО - -offlineSave=Сохранить %1$S сообщение с адресатами %2$S в папку «Исходящие»? - -onlineSend=Отправить сообщение %1$S адресату %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Отправить незашифрованное сообщение -recipientsSelectionHdr=Выберите адресатов зашифрованного сообщения - -configureNow=Вы ещё не настроили для этой учётной записи защиту с помощью Enigmail. Сделать это сейчас? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Зашифровать сообщение (автоматически) -encryptMessageNorm=Зашифровать сообщение -signMessageAuto=Подписать сообщение (автоматически) -signMessageNorm=Подписать сообщение - -encryptOff=Шифрование: ОТКЛЮЧЕНО -encryptOnWithReason=Шифрование: ВКЛЮЧЕНО (%S) -encryptOffWithReason=Шифрование: ОТКЛЮЧЕНО (%S) -encryptOn=Шифрование: ВКЛЮЧЕНО -signOn=Подпись: ВКЛЮЧЕНО -signOff=Подпись: ОТКЛЮЧЕНО -signOnWithReason=Подпись: ВКЛЮЧЕНО (%S) -signOffWithReason=Подпись: ОТКЛЮЧЕНО (%S) -reasonEnabledByDefault=включено по умолчанию -reasonManuallyForced=включено вручную -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=включено автошифрованием -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=по причине режима шифрования - -# should not be used anymore: -encryptYes=Сообщение будет зашифровано -encryptNo=Сообщение не будет зашифровано - -# should not be used anymore: -signYes=Сообщение будет подписано -signNo=Сообщение не будет подписано - - -# PGP/MIME status: -pgpmimeNormal=Протокол: PGP/MIME -inlinePGPNormal=Протокол: Inline PGP -smimeNormal=Протокол: S/MIME -pgpmimeAuto=Протокол: PGP/MIME (автоматически) -inlinePGPAuto=Протокол: Inline PGP (автоматически) -smimeAuto=Протокол S/MIME (автоматически) - -# should not be used anymore -pgpmimeYes=Используется PGP/MIME -pgpmimeNo=Используется Inline PGP - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Ваш собственный открытый ключ не будет приложен -attachOwnKeyYes=Ваш собственный открытый ключ будет приложен -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Обнаружены конфликтующие правила на уровне получателя\n%S\n\nОтправить сообщение с этими параметрами? -msgCompose.button.configure=&Настроить -msgCompose.button.send=&Отправить сообщение -msgCompose.button.save=&Сохранить сообщение - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Для проверки подписи необходим открытый ключ %S -keyUsed=Для проверки подписи использован открытый ключ %S -clickDecrypt=; используйте функцию «Расшифровать/проверить» -clickDecryptRetry=; используйте функцию «Расшифровать/проверить», чтобы повторить попытку -clickDetailsButton=; нажмите кнопку «Подробности» для просмотра дополнительной информации -clickImportButton=; нажмите кнопку «Импортировать ключ» для импорта ключа -keyTypeUnsupported=; тип этого ключа не поддерживается установленной версией GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -headerView.button.verify=Верифицировать -headerView.button.decrypt=Расшифровать -msgPart=Часть сообщения %S имеет следующее состояние: -msgSigned=подписанное -msgSignedUnkownKey=подписано неизвестным ключом -msgEncrypted=зашифрованное -msgSignedAndEnc=подписанное и зашифрованное - unverifiedSig=Непроверенная цифровая подпись -incompleteDecrypt=Расшифровка не завершена -needKey=Ошибка — не найден соответствующий закрытый ключ, необходимый для расшифровки -failedDecrypt=Ошибка — не удалось выполнить расшифровку badPhrase=Ошибка — неверная парольная фраза -# missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Ошибка — не удалось расшифровать или проверить -viewInfo=; выберите «Вид -> Информация о защите Enigmail» для получения более подробной информации -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Расшифрованное сообщение -decryptedMsgWithFormatError=Расшифрованное сообщение (восстановленная копия сообщения в формате PGP, вероятно повреждённого устаревшей версией сервера Exchange, форматирование текста может быть нарушено) - -usedAlgorithms=Использованы алгоритмы: %1$S and %2$S -pepStatusInfo.text=Статус p≡p -pepStatusInfo.title.m3=Атака -pepStatusInfo.info.m3=Это сообщение не защищено и было изменено -pepStatusInfo.title.m1=Нет доверия -pepStatusInfo.info.m1=У этого сообщения есть собеседник, ранее отмеченный как недоверенный. -pepStatusInfo.title.r0=Неизвестно -pepStatusInfo.info.r0=В этом сообщении недостаточно информации, чтобы определить, является ли оно защищённым. -pepStatusInfo.title.r1=Невозможно расшифровать -pepStatusInfo.info.r1=Это сообщение невозможно расшифровать, так как ключ недоступен. -pepStatusInfo.title.r2=Невозможно расшифровать -pepStatusInfo.info.r2=Это сообщение невозможно расшифровать, так как ключ недоступен. -pepStatusInfo.title.r3=Не защищено -pepStatusInfo.info.r3=Это сообщение не защищено -pepStatusInfo.title.r4=Не защищено для некоторых -pepStatusInfo.info.r4=Это сообщение не защищено для некоторых собеседников. -pepStatusInfo.title.r5=Ненадёжная защита -pepStatusInfo.info.r5=Защита этого сообщения ненадёжна. -pepStatusInfo.title.r6=Безопасно... -pepStatusInfo.info.r6=Это сообщение защищено, но вам нужно проверить подлинность собеседника. -pepStatusInfo.title.r7=Защищено и доверенно -pepStatusInfo.info.r7=Это сообщение является защищённым и доверенным. - -pepStatusInfo.color.green=Зелёный -pepStatusInfo.color.yellow=Жёлтый -pepStatusInfo.color.red=Красный -pepRevokeTrust.question=Отменить доверие для %S? -pepRevokeMistrust.question=Вы действительно хотите восстановить доверие ключу %S? -pepRevokeTrust.doRevoke=Отменить &доверие - -wksConfirmationReq=Подтверждение загрузки в сетевой каталог ключей -wksConfirmationReq.message=Это сообщение отправлено вашим поставщиком услуг электронной почты, чтобы подтвердить размещение вашего открытого ключа OpenPGP\nв сетевом каталоге ключей.\nРазместив свой открытый ключ, вы поможете другим пользователям найти его и использовать шифрование сообщений в беседе с вами.\n\nЕсли вы хотите загрузить ключ в сетевой каталог ключей, нажмите кнопку «Подтвердить запрос» в строке состояния.\nВ противном случае просто игнорируйте это сообщение. -wksConfirmationReq.button.label=Подтвердить запрос - -autocryptSetupReq=Выполнить настройку автошифра -autocryptSetupReq.button.label=Начать настройку -autocryptSetupReq.setupMsg.desc=В этом сообщении содержится вся информация, необходимая для безопасного переноса ваших настроек автошифра и вашего закрытого ключа с другого устройства. -autocryptSetupReq.setupMsg.backup=Вы можете сохранить это сообщение и использовать его в качестве резервной копии для вашего закрытого ключа. Для этого запишите пароль и храните его в безопасном месте. -autocryptSetupReq.message.import=Чтобы импортировать параметры и ключи в Enigmail, нажмите кнопку «Начать настройку» в строке состояния. -autocryptSetupReq.message.sent=Для импорта параметров нажмите на сообщение на другом устройстве и следуйте инструкциям. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js +missingMdcError=Ошибка - отсутствует или нарушена защита целостности (MDC) oldGpgVersion20=Не удалось инициализировать Enigmail.\n\nВы используете GnuPG версии %1$S, которая больше не поддерживается. Для работы Enigmail необходима версия не ниже %2$S. Обновите версию GnuPG в своей системе. -locateGpg=Найти программу GnuPG -invalidGpgPath=Исполняемый файл GnuPG не найден по указанному пути. Enigmail будет отключён до тех пор, пока вы не измените путь или не перезапустите приложение. -warningsAreReset=Все параметры предупреждений сброшены. -prefs.gpgFound=GnuPG найден в каталоге %S -prefs.gpgNotFound=Не удалось найти GnuPG -prefs.warnAskNever=Предупреждение: активация этого параметра приведёт к отправке незашифрованных сообщений без показа уведомлений в случае, если для одного из получателей нет ключа. Enigmail не проинформирует вас, если это случится. -prefs.warnIdleTimeForUnknownAgent=Не удалось подключиться к gpg-agent. Возможно, вы используете специальный инструментарий для обработки парольных фраз, например GNOME Keyring, seahorse-agent или KDE Wallet Manager. Enigmail не может управлять временем запоминания парольной фразы для вашего приложения, поэтому соответствующие параметры Enigmail не будут применены. -prefEnigmail.oneKeyserverOnly=Ошибка — можно указать только один сервер ключей для автоматической загрузки недостающих ключей OpenPGP. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail — свободная программа, которая распространяется по Общественной лицензии Mozilla 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Введите PIN-код администратора вашей смарт-карты -enterCardPin=Введите PIN-код вашей смарт-карты - -notInit=Ошибка — служба Enigmail ещё не инициализирована badCommand=Ошибка — ошибка шифрования cmdLine=командная строка и вывод: -notRequired=Ошибка — шифрование не требуется -notComplete=Ошибка создание ключей ещё не завершено -invalidEmail=Ошибка — недействительные адреса электронной почты noPassphrase=Ошибка — не указана парольная фраза noPGPblock=Ошибка — не найден действительный защищённый блок данных OpenPGP -unverifiedReply=Часть сообщения с отступом (ответ), возможно, была изменена. -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Ошибка — несовпадение подписи -cantImport=Ошибка импорта открытого ключа\n\n -doImportOne=Импортировать %1$S (%2$S)? -doImportMultiple=Импортировать эти ключи?\n\n%S -previewFailed=Не удаётся прочитать файл открытого ключа. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Смарт-карта %1$S, найденная в вашем считывателе, не может быть использована для обработки этого сообщения.\nВставьте смарт-карту %2$S и повторите операцию. sc.insertCard=Для этой операции требуется ваша смарт-карта %S.\nВставьте эту смарт-карту и повторите попытку. sc.removeCard=Для выполнения этой операции в считывателе не должно быть смарт-карты.\nИзвлеките смарт-карту и повторите попытку. @@ -376,43 +39,24 @@ sc.noReaderAvailable=Считыватель смарт-карт не найден\nПодключите считыватель смарт-карт, вставьте в него смарт-карту и повторите попытку. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Выберите действительный ключ в разделе «Защита OpenPGP» параметров учётной записи. missingPassphrase=Отсутствует парольная фраза errorHandling.gpgAgentInvalid=Версия gpg-agent в вашей системе несовместима с вашей версией GnuPG. errorHandling.gpgAgentError=GnuPG сообщил об ошибке связи с gpg-agent (компонентом GnuPG). errorHandling.dirmngrError=GnuPG сообщил об ошибке связи с dirmngr (компонентом GnuPG). errorHandling.pinentryError=GnuPG не удалось запросить вашу парольную фразу через pinentry -# errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. +errorHandling.pinentryCursesError=Ваша установка GnuPG настроена на использование консоли для pinentry. Тем не менее, при использовании Enigmail вам понадобится графическая версия pinentry. errorHandling.readFaq=Это ошибка настройки системы или конфигурации, которая препятствует корректной работе Enigmail и не может быть исправлена автоматически.\n\nНастоятельно рекомендуем обратиться на наш веб-сайт поддержки по адресу https://enigmail.net/faq. - gpgNotFound=Невозможно найти программу GnuPG «%S».\nУбедитесь, что в параметрах Enigmail указан правильный путь к исполняемому файлу GnuPG. gpgNotInPath=Невозможно найти GnuPG, используя переменную PATH.\nУбедитесь, что в настройках Enigmail указан правильный путь к исполняемому файлу GnuPG. enigmailNotAvailable=Основная служба Enigmail недоступна - -prefGood=Проверенная подпись от %S -prefBad=НЕПРОВЕРЕННАЯ подпись от %S - failCancel=Ошибка — получение ключа отменено пользователем failKeyExtract=Ошибка — не удалось извлечь ключ -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Ошибка — первый блок OpenPGP не является блоком открытого ключа importKeyConfirm=Импортировать открытые ключи, вложенные в сообщение? -failKeyImport=Ошибка — не удалось импортировать ключ fileWriteFailed=Не удалось выполнить запись в файл %S - importKey=Импорт открытого ключа %S с сервера ключей: uploadKey=Отправить открытый ключ %S на сервер ключей: keyId=Идентификатор ключа -keyAndSigDate=Идентификатор ключа: 0x%1$S / Подписан: %2$S -keyFpr=Отпечаток ключа: %S -noEmailProvided=Не указан адрес электронной почты. -keyAlreadySigned=Ключ уже подписан. Подписать ключ дважды невозможно. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=срок действия истёк %S createdHeader=Создан atLeastOneKey=Ключ не выбран. Нужно выбрать хотя бы один ключ. fewerKeysThanRecipients=Количество выбранных ключей меньше числа получателей. Вы уверены, что указали все ключи? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Выберите закрытый ключ OpenPGP для подписи ваших сообщений userSel.problemNoKey=Нет действительных ключей userSel.problemMultipleKeys=Множество ключей -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Отправить позже - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=Примечание: PGP/MIME поддерживают не все почтовые клиенты. Если вы не уверены, выберите %S вариант. first=первый second=второй - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Выберите ключ OpenPGP для шифрования -identityName=Учетная запись: %S -switchPepMode=В настоящий момент вы используете упрощённый режим p≡p в Emigmail.\n\nПри выборе OpenPGP или S/MIME для учётной записи вы отключите режим p≡p и перейдёте в «обычный» режим работы Enigmail без p≡p. -enableEnigmail=&Отключить p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Вы включили шифрование, но не выбрали ключ. Для шифрования сообщений, отправляемых адресату «%1$S», необходимо выбрать один или несколько действительных ключей из списка ключей. Отключить шифрование для адресата «%2$S»? -noKeyToUse=(нет — нет шифрования) -noEmptyRule=Правило не может быть пустым! Укажите почтовый адрес в соответствующем поле правила. -invalidAddress=Вы ввели адрес(а) электронной почты в неверном формате. Необходимо указать только почтовые адреса, без имени пользователя. Пример: \nНеправильно: Иван Петров \nПравильно: ivan.petrov@address.net -noCurlyBrackets=Фигурные скобки являются служебными символами и их не следует использовать в адресах электронной почты. Если вы хотите настроить критерии соответствия для этого правила, используйте параметр «Применить правило, если почтовый адрес адресата...».\nДля получения дополнительной информации нажмите кнопку «Справка». - -# Strings used in enigmailRulesEditor.js never=Никогда always=Всегда possible=Возможно -deleteRule=Удалить выделенное правило? -nextRcpt=(Следующий получатель) -negateRule=Нет -addKeyToRule=Добавить ключ %S (%S) к правилу для получателя - -# Strings used in enigmailSearchKey.js -needOnline=Выбранная функция недоступна в автономном режиме. Перейдите в режим подключения к сети и повторите попытку. -noKeyserverConn=Не удалось соединиться с сервером ключей %S. -internalError=Произошла внутренняя ошибка. Не удалось загрузить или импортировать ключи. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Не удалось установить уровень доверия к владельцу ключа - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Не удалось подписать ключ -alreadySigned.label=Примечание: ключ %S уже подписан выбранным закрытым ключом. -alreadySignedexportable.label=Примечание: ключ %S уже подписан как экспортируемый с помощью выбранного закрытого ключа. Локальная подпись не имеет смысла. -partlySigned.label=Примечание: некоторые ID пользователей для ключа %S уже подписаны выбранным закрытым ключом. -noTrustedOwnKeys=Не найдено действительных ключей для подписи. Для подписания ключей требуется как минимум один полностью доверенный закрытый ключ. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Загрузка ключей... keyValid.unknown=неизвестен keyValid.invalid=недействителен keyValid.disabled=отключён keyValid.revoked=отозван keyValid.expired=просрочен keyValid.noSubkey=неверный подключ - -keyTrust.untrusted=не доверяю +# keyValid.valid=valid +keyValid.ownKey=собственный ключ +keyTrust.untrusted=не доверенные keyTrust.marginal=минимальное keyTrust.full=доверяю keyTrust.ultimate=абсолютное keyTrust.group=(группа) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Включить ключ -keyMan.disableKey=Отключить ключ userAtt.photo=Атрибут пользователя (изображение JPEG) - -asciiArmorFile=Защищённые файлы ASCII (.asc) importKeyFile=Импорт файла ключа OpenPGP -gnupgFile=Файлы GnuPG -saveRevokeCertAs=Создать и сохранить сертификат отзыва -revokeCertOK=Сертификат отзыва создан. С его помощью вы можете отозвать свой открытый ключ, например в случае утери закрытого ключа. -revokeCertFailed=Не удалось создать сертификат отзыва. - -addUidOK=Идентификатор пользователя добавлен успешно -addUidFailed=Не удалось добавить идентификатор пользователя -noKeySelected=Для выбранной операции нужно выбрать хотя бы один ключ -exportToFile=Экспортировать открытый ключ в файл -exportKeypairToFile=Экспортировать закрытый и открытый ключи в файл -exportSecretKey=Вы хотите включить закрытый ключ в сохраняемый файл ключа OpenPGP? -saveKeysOK=Ключи успешно сохранены -saveKeysFailed=Не удалось сохранить ключи -importKeysFailed=Не удалось импортировать ключи -enableKeyFailed=Не удалось включить/отключить ключ -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Экспортированные открытые ключи -defaultPubSecKeyFilename=экспортированные-открытые-и-закрытые-ключи - -sendKeysOk=Ключи отправлены успешно -sendKeysFailed=Не удалось отправить ключи -receiveKeysOk=Ключи успешно обновлены -receiveKeysFailed=Не удалось загрузить ключи -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Импортировать ключи из буфера обмена? -importFromUrl=Загрузить открытый ключ с этого URL: -copyToClipbrdFailed=Не удалось скопировать выделенные ключи в буфер обмена. -copyToClipbrdOK=Ключи скопированы в буфер обмена - +importPubKeysFailed=Следующие открытые ключи не могут быть импортированы в Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=ПРЕДУПРЕЖДЕНИЕ: вы собираетесь удалить закрытые ключи.\nПосле удаления закрытого ключа вы не сможете расшифровать ни одного сообщения, зашифрованного этим ключом.\n\nВы действительно хотите удалить ОБА выбранных ключа: и закрытый, и открытый? -deletePubKey=Удалить открытый ключ\n'%S'? -deleteSelectedPubKey=Удалить открытые ключи? -deleteKeyFailed=Не удалось удалить ключ. revokeKeyQuestion=Вы собираетесь отозвать ключ «%S».\n\nПосле этого ключ не сможет быть использован для подписания. Как только он будет распространён, другие пользователи больше не смогут использовать этот ключ для шифрования. С помощью этого ключа можно будет расшифровывать старые сообщения.\n\nПродолжить? -revokeKeyOk=Ключ отозван. Если он доступен на сервере ключей, рекомендуется отправить его заново, чтобы другие пользователи знали об изменении его статуса. -revokeKeyFailed=Не удалось отозвать ключ. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=Ключ 0x%S уже отозван. -refreshAllQuestion=Вы не выбрали ни одного ключа. Обновить ВСЕ ключи? -refreshKeyServiceOn.warn=Предупреждение: ваши ключи обновляются в фоновом режиме с обеспечением максимально возможного уровня безопасности.\nОдновременное обновление всех ключей приведёт к раскрытию дополнительной информации без необходимости.\nВы уверены, что хотите это сделать? -refreshKey.warn=Предупреждение: в зависимости от числа ключей и скорости подключения обновление всех ключей может занять длительное время. -downloadContactsKeys.warn=Предупреждение: в зависимости от количества контактов и скорости подключения загрузка всех ключей может занять длительное время. -downloadContactsKeys.importFrom=Импортировать контакты из адресной книги «%S»? -keyMan.button.exportSecKey=Экспортировать &закрытые ключи -keyMan.button.exportPubKey=Экспортировать только &открытые ключи keyMan.button.import=&Импорт -keyMan.button.refreshAll=&Обновить все ключи keyMan.button.revokeKey=&Отозвать ключ - -keylist.noOtherUids=Других идентификаторов нет -keylist.hasOtherUids=Прочие идентификаторы: -keylist.noPhotos=Нет фотографии -keylist.hasPhotos=Фотографии - -keyMan.addphoto.filepicker.title=Выберите фотографию для добавления -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Выбранный файл не является файлом JPEG. Выберите другой файл. -keyMan.addphoto.failed=Не удалось добавить фото. -noWksIdentity=У ключа %S нет учётной записи WKS. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=Добавить ключ в &чёрный список -keyman.removeBlacklistKey.button=&Удалить ключ из чёрного списка - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Не удалось изменить основной идентификатор пользователя -changePrimUidOK=Основной идентификатор пользователя изменен -revokeUidFailed=Не удалось отозвать идентификатор пользователя %S -revokeUidOK=Идентификатор пользователя %S отозван. Если ваш ключ все ещё доступен на сервере ключей, рекомендуется отправить его заново, чтобы другие пользователи знали об изменении его статуса. -revokeUidQuestion=Отозвать идентификатор пользователя %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Ключи импортированы успешно -importInfoBits=Бит -importInfoCreated=Создан -importInfoFpr=Отпечаток -importInfoDetails=(Подробности) -importInfoNoKeys=Ключи не импортированы. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=Открытый ключ -keyTypePrimary=Первичный ключ -keyTypeSubkey=Подключ -keyTypePair=Пара ключей -keyExpiryNever=не истекает keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Шифрование -keyUsageSign=Подпись -keyUsageCertify=Заверение -keyUsageAuthentication=Аутентификация -keyDoesNotExpire=Срок действия ключа не ограничен - -# Strings in enigmailGenCardKey.xul -keygen.started=Создание ключа... -keygen.completed=Ключ создан. Новый идентификатор ключа: 0x%S -keygen.keyBackup=Резервная копия ключа сохранена как %S -keygen.passRequired=Чтобы сохранить резервную копию ключа за пределами смарт-карты, укажите парольную фразу. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Не удалось сменить PIN-код - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Обновление ключей... -keyserverProgress.uploading=Загрузка ключей... -keyserverProgress.wksUploadFailed=Не удалось загрузить ключ в сетевую службу ключей -keyserverProgress.wksUploadCompleted=Ваш открытый ключ успешно отправлен вашему поставщику электронной почты. Вы получите сообщение с подтверждением того, что вы инициировали загрузку. -keyserverTitle.refreshing=Обновление ключей -keyserverTitle.uploading=Загрузка ключей на сервер -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -keyserver.result.uploadOne=Успешно загружен 1 ключ -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Выбранный файл не является исполняемым файлом GnuPG. Укажите другой файл. -setupWizard.installFailed=Не удалось выполнить установку. Повторите попытку или установите программу GnuPG вручную и укажите её местоположение с помощью кнопки «Обзор». -setupWizard.downloadForbidden=Загрузка GnuPG не будет выполнена для обеспечения вашей безопаности. Посетите сайт https://gnupg.org/, чтобы загрузить GnuPG. -setupWizard.downloadImpossible=Не удаётся загрузить GnuPG. Повторите попытку позже или откройте https://gnupg.org/, чтобы выполнить загрузку вручную. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Указать файл резервной копии для загрузки -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Файл конфигурации GnuPG уже существует. Перезаписать его, используя файл из предыдущей установки? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -setupWizard.unmachtedIds=Не удалось установить соответствие для следующих профилей из вашей предыдущей конфигурации:\n%S\nПараметры этих профилей были проигнорированы. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Во время загрузки GnuPG произошла ошибка. За дополнительной информацией обратитесь к журналу ошибок. -installGnuPG.installFailed=Во время установки GnuPG произошла ошибка. За дополнительной информацией обращайтесь к журналу ошибок. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Введите имя и адрес электронной почты -addUidDlg.nameMinLengthError=Длина имени должна быть не менее 5 символов -addUidDlg.invalidEmailError=Укажите корректный адрес электронной почты - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Смарт-карты OpenPGP в полях Имя/Фамилия поддерживают только символы ASCII - - -# network error types +setupWizard.selectKeysButton=Выбрать ключи errorType.SecurityCertificate=Сертификат безопасности, предоставленный веб-службой, является недействительным. errorType.SecurityProtocol=Веб-служба использует неизвестный протокол безопасности. errorType.Network=Произошла сетевая ошибка. - -# filter stuff -filter.folderRequired=Выберите целевую папку. -filter.decryptMove.label=Расшифровывать без возможности восстановления (Enigmail) -filter.decryptCopy.label=Создать расшифрованную копию (Enigmail) -filter.decryptMove.warnExperimental=Предупреждение: использование фильтра «Расшифровать без возможности восстановления» может привести к повреждению сообщений.\n\nНастоятельно рекомендуется сначала использовать фильтр «Создать расшифрованную копию», убедиться, что все работает, и только после этого использовать этот фильтр. -filter.tempPepFilterDesc=Временный фильтр хранения отправленных сообщений в незашифрованном виде -filter.term.pgpencrypted.label=Шифрование OpenPGP -filter.encrypt.label=Зашифровать на ключ (Enigmail) -filter.keyRequired=Выберите ключ получателя. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Сохранить файл журнала - -# strings in gpg.jsm -unknownSigningAlg=Неизвестный алгоритм подписи (ID: %S) -unknownHashAlg=Неизвестный хэш шифрования (ID: %S) - -# strings in keyRing.jsm keyring.photo=Фотография keyRing.pubKeyRevoked=Ключ %1$S (ID ключа %2$S) отозван. keyRing.pubKeyExpired=Срок действия ключа %1$S (ID ключа %2$S) истёк. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Истёк срок действия всех подключей шифрования для ключа %1$S (ID ключа %2$S). keyRing.noSecretKey=Для ключа %1$S (ID ключа %2$S) в наборе ключей нет соответствующего закрытого ключа. Он не может быть использован для подписания. keyRing.encSubKeysUnusable=Все подключи шифрования для ключа %1$S (ID ключа %2$S) отозваны, просрочены или не могут быть использованы по другим причинам. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Не удалось сохранить в файл «%S». Выберите другой файл. dataExportError=Во время экспорта данных произошла ошибка. -enigmailSettings=Настройки Enigmail -defaultBackupFileName=Enigmail — экспорт -specifyExportFile=Укажите имя файла для экспорта -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Открыть Управление ключами Enigmail expiry.OpenKeyProperties=Открыть свойства ключа - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Это зашифрованное сообщение. У вас нет закрытого ключа для его расшифровки. - -#strings in gpgAgent.jsm gpghomedir.notexists=Каталог «%S», содержащий ваши ключи OpenPGP, не существует и не может быть создан. gpghomedir.notwritable=Каталог «%S», содержащий ваши ключи OpenPGP, недоступен для записи. gpghomedir.notdirectory=Размещение «%S», содержащее ваши ключи OpenPGP, является файлом, а не каталогом. gpghomedir.notusable=Исправьте разрешения для каталога или измените расположение «домашнего» каталога GnuPG для корректной работы. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Невозможно проверить слова доверия p≡p для собственной учётной записи. -pepTrustWords.cannotFindKey=Не удалось найти ключ для %S. -pepTrustWords.cannotStoreChange=Не удалось изменить уровень доверия для %S. -pepTrustWords.generalFailure=Не удалось получить пароль доверия для %S. -pepTrustWords.partnerFingerprint=Отпечаток ключа для %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Ваш поставщик услуг электронной почты обработал запрос на загрузку вашего открытого ключа в сетевой каталог ключей OpenPGP.\n\nНажмите кнопку подтверждения в заголовке Enigmail, чтобы завершить публикацию открытого ключа. -wkdMessage.body.process=Это сообщение создано автоматически при загрузке вашего открытого ключа в сетевой каталог ключей OpenPGP.\n\nВам не нужно выполнять никаких дополнительных действий. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Вам или отправителю необходимо отправить сообщение повторно. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Если вы составили это сообщение, ваш ключ недоступен. -pepPrivacyStatus.RatingMistrustSuggestion=Свяжитесь с собеседником ещё раз и попытайтесь совершить другое рукопожатие. -pepPrivacyStatus.RatingReliableSuggestion=Чтобы совершить рукопожатие, обменяйтесь с собеседником паролями доверия лично или по телефону. Рукопожатие обеспечивает надёжную и безопасную связь, и его достаточно совершить только один раз для каждого собеседника. -pepPrivacyStatus.RatingTrustedSuggestion=Никаких действий не требуется. -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Учитывайте, что это сообщение может быть незащищено -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Укажите необходимую информацию. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -pepPrivacyStatus.RatingUnencryptedSuggestion=Попросите своего собеседника использовать решение для шифрования или установить p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=У этого сообщения повреждено шифрование или нарушено форматирование. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Это сообщение невозможно расшифровать, так как ключ недоступен. -pepPrivacyStatus.RatingMistrustExplanation=У этого сообщения есть собеседник, ранее отмеченный как недоверенный. -pepPrivacyStatus.RatingReliableExplanation=Это сообщение защищено, но вам нужно проверить подлинность собеседника. -pepPrivacyStatus.RatingTrustedExplanation=Это сообщение является защищённым и доверенным. -pepPrivacyStatus.RatingUndefinedExplanation=В этом сообщении недостаточно информации, чтобы определить, является ли оно защищённым. -pepPrivacyStatus.RatingUnderAttackExplanation=Это сообщение не защищено и было изменено. -pepPrivacyStatus.RatingUnencryptedExplanation=Это сообщение не защищено. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Это сообщение не защищено для некоторых собеседников. -pepPrivacyStatus.RatingUnreliableExplanation=Защита этого сообщения ненадёжна. - -pepPrivacyStatus.RatingBrokenText=Повреждено -pepPrivacyStatus.RatingHaveNoKeyText=Невозможно расшифровать -pepPrivacyStatus.RatingMistrustText=Нет доверия -pepPrivacyStatus.RatingReliableText=Защищено -pepPrivacyStatus.RatingTrustedText=Защищено и доверенно -pepPrivacyStatus.RatingUndefinedText=Неизвестно -pepPrivacyStatus.RatingUnderAttackText=Атака -pepPrivacyStatus.RatingUnencryptedForSomeText=Не защищено для некоторых -pepPrivacyStatus.RatingUnencryptedText=Не защищено -pepPrivacyStatus.RatingUnreliableText=Ненадёжная защита - -handshakeDlg.button.initHandshake=Рукопожатие... -handshakeDlg.button.stopTrust=Перестать доверять -handshakeDlg.button.reTrust=Перестать не доверять -handshakeDlg.label.outgoingMessage=Исходящее сообщение -handshakeDlg.label.incomingMessage=Входящее сообщение -handshakeDlg.error.noPeers=Нельзя установить рукопожатие при отсутствии собеседников -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Сообщение настройки автошифра -autocrypt.setupMsg.msgBody=Чтобы настроить использование автошифра на новом устройстве, следуйте инструкциям на новом устройстве. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Что нового в Enigmail v2.0? -upgradeInfo.welcome1=Добро пожаловать в новый Enigmail версии 2.0! -upgradeInfo.welcome2=В этом выпуске много новых и изменённых функций. Их описание приводится ниже: -upgradeInfo.encSubject.title=Шифрование темы сообщения -upgradeInfo.encSubject.desc=Мы разработали новый метод, который перемещает тему письма в зашифрованное сообщение и вместо темы отображает текст «Encrypted Message». После расшифровки такого сообщения исходная тема подставляется автоматически. Шифрование темы включено по умолчанию, но при желании его можно отключить. (Примечание: для работы этой функции сообщение должно быть отправлено в режиме PGP/MIME) -upgradeInfo.buttons.title=Изменено поведение кнопок «Зашифровать» и «Подписать» -upgradeInfo.buttons.desc=Кнопки Зашифровать и Подписать в окне создания сообщений теперь работают и для OpenPGP, и для S/MIME. Если возможно использовать оба алгоритма, Enigmail выберет тот, для которого доступны все ключи. -upgradeInfo.autocrypt.title=Поддержка автошифра -upgradeInfo.autocrypt.desc=Теперь Enigmail поддерживает автошифр, новый стандарт распространения ключей в составе отправленного сообщения. Enigmail автоматически импортирует ключи из совместимых сообщений. Таким образом, с течением времени шифровать можно всё больше и больше сообщений. -upgradeInfo.pEp.title=Новый упрощённый режим p≡p (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Справочные материалы по Enigmail доступны в нашей документации. - -#strings in pEpAdapter.jsm -pep.missingGnuPG=Для использования Enigmail/p≡p необходим GnuPG. Так как его обнаружить не удалось, предлагаем вам его загрузить и установить. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Прощай, Enigmail +upgradeInfo.welcome1=Шифрование OpenPGP теперь является частью Thunderbird. +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +upgradeInfo.migrateSettings.title=Перенесите ключи и настройки из GnuPG в Thunderbird. +upgradeInfo.migrateSettings.desc=Перед деинсталляцией Enigmail остается импортировать ключи из GnuPG в Thunderbird и перенести некоторые важные настройки из Enigmail в Thunderbird. Мы подготовили для вас мастер, который выполнит эти шаги. +upgradeInfo.performMigration.buttonLabel=Начать миграцию прямо сейчас +upgradeInfo.thankyou.title=Спасибо за использование Enigmail +upgradeInfo.thankyou.desc1=Работать над Enigmail на протяжении почти двух десятилетий было большим удовольствием. Мы благодарны за то, что смогли внести свой вклад в идею шифрования электронных писем. Мы надеемся, что вы нашли Enigmail полезным, и хотели бы поблагодарить вас за вашу постоянную поддержку в течение этих многих лет. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Об Enigmail aboutEnigmail.title=Поддержка OpenPGP, предоставленная Enigmail aboutEnigmail.team=Группа, работающая над Enigmail: @@ -810,7 +149,7 @@ aboutEnigmail.documentation=Документация: aboutEnigmail.testing=Тестирование: aboutEnigmail.userSupport=Поддержка пользователей: -# aboutEnigmail.userSupport.team=the team and the list/forum members +aboutEnigmail.userSupport.team=команда и участники списка/форума aboutEnigmail.localization=Локализация: См. страницу языковых пакетов Enigmail aboutEnigmail.Credits=Участники: aboutEnigmail.origAuthor=Первоначальный автор расширения Enigmail @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Лицензия и поддержка aboutEnigmail.license=OpenPGP в Enigmail — это стандарт с открытым исходным кодом, который предоставляется на условиях %S aboutEnigmail.support=Поддержка и файлы для загрузки доступны на сайте www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Обновление GnuPG -updateGnuPG.title=Обновления для GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -updateGnuPG.noUpdateRequired=GnuPG обновлен. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -updateGnuPG.installUpdate=Установить обновление -# updateGnuPG.noMoreUpdates=Don't check for future updates updateGnuPG.checkUpdate=Проверить обновления GnuPG - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -keyserver.error.unavailable=Сервер ключей недоступен. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +passphrasePrompt=Введите кодовую фразу для следующего ключа: %S +openpgpInitError=Произошла ошибка при инициализации инфраструктуры OpenPGP в Thunderbird.\n\nМастер миграции не может продолжить работу, если OpenPGP в Thunderbird не инициализирован должным образом. diff -Nru enigmail-2.1.6+ds1/lang/ru/help/compose.html enigmail-2.2.4/lang/ru/help/compose.html --- enigmail-2.1.6+ds1/lang/ru/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ru/help/editRcptRule.html enigmail-2.2.4/lang/ru/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/ru/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/ru/help/initError.html enigmail-2.2.4/lang/ru/help/initError.html --- enigmail-2.1.6+ds1/lang/ru/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/ru/help/messenger.html enigmail-2.2.4/lang/ru/help/messenger.html --- enigmail-2.1.6+ds1/lang/ru/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ru/help/rulesEditor.html enigmail-2.2.4/lang/ru/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/ru/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/ru/help/sendingPrefs.html enigmail-2.2.4/lang/ru/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/ru/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/ru/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/sk/am-enigprefs.properties enigmail-2.2.4/lang/sk/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/sk/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Security +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/sk/enigmail.dtd enigmail-2.2.4/lang/sk/enigmail.dtd --- enigmail-2.1.6+ds1/lang/sk/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' k určeniu e-mailovej adresy"> - - -' znaky pre určenie e-mailovej adresy pre GnuPG. Zakážte, pokiaľ príjemca používa staré kľúče Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP Security)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Upozornenie: tvorba kľúča môže trvať niekoľko minút. Neukončujte aplikáciu, pokiaľ prebieha vytváranie kľúča. Proces sa urýchli a zlepší, pokiaľ budete aktívne pracovať s prehliadačom a často pristupovať k harddisku. Na to, že je kľúč vytvorený, budete upozornený/á."> - @@ -296,485 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' je nesprávne"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Upozornenie: Vytváranie kľúča môže trvať niekoľko minút. Neukončujte aplikáciu, pokiaľ prebieha vytváranie kľúčov. Na to, že je kľúč vytvorený, budete upozornený/a."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/sk/enigmail.properties enigmail-2.2.4/lang/sk/enigmail.properties --- enigmail-2.1.6+ds1/lang/sk/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Upozornenie Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Chyba Enigmail enigPrompt=Pripomenutie Enigmail - -dlgYes=Án&o dlgNo=&Nie dlgKeepSetting=Pamätať si odpoveď a nepýtať sa znova dlgNoPrompt=Nezobrazovať znova tento dialóg -dlg.button.delete=&Odstrániť/Zmazať dlg.button.cancel=&Späť dlg.button.close=&Zatvoriť dlg.button.continue=Pok&račovať -dlg.button.skip=&Preskočiť -# dlg.button.overwrite=&Overwrite -dlg.button.view=&Zobraziť -# dlg.button.retry=&Retry -# dlg.button.ignore=&Ignore -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nToto upozornenie sa zopakuje %S repeatSuffixSingular=krát. repeatSuffixPlural=krát. noRepeat=\n\nToto upozornenie sa už nezopakuje, pokiaľ nebudete aktualizovať Enigmail. - -pgpNotSupported=Zdá sa, že používate Enigmail spoločne s PGP 6.x\n\nPGP 6.x má bohužiaľ niekoľko nedostatkov, kvôli ktorým nie je možné zaistiť správny chod rozšírenia Enigmail. Preto taktiež Enigmail nepodporuje viacero PGP 6.x; radšej prosím používajte GnuPG (GPG).\n\nAk potrebujete pomoc s prechodom na GnuPG, prečítajte si sekciu Help na domovskej stránke Enigmailu. -# initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -# initErr.setupWizard.button=&Setup Wizard passphraseCleared=Heslo bolo zmazané. # cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=Foto nie je k dispozícii -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Cesta k fotke '%S' nie je čitateľná - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Táto nová verzia Enigmail ma veľa podstatných zmien v nastaveniach. Pokúsili sme sa previesť staré nastavenia do tejto novej verzia. Akokoľvek, nemôžme byt pripravený na všetky prípady. Prosím skontrolujte výsledok prevodu nových nastavení. -enigmailCommon.checkPreferences=Skontroluj Nastavenia... -# preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Spustené rozšírenie Enigmail verzie %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=K šifrovaniu a dešifrovaniu je použité GnuPG, ktoré je umiestené v ceste %S %S agentError=CHYBA: zlyhal prístup k službe Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Chyba v prístupe k službám rozšírenia Enigmail -onlyGPG=Generovanie kľúčov je možné iba s GnuPG (nie s PGP)! - -keygenComplete=Generovanie kľúčov je dokončené! Identita <%S> bude použitá k podpisovaniu. -revokeCertRecommended=Veľmi Vám doporučujeme vytvoriť revokačný certifikát pre Váš kľúč. Tento certifikát môže byť použitý pre zneplatnenie kľúča, napr. keď súkromný kľúč stratíte alebo bude kľúč kompromitovaný. Prajete si teraz vytvoriť revokačný certifikát? -keyMan.button.generateCert=&Generovanie certifikátu -genCompleteNoSign=Generovanie kľúča je dokončené! -genGoing=Generovanie kľúča už prebieha! - -passNoMatch=Heslo nesúhlasí, zadajte ho prosím znovu -passCheckBox=Prekontrolujte zaškrtnite, ak nastavujete kľúč bez hesla -passUserName=Prosím špecifikujte meno užívateľa pre túto identitu -# keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -# keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Z technických dôvodov, Vaše heslo nemôže začínať, ani končiť medzerou. -changePassFailed=Zmena hesla zlyhala. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Vytvoriť kľúč -keyAbort=Prerušiť vytváranie kľúča? -keyMan.button.generateKeyAbort=&Prerušiť vytváranie kľúča -keyMan.button.generateKeyContinue=&Pokračovať vo vytváraní kľúča -expiryTooLong=Nemôžete vytvárať kľúč, ktorý expiruje viac než za 100 rokov. -expiryTooLongShorter=Nemôžte vytvoriť kľúč, ktorý expiruje za viac ako 90 rokov. -expiryTooShort=Váš kľúč musí byť platný minimálne jeden deň. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Doba expirácie sa nemôže zmeniť - -# Strings in enigmailMessengerOverlay.js -securityInfo=Informácie zabezpečenia Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Táto správa je možno zašifrovaná alebo podpísaná PGP/MIME; overíte si to po kliknutí na tlačítko "Dešifrovať" - -saveAttachmentHeader=Enigmail: Uložiť dešifrovanú prílohu -noTempDir=Nemôžem nájsť dočasný adresár na zápis\nNastavte premennú prostredia systému TEMP prosím -attachmentPgpKey=Zdá sa, že príloha '%S', ktorú otvárate, je súbor s kľúčom OpenPGP.\n\nKliknite na "Import" pre uloženie kľúča alebo na "Zobraziť", aby ste si pozreli obsah súboru v okne prehliadača. - -beginPgpPart=********* *ZAČIATOK ŠIFROVANEJ alebo PODPÍSANEJ ČASTI* ********* -endPgpPart=********** *KONIEC ŠIFROVANEJ alebo PODPÍSANEJ ČASTI* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Bol nájdený mnohonásobný blok správ -- dešifrovanie/overenie zrušené* - -decryptOkNoSig=Upozornenie\n\nDešifrovanie bolo úspešné, ale podpis nemohol byť správne overený -msgOvl.button.contAnyway=&Prajete si aj tak pokračovať? -signature.verifiedOK=Podpis pre prílohu %S bol úspešne overený -signature.verifyFailed=Signatúra pre prílohu %S nemôže byť overená -attachment.noMatchToSignature=Nemôžem priradiť prílohu '%S' k podpisovému súboru -attachment.noMatchFromSignature=Nemôžem priradiť podpisový súbor '%S' k prílohe -# fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Vybrať kľúče OpenPGP k vloženiu keysToUse=Vybrať kľúč/e OpenPGP pre použitie s %S pubKey=Verejný kľúč pre %Sn - -windowLocked=Okno vytvorenia správy je uzamknuté; odosielanie zrušené -sendUnencrypted=Chyba inicializácie Enigmailu.\nOdoslať správu nezašifrovanú? -composeSpecifyEmail=Určite prosím svoju hlavnú e-mailovú adresu, ktorá bude vybraná k podpisovaniu odchádzajúcich správ.\n Ak ju nevyplníte, bude pre výber kľúča k podpisu použitá adresa odosielateľa. -sendingHiddenRcpt=Tato správa obsahuje príjemcu BCC (skrytá kópia). Ak je takáto správa zašifrovaná, je možné skryť BCC príjemcu, ale užívatelia niektorých produktov (napr. PGP Corp.) nebudú môcť správu dešifrovať. Preto nedoporučujeme používať BCC u šifrovaných správ. -sendWithHiddenBcc=Skryť príjemcu BCC -sendWithShownBcc=Šifrovať normálne -sendingNews=Odosielanie šifrovanej správy zlyhalo.\n\nTáto správa nemôže byť šifrovaná, pretože obsahuje adresáta z diskusnej skupiny. Pošlite prosím správu bez šifrovania. -sendToNewsWarning=Pozor: Snažíte sa poslať zašifrovaný email do diskusnej skupiny.\n\nOd toho odradzujeme, pretože to má zmysel iba v prípade, že všetci členovia skupiny sú schopní email rozšifrovať. Správa musí byť šifrovaná pomocou kľúčov všetkých účastníkov skupiny. Prosím, pošlite túto správu, iba pokiaľ presne viete, čo robíte.\n\nPokračovať? -hasHTML=HTML e-mail - varovanie:\nSpráva zrejme obsahuje kód HTML, ktorý môže spôsobiť chybu pri podpisovaní alebo šifrovaní. Tejto chybe pri podpisovaní emailu se vyhnete, keď stlačíte klávesu SHIFT pri kliknutí na tlačítko 'Vytvoriť správu' alebo 'Odpovedať'.\nAk vždy správy podpisujete, mali by ste radšej trvale zrušiť 'Vytváranie správ v HTML' u tohto účtu. (Pozn. prekl.: alebo odosielajte správy s využitím PGP/MIME, ak je to možné, tj. ak príjemca používa poštového klienta, ktorý PGP/MIME podporuje.) -strippingHTML=Správa obsahuje kód HTML, ktorý bude pri konverzii do jednoduchého textu pri podpisovaní alebo šifrovaní stratený. Prajete si vykonať konverziu? -msgCompose.button.sendAnyway=Určite &odoslať správu -attachWarning=Prílohy k tejto správe nie sú míestne a nemôžu byť teda šifrované. Prílohu je treba k zašifrovaniu najprv uložiť ako miestny súbor. Prajete si aj tak pokračovať ďalej? quotedPrintableWarn=Pre odosielanie správ je povolené kódovanie 'quoted-printable', to môže spôsobiť nesprávne dešifrovanie a/lebo overenie vašej správy.n Prajete si vypnúť odosielanie správ v 'quoted-printable'? -minimalLineWrapping=Máte nastavené zalamovanie riadkov na %S znakov. Pre správne šifrovanie a/alebo podpisovanie musí byť táto hodnota najmenej 68.\nPrajete si teraz zmeniť zalamovanie riadkov na 68 znakov? warning=Pozor -signIconClicked=Ručne ste zmenil/a podpisovanie. Pri vytváraní tejto správy preto (de)aktivácia podpisu nezávisí na (de)aktivácii šifrovania. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=Z - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Odosielanie správy sa nepodarilo.\n\n - -# details: # keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=PODPÍSANÁ -statEncrypted=ŠIFROVANÁ -statPlain=NEPODPÍSANÁ a NEZAŠIFROVANÁ - -offlineSave=Uložiť %S správu do %S do zložky konceptov? - -onlineSend=Odoslať správu %S na %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Odoslať nezašifrovanú správu -recipientsSelectionHdr=Určiť adresátov pre šifrovanie - -configureNow=Nemáte ešte nastavené zabezpečenie Enigmail pre zvolenú identitu. Prajete si to teraz urobiť? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Šifrovať správu -# signMessageAuto=Sign Message (auto) -signMessageNorm=Podpísať správu - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Správa bude šifrovaná -encryptNo=Správa nebude šifrovaná - -# should not be used anymore: -signYes=Správa bude podpísaná -signNo=Správa nebude podpísaná - - -# PGP/MIME status: -# pgpmimeNormal=Protocol: PGP/MIME -# inlinePGPNormal=Protocol: Inline PGP -# smimeNormal=Protocol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME bude použité -pgpmimeNo=Inline PGP bude použité - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Nájdené protichodné pravidlá pre príjemcov\n%S\n\nPoslať správu s týmito nastaveniami? -msgCompose.button.configure=&Nastavenie -msgCompose.button.send=&Odoslať správu -msgCompose.button.save=&Uložiť správu - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=K overeniu podpisu je nutný verejný kľúč %S -# keyUsed=Public key %S used to verify signature -clickDecrypt=; stlačte tlačítko Dešifrovať -clickDecryptRetry=; stlačte tlačítko Dešifrovať znovu -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Dešifrovať -msgPart=Časť správy %S -msgSigned=podpísaná -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=šifrovaná -msgSignedAndEnc=podpísaná a šifrovaná - unverifiedSig=Neoverený podpis -incompleteDecrypt=Nekompletné dešifrovanie -needKey=Chyba - pre dešifrovanie je potrebný súkromný kľúč -failedDecrypt=Chyba - dešifrovanie zlyhalo badPhrase=Chyba - zlé heslo # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Chyba - dešifrovanie/overenie zlyhalo -viewInfo=; Zobraziť > Bezpečnostné informácie správy pre podrobnosti -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Dešifrovaná správa -decryptedMsgWithFormatError=Dekódovaná správa (obnovený poškodený PGP email formát pravdepodobne spôsobený starým Exchange serverom, takže výsledok nemusí byť úplne čitateľný) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Nájsť program GnuPG -invalidGpgPath=GnuPG nie je možné na uvedenej ceste spustiť. Enigmail bude preto vypnutý pokiaľ nezmeníte cestu k GnuPG alebo pokiaľ nereštartujete aplikáciu. -warningsAreReset=Všetky varovania boli resetované. -prefs.gpgFound=GnuPG bolo nájdené v %S -prefs.gpgNotFound=Nie je možné nájsť GnuPG -prefs.warnAskNever=Varovanie: aktiváciou tejto voľby dosiahnete to, že správy budú odosielané nezašifrované bez ohlásenia, ak nemáte kľúč pre niektorého z príjemcov -- Enigmail Vás o tomto nebude naďalej informovať! -prefs.warnIdleTimeForUnknownAgent=Váš systém používa špecializovaný nástroj pre prácu s heslami (napr. gnome-keyring alebo seahorse-agent). Bohužiaľ Enigmail nemôže kontrolovať časový limit hesla nástroja, ktorý používate. Z tohoto dôvodu príslušné nastavenia v Enigmail nebudú brané v úvahu. -prefEnigmail.oneKeyserverOnly=Chyba - je možné určiť iba jeden keyserver pre automatické sťahovanie chýbajúcich kľúčov OpenPGP. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Napíšte prosím PIN správcu Vašej SmartCard -enterCardPin=Napíšte prosím svoj PIN pre SmartCard - -notInit=Chyba! Služba Enigmail doposiaľ nebola inicializovaná badCommand=Chyba - šifrovací príkaz zlyhal cmdLine=príkazový riadok a výstup: -notRequired=Chyba - šifrovanie nie je nutné -notComplete=Chyba - generovanie kľúčov nie je ešte dokončené -invalidEmail=Chyba - chybná e-mailová adresa/y noPassphrase=Chyba - nebolo vyplnené heslo noPGPblock=Chyba - nenájdený platný dátový blok OpenPGP -unverifiedReply=Odsadená časť správy (odpoveď) bola pravdepodobne zmenená -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Chyba - podpis nesúhlasí -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=SmartCard %S nájdená vo Vašej čítačke nemôže byť použitá pre spracovanie správy.\nVložte prosím SmartCard %S a opakujte operáciu. sc.insertCard=Operácia vyžaduje Vašu SmartCard %s.\nVložte prosím požadovanú SmartCard a opakujte operáciu. sc.removeCard=Operácia vyžaduje, aby v čítačke nebola žiadna SmartCard.\nVyberte prosím SmartCard a zopakujte operáciu. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Vaša čítačka SmartCard nie je pristupná\nPripojte prosím čítačku SmartCard, vložte kartu a operáciu zopakujte. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. # missingPassphrase=Missing passphrase # errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. # errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ # errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. # errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=Nie je možné nájsť program GnuPG '%S'.\nPresvedčte sa, že máte správne zadanú cestu ku spustiteľnému súboru GnuPG v nastavení Enigmail. gpgNotInPath=Nie je možné nájsť spustiteľný súbor GnuPG v ceste PATH.\nUistite sa, že máte správne zadanú cestu k spustiteľnému súboru GnuPG v nastavení Enigmail. # enigmailNotAvailable=Enigmail core Service not available - -prefGood=SPRÁVNY podpis od %S -prefBad=CHYBNÝ podpis od %S - failCancel=Chyba - príjem kľúča zrušený užívateľom failKeyExtract=Chyba - extrakcia kľúča zlyhala -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Chyba - prvý blok OpenPGP nie je blok verejného kľúča importKeyConfirm=Importovať verejný/é kľúč(e) obsiahnutý v správe? -failKeyImport=Chyba - import kľúča zlyhal fileWriteFailed=Zlyhal zápis do súbora %S - importKey=Importovať verejný kľúč %S z keyservera: uploadKey=Poslať verejný kľúč %S na keyserver: keyId=ID kľúča -keyAndSigDate=ID kľúča: 0x%S / Podpísaný: %S -keyFpr=Odtlačok prstu kľúča: %S -noEmailProvided=Nezadal/a ste e-mailovú adresu! -keyAlreadySigned=Kľúč je už podpísaný, nemôžete ho podpísať dvakrát. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expirovaný %S createdHeader=Vytvorený atLeastOneKey=Nebol zvolený žiadny kľúč! Pre prijatie tohto dialógu vyberte aspoň jeden kľúč fewerKeysThanRecipients=Vybrali ste menší počet kľúčov než príjemcov. Je naozaj zoznam kľúčov k šifrovaniu kompletný? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Vyberte súkromný kľúč OpenPGP k podpisu svojich správ # userSel.problemNoKey=No valid key # userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Odošli neskôr - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=prvý second=druhý - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Určiť kľúč OpenPGP pre šifrovanie -identityName=Identita: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Máte aktivované šifrovanie, ale nevybral/a ste žiaden kľúč. K šifrovaniu správy pre %S je potrebné vybrať jeden alebo niekoľko platných kľúčov zo zoznamu. Chcete zakázať šifrovanie pre %S? -noKeyToUse=(nič - žiadne šifrovanie) -noEmptyRule=Pravidlo nesmie byť prázdne! Prosím nastavte e-mailovú adresu v poli pravidla. -invalidAddress=Vložená/é e-mailová/é adresa/y je/sú neplatná/é. Nie je možné vkladať mená príjemcov, ale iba e-mailové adresy. Napr.:\nNeplatné: meno \nPlatné: meno@adresa.sk -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Nikdy always=Vždy possible=Možné -deleteRule=Naozaj zmazať vybrané pravidlo? -nextRcpt=(Ďalší príjemca) -negateRule=Nie -addKeyToRule=Pridať kľúč %S (%S) do pravidiel pre príjemcov - -# Strings used in enigmailSearchKey.js -needOnline=Funkcia, ktorú ste zvolil/a, nie je dostupná v offline móde. Prejdite prosím do online módu a skúste to znova. -noKeyserverConn=Nie je možné sa pripojiť na keyserver %S. -internalError=Vyskytla sa vnútorná chyba. Kľúče nie je možné stiahnuť alebo importovať. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nastavenie dôveryhodnosti zlyhalo - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Podpísanie kľúča zlyhalo -alreadySigned.label=Upozornenie: kľúč %S je už podpísaný označeným súkromným kľúčom. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -partlySigned.label=Poznámka: niektoré uživateľské ID kľúča %S sú podpísané zvoleným tajným kľúčom. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Načítanie kľúčov, čakajte prosím ... keyValid.unknown=neznámy keyValid.invalid=neplatný keyValid.disabled=zakázaný keyValid.revoked=revokovaný keyValid.expired=expirovaný keyValid.noSubkey=žiaden platný podkľúč - -keyTrust.untrusted=nedôveryhodný +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=okrajovo keyTrust.full=plne dôveryhodný keyTrust.ultimate=absolútne dôveryhodný keyTrust.group=(skupina) -keyType.public=verejný -keyType.publicAndSec=verejný/súkromný -keyMan.enableKey=Povoliť kľúč -keyMan.disableKey=Zakázať kľúč userAtt.photo=Fotka užívateľa (JPEG obrázok) - -asciiArmorFile=Súbory kódované ASCII (*.asc) importKeyFile=Importuj OpenPGP súbor kľúča -gnupgFile=Súbory GnuPG -saveRevokeCertAs=Vytvoriť a uložiť revokačný certifikát -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Revokačný certifikát nemohol byť vytvorený. - -addUidOK=Úspešne pridané ID užívateľa -addUidFailed=Zlyhalo pridanie ID užívateľa -noKeySelected=K vykonaniu operácie by ste mal/a vybrať aspoň jeden kľúč -exportToFile=Exportovať verejný kľúč do súboru -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Prajete si do uloženého súboru s kľúčom OpenPGP zahrnúť i súkromný kľúč? -saveKeysOK=Kľúče boli úspešne uložené -saveKeysFailed=Uloženie kľúčov zlyhalo -importKeysFailed=Importovanie kľúčov zlyhalo -enableKeyFailed=Povolenie/zakázanie kľúčov zlyhalo -specificPubKeyFilename=%S (0x%S)_verejný -specificPubSecKeyFilename=%S (0x%S)_verejný-súkromný -defaultPubKeyFilename=Exportované-verejné-kľúče -defaultPubSecKeyFilename=Exportovaný-verejný-a-súkromný-kľúč - -sendKeysOk=Kľúč/e boli úspešne odoslané -sendKeysFailed=Odosielanie kľúčov zlyhalo -receiveKeysOk=Kľúč/e úspešne aktualizované -receiveKeysFailed=Sťahovanie kľúčov zlyhalo -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Prajete si importovať niektorý/é kľúč/e zo schránky? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Zvolený/é kľúč/e nie je možné kopírovať do schránky. -copyToClipbrdOK=Kľúče boli nakopírované do schránky - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=POZOR: Snažíte sa zmazať súkromné kľúče!\nAk zmažete svoj súkromný kľúč, nebudete môcť ďalej dešifrovať správy zašifrované pre tento kľúč.\n\nNaozaj si prajete zmazať Vami zvolený verejný a súkromný kľúč? -deletePubKey=Prajete si zmazať tento verejný kľúč\n'%S'? -deleteSelectedPubKey=Prajete si zmazať tieto verejné kľúče? -deleteKeyFailed=Kľúč nie je možné zmazať # revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=Kľúč bol revokovaný. Ak je tento kľúč dostupný taktiež na keyserveri, je doporučené odoslať ho tam znova, aby ste dal/a i ostatným uživateľom vedieť o revokácii. -revokeKeyFailed=Kľúč nie je možné revokovať # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Nevybral/a ste žiaden kľúč. Prajete si obnoviť zoznam všetkých kľúčov? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=POZOR: v závislosti na počte kľúčov a rýchlosti pripojenia k internetu môže trvať obnovenie zoznamu všetkých kľúčov dlhšiu dobu! -downloadContactsKeys.warn=Upozornenie: v závislosti na počte kontaktov a rýchlosti vášho pripojenia, sťahovanie všetkých kľúčov môže trvať veľmi dlho! -downloadContactsKeys.importFrom=Importovať kontakty zo zoznamu kontaktov '%S'? -keyMan.button.exportSecKey=Exportovať &súkromné kľúče -keyMan.button.exportPubKey=Ex&portovať iba verejné kľúče keyMan.button.import=&Importovať -keyMan.button.refreshAll=&Znova načítať všetky kľúče keyMan.button.revokeKey=&Revokovať kľúč - -keylist.noOtherUids=Nemá iné identity -keylist.hasOtherUids=Ďalšia identita -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Vyberte obrázok pre pridanie. -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Vybraný súbor sa nezdá byť súbor vo formáte JPEG. Zvoľte si prosím iný súbor -keyMan.addphoto.failed=Fotka nemôže byť pridaná. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Zmena štandardného ID užívateľa zlyhala -changePrimUidOK=Zmena štandardného ID užívateľa prebehla úspešne -revokeUidFailed=Revokácia ID užívateľa %S zlyhala -revokeUidOK=ID užívateľa %S bolo úspešne revokované. Ak je tento kľúč dostupný taktiež na keyserveri, je doporučené odoslať ho tam znova, aby sa aj ostatní o revokácii dozvedeli. -revokeUidQuestion=Určite si prajete revokovať ID užívateľa %S? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Vytvorený -importInfoFpr=Odtlačok prstu -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=verejný kľúč -keyTypePrimary=hlavný kľúč -keyTypeSubkey=podkľúč -keyTypePair=pár kľúčov -keyExpiryNever=nikdy keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ # keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG # keyAlgorithm_22=EDDSA -keyUsageEncrypt=Šifrovať -keyUsageSign=Podpísať -keyUsageCertify=Potvrdiť -keyUsageAuthentication=Overovanie -keyDoesNotExpire=Platnosť kľúča neskončí - -# Strings in enigmailGenCardKey.xul -keygen.started=Prosím počkajte, kľúč sa začal vytvárať .... -keygen.completed=Kľúč vytvorený. Nový kľúč má ID: 0x%S -keygen.keyBackup=Kľúč bol zazálohovaný ako %S -keygen.passRequired=Ak chcete vytvoriť záložnú kópiu Vášho kľúča mimo SmartCard, napíšte prosím heslo. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Zmena PIN zlyhala - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Obnovujú sa kľúče, prosím čakajte ... -keyserverProgress.uploading=Odosielanie kľúčov, prosím čakajte ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Obnoviť kľúče -keyserverTitle.uploading=Odosielanie kľúča -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Súbor, ktorý ste zvolili, nie je spustiteľný súbor GnuPG. Prosím, zvoľte iný súbor. -setupWizard.installFailed=Vyzerá to, že inštalácia sa nepodarila. Prosím skúste inštaláciu znova, alebo nainštalujte GnuPG ručne a určite súbor pomocou tlačítka Prehľadávanie. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Vyskytla sa chyba pri pokuse o stiahnutie GnuPG. Prosím skontrolujte záznam v konzole pre ďalšie podrobnosti. -installGnuPG.installFailed=Vyskytla sa chyba pri inštalácii GnuPG. Prosím skontrolujte záznam v konzole pre ďalšie podrobnosti. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Musíte vyplniť meno a e-mailovú adresu -addUidDlg.nameMinLengthError=Meno musí mať aspoň 5 znakov -addUidDlg.invalidEmailError=Musíte zadať platnú e-mailovú adresu - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP Smartkarty podporujú iba ASCII znaky v Prvom mene/Mene. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Bezpečnostný certifikát webovej služby nie je platný. errorType.SecurityProtocol=Bezpečnostný protokol používaný webovou službou je neznámy. errorType.Network=Vyskytol sa problém so sieťovým pripojením. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm # keyring.photo=Photo # keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. # keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ # keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. # keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. # keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. # dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=O Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/sk/help/compose.html enigmail-2.2.4/lang/sk/help/compose.html --- enigmail-2.1.6+ds1/lang/sk/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sk/help/editRcptRule.html enigmail-2.2.4/lang/sk/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/sk/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/sk/help/initError.html enigmail-2.2.4/lang/sk/help/initError.html --- enigmail-2.1.6+ds1/lang/sk/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/sk/help/messenger.html enigmail-2.2.4/lang/sk/help/messenger.html --- enigmail-2.1.6+ds1/lang/sk/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sk/help/rulesEditor.html enigmail-2.2.4/lang/sk/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/sk/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sk/help/sendingPrefs.html enigmail-2.2.4/lang/sk/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/sk/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sk/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/sl/am-enigprefs.properties enigmail-2.2.4/lang/sl/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/sl/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Varnost OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/sl/enigmail.dtd enigmail-2.2.4/lang/sl/enigmail.dtd --- enigmail-2.1.6+ds1/lang/sl/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' pri navajanju e-naslovov"> - - -' za določanje e-naslovov za GnuPG. Izključite, če imajo prejemniki stare ključe Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Varnost OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -POZOR: Ustvarjanje ključa lahko traja več minut. V tem času ne zaprite brskalnika. Ker je generator nakljunčnih števil odvisen od dejavnosti računalnika, je priporočljivo npr. aktivno brskati, da bi pospešili ustvarjanje ključa. Ko bo ključ ustvarjen, boste o tem takoj obveščeni."> - @@ -296,492 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' je neveljavno"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OPOMBA: Tvorba ključa lahko traja nekaj minut. Ne zaprite aplikacije, medtem ko je tvorba ključa v teku. Ko bo ključ izdelan, boste o tem obveščeni."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/sl/enigmail.properties enigmail-2.2.4/lang/sl/enigmail.properties --- enigmail-2.1.6+ds1/lang/sl/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail – opozorilo # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail – napaka enigPrompt=Enigmail – prompt - -dlgYes=&Da dlgNo=&Ne dlgKeepSetting=Zapomni si odgovor in ne sprašuj več dlgNoPrompt=Tega pogovornega okna ne pokaži nikoli več -dlg.button.delete=I&zbriši dlg.button.cancel=Pre&kliči dlg.button.close=&Zapri dlg.button.continue=&Nadaljuj -dlg.button.skip=Pres&koči -dlg.button.overwrite=&Prepiši -dlg.button.view=&Pokaži -dlg.button.retry=Poskusi &znova -dlg.button.ignore=&Prezri -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nTo sporočilo se bo ponovilo %S repeatSuffixSingular=-krat. repeatSuffixPlural=-krat. noRepeat=\n\nTo sporočilo se ne bo ponovilo vse do nadgradnje Enigmaila. - -pgpNotSupported=Kot kaže, uporabljate Enigmail skupaj s PGP 6.x.\n\nŽal povzroča PGP 6.x nekatere težave, ki onemogočajo, da bi Enigmail deloval pravilno. Zato Enigmail PGP 6.x ni več podprt. V prihodnosti raje uporabite GnuPG (GPG).\n\nČe za prehod na GPG potrebujete podporo, obiščite stran Pomoč/Help na domači strani Enigmail. -initErr.howToFixIt=Za uporabo Enigmaila je zahtevan GnuPG. Če ga še niste namestili, je najlažji način za namestitev uporaba spodnjega gumba "Čarovnik za namestitev". -initErr.setupWizard.button=&Čarovnik za namestitev passphraseCleared=Geslo je bilo izbrisano. cannotClearPassphrase=Za ravnanje z gesli uporabljate neobičajno orodje (kot je gnome-keyring). V Enigmailu zatorej ne morete počistiti gesla. -noPhotoAvailable=Na voljo ni nobene fotografije -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Pot slike '%S' ni berljiva - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Nova različica Enigmaila ima pomembne spremembe ravnanja z nastavitvami in možnostmi. Stare nastavitve smo poskusili prenesti na novo različico. Vendar pa ne moremo samodejno zadostiti vsem primerom. Ponovno preverite nastale nove nastavitve in možnosti. -enigmailCommon.checkPreferences=Preveri nastavitve ... -preferences.defaultToPgpMime=Privzeto kodiranje sporočil smo v Enigmailu spremenili iz vdelanega PGP-ja v PGP/MIME. Priporočamo, da ga ohranite kot privzetega.\n\nČe še vedno želite privzeto uporabljati vdelan PGP, to lahko storite v nastavitvah računa pod Varnost OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Uporabljate Enigmail različice %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Za šifriranje in dešifriranje uporabi %S izvršilno datoteko %S agentError=NAPAKA: Dostop do storitve Enigmail ni uspel! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Napaka pri dostopu do storitve Enigmail -onlyGPG=Ustvarjanje ključa deluje le z GnuPG (ne pa tudi z PGP)! - -keygenComplete=Ustvarjanje ključa je končano! Za podpisovanje bo uporabljena identiteta <%S> -revokeCertRecommended=Nadvse priporočamo, da za svoj ključ ustvarite certifikat za preklic. Ta certifikat lahko uporabite za preklic svojega ključa, npr. če vaš skrivni ključ izgubite ali je v nevarnosti. Želite zdaj ustvariti tak certifikat za preklic? -keyMan.button.generateCert=&Ustvari certifikat -genCompleteNoSign=Ustvarjanje ključa je končano! -genGoing=Ustvarjanje ključa je v teku! - -passNoMatch=Geslo ni ustrezno; prosimo, ponovite vnos. -passCheckBox=Če ne uporabljate gesla za ključ, potem prosim označite ustrezno možnost. -passUserName=Prosimo, podajte imena uporabnikov za to identiteto. -keygen.missingUserName=Za izbrani račun/identiteto ni navedenega imena. V polje "vaše ime" v nastavitvah računa vnesite vrednost. -keygen.passCharProblem=V svojem geslu uporabljate posebne znake. Na žalost lahko to povzroči težave pri ostalih programih. Priporočamo, da izberete geslo s samo naslednjimi znaki:\n a-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Vaše geslo se iz tehničnih razlogov ne sme začeti ali končati s presledkom. -changePassFailed=Sprememba gesla ni uspela. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Ustvari ključ -keyAbort=Prekinem ustvarjanje ključa? -keyMan.button.generateKeyAbort=&Ustavi tvorbo ključa -keyMan.button.generateKeyContinue=&Nadaljuj s tvorbo ključa -expiryTooLong=Ne morete ustvariti ključa, ki postane neveljaven kasneje kot v 100 letih. -expiryTooLongShorter=Ključa, ki poteče čez več kot 90 let, ne morete ustvariti. -expiryTooShort=Vaš ključ mora biti veljaven najmanj en dan. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Datuma prenehanja veljavnosti ni mogoče spremeniti - -# Strings in enigmailMessengerOverlay.js -securityInfo=Varnostne informacije Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Najverjetneje šifrirano ali podpisano sporočilo PGP/MIME; za preverjanje kliknite gumb Dešifriraj - -saveAttachmentHeader=Enigmail: Shrani dešifrirano priponko -noTempDir=Ni mogoče najti nobene začasne mape za pisanje.\nProsimo, določite sistemsko spremenljivko TEMP. -attachmentPgpKey=Priloga '%S', ki jo odpirate, je najverjetneje ključ OpenPGP.\n\nKliknite 'Uvozi' za uvoz vsebovanega ključa ali 'Pokaži', če si želite vsebino datoteke ogledati v oknu brskalnika. - -beginPgpPart=********* *ZACETEK SIFRIRANEGA ali PODPISANEGA DELA* ********* -endPgpPart=********** *KONEC SIFRIRANEGA ali PODPISANEGA DELA* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Najdenih je več blokov sporočila -- dešifriranje/preverjanje prekinjeno* - -decryptOkNoSig=Pozor\n\nDešifriranje je bilo uspešno, a podpisa ni mogoče preveriti. -msgOvl.button.contAnyway=&Vseeno nadaljuj -signature.verifiedOK=Podpis za priponko %S je bil uspešno preverjen. -signature.verifyFailed=Podpisa za priponko %S ni bilo mogoče preveriti. -attachment.noMatchToSignature=Priponka '%S' se ne ujema z datoteko podpisa -attachment.noMatchFromSignature=Datoteka podpisa '%S' se ne ujema s priponko -fixBrokenExchangeMsg.failed=Sporočila ni uspelo popraviti. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Izberi ključe OpenPGP za vstavljanje keysToUse=Izberi ključe OpenPGP za uporabnika %S pubKey=Javni ključ za %S\n - -windowLocked=Urejevalno okno je zaklenjeno; pošiljanje je bilo prekinjeno -sendUnencrypted=Inicializacija Enigmaila ni uspela.\nPošljem sporočilo nešifrirano? -composeSpecifyEmail=Vnesite prosim glavni e-poštni naslov, ki je potreben za izbor podpisnega ključa za odhodna sporočila.\nČe ne podate nobenega naslova, bo e-poštni naslov v polju OD sporočila prepuščen izbiri ključa. -sendingHiddenRcpt=To sporočilo ima prejemnike v polju BCC (skrita kopija). Če to sporočilo šifrirate, je mogoče skriti prejemnike skrite kopije, vendar uporabniki nekaterih izdelkov (npr. PGP Corp.) ne bodo mogli dešifrirati sporočila. Zaradi tega priporočamo, da se izogibate polju skrite kopije (BCC) v šifriranih sporočilih. -sendWithHiddenBcc=Skrij prejemnike skrite kopije -sendWithShownBcc=Šifriraj običajno -sendingNews=Pošiljanje šifriranega sporočila je bilo prekinjeno.\n\nTega sporočila ne morete poslati šifriranega, ker so med prejemniki naslovi novičarskih skupin. To sporočilo pošljite nešifrirano. -sendToNewsWarning=Opozorilo: poslali boste šifrirano sporočilo na dopisni seznam.\n\nTega ne priporočamo, ker je to smiselno le, če lahko vsi člani skupine dešifrirajo sporočilo, t.j. sporočilo je potrebno dešifrirati s ključi vseh članov seznama. To sporočilo pošljite le, če dobro veste, kaj počnete.\n\nŽelite nadaljevati? -hasHTML=Opozorilo za sporočila HTML: \nTo sporočilo lahko vsebuje HTML. To lahko onemogoči pravilno podpisovanje oz. šifriranje tega sporočila. Da bi to v prihodnje preprečili pri pošiljanju podpisanih sporočil, kliknite prosim dvigalko hkrati z gumbom Sestavi oz. Odgovori. Ko sporočilo podpišete, odstranite potrditev pri nastavitvah 'Ustvari sporočilo kot HTML' s čimer pošiljanje sporočil HTML trajno preprečite. -strippingHTML=Sporočilo vsebuje kodo HTML, ki bo izgubljena, če bo sporočilo za podpisovanje oz. šifriranje pretvorjeno v zgolj tekstovni zapis. Želite nadaljevati? -msgCompose.button.sendAnyway=&Vseeno pošlji sporočilo -attachWarning=Priponke tega sporočila niso lokalne, zato jih ni mogoče šifrirati. Za šifriranje priponk jih najprej shranite lokalno in jih nato dodajte sporočilu. Želite kljub temu poslati sporočilo? quotedPrintableWarn=Za kodiranje sporočil ste nastavili 'quoted-printable'. To lahko pripelje do nepravilnega šifriranja in/ali preverjanja vaših sporočil.\nŽelite izklopiti nastavitev 'quoted printable'? -minimalLineWrapping=Prelom besedila ste nastavili na %S znakov. Za pravilno šifriranje in podpisovanje mora biti ta vrednost najmanj 68.\nŽelite zdaj vrednost nastaviti na 68? warning=Opozorilo -signIconClicked=Spremenili ste nastavitve za podpisovanje. Zato za to sporočilo nič več ne velja (de-)aktivacija podpisovanja skupaj z (de-)aktivacijo šifriranja. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Napaka med shranjevanjem osnutka -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Notranja napaka: obljubljeno šifriranje onemogočeno -msgCompose.internalError=Pojavila se je začetna napaka. - -msgCompose.toolbarTxt.signAndEncrypt=To sporočilo po podpisano in šifrirano -msgCompose.toolbarTxt.signOnly=To sporočilo bo podpisano -msgCompose.toolbarTxt.encryptOnly=To sporočilo bo šifrirano -msgCompose.toolbarTxt.noEncryption=To sporočilo bo nepodpisano in nešifrirano -msgCompose.toolbarTxt.disabled=Za izbrano identiteto je Enigmail onemogočen -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=Podrobnosti … -msgCompose.detailsButton.accessKey=P - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Pošiljanje je bilo prekinjeno.\n\n - -# details: keyNotTrusted=Premalo zaupanja za ključ '%S' -keyNotFound=Ključa '%S' ni mogoče najti -keyRevoked=Ključ '%S' je preklican -keyExpired=Ključ '%S' je potekel - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=PODPISANO -statEncrypted=ŠIFRIRANO -statPlain=NEPODPISANO in NEŠIFRIRANO - -offlineSave=Želite shraniti sporočilo %S, namenjeno %S, v mapo 'Neodposlana sporočila'? - -onlineSend=Želite poslati sporočilo %S prejemniku %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Pošlji nešifrirano sporočilo -recipientsSelectionHdr=Izberite prejemnika šifriranja - -configureNow=Varnosti Enigmail za izbrano identiteto še niste nastavili. Želite to zdaj storiti? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Šifriraj sporočilo (samodejno) -encryptMessageNorm=Šifriraj sporočilo -signMessageAuto=Podpiši sporočilo (samodejno) -signMessageNorm=Podpiši sporočilo - -encryptOff=Šifriranje: IZKLJUČENO -encryptOnWithReason=Šifriranje: VKLJUČENO (%S) -encryptOffWithReason=Šifriranje: IZKLJUČENO (%S) -encryptOn=Šifriranje: VKLJUČENO -signOn=Podpisovanje: VKLJUČENO -signOff=Podpisovanje: IZKLJUČENO -signOnWithReason=Podpisovanje: VKLJUČENO (%S) -signOffWithReason=Podpisovanje: IZKLJUČENO (%S) -reasonEnabledByDefault=privzeto omogočeno -reasonManuallyForced=ročno vsiljeno -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=vsiljeno s samo-šifriranjem -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=zaradi načina šifriranja - -# should not be used anymore: -encryptYes=Sporočilo bo šifrirano -encryptNo=Sporočilo ne bo šifrirano - -# should not be used anymore: -signYes=Sporočilo bo podpisano -signNo=Sporočilo ne bo podpisano - - -# PGP/MIME status: -pgpmimeNormal=Protokol: PGP/MIME -inlinePGPNormal=Protokol: vdelan PGP -smimeNormal=Protokol: S/MIME -pgpmimeAuto=Protokol: PGP/MIME (samodejno) -inlinePGPAuto=Protokol: vdelan PGP (samodejno) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=Uporabljen bo PGP/MIME -pgpmimeNo=Uporabljen bo vrinjen PGP - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Najdena so nasprotujoča si pravila za prejemnika\n%S\n\nŽelite poslati sporočilo s temi nastavitvami? -msgCompose.button.configure=Pri&lagodi -msgCompose.button.send=&Pošlji sporočilo -msgCompose.button.save=&Shrani sporočilo - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Za preverjanje podpisa potrebujete javni ključ %S -keyUsed=Javni ključ %S, ki se uporablja za preverjanje podpisa -clickDecrypt=; kliknite na gumb Dešifriraj -clickDecryptRetry=; za ponoven poskus kliknite na ikono šifriranja -clickDetailsButton=; za več informacij kliknite na gumb 'Podrobnosti' -clickImportButton=; za prenos ključa kliknite na gumb 'Uvozi ključ' -keyTypeUnsupported=; vaša različica GnuPG ne podpira te vrste ključa -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Dešifriraj -msgPart=Del sporočila %S -msgSigned=podpisan -msgSignedUnkownKey=podpisano z neznanim ključem -msgEncrypted=šifriran -msgSignedAndEnc=podpisan in šifriran - unverifiedSig=Podpis ni preverjen -incompleteDecrypt=Dešifriranje je bilo nepopolno -needKey=Napaka - Za dešifriranje je potreben skrivni ključ -failedDecrypt=Napaka - Dešifriranje ni uspelo badPhrase=Napaka - Napačno geslo # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Napaka - Dešifriranje/preverjanje ni uspelo -viewInfo=; Za podrobnosti izberite Pogled > Informacije o varnosti sporočila -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Dešifrirano sporočilo -decryptedMsgWithFormatError=Dešifrirano sporočilo (obnovljena pokvarjena oblika e-pošte PGP, ki jo je povzročil star strežnik Exchange, tako da rezultat verjetno ne bo popoln za branje) - -usedAlgorithms=Uporabljeni algoritmi: %S in %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=Potrdi zahtevo - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Najdi program GPG -invalidGpgPath=GnuPG ni mogoče izvršiti s podano potjo. OpenGPG je zatorej deaktiviran, dokler znova ne spremenite poti do GnuPG ali ponovno ne zaženete aplikacije. -warningsAreReset=Vsa opozorila so bila ponastavljena. -prefs.gpgFound=GnuPG se nahaja v %S -prefs.gpgNotFound=Ni mogoče najti programa GnuPG -prefs.warnAskNever=Opozorilo: z aktivacijo te možnosti boste povzročili nešifrirana e-sporočila brez dodatnih opozoril, če ključ za enega od prejemnikov ne obstaja -- Enigmail vas o tem ne bo opozarjal! -prefs.warnIdleTimeForUnknownAgent=Vaš sistem uporablja specializirano orodje za ravnanje z gesli, kot sta gnome-keyring ali seahorse-agent. Žal OpenGPG ne more nadzorovati časovne prekoračitve gesla za orodje, ki ga uporabljate. Zato se ustrezne nastavitve časovne prekoračitve v Enigmail ne upoštevajo. -prefEnigmail.oneKeyserverOnly=Napaka - navedete lahko le en strežnik ključev za samodejno prenašanje manjkajočih ključev OpenPGP. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Prosimo, vtipkajte ADMIN PIN svoje pametne kartice -enterCardPin=Prosimo, vtipkajte PIN svoje pametne kartice - -notInit=Napaka - Storitev Enigmail še ni nastavljena badCommand=Napaka - Šifriranje ni uspelo cmdLine=ukazna vrstica in izpis\\: -notRequired=Napaka - Šifriranje ni potrebno -notComplete=Napaka - Ustvarjanje ključa še ni dokončano -invalidEmail=Napaka - Neveljaven(i) e-poštni naslov(i) noPassphrase=Napaka – Niste vnesli gesla noPGPblock=Napaka – Ni nobenega veljavnega bloka OpenPGP -unverifiedReply=Del sporočila (odgovor) je bil morda spremenjen -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Napaka – Podpis ni pravilen -# cantImport=Error importing public key\n\n -doImportOne=Uvozi %1$S (%2$S)? -doImportMultiple=Uvozi naslednje ključe?\n\n%S -previewFailed=Javnega ključa ni mogoče brati. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Pametne kartice %S, ki je v bralniku, ni mogoče uporabiti za obdelavo sporočila.\nProsimo, vstavite pametno kartico %S in ponovite postopek. sc.insertCard=Postopek zahteva vašo pametno kartico %S.\nProsimo, vstavite zahtevano pametno kartico in ponovite postopek. sc.removeCard=Postopek ne potrebuje prisotnosti pametne kartice v bralniku.\nProsimo, odstranite svojo pametno kartico in ponovite postopek. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Vaš bralnik pametnih kartic ni dosegljiv.\nProsimo, povežite svoj bralnik pametnih kartic, vstavite kartico in ponovite postopek. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Izberte veljaven ključ v odseku OpenPGP v nastavitvah računa. missingPassphrase=Manjka geslo errorHandling.gpgAgentInvalid=Vaš sistem izvaja različico gpg-agenta, ki ni primerna za vašo različico GnuPG-ja. errorHandling.gpgAgentError=GnuPG je sporočil napako v komunikaciji z gpg-agentom (sestavni del GnuPG-ja). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG ne more poizvedeti za vaše geslo preko vnosa PIN-a. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=To je napaka namestitve ali nastavitve sistema, ki preprečuje pravilno delovanje Enigmaila in se je ne da samodejno popraviti.\n\nZelo priporočamo, da se posvetujete z našo spletno stranjo za podporo na https://enigmail.net/faq. - gpgNotFound=Ni mogoče najti programa GnuPG '%S'.\nPreverite, da je pot do programa GnuPG v nastavitvah Enigmail podana pravilno. gpgNotInPath=Na podani poti PATH ni mogoče najti programa GnuPG.\nPreverite, da je pot do programa GnuPG v nastavitvah Enigmail podana pravilno. enigmailNotAvailable=Glavna storitev Enigmaila ni na voljo - -prefGood=Pravilen podpis %S -prefBad=NAPAČEN podpis %S - failCancel=Napaka - Uporabnik je prekinil sprejem ključa failKeyExtract=Napaka - Ekstrakcija ključa ni uspela -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Napaka - Prvi blok OpenPGP ni javni blok ključa importKeyConfirm=Želite uvoziti v sporočilu vsebovani javni ključ? -failKeyImport=Napaka - Ključa ni mogoče uvoziti fileWriteFailed=Pisanje v datoteko %S ni mogoče - importKey=Uvažam javni ključ %S s strežnika ključev\\: uploadKey=Pošlji javni ključ %S na strežnik ključev: keyId=ID ključa -keyAndSigDate=ID ključa: 0x%S / Podpisano: %S -keyFpr=Prstni odtis ključa: %S -noEmailProvided=Niste vnesli e-poštnega naslova! -keyAlreadySigned=Ključ je že podpisan, ne morete ga podpisati dvakrat. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=veljavnost %S je potekla createdHeader=Ustvarjen atLeastOneKey=Niste izbrali nobenega ključa\\! Izbrati morate vsaj en ključ. fewerKeysThanRecipients=Izbrali ste manjše število ključev, kot je prejemnikov. Ste prepričani, da je seznam ključev za šifriranje popoln? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Izberite skrivni ključ OpenPGP, s katerim boste podpisovali svoja sporočila userSel.problemNoKey=Ni veljavnega ključa. userSel.problemMultipleKeys=Več ključev -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Pošlji kasneje - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=prvi second=drugi - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Izberite ključ OpenPGP za šifriranje -identityName=Identiteta: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Vklopili ste šifriranje, niste pa izbrali nobenega ključa. Da bi pošiljali %S šifrirana sporočila, morate izbrati enega ali več veljavnih ključev. Želite izklopiti šifriranje? -noKeyToUse=(brez - ne zaklepaj) -noEmptyRule=Pravila ne smejo biti prazna. Prosimo, vnesite vsaj en e-poštni naslov. -invalidAddress=Vneseni e-poštni naslovi niso veljavni. Ne smete vnesti imen prejemnikov, temveč zgolj e-poštne naslove. Primer:\nNeveljavno: Janez Kranjski \nPravilno: janez.kranjski@domena.si -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=nikoli always=vedno possible=ko je mogoče -deleteRule=Želite izbrisati izbrana pravila? -nextRcpt=(naslednji prejemnik) -negateRule=ne -addKeyToRule=Dodaj ključ %1$S (%2$S) pravilu za uporabnika - -# Strings used in enigmailSearchKey.js -needOnline=Funkcija, ki ste jo izbrali, ni na voljo v načinu brez povezave. Prosimo, povežite se in poskusite znova. -noKeyserverConn=Ni se mogoče povezati s strežnikom ključev na naslovu %S. -internalError=Prišlo je do notranje napake. Ključev ni bilo mogoče prenesti ali uvoziti. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Nastavljanje zaupanja ključa ni uspelo - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Podpisovanje ključa ni uspelo -alreadySigned.label=Opomnik: ključ %S je že podpisan z izbranim skrivnim ključem. -alreadySignedexportable.label=Opomba: ključ %S je že podpisan za izvažanje z izbranim zasebnim ključem. Lokalni podpis ni smiseln. -partlySigned.label=Opomba: nekateri uporabniški ID-ji ključa %S so že podpisani z izbranim skrivnim ključem. -noTrustedOwnKeys=Primernega ključa za podpisovanje ni bilo najdenega! Potrebujete vsaj en popolnega zaupanja vreden ključ za podpisovanje drugih ključev. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Poteka nalaganje ključev, prosimo, počakajte ... keyValid.unknown=neznan keyValid.invalid=neveljaven keyValid.disabled=onemogočen keyValid.revoked=preklican keyValid.expired=pretekel keyValid.noSubkey=ni veljavnega podključa - -keyTrust.untrusted=ni vreden zaupanja +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=delno zaupanje keyTrust.full=zaupanje keyTrust.ultimate=popolno zaupanje keyTrust.group=(skupina) -keyType.public=jav -keyType.publicAndSec=jav/skr -keyMan.enableKey=Omogoči ključ -keyMan.disableKey=Onemogoči ključ userAtt.photo=Uporabniški atribut (slika JPEG) - -asciiArmorFile=Zavarovane datoteke ASCII (*.asc) importKeyFile=Uvozi datoteko ključa OpenPGP -gnupgFile=Datoteke GnuPG -saveRevokeCertAs=Ustvari in shrani potrdilo o preklicu -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Potrdila o preklicu ni bilo mogoče ustvariti. - -addUidOK=Uporabniška ID uspešno dodana -addUidFailed=Dodajanje uporabniške ID ni uspelo -noKeySelected=Za izvedbo izbrane operacije morate izbrati vsaj en ključ -exportToFile=Izvozi javni ključ v datoteko -exportKeypairToFile=Izvozi tajni in javni ključ v datoteko -exportSecretKey=Želite vključiti skrivni ključ v shranjeno datoteko ključa OpenPGP? -saveKeysOK=Ključi so bili uspešno shranjeni -saveKeysFailed=Shranjevanje ključev ni uspelo -importKeysFailed=Uvoz ključev ni uspel -enableKeyFailed=Omogočanje/onemogočanje ključa ni uspelo -specificPubKeyFilename=%1$S (0x%2$S) jav -specificPubSecKeyFilename=%1$S (0x%2$S) jav-skr -defaultPubKeyFilename=Izvoženi-javni-ključi -defaultPubSecKeyFilename=Izvoženi-javni-in-skrivni-ključi - -sendKeysOk=Ključ(i) uspešno poslani -sendKeysFailed=Pošiljanje ključev ni uspelo -receiveKeysOk=Ključ(i) uspešno posodobljeni -receiveKeysFailed=Prenos ključev ni uspel -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Želite uvoziti nekatere ključe iz odložišča? -importFromUrl=Prenesi javni ključ iz tega URL-ja: -copyToClipbrdFailed=Kopiranje izbranega ključa(-ev) v odložišče ni uspelo. -copyToClipbrdOK=Ključ(i) kopirani v odložišče - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=OPOZORILO: Izbrisati želite skrivne ključe!\nČe izbrišete svoj skrivni ključ, ne boste več mogli dešifrirati sporočil, šifriranih za ta ključ.\n\nResnično želite izbrisati OBA, skrivni ključ in javni ključ? -deletePubKey=Želite izbrisati javni ključ\n'%S'? -deleteSelectedPubKey=Želite izbrisati javne ključe? -deleteKeyFailed=Ključa ni mogoče izbrisati. revokeKeyQuestion=Ste pred preklicem ključa '%S'.\n\nS tem ključem ne boste mogli več podpisovati in ga porazdelitvi ne boste več mogli uporabljati za šifriranje. Še vedno ga lahko uporabljate za dešifriranje starih sporočil.\n\nAli želite nadaljevati? -revokeKeyOk=Ključ je bil preklican. Če je vaš ključ na voljo na strežniku ključev, je priporočljivo, da ga ponovno naložite nanj, tako da drugi lahko opazijo preklic. -revokeKeyFailed=Ključa ni mogoče preklicati. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Nobenega ključa niste izbrali. Bi radi osvežili VSE ključe? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Opozorilo: glede na število ključev in hitrost povezave je lahko osveževanje vseh ključev razmeroma dolg postopek! -downloadContactsKeys.warn=Opozorilo: glede na število stikov in hitrost povezave je prenos vseh ključev lahko zelo dolg postopek! -downloadContactsKeys.importFrom=Želite uvoziti stike iz adresarja '%S'? -keyMan.button.exportSecKey=&Izvozi skrivne ključe -keyMan.button.exportPubKey=Izvozi le &javne ključe keyMan.button.import=&Uvozi -keyMan.button.refreshAll=&Osveži vse ključe keyMan.button.revokeKey=&Prekliči ključ - -keylist.noOtherUids=Nima drugih identitet -keylist.hasOtherUids=Znan(a) tudi kot -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Izberite fotografijo za dodajanje -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Izbrana datoteka ni datoteka JPEG. Izberite drugo datoteko. -keyMan.addphoto.failed=Slike ni mogoče dodati. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Spreminjanje primarnega uporabniške ID ni uspelo -changePrimUidOK=Primarna uporabniška ID uspešno spremenjena -revokeUidFailed=Preklic uporabniške ID %S ni uspel -revokeUidOK=Uporabniška ID %S je bila uspešno preklicana. Če je vaš ključ na voljo na strežniku ključev, je priporočljivo, da ga ponovno naložite nanj, tako da drugi lahko opazijo preklic. -revokeUidQuestion=Resnično želite preklicati uporabniško ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=USPEH! Ključi uvoženi -importInfoBits=Biti -importInfoCreated=Ustvarjeno -importInfoFpr=Prstni odtis -importInfoDetails=(podrobnosti) -importInfoNoKeys=Noben ključ se ni uvozil. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=javni ključ -keyTypePrimary=primarni ključ -keyTypeSubkey=podključ -keyTypePair=par ključev -keyExpiryNever=nikoli keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Šifriraj -keyUsageSign=Podpiši -keyUsageCertify=Potrdi -keyUsageAuthentication=Overjanje -keyDoesNotExpire=Ključ ne poteče - -# Strings in enigmailGenCardKey.xul -keygen.started=Prosimo, počakajte, da se ustvari ključ ... -keygen.completed=Ključ je bil ustvarjen. ID novega ključa je: 0x%S -keygen.keyBackup=Ključ je bil varnostno kopiran kot %S -keygen.passRequired=Prosimo, navedite geslo, če želite ustvariti varnostno kopijo svojega ključa zunaj pametne kartice. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Sprememba PIN ni uspela - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Osveževanje ključev je v teku, prosimo, počakajte ... -keyserverProgress.uploading=Prenašanje ključev je v teku, prosimo, počakajte ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Osveževanje ključev -keyserverTitle.uploading=Prenos ključev -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Datoteka, ki ste jo navedli, ni izvršljiv program GnuPG. Navedite drugo datoteko. -setupWizard.installFailed=Zdi se, da namestitev ni bila uspešna. Ponovno poskusite z namestitvijo ali namestite GnuPG ročno in ga poiščite z gumbom Prebrskaj. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Navedite datoteko varnostne kopije za nalaganje -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Datoteka nastavitev GnuPG že obstaja. Ali jo želite prepisati z datoteko iz stare namestiteve? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Pri prenašanju GnuPG je prišlo do napake. Preverite zapisnik konzole za podrobnosti. -installGnuPG.installFailed=Pri nameščanju GnuPG je prišlo do napake. Preverite zapisnik konzole za podrobnosti. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Vnesti morate ime in e-poštni naslov -addUidDlg.nameMinLengthError=Ime mora obsegati najmanj pet znakov -addUidDlg.invalidEmailError=Navesti morate veljaven e-poštni naslov - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Pametne kartice OpenPGP v imenu podpirajo samo znake ASCII. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Varnostno potrdilo, ki ga izkazuje spletna storitev, ni veljavno. errorType.SecurityProtocol=Varnostni protokol, ki ga uporablja spletna storitev, ni znan. errorType.Network=Prišlo je do omrežne napake. - -# filter stuff -filter.folderRequired=Izbrati morate ciljno mapo. -filter.decryptMove.label=Dešifriraj za vedno (Enigmail) -filter.decryptCopy.label=Ustvari dešifrirano kopijo (Enigmail) -filter.decryptMove.warnExperimental=Opozorilo - dejanje filtra "Trajno dešifriraj" lahko privede do uničenih sporočil.\n\nZelo priporočamo, da najprej poskusite s filtrom "Ustvari dešifrirano kopijo", skrbno preskusite rezultat in začnite uporabljati ta filter samo, ko ste zadovoljni z rezultatom. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Shrani zapisniško datoteko - -# strings in gpg.jsm -unknownSigningAlg=Neznan algoritem podpisovanja (ID: %S) -unknownHashAlg=Neznano šifrirno razpršilo (ID: %S) - -# strings in keyRing.jsm keyring.photo=Fotografija keyRing.pubKeyRevoked=Ključ %1$S (ID ključa %2$S) je bil preklican. keyRing.pubKeyExpired=Ključ %1$S (ID ključa %2$S) je potekel. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Vsi podključi za šifriranje ključa %1$S (ID ključa %2$S) so potekli. keyRing.noSecretKey=Videti je, da nimate skrivnostnega ključa za %1$S (ID ključa %2$S) na svoji verigi; ključa ne morete uporabiti za podpisovanje. keyRing.encSubKeysUnusable=Vsi podključi za šifriranje ključa %1$S (ID ključa %2$S) so potekli, bili preklicani ali so drugače neuporabni. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Ni mogoče shraniti v datoteko '%S'. Izberite drugo datoteko. dataExportError=Med izvažanjem podatkov se je pojavila napaka. -enigmailSettings=Nastavitve Enigmail -defaultBackupFileName=Izvoz Enigmail -specifyExportFile=Navedite ime datoteke za izvoz -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=O programu Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/sl/help/compose.html enigmail-2.2.4/lang/sl/help/compose.html --- enigmail-2.1.6+ds1/lang/sl/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - -Pomoč za Enigmail: Sestavljanje sporočil - - -

Pomoč za Enigmail

- -

Uporaba Enigmaila pri sestavljanju sporočil

- -
    -
  • Meni Enigmail v oknu Pošta/Sestavi -
      -
    • Podpiši sporočilo: omogoči/onemogoči pošiljanje podpisane pošte. Uporabnik je obveščen, - če podpisovanje ne uspe. -
    • -
    • Šifriraj sporočilo: omogoči/onemogoči šifriranje vsem prejemnikom pred - pošiljanjem. Uporabnik je obveščen, če šifriranje ne uspe. -

      Če je nastavljeno Prikaži izbiro, ko je to potrebno v Nastavitve - -> zavihek Izbira ključa, se pojavi seznam s ključi, če so naslovi na voljo - v seznamu prejemnikovi za sporočilo, za katerega nimate javnega ključa.

      -

      Če je nastavljeno Nikoli ne prikaži pogovornega okna Izbira ključa OpenPGP v Nastavitve - -> zavihek Izbira ključa in se v seznamu prejemnikov sporočila nahajajo naslovi, za katere - nimate javnega ključa, bo sporočilo odposlano nešifrirano.

      -
    • -
    • Za to sporočilo uporabi PGP/MIME: omogoči/onemogoči uporabo - PGP/MIME - za to sporočilo. -

      Če poznani prejemnik/i lahko berejo pošto z uporabo zapisa PGP/MIME, - bi ga morali uporabiti.

      -

      Ta možnost je odvisna od nastavitev v Nastavitve - -> zavihek PGP/MIME - če je nastavljeno Dovoli uporabo PGP/MIME ali Vedno uporabi - PGP/MIME.

      -
    • -
    • Privzete možnosti sestavljanja: podmeni. -
        -
      • Možnosti podpisovanja/šifriranja ...: bližnjica prek Nastavitve računa -> - Možnosti OpenPGP. -
      • -
      • Možnosti pošiljanja ...: bližnjica prek Nastavitve -> - zavihek Pošiljanje. -
      • -
      • Key selection options...: bližnjica prek Nastavitve -> - zavihek Izbira ključa. -
      • -
      • Možnosti PGP/MIME ...: bližnjica prek Nastavitve -> - zavihek PGP/MIME. -
      • -
      -
    • Razveljavi šifriranje: če pride do napake pri pošiljanju sporočila, - npr. če strežnik POP ne sprejme zahteve, Enigmail o tem ne bo obveščen - in šifrirano sporočilo bo še naprej prikazano v oknu - Sestavljanje. S to menijsko izbiro boste razveljavili šifriranje/podpisovanje, - s čimer boste v oknu Sestavljanje besedilov povrnili v izvoren zapis.
      - Kot začasno rešitev lahko to možnost uporabite tudi za dešifriranje citiranega - besedila, ko odgovarjate na šifrirana sporočila. Enigmail bi moral samodejno - dešifrirati citirano sporočilo, vendar če to ne uspe, lahko uporabite to menijsko - izbiro, da ga v to prisilite. -
    • -
    • Vstavi javni ključ: vstavi blok javnega ključa z ASCII oklepnikom na - trenutni položaj kazalke v oknu Sestavljanje. Vnesti boste morali e-poštne naslove - ključa(ev), ki naj bodo vstavljeni. Na ta način vstavljeni ključi - bodo samodejno prepoznani na sprejemnem delu Enigmaila. Po vstavljanju - ključa lahko še vedno izbirate med podpisovanjem/šifriranjem sporočila. - Prav tako v sporočilo ne smete vstaviti več kot enega bloka ključa; le - navedite več e-poštnih naslovov, ločenih z vejicami ali presledki, ko - boste po tem povprašani. -
    • -
    • Počisti shranjeno geslo: počisti v spominu hranjeno geslo. Uporabno, če imate - več gesel. -
    • -
    • Pomoč: prikaže informacije pomoči s spletne strani (te strani). -
    • -
    -
  • -
-
-

-Nadaljno pomoč najdete na -spletni strani pomoči za Enigmail. -

- - diff -Nru enigmail-2.1.6+ds1/lang/sl/help/editRcptRule.html enigmail-2.2.4/lang/sl/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/sl/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,106 +0,0 @@ - -Pomoč za Enigmail: Urejanje pravil OpenPGP - - -

Pomoč za Enigmail

- -

Uporaba Urejevalnika pravil Enigmail: Uredi pravilo OpenPGP

-

V urejevalniku pravil lahko navedete privzete dejavnosti po uporabniku za omogočanje -šifriranja, podpisovanje in PGP/MIME, ter določite, kateri ključ(i) OpenPGP naj bo(do) uporabljen(i). V tem -pogovornem oknu lahko določite pravila za posameznega prejemnika ali za skupino -prejemnikov z zelo podobnimi atributi. -

-
    -
  • Nastavi pravila OpenPGP za: vsebuje e-poštne - naslove za prejemnike (brez imen, torej le naslove, kot je - nekdo@neka.domena). Določite lahko več e-poštnih sporočil, ločenih s presledkom. - Tukaj neveden naslov lahko sestavlja le - del domene, tako da se bo ujemalo vsako sporočilo na kateri koli naslov iz te domene, - npr. @neka.domena omogoča ujemanje francelj@neka.domena, - nekdodrug@neka.domena, vsakdo@neka.domena itn. -
  • -
  • Uporabi pravilo, če prejemnik ...: - S tem spremenite ujemanje e-naslovov. - Če je vnesenih več naslovov, bo nastavitev veljala za vse. - Spodnji primeri temeljijo na body@email.domain, - vnesenem v gornjem polju Pravila OpenPGP. -
      -
    • je enako: s to nastavitvijo se bo pravilo sprožilo le na - e-sporočilih za body@email.domain (natančno ujemanje, ne razlikuje velikih/malih črk). -
    • -
    • vsebuje: s to nastavitvijo se ujema vsak e-naslov, ki vsebuje - tak niz, - npr. anybody@email.domain ali body@email.domain.net -
    • -
    • se začne z: s to nastavitvijo se ujemajo vsi e-naslovi, ki se začenjajo - z ujemajočim nizom, npr. body@email.domain.net, - body@email.domain-name.com. -
    • -
    • se konča z: s to nastavitvijo se ujemajo vsi e-naslovi, ki se končujejo - z ujemajočim nizom, npr. anybody@email.domain, - somebody@email.domain. -
    • -
    - -
  • -
  • Nadaljuj z naslednjim pravilom za ujemajoči naslov
    - Vključitev te funkcije vam omogoča določanje pravila, ne da bi morali - navesti ID ključa v polje Uporabi naslednje ključe OpenPGP:, - tako da je e-naslov uporabljen za preverjanje ključa ob času - pošiljanja. Prav tako bodo procesirana tudi nadaljna pravila za iste naslove. -
  • -
  • Ne preverjaj nadaljnjih pravil za ujemajoči naslov
    - Z vključitvijo te funkcije ustavite obdelavo vseh drugih pravil za - ujemajoč(i) naslov(e), če je temu pravilu ustreženo; t.j. obdelava pravil - nadaljuje z naslednjim prejemnikom. -
  • -
  • Uporabi naslednje ključe OpenPGP:
    - Uporabite gumb Izberi ključ(e) ... za izbor ključev prejemnika, - ki naj bodo uporabljeni za šifriranje. Tako kot pri gornjem dejanju ne bodo - obdelana nobena druga pravila za ujemajoče naslove. -
  • -
  • Privzeto za podpisovanje: vključite ali izključite - podpisovanje sporočil. S tem uporabite ali prekličete, kar ste določili v oknu - sestavljanja sporočil. Vrednosti so: -
      -
    • nikoli: onemogočite podpisovanje, čeprav je morda omogočeno v oknu - sestavljanja sporočila (preglasi druge vrednosti);
      -
    • -
    • da, če je izbrano v sestavljanju sporočila: podpisovanje - poteka v skladu z izbranim v oknu sestavljanja sporočila; -
    • -
    • vedno: omogočite podpisovanje, četudi ni omogočeno v oknu - sestavljanja sporočila; -
    • -
    -
  • -
-
Te nastavitve podpisovanja se uporabljajo za -vsa pravila, ki se ujemajo. Če eno od pravil prepoveduje podpisovanje, sporočilo -ne bo podpisano, ne glede na druga pravila, ki morda določajo vedno.
-
-
    -
  • Šifriranje: vključite ali - izključite šifriranje sporočil. Dovoljene nastavitve in njihov pomen so - enaki kot za podpisovanje sporočil.
  • -
  • PGP/MIME: vključite ali - izključite uporabo kodiranja sporočil PGP/MIME (RFC 3156). - Če je PGP/MIME izključen, so - sporočila kodirana z uporabo "medvrstičnega PGP". Dovoljene vrednosti in njihov - pomen so enaki kot za podpisovanje sporočil. -
  • -
-

Pravila se obdelujejo v zaporedju seznama v -Urejevalniku pravil OpenPGP. Vsakič, ko se pravilo -ujema s prejemnikom in ko vsebuje ID ključa OpenPGP, poleg uporabe navedenega ID -ključa, se prejemnik ne obravnava več pri obdelavi -naslednjih pravil. -

-
-

-Nadaljno pomoč najdete na -strani nastavitev Enigmail po prejemniku. -

- - diff -Nru enigmail-2.1.6+ds1/lang/sl/help/messenger.html enigmail-2.2.4/lang/sl/help/messenger.html --- enigmail-2.1.6+ds1/lang/sl/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - -Pomoč za Enigmail: Branje sporočil - - -

Pomoč za Enigmail

- -

Uporaba Enigmail pri branju sporočil

-
    -
  • Gumb Dešifriraj v glavnem oknu Pošta
    - Ta gumb lahko uporabite za več dejanj: dešifriranje, preverjanje ali uvoz - javnih ključev. Običajno se dešifriranje/preverjanje izvede samodejno, - čeprav lahko to izključite v nastavitvah. Če pa to ne uspe, - se ponavadi pokaže kratko sporočilo o napaki v vrstici stanja Enigmaila. Če - kliknete na gumb Dešifriraj, boste videli bolj natančno sporočilo - o napaki, vključno z izhodom ukaza GnuPG. -
  • -
  • Ikoni Pisalo in Ključ v prikazu glave sporočila
    - Ikoni Pisalo in Ključ v glavi sporočila nakazujeta, - da je bilo sporočilo, ki ga prebirate podpisano in/ali šifrirano in da ali je podpis - dober, t.j. da sporočilo od trenutka podpisa ni bilo spremenjeno. Če je bilo sporočilo - spremenjeno, se ikona Peresa spremeni v Polomlneno pero, kar - nakazuje nepravilen podpis. Z desnim klikom na ikono Pero ali Ključ se - pojavi meni z naslednjimi možnostmi: -
      -
    • Podatki o varnosti OpenPGP: omogoča ogled izhodnega stanja iz - GnuPG za to sporočilo.
    • -
    • Kopiraj varnostne podatke OpenPGP: skopira izhodno stanje iz GnuPG na - odložišče; za lepljenje v sporočilo-odgovor itn.
    • -
    • Pokaži fotografski ID OpenPGP: omogoča ogled Fotografskega ID - osebe, ki je poslala sporočilo, če imajo fotografijo vdelano v svoj javni ključ. - (Ta možnost je na voljo le, če fotografski ID obstaja v njihovem ključu.)
    • -
    • Varnostni podatki S/MIME: omogoča ogled varnostnih podatkov S/MIME - za sporočilo.
    • -
    -

    Če nimate nastavljenega keyserver-options autoretrieve-key - v datoteki gpg.conf in preberete sporočilo, ki je podpisano ali šifrirano, - boste videli ikono Peresa v področju izpisa glave z Vprašajem, - vrstica stanja Enigmaila v področju glave bo izpisala Del sporočila - je podpisan; kliknite ikono peresa za podrobnosti in sporočilo v - podoknu sporočila bo prikazalo vse pokazatelje blokov sporočila OpenPGP in - blok podpisa.

    -

    Ta znak boste videli tudi, če imate nastavljeno keyserver-options auto-key-retrieve - v svoji datoteki gpg.conf, vendar ključ OpenPGP ni na voljo na privzetem - strežniku ključev.

    -

    S klikom na ikono Pero in vprašaj prikličete okno z obvestilom, - da ključ ni na voljo v vašem skladišču ključev. Če kliknete V redu, se pojavi - novo okno s seznamom strežnikov ključev, s katerega izberete tistega, - s katerega naj bo prenesen javni ključ pošiljatelja.

    -

    Za nastavitev seznama strežnikov ključev, ki bi jih radi uporabljali, pojdite na - zavihek Enigmail -> Nastavitve -> Splošno in vnesite naslove strežnikov ključev v - polje Strežnik(i) ključev:, ločene z vejico. Prvi strežnik ključev na - seznamu bo uporabljen kot privzeti.

    -
  • -
  • Odpiranje šifriranih priponk / uvažanje pripetih ključev OpenPGP
    - Priponke s končnicami *.pgp, *.asc in *.gpg so prepoznane kot priponke, ki jih - Enigmail lahko posebej obdela. Z desnim klikom na takšno priponko - se v pojavnem meniju pojavita dve posebni izbiri: Dešifriraj in odpri - in Dešifriraj in shrani. Ti izbiri uporabite, če želite, da Enigmail - priponko dešifrira, preden jo odprete ali shranite. Če je priponka - prepoznana kot datoteka ključa OpenPGP, vam bo ponujen uvoz ključev - v vašo shrambo ključev. -
  • -

-

-Nadaljna pomoč je na voljo na -spletni strani pomoči za Enigmail. -

- - diff -Nru enigmail-2.1.6+ds1/lang/sl/help/rulesEditor.html enigmail-2.2.4/lang/sl/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/sl/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ - -Pomoč za Enigmail: Urejevalnik pravil - - -

Pomoč za Enigmail

- -

Uporaba urejevalnika pravil Enigmail

-

V Urejevalniku pravil lahko določite privzete vrednosti za prejemnike z omogočanjem -šifriranja, podpisovanja in PGP/MIME, ter -določite, katerei ključ(i) OpenPGP naj bo(do) uporabljen(i). Vsako pravilo sestavlja pet polj in je predstavljeno -v eni vrstici: -

-
    -
  • Email: e-sporočilo(a) from - the To:, Cc: and Bcc: fields to match. Ujemanje deluje na podnizih (Podrobnosti najdete - v pogovornem oknu Urejanja pravil) -
  • -
  • Ključ(i) OpenPGP: seznam ID ključev OpenPGP, -ki naj se uporabi(jo) za naslovnika
  • -
  • Podpisovanje: omogoči ali onemogoči - podpisovanje sporočil. To ali uporabi ali pa prezre nastavitve - v oknu sestavljanja sporočila. Možne vrednosti so: -
      -
    • nikoli: onemogoči podpisovanje, čeprav je omogočeno v oknu sestavljanja - sporočila (preglasi druge vrednosti)
      -
    • -
    • dovoli: prepusti nastavitev podpisovanja določitvi v oknu sestavljanja - sporočila
    • -
    • vedno: omogoči podpisovanje, četudi ni omogočeno v oknu - sestavljanja sporočila -
    • -
    -
  • -
-
Te nastavitve podpisovanja se upoštevajo pri -vseh ujemajočih pravilih. Če eno od pravil onemogoči podpisovanje, sporočilo -ne bo podpisoano, ne glede na določila dugega pravila, ki določa podpisovanje Vedno.
-
-
    -
  • Šifriraj: omogoči ali - onemogoči šifriranje sporočila. Dovoljene nastavitve in njihov pomen so - enaki kot pri podpisovanju sporočila.
  • -
  • PGP/MIME: omogoči ali - onemogoči uporabo šifriranja sporočil PGP/MIME (RFC 3156). - Če je PGP/MIME onemogočen, se - sporočila šifrirajo z uporabo "inline PGP". Dovoljene vrednosti in njihov - pomen so enaki kot pri podpisovanju sporočil. -
  • -
-

Pravila se procesirajo v vrstnem redu seznama. Ko se pravilo ujema -s prejemnikom in vsebuje ID ključa OpenPGP poleg zporabe -navedenega ID ključa, se prejemnik več ne preučuje pri procesiranju -nadaljnih pravil.

-

Opomba: Urejevalnik pravil še ni dokončan. Možno je napisati nekaj -naprednejših pravil z neposrednim urejanjem datoteke pravil (ta pravila -kasneje več ne smete urejati v urejevalniku pravil). Nadaljne -informacije za neposredno urejanje datoteke -je na voljo na domači strani Enigmail.

-
-

-Nadaljna pomoč je na voljo na naslovu -spletni strani pomoči za Enigmail -

- - diff -Nru enigmail-2.1.6+ds1/lang/sl/help/sendingPrefs.html enigmail-2.2.4/lang/sl/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/sl/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sl/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/sq/am-enigprefs.properties enigmail-2.2.4/lang/sq/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/sq/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Siguri OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/sq/enigmail.dtd enigmail-2.2.4/lang/sq/enigmail.dtd --- enigmail-2.1.6+ds1/lang/sq/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' për përcaktim adresash email"> - - -' për të përcaktuar adresa email-i për GnuPG-në. Çaktivizojeni, nëse marrësi ka kyçe të vjetër Hushmail."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Siguri OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SHËNIM: Prodhimi i kyçeve mund të dojë disa minuta të plotësohet. Mos e mbyllni programin, ndërkohë që kryhet prodhimi i kyçeve. Shfletimi rëndshëm, ose kryerja e veprimeve që e përdorin shumë diskun, gjatë prodhimit të kyçeve do ta rimbushë 'burimin e rastësisë' dhe përshpejtojë procesin. Kur prodhimi i kyçeve të jetë plotësuar, do t'ju njoftohet."> - @@ -296,495 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' është e pavlefshme"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SHËNIM: Prodhimi i kyçeve mund të dojë disa minuta të plotësohet. Mos e mbyllni programin, ndërkohë që kryhet prodhimi i kyçeve. Kur prodhimi i kyçeve të jetë plotësuar, do t'ju njoftohet."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Trustwords p≡p "> -Trustwords e tij, ose përmes telefoni. Ato duhet të përputhen me Trustwords më poshtë."> -Trustwords vijuese."> - -Trustwords"> -Trustwords të Gjata"> - - -Trustwords"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/sq/enigmail.properties enigmail-2.2.4/lang/sq/enigmail.properties --- enigmail-2.1.6+ds1/lang/sq/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Sinjalizim Enigmail-i enigConfirm=Ripohim Enigmail-i enigInfo=Të dhëna Enigmail-i -enigError=Gabim Enigmail enigPrompt=Kërkesë nga Enigmail - -dlgYes=&Po dlgNo=&Jo dlgKeepSetting=Mbaje mend përgjigjen time dhe mos më pyet prapë dlgNoPrompt=Mos ma shfaq më këtë dialog -dlg.button.delete=&Fshije dlg.button.cancel=&Anuloje dlg.button.close=&Mbylle dlg.button.continue=&Vazhdoni -dlg.button.skip=Anashkal&oje -dlg.button.overwrite=&Mbishkruaje -dlg.button.view=Sh&iheni -dlg.button.retry=&Riprovoni -dlg.button.ignore=&Shpërfille -dlg.button.install=&Instaloje dlg.button.ok=&OK - repeatPrefix=\n\nKy sinjalizim do të përsëritet %S repeatSuffixSingular=herë tjetër. repeatSuffixPlural=herë të tjera. noRepeat=\n\nKy sinjalizim s’do të përsëritet pa përmirësuar Enigmail-in. - -pgpNotSupported=Duket se po përdorni Enigmail-in tok me PGP 6.x\n\nUnfortunately, Për fat të keq, PGP 6.x ka një dorë problemesh që e pengojnë punën normale të Enigmail-it. Ndaj, Enigmail-i nuk i mbulon më versionet PGP 6.x; ju lutemi, në vend të tij, hidhuni te GnuPG (GPG).\n\nNëse ju duhet ndihmë për kalimin te GnuPG, shihni ndarjen Ndihmë te sajti i Enigmail-it. -initErr.howToFixIt=Që të mund të përdorni Enigmail-in, lypset GnuPG-ja. Nëse s’e keni instaluar ende GnuPG-në, rruga më e lehtë për ta bërë këtë është të përdorni butonin "Ndihmësi i Rregullimit" më poshtë. -initErr.setupWizard.button=Ndihmësi i &Rregullimit passphraseCleared=Frazëkalimi u pastrua. cannotClearPassphrase=Po përdorni një mjet jo-standard (fjala vjen, gnome-keyring) për trajtim frazëkalimesh. Ndaj spastrimi i frazëkalimit s’është i mundur nga brenda Enigmail-it. -noPhotoAvailable=S’ka Foto të gatshme -debugLog.title=Regjistër Diagnostikimesh Enigmail-i -error.photoPathNotReadable=Shtegu '%S' i fotos s’është i lexueshëm - -generalError=Gabim: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Ky version i ri i Enigmail-it ka ndryshime të rëndësishme në trajtimin e parapëlqimeve dhe mundësive. U përpoqëm të mbartim rregullimet e vjetra te ky version i ri. Megjithatë, s’ mund të mbulojmë vetvetiu të gjitha rastet. Ju lutemi, kontrolloni edhe ju rregullimet e reja për parapëlqimet dhe mundësitë. -enigmailCommon.checkPreferences=Kontrolloni Parapëlqimet ... -preferences.defaultToPgpMime=E kemi ndryshuar parazgjedhjen për kodimin e mesazheve në Enigmail, nga PGP Brendazi në PGP/MIME. Këshillojmë që si parazgjedhje të mbani këtë.\n\nNëse si parazgjedhje, prapëseprapë doni të përdorni PGP Brendazi, mund ta bëni këtë te Rregullime Llogarie nën ndarjen Siguri OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Po xhirohet Enigmail-i version %S -enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Po përdoret i ekzekutueshmi %1$S %2$S për fshehtëzim dhe shfshehtëzim agentError=GABIM: Dështoi hyrja te shërbimi Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Gabim gjatë hyrjes te shërbimi Enigmail -onlyGPG=Prodhimi i kyçeve funksionon vetëm me GnuPG-në (jo me PGP-në)! - -keygenComplete=Prodhimi i kyçeve u plotësua! Për nënshkrim do të përdoret identiteti <%S>. -revokeCertRecommended=Këshillojmë me forcë krijimin e një dëshmie shfuqizimi për kyçin tuaj. Kjo dëshmi mund të përdoret për të bërë të pavlefshëm kyçin tuaj, për shembull, në rast se kyçi juaj i fshehtë humb ose komprometohet. Doni të krijohet tani një dëshmi e tillë shfuqizimi? -keyMan.button.generateCert=&Prodhoje Dëshminë -genCompleteNoSign=Prodhimi i kyçeve u plotësua! -genGoing=Prodhimi i kyçit është duke u kryer! - -passNoMatch=Zërat për frazëkalimet nuk përputhen; ju lutemi, rijepeni -passCheckBox=Ju lutemi, i vini shenjë kutizës, nëse po tregoni se nuk doni frazëkalim për kyçin -passUserName=Ju lutemi, tregoni një emër përdoruesi për këtë identitet -keygen.missingUserName=S’ka emër të përcaktuar për llogarinë/identitetin e përzgjedhur. Ju lutemi, jepni një vlerë te fusha "Emri juaj", te rregullime llogarie. -keygen.passCharProblem=Te frazëkalimi juaj po përdorni shenja speciale. Mjerisht, kjo mund të shkaktojë probleme për aplikacione të tjera. Këshillojmë të zgjidhni një frazëkalim që përbëhet vetëm nga cilado prej këtyre shenjave:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Për arsye teknike, frazëkalimi juaj s’mund të fillojë ose përfundojë me një shenjë hapësirë. -changePassFailed=Ndryshimi i frazëkalimit dështoi. - -keyConfirm=Të prodhohen kyçet privatë dhe publikë për '%S'? -keyMan.button.generateKey=&Prodhoje Kyçin -keyAbort=Të ndërpritet prodhimi i kyçeve? -keyMan.button.generateKeyAbort=&Ndërprite Prodhimin e Kyçeve -keyMan.button.generateKeyContinue=&Vazhdo Prodhimin e Kyçeve -expiryTooLong=Nuk mund të krijoni një kyç që skadon për më shumë se 100 vjet. -expiryTooLongShorter=Nuk mund të krijoni një kyç që skadon për më shumë se 90 vjet. -expiryTooShort=Kyçi juaj duhet të jetë i vlefshëm të paktën për një ditë. -keyGenFailed=Prodhimi i kyçit dështoi. Ju lutemi, për hollësi kontrolloni konsolën Enigmail (Menuja Enigmail > Mundësi Diagnostikimi). -setKeyExpirationDateFailed=Data e skadimit s’u ndryshua dot - -# Strings in enigmailMessengerOverlay.js -securityInfo=Të dhëna Sigurie Enigmail-i\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Bashkëngjitjet e këtij mesazhi nuk janë nënshkruar ose fshehtëzuar*\r\n\r\n -possiblyPgpMime=Mesazh i fshehtëzuar ose nënshkruar ndoshta me PGP/MIME; klikoni mbi butonin Shfshehtëzoje që të verifikohet - -saveAttachmentHeader=Enigmail: Ruajeni bashkëngjitjen e shfshehtëzuar -noTempDir=S’u gjet drejtori e përkohshme ku të shkruhej\nJu lutemi, rregulloni ndryshoren TEMP të mjedisit -attachmentPgpKey=Bashkëngjitja '%S' që po hapni duket të jetë një kartelë kyçi OpenPGP.\n\nKlikoni mbi 'Importo' që të importoni kyçet që përmban ose 'Parje' që të shihni lëndën e kartelës në një dritare shfletuesi - -beginPgpPart=********* *FILLIMI I PJESËS SË FSHEHTËZUAR ose TË NËNSHKRUAR* ********* -endPgpPart=********** *FUNDI I PJESËS SË FSHEHTËZUAR ose TË NËNSHKRUAR* ********** -notePartEncrypted=Enigmail: *Pjesë të këtij mesazhi NUK janë nënshkruar ose fshehtëzuar* -noteCutMessage=Enigmail: *U gjetën blloqe të shumëfishtë mesazhesh -- shfshehtëzimi/verifikimi dështoi* - -decryptOkNoSig=Kujdes\n\nShfshehtëzimi qe i suksesshëm, por nënshkrimi s’u verifikua saktë -msgOvl.button.contAnyway=&Vazhdo Sido Qoftë -signature.verifiedOK=Nënshkrimi për bashkëngjitjen %S u verifikua me sukses -signature.verifyFailed=Nënshkrimi për bashkëngjitjen %S s’u verifikua dot -attachment.noMatchToSignature=Për bashkëngjitjen '%S' s’u gjet dot përputhje me ndonjë kartelë nënshkrimi -attachment.noMatchFromSignature=Për kartelën e nënshkrimit '%S' s’u gjet dot përputhje me ndonjë bashkëngjitje -fixBrokenExchangeMsg.failed=Nuk pati sukses në ndreqjen e mesazhit. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importoni kyç -wksNoIdentity=Ky kyç s’është i lidhur me ndonjë nga llogaritë tuaja email. Ju lutemi, shtoni një llogari për të paktën një nga adresat vijuese email:\n\n%S -wksConfirmSuccess=Email-i i ripohimit u dërgua. -wksConfirmFailure=Dërgimi i email-it të ripohimit dështoi. -autocrypt.importSetupKey.accountPreconfigured=Llogaria juaj është tashmë e formësuar për Autocrypt-in.\n\nDoni të mbishkruhet vërtet rregullimi juaj me këtëe mesazh rregullimi? -autocrypt.importSetupKey.selfCreated=Ky mesazh qe krijuar nga instanca juaj në xhirim e Enigmail-it.\n\nPër të importuar rregullimet, ju lutemi, kaloni te klienti i postës ku doni të shpërngulen rregullimit, dhe klikoni mbi mesazhin që nga ai klient poste. -autocrypt.importSetupKey.invalidMessage=Gabim - s’u lexua dot mesazhi i rregullimit. Mesazhi duket të jetë i komprometuar. Ju lutemi, provoni të krijoni një mesazh të ri rregullimi te pajisja juaj "tjetër". -autocrypt.importSetupKey.invalidKey=Gabim - kyçi s’u importua dot. Ose kyçi s’mbulohet nga versioni juaj i GnuPG-së, ose është komprometuar. -autocrypt.importSetupKey.wrongPasswd=Fjalëkalimi që dhatë është i gabuar. Doni të riprovohet? -autocrypt.importSetupKey.success=Mesazhi i rregullimit të Autocrypt-it u përpunua me sukses. Autocrypt-i tani është funksional për llogarinë tuaj'%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Përzgjidhni Kyçe OpenPGP për Futje keysToUse=Përzgjidhni Kyç(e) OpenPGP për përdorim me %S pubKey=Kyç publik për %S\n - -windowLocked=Dritarja e hartimit është e bllokuar; dërgimi u anulua -sendUnencrypted=Gatitja e Enigmail-it dështoi..\nTë dërgohet mesazhi i pafshehtëzuar? -composeSpecifyEmail=Ju lutemi, përcaktoni adresën tuaj parësore, që do të përdoret për zgjedhjen e kyçit të nënshkrimit për mesazhet e dërguara.\n Nëse e lini të zbrazët, për zgjedhjen e kyçit të nënshkrimit do të përdoret adresa prej fushës NGA e mesazhit. -sendingHiddenRcpt=Ky mesazh ka marrës BCC (kopje të padukshme). Nëse mesazhi fshehtëzohet, është e mundur të kryhet fshehja e marrësve BCC, por përdoruesit e disa produkteve (p.sh. PGP Corp.) s’do të jenë në gjendje të shfshehtëzojnë mesazhin. Prej kësaj, këshillojmë të shmangni email-e BCC me mesazhe të fshehtëzuar. -sendWithHiddenBcc=Fshihi marrësit BCC -sendWithShownBcc=Fshehtëzoje normalisht -sendingNews=Veprimi i dërgimit të fshehtëzuar u ndërpre.\n\nKy mesazh s’mund të fshehtëzohet, ngaqë ka marrës prej grupe lajmesh. Ju lutemi, ridërgojeni mesazhin pa fshehtëzim. -sendToNewsWarning=Kujdes: ju ndan një hap nga dërgimi te një grup lajmesh i një email-i të fshehtëzuar.\n\nKjo është e pakëshillueshme, ngaqë ka kuptim vetëm nëse mesazhin mund ta shfshehtëzojnë krejt anëtarët e grupit, pra lypset që mesazhi të fshehtëzohet me kyçet e krejt pjesëmarrësve në grup. Ju lutemi, dërgojeni këtë mesazh vetëm në rast se e dini saktësisht se ç’po bëni.\n\nTë vazhdohet? -hasHTML=Sinjalizim mesazhi HTML::\nKy mesazh mund të përmbajë HTML, çka mund të bëjë që nënshkrimi/fshehtëzimi të dështojë. Për ta shmangur këtë në të ardhmen, duhet të shtypni tastin SHIFT, kur klikoni mbi butonin Hartoni/Përgjigjuni për dërgim mesazhesh të nënshkruar.\nNëse, si parazgjedhje, i nënshkruani mesazhet, duhet t’i hiqni shenjën kutizës së parapëlqimit 'Harto Mesazhe në HTML', për t’i çaktivizuar përgjithnjë mesazhet HTML për këtë llogari email-esh. -strippingHTML=Mesazhi përmban të dhëna formatimi HTML që do të humbë gjatë shndërrimit në tekst të thjeshtë për nënshkrim/fshehtëzim. Doni të ecet më tej? -msgCompose.button.sendAnyway=&Dërgoje Mesazhin Sido Qoftë -attachWarning=Bashkëngjitjet te ky mesazh nuk janë vendore, ato s’mund të fshehtëzohen. Që të mund të fshehtëzoni bashkëngjitje, depozitojini ato së pari si kartela vendore dhe mandej bashkëngjitini. Doni të dërgohet mesazhi sido qoftë? quotedPrintableWarn=Keni aktivizuar kodim 'quoted-printable' për dërgim mesazhesh. Kjo mund të sjellë shfshehtëzim dhe/ose verifikim të pasaktë të mesazhit tuaj.\nDoni ta çaktivizoni tani dërgimin e mesazheve 'quoted-printable'? -minimalLineWrapping=Keni caktuar mbështjellje rreshti në %S shenja. Për fshehtëzim dhe/ose nënshkrim të saktë, kjo vlerë lypset të jetë e pakta 68.\nDëshironi ta kaloni tani mbështjelljen e rreshtave në 68 shenja? warning=Kujdes -signIconClicked=E keni ndryshuar dorazi nënshkrimin. Ndaj, teksa hartoni mesazhin, (ç)aktivizimi i nënshkrimit s’varet më nga (ç)aktivizimi i fshehtëzimit. -errorOwnKeyUnusable=ID-ja '%S' e kyçit, e formësuar për identitetin e tanishëm nuk sjell ndonjë kyç OpenPGP të përdorshëm.\n\nJu lutemi, sigurohuni që keni një kyç OpenPGP të vlefshëm, që s’ka skaduar, dhe që rregullimet tuaja të llogarisë shpien te ai kyç.\nNëse kyçi juaj s’ka skaduar, atëherë kontrolloni nëse për të keni caktuar besueshmëri Zotëruesi si "plotësisht" ose "përfundimisht". -msgCompose.cannotSaveDraft=Gabim teksa ruhej skica -msgCompose.partiallyEncrypted.short=Kini mendjen te rrjedhje informacionesh konfidenciale - email i fshehtëzuar pjesërisht. -msgCompose.partiallyEncrypted.inlinePGP=Mesazhi të cilit po i përgjigjeni përmbante pjesë të pafshehtëzuara dhe të fshehtëzuara. Nëse dërguesi s’qe fillimisht në gjendje të shfshehtëzonte pjesë të mesazhit, mund të jeni duke lënë zbuluar informacion konfidencial që dërguesi s’qe në gjendje ta fshehtëzonte.\n\nJu lutemi, shihni mundësinë e heqjes nga përgjigja juaj për këtë dërgues të krejt tekstit të cituar prej mesazhit të tij. - -msgCompose.internalEncryptionError=Gabim i Brendshëm: fshehtëzimi i premtuar është i çaktivizuar -msgCompose.internalError=Ndodhi një gabim i brendshëm. - -msgCompose.toolbarTxt.signAndEncrypt=Ky mesazh do të nënshkruhet dhe fshehtëzohet -msgCompose.toolbarTxt.signOnly=Ky mesazh do të nënshkruhet -msgCompose.toolbarTxt.encryptOnly=Ky mesazh do të fshehtëzohet -msgCompose.toolbarTxt.noEncryption=Ky mesazh do të jetë i panënshkruar dhe i pafshehtëzuar -msgCompose.toolbarTxt.disabled=Për identitetin e përzgjedhur Enigmail-i është i çaktivizuar -msgCompose.protectSubject.tooltip=Mbroje subjektin e mesazhit -msgCompose.noSubjectProtection.tooltip=Mos e mbro subjektin e mesazhit -msgCompose.protectSubject.dialogTitle=Të Aktivizohet Mbrojtja e Subjektit? -msgCompose.protectSubject.question=Email-et e rregullt të fshehtëzuar përmbajnë subjekt të paredaktuar.\nKemi caktuar një standard për fshehje të subjektit origjinal të mesazhit të fshehtëzuar\ndhe zëvendësuar atë me tekst kot, në mënyrë që subjekti të jetë i dukshëm vetëm pasi email-i të fshehtëzohet.\n\nDoni të mbrohet subjekti në mesazhe të fshehtëzuar? -msgCompose.protectSubject.yesButton=&Mbro Subjektin -msgCompose.protectSubject.noButton=&Lëre subjektin të pambrojtur - -msgCompose.detailsButton.label=Hollësi… -msgCompose.detailsButton.accessKey=H - -msgCompose.pepSendUnknown=E panjohur -msgCompose.pepSendUnsecure=I pasigurt -msgCompose.pepSendSecure=I sigurt -msgCompose.pepSendTrusted=I sigurt & I besueshëm - -pep.alert.disabledForIdentity=p≡p është e çaktivizuar për identitetin e tanishëm. Ju lutemi, aktivizojeni p≡p që nga parapëlqimet për Enigmail/p≡p. -pep.alert.weakReply=Ju ndan një hap nga përcjellja apo përgjigja ndaj një mesazhi të sigurt, por mesazhi që po dërgoni do të jetë i pasigurt. Nëse zgjidhni të vazhdohet, mund të ketë rrjedhje informacionesh konfidenciale, duke ju vënë ju dhe partnerin e komunikimit në rrezik. Jeni i sigurt se doni të vazhdohet? - - -# note: should end with double newline: -sendAborted=Veprimi i dërgimit u ndërpre.\n\n - -# details: keyNotTrusted=Besueshmëri e pamjaftueshme e kyçit '%S' -keyNotFound=Nuk u gjet kyçi '%S' -keyRevoked=Kyçi '%S' është i shfuqizuar -keyExpired=Kyçi '%S' ka skaduar - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=I NËNSHKRUAR -statEncrypted=I FSHEHTËZUAR -statPlain=I PANËNSHKRUAR dhe I PAFSHEHTËZUAR - -offlineSave=Të ruhet mesazhi %1$S për %2$S te dosja Mesazhe të Padërguar? - -onlineSend=Të dërgohet mesazhi %1$S për %2$S? -encryptKeysNote=Shënim: Mesazhi është i fshehtëzuar për ID Përdoruesi / Kyçet vijues: %S -hiddenKey= - -signFailed=Gabim te Enigmail-i: fshehtëzimi/nënshkrimi dështoi. Të dërgohet mesazhi i pafshehtëzuar? -msgCompose.button.sendUnencrypted=&Dërgoje Mesazh të Pafshehtëzuar -recipientsSelectionHdr=Përzgjidhni Marrës për Fshehtëzime - -configureNow=S’keni formësuar ende sigurinë e Enigmail-it për identitetin e përzgjedhur. Doni ta bëni tani? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Fshehtëzoje Mesazhin (vetvetiu) -encryptMessageNorm=Fshehtëzoje Mesazhin -signMessageAuto=Nënshkruaje Mesazhin (vetvetiu) -signMessageNorm=Nënshkruaje Mesazhin - -encryptOff=Fshehtëzim: JO -encryptOnWithReason=Fshehtëzim: PO (%S) -encryptOffWithReason=Fshehtëzim: JO (%S) -encryptOn=Fshehtëzim: PO -signOn=Nënshkrim: PO -signOff=Nënshkrim: JO -signOnWithReason=Nënshkrim: PO (%S) -signOffWithReason=Nënshkrim: JO (%S) -reasonEnabledByDefault=aktivizuar si parazgjedhje -reasonManuallyForced=i detyruar dorazi -reasonByRecipientRules=i detyruar nga rregulla sipas marrësish -reasonByAutoEncryption=i detyruar nga vetëfshehtëzimi -reasonByConflict=për shkak përplasjeje me rregulla sipas marrësish -reasonByEncryptionMode=për shkak të mënyrës së fshehtëzimit - -# should not be used anymore: -encryptYes=Mesazhi do të fshehtëzohet -encryptNo=Mesazhi s’do të fshehtëzohet - -# should not be used anymore: -signYes=Mesazhi do të nënshkruhet -signNo=Mesazhi s’do të nënshkruhet - - -# PGP/MIME status: -pgpmimeNormal=Protokoll: PGP/MIME -inlinePGPNormal=Protokoll: PGP Brendazi -smimeNormal=Protokoll: S/MIME -pgpmimeAuto=Protokoll: PGP/MIME (vetvetiu) -inlinePGPAuto=Protokoll: PGP Brendazi (vetvetiu) -smimeAuto=Protokoll: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=Do të përdoret PGP/MIME -pgpmimeNo=Do të përdoret PGP brendazi - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Kyçi juaj publik s’do të bashkëngjitet -attachOwnKeyYes=Kyçi juaj publik do të bashkëngjitet -attachOwnKeyDisabled=Kyçi juaj publik s’mund të bashkëngjitet. Që të aktivizohet kjo veçori, duhet të përzgjidhni\nnjë kyç të dhënë te ndarja OpenPGP e Rregullimeve të Llogarisë. - -rulesConflict=U kap përplasje me rregulla sipas-marrësish\n%S\n\nTë dërgohet mesazhi duke përdorur këto rregullime? -msgCompose.button.configure=&Formësojeni -msgCompose.button.send=&Dërgoje Mesazhin -msgCompose.button.save=&Ruaje Mesazhin - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Lypset kyçi publik %S që të verifikohet nënshkrimi -keyUsed=Për verifikimin e nënshkrimit u përdor kyçi publik %S -clickDecrypt=; klikoni mbi butonin Shfshehtëzoje -clickDecryptRetry=; klikoni mbi butonin Shfshehtëzoje që të riprovohet -clickDetailsButton=; për më tepër të dhëna, klikoni mbi butonin 'Hollësi' -clickImportButton=; që ta shkarkoni kyçin klikoni mbi butonin 'Importoje Kyçin' -keyTypeUnsupported=; lloji i kyçit nuk mbulohet nga versioni juaj i GnuPG-së -decryptManually=; klikoni mbi butonin 'Shfshehtëzoje' që të shfshehtëzohet mesazhi -verifyManually=; klikoni mbi butonin 'Verifikoje' që të verifikohet nënshkrimi -headerView.button.verify=Verifikoje -headerView.button.decrypt=Shfshehtëzoje -msgPart=Pjesë e mesazhit %S -msgSigned=i nënshkruar -msgSignedUnkownKey=nënshkruar me kyç të panjohur -msgEncrypted=i fshehtëzuar -msgSignedAndEnc=i nënshkruar dhe i fshehtëzuar - unverifiedSig=Nënshkrim i paverifikuar -incompleteDecrypt=Shfshehtëzim i paplotë -needKey=Gabim - s’u gjet kyçi privat/i fshehtë përkatës për shfshehtëzimin e mesazhit -failedDecrypt=Gabim - shfshehtëzimi dështoi badPhrase=Gabim - frazëkalim i gabuar missingMdcError=Gabim - mungon mbrojtje integriteti ose është e dëmtuar (MDC) -failedDecryptVerify=Gabim - shfshehtëzimi/verifikimi dështoi -viewInfo=; Parje > Të dhëna sigurie mesazhi, për hollësi -brokenExchangeMessage=Mesazh PGP/MIME prej MS-Exchange i dëmtuar. - -decryptedMsg=Mesazhi u shfshehtëzua -decryptedMsgWithFormatError=Mesazhi u shfshehtëzua (u rikthye format email-i PGP i dëmtuar, shkaktuar me gjasa nga një shërbyes i vjetër Exchange, ndaj përfundimi mund të mos jetë përsosmërisht i lexueshëm) - -usedAlgorithms=Algoritme të Përdorur: %S dhe %S -pepStatusInfo.text=Gjendje Mesazhi p≡p. -pepStatusInfo.title.m3=Po Sulmoheni -pepStatusInfo.info.m3=Ky mesazh s’është i sigurt dhe mbi të është vënë dorë. -pepStatusInfo.title.m1=I mosbesuar -pepStatusInfo.info.m1=Ky mesazh ka një partner komunikimi të cilit më parë i është vënë shenjë si i mosbesuar -pepStatusInfo.title.r0=E panjohur -pepStatusInfo.info.r0=Ky mesazh nuk përmban të dhëna të mjaftueshme për të përcaktuar nëse është i sigurt. -pepStatusInfo.title.r1=Nuk Shfshehtëzon Dot -pepStatusInfo.info.r1=Ky mesazh nuk shfshehtëzohet dot, ngaqë kyçi s’është i passhëm. -pepStatusInfo.title.r2=Nuk Shfshehtëzon Dot -pepStatusInfo.info.r2=Ky mesazh nuk shfshehtëzohet dot, ngaqë kyçi s’është i passhëm. -pepStatusInfo.title.r3=I pasigurt -pepStatusInfo.info.r3=Ky mesazh është i pasigurt. -pepStatusInfo.title.r4=I pasigurt për Disa -pepStatusInfo.info.r4=Ky mesazh është i pasigurt për disa partnerë komunikimi. -pepStatusInfo.title.r5=Siguri e Paqëndrueshme -pepStatusInfo.info.r5=Ky mesazh ka mbrojtje të paqëndrueshme. -pepStatusInfo.title.r6=I sigurt… -pepStatusInfo.info.r6=Ky mesazh është i sigurt, por ende ju duhet të verifikoni identitetin e partnerit tuaj në komunikim. -pepStatusInfo.title.r7=I sigurt & I besuar -pepStatusInfo.info.r7=Ky mesazh është i sigurt dhe i besuar. - -pepStatusInfo.color.green=E gjelbër -pepStatusInfo.color.yellow=E verdhë -pepStatusInfo.color.red=E kuqe -pepRevokeTrust.question=Doni vërtet të anuloni besueshmërinë për %S? -pepRevokeMistrust.question=Doni vërtet të ribesoni kyçin për %S? -pepRevokeTrust.doRevoke=Anuloja &besueshmërinë - -wksConfirmationReq=Kërkesë Ripohimi Liste Webkey -wksConfirmationReq.message=Ky mesazh është dërguar nga furnizuesi juaj i shërbimit email, për të ripohuar futjen e kyçeve tuaj publikë OpenPGP\nnë Listën e tyre WebKey.\nDhënia e kyçeve tuaj publikë i ndihmon të tjerët të gjejnë kyçin tuaj dhe të jenë kështu në gjendje të fshehtëzojnë mesazhe për ju.\n\nNëse doni të vendoset tani kyçi juaj te Lista Web Key, ju lutemi, klikoni te shtylla e gjendjeve mbi butonin "Ripohoje Kërkesën".\nNë të kundërt, thjesht shpërfilleni këtë mesazh. -wksConfirmationReq.button.label=Ripohije Kërkesën - -autocryptSetupReq=Kryej Rregullim Autocrypt-i -autocryptSetupReq.button.label=Nise Rregullimin -autocryptSetupReq.setupMsg.desc=Ky mesazh përmban krejt të dhënat për shpërnguljen e sigurt prej pajisjes tuaj origjinale të rregullimeve tuaja për Autocrypt, tok me kyçin tuaj të fshehtë. -autocryptSetupReq.setupMsg.backup=Mund ta mbani këtë mesazh dhe ta përdorni si kopjeruajtje të kyçit tuaj të fshehtë. Nëse doni të bëhet kështu, duhet të shkruani fjalëkalimin diku dhe ta ruani në mënyrë të sigurt. -autocryptSetupReq.message.import=Që të importohen në Enigmail rregullimet dhe kyçi(et), ju lutemi, klikoni te shtylla e gjendjeve mbi butonin "Nise Rregullimin". -autocryptSetupReq.message.sent=Ju lutemi, klikoni mbi mesazhin te pajisja juaj e re dhe ndiqni udhëzimet për importim rregullimesh. -postbox.cannotUseQuickReply.message=Po i përgjigjeni një mesazhi të fshehtëzuar. Ju lutemi, përdorni ikonën "zgjeroje" në cepin e sipërm djathtas të fushës për tekste që ta hapni përgjigjen tuaj në një dritare, dhe dërgojeni mesazhin prej andej. - -# strings in pref-enigmail.js oldGpgVersion20=Gatitja e Enigmail-it dështoi.\n\nPo përdorni GnuPG version %1$S, që nuk mbulohet më. Enigmail-i lyp GnuPG version %2$S ose më të ri. Ju lutemi, përmirësoni instalimin tuaj të GnuPG-së, ose Enigmail-i nuk do të funksionojë. -locateGpg=Lokalizoni programin GnuPG -invalidGpgPath=GnuPG-ja nuk mund të ekzekutohet me shtegun e dhënë. Prandaj Enigmail-i është çaktivizuar, deri sa të ndryshoni sërish shtegun për te GnuPG-ja ose deri sa të rinisni aplikacionin. -warningsAreReset=Krejt sinjalizimet u kthyen te parazgjedhjet. -prefs.gpgFound=GnuPG-ja u gjet te %S -prefs.gpgNotFound=S’u gjet dot GnuPG -prefs.warnAskNever=Kujdes: aktivizimi i kësaj mundësie do të sjellë email-e të pafshehtëzuar, pa dhënë asnjë hollësi tjetër, nëse s’ka kyç për një nga marrësit -- Enigmail s’do t’ju njoftojë, nëse ndodh kjo! -prefs.warnIdleTimeForUnknownAgent=Nuk lidhet dot me gpg-agent. Ndoshta sistemi juaj përdor ndonjë mjet të posaçëm për trajtim frazëkalimesh (p.sh. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Për fat të keq, Enigmail-i s’e kontrollon dot intervalin kohor të vlefshmërisë së frazëkalimit për mjetin që po përdorni. Ndaj rregullimet mbi intervalin kohor përkatës te Enigmail-i nuk janë marrë parasysh. -prefEnigmail.oneKeyserverOnly=Gabim - mund të përcaktoni vetëm një shërbyes kyçesh për shkarkim të vetvetishëm kyçesh OpenPGP që mungojnë. -acSetupMessage.desc=Shpërngulni kyçin tuaj te një tjetër pajisje që mund të përdorë Autocrypt. (Ç’është Autocrypt-i) -aboutLicense.desc=Enigmail-i është me burim të hapur dhe i licencuar sipas Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Ju lutemi, shtypni PIN ADMIN-in e Kartës tuaj të Mençur -enterCardPin=Ju lutemi, shtypni PIN-in e Kartës tuaj të Mençur - -notInit=Gabim - shërbimi Enigmail ende i pagatitur badCommand=Gabim - urdhri i fshehtëzimit dështoi cmdLine=rresht urdhrash dhe output: -notRequired=Gabim - nuk lypset fshehtëzim -notComplete=Gabim - prodhim kyçesh ende i paplotësuar -invalidEmail=Gabim - adresa email të pavlefshme noPassphrase=Gabim - s’u dha frazëkalim noPGPblock=Gabim - s’u gjet bllok i koracuar i vlefshëm të dhënash OpenPGP -unverifiedReply=Ndoshta qe modifikuar pjesë e brendshme mesazhi (përgjigje) -keyInMessageBody=U gjet kyç në lëndën e mesazhit. Klikoni mbi 'Importo Kyç' që të importohet kyçi -sigMismatch=Gabim - Mospërputhje nënshkrimesh -cantImport=Gabim në importim kyçi publik\n\n -doImportOne=Të importohet %1$S (%2$S)? -doImportMultiple=Të importohen kyçet vijues?\n\n%S -previewFailed=S’lexohet dot kartela e kyçit publik. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Karta e Mençur %1$S e gjetur te lexuesi juaj s’mund të përdoret për të përpunuar këtë mesazh.\nJu lutemi, futni Kartën tuaj të Mençur %2$S dhe përsëritni veprimin. sc.insertCard=Veprimi lyp Kartën tuaj të Mençur %S.\nJu lutemi, futni Kartën e Mençur të kërkuar dhe përsëritni veprimin. sc.removeCard=Veprimi nuk lyp pasjen e një Karte të Mençur te lexuesi.\nJu lutemi, hiqeni Kartën tuaj të Mençur dhe përsëritni veprimin. @@ -376,7 +39,6 @@ sc.noReaderAvailable=S’u fut dot te lexuesi juaj i Kartave të Mençura\nJu lutemi, vendosni lexuesin tuaj të Kartave të Mençura, futni kartën tuaj dhe përsëritni veprimin. keyError.keySpecNotFound=Adresës email '%S' s’i gjendet dot një kyç te vargu juaj i kyçeve. keyError.keyIdNotFound=ID-ja e formësuar e kyçit '%S' s’gjendet dot te vargu juaj i kyçeve. -keyError.resolutionAction=Ju lutemi, përzgjidhni një kyç të vlefshëm, te ndarja OpenPGP e Rregullimeve tuaja për Llogarinë. missingPassphrase=Mungon frazëkalim errorHandling.gpgAgentInvalid=Sistemi juaj xhiron një version të gpg-agent që s’është i përshtatshëm për versionin tuaj të GnuPG-së. errorHandling.gpgAgentError=GnuPG-ja njoftoi një gabim te ndërlidhja me gpg-agent (një përbërës i GnuPG-së). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG-ja s’mund të kërkojë për frazëkalimin tuaj me pinentry. errorHandling.pinentryCursesError=Instalimi juaj i GnuPG-së është formësuar të përdorë konsolën për pinentry-n. Por, kur përdoret Enigmail-i, lypset të përdoret një version grafik i pinentry-t. errorHandling.readFaq=Ky është një gabim rregullimi sistemi ose formësimi që e pengon Enigmail-in të funksionojë si duhet dhe s’mund të ndreqet vetvetiu.\n\nKëshillojmë me forcë që të shihni te sajti ynë i asistencës, https://enigmail.net/faq. - gpgNotFound=S’arrihet të lokalizohet programi GnuPG '%S'.\nSigurohuni që e keni caktuar saktë shtegun për te i ekzekutueshmi GnuPG te Parapëlqimet për Enigmail-in. gpgNotInPath=S’arrihet të lokalizohet programi GnuPG te SHTEGU.\nSigurohuni që e keni caktuar saktë shtegun për te i ekzekutueshmi GnuPG te Parapëlqimet për Enigmail-in. enigmailNotAvailable=Shërbimi bazë Enigmail jo gati - -prefGood=Nënshkrim i mirë nga %S -prefBad=Nënshkrim i KEQ nga %S - failCancel=Gabim - Marrja e kyçit u anulua nga përdoruesi failKeyExtract=Gabim - urdhri për përftim kyçi dështoi -failKeyNoSubkey=(Nën)Kyç jo i vlefshëm notFirstBlock=Gabim - Blloku i parë te OpenPGP s’është bllok kyçi publik importKeyConfirm=Të importohet i trupëzuar në mesazh kyçi(kyçet) publik? -failKeyImport=Gabim - importimi i kyçit dështoi fileWriteFailed=Dështoi shkrimi në kartelën %S - importKey=Importoni kyçin publik %S prej shërbyesit të kyçeve: uploadKey=Dërgoje kyçin publik %S te shërbyesi i kyçeve: keyId=ID Kyçi -keyAndSigDate=ID Kyçi: 0x%1$S / Nënshkruar më: %2$S -keyFpr=Shenja gishtash kyçi: %S -noEmailProvided=Nuk dhatë ndonjë adresë email! -keyAlreadySigned=Kyçi është tashmë i nënshkruar, s’mund ta nënshkruani dy herë. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=Skaduar më %S createdHeader=Krijuar më atLeastOneKey=S’u përzgjodh kyç! Duhet të përzgjidhni të paktën një kyç që të pranohet ky dialog fewerKeysThanRecipients=Keni përzgjedhur një numër kyçesh më të vogël se sa numri i marrësve. Jeni i sigurt se lista e kyçeve për fshehtëzim është e plotë? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Përzgjidhni një Kyç të Fshehtë OpenPGP Që të Nënshkruani Mesazhit Tuaj userSel.problemNoKey=Pa kyç të vlefshëm userSel.problemMultipleKeys=Shumë kyçe -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Dërgoje Më Vonë - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=SHËNIM: PGP/MIME nuk mbulohet nga të tërë klientët email. Nëse jeni i pasigurt, përzgjidhni mundësinë %S. first=i pari second=i dyti - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Përzgjidhni Kyç OpenPGP për Fshehtëzim -identityName=Identitet: %S -switchPepMode=Po përdorni mënyrën 'p≡p Junior' të Enigmail-it.\n\nDuke aktivizuar OpenPGP ose S/MIME për një llogari, çaktivizohet p≡p dhe përdoret mënyra 'regular' e Enigmail-it, pa p≡p. -enableEnigmail=&Çaktivizoje p≡p -amPrefAutocrypt.desc=Autocrypt është një standard që përkufizon se si të kryhet fshehtëzim i volitshëm skaj-më-skaj i email-eve. Përcakton se si programet e email-it negociojnë aftësi fshehtëzimi duke përdorur email-e të zakonshëm. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Keni aktivizuar fshehtëzimin, por s’keni përzgjedhur kyç. Që të fshehtëzohen email-et e dërguar për %1$S, lypset të përcaktoni prej listës suaj të kyçeve një ose disa kyçe të vlefshëm. Doni të çaktivizohet fshehtëzimi për %2$S? -noKeyToUse=(asnjë - pa fshehtëzim) -noEmptyRule=Rregulli nuk mund të jetë i zbrazët! Ju lutemi, vendosni një adresë email te fusha Rregull. -invalidAddress=Adresa(t) email që keni dhënë nuk janë të vlefshme. Nuk duhet të caktoni emra marrësish, thjesht adresat email. P.sh.:\nI pavlefshëm: Njëfarë Emri \nI vlefshëm: njëfarë.emri@address.net -noCurlyBrackets=Kllapat gjarpërushe {} kanë një domethënie të veçantë dhe nuk duhen përdorur në adresa email. Nëse doni të ndryshoni mënyrën se si kërkohet për përputhje me këtë rregull, përdorni mundësinë 'Zbatoje rregullin nëse marrësi ...'.\nMë tepër të dhëna gjeni që nga butoni Ndihmë. - -# Strings used in enigmailRulesEditor.js never=Kurrë always=Përherë possible=E mundshme -deleteRule=Të fshihet vërtet rregulli i përzgjedhur? -nextRcpt=(Marrësi pasues) -negateRule=Jo -addKeyToRule=Shtoje kyçin %1$S (%2$S) te rregull sipas-marrësish - -# Strings used in enigmailSearchKey.js -needOnline=Funksioni që keni përzgjedhur nuk mund të kihet nën mënyrën offline. Ju lutemi, lidhuni në internet dhe riprovoni. -noKeyserverConn=S’u lidh dot me shërbyesin e kyçeve te %S. -internalError=Ndodhi një gabim i brendshëm. Kyçet s’u shkarkuan ose importuan dot. -noKeyFound=S’gjetëm dot ndonjë kyç me përputhje me kriterin e dhënë për kërkim. -keyDownload.keyUnavailable=Kyçi me ID %S s’është i passhëm te shërbyesi i kyçeve. Sipas shumicës së gjasave, i zoti i kyçit s’e ka ngarkuar kyçin e tij te shërbyesi i kyçeve.\n\nJu lutemi, kërkojini dërguesit të mesazhit t’ju dërgojë me amil kyçin e tij publik. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Caktimi i besueshmërisë së pronarit dështoi - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Nënshkrimi i kyçit dështoi -alreadySigned.label=Shënim: kyçi %S është tashmë i nënshkruar me kyçin e fshehtë të përzgjedhur. -alreadySignedexportable.label=Shënim: kyçi %S është nënshkruar tashmë si i eksportueshëm me kyçin privat të përzgjedhur. Një nënshkrim vendor s’ka kuptim. -partlySigned.label=Shënim: disa ID përdoruesi për kyçin %S janë nënshkruar tashmë me kyçin e fshehtë të përzgjedhur. -noTrustedOwnKeys=S’u gjet kyç që mund të përdoret për nënshkrime! Që të mund të nënshkruani kyçe, ju duhet të paktën një kyç privat i besuar plotësisht. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Po ngarkohen kyçe, ju lutemi, prisni ... keyValid.unknown=i panjohur keyValid.invalid=i pavlefshëm keyValid.disabled=i çaktivizuar keyValid.revoked=i shfuqizuar keyValid.expired=i skaduar keyValid.noSubkey=pa nënkyç të vlefshëm - +keyValid.valid=i vlefshëm +keyValid.ownKey=kyç i vet keyTrust.untrusted=jo i besuar keyTrust.marginal=me raste keyTrust.full=i besuar keyTrust.ultimate=përfundimisht keyTrust.group=(grup) -keyType.public=publik -keyType.publicAndSec=pub/fshe -keyMan.enableKey=Aktivizoje kyçin -keyMan.disableKey=Çaktivizoje kyçin userAtt.photo=Atribut përdoruesi (figurë JPEG) - -asciiArmorFile=ASCII Armored Files (*.asc) importKeyFile=Importo Kartelë Kyçi OpenPGP -gnupgFile=Kartela GnuPG -saveRevokeCertAs=Krijoni & Ruani Dëshmi Shfuqizimi -revokeCertOK=Dëshmia e shfuqizimeve u krijua me sukses. Mund ta përdorni që të shfuqizoni kyçin tuaj publik, p.sh. në rast se humbni kyçin tuaj të fshehtë. -revokeCertFailed=Dëshmia e shfuqizimit s’u krijua dot. - -addUidOK=ID-ja e përdoruesit u shtua me sukses -addUidFailed=Shtimi i ID-së së Përdoruesit dështoi -noKeySelected=Duhet të përzgjidhni të paktën një kyç, që të mund të përmbushet veprimi i përzgjedhur -exportToFile=Eksportojeni Kyçin Publik Në Kartelë -exportKeypairToFile=Eksporto Kyçin e Fshehtë dhe atë Publik në Kartelë -exportSecretKey=Dëshironi ta përfshini kyçin tuaj të fshehtë te kartela e ruajtur e kyçit OpenPGP? -saveKeysOK=Kyçet u ruajtën me sukses -saveKeysFailed=Ruajtja e kyçeve dështoi -importKeysFailed=Importimi i kyçeve dështoi -enableKeyFailed=Aktivizimi/çaktivizimi i kyçeve dështoi -specificPubKeyFilename=%1$S (0x%2$S) publik -specificPubSecKeyFilename=%S (0x%S) pub-fshe -defaultPubKeyFilename=Kyçe-publikë-të-eksportuar -defaultPubSecKeyFilename=Kyçe-publikë-dhe-të-fshehtë-të-eksportuar - -sendKeysOk=Kyçet u dërguan me sukses -sendKeysFailed=Dërgimi i kyçeve dështoi -receiveKeysOk=Kyçet u përditësuan me sukses -receiveKeysFailed=Shkarkimi i kyçeve dështoi -keyUpload.verifyEmails=Shërbyesi i kyçeve do t’ju dërgojë një email për çdo adresë email të kyçit tuaj të ngarkuar. Që të ripohoni publikimin e kyçit tuaj, do t’ju duhet të klikoni mbi lidhjen në secilin prej email-eve që do të merrni. - -importFromClip=Doni të importoni ndonjë kyç(disa kyçe) nga e papastra? -importFromUrl=Shkarkoje kyçin publik prej kësaj URL-je: -copyToClipbrdFailed=S’u kopjua(n) dot kyçi(et) i(e) përzgjedhur te e papastra. -copyToClipbrdOK=Kyçet u kopjuan te e papastra - +importPubKeysFailed=Kyçet publikë vijues s’u importuan në Thunderbird:\n\n%S +importSecKeysFailed=Kyçet e fshehtë vijues s’u importuan dot në Thunderbird:\n\n%S deleteSecretKey=KUJDES: Ju ndan një hap nga fshirja e një kyçi të fshehtë!\nNëse fshini kyçin tuaj të fshehtë, nuk do të jeni më në gjendje të fshehtëzoni dhe shfshehtëzoni mesazhe të fshehtëzuar për atë kyç, dhe as do të jeni në gjendje ta shfuqizoni.\n\nDoni vërtet t’i fshini QË TË DY, kyçin e fshehtë dhe atë publik\n'%S'? -deleteMix=KUJDES: Ju ndan një hap nga fshirja e kyçeve të fshehtë!\nNëse fshini kyçin tuaj të fshehtë, nuk do të jeni më në gjendje të fshehtëzoni dhe shfshehtëzoni mesazhe të fshehtëzuar për atë kyç.\n\nDoni vërtet t’i fshini QË TË DY, kyçin e fshehtë të përzgjedhur dhe atë publik? -deletePubKey=Doni ta fshini kyçin publik\n'%S'? -deleteSelectedPubKey=Doni t’i fshini kyçet publikë? -deleteKeyFailed=Kyçi s’u fshi dot. revokeKeyQuestion=Ju ndan një hap nga shfuqizimi i kyçit '%S'.\n\nNuk do të jeni më në gjendje të nënshkruani me këtë kyç, dhe pasi të shpërndahet, të tjerët nuk do të jenë më në gjendje të fshehtëzojnë me këtë kyç. Mundeni prapëseprapë ta përdorni kyçin për shfshehtëzimin e mesazhe të vjetër.\n\nDoni të vazhdoni? -revokeKeyOk=Kyçi është shfuqizuar. Nëse kyçi juaj gjendet te një shërbyes kyçesh, këshillohet ta ringarkoni, që të tjerët të mund ta vënë re shfuqizimin. -revokeKeyFailed=Kyçi s’u shfuqizua dot. revokeKeyNotPresent=S’keni kyç (0x%S) që përputhet në këtë dëshmi shfuqizimesh!\n\nNëse keni humbur kyçin tuaj, duhet ta importoni (për shembull, nga një shërbyes kyçesh) përpara importimit të dëshmisë së shfuqizimit! revokeKeyAlreadyRevoked=Kyçi 0x%S është i shfuqizuar tashmë. -refreshAllQuestion=Nuk përzgjodhët ndonjë kyç. Do të donit të rifreskonit KREJT kyçet? -refreshKeyServiceOn.warn=Kujdes: Kyçet tuaj po rifreskohen në prapaskenë, aq pa rrezik sa është e mundur.\nRifreskimi i krejt kyçeve tuaj njëherësh do të zbulojë, pa qenë nevoja, të dhëna rreth jush.\nDoni vërtet ta bëni këtë? -refreshKey.warn=Kujdes: në varësi të numrit të kyçeve dhe shpejtësisë së lidhjes, rifreskimi i krejt kyçeve mund të jetë një proces ca i gjatë! -downloadContactsKeys.warn=Kujdes: në varësi të numrit të kontakteve dhe shpejtësisë së lidhjes, shkarkimi i krejt kyçeve mund të jetë një proces ca i gjatë! -downloadContactsKeys.importFrom=Të importohen kontakte prej librit të adresave '%S'? -keyMan.button.exportSecKey=Eksporto Kyçe të &Fshehtë -keyMan.button.exportPubKey=Eksporto Vetëm Kyçe &Publikë keyMan.button.import=&Importo -keyMan.button.refreshAll=&Rifresko Krejt Kyçet keyMan.button.revokeKey=&Shfuqizoje Kyçin - -keylist.noOtherUids=Nuk ka identitete të tjerë -keylist.hasOtherUids=I njohur edhe si -keylist.noPhotos=S’ka foto -keylist.hasPhotos=Foto - -keyMan.addphoto.filepicker.title=Përzgjidhni foto për shtim -keyMan.addphoto.warnLargeFile=Kartela që keni zgjedhur është më e madhe se sa 25 kB.\nNuk këshillohet të shtoni kartela shumë të mëdha, ngaqë kështu kyçet bëhen shumë të mëdhenj. -keyMan.addphoto.noJpegFile=Kartela e përzgjedhur nuk duket se është kartelë JPEG. Ju lutemi, zgjidhni një tjetër kartelë. -keyMan.addphoto.failed=Fotoja s’u shtua dot. -noWksIdentity=Kyçi %S nuk ka identitet WKS. -wksUpload.noKeySupported=Ngarkimi s’qe i suksesshëm - furnizuesi juaj i shërbimit s’duket se mbulon WKS-në. - -keyman.addBlacklistKey.msg=Doni vërtet të ndalet përdorimi nga p≡p i kyçit "%1$S (%2$S)" për fshehtëzim mesazhesh? -keyman.removeBlacklistKey.msg=Doni të lejohet p≡p të përdorë kyçin '%1$S (%2$S)' për mesazhe të ardhshëm? -keyman.addBlacklistKey.button=Shtojeni kyçin në &listë të zezë -keyman.removeBlacklistKey.button=&Hiqe kyçin nga Lista e zezë - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Ndryshimi i ID-së parësore të Përdoruesit dështoi -changePrimUidOK=ID-ja parësore e përdoruesit u ndryshua me sukses -revokeUidFailed=Shfuqizimi i ID-së së përdoruesit %S dështoi -revokeUidOK=ID-ja e përdoruesit %S u shfuqizuar me sukses. Nëse kyçi juaj gjendet te një shërbyes kyçesh, këshillohet ta ringarkoni, që të tjerët të mund ta vënë re shfuqizimin. -revokeUidQuestion=Doni vërtet të shfuqizoni ID-në e përdoruesit %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUKSES! Kyçet u importuan -importInfoBits=Bit -importInfoCreated=Krijuar më -importInfoFpr=Shenja gishtash -importInfoDetails=(Hollësi) -importInfoNoKeys=S’u importuan kyçe. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=kyç publik -keyTypePrimary=kyç parësor -keyTypeSubkey=nënkyç -keyTypePair=çift kyçesh -keyExpiryNever=kurrë keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Fshehtëzoje -keyUsageSign=Nënshkruaje -keyUsageCertify=Dëshmoje -keyUsageAuthentication=Mirëfilltësim -keyDoesNotExpire=Kyçi nuk skadon - -# Strings in enigmailGenCardKey.xul -keygen.started=Ju lutemi, prisni, ndërkohë që po prodhohet kyçi .... -keygen.completed=Kyçi u Prodhua. ID-ja e kyçit të ri është: 0x%S -keygen.keyBackup=Kyçi u kopjeruajt si %S -keygen.passRequired=Ju lutemi, përcaktoni një frazëkalim, nëse dëshironi të krijoni një kopjeruajtje të kyçit juaj jashtë Kartës suaj të Mençur. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Dështoi në ndryshim PIN-i - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Kyçet po rifreskohen, ju lutemi, prisni ... -keyserverProgress.uploading=Kyçet po ngarkohen, ju lutemi, prisni ... -keyserverProgress.wksUploadFailed=S’u ngarkua dot kyçi juaj te Shërbimi Webkey -keyserverProgress.wksUploadCompleted=Kyçi juaj publik u parashtrua me sukses te furnizuesi juaj i internetit. Do të merrni një email për ripohimin e faktit se ngarkimin e nisët ju. -keyserverTitle.refreshing=Rifreskoni Kyçet -keyserverTitle.uploading=Ngarkim Kyçi -keyserver.result.download.none=S’u shkarkua kyç. -keyserver.result.download.1of1=Kyçi u shkarkua me sukses. -keyserver.result.download.1ofN=U shkarkua me sukses 1 nga %S kyçet. -keyserver.result.download.NofN=U shkarkuan me sukses %1$S nga %2$S kyçe. -keyserver.result.uploadOne=U ngarkua me sukses 1 kyç. -keyserver.result.uploadMany=U ngarkuan me sukses %S kyçe. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Kartela që keni treguar s’është i ekzekutueshëm GnuPG-je. Ju lutemi, përcaktoni një kartelë tjetër. -setupWizard.installFailed=Duket se instalimi s’qe i suksesshëm. Ju lutemi, ose riprovoni instalimin, ose instalojeni GnuPG-në dorazi dhe lokalizojeni duke përdorur butonin Shfletoni. -setupWizard.downloadForbidden=Për hir të sigurisë tuaj, nuk do ta shkarkojmë GnuPG-në. Ju lutemi, që të shkarkoni GnuPG-në, vizitoni https://gnupg.org/. -setupWizard.downloadImpossible=S’shkarkojmë dot GnuPG-në. Ju lutemi, provoni më vonë ose vizitoni https://gnupg.org/ që të mund të shkarkoni GnuPG-në. -setupWizard.hashSumError=Ndihmësi s’verifikoi dot pacenueshmërinë e kartelës së shkarkuar. Kartela mund të jetë e dëmtuar ose e manipuluar. Doni të vazhdohet instalimi, sido që të jetë? -setupWizard.importSettingsFile=Përcaktoni kartelë kopjeruajtjeje prej nga të ngarkohet -setupWizard.invalidSettingsFile=Kartela e treguar s’është kartelë e vlefshme kopjeruajtjeje Rregullimesh Enigmail-i. -setupWizard.gpgConfExists=Kartela e formësimit të GnuPG-së ekziston tashmë. Doni të mbishkruhet me atë prej instalimit tuaj të vjetër? -setupWizard.noGpgHomeDir=Duket se e keni formësuar %S të përdorë GnuPG-në. Por, kjo s’është një drejtori - s’mund ta përdorni. -setupWizard.unmachtedIds=Identitetet vijues të rregullimit tuaj të vjetër nuk u përputhën dot me gjë:\n%S\nRregullimet për këto identitete u anashkaluan. -setupWizard.foundAcSetupMessage=U gjet Mesazh Ujdisjeje Autocrypt-i. Që të niset procedura e ujdisjes së Autocrypt-it, klikoni mbi butonin Nis Ujdisjen më poshtë. -setupWizard.foundAcNoSetupMsg=Kemi përcaktuar se po përdorni një klient email që mund të përdorë Autocrypt-in, por s’gjetëm dot ndonjë Mesazh Ujdisjeje Autocrypt-i. Këshillojmë të krijoni një Mesazh Ujdisjeje Autocrypt-i në pajisjen tuaj ekzistuese dhe mandej të klikoni mbi Riskano Të Marrë. Ndryshe, mund të eksportoni rregullimet dhe kyçet tuaj që nga një instalim ekzistues Enigmail-i, dhe të rimerrni këto rregullimet këtu. -setupWizard.setupComplete=Enigmail-i tani është i formësuar si duhet dhe gati për t’u përdorur. Për të dhëna të mëtejshme mbi përdorimin e Enigmail-it, vizitoni faqen tonë. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Ndodhi një gabim teksa provohej të shkarkohej GnuPG-ja. Ju lutemi, për hollësi të mëtejshme kontrolloni regjistrin e konsolës. -installGnuPG.installFailed=Ndodhi një gabim teksa instalohej GnuPG-ja. Ju lutemi, për hollësi të mëtejshme kontrolloni regjistrin e konsolës. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Duhet të plotësoni një emër dhe një adresë email -addUidDlg.nameMinLengthError=Emri duhet të ketë e pakta 5 shenja -addUidDlg.invalidEmailError=Duhet të jepni një adresë email të vlefshme - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Kartat e mençura OpenPGP mbulojnë vetëm shenja ASCII për Emër/Mbiemër. - - -# network error types +setupWizard.selectKeysButton=Përzgjidhni Kyçe errorType.SecurityCertificate=Dëshmia e sigurisë e paraqitur nga shërbimi web s’është e vlefshme. errorType.SecurityProtocol=Protokolli i sigurisë i përdorur nga shërbimi web është i panjohur. errorType.Network=Ndodhi një gabim rrjeti. - -# filter stuff -filter.folderRequired=Duhet të përzgjidhni një dosje destinacion -filter.decryptMove.label=Shfshehtëzoje përgjithmonë (Enigmail) -filter.decryptCopy.label=Krijo Kopje të shfshehtëzuar (Enigmail) -filter.decryptMove.warnExperimental=Kujdes - veprimi "Sfshehtëzoje përgjithmonë" mund të shpjerë në shkatërrim mesazhesh.\n\nKëshillojmë me forcë që së pari të provoni filtrin "Krijo Kopje të shfshehtëzuar", të provoni me kujdes përfundimin, dhe të filloni ta përdorni këtë filtër vetëm pasi të jeni të kënaqur me përfundimin. -filter.tempPepFilterDesc=Filtër për të depozituar të pafshehtëzuar mesazhe të dërguar -filter.term.pgpencrypted.label=Fshehtëzuar me OpenPGP -filter.encrypt.label=Fshehtëzoje me kyçin (Enigmail) -filter.keyRequired=Duhet të përzgjidhni një kyç marrësi. -filter.keyNotFound=S’u gjet dot kyç fshehtëzimi për '%S'. -filter.warn.keyNotSecret=Kujdes - veprimi "Fshehtëzoje me kyç" zëvendëson marrësit.\n\nNëse s’e keni kyçin e fshehtë për "%S", s’do të jeni më në gjendje të lexoni email-et. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=S’u shfshehtëzua dot mesazhi me subjekt\n'%S'.\nDoni të riprovoni me një tjetër frazëkalim apo doni të anashkalohet mesazhi? -converter.decryptAtt.failed=S’u shfshehtëzua dot bashkëngjitja '%1$S'\ne mesazhit me subjekt\n'%2$S'.\nDoni të riprovoni me një tjetër frazëkalim apo doni të anashkalohet mesazhi? - -saveLogFile.title=Ruaje Kartelën Regjistër - -# strings in gpg.jsm -unknownSigningAlg=Algoritëm i panjohur nënshkrimesh (ID: %S) -unknownHashAlg=Hash kriptografik i panjohur (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=Kyçi %1$S (ID kyçi %2$S) është shfuqizuar. keyRing.pubKeyExpired=Kyçi %1$S (ID kyçi %2$S) ka skaduar. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Kanë skaduar krejt nënkyçet fshehtëzues të kyçit %1$S (ID kyçi %2$S). keyRing.noSecretKey=S’duket se keni kyçin e fshehtë për %1$S (ID kyçi %2$S) te vargu juaj i kyçeve; s’mund ta përdorni kyçin për nënshkrime. keyRing.encSubKeysUnusable=Krejt nënkyçet fshehtëzues të kyçit %1$S (ID kyçi %2$S) janë të shfuqizuar, kanë skaduar ose janë të papërdorshëm. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=S’ruhet dot te kartela file '%S'. Ju lutemi, përzgjidhni një kartelë tjetër. dataExportError=Ndodhi një gabim gjatë eksportimit të të dhënave tuaja. -enigmailSettings=EnigmailSettings -defaultBackupFileName=Enigmail-export -specifyExportFile=Caktoni emër kartele për eksportim -homedirParamNotSUpported=Për eksportimin/rikthimin e rregullimeve tuaja nuk mbulohen parametra shtesë që formësojnë shtigje, të tillë si --homedir dhe --keyring . Ju lutemi, përdorni metoda alternative, të tilla si rregullimi i ndryshores së mjedisit GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Kyçi juaj %1$S do të skadojë në më pak se %2$S ditë.\n\nKëshillojmë që të krijoni një dyshe të re kyçesh dhe të formësoni llogaritë përkatëse për përdorim të saj. expiry.keysExpireSoon=Kyçet tuaj vijues do të skadojnë në më pak se %1$S ditë.\n%2$S. Këshillojmë që të krijoni kyçe të rinj dhe të formësoni llogaritë përkatëse për përdorim të tyre. expiry.keyMissingOwnerTrust=Kyçit tuaj të fshehtë %S i mungon besueshmëria.\n\nKëshillojmë që "Bazoheni në dëshmi" t’i përshoqëroni vlerën "përfundimisht", te vetitë e kyçit. expiry.keysMissingOwnerTrust=Kyçit vijues nga kyçet tuaj të fshehtë i mungon besueshmëria.\n%S.\nKëshillojmë që "Bazoheni në dëshmi" t’i përshoqëroni vlerën "përfundimisht", te vetitë e kyçit. expiry.OpenKeyManager=Hap Administrim Kyçesh Enigmail expiry.OpenKeyProperties=Veti Kyçi të Hapur - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Ky është një mesazh i fshehtëzuar. Për fat të keq, nuk keni kyçin privat për të shfshehtëzuar mesazhin. - -#strings in gpgAgent.jsm gpghomedir.notexists=Drejtoria '%S' që përmban kyçet tuaj OpenPGP nuk ekziston dhe s’mund të krijohet. gpghomedir.notwritable=Drejtoria '%S' që përmban kyçet tuaj OpenPGP s’është e shkrueshme. gpghomedir.notdirectory=Drejtoria '%S' që përmban kyçet tuaj OpenPGP është një kartelë, në vend se një drejtori. gpghomedir.notusable=Ju lutemi, ndreqni lejet mbi drejtorinë ose ndryshoni vendin e drejtorisë tuaj GnuPG "home". Përndryshe GnuPG-ja s’mund të funksionojë si duhet. gpgAgent.noAutostart=Po përdorni GnuPG version %S. Ky version lyp që të nisni paraprakisht gpg-agent, përpara se të nisni Thunderdbird-in, dhe parangarkimin e ndryshores "GPG_AGENT_INFO" të mjedisit.\n\nKëto parakushte nuk janë plotësuar - s’mund të përdorni Enigmail-in, pa zgjidhur këtë çështje. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=S’verifikohen dot Trustwords p≡p për llogarinë tuaj. -pepTrustWords.cannotFindKey=S’gjendet dot kyç për %S. -pepTrustWords.cannotStoreChange=S’u ndryshua dot besueshmëria për %S. -pepTrustWords.generalFailure=S’merren dot trustwords për %S. -pepTrustWords.partnerFingerprint=Shenja gishtash për %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Furnizuesi i shërbimit tuaj email e përpunoi kërkesën tuaj për ngarkim kyçi publik te Lista e Kyçeve Web OpenPGP.\n\nJu lutemi, klikoni butonin e ripohimit te Enigmail-i që të plotësohet publikimi i kyçit tuaj publik. -wkdMessage.body.process=Ky është një email lidhur me përmbushjen automatike të ngarkimit të kyçit tuaj publik te Lista e Kyçeve Web OpenPGP.\n\nNë këtë pikë, s’ju duhet të ndërmerrni ndonjë veprim dorazi. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Ose ju, ose dërguesi duhet ta ridërgojë mesazhin. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Nëse këtë mesazh e hartuar ju, kyçi juaj s’është i passhëm. -pepPrivacyStatus.RatingMistrustSuggestion=Rivendosni lidhjen me partnerin tuaj të komunikimit dhe provoni të plotësoni një tjetër duarshtrëngim. -pepPrivacyStatus.RatingReliableSuggestion=Plotësoni një duarshtrëngim me partnerin tuaj të komunikimit duke shkëmbyer trustwords me atë vetë ose me telefon. Duarshtrëngimi është i nevojshëm vetëm një herë për partner dhe do të garantojë komunikim të sigurt dhe të besueshëm. -pepPrivacyStatus.RatingTrustedSuggestion=S’ka nevojë për veprim! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Kini parasysh që ky mesazh mund të mos jetë i sigurt. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Ju lutemi, shtoni të dhënat e nevojshme. -pepPrivacyStatus.RatingUnderAttackSuggestion=Verifikoni lëndën e këtij mesazhi me partnerin e komunikimit tuaj duke përdorur një tjetër kanal. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Sigurohuni që gjendja e privatësisë për çdo partner komunikimi të pranishëm në listë të jetë të paktën "e sigurt". -pepPrivacyStatus.RatingUnencryptedSuggestion=Ju lutemi, kërkojini partnerit tuaj në komunikim një zgjidhje për fshehtëzim ose instaloni p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Ky mesazh nuk ka fshehtëzim të besueshëm, ose i mungon nënshkrim. Kërkojini partnerit tuaj të komunikimt të përmirësojë metodën e tij për fshehtëzimet, ose të instalojë p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Ky mesazh ka fshehtëzim ose formatim të dëmtuar. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Ky mesazh nuk shfshehtëzohet dot, ngaqë kyçi s’është i passhëm. -pepPrivacyStatus.RatingMistrustExplanation=Ky mesazh ka një partner komunikimi të cilit më parë i është vënë shenjë si i mosbesuar. -pepPrivacyStatus.RatingReliableExplanation=Ky mesazh është i sigurt, por ende ju duhet të verifikoni identitetin e partnerit tuaj në komunikim. -pepPrivacyStatus.RatingTrustedExplanation=Ky mesazh është i sigurt dhe i besuar. -pepPrivacyStatus.RatingUndefinedExplanation=Ky mesazh nuk përmban të dhëna të mjaftueshme për të përcaktuar nëse është i sigurt. -pepPrivacyStatus.RatingUnderAttackExplanation=Ky mesazh s’është i sigurt dhe mbi të është vënë dorë. -pepPrivacyStatus.RatingUnencryptedExplanation=Ky mesazh është i pasigurt. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Ky mesazh është i pasigurt për disa partnerë komunikimi. -pepPrivacyStatus.RatingUnreliableExplanation=Ky mesazh ka mbrojtje të paqëndrueshme. - -pepPrivacyStatus.RatingBrokenText=I dëmtuar -pepPrivacyStatus.RatingHaveNoKeyText=Nuk Shfshehtëzon Dot -pepPrivacyStatus.RatingMistrustText=I mosbesuar -pepPrivacyStatus.RatingReliableText=I sigurt -pepPrivacyStatus.RatingTrustedText=I sigurt & I besuar -pepPrivacyStatus.RatingUndefinedText=E panjohur -pepPrivacyStatus.RatingUnderAttackText=Po Sulmoheni -pepPrivacyStatus.RatingUnencryptedForSomeText=I pasigurt për Disa -pepPrivacyStatus.RatingUnencryptedText=E pasigurt -pepPrivacyStatus.RatingUnreliableText=Sigurie e Paqëndrueshme - -handshakeDlg.button.initHandshake=Duarshtrëngim… -handshakeDlg.button.stopTrust=Resht Së Besuari -handshakeDlg.button.reTrust=Ndale Mosbesimin -handshakeDlg.label.outgoingMessage=Mesazh ikës -handshakeDlg.label.incomingMessage=Mesazh ardhës -handshakeDlg.error.noPeers=S’bëhet dot duarshtrëngim pa ndonjë korrespondent. -handshakeDlg.error.noProtection=Ju lutemi, që të mund të përdorni funksionin "Handshake", aktivizoni mbrojtjen. - -enigmail.acSetupPasswd.descEnterPasswd=Ju lutemi, jepni kodin e rregullimit që shfaqet te pajisja tjetër. -enigmail.acSetupPasswd.descCopyPasswd=Ju lutemi, që të vazhdohet me rregullimin, jepni te pajisja juaj tjetër kodin e rregullimit më poshtë - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Mesazhi Rregullimi Autocrypt-i -autocrypt.setupMsg.msgBody=Që të rregulloni pajisjen tuaj të re për Autocrypt-in, ju lutemi, ndiqni udhëzimet që duhet të shfaqen nga pajisja juaj e re. -autocrypt.setupMsg.fileTxt=Kjo është kartela e ujdisjes së Autocrypt-it e përdorur për të shpërngulur rregullime dhe kyçe mes klientësh. Mund ta shfshehtëzoni duke përdorur kodin e rregullimit të shfaqur te pajisja juaj e vjetër, dhe mandej të importoni kyçin te vargu juaj i kyçeve. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Ç’ka të Re te Enigmail v2.0? -upgradeInfo.welcome1=Mirë se vini te versioni i ri i 2.0 i Enigmail-it! -upgradeInfo.welcome2=Hedhja në qarkullim përmban plot veçori të reja dhe të përmirësuara. Ju lutemi, ndaluni një minutë të shihni ç’ka të re: -upgradeInfo.encSubject.title=Fshehtëzim Subjekti Mesazhi -upgradeInfo.encSubject.desc=Krijuam një metodë të re që e kalon subjektin e email-it te mesazhi i fshehtëzuar, dhe zëvendëson subjektin e dukshëm me "Mesazh i Fshehtëzuar". Pasi një mesazh i tillë të jetë shfshehtëzuar, subjekti origjinal zëvendësohet vetvetiu. Si parazgjedhje, fshehja e subjektit është aktive; ka një parapëlqim për ta çaktivizuar, nëse s’ju pëlqen. (Shënim: kjo veçori lyp që mesazhi të dërgohet me PGP/MIME.) -upgradeInfo.buttons.title=Është ndryshuar sjellja e butonave Fshehtëzo dhe Nënshkruaj -upgradeInfo.buttons.desc=Butonat Fshehtëzoje dhe Nënshkruajete dritarja e hartimit të mesazheve tani funksionojnë si me protokollin OpenPGP, ashtu me atë S/MIME. Nëse janë të mundshëm që të dy algoritmet, atëherë Enigmail-i do të parapëlqejë atë për të cilin janë gati krejt kyçet. -upgradeInfo.autocrypt.title=Mbulim për Autocrypt-in -upgradeInfo.autocrypt.desc=Enigmail-i tani mbulon Autocrypt, 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ë p≡p 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 dokumentimin tonë. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=Ka të gatshëm një version të ri të mekanizmit të fshehtëzimeve Enigmail/p≡p. Doni të shkarkohet dhe instalohet përditësimi? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Lamtumirë nga Enigmail-i +upgradeInfo.welcome1=Fshehtëzimi OpenPGP tani është pjesë e Thunderbird-it +upgradeInfo.welcome2=Enigmail-i s’është më i domosdoshëm në Thunderbird, dhe është bërë gjë e të kaluarës - ky është versioni përfundimtar i Enigmail-it për Thunderbird. +upgradeInfo.migrateSettings.title=Migroni kyçet dhe rregullimet tuaj prej GnuPG-së në Thunderbird +upgradeInfo.migrateSettings.desc=Çfarë mbetet, para se të çinstaloni Enigmail-in, është të importoni kyçet tuaj nga GnuPG në Thunderbird, dhe të migroni dosa rregullime të rëndësishme nga Enigmail-i në Thunderbird. Kemi përgatitur një ndihmës që i kryen këto hapa për ju. +upgradeInfo.performMigration.buttonLabel=Fillo Migrimin Tani +upgradeInfo.thankyou.title=Faleminderit që përdorët Enigmail-in +upgradeInfo.thankyou.desc1=Marrja me Enigmail-in për gati dy dhjetëvjeçarë ka qenë një kënaqësi. Na kënaq fakti që mundëm të japim ndihmesë në idenë e email-eve të fshehtëzuar. Shpresojmë që Enigmail-i t’ju jetë dukur i dobishëm dhe do të donim t’ju falënderonim për përkrahjen e vazhdueshme gjatë kaq shumë vitesh. +upgradeInfo.thankyou.desc2=Nëse doni të ndihmoni, shihni mundësinë e dhurimit për Thunderbird-in. aboutEnigmail.tabName=Mbi Enigmail-in aboutEnigmail.title=Mbulimi i OpenPGP furnizohet nga Enigmail aboutEnigmail.team=Enigmail zhvillohet nga Ekipi i Enigmail-it: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licencë & Asistencë aboutEnigmail.license=OpenPGP-ja e Enigmail-it është me burim të hapët dhe e licencuar sipas %S aboutEnigmail.support=Asistencë dhe shkarkime gjeni te www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=Përditësim GnuPG -updateGnuPG.title=Përditësime për GnuPG -updateGnuPG.introduction.desc=Që të përmbushë funksionet e veta kriptografike, Enigmail-i lyp GnuPG-në. Këshillojmë ta mbani të përditësuar instalimin tuaj të GnuPG-së. -updateGnuPG.updateRequired=Ka të gatshëm një version më të ri të of GnuPG-së. Këshillojmë me forcë ta mbani të përditësuar instalimin tuaj të GnuPG-së. Ju lutemi, klikoni mbi butonin Instalo Përditësim që të shkarkohet dhe instalohet përditësimi. -updateGnuPG.noUpdateRequired=GnuPG-ja është e përditësuar. -updateGnuPG.cannotUpdate.header=Enigmail-i mbulon vetëm përditësim të paketave vijuese: -updateGnuPG.cannotUpdate.footer=Duket se përdorni ndonjë variant tjetër të GnuGP-së; ndaj, mjerisht, s’është e mundur që Enigmail-i të përditësojë instalimin tuaj të GnuGP-së. -updateGnuPG.installUpdate=Instalo Përditësimin -updateGnuPG.noMoreUpdates=Mos kontrollo për përditësime të ardhshme updateGnuPG.checkUpdate=Kontrollo për Përditësime të GnuPG-së - - -#strings in keyserver.jsm -keyserver.error.aborted=U ndërpre -keyserver.error.unknown=Ndodhi një gabim i panjohur. -keyserver.error.serverError=Shërbyesi i kyçeve njoftoi një gabim. -keyserver.error.importError=S’u arrit të importohej kyçi i shkarkuar. -keyserver.error.unavailable=Shërbyesi i kyçeve s’është në funksionim. -keyserver.error.securityError=Shërbyesi i kyçeve nuk mbulon hyrje të fshehtëzuara në të. -keyserver.error.certificateError=Dëshmia e shërbyesit të kyçeve s’është e vlefshme. -keyserver.error.unsupported=Shërbyesi i kyçeve s’mbulohet nga Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Pjesa e fshehtëzuar e mesazhit -mimeDecrypt.encryptedPart.concealedData=Kjo është një pjesë e fshehtëzuar e mesazhit. Lypset ta hapni në një dritare veçmas, përmes klikimit mbi bashkëngjitjen. - -#strings in gnupg-key.jsm import.secretKeyImportError=Ndodhi një gabim në GnuP, teksa importoheshin kyçet e fshehtë. Importimi s’qe i suksesshëm. - -#strings in importSettings.js -importSettings.errorNoFile=Kartela që treguat s’është kartelë e rregullt! -importSettings.cancelWhileInProgress=Rimarrja është në punë e sipër. Doni vërtet të ndërpritet procesi? -importSettings.button.abortImport=&Ndërprite procesin +passphrasePrompt=Ju lutemi, jepni frazëkalimin për kyçin vijues: %S +openpgpInitError=Ndodhi një gabim gjatë gatitjes së infrastrukturës OpenPGP në Thunderbird.\n\nNdihmësi i migrimit s’mund të vazhdojë më tej, nëse OpenPGP në Thunderbird s’është nisur si duhet. diff -Nru enigmail-2.1.6+ds1/lang/sq/help/compose.html enigmail-2.2.4/lang/sq/help/compose.html --- enigmail-2.1.6+ds1/lang/sq/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/editRcptRule.html enigmail-2.2.4/lang/sq/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/sq/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit Per-Recipient Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set Enigmail Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/help.html enigmail-2.2.4/lang/sq/help/help.html --- enigmail-2.1.6+ds1/lang/sq/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

Enigmail Help

-

Using Enigmail when reading messages

-
    -
  • Decrypt button in main Mail window
    - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
  • -
  • Pen and Key icons in Message Header display
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
  • -
  • Opening encrypted attachments / importing attached OpenPGP keys
    - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
  • -
-
-

Further help is available on the Enigmail Help web page
-If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

-

Enigmail is open source and licensed under the Mozilla Public License 2.0

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/initError.html enigmail-2.2.4/lang/sq/help/initError.html --- enigmail-2.1.6+ds1/lang/sq/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing Enigmail

- -

There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

- -
Enigmime failed to initialize
- -
-

- Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/messenger.html enigmail-2.2.4/lang/sq/help/messenger.html --- enigmail-2.1.6+ds1/lang/sq/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Enigmail Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/rulesEditor.html enigmail-2.2.4/lang/sq/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/sq/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/sq/help/sendingPrefs.html enigmail-2.2.4/lang/sq/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/sq/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sq/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/sv/am-enigprefs.properties enigmail-2.2.4/lang/sv/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/sv/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Säkerhet +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/sv/enigmail.dtd enigmail-2.2.4/lang/sv/enigmail.dtd --- enigmail-2.1.6+ds1/lang/sv/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' för att ange e-postadresser"> - - -' för att ange e-postadresser för GnuPG. Inaktivera om mottagarna har gamla Hushmailnycklar."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP Säkerhet)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OBS: Nyckelgenerering kan ta upp till flera minuter att slutföra. Avsluta inte programmet när nyckelgenerering pågår. Aktivt surfa eller disk-intensiva operationer under nyckelgenerering kommer att fylla på 'slumpvärdespoolen' och påskynda processen. Du kommer att bli varnad när nyckelgenerering är klar."> - @@ -296,496 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' är ogiltig"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -OBS: Nyckelgenerering kan ta upp till flera minuter att slutföra. Avsluta inte programmet när nyckelgenerering pågår. Du kommer bli varnad när nyckelgenerering är klart."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/sv/enigmail.properties enigmail-2.2.4/lang/sv/enigmail.properties --- enigmail-2.1.6+ds1/lang/sv/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,382 +1,44 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail Varning enigConfirm=Enigmail Bekräftelse enigInfo=Enigmail Information -enigError=Enigmail Fel enigPrompt=Enigmail Prompt - -dlgYes=&Ja dlgNo=&Nej dlgKeepSetting=Kom ihåg mitt svar och fråga mig inte igen dlgNoPrompt=Visa inte den här dialogrutan igen -dlg.button.delete=&Ta bort dlg.button.cancel=&Avbryt dlg.button.close=&Stäng dlg.button.continue=&Fortsätt -dlg.button.skip=&Hoppa över -dlg.button.overwrite=Skri&v över -dlg.button.view=&Visa -dlg.button.retry=&Försök igen -dlg.button.ignore=&Ignorera -dlg.button.install=&Installera dlg.button.ok=&OK - repeatPrefix=\n\nDetta meddelande kommer att upprepas %S repeatSuffixSingular=gång till. repeatSuffixPlural=gånger till. noRepeat=\n\nDenna varning kommer inte att upprepas förrän du uppgraderar Enigmail. - -pgpNotSupported=Du verkar använda Enigmail tillsammans med PGP 6.x\n\nTyvärr har PGP 6.x ett antal problem som hindrar Enigmail från att fungera korrekt. Därför stöder Enigmail inte längre PGP 6.x; byt till GnuPG (GPG) istället.\n\nOm du behöver hjälp med att byta till GnuPG, kontrollera avsnittet hjälp på Enigmail's hemsida. -initErr.howToFixIt=För att kunna använda Enigmail krävs GnuPG. Om du inte har installerat GnuPG ännu, är det enklaste genom att använda knappen för 'Installationsguiden' nedan. -initErr.setupWizard.button=&Installationsguide passphraseCleared=Lösenfrasen har raderats. cannotClearPassphrase=Du använder ett icke-standardverktyg (såsom gnome-keyring) för lösenordshantering. Att rensa lösenord är därför inte möjligt inifrån Enigmail. -noPhotoAvailable=Ingen bild tillgänglig -debugLog.title=Enigmail Felsökningslogg -error.photoPathNotReadable=Bildsökvägen '%S' är inte läsbar - -generalError=Fel: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Denna nya version av Enigmail har betydande förändringar i hanteringen av inställningar och alternativ. Vi försökte överföra de gamla inställningarna till den nya versionen. Men vi kan inte täcka alla fall automatiskt. Dubbelkolla nya inställningar och alternativ. -enigmailCommon.checkPreferences=Kontrollera inställingar ... -preferences.defaultToPgpMime=Vi har ändrat standardkodning för meddelanden i Enigmail från Inline-PGP till PGP/MIME. Vi rekommenderar dig att hålla detta som standard.\n\nOm du fortfarande vill använda Inline-PGP som standard, kan du göra det i kontoinställningar under OpenPGP-säkerhet. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Kör Enigmail version %S -enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Använder %1$S körbara %2$S för att kryptera och dekryptera agentError=FEL: Det gick inte att komma åt tjänsten Enigmime! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Fel vid åtkomst till tjänsten Enigmail -onlyGPG=Nyckelgenerering fungerar endast med GnuPG (inte med PGP)! - -keygenComplete=Nyckelgenerering klar! Identitet <%S> kommer att användas för signering. -revokeCertRecommended=Vi rekommenderar starkt att skapa ett återkallningscertifikat för din nyckel. Detta certifikat kan användas för att ogiltigförklara din nyckel, t.ex. om din privata nyckel försvinner eller äventyras. Vill du skapa ett sådant återkallningscertifikat nu? -keyMan.button.generateCert=&Skapa certifikat -genCompleteNoSign=Nyckelgenerering klar! -genGoing=Nyckelgenerering pågår redan! - -passNoMatch=Lösenfraserna matchar inte; försök igen -passCheckBox=Markera kryssrutan om du inte anger lösenfras för nyckel -passUserName=Ange användarnamn för denna identitet -keygen.missingUserName=Det finns inget namn angett för det valda kontot/identiten. Ange ett värde i fältet "Ditt namn" i kontoinställningarna. -keygen.passCharProblem=Du använder specialtecken i din lösenfras. Tyvärr kan detta orsaka problem för andra applikationer. Vi rekommenderar att du väljer en lösenfras som endast består av något av dessa tecken: \na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=På grund av tekniska skäl, kan din lösenordsfras inte börja eller sluta med ett blanksteg. -changePassFailed=Att ändra lösenfrasen misslyckades. - -keyConfirm=Skapa publik och privat nyckel för '%S'? -keyMan.button.generateKey=&Skapa nyckel -keyAbort=Avbryta nyckelgenerering? -keyMan.button.generateKeyAbort=&Avbryt nyckelgenerering -keyMan.button.generateKeyContinue=&Fortsätt nyckelgenerering -expiryTooLong=Du kan inte skapa en nyckel som löper i mer än 100 år. -expiryTooLongShorter=Du kan inte skapa en nyckel som löper i mer än 90 år. -expiryTooShort=Din nyckel måste vara giltigt i minst ett dygn. -keyGenFailed=Nyckelgenerationen misslyckades. Kontrollera Enigmail-konsolen (Meny Enigmail > Felsökningsinställnigar) för detaljer. -setKeyExpirationDateFailed=Förfallodatumet kan inte ändras - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail Säkerhetsinfo\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Bilagor till detta meddelande har inte signerats eller krypterats*\r\n\r\n -possiblyPgpMime=Möjligen PGP/MIME krypterat eller signerat meddelande; klicka på knappen Dekryptera för att bekräfta - -saveAttachmentHeader=Enigmail: Sparar dekrypterad bilaga -noTempDir=Det gick inte att hitta en temporär katalog att skriva till\nVar god ange miljövariabeln TEMP -attachmentPgpKey=Bilagan '%S' som du öppnar verkar vara en OpenPGP nyckelfil.\n\nKlicka på 'Importera' för att importera nycklar som finns eller 'Visa' för att visa filens innehåll i ett webbläsarfönster - -beginPgpPart=********* *STARTAR KRYPTERAD eller SIGNERAD DEL* ********* -endPgpPart=********** *AVSLUTAR KRYPTERAD eller SIGNERAD DEL* ********** -notePartEncrypted=Enigmail: *Delar av meddelandet har INTE signerats eller krypterats* -noteCutMessage=Enigmail: *Flera meddelandeblock hittades -- dekryptering/verifiering avbruten* - -decryptOkNoSig=Varning\n\nDekrypteringen lyckades, men signaturen kunde inte verifieras korrekt -msgOvl.button.contAnyway=&Fortsätt ändå -signature.verifiedOK=Signaturen för bilagan %S har verifierats -signature.verifyFailed=Signaturen för bilagan %S kunde inte verifieras -attachment.noMatchToSignature=Det gick inte att matcha bilaga '%S' till en signaturfil -attachment.noMatchFromSignature=Det gick inte att matcha signaturfil '%S' till en bilaga -fixBrokenExchangeMsg.failed=Misslyckades att reparera meddelande. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Importera nyckel -wksNoIdentity=Den här nyckeln är inte länkad till någon av dina e-postkonton. Lägg till ett konto för minst en av följande e-postadress(er):\n\n%S -wksConfirmSuccess=Bekräftelsemejl skickat. -wksConfirmFailure=Sändning av bekräftelsemejl misslyckades. -autocrypt.importSetupKey.accountPreconfigured=Ditt konto är redan korrekt konfigurerat för Autocrypt.\n\nVill du verkligen skriva över dina inställningar med detta konfigurationsmeddelande? -autocrypt.importSetupKey.selfCreated=Detta meddelande skapades av din aktuella körning av Enigmail.\n\nVänligen växla till den e-postklient som du vill överföra inställningarna till och klicka på meddelandet på den e-postklienten för att importera inställningarna. -autocrypt.importSetupKey.invalidMessage=Fel - kunde inte läsa konfigurationsmeddelandet. Meddelandet verkar vara skadat. Försök skapa ett nytt konfigurationsmeddelande på din "andra" enhet. -autocrypt.importSetupKey.invalidKey=Fel - nyckeln kunde inte importeras. Nyckeln stöds inte heller av din version av GnuPG eller den skadades. -autocrypt.importSetupKey.wrongPasswd=Lösenordet du skrev in är fel. Vill du försöka igen? -autocrypt.importSetupKey.success=Autocrypt konfigurationsmeddelande bearbetades framgångsrikt. Autocrypt är nu tillgängligt för ditt konto '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Välj OpenPGP nycklar att infoga keysToUse=Välj OpenPGP-nycklar som ska användas för %S pubKey=Offentlig nyckel för %S\n - -windowLocked=Skrivfönstret är låst; skicka avbryts -sendUnencrypted=Det gick inte att initiera Enigmail.\nSkicka okrypterat meddelande? -composeSpecifyEmail=Vänligen ange din primära e-postadress, som kommer att användas för att välja signeringsnyckel för utgående meddelanden.\n Om du lämnar det tomt, kommer FRÅN adress i meddelandet att användas för att välja signeringsnyckel. -sendingHiddenRcpt=Detta meddelande har BCC (hemlig kopia) mottagare. Om meddelandet är krypterat, är det möjligt att dölja BCC mottagare, men användare av vissa produkter (t.ex. PGP Corp) kommer inte att kunna dekryptera meddelandet. Mot bakgrund av detta rekommenderar vi att undvika BCC-e-post med krypterade meddelanden. -sendWithHiddenBcc=Dölj BCC mottagare -sendWithShownBcc=Kryptera normalt -sendingNews=Krypterad sändning avbröts.\n\nDetta meddelande kan inte krypteras eftersom det finns diskussionsgrupper i mottagare. Vänligen skicka meddelandet igen utan kryptering. -sendToNewsWarning=Varning: du är på väg att skicka ett krypterat e-postmeddelande till en diskussionsgrupp.\n\nDetta motverkas eftersom det bara är meningsfullt om alla medlemmar i gruppen kan dekryptera meddelandet, dvs meddelandet måste krypterat med nycklarna till alla gruppdeltagare. Vänligen skicka detta meddelande endast om du vet exakt vad du gör.\n\nVill du fortsätta? -hasHTML=HTML e-postvarning:\nDetta meddelande kan innehålla HTML, vilket kan orsaka att signering/kryptering misslyckas. För att undvika detta i framtiden, bör du trycka på SHIFT tangenten när du klickar på Skriv/Svara knappen för att skicka signerad e-post.\nOm du signerar e-post som standard, bör du avmarkera 'Skriva meddelanden i HTML' i inställningsrutan för att permanent inaktivera HTML e-post för detta e-postkonto. -strippingHTML=Meddelandet innehåller HTML formateringsinformation som går förlorad vid konvertering till oformaterad text för signering/kryptering. Vill du fortsätta? -msgCompose.button.sendAnyway=&Skicka meddelande ändå -attachWarning=Bilagor till detta meddelande är inte lokala, de kan inte krypteras. För att kryptera bilagor, lagra dem som lokala filer först och bifoga dessa filer. Vill du skicka meddelandet ändå? -quotedPrintableWarn=Du har aktiverat 'quoted-printable' kodning för att skicka meddelanden. Detta kan leda till felaktig dekryptering och/eller verifiering av ditt meddelande.\nVill du stänga av skicka 'quoted-printable' meddelanden nu? -minimalLineWrapping=Du har ställt radbrytning till %S tecken. För korrekt kryptering och/eller signering, måste detta värde vara minst 68.\nVill du ändra radbrytning till 68 tecken nu? +quotedPrintableWarn=Du har aktiverat "quoted-printable" kodning för att skicka meddelanden. Detta kan leda till felaktig dekryptering och/eller verifiering av ditt meddelande.\nVill du stänga av skicka "quoted-printable" meddelanden nu? warning=Varning -signIconClicked=Du har manuellt ändrat signering. Därför, medan du skriver det här meddelandet, (av)aktivera signering beror inte längre på att (av)aktivera kryptering. -errorOwnKeyUnusable=Nyckeln-ID '%S' konfigurerad för den aktuella identiteten ger inte en användbar OpenPGP-nyckel.\n\nSe till att du har en giltig, ej upphörd OpenPGP-nyckel och att dina kontoinställningar pekar på den nyckeln.\nOm din nyckel inte upphört, kontrollera om du ställde in Ägarförtroende till "betrodd" eller "ultimat". -msgCompose.cannotSaveDraft=Fel vid sparande av utkast -msgCompose.partiallyEncrypted.short=Akta dig för att läcka känslig information - delvis krypterad e-post. -msgCompose.partiallyEncrypted.inlinePGP=Meddelandet du svarar på innehöll både okrypterade och krypterade delar. Om avsändaren inte kunde avkoda vissa meddelandedelar ursprungligen kan du läcka konfidentiell information om att avsändaren inte kunde avkryptera sig själva.\n\nTänk på att ta bort all citerad text från ditt svar till den här avsändaren. - -msgCompose.internalEncryptionError=Internt fel: utlovad kryptering inaktiverad -msgCompose.internalError=Ett internt fel har inträffat. - -msgCompose.toolbarTxt.signAndEncrypt=Detta meddelande kommer att signeras och krypteras -msgCompose.toolbarTxt.signOnly=Detta meddelande kommer att signeras -msgCompose.toolbarTxt.encryptOnly=Detta meddelande kommer krypteras -msgCompose.toolbarTxt.noEncryption=Detta meddelande kommer att vara osignerat och okrypterat -msgCompose.toolbarTxt.disabled=Enigmail är inaktiverad för den valda identiteten -msgCompose.protectSubject.tooltip=Skydda meddelandets ämnesrad -msgCompose.noSubjectProtection.tooltip=Skydda inte meddelandets ämnesrad -msgCompose.protectSubject.dialogTitle=Aktivera skydd av ämne? -msgCompose.protectSubject.question=Normalt krypterade mejl innehåller det oskyddade ämnet.\nVi har fastställt en standard för att dölja det ursprungliga ämnet i det krypterade meddelandet\noch ersatt det med en dummytext, så att ämnet bara är synligt efter att e-posten dekrypterats.\n\nVill du skydda ämnet i krypterade meddelanden? -msgCompose.protectSubject.yesButton=&Skydda ämne -msgCompose.protectSubject.noButton=&Låt ämnet vara oskyddat - -msgCompose.detailsButton.label=Detaljer ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Okänd -msgCompose.pepSendUnsecure=Osäker -msgCompose.pepSendSecure=Säker -msgCompose.pepSendTrusted=Säker & betrodd - -pep.alert.disabledForIdentity=p≡p är inaktiverad för den aktuella identiteten. Vänligen aktivera p≡p via Enigmail/p≡p inställningarna. -pep.alert.weakReply=Du håller på att vidarebefordra eller svara på ett säkert meddelande, men det meddelande du skickar kommer att vara osäkert. Om du väljer att fortsätta kan konfidentiell information läcka och sätta dig och din kommunikationspartner i fara. Är du säker på att du vill fortsätta? - - -# note: should end with double newline: -sendAborted=Skicka avbryts.\n\n - -# details: -keyNotTrusted=Inte tillräckligt med förtroende för nyckel '%S' -keyNotFound=Nyckel '%S' hittades inte -keyRevoked=Nyckel '%S' har återkallats -keyExpired=Nyckel '%S' har upphört - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=SIGNERAD -statEncrypted=KRYPTERAD -statPlain=OSIGNERAD och OKRYPTERAD - -offlineSave=Spara %1$S meddelande till %2$S i Utkorgen? - -onlineSend=Skicka %1$S meddelande till %2$S? -encryptKeysNote=Obs! Meddelandet är krypterat för följande användar-ID / nycklar: %S -hiddenKey= - -signFailed=Fel i Enigmail: kryptering/signering misslyckades. Skicka meddelandet okrypterat? -msgCompose.button.sendUnencrypted=&Skicka meddelande okrypterat -recipientsSelectionHdr=Välj mottagare för kryptering - -configureNow=Du har ännu inte konfigurerat Enigmail säkerhet för den valda identiteten. Vill du göra det nu? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Kryptera meddelande (auto) -encryptMessageNorm=Kryptera meddelande -signMessageAuto=Signera meddelande (auto) -signMessageNorm=Signera meddelande - -encryptOff=Kryptering: AV -encryptOnWithReason=Kryptering: PÅ (%S) -encryptOffWithReason=Kryptering: AV (%S) -encryptOn=Kryptering: PÅ -signOn=Signering: PÅ -signOff=Signering: AV -signOnWithReason=Signering: PÅ (%S) -signOffWithReason=Signering: AV (%S) -reasonEnabledByDefault=aktiverad som standard -reasonManuallyForced=tvinga manuellt -reasonByRecipientRules=tvingad av per-mottagare regler -reasonByAutoEncryption=tvingad av auto-kryptering -reasonByConflict=på grund av konflikt i per-mottagare regler -reasonByEncryptionMode=på grund av krypteringsläge - -# should not be used anymore: -encryptYes=Meddelandet kommer att krypteras -encryptNo=Meddelandet kommer inte att krypteras - -# should not be used anymore: -signYes=Meddelandet kommer att signeras -signNo=Meddelandet kommer inte att signeras - - -# PGP/MIME status: -pgpmimeNormal=Protokoll: PGP/MIME -inlinePGPNormal=Protokoll: Inline PGP -smimeNormal=Protokoll: S/MIME -pgpmimeAuto=Protokoll: PGP/MIME (auto) -inlinePGPAuto=Protokoll: Inline PGP (auto) -smimeAuto=Protokoll: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME kommer att användas -pgpmimeNo=Inline PGP kommer att användas - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Din egna offentliga nyckel kommer inte att bifogas -attachOwnKeyYes=Din egna offentliga nyckel kommer att bifogas -attachOwnKeyDisabled=Din egna offentliga nyckel kan inte bifogas. Du måste välja en specifik nyckel\ni avsnittet OpenPGP i kontoinställningarna för att aktivera den här funktionen. - -rulesConflict=Motstridiga per-mottagare regler upptäckta\n%S\n\nSkicka meddelandet med dessa inställningar? -msgCompose.button.configure=&Konfigurera -msgCompose.button.send=&Skicka meddelande -msgCompose.button.save=&Spara meddelande - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Offentlig nyckel %S behövs för att verifiera signatur -keyUsed=Offentlig nyckel %S används för att verifiera signatur -clickDecrypt=; klicka på knappen Dekryptera -clickDecryptRetry=; klicka på knappen Dekryptera för att försöka igen -clickDetailsButton=; klicka på 'Detaljer' för med information -clickImportButton=; klicka på knappen 'Importera nyckel' för att hämta nyckel -keyTypeUnsupported=; nyckeltypen stöds inte av din version av GnuPG -decryptManually=; klicka på knappen "Dekryptera" för att dekryptera meddelandet -verifyManually=; klicka på knappen "Verifiera" för att verifiera signaturen -headerView.button.verify=Verifiera -headerView.button.decrypt=Dekryptera -msgPart=En del av meddelandet %S -msgSigned=signerad -msgSignedUnkownKey=signerad med okänd nyckel -msgEncrypted=krypterat -msgSignedAndEnc=signerat och krypterat - +keyNotTrusted=Inte tillräckligt med förtroende för nyckel "%S" unverifiedSig=Ej verifierad signatur -incompleteDecrypt=Dekryptering ofullständig -needKey=Fel - privat nyckel krävs för att dekryptera meddelandet -failedDecrypt=Fel - dekryptering misslyckades badPhrase=Fel - dålig lösenfras missingMdcError=Fel - saknas eller trasigt integritetsskydd (MDC) -failedDecryptVerify=Fel - dekryptering/verifiering misslyckades -viewInfo=; Visa > Meddelande säkerhetsinformation för detaljer -brokenExchangeMessage=Trasigt PGP/MIME-meddelande från MS-Exchange. - -decryptedMsg=Dekrypterat meddelande -decryptedMsgWithFormatError=Dekrypterade meddelandet (återställd bruten PGP e-postformat sannolikt orsakad av en gammal Exchange-server, så resultatet kanske inte är perfekt för att läsa) - -usedAlgorithms=Använda algoritmer: %1$S and %2$S -pepStatusInfo.text=p≡p Meddelandestatus. -pepStatusInfo.title.m3=Under attack -pepStatusInfo.info.m3=Det här meddelandet är inte säkert och kan ha manipulerats. -pepStatusInfo.title.m1=Misstrodd -pepStatusInfo.info.m1=Detta meddelande har en kommunikationspartner som tidigare har markerats som misstrodd -pepStatusInfo.title.r0=Okänd -pepStatusInfo.info.r0=Det här meddelandet innehåller inte tillräckligt med information för att avgöra om det är säkert. -pepStatusInfo.title.r1=Kan inte dekryptera -pepStatusInfo.info.r1=Det här meddelandet kan inte dekrypteras eftersom nyckeln inte är tillgänglig. -pepStatusInfo.title.r2=Kan inte dekryptera -pepStatusInfo.info.r2=Det här meddelandet kan inte dekrypteras eftersom nyckeln inte är tillgänglig. -pepStatusInfo.title.r3=Osäker -pepStatusInfo.info.r3=Detta meddelande är osäkert. -pepStatusInfo.title.r4=Osäker för vissa -pepStatusInfo.info.r4=Det här meddelandet är osäkert för vissa kommunikationspartner. -pepStatusInfo.title.r5=Otillförlitlig säkerhet -pepStatusInfo.info.r5=Detta meddelande har opålitligt skydd. -pepStatusInfo.title.r6=Säker... -pepStatusInfo.info.r6=Det här meddelandet är säkert men du måste fortfarande verifiera identiteten hos din kommunikationspartner. -pepStatusInfo.title.r7=Säker & betrodd -pepStatusInfo.info.r7=Detta meddelande är säkert och betrott. - -pepStatusInfo.color.green=Grön -pepStatusInfo.color.yellow=Gul -pepStatusInfo.color.red=Röd -pepRevokeTrust.question=Vill du verkligen avbryta förtroendet för %S? -pepRevokeMistrust.question=Vill du verkligen åter lita på nyckeln för %S? -pepRevokeTrust.doRevoke=Avbryt &förtroende - -wksConfirmationReq=Bekräftelsebegäran av Webkey-katalog -wksConfirmationReq.message=Detta meddelande har skickats av din e-postleverantör för att bekräfta utplaceringen av din offentliga OpenPGP-nyckel\ni deras Webkey-katalog.\nAtt tillhandahålla din offentliga nyckel hjälper andra att upptäcka din nyckel och därmed kunna kryptera meddelanden till dig.\n\nOm du vill distribuera din nyckel i Webkey-katalogen nu, klicka på knappen "Bekräfta begäran" i statusfältet.\nAnnars ignorerar du bara det här meddelandet. -wksConfirmationReq.button.label=Bekräfta begäran - -autocryptSetupReq=Utför Autocrypt konfiguration -autocryptSetupReq.button.label=Starta konfiguration -autocryptSetupReq.setupMsg.desc=Detta meddelande innehåller all information för att överföra dina Autocrypt-inställningar tillsammans med din hemliga nyckel säkert från din ursprungliga enhet. -autocryptSetupReq.setupMsg.backup=Du kan behålla det här meddelandet och använda det som en säkerhetskopia för din hemliga nyckel. Om du vill göra det ska du skriva ner lösenordet och lagra det säkert. -autocryptSetupReq.message.import=För att importera inställningarna och nycklarna i Enigmail, klicka på knappen "Starta konfiguration" i statusfältet. -autocryptSetupReq.message.sent=Klicka på meddelandet på din nya enhet och följ anvisningarna för att importera inställningarna. -postbox.cannotUseQuickReply.message=Du svarar på ett krypterat meddelande. Använd ikonen "expandera" längst upp till höger i textrutan för att öppna ditt svar i ett fönster och skicka meddelandet därifrån. - -# strings in pref-enigmail.js oldGpgVersion20=Initialisering av Enigmail misslyckades.\n\nDu använder GnuPG version %1$S, som inte längre stöds. Enigmail kräver GnuPG version %2$S eller nyare. Uppgradera din installation av GnuPG eller Enigmail kommer inte att fungera. -locateGpg=Hitta GnuPG program -invalidGpgPath=GnuPG kan inte köras med den angivna sökvägen. Enigmail inaktiveras därför tills du ändrar sökvägen till GnuPG igen eller tills du startar om programmet. -warningsAreReset=Alla varningar har återställts. -prefs.gpgFound=GnuPG hittades i %S -prefs.gpgNotFound=Det gick inte att hitta GnuPG -prefs.warnAskNever=Varning: aktivera det här alternativet kommer att resultera i okrypterade e-post utan någon ytterligare information om det inte finns nyckel för en av mottagarna -- Enigmail kommer inte att informera dig om detta händer! -prefs.warnIdleTimeForUnknownAgent=Ditt system använder ett specialiserat verktyg för hantering av lösenfraser, såsom gnome-keyring eller seahorse-agent. Tyvärr kan inte Enigmail styra lösenfrasens timeout för det verktyg du använder. Därför bortses respektive timeoutinställning i Enigmail. -prefEnigmail.oneKeyserverOnly=Fel - du kan bara ange en nyckelserver för automatisk nedladdning av saknade OpenPGP nycklar. -acSetupMessage.desc=Överför din nyckel till en annan Autocrypt-aktiverad enhet. (Vad är Autocrypt) -aboutLicense.desc=Enigmail har öppen källkod och är licensierad under Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Skriv in ditt ADMIN PIN för SmartCard -enterCardPin=Vänligen skriv ditt SmartCard PIN - -notInit=Fel - Enigmail tjänsten ännu inte initierad badCommand=Fel - krypteringskommandot misslyckades cmdLine=kommandorad och utmatning: -notRequired=Fel - ingen kryptering krävs -notComplete=Fel - nyckelgenerering ännu inte slutförd -invalidEmail=Fel - ogiltig e-postadress noPassphrase=Fel - ingen uppgift om lösenfras noPGPblock=Fel - Inget giltigt skyddat OpenPGP datablock finns -unverifiedReply=Indragen meddelandedel (svar) troligen ändrats -keyInMessageBody=En nyckel hittades i meddelandet. Klicka på 'Importera nyckel' för att importera nyckeln -sigMismatch=Fel - Signaturen matchar inte -cantImport=Fel vid import av den offentliga nyckeln\n\n -doImportOne=Importera %1$S (%2$S)? -doImportMultiple=Importera följande nycklar?\n\n%S -previewFailed=Kan inte läsa den offentliga nyckelfilen. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=SmartCard %S finns i din läsare kan inte användas för att behandla meddelandet.\nSätt in ditt SmartCard %S och upprepa operationen. sc.insertCard=Operationen kräver ditt SmartCard %S.\nSätt in ditt SmartCard och upprepa operationen. sc.removeCard=Operationen kräver inget SmartCard i läsaren.\nTa bort ditt SmartCard och upprepa operationen. sc.noCardAvailable=Inget SmartCard kunde hittas i din läsare.\nSätt in ditt SmartCard och upprepa operationen. sc.noReaderAvailable=Ingen åtkomst till din SmartCard-läsare.\nKoppla in din SmartCard-läsare, sätt in ditt kort, och upprepa operationen. -keyError.keySpecNotFound=E-postadressen '%S' kan inte matchas med en nyckel på din nyckelring. -keyError.keyIdNotFound=Det konfigurerade nyckel-ID '%S' kan inte hittas på din nyckelring. -keyError.resolutionAction=Välj en giltig nyckel i OpenPGP-delen av dina kontoinställningar. +keyError.keySpecNotFound=E-postadressen "%S" kan inte matchas med en nyckel på din nyckelring. +keyError.keyIdNotFound=Det konfigurerade nyckel-ID "%S" kan inte hittas på din nyckelring. missingPassphrase=Lösenord saknas errorHandling.gpgAgentInvalid=Systemet kör en version av gpg-agent som inte är lämplig för din GnuPG-version. errorHandling.gpgAgentError=GnuPG rapporterade ett fel i kommunikationen med gpg-agent (en komponent i GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG kan inte fråga efter ditt lösenord via pinentry. errorHandling.pinentryCursesError=Din GnuPG-installation är konfigurerad för att använda konsolen för pinentry. Men när du använder Enigmail behöver du en grafisk version av pinentry. errorHandling.readFaq=Detta är ett systeminställnings eller konfigurationsfel som hindrar Enigmail från att fungera ordentligt och kan inte fixas automatiskt.\n\nVi rekommenderar starkt att du tittat på vår supportwebbplats på https://enigmail.net/faq. - -gpgNotFound=Kan inte hitta GnuPG programmet '%S'.\nSe till att du har ställt in GnuPG körbara sökväg korrekt i Enigmail inställningar. +gpgNotFound=Kan inte hitta GnuPG programmet "%S".\nSe till att du har ställt in GnuPG körbara sökväg korrekt i Enigmail-inställningarna. gpgNotInPath=Kan inte hitta programmet GnuPG i PATH.\nSe till att du har ställt in GnuPG körbara sökväg korrekt i Enigmail inställningar. enigmailNotAvailable=Enigmails kärntjänst är inte tillgänglig - -prefGood=Bra signatur från %S -prefBad=Dålig signatur från %S - failCancel=Fel - Mottagande av nyckel avbröts av användaren failKeyExtract=Fel - nyckel-extraktionskommando misslyckades -failKeyNoSubkey=Ingen giltig (under-)nyckel notFirstBlock=Fel - Första OpenPGP blocket inte offentlig nyckelblock importKeyConfirm=Importera offentlig nyckel inbäddad i meddelandet? -failKeyImport=Fel - nyckelimport misslyckades fileWriteFailed=Det gick inte att skriva till filen %S - importKey=Importera offentlig nyckel %S från nyckelserver: uploadKey=Skicka offentlig nyckel %S till nyckelserver: keyId=Nyckel-ID -keyAndSigDate=Nyckel-ID: 0x%1$S / Signerad: %2$S -keyFpr=Nyckelns fingeravtryck: %S -noEmailProvided=Du angav ingen e-postadress! -keyAlreadySigned=Nyckeln är redan signerad, det går inte att signera den två gånger. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=upphört %S createdHeader=Skapad atLeastOneKey=Ingen nyckel vald! Du måste välja minst en nyckel för att acceptera den här dialogrutan fewerKeysThanRecipients=Du har valt ett mindre antal nycklar än mottagare. Är du säker på att listan över nycklar för att kryptera är klar? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Välj en privat OpenPGP-nyckel för att signera dina meddelanden userSel.problemNoKey=Ingen giltig nyckel userSel.problemMultipleKeys=Flera nycklar -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Skicka senare - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=OBS! PGP/MIME stöds inte av alla e-postklienter. Om du är osäker, välj alternativet %S. first=första second=andra - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Välj OpenPGP-nyckel för kryptering -identityName=Identitet: %S -switchPepMode=Du använder för närvarande 'p≡p Junior'-läge av Enigmail.\n\nGenom att aktivera OpenPGP eller S/MIME för ett konto, inaktiverar du p≡p och använder 'normal'-läget för Enigmail utan p≡p. -enableEnigmail=I&naktivera p≡p -amPrefAutocrypt.desc=Autocrypt är en standard som definierar hur man uppnår lämplig end-to-end-kryptering av e-post. Det specificerar hur e-postprogram förhandlar om krypteringsfunktioner med vanliga e-postmeddelanden. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Du har aktiverat kryptering, men du har inte valt någon nyckel. För att kunna kryptera e-post som skickas till %1$S, måste du ange en eller flera giltiga nycklar från din nyckellista. Vill du inaktivera kryptering för %2$S? -noKeyToUse=(ingen - ingen kryptering) -noEmptyRule=Regeln får inte vara tom! Vänligen ange en e-postadress i regelfältet. -invalidAddress=Den e-postadress som du har angett är inte giltig. Du ska inte ange namnen hos mottagarna, bara e-postadresserna. T.ex.:\nOgiltig: Vissa namn \nGiltig: vissa.namn@adress.net -noCurlyBrackets=Klamrarna {} har en särskild betydelse och bör inte användas i en e-postadress. Om du vill ändra matchningsbeteendet för denna regel, använd alternativet "Tillämpa regel om mottagare ...".\nMer information finns i hjälpen. - -# Strings used in enigmailRulesEditor.js never=Aldrig always=Alltid possible=Möjlig -deleteRule=Vill du verkligen ta bort den valda regeln? -nextRcpt=(Nästa mottagare) -negateRule=Inte -addKeyToRule=Lägg till nyckel %1$S (%2$S) till per-mottagare regel - -# Strings used in enigmailSearchKey.js -needOnline=Funktionen du valt är inte tillgänglig offline. Vänligen gå online och försök igen. -noKeyserverConn=Det gick inte att ansluta till nyckelserver på %S. -internalError=Ett internt fel uppstod. Nycklarna kan inte laddas ner eller importeras. -noKeyFound=Vi kunde inte hitta någon nyckel som matchade de angivna sökkriterierna. -keyDownload.keyUnavailable=Nyckeln med ID %S är inte tillgänglig på nyckelservern. Troligtvis har ägaren av nyckeln inte ladda upp sin nyckel till nyckelservern.\n\nBe avsändaren av meddelandet att skicka dig sin offentliga nyckel via e-post. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Ställa in ägarförtroende misslyckades - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Nyckelsignering misslyckades -alreadySigned.label=OBS: nyckeln %S är redan signerad med den valda privata nyckeln. -alreadySignedexportable.label=Obs: nyckel %S är redan signerad exporterbar med den valda privata nyckeln. En lokal signatur verkar inte vettigt. -partlySigned.label=Obs: vissa användar-ID för nyckel %S är redan signerade med den valda hemliga nyckeln. -noTrustedOwnKeys=Ingen berättigade nyckel hittades för signering! Du behöver åtminstone en helt pålitliga privat nyckel för att signera nycklar. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Laddar nycklar, vänta ... keyValid.unknown=okänd keyValid.invalid=ogiltig keyValid.disabled=inaktiverad keyValid.revoked=återkallad keyValid.expired=upphörd keyValid.noSubkey=ingen giltig undernyckel - -keyTrust.untrusted=ej betrodd +keyValid.valid=giltig +keyValid.ownKey=egen nyckel +keyTrust.untrusted=inte betrodd keyTrust.marginal=marginell keyTrust.full=betrodd keyTrust.ultimate=ultimat keyTrust.group=(grupp) -keyType.public=pub -keyType.publicAndSec=pub/priv -keyMan.enableKey=Aktivera nyckel -keyMan.disableKey=Inaktivera nyckel userAtt.photo=Användarattribut (JPEG bild) - -asciiArmorFile=ASCII skyddade filer (*.asc) importKeyFile=Importera OpenPGP nyckelfil -gnupgFile=GnuPG filer -saveRevokeCertAs=Skapa och spara återkallningscertifikat -revokeCertOK=Återkallningscertifikatet har skapats. Du kan använda den för att upphäva din offentliga nyckel, t.ex. om du skulle förlora din hemliga nyckel. -revokeCertFailed=Återkallningscertifikatet kunde inte skapas. - -addUidOK=Användar-ID har lagts till -addUidFailed=Lägga till användar-ID misslyckades -noKeySelected=Du bör välja minst en nyckel för att utföra vald åtgärd -exportToFile=Exportera offentlig nyckel till fil -exportKeypairToFile=Exportera privat och offentlig nyckel till fil -exportSecretKey=Vill du inkludera den privata nyckeln i den sparade OpenPGP nyckelfilen? -saveKeysOK=Nycklarna har sparats -saveKeysFailed=Spara nycklarna misslyckades -importKeysFailed=Importera nycklarna misslyckades -enableKeyFailed=Aktivering/inaktivering av nycklarna misslyckades -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-priv -defaultPubKeyFilename=Exporterade-offentliga-nycklar -defaultPubSecKeyFilename=Exporterade-offentliga-och-privata-nycklar - -sendKeysOk=Nyckel skickad -sendKeysFailed=Skicka nycklar misslyckades -receiveKeysOk=Nyckel uppdaterad -receiveKeysFailed=Nedladdningen av nycklar misslyckades -keyUpload.verifyEmails=Nyckelservern skickar dig ett mejl för varje e-postadress till din uppladdade nyckel. För att bekräfta att du publicerar din nyckel måste du klicka på länken i varje e-postmeddelande som du får. - -importFromClip=Vill du importera någon nyckel från urklipp? -importFromUrl=Hämta offentlig nyckel från denna URL: -copyToClipbrdFailed=Det gick inte att kopiera den valda nyckeln till urklipp. -copyToClipbrdOK=Nyckel kopierad till urklipp - -deleteSecretKey=VARNING: Du är på väg att ta bort en privat nyckel!\nOm du tar bort din privata nyckel kommer du inte längre att kunna dekryptera meddelanden krypterade för den nyckeln, och du kommer inte heller att kunna återkalla den.\n\nVill du verkligen ta bort BÅDE, den privata nyckeln och den offentliga nyckeln\n'%S'? -deleteMix=VARNING: Du är på väg att ta bort privata nycklar!\nOm du tar bort din privata nyckel, kommer du inte längre att kunna dekryptera några meddelanden med den nyckeln.\n\nVill du verkligen ta bort BÅDA, den valda privata och offentliga nyckeln? -deletePubKey=Vill du ta bort den offentliga nyckeln\n'%S'? -deleteSelectedPubKey=Vill du ta bort de offentliga nycklarna? -deleteKeyFailed=Nyckeln kan inte tas bort. -revokeKeyQuestion=Du håller på att spärra nyckel '%S'. \n \nDu kommer inte längre att kunna signera med denna nyckel och när den har distribuerats, kan andra inte längre kryptera med den nyckeln. Du kan fortfarande använda nyckeln för att dekryptera gamla meddelanden. \n \nVill du fortsätta? -revokeKeyOk=Nyckeln har återkallats. Om din nyckel finns tillgänglig på en nyckelserver, rekommenderas att ladda upp den på nytt, så att andra kan se återkallelsen. -revokeKeyFailed=Nyckeln kan inte återkallas. +importPubKeysFailed=Följande publika nycklar kunde inte importeras i Thunderbird:\n\n%S +importSecKeysFailed=Följande hemliga nycklar kunde inte importeras i Thunderbird:\n\n%S +deleteSecretKey=VARNING: Du är på väg att ta bort en privat nyckel!\nOm du tar bort din privata nyckel kommer du inte längre att kunna dekryptera meddelanden krypterade för den nyckeln, och du kommer inte heller att kunna återkalla den.\n\nVill du verkligen ta bort BÅDE, den privata nyckeln och den publika nyckeln\n"%S"? +revokeKeyQuestion=Du håller på att spärra nyckel "%S". \n \nDu kommer inte längre att kunna signera med denna nyckel och när den har distribuerats, kan andra inte längre kryptera med den nyckeln. Du kan fortfarande använda nyckeln för att dekryptera gamla meddelanden. \n \nVill du fortsätta? revokeKeyNotPresent=Du har ingen nyckel (0x%S) som matchar detta återkallningscertifikat!\n\nOm du har tappat bort din nyckel måste du importera den (t.ex. från en nyckelserver) innan du importerar återkallningscertifikatet! revokeKeyAlreadyRevoked=Nyckeln 0x%S har redan återkallats. -refreshAllQuestion=Du har inte valt någon nyckel. Vill du uppdatera ALLA nycklar? -refreshKeyServiceOn.warn=Varning: Dina nycklar uppdateras för närvarande i bakgrunden så säkert som möjligt.\nUppdatering av alla dina nycklar på en gång kan avslöja information om dig.\nVill du verkligen göra det här? -refreshKey.warn=Varning: beroende på antal nycklar och anslutningshastighet, uppdateringen av alla nycklar kan ta en ganska lång tid! -downloadContactsKeys.warn=Varning: Beroende på antalet kontakter och anslutningshastighet, kan hämtning av alla nycklar vara en ganska lång process! -downloadContactsKeys.importFrom=Importera kontakter från adressboken '%S'? -keyMan.button.exportSecKey=Exportera &privata nycklar -keyMan.button.exportPubKey=Exportera endast &offentliga nycklar keyMan.button.import=&Importera -keyMan.button.refreshAll=&Uppdatera alla nycklar keyMan.button.revokeKey=&Återkalla nyckel - -keylist.noOtherUids=Har inga andra identiteter -keylist.hasOtherUids=Även känd som -keylist.noPhotos=Ingen bild tillgänglig -keylist.hasPhotos=Bilder - -keyMan.addphoto.filepicker.title=Välj foto att lägga till -keyMan.addphoto.warnLargeFile=Filen du valt är större än 25 kB.\nDet rekommenderas inte att lägga till stora filer eftersom det orsakar större nycklar. -keyMan.addphoto.noJpegFile=Den valda filen verkar inte vara en JPEG-fil. Välj en annan fil. -keyMan.addphoto.failed=Fotot kan inte läggas till. -noWksIdentity=Nyckeln %S har ingen WKS-identitet. -wksUpload.noKeySupported=Uppladdningen lyckades inte - din leverantör tycks inte stödja WKS. - -keyman.addBlacklistKey.msg=Vill du verkligen att p≡p ska sluta använda nyckeln '%1$S (%2$S)' för kryptering av meddelanden? -keyman.removeBlacklistKey.msg=Vill du tillåta p≡p att använda nyckeln '%1$S (%2$S)' för framtida meddelanden? -keyman.addBlacklistKey.button=&Svartlista nyckel -keyman.removeBlacklistKey.button=&Ta bort nyckel från svartlista - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Ändra den primära användar-ID misslyckades -changePrimUidOK=Ändra den primära användar-ID lyckades -revokeUidFailed=Återkalla användar-ID %S misslyckades -revokeUidOK=Användar-ID %S återkallat. Om din nyckel finns tillgänglig på någon nyckelserver, rekommenderas det att ladda upp den på nytt, så att andra kan se återkallelsen. -revokeUidQuestion=Vill du verkligen återkalla användar-ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=Succé! Nycklar importerade -importInfoBits=Bitar -importInfoCreated=Skapad -importInfoFpr=Fingeravtryck -importInfoDetails=(Detaljer) -importInfoNoKeys=Inga nycklar importerade. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=offentlig nyckel -keyTypePrimary=primär nyckel -keyTypeSubkey=undernyckel -keyTypePair=nyckelpar -keyExpiryNever=aldrig keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Kryptera -keyUsageSign=Signera -keyUsageCertify=Certifiera -keyUsageAuthentication=Autentisering -keyDoesNotExpire=Nyckel upphör inte - -# Strings in enigmailGenCardKey.xul -keygen.started=Vänta medan nyckeln genereras .... -keygen.completed=Nyckel skapad. Nytt nyckel-ID är: 0x%S -keygen.keyBackup=Nyckel säkerhetskopieras som %S -keygen.passRequired=Ange en lösenfras om du vill skapa en säkerhetskopia av din nyckel utanför ditt SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Det gick inte att ändra PIN-kod - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Uppdaterar nycklar, vänta ... -keyserverProgress.uploading=Laddar upp nycklar, vänta ... -keyserverProgress.wksUploadFailed=Det gick inte att ladda upp din nyckel till Webkey-tjänsten -keyserverProgress.wksUploadCompleted=Din offentliga nyckel har skickats till din leverantör. Du kommer att få ett mejl för att bekräfta att du startade uppladdningen. -keyserverTitle.refreshing=Uppdatera nycklar -keyserverTitle.uploading=Nyckeluppladdning -keyserver.result.download.none=Ingen nyckel hämtad. -keyserver.result.download.1of1=Nyckel hämtad. -keyserver.result.download.1ofN=Hämtade 1 av %S nycklar. -keyserver.result.download.NofN=Hämtade %1$S av %2$S nycklar. -keyserver.result.uploadOne=1 nyckel uppladdad. -keyserver.result.uploadMany=%S nycklar uppladdade. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Filen du angav är inte en körbar GnuPG. Ange en annan fil. -setupWizard.installFailed=Det verkar som om installationen misslyckades. Antingen göra om installationen, eller installera GnuPG manuellt och lokalisera den med hjälp av knappen Bläddra. -setupWizard.downloadForbidden=För din egen säkerhet laddar vi inte ner GnuPG. Besök https://gnupg.org/ för att ladda ner GnuPG. -setupWizard.downloadImpossible=Vi kan inte ladda ner GnuPG just nu. Vänligen försök senare eller besök https://gnupg.org/ för att ladda ner GnuPG. -setupWizard.hashSumError=Guiden kunde inte verifiera integriteten för den nedladdade filen. Filen kan vara trasig eller manipulerad. Vill du fortsätta installationen ändå? -setupWizard.importSettingsFile=Ange säkerhetskopieringsfil att läsa från -setupWizard.invalidSettingsFile=Den angivna filen är inte en säkerhetskopieringsfil för Enigmail inställningar. -setupWizard.gpgConfExists=Konfigurationsfil för GnuPG finns redan. Vill du skriva över den med den från din gamla installation? -setupWizard.noGpgHomeDir=Det verkar som om du konfigurerat %S som ska användas med GnuPG. Det här är dock inte en katalog - du kan inte använda den. -setupWizard.unmachtedIds=Följande identiteter från din gamla inställning kunde inte matchas:\n%S\nInställningarna för dessa identiteter hoppades över. -setupWizard.foundAcSetupMessage=Hittade Autocrypt konfigurationsmeddelande. För att initiera Autocrypt installationsprocedur, klicka på knappen Starta konfiguration nedan. -setupWizard.foundAcNoSetupMsg=Vi bestämde oss för att du använder enAutocrypt-kompatibel e-postklient, men vi kunde inte hitta någon Autocrypt konfigurationsmeddelande. Vi rekommenderar att du skapar ett Autocrypt-konfigurationsmeddelande på din befintliga enhet och sedan på klickar på Sök i inkorgen igen. Alternativt kan du exportera dina inställningar och nycklar från en befintlig Enigmail-installation och återställa dessa inställningar här. -setupWizard.setupComplete=Enigmail är nu korrekt konfigurerad och redo att användas. För mer information om hur du använder Enigmail, besök vår hemsida. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Ett fel inträffade vid försök att hämta GnuPG. Kontrollera konsolloggen för mer detaljer. -installGnuPG.installFailed=Ett fel inträffade under installationen av GnuPG. Vänligen kontrollera konsolloggen för mer detaljer. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Du måste fylla i ett namn och en e-postadress -addUidDlg.nameMinLengthError=Namnet måste minst ha 5 tecken -addUidDlg.invalidEmailError=Du måste ange en giltig e-postadress - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP Smartcards stöder bara ASCII-tecken i Förnamn/Namn. - - -# network error types +setupWizard.selectKeysButton=Välj nycklar errorType.SecurityCertificate=Säkerhetscertifikatet som presenteras av webbtjänsten är inte giltig. errorType.SecurityProtocol=Säkerhetsprotokollet som används av webbtjänsten är okänd. errorType.Network=Ett nätverksfel har inträffat. - -# filter stuff -filter.folderRequired=Du måste välja en målmapp. -filter.decryptMove.label=Dekryptera alltid (Enigmail) -filter.decryptCopy.label=Skapa dekrypterad kopia (Enigmail) -filter.decryptMove.warnExperimental=Varning - filteråtgärd 'Dekryptera alltid' kan leda till förstörda meddelanden . \n \nVi rekommenderar starkt att du först prövar filtret "Skapa dekrypterad kopia", testa resultatet noga och börja endast använda det här filtret när du är nöjd med resultatet. -filter.tempPepFilterDesc=Tillfälligt filter för att lagra skickat meddelande okrypterat -filter.term.pgpencrypted.label=OpenPGP Krypterad -filter.encrypt.label=Kryptera till nyckel (Enigmail) -filter.keyRequired=Du måste välja en mottagarnyckel. -filter.keyNotFound=Det gick inte att hitta en krypteringsnyckel för '%S'. -filter.warn.keyNotSecret=Varning - filteråtgärden "Kryptera till nyckel" ersätter mottagarna.\n\nOm du inte har den privata nyckeln för '%S' kan du inte längre läsa e-postmeddelandena. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Kunde inte dekryptera meddelande med ämne\n'%S'.\nVill du försöka igen med en annan lösenfras eller vill du hoppa över meddelandet? -converter.decryptAtt.failed=Det gick inte att dekryptera bilagan '%1$S'\ni meddelandet med ämne\n'%2$S'.\nVill du försöka igen med en annan lösenfras eller vill du hoppa över meddelandet? - -saveLogFile.title=Spara loggfil - -# strings in gpg.jsm -unknownSigningAlg=Okänd signeringsalgoritm (ID: %S) -unknownHashAlg=Okänt kryptografiskt hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Foto keyRing.pubKeyRevoked=Nyckel %1$S (nyckel-ID %2$S) är återkallad. keyRing.pubKeyExpired=Nyckel %1$S (nyckel-ID %2$S) har upphört. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Alla undernycklar för kryptering av nyckel %1$S (nyckel-ID %2$S) har upphört. keyRing.noSecretKey=Du verkar inte ha den hemliga nyckeln för %1$S (nyckel-ID %2$S) på din nyckelring; du kan inte använda nyckeln för signering. keyRing.encSubKeysUnusable=Alla undernycklar för kryptering av nyckel %1$S (nyckel-ID %2$S) är återkallade, har upphört eller på annat sätt oanvändbara. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Kan inte spara till fil '%S'. Välj en annan fil. dataExportError=Ett fel inträffade under exporten av dina data. -enigmailSettings=Enigmail Inställningar -defaultBackupFileName=Enigmail-exportera -specifyExportFile=Ange filnamnet för export -homedirParamNotSUpported=Ytterligare parametrar som konfigurerar sökvägar som --homedir och --keyring stöds inte för export/återställning av dina inställningar. Använd alternativa metoder som att ställa in miljövariabeln GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Din nyckel %1$S upphör om mindre än %2$S dagar.\n\nVi rekommenderar att du skapar ett nytt nyckelpar och konfigurerar motsvarande konton för att använda det. expiry.keysExpireSoon=Följande nycklar upphör att gälla om mindre än %1$S dagar:\n%2$S. Vi rekommenderar att du skapar nya nycklar och konfigurerar motsvarande konton för att använda dem. expiry.keyMissingOwnerTrust=Din privata nyckel %S saknar förtroende.\n\nVi rekommenderar att du anger "Du litar på certifiering" till "ultimat" i nyckelegenskaper. expiry.keysMissingOwnerTrust=Följande av dina privata nycklar saknar förtroende.\n%S.\nVi rekommenderar att du anger "Du litar på certifiering" till "ultimat" i nyckelegenskaper. expiry.OpenKeyManager=Öppna Enigmail nyckelhantering expiry.OpenKeyProperties=Öppna nyckelegenskaper - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=Detta är ett krypterat meddelande. Tyvärr har du inte den privata nyckeln för att dekryptera meddelandet. - -#strings in gpgAgent.jsm -gpghomedir.notexists=Katalogen '%S' som innehåller dina OpenPGP-nycklar finns inte och kan inte skapas. -gpghomedir.notwritable=Katalogen '%S' som innehåller dina OpenPGP-nycklar är inte skrivbar. -gpghomedir.notdirectory=Katalogen '%S' som innehåller dina OpenPGP-nycklar är en fil istället för en katalog. +gpghomedir.notexists=Katalogen "%S" som innehåller dina OpenPGP-nycklar finns inte och kan inte skapas. +gpghomedir.notwritable=Katalogen "%S" som innehåller dina OpenPGP-nycklar är inte skrivbar. +gpghomedir.notdirectory=Katalogen "%S" som innehåller dina OpenPGP-nycklar är en fil istället för en katalog. gpghomedir.notusable=Korrigera katalogbehörigheterna eller ändra platsen för din GnuPG "hem"-katalog. GnuPG kan inte fungera korrekt annars. gpgAgent.noAutostart=Du använder GnuPG-version %S. Den här versionen kräver att du startar gpg-agent innan Thunderdbird startas och att miljövariabeln "GPG_AGENT_INFO" är förladdad.\n\nDessa förutsättningar är inte uppfyllda. Du kan inte använda Enigmail tills du löser problemet. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Kan inte verifiera p≡p Förtroendeord för eget konto. -pepTrustWords.cannotFindKey=Kan inte hitta nyckel för %S. -pepTrustWords.cannotStoreChange=Kunde inte ändra förtroende för %S. -pepTrustWords.generalFailure=Kan inte hämta förtroendeord för %S. -pepTrustWords.partnerFingerprint=Fingeravtryck för %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Din e-postleverantör behandlade din förfrågan om att ladda upp din offentliga nyckel till OpenPGP Webkey-katalog.\n\nVänligen klicka på bekräftelseknappen i Enigmail-headern för att slutföra publiceringen av din offentliga nyckel. -wkdMessage.body.process=Det här är ett e-mejl relaterat till den automatiska behandlingen för att ladda upp din offentliga nyckel till OpenPGP Webkey-katalog.\n\nDu behöver inte vidta några manuella åtgärder vid denna tidpunkt. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Antingen ska du eller avsändaren skicka meddelandet igen. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=Om du skriver det här meddelandet är din nyckel inte tillgänglig. -pepPrivacyStatus.RatingMistrustSuggestion=Upprepa anslutningen med din kommunikationspartner och försök att slutföra en annan handskakning. -pepPrivacyStatus.RatingReliableSuggestion=Slutför en handskakning med din kommunikationspartner genom att byta förtroendeord personligen eller via telefon. En handskakning behövs endast en gång per partner och säkerställer säker och betrodd kommunikation. -pepPrivacyStatus.RatingTrustedSuggestion=Ingen åtgärd krävs! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Var medveten om att det här meddelandet kanske inte är säkert. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Vänligen lägg till nödvändig information. -pepPrivacyStatus.RatingUnderAttackSuggestion=Verifiera innehållet i det här meddelandet med din kommunikationspartner med en annan metod. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Se till att integritetsstatusen för varje kommunikationspartner som anges är åtminstone "säker". -pepPrivacyStatus.RatingUnencryptedSuggestion=Fråga din kommunikationspartner om att använda en krypteringslösning eller installera p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=Det här meddelandet har ingen tillförlitlig kryptering eller saknar en signatur. Be din kommunikationspartner att uppgradera sin krypteringslösning eller installera p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=Det här meddelandet har trasig kryptering eller formatering. -pepPrivacyStatus.RatingHaveNoKeyExplanation=Det här meddelandet kan inte dekrypteras eftersom nyckeln inte är tillgänglig. -pepPrivacyStatus.RatingMistrustExplanation=Detta meddelande har en kommunikationspartner som tidigare har markerats som misstrodd. -pepPrivacyStatus.RatingReliableExplanation=Det här meddelandet är säkert men du måste fortfarande verifiera identiteten hos din kommunikationspartner. -pepPrivacyStatus.RatingTrustedExplanation=Detta meddelande är säkert och betrott. -pepPrivacyStatus.RatingUndefinedExplanation=Det här meddelandet innehåller inte tillräckligt med information för att avgöra om det är säkert. -pepPrivacyStatus.RatingUnderAttackExplanation=Det här meddelandet är inte säkert och kan ha manipulerats. -pepPrivacyStatus.RatingUnencryptedExplanation=Detta meddelande är osäkert. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=Det här meddelandet är osäkert för vissa kommunikationspartner. -pepPrivacyStatus.RatingUnreliableExplanation=Detta meddelande har opålitligt skydd. - -pepPrivacyStatus.RatingBrokenText=Trasig -pepPrivacyStatus.RatingHaveNoKeyText=Kan inte dekryptera -pepPrivacyStatus.RatingMistrustText=Misstrodd -pepPrivacyStatus.RatingReliableText=Säker -pepPrivacyStatus.RatingTrustedText=Säker & betrodd -pepPrivacyStatus.RatingUndefinedText=Okänd -pepPrivacyStatus.RatingUnderAttackText=Under attack -pepPrivacyStatus.RatingUnencryptedForSomeText=Osäker för vissa -pepPrivacyStatus.RatingUnencryptedText=Osäker -pepPrivacyStatus.RatingUnreliableText=Otillförlitlig säkerhet - -handshakeDlg.button.initHandshake=Handskakning... -handshakeDlg.button.stopTrust=Sluta lita på -handshakeDlg.button.reTrust=Sluta misstro -handshakeDlg.label.outgoingMessage=Utgående meddelande -handshakeDlg.label.incomingMessage=Inkommande meddelande -handshakeDlg.error.noPeers=Kan inte handskaka utan några korrespondenter. -handshakeDlg.error.noProtection=Vänligen aktivera skyddet för att använda handskakningsfunktionen. - -enigmail.acSetupPasswd.descEnterPasswd=Vänligen ange konfigurationskoden som visas på den andra enheten. -enigmail.acSetupPasswd.descCopyPasswd=Vänligen ange konfigurationskoden nedan på din andra enhet för att fortsätta med konfigurationen - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt konfigurationsmeddelande -autocrypt.setupMsg.msgBody=För att ställa in din nya enhet för Autocrypt, följ instruktionerna som ska presenteras av din nya enhet. -autocrypt.setupMsg.fileTxt=Det här är en Autocrypt-konfigurationsfil som används för att överföra inställningar och nycklar mellan klienter. Du kan dekryptera det med hjälp av konfigurationskoden som visas på din gamla enhet och sedan importera nyckeln till din nyckelring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Vad är nytt i Enigmail v2.0? -upgradeInfo.welcome1=Välkommen till den nya Enigmail version 2.0! -upgradeInfo.welcome2=Denna utgåva innehåller många nya och ändrade funktioner. Ta en minut och ta reda på vad som är nytt: -upgradeInfo.encSubject.title=Krypterar e-postämnet -upgradeInfo.encSubject.desc=Vi har utvecklat en ny metod som flyttar e-postämnet i det krypterade meddelandet och ersätter det synliga ämnet med "Krypterat meddelande". När ett sådant meddelande dekrypteras, ersätts det ursprungliga ämnet automatiskt. Att dölja ämnet är satt som standard. Det är en fördel att stänga av den om du inte gillar det. (Obs: Den här funktionen kräver att meddelandet skickas med PGP/MIME.) -upgradeInfo.buttons.title=Ändrat beteende för Kryptera och Signera knappar -upgradeInfo.buttons.desc=Knapparna Kryptera och Signera i meddelandekomponeringsfönstret fungerar nu för både OpenPGP och S/MIME protokollen. Om båda algoritmerna är möjliga, försöker Enigmail att föredra den som alla nycklar är tillgängliga för. -upgradeInfo.autocrypt.title=Stöd för Autocrypt -upgradeInfo.autocrypt.desc=Enigmail stöder nu Autocrypt, 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 p≡p Junior-läge. Med p≡p Junior-läge kan du 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 vår dokumention för hjälp med att använda Enigmail. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=En ny version av Enigmail/p≡p kryptomotor är tillgänglig. Vill du ladda ner och installera uppdateringen? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +upgradeInfo.welcome1=OpenPGP-kryptering är nu en del av Thunderbird +upgradeInfo.welcome2=Enigmail krävs inte längre på Thunderbird och har blivit föråldrad - det här är den sista versionen av Enigmail för Thunderbird. +upgradeInfo.migrateSettings.title=Migrera dina nycklar och inställningar från GnuPG till Thunderbird +upgradeInfo.migrateSettings.desc=Det som återstår innan du avinstallerar Enigmail är att du importerar dina nycklar från GnuPG till Thunderbird och migrerar några viktiga inställningar från Enigmail till Thunderbird. Vi har förberett en guide som utför dessa steg för dig. +upgradeInfo.performMigration.buttonLabel=Börja migrera nu +upgradeInfo.thankyou.title=Tack för att du använder Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +upgradeInfo.thankyou.desc2=Om du vill hjälpa till, vänligen överväg att donera till Thunderbird. aboutEnigmail.tabName=Om Enigmail aboutEnigmail.title=OpenPGP-stöd som tillhandahålls av Enigmail aboutEnigmail.team=Enigmail är utvecklad av Enigmail Team: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=Licens & Support aboutEnigmail.license=Enigmail OpenPGP har öppen källkod och är licensierad under %S aboutEnigmail.support=Support och nedladdning är tillgänglig från www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG-uppdatering -updateGnuPG.title=Uppdateringar för GnuPG -updateGnuPG.introduction.desc=Enigmail kräver GnuPG att utföra sina kryptografiska funktioner. Vi rekommenderar att du håller din GnuPG-installation uppdaterad. -updateGnuPG.updateRequired=En nyare version av GnuPG är tillgänglig. Vi rekommenderar starkt att du håller din GnuPG-installation uppdaterad. Klicka på knappen Installera uppdatering för att hämta och installera uppdateringen. -updateGnuPG.noUpdateRequired=GnuPG är aktuell. -updateGnuPG.cannotUpdate.header=Enigmail stöder endast uppdatering av följande paket: -updateGnuPG.cannotUpdate.footer=Du verkar använda någon annan variant av GnuGP; tyvärr är det därför inte möjligt för Enigmail att uppdatera din GnuGP-installation. -updateGnuPG.installUpdate=Installera uppdatering -updateGnuPG.noMoreUpdates=Kontrollera inte efter framtida uppdateringar updateGnuPG.checkUpdate=Kontrollera efter GnuPG-uppdateringar - - -#strings in keyserver.jsm -keyserver.error.aborted=Avbruten -keyserver.error.unknown=Ett okänt fel uppstod -keyserver.error.serverError=Nyckelservern rapporterade ett fel. -keyserver.error.importError=Misslyckades med att importera den nedladdade nyckeln. -keyserver.error.unavailable=Nyckelservern är inte tillgänglig. -keyserver.error.securityError=Nyckelservern stöder inte krypterad åtkomst. -keyserver.error.certificateError=Nyckelserverns certifikat är inte giltigt. -keyserver.error.unsupported=Nyckelservern stöds inte av Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Krypterad meddelandedel -mimeDecrypt.encryptedPart.concealedData=Detta är en krypterad meddelandedel. Du måste öppna den i ett separat fönster genom att klicka på bilagan. - -#strings in gnupg-key.jsm import.secretKeyImportError=Ett fel har uppstått i GnuPG medan du importerar privata nycklar. Importen lyckades inte. - -#strings in importSettings.js -importSettings.errorNoFile=Filen du angav är inte en vanlig fil! -importSettings.cancelWhileInProgress=Återställningen pågår. Vill du verkligen avbryta processen? -importSettings.button.abortImport=&Avbryt process +passphrasePrompt=Vänligen ange lösenordet för följande nyckel: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/sv/help/compose.html enigmail-2.2.4/lang/sv/help/compose.html --- enigmail-2.1.6+ds1/lang/sv/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - Enigmail Hjälp: Skriva meddelanden - - - - - -

Enigmail Hjälp

- -

Använda Enigmail när du skriver meddelanden

- -
-
Enigmail's meny i skrivfönstret
- -
-
-
Signera meddelande
-
Aktivera/inaktivera skicka signerad e-post. Användaren meddelas, om signering misslyckas.
- -
Kryptera meddelande
-
Aktivera/inaktivera kryptering till alla mottagare innan du skickar. Användaren meddelas, om kryptering misslyckas.
- -
Använd PGP/MIME för detta meddelande
- -
- Aktivera/inaktivera användning av PGP/MIME för detta meddelande. - -

Om du vet att mottagaren kan läsa e-post med hjälp av PGP/MIME-formatet, ska du använda det.

- -

Den här funktionen är beroende av inställningarna i Inställningar -> PGP/MIME -fliken är satta till Tillåt att använda PGP/MIME eller Alltid använda PGP/MIME.

-
- -
Standard kompositionsalternativ
- -
-
    -
  • Signering/Kryptering alternativ...: genväg till Kontoinställningar -> OpenPGP alternativ.
  • - -
  • Skicka alternativ...: genväg till Inställningar -> skicka fliken.
  • - -
  • Nyckelval alternativ...: genväg till Inställningar -> Nyckelval fliken.
  • - -
  • PGP/MIME alternativ...: genväg till Inställningar -> PGP/MIME fliken.
  • -
-
- -
Ångra kryptering
- -
-

Om det uppstår ett fel när du skickar mail, till exempel POP-servern inte accepterar begäran, kommer Enigmail inte vet om det, och det krypterade meddelandet fortsätter att visas i meddelandefönstret. Att välja detta menyalternativ kommer att ångra kryptering/signering, då återgår skrivfönstret tillbaka till sin ursprungliga text.

- -

Som en temporär fix, kan detta alternativ också användas för att dekryptera den citerade texten när du svarar på krypterade meddelanden. Enigmail bör automatiskt dekryptera det citerade meddelandet, men om det misslyckas av någon anledning, kan du använda det här menyalternativet för att tvinga det.

-
- -
Bifoga publik nyckel
- -
Infoga ASCII-armerade publika nyckelblock vid nuvarande markörposition i skrivfönstret. Du kommer att bli tillfrågad om e-postadresser till nyckeln som ska infogas. Nycklar som infogats på detta sätt kommer automatiskt att redovisas vid den mottagande änden av Enigmail. Efter nyckelinsättning, kan du fortfarande välja att signera/kryptera mail efter behov. Också, infoga inte mer än ett nyckelblock i ett meddelande; ange flera e-postadresser, avgränsade med kommatecken eller mellanslag, när det efterfrågas.
- -
Rensa sparad lösenfras
- -
Rensar cachade lösenfraser. Användbart om du har flera lösenfraser.
- -
Hjälp
- -
Visar hjälpinformation från webbplatsen (denna sida).
-
-
-
-
- -

Ytterligare hjälp finns på Enigmail's Supportwebbplats

- - diff -Nru enigmail-2.1.6+ds1/lang/sv/help/editRcptRule.html enigmail-2.2.4/lang/sv/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/sv/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Hjälp: Redigera OpenPGP regel - - - - - -

Enigmail Hjälp

- -

Använda Enigmail's regelredigerare: Redigera OpenPGP regel

- -

I regelredigeraren kan du ange standardinställningar per mottagare för att aktivera kryptering, signering och PGP/MIME, och för att definiera vilken OpenPGP-nyckel som ska användas. I det här fönstret kan du ange regler för en enda mottagare, och för en grupp av mottagare med mycket liknande egenskaper.

- -
-
Ange Enigmail-regler för
- -
Innehåller e-postadresserna till mottagarna (utan namn, det vill säga endast en adress som somebody@email.domain). Du kan ange flera e-postadresser, separerade med mellanslag. Adressen som anges här kan endast bestå av domändelen så att e-post till en adress på den domänen kommer att matchas, t.ex. @email.domain tillåter matchning till body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Tillämpa regel om mottagare ...
- -
- Detta ändrar matchning av e-postadresser. Om flera adresser anges kommer inställningen gälla för alla. Exemplen nedan är baserade på body@email.domain som angetts i OpenPGP reglerfältet ovan. - -
    -
  • Är exakt: med denna inställning, kommer regeln endast trigga på e-post till body@email.domain (exakt, fall okänsliga matchning).
  • - -
  • Innehåller: med denna inställning, kommer en e-postadress som innehåller strängen matchas, t.ex. anybody@email.domain eller body@email.domain.net
  • - -
  • Startar med: med denna inställning, kommer en e-postadress som börjar med strängen matchas, t.ex. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Slutar med: med denna inställning, kommer en e-postadress som slutar med strängen matchas, t.ex. anybody@email.domain, somebody@email.domain.
  • -
-
- -
Fortsätt med nästa regel för matchande adress
- -
Aktivera den här funktionen kan du definiera en regel, men inte ange en nyckel-ID i Använd följande OpenPGP nycklar: fältet, så att e-postadressen används för att kontrollera en nyckel när du skickar. Dessutom kommer ytterligare regler för samma adress behandlas också.
- -
Kontrollera inte ytterligare regler för matchande adress
- -
Aktivera den här funktionen stoppar bearbetning av andra regler för matchande adress, om denna regel matchas; dvs regelbearbetningen fortsätter med nästa mottagare.
- -
Använd följande OpenPGP nycklar:
- -
Använd Välj nyckel... knappen för att välja mottagarens nycklar som ska användas för kryptering. Som i åtgärden ovan, inga ytterligare regler för matchande adress behandlas.
- -
Standardvärden för...
- -
- Aktivera eller inaktivera signering för meddelanden. Detta använder eller åsidosätter vad du har specificerat i meddelandefönstret. Värdena är: - -
    -
  • Aldrig: avaktivera signering, även om den var aktiverad i meddelandefönstret(upphäver de andra värdena)
  • - -
  • Ja, om det valts i meddelandekompositionen: lämna signering som anges i meddelandefönstret
  • - -
  • Alltid: aktivera signering, även om det var inte aktiverad i meddelandefönstret
  • -
Dessa signeringsinställningar tillämpas för alla regler som matchar. Om en av reglerna inaktiverar signering kommer meddelandet inte signeras, oberoende av andra regler som anger Alltid. -
- -
Kryptering
- -
Aktivera eller inaktivera meddelandekryptering. Tillåtna inställningar och deras betydelse är de samma som för meddelandesignering.
- -
PGP/MIME
- -
Aktivera eller inaktivera användning av PGP/MIME (RFC 3156) meddelandekodning. Om PGP/MIME är inaktiverad kodas meddelandena med "inline PGP". Tillåtna värden och deras betydelse är de samma som för meddelandesignering.
-
- -

Reglerna behandlas i den ordning de visas i listan i OpenPGP regelredigerare. När en regel matchar en mottagare och innehåller en OpenPGP nyckel-ID, utöver att använda den angivna Nyckel-ID, mottagaren räknas inte längre vid behandling av ytterligare regler.

-
- -

Ytterligare hjälp finns på Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/sv/help/initError.html enigmail-2.2.4/lang/sv/help/initError.html --- enigmail-2.1.6+ds1/lang/sv/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Hjälp: Hur man ska lösa problem med initiera OpenPGP - - - - - -

Enigmail Hjälp

- -

Hur man ska lösa problem med Initiera OpenPGP

- -

Det finns flera skäl till varför initiering av OpenPGP inte lyckas. De vanligaste beskrivs nedan; -Mer information finns på Enigmail supportsida.

- -
-
GnuPG kunde inte hittas
-
-

- För att OpenPGP ska fungera, behövs verktyget GnuPG installeras. - Om GnuPG inte kan hittas, se då först till att den körbara gpg.exe (för Windows; gpg för andra plattformar) är installeras på din dator. - Om GnuPG är installerat, och OpenPGP kan inte hitta den, måste du manuellt ange sökväg till GnuPG i OpenPGP's inställningar (meny OpenPGP > Inställningar) -

- -
Enigmime gick inte att initiera
- -
-

- OpenPGP fungerar endast om den är byggd med samma byggmiljö som Thunderbird eller SeaMonkey byggdes med. Det innebär att du kan använda den officiella Enigmail releaser endast om du använder de officiella releaserna av Thunderbird eller SeaMonkey som tillhandahålls av mozilla.org. -

-

- Om du använder en Thunderbird eller SeaMonkey version som kommer från någon annan källa (t.ex. leverantören av din Linux-distribution), eller om du byggde programmet själv, bör du antingen använda en Enigmail version byggda med samma källa, eller bygga Enigmail själv. För att bygga Enigmail, se Avsnittet källkod på Enigmail's hemsida. Skicka eller lämna inte någon felrapporter om detta problem, det kan inte lösas. -

-
-
- -

Ytterligare hjälp finns på Enigmail's Supportwebbplats.

- - diff -Nru enigmail-2.1.6+ds1/lang/sv/help/messenger.html enigmail-2.2.4/lang/sv/help/messenger.html --- enigmail-2.1.6+ds1/lang/sv/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Hjälp: Läsa meddelanden - - - - - -

Enigmail Hjälp

- -

Använda Enigmail när du läser meddelanden

- -
-
Dekryptera knappen i mailets huvudfönster
- -
Denna knapp kan användas för flera ändamål: dekryptera, verifiera, eller importera allmänna nycklar. Normalt dekryptering/verifiering sker automatiskt, även om detta kan inaktiveras genom en inställning. Om detta misslyckas, kommer vanligtvis en kort felmeddelande i Enigmail's statusrad. Om du klickar på Dekryptera knappen, kommer du att kunna se ett mer detaljerat felmeddelande, inklusive utdata från kommandot GnuPG.
- -
Penn- och nyckelikoner som visas i meddelandehuvudet
- -
- Penn- och Nyckelikoner i meddelandehuvudet visar om meddelandet som du läser signerats och/eller krypterats och om signaturen är bra, det vill säga meddelandet har inte förändrats sedan det signerades. Om meddelandet har ändrats, Pennikonen ändras till en bruten penna för att indikera att signaturen är dålig. Högerklicka på antingen penn- eller nyckelikonen visar en meny med följande alternativ: - -
    -
  • OpenPGP säkerhetsinfo: låter dig se utdata från GnuPG för meddelandet.
  • - -
  • Kopiera OpenPGP säkerhetsinfo: kopierar utdata från GnuPG till urklipp; för att klistra in ett svarsmeddelande, etc.
  • - -
  • Visa OpenPGP foto-ID: låter dig se foto-ID för den person som skickade meddelandet, om de har ett foto inbäddad i sin publika nyckel. (Detta alternativ kommer endast att aktiveras om ett foto-ID finns i deras nyckel.)
  • - -
  • S/MIME säkerhetsinfo: låter dig se på S/MIME säkerhetsinfo för meddelandet.
  • -
- -

Om du inte har angett keyserver-options auto-key-retrieve i din gpg.conf fil och du läser ett meddelande som är signerat eller krypterat, kommer du att se en Penn-ikon i huvudområdet med ett Frågetecken på den, Enigmail's statusrad i huvudområdet visar del av meddelandet signerat; klicka på pennikonen för detaljer och meddelandet i meddelandefönstret visar alla OpenPGP meddelandeblocksindikatorer och signaturblock.

- -

Du kan också se detta om du har angett keyserver-options auto-key-retrieve i din gpg.conf fil och OpenPGP nyckeln inte finns på standardnyckelservern.

- -

Genom att klicka på Penn och frågetecknet-ikonen kommer ett fönster upp som meddelar att nyckeln inte är tillgänglig i din nyckelring. Om du klickar på OK kommer att ett nytt fönster upp med en lista över nyckelservrar där du kan välja att hämta avsändarens publika nyckel från.

- -

För att konfigurera listan med nyckelservrar som du vill använda, gå till Enigmail-> Inställningar->grundläggande fliken och ange nyckelserverns adress i nyckelserver: rutan, separerade med ett kommatecken. Den första nyckelservern i listan kommer att användas som standard.

-
- -
Öppna krypterade bilagor/importera bifogade OpenPGP nycklar
- -
Bifogade filer som slutar på *.Pgp, *.Asc och *.Gpg känns igen som bilagor som kan hanteras speciellt av Enigmail. Genom att högerklicka på en sådan bilaga möjliggörs två speciella menyalternativ i snabbmenyn: Dekryptera och öppna och Dekryptera och spara. Använd dessa två menyalternativ om du vill att Enigmail ska dekryptera en bifogad fil innan du öppnar eller sparar den. Om en bilaga känns igen som en OpenPGP nyckelfil, erbjuds du att importera nycklarna till din nyckelring.
-
-
- -

Ytterligare hjälp finns på Enigmail's Supportwebbplats

- - diff -Nru enigmail-2.1.6+ds1/lang/sv/help/rulesEditor.html enigmail-2.2.4/lang/sv/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/sv/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Hjälp: Regelredigeraren - - - - - -

Enigmail Hjälp

- -

Använda Enigmail's regelredigerare

- -

I regelredigeraren kan du ange standardinställningar per mottagare för att möjliggöra kryptering, signering och PGP/MIME, och ange vilken OpenPGP nyckel som ska användas. Varje regel består av fem områden och är representerade på en rad:

- -
-
E-post
- -
E-post att matcha i fälten Till:, Kopia: och Hemlig kopia:. Matchningen fungerar på delsträngar (Ytterligare information finns i fönstret redigera regler.)
- -
OpenPGP nyckel
- -
en lista med OpenPGP nyckel-ID för att använda för mottagaren
- -
Signera
- -
- aktivera eller inaktivera signering av meddelanden. Detta använder eller åsidosätter vad du har specificerat i meddelandefönstret. Värdena är: - -
    -
  • Aldrig: inaktivera signering, även om den var aktiverad i meddelandefönstret (upphäver de andra värdena)
  • - -
  • Möjlig: lämna signering som angetts i meddelandefönstret
  • - -
  • Alltid: aktivera signering, även om den inte var aktiverad i meddelandefönstret
  • -
- -

Dessa signeringsinställningar tillämpas för alla regler som matchar. Om en av reglerna inaktiverar signering kommer meddelandet inte signeras, oberoende av andra regler som anger Alltid.

-
- -
Kryptera
- -
aktivera eller inaktivera kryptering av meddelande. Tillåtna inställningar och deras betydelse är de samma som för signering av meddelande.
- -
PGP/MIME
- -
aktivera eller inaktivera användning av PGP/MIME (RFC 3156) meddelandekodning. Om PGP/MIME är inaktiverad kodas meddelandena med "inline PGP". Tillåtna värden och deras betydelse är de samma som för signering av meddelande.
-
- -

Reglerna behandlas i den ordning som visas i listan. När en regel matchar en mottagare och innehåller en OpenPGP nyckel-ID, utöver att använda den angivna nyckel-ID, mottagaren räknas inte längre vid behandling av ytterligare regler.

- -

OBS: Regelredigeraren är ännu inte klar. Det är möjligt att skriva några mer avancerade regler genom att direkt redigera filen rules (dessa regler bör då inte redigeras längre i regelredigeraren). Mer information för att direkt redigera filen finns tillgänglig på Enigmail's hemsida

-
- -

Ytterligare hjälp finns på Enigmail's Supportwebbplats

- - diff -Nru enigmail-2.1.6+ds1/lang/sv/help/sendingPrefs.html enigmail-2.2.4/lang/sv/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/sv/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/sv/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Hjälp: Redigera OpenPGP regel - - - - - -

Enigmail Hjälp

- -

Fastställa inställningar för att skicka krypterat

- -

I inställningar för att skicka kan du välja en allmän modell och inställningar för kryptering.

-
-
Smidig kryptering
-
Med dessa inställningar, krypteras e-post utan bekräftelse när det är möjligt. -

Denna inställning är lämplig, om du vill förbättra din integritet genom att skicka e-post krypterat istället för okrypterat om det är möjligt. -

Effekten är som att skicka e-post som brev istället för vykort. Till skillnad från vykort, döljer brev oftast sitt innehåll under transport. -

Observera dock att som med brev kan du inte vara säker på att ingen öppnar brevet under transporten (även om vissa tekniska ansträngningar krävs för det). -

En konkret risk är att du av misstag använder "förfalskade nycklar" du fick från någonstans eller någon som hävdar att nyckeln tillhör den person som du vill skicka e-post till. För att undvika denna risk, kan du antingen använda förtroende modellen av PGP (se nedan) eller bör du alltid kontrollera, om fingeravtryck av en publik nyckel är korrekt.

- -
Manuell kryptering
-
Med det här alternativet kan du ange olika inställningar för kryptering enligt dina behov. Du kan ange -
    -
  • om svar på krypterade/signerade e-postmeddelanden bör automatisk också vara krypterad/signerad-
  • -
  • om du vill använda förtroende modellen av OpenPGP för att acceptera nycklar (detta innebär att man använder en nyckel som du antingen måste signera nyckel eller har tillräckligt många andra människor du litar på som har signerat nyckeln).
  • -
  • om du vill skicka e-post krypterat om alla nycklar accepteras.
  • -
  • om och när du vill slutligen bekräfta sändning av ett mail.
  • -
-
- - Om det är viktigt för dig att innehåll som du skickar krypteras inte kan läsas av andra personer eller organisationer, bör du använda de manuella inställningarna. Välj åtminstone alternativet att ta emot nycklarna om du eller andra människor signerat dem. Även denna modell minskar risken för att använda förfalskade nycklar, det kräver att du aktivt signerar nycklar och förklarar ägare förtroende med hjälp av fönstret nyckelhanteraren. - - - diff -Nru enigmail-2.1.6+ds1/lang/tr/am-enigprefs.properties enigmail-2.2.4/lang/tr/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/tr/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Güvenliği +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/tr/enigmail.dtd enigmail-2.2.4/lang/tr/enigmail.dtd --- enigmail-2.1.6+ds1/lang/tr/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,287 +1,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -' kullan"> - - -' karakterlerini kullan. Alıcıların eski Hushmail anahtarları varsa etkisiz kıl."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP Güvenliği)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOT: Anahtar üretiminin bitmesi biraz zaman alabilir. Anahtar üretimi sırasında uygulamayı kapatmayın. Aktif olarak internette gezinmek ya da diskle ilgili işler yapmak rasgele üretimi kolaylaştıracağından işlemin hızını artıracaktır. Anahtar üretimi bittiğinde uyarılacaksınız."> - - + @@ -296,485 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' yanlış"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOT: Anahtar üretimi biraz uzun sürebilir. Anahtar üretimi sırasında uygulamayı kapatmayın. Anahtar üretimi bittiğinde uyarılacaksınız."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/tr/enigmail.properties enigmail-2.2.4/lang/tr/enigmail.properties --- enigmail-2.1.6+ds1/lang/tr/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,857 +1,165 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail Uyarı enigConfirm=Enigmail Onayı enigInfo=Enigmail Bilgisi -enigError=Enigmail Hata enigPrompt=Enigmail Bilgi İstemi - -dlgYes=Evet dlgNo=&Hayır dlgKeepSetting=Cevabımı hatırla ve tekrar sorma dlgNoPrompt=Bu diyaloğu tekrar gösterme -dlg.button.delete=&Sil dlg.button.cancel=&Vazgeç dlg.button.close=&Kapat dlg.button.continue=&Devam -dlg.button.skip=&Atla -dlg.button.overwrite=Ü&zerine yaz -dlg.button.view=&Göster -dlg.button.retry=&Yeniden dene -dlg.button.ignore=&Görmezden gel -dlg.button.install=&Kur dlg.button.ok=&Tamam - repeatPrefix=\n\nBu uyarı tekrar edecek %S repeatSuffixSingular=kere daha. repeatSuffixPlural=kere daha. noRepeat=\n\nBu uyarı Enigmail'i yükseltene kadar tekrar etmeyecek. - -pgpNotSupported=Enigmail'yi PGP 6.x sürümüyle kullanıyor görünüyorsunuz\n\nPGP 6.x Enigmail'in düzgün çalışmasını bazı sebeplerden engellediğinden Enigmail 6.x desteklemiyor; lütfen GnuPG (GPG)'ye geçiş yapın.\n\nGnuPG'ye geçiş konusunda yardıma ihtiyacınız olursa, Enigmail ana sayfasından Yardım kısmına göz atın. -initErr.howToFixIt=Enigmail'i kullanmak için GnuPG'ye ihtiyacınız var. Henüz GnuPG kurmadıysanız, aşağıdaki "Kurulum Sihirbazı" düğmesine basarak kolayca kurabilirsiniz. -initErr.setupWizard.button=&Kurulum Sihirbazı passphraseCleared=Parola temizlendi. cannotClearPassphrase=Parola yönetimi için (gnome-keyring gibi) standart olmayan bir araç kullanıyorsunuz. Bu nedenle parolayı sıfırlamayı Enigmail'den yapamazsınız. -noPhotoAvailable=Hiçbir fotoğraf uygun değil -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable='%S' fotoğraf adresi okunmuyor - -generalError=Hata: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Enigmail'in bu yeni sürümü ayarlar ve seçenekler ile ilgili önemli değişiklikler getiriyor. Eski ayar yapısını otomatik taşımayı denedik, ama her durumda başarılı olmayabilir. Lütfen yeni ayar ve seçenekleri iki kez kontrol edin. -enigmailCommon.checkPreferences=Ayarları Kontrol Et ... -preferences.defaultToPgpMime=Enigmail'in öntanımlı mesaj kodlamasını Inline-PGP yerine PGP/MIME olarak değiştirdik. Size de bu öntanımı kullanmanızı öneriyoruz.\n\nYine de Inline-PGP'yi öntanımlı yapmak isterseniz, OpenPGP Güvenlik bölümündeki Hesap Ayarları başlığı altından değiştirebilirsiniz. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Enigmail %S sürümü kullanıyorsunuz -enigmailPepVersion=Enigmail/p≡p sürüm %S usingAgent=Şifreleme ve deşifreleme için %S çalışıtırılabiliri %S kullanılıyor agentError=HATA: Enigmime servisine ulaşılamadı! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Enigmail servisine erişimde hata -onlyGPG=Anahtar üretimi sadece GnuPG ile çalışır (PGP ile değil)! - -keygenComplete=Anahtar üretimi tamamlandı! İmzalama için <%S> kimliği kullanılacak -revokeCertRecommended=Anahtarınız için bir iptal sertifikası oluşturmanızı öneririz. Bu sertifika örneğin özel anahtarınız kaybolur ya da çalınırsa, anahtarınızın iptali için gereklidir. Böyle bir iptal sertifikası oluşturmak istiyor musunuz ? -keyMan.button.generateCert=Sertifika &Oluştur -genCompleteNoSign=Anahtar üretimi tamamlandı! -genGoing=Anahtar üretimi işlem halinde! - -passNoMatch=Parolalar uyuşmuyor, lütfen tekrar girin -passCheckBox=Anahtar için bir parola girmeyecekseniz lütfen kutuyu işaretleyin -passUserName=Lütfen bu kimlik için bir kullanıcı adı belirleyin -keygen.missingUserName=Seçilen hesap/kimlik için belirlenmiş bir isim yok. Lütfen hesap ayarlarında bulunan "İsminiz" alanını doldurun. -keygen.passCharProblem=Parolanız özel karakterler içeriyor. Ne yazık ki bu başka uygulamalarda soruna yol açabilir. Sadece aşağıdaki karakterlerden oluşan bir parola kullanmanızı öneriyoruz:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Teknik nedenlerle parolanızın ilk ya da son karakteri boşluk olamaz. -changePassFailed=Parola değişimi başarısız. - -keyConfirm='%S' için açık ve gizli anahtar üretilsin mi? -keyMan.button.generateKey=Anahtar &Üret -keyAbort=Anahtar üretiminden çık? -keyMan.button.generateKeyAbort=Anahtar Üretimini &İptal Et -keyMan.button.generateKeyContinue=Anahtar Üretimine &Devam Et -expiryTooLong=100 yıldan uzun sürede kaybolan bir anahtar oluşturamazsınız. -expiryTooLongShorter=90 yıldan uzun sürede kaybolan bir anahtar oluşturamazsınız. -expiryTooShort=Anahtarınız en az bir günlük olmalı. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Son kullanma tarihi değiştirilemez - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail Güvenlik Bilgisi\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Bu mesajın ekleri ne imzalandı ne şifrelendi*\n\n -possiblyPgpMime=Muhtemelen PGP/MIME mesajı şifreledi ya da imzaladı; doğrulamak için Deşifre düğmesine tıklayın - -saveAttachmentHeader=Enigmail: Deşifre edilmiş eki kaydet -noTempDir=Yazacak geçici bir dizin bulunamadı\nLütfen TEMP çevre değişkenini belirleyin -attachmentPgpKey=Açtığınız '%S' eki bir OpenPGP anahtar dosyasına benziyor.\n\nİçindeki anahtarları almak için Evet'e, dosya içeriğini ayrı bir pencerede görmek için Hayır'a tıklayın - -beginPgpPart=********* *SIFRELI veya IMZALI KISIM BASLANGICI* ********* -endPgpPart=********** *SIFRELI veya IMZALI KISIM BITISI* ********** -notePartEncrypted=Enigmail *Bu mesajın bazı bölümleri şifrelenMEdi ve imzalanMAdı* -noteCutMessage=Enigmail: *Birden fazla mesaj bloğu bulundu -- deşifre/doğrulama işlemi durduruldu* - -decryptOkNoSig=Uyarı\n\nDeşifre işlemi başarılıydı, ama imza düzgün doğrulanamadı -msgOvl.button.contAnyway=Yine de &devam et -signature.verifiedOK=Eklenen dosya %S için imza başarıyla onaylandı -signature.verifyFailed=Eklenen dosya %S için imza onaylanamadı -attachment.noMatchToSignature=Eklenen dosya %S bir imza dosyasıyla eşleşmedi -attachment.noMatchFromSignature=İmza dosyası '%S' eklenen bir dosya ile eşleşmedi -fixBrokenExchangeMsg.failed=Mesaj tamir edilemedi. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -wksNoIdentity=Bu anahtar herhangi bir hesabınıza bağlı değil. Lütfen aşağıdaki eposta adres(ler)i -en azından biri- için hesap ekleyin:\n\n%S -wksConfirmSuccess=Onay epostası gönderildi. -wksConfirmFailure=Onay mesajı gönderilemedi. -autocrypt.importSetupKey.accountPreconfigured=Hesabınız zaten Autocrypt için doğru şekilde ayarlanmış.\n\nBu yapılandırma mesajıyla ayarların üzerine yazmak istediğinize emin misiniz? -autocrypt.importSetupKey.selfCreated=Bu mesaj şu anda çalışan Enigmail kopyası tarafından oluşturuldu.\n\nAyarları taşımak istediğiniz eposta yazılımına geçip mesaja tıklayarak ayarları o yazılıma taşıyın. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Eklenecek OpenPGP anahtarlarını seçin keysToUse=%S için kullanılacak OpenPGP Anahtarı(ları)nı seçin pubKey=%S için Genel Anahtar\n - -windowLocked=Yazım penceresi kilitli; gönderme iptal edildi -sendUnencrypted=Enigmail başlatılamadı.\nŞifrelenmemiş gönder? -composeSpecifyEmail=Lütfen gönderilen mesajları imzalamada kullanılacak birincil eposta adresinizi belirtin.\nBoş bırakırsanız mesajdan alınan KİMDEN adresi kullanılacak. -sendingHiddenRcpt=Bu mesajın BCC (kör karbon kopya) alıcıları var. Mesaj şifrelenmişse, BCC alıcıları saklamak mümkün olmasına rağmen bazı ürünlerin kullanıcıları (ör: PGP Corp.) mesajı deşifre edemeyecektir. Bu durum yüzünden şifrelenmiş mesajlar içeren ve BCC kullanılan postaları önermiyoruz. -sendWithHiddenBcc=BCC alıcıları gizle -sendWithShownBcc=Normal şifrele -sendingNews=Şifrelenmiş gönderim iptal edildi.\n\n Bu mesaj şifrelenemez çünkü haber grubuna dahil alıcıları var. Lütfen şifrelemeden tekrar gönderin. -sendToNewsWarning=Uyarı: şifrelenmiş bir postayı haber grubuna yollamak üzeresiniz.\n\nBu durum pek mantıklı değil çünkü üyelerin hepsi mesajı deşifre edemediği sürece bir anlamı olmayacak, mesajın tüm grup üyelerinin anahtarları ile şifrelenmesi gerekiyor. Lütfen bu mesajı ne yaptığınızı bildiğinizden eminseniz yollayın.\n\nDevam? -hasHTML=HTML posta uyarısı:\nBu mesaj imzalama/şifreleme işlemini engelleyebilecek HTML içerebilir. Bu durumu önlemek için bir dahaki sefere mesaj yazma/cevaplama düğmelerine SHIFT tuşuna basılı tutarak tıklayın ki imzalı gönderilebilsin.\nPostaları öntanımlı olarak imzalıyorsanız, bu posta hesabında kalıcı olarak HTML'yi kapatmak için 'HTML Mesajları Gönder' seçeneğini kapatmalısınız. -strippingHTML=Bu mesaj imzalama/şifreleme işlemleri için düz yazıya dönüştürüldüğünde kaybolacak HTML formatına sahip. Devam etmek istiyor musunuz ? -msgCompose.button.sendAnyway=Mesajı &Yine de Gönder -attachWarning=Bu mesajın ekleri yerelde değil. Şifrelenemezler. Ekleri şifrelemek için, önce bilgisayarınıza kaydedin ve sonra ekleyin. Yine de devam etmek istiyor musunuz? quotedPrintableWarn=Mesajları gönderirken 'quoted-printable' kullanılmasını istediniz. Bu mesajınızın yanlış deşifre edilmesine veya doğrulanmasına yol açabilir.\n 'quoted-printable' mesajlar göndermeyi kapatmak istiyor musunuz ? -minimalLineWrapping=Satır bitimi %S karakter yapmışsınız. Düzgün şifreleme veya imzalama için bu değerin en az 68 olması gerek.\n 68'e değiştirmek istiyor musunuz? warning=Uyarı -signIconClicked=İmzalamayı elle değiştirdiniz. Yani, bu mesajı yazarken, imzayı kapatmak artık şifrelemeyi kapatmaya bağımlı değil. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -# msgCompose.cannotSaveDraft=Error while saving draft -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -# msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -# msgCompose.internalError=An internal error has occurred. - -# msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -# msgCompose.toolbarTxt.signOnly=This message will be signed -# msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -# msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -# msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -# msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Bilinmeyen -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Gönderme işleminden çıkıldı.\n\n - -# details: -# keyNotTrusted=Not enough trust for key '%S' -# keyNotFound=Key '%S' not found -# keyRevoked=Key '%S' revoked -# keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=İMZALI -statEncrypted=ŞİFRELENMİŞ -statPlain=DÜZMETİN - -offlineSave=%S mesajı Gönderilmemiş Mesajlar klasöründe %S e kaydedelim mi? - -onlineSend=%S mesajını %S e gönder? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -# hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=Şifrelenmemiş Me&sajı Gönder -recipientsSelectionHdr=Şifreleme için alıcıları seçin - -configureNow=Seçili kimlik için Enigmail güvenliğini henüz ayarlamadınız. Şimdi yapmak istiyor musunuz? - -# encryption/signing status and associated reasons: -# encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Mesajı Şifrele -# signMessageAuto=Sign Message (auto) -signMessageNorm=Mesajı İmzala - -# encryptOff=Encryption: OFF -# encryptOnWithReason=Encryption: ON (%S) -# encryptOffWithReason=Encryption: OFF (%S) -# encryptOn=Encryption: ON -# signOn=Signing: ON -# signOff=Signing: OFF -# signOnWithReason=Signing: ON (%S) -# signOffWithReason=Signing: OFF (%S) -# reasonEnabledByDefault=enabled by default -# reasonManuallyForced=manually forced -# reasonByRecipientRules=forced by per-recipient rules -# reasonByAutoEncryption=forced by auto encryption -# reasonByConflict=due to conflict in per-recipient rules -# reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Mesaj şifrelenecek -encryptNo=Mesaj şifrelenmeyecek - -# should not be used anymore: -signYes=Mesaj imzalanacak -signNo=Mesaj imzalanmayacak - - -# PGP/MIME status: -pgpmimeNormal=Protokol: PGP/MIME -inlinePGPNormal=Protokol: Satıriçi PGP -smimeNormal=Protokol: S/MIME -# pgpmimeAuto=Protocol: PGP/MIME (auto) -# inlinePGPAuto=Protocol: Inline PGP (auto) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -# pgpmimeYes=PGP/MIME will be used -# pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Çakışan alıcı bazlı kurallar bulundu\n%S\n\nMesajı bu ayarlarla göndermek ister misiniz? -msgCompose.button.configure=&Ayarla -msgCompose.button.send=Mesajı &Gönder -msgCompose.button.save=Mesajı &Kaydet - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=İmzayı doğrulamak için %S genel anahtarı gerekli -# keyUsed=Public key %S used to verify signature -clickDecrypt=; Deşifre düğmesine tıklayın -clickDecryptRetry=; tekrar denemek için Deşifre düğmesine tıklayın -# clickDetailsButton=; click on 'Details' button for more information -# clickImportButton=; click on the 'Import Key' button to import the key -# keyTypeUnsupported=; the key type is not supported by your version of GnuPG -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Deşifre -msgPart=%S mesajının bir bölümü -msgSigned=imzalı -# msgSignedUnkownKey=signed with unknown key -msgEncrypted=şifreli -msgSignedAndEnc=imzalı ve şifreli - +keyNotTrusted='%S' anahtarı için yeterli güven yok unverifiedSig=Doğrulanmamış imza -incompleteDecrypt=Deşifreleme tamamlanmadı -needKey=Hata - mesajı deşifre etmek için gizli anahtar gerekli -failedDecrypt=Hata - deşifreleme başarısız badPhrase=Hata - kötü parola -# missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Hata - deşifreleme/doğrulama başarısız -viewInfo=; detaylar için Görünüm > Mesaj güvenliği bilgisi -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Deşifrelenmiş mesaj -# decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -# usedAlgorithms=Used Algorithms: %1$S and %2$S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Bilinmeyen -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js -# oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=GnuPGP programını bul -invalidGpgPath=GnuPGP verilen yolda çalıştırılamadı. Bu yüzden uygulamayı tekrar başlatana ya da doğru yolu girene kadar Enigmail kapatıldı. -warningsAreReset=Tüm uyarılar ilk haline getirildi. -prefs.gpgFound=GnuPG şurada bulundu: %S -prefs.gpgNotFound=GnuPG bulunamadı -prefs.warnAskNever=Uyarı: bu seçeneğin işaretlenmesi alıcılardan birinin anahtarı yoksa, daha fazla bilgi verilmeyen şifrelenmemiş mesajlara neden olacaktır -- Enigmail böyle bir durumda sizi uyarmayacaktır! -# prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=Hata - kayıp OpePGP anahtarlarının otomatik indirilebilmesi için sadece bir anahtar sunucu belirtebilirsiniz. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Lütfen SmartCard'ınızın YÖNETİCİ (admin) PIN'ini girin -enterCardPin=Lütfen SmartCard PIN'inizi girin - -notInit=Hata - Enigmail servisi henüz başlatılmadı +missingMdcError=Hata - kayıp veya bozuk bütünlük koruması (MDC) +oldGpgVersion20=Enigmail başlatılamadı.\n\nGnuPG'nin artık desteklenmeyen %1$S sürümünü kullanıyorsunuz. Enigmail GnuPG'nin %2$S veya daha yeni sürümlerine ihtiyaç duyuyor. Lütfen GnuPG kurulumunuzu güncelleyin yoksa Enigmail çalışmayacaktır. badCommand=Hata - şifreleme komutu başarısız cmdLine=komut satırı ve çıktısı: -notRequired=Hata - şifreleme gerekmiyor -notComplete=Hata - anahtar üretimi henüz bitmedi -invalidEmail=Hata - geçersiz posta adres(ler)i noPassphrase=Hata - parola sağlanmamış noPGPblock=Hata - Düzgün zırhlı(armored) OpenPGP veri bloğu bulunamadı -unverifiedReply=İçerden başlatılmış mesaj kısmı (cevap) muhtemelen değiştirilmiş -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Hata - İmza kayıp -# cantImport=Error importing public key\n\n -# doImportOne=Import %1$S (%2$S)? -# doImportMultiple=Import the following keys?\n\n%S -# previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=Okuyucunuzda bulunan %S akıllı kartı bu mesajı işlemek için kullanılamaz.\nLütfen %S akıllı kartını takıp işlemi tekrarlayın. sc.insertCard=Bu işlem %S akıllı kartınızı gerektiriyor.\nLütfen gerekli akıllı kartı takıp işlemi tekrarlayın. sc.removeCard=Bu işlem okuyucuda hiçbir akıllı kartın olmamasını gerektiriyor.\nLütfen akıllı kartı çıkarıp işlemi tekrarlayın. sc.noCardAvailable=Okuyucunuzda SmartCard bulunamadı\nLütfen SmartCard'ınızı takıp işlemi tekrarlayın sc.noReaderAvailable=SmartCard okuyucunuza ulaşılamadı\nLütfen SmartCard okuyucunuzu takın, kartınızı takın, ve işlemi tekrarlayın -# keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. -# keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -# keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. -# missingPassphrase=Missing passphrase -# errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. -# errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). -# errorHandling.dirmngrError=GnuPG reported an error in the communication with dirmngr (a component of GnuPG). -# errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. -# errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. -# errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - -gpgNotFound=GnuPG programı bulunamadı '%S'.\nGnuPG çalıştırılabilirinin yolunu düzgün girdiğinizi Enigmail Seçenekler menüsünden kontrol edin -gpgNotInPath=PATH değişkeninde GnuPG çalıştırılabiliri bulunamadı.\nEnigmail Seçeneklerinden GnuPG çalıştırılabilirinin yolunu kontrol edin -# enigmailNotAvailable=Enigmail core Service not available - -prefGood=%S kişisinden iyi imza -prefBad=%S şahsından KÖTÜ İmza - +keyError.keySpecNotFound='%S' e-posta adresi anahtarlığınızdaki bir anahtarla eşleştirilemiyor. +keyError.keyIdNotFound=Yapılandırılmış '%S' anahtar kimliğği anahtarlığınızda bulunamıyor. +missingPassphrase=Eksik parola +errorHandling.gpgAgentInvalid=Sisteminiz, GnuPG sürümüyle uyumlu olmayan bir gpg-agent sürümü çalıştırmaktadır. +errorHandling.gpgAgentError=GnuPG, gpg-agent (GnuPG'nin bir bileşeni) ile iletişimde bir hata bildirdi. +errorHandling.dirmngrError=GnuPG, dirmngr (GnuPG'nin bir bileşeni) ile iletişimde bir hata bildirdi. +errorHandling.pinentryError=GnuPG parolanızı pinentry aracılığıyla sorgulayamıyor. +errorHandling.pinentryCursesError=GnuPG kurulumunuz pinentry için uçbirimi kullanacak şekilde yapılandırılmış. Ancak, Enigmail kullanırken pinentry aracının grafiksel bir sürümüne ihtiyacınız var. +errorHandling.readFaq=Bu, Enigmail'in düzgün bir şekilde çalışmasını önleyen ve otomatik olarak düzeltilemeyecek bir sistem kurulumu veya yapılandırması hatasıdır.\n\nBununla ilgili olarak https://enigmail.net/faq adresindeki destek web sitemize danışmanızı şiddetle öneriyoruz. +gpgNotFound=GnuPG programı bulunamadı '%S'.\nGnuPG çalıştırılabilir dosya konumunu düzgün ayarladığınızı Enigmail Tercihleri menüsünden kontrol edin +gpgNotInPath=PATH değişkeninde GnuPG çalıştırılabilir dosyası bulunamadı.\nEnigmail Tercihlerinden GnuPG çalıştırılabilir dosyasının konumunu kontrol edin +enigmailNotAvailable=Enigmail çekirdek hizmeti mevcut değil failCancel=Hata - Anahtar alımı kullanıcı tarafından iptal edildi failKeyExtract=Hata - anahtar çıkartma komutu başarısız -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Hata - İlk OpenPGP bloğu genel anahtar bloğu değil importKeyConfirm=Mesajda gömülü olan genel anahtar(lar)ı ekleyelim mi? -failKeyImport=Hata - anahtar eklemesi başarısız fileWriteFailed=%S dosyaya yazılamadı - importKey=%S genel anahtarını anahtar sunucudan ekle: uploadKey=%S genel anahtarını anahtar sunucuya gönder: keyId=Anahtar ID'si -keyAndSigDate=Anahtar ID'si: 0x%S / İmzalanma tarihi: %S -keyFpr=Anahtar parmakizi: %S -noEmailProvided=Posta adresi belirtmediniz! -keyAlreadySigned=Anahtar zaten imzalı. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=tarihi geçmiş %S createdHeader=Oluşturuldu atLeastOneKey=Anahtar seçilmedi! Bu diyaloğu geçmek için en az bir anahtar seçmelisiniz fewerKeysThanRecipients=Alıcı sayısından daha az anahtar seçtiniz. Şifrelemek için gerekli anahtar listesinin tam olduğundan emin misiniz? userSel.button.goBack=Daha fazla anahtar seç -# userSel.secretKeySel.title=Select a Secret OpenPGP Key to Sign Your Messages -# userSel.problemNoKey=No valid key -# userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -# sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. +userSel.secretKeySel.title=İletilerinizi İmzalamak için bir Gizli OpenPGP Anahtarı Seçin +userSel.problemNoKey=Geçerli anahtar yok +userSel.problemMultipleKeys=Birçok anahtar first=ilk second=ikinci - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Şifreleme için OpenPGP Anahtarı seçin -identityName=Kimlik: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Şifrelemeyi aktif ettiniz, ama anahtar seçmediniz. %S e gönderilen postaları şifrelemek için, anahtar listenizden bir ya da daha fazla doğru anahtar seçmelisiniz. %S için şifrelemeyi kapatmak istiyor musunuz? -noKeyToUse=(yok - şifreleme yok) -noEmptyRule=Kural boş olamaz! Lütfen Kural alanına bir posta adresi belirtin. -invalidAddress=Girdiğiniz posta adres(ler)i düzgün değil. Alıcıların isimlerini girmemelisiniz, sadece posta adreslerini. Ör:\nYanlış: Yngwie Malmsteen \nDoğru: sirin.baba@adres.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Asla always=Her zaman possible=Mümkün -deleteRule=Seçili kuralı gerçekten silmek istiyor musunuz? -nextRcpt=(Sonraki alıcı) -negateRule=Değil -# addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=Seçtiğiniz fonksiyon çevrimdışı modda kullanılamaz. Çevrimiçi olup tekrar deneyin. -noKeyserverConn=%S konumundaki anahtar sunucuya bağlanılamadı. -internalError=Dahili hata. Anahtarlar indirilemedi veya aktarılamadı. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Anahtar sahibi güvenilirliği başarısız - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Anahtar imzalama başarısız -# alreadySigned.label=Note: the key %S is already signed with the selected secret key. -# alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -# partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -# noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Anahtarlar yükleniyor, lütfen bekleyin ... keyValid.unknown=bilinmeyen keyValid.invalid=yanlış keyValid.disabled=aktif değil keyValid.revoked=iptal edilmiş keyValid.expired=süresi dolmuş keyValid.noSubkey=düzgün alt anahtar yok - -keyTrust.untrusted=güvenilmeyen +keyValid.valid=geçerli +keyValid.ownKey=kendi anahtarın +keyTrust.untrusted=güvenilmemiş keyTrust.marginal=marjinal keyTrust.full=güvenilir -keyTrust.ultimate=ultra -# keyTrust.group=(group) -keyType.public=genel -keyType.publicAndSec=pub/sec -keyMan.enableKey=Anahtar Aktif Et -keyMan.disableKey=Anahtar Etkisiz Kıl +keyTrust.ultimate=en yüksek +keyTrust.group=(grup) userAtt.photo=Kullanıcı özelliği (JPEG resim) - -asciiArmorFile=ASCII Zırhlı Dosyalar (*.asc) -# importKeyFile=Import OpenPGP Key File -gnupgFile=GnuPG Dosyaları -saveRevokeCertAs=İptal etme sertifikası Oluştur & Kaydet -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=İptal sertifikası oluşturulamadı. - -addUidOK=Kullanıcı ID'si eklendi -addUidFailed=Kullanıcı ID'si ekleme başarısız -noKeySelected=Bu işlemi yapmak için en az bir anahtar seçmelisiniz -exportToFile=Genel Anahtarı Dosyaya Aktar -# exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Özel anahtarı kaydedilen OpenPGP anahtar dosyasına eklemek istiyor musunuz? -saveKeysOK=Anahtarlar kaydedildi -saveKeysFailed=Anahtarlar kaydedileMEdi -importKeysFailed=Anahtarlar aktarılamadı -enableKeyFailed=Anahtarları aktif/etkisiz yapılması başarısız -specificPubKeyFilename=%S (0x%S) pub -specificPubSecKeyFilename=%S (0x%S) pub-sec -defaultPubKeyFilename=Aktarilmis-genel-anahtarlar -defaultPubSecKeyFilename=Aktarilmis-genel-ve-ozel-anahtarlar - -sendKeysOk=Anahtar(lar) gönderildi -sendKeysFailed=Anahtarlar gönderileMEdi -receiveKeysOk=Anahtar(lar) güncellendi -receiveKeysFailed=Anahtarlar indirilemedi -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Panodan anahtar aktarmak ister misiniz? -# importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Seçili anahtar(lar) panoya kopyalanamadı -copyToClipbrdOK=Anahtar(lar) panoya kopyalandı - -# deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=UYARI: özel anahtarları silmek üzeresiniz!\nözel anahtarınızı silerseniz, bu anahtar için şifrelenmiş mesajları açamazsınız.İKİSİNİ de, seçili özel ve genel anahtarları silmek istediğinizden emin misiniz? -deletePubKey=Genel anahtarı silmek istiyor musunuz\n'%S'? -deleteSelectedPubKey=Genel anahtarları silmek istiyor musunuz? -deleteKeyFailed=Anahtar silinemedi -# revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=Anahtar iptal edildi. Anahtarınız bir anahtar sunucudaysa, tekrar yüklemeniz önerilir, böylece diğerleri iptal edildiğini görebilir. -revokeKeyFailed=Anahtar iptal edilemedi. -# revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! -# revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Anahtar seçmediniz. TÜM anahtarları yenilemek ister misiniz? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Uyarı: anahtar sayısı ve bağlantı hızına bağlı olarak, tüm anahtarların yenilenmesi uzun sürebilir!\n\nDevam? -# downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -# downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=&Gizli Anahtarları Dışa Aktar -keyMan.button.exportPubKey=Sadece &Açık Anahtarları Dışa Aktar +importKeyFile=OpenPGP Anahtar Dosyasını İçe Aktar +importPubKeysFailed=Aşağıdaki açık anahtarlar Thunderbird'e alınamıyor:\n\n%S +importSecKeysFailed=Aşağıdaki gizli anahtarlar Thunderbird'e alınamıyor:\n\n%S +deleteSecretKey=UYARI: Bir gizli anahtar silmek üzeresiniz!\nEğer gizli anahtarınızı silerseniz, bu anahtar için şifrelenmiş hiç bir iletinin şifresini artık çözemeyeceksiniz ve anahtarı iptal edemeyeceksiniz.\n\n '%S' anahtarının, hem açık anahtarının hem de gizli anahtarının İKİSİNİ de gerçekten silmek istiyor musunuz? +revokeKeyQuestion='%S' anahtarını iptal etmek üzeresiniz:\n\nBu anahtarla artık imzalayamayacaksınız, ve dağıtıldıktan sonra başkaları bu anahtarla şifreleme yapamayacaklar. Anahtarı eski iletilerin şifresini çözmek için kullanmaya devam edebilirsiniz.\n\nDevam etmek istiyor musunuz? +revokeKeyNotPresent=Bu iptal etme sertifikasına uyan (0x%S) anahtarına sahip değilsiniz!\n\nEğer anahtarı yitirdiyseniz, iptal sertifikasını içe aktarmadan önce anahtarı (örn. bir anahtar sunucusundan) tekrar içe aktarmalısınız. +revokeKeyAlreadyRevoked=0x%S anahtarı zaten iptal edilmiş. keyMan.button.import=&İçe Aktar -keyMan.button.refreshAll=&Tüm Anahtarları Tazele keyMan.button.revokeKey=&Anahtarı Hükümsüz Kıl - -keylist.noOtherUids=Başka kimliği yoktur -keylist.hasOtherUids=Ayrıca şöyle bilinir -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -# keyMan.addphoto.filepicker.title=Select photo to add -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -# keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -# keyMan.addphoto.failed=The photo could not be added. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Birincil kullanıcı ID'si değişimi başarısız -changePrimUidOK=Birincil kullanıcı ID'Si değiştirildi -revokeUidFailed=%S kullanıcı ID'sinin iptali başarısız -revokeUidOK=%S kullanıcı ID'si iptal edildi. Anahtarınız bir anahtar sunucudaysa, diğerlerinin iptali görebilmesi için tekrar yüklemeniz tavsiye edilir. -revokeUidQuestion=Gerçekten kullanıcı ID'si %S'i iptal etmek istiyor musunuz? - -# Strings in enigmailKeyImportInfo.xul -# importInfoTitle=SUCCESS! Keys imported -# importInfoBits=Bits -importInfoCreated=Oluşturuldu -importInfoFpr=Parmakizi -# importInfoDetails=(Details) -# importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=genel anahtar -keyTypePrimary=özel anahtar -keyTypeSubkey=altanahtar -keyTypePair=anahtar çifti -keyExpiryNever=asla keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA keyAlgorithm_16=ELG keyAlgorithm_17=DSA -# keyAlgorithm_18=ECDH -# keyAlgorithm_19=ECDSA +keyAlgorithm_18=ECDH +keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG -# keyAlgorithm_22=EDDSA -keyUsageEncrypt=Şifrele -keyUsageSign=İmzala -# keyUsageCertify=Certify -# keyUsageAuthentication=Authentication -keyDoesNotExpire=Anahtar son kullanma tarihi yok - -# Strings in enigmailGenCardKey.xul -keygen.started=Lütfen anahtar üretilirken bekleyin .... -keygen.completed=Anahtar Üretildi. Yeni Anahtar ID'si: 0x%S -keygen.keyBackup=Anahtar %S olarak yedeklendi -keygen.passRequired=Eğer anahtarınız için SmartCard'ınız dışında bir yedek yaratmak istiyorsanız bir parola belirtin. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN değiştirilemedi - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Anahtarlar yenileniyor, lütfen bekleyin ... -keyserverProgress.uploading=Anahtarlar gönderiliyor, lütfen bekleyin ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Anahtarları Yenile -keyserverTitle.uploading=Anahtarları Gönder -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -# setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -# setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -# setupWizard.importSettingsFile=Specify backup file to load from -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -# setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -# installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -# installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=İsim ve mail adresi girmeniz gerekiyor -addUidDlg.nameMinLengthError=İsmin en az 5 karakter olması gerekiyor -addUidDlg.invalidEmailError=Doğru bir mail adresi belirtmelisiniz - -# Strings in enigmailCardDetails.js -# Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types -# errorType.SecurityCertificate=The security certificate presented by the web service is not valid. -# errorType.SecurityProtocol=The security protocol used by the web service is unknown. -# errorType.Network=A network error has occurred. - -# filter stuff -# filter.folderRequired=You must select a target folder. -# filter.decryptMove.label=Decrypt permanently (Enigmail) -# filter.decryptCopy.label=Create decrypted Copy (Enigmail) -# filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -# saveLogFile.title=Save Log File - -# strings in gpg.jsm -# unknownSigningAlg=Unknown signing algorithm (ID: %S) -# unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm -# keyring.photo=Photo -# keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. -# keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. -# keyRing.pubKeyNotForSigning=The key %1$S (key ID %2$S) cannot be used for signing. -# keyRing.pubKeyNotForEncryption=The key %1$S (key ID %2$S) cannot be used for encryption. -# keyRing.keyDisabled=The key %1$S (key ID %2$S) is disabled; it cannot be used. -# keyRing.keyNotTrusted=The key %1$S (key ID %2$S) is not trusted enough. Please set the trust level of your key to "ultimate" to use it for signing. -# keyRing.keyInvalid=The key %1$S (key ID %2$S) is not valid. Please consider verifying it correctly. Alternatively use the Default encryption settings in the Enigmail preferences dialog. -# keyRing.signSubKeysRevoked=All signing-subkeys of key %1$S (key ID %2$S) are revoked. -# keyRing.signSubKeysExpired=All signing-subkeys of key %1$S (key ID %2$S) have expired. -# keyRing.signSubKeysUnusable=All signing-subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. -# keyRing.encSubKeysRevoked=All encryption subkeys of key %1$S (key ID %2$S) are revoked. -# keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. -# keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. -# keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -# cannotWriteToFile=Cannot save to file '%S'. Please select a different file. -# dataExportError=An error occurred during exporting your data. -# enigmailSettings=EnigmailSettings -# defaultBackupFileName=Enigmail-export -# specifyExportFile=Specify file name for exporting -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm -# expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. -# expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. -# expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. -# expiry.OpenKeyManager=Open Enigmail Key Management -# expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm -# gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. -# gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. -# gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. -# gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. -# gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -pepPrivacyStatus.RatingUndefinedText=Bilinmeyen -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +keyAlgorithm_22=EDDSA +setupWizard.selectKeysButton=Anahtarları Seçin +errorType.SecurityCertificate=Web hizmetinin sunduğu güvenlik sertifikası geçerli değil. +errorType.SecurityProtocol=Web hizmetinin kullandığı güvenlik protokolü bilinmiyor. +errorType.Network=Bir ağ hatası oluştu. +keyring.photo=Fotoğraf +keyRing.pubKeyRevoked=%1$S (anahtar kimliği %2$S) anahtarı iptal edildi. +keyRing.pubKeyExpired=%1$S (anahtar kimliği %2$S) anahtarının süresi doldu. +keyRing.pubKeyNotForSigning=%1$S (anahtar kimliği %2$S) anahtarı imzalama için kullanılamaz. +keyRing.pubKeyNotForEncryption=%1$S (anahtar kimliği %2$S) anahtarı şifreleme için kullanılamaz. +keyRing.keyDisabled=%1$S (anahtar kimliği %2$S) anahtarı devre dışı; kullanılamaz. +keyRing.keyNotTrusted=%1$S (anahtar kimliği %2$S) anahtarına yeterince güvenilmemiş. Anahtarı imzalamak için kullanmak istiyorsanız güven düzeyini "en yüksek" olarak ayarlayın. +keyRing.keyInvalid=%1$S (anahtar kimliği %2$S) anahtarı geçerli değil. Onu düzgün bir şekilde doğrulamayı değerlendirin. Bunun yerine Enigmail tercihleri penceresinde Varsayılan şifreleme ayarını da kullanabilirsiniz. +keyRing.signSubKeysRevoked=%1$S (anahtar kimliği %2$S) anahtarının bütün imzalama alt anahtarları iptal edilmiş. +keyRing.signSubKeysExpired=%1$S (anahtar kimliği %2$S) anahtarının bütün imzalama alt anahtarlarının süresi dolmuş. +keyRing.signSubKeysUnusable=%1$S (anahtar kimliği %2$S) anahtarının bütün imzalama alt anahtarları iptal edilmiş, süresi dolmuş veya kullanılamaz durumdalar. +keyRing.encSubKeysRevoked=%1$S (anahtar kimliği %2$S) anahtarının bütün şifreleme alt anahtarları iptal edilmiş. +keyRing.encSubKeysExpired=%1$S (anahtar kimliği %2$S) anahtarının bütün şifreleme alt anahtarlarının süresi dolmuş. +keyRing.noSecretKey=Anahtarlığınızda %1$S (anahtar kimliği %2$S) anahtarının gizli anahtarına sahip değilsiniz gibi gözüküyor; bu anahtarı imzalama için kullanamazsınız. +keyRing.encSubKeysUnusable=%1$S (anahtar kimliği %2$S) anahtarının bütün şifreleme alt anahtarları iptal edilmiş, süresi dolmuş veya kullanılamaz durumdalar. +dataExportError=Verileriniz dışa aktarılırken bir hata oluştu. +expiry.keyExpiresSoon=%1$S anahtarınızın %2$S gün içerisinde süresi dolacaktır.\n\nYeni bir anahtar çifti oluşturmanızı ve ilgili hesaplarınızı bu çifti kullanacak şekilde yapılandırmanızı öneriyoruz. +expiry.keysExpireSoon=Aşağıdaki anahtarlarınızın %1$S gün içerisinde süresi dolacaktır:\n%2$S. Yeni anahtarlar oluşturmanızı ve ilgili hesaplarınızı bunları kullanacak şekilde yapılandırmanızı öneriyoruz. +expiry.keyMissingOwnerTrust=Gizli anahtarınız %S güveni yok.\n\nAnahtar özelliklerinden "Sertifikalara dayanıyor" ve "en yüksek" arasında bir değer seçmenizi öneririz. +expiry.keysMissingOwnerTrust=Aşağıdaki gizli anahtarlarınızın güveni yok.\n\nAnahtar özelliklerinden "Sertifikalara dayanıyor" ve "en yüksek" arasında bir değer seçmenizi öneririz. +expiry.OpenKeyManager=Enigmail Anahtar Yönetimini Aç +expiry.OpenKeyProperties=Anahtar Özelliklerini Aç +gpghomedir.notexists=OpenPGP anahtarlarınızı içeren '%S' dizini mevcut değil ve oluşturulamıyor. +gpghomedir.notwritable=OpenPGP anahtarlarınızı içeren '%S' dizini yazılabilir değil. +gpghomedir.notdirectory=OpenPGP anahtarlarınızı içeren '%S' dizini, bir dizin yerine dosya biçiminde. +gpghomedir.notusable=Lütfen dizin izinlerini düzeltin veya GnuPG "ana" dizininin konumunu değiştirin. Yoksa GnuPG düzgün bir şekilde çalışmayacaktır. +gpgAgent.noAutostart=GnuPG %S sürümünü kullanıyorsunuz. Bu sürüm gpg-agent aracının Thunderbird başlatılmadan başlaması ve "GPG_AGENT_INFO" ortam değişkenin önceden yüklenmesi gerekiyor.\n\nBu ön koşullar sağlanmamış gözüküyor, bu sorun çözülmeden Enigmail kullanamazsınız. +upgradeInfo.doctitle=Enigmail'den Elveda +upgradeInfo.welcome1=OpenPGP şifreleme şimdi Thunderbird'in bir parçası +upgradeInfo.welcome2=Thunderbird üzerinde Enigmail eklentisine artık ihtiyaç yok ve eklenti artık kullanılmayacak. Bu Thunderbird için Enigmail'in son sürümü. +upgradeInfo.migrateSettings.title=Anahtarlarınızı ve ayarlarınızı GnuPG'den Thunderbird'e aktarmanız gerekiyor. +upgradeInfo.migrateSettings.desc=Enigmail kaldırmadan önce, GnuPG'den anahtarlarınızı Thunderbird'e almanız ve bazı önemli ayarları Enigmail'den Thunderbird'e aktarmanız gerekiyor. Bu adımları sizin için gerçekleştirecek bir sihirbaz hazırladık. +upgradeInfo.performMigration.buttonLabel=Aktarmaya Başla +upgradeInfo.thankyou.title=Enigmail kullandığınız için teşekkürler +upgradeInfo.thankyou.desc1=Neredeyse 20 yıldır Enigmail üzerinde çalışmak bir zevkti. Şifreli e-postalar fikrine katkı sağlayabildiğimiz için müteşekkiriz. Enigmail'ı yararlı bulduğunuzu umuyor ve bu yıllar boyunca süren desteğiniz için teşekkür ediyoruz. +upgradeInfo.thankyou.desc2=Yardımcı olmak istiyorsanız o zaman lütfen Thunderbird'e bağışta bulunmayı düşünün. aboutEnigmail.tabName=Enigmail Hakkında -# aboutEnigmail.title=OpenPGP support provided by Enigmail -# aboutEnigmail.team=Enigmail is developed by the Enigmail Team: -# aboutEnigmail.projectLeader=Lead Developer: -# aboutEnigmail.usability=Usability: -# aboutEnigmail.documentation=Documentation: -# aboutEnigmail.testing=Testing: -# aboutEnigmail.userSupport=User Support: -# aboutEnigmail.userSupport.team=the team and the list/forum members -# aboutEnigmail.localization=Localization: See the Enigmail Language Packs page -# aboutEnigmail.Credits=Credits: -# aboutEnigmail.origAuthor=Original author of the Enigmail extension -# aboutEnigmail.icons=Icons: -# aboutEnigmail.formerMembers=Former team members: -# aboutEnigmail.projectHosting=Project hosting: -# aboutEnigmail.licenseSupportTitle=License & Support -# aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S -# aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates -# updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm -# import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +aboutEnigmail.title=OpenPGP desteği Enigmail tarafından sağlanıyor +aboutEnigmail.team=Enigmail, Enigmail Takımı tarafından geliştiriliyor: +aboutEnigmail.projectLeader=Baş Geliştirici: +aboutEnigmail.usability=Kullanılırlık: +aboutEnigmail.documentation=Belgelendirme: +aboutEnigmail.testing=Sınama: +aboutEnigmail.userSupport=Kullanıcı Desteği: +aboutEnigmail.userSupport.team=takım ve liste/forum üyeleri +aboutEnigmail.localization=Yerelleştirme: Enigmail Dil Paketleri sayfasınabakınız +aboutEnigmail.Credits=Katkı Sağlayanlar: +aboutEnigmail.origAuthor=Enigmail eklentisinin asıl geliştiricisi +aboutEnigmail.icons=Simgeler: +aboutEnigmail.formerMembers=Önceki takım üyeleri: +aboutEnigmail.projectHosting=Proje barındırma: +aboutEnigmail.licenseSupportTitle=Lisans ve Destek +aboutEnigmail.license=Enigmail OpenPGP açık kaynaktır ve %S altında lisanslanmıştır. +aboutEnigmail.support=Destek ve indirme www.enigmail.net adresinde mevcuttur. +updateGnuPG.checkUpdate=GnuPG Güncellemelerini Denetle +import.secretKeyImportError=GnuPG'de gizli anahtarlar içe aktarılırken bir hata oluştu. İçe aktarma başarısız oldu. +passphrasePrompt=Şu anahtar için parolayı girin: %S +openpgpInitError=Thunderbird OpenPGP altyapısı başlatılırken bir hata oluştu.\n\nThunderbird OpenPGP doğru bir şekilde başlatılamayınca aktarma sihirbazı devam edemez. diff -Nru enigmail-2.1.6+ds1/lang/tr/help/compose.html enigmail-2.2.4/lang/tr/help/compose.html --- enigmail-2.1.6+ds1/lang/tr/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/tr/help/editRcptRule.html enigmail-2.2.4/lang/tr/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/tr/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/tr/help/initError.html enigmail-2.2.4/lang/tr/help/initError.html --- enigmail-2.1.6+ds1/lang/tr/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/tr/help/messenger.html enigmail-2.2.4/lang/tr/help/messenger.html --- enigmail-2.1.6+ds1/lang/tr/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/tr/help/rulesEditor.html enigmail-2.2.4/lang/tr/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/tr/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/tr/help/sendingPrefs.html enigmail-2.2.4/lang/tr/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/tr/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/tr/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/vi/am-enigprefs.properties enigmail-2.2.4/lang/vi/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/vi/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=Bảo mật cho OpenPGP +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/vi/enigmail.dtd enigmail-2.2.4/lang/vi/enigmail.dtd --- enigmail-2.1.6+ds1/lang/vi/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' để chỉ định các địa chỉ email"> - - -' để chỉ định các địa chỉ email cho GnuPG. Tắt nếu người nhận có khoá Hushmail cũ."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bảo mật cho OpenPGP)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý: Có thể mất vài phút để hoàn tất việc tạo khoá. Đừng thoát ứng dụng khi đang tạo khoá. Việc duyệt tìm hay thực hiện những thao tác sử dụng cật lực ổ đĩa trong lúc tạo khoá sẽ bổ sung 'tính ngẫu nhiên' và tăng tốc tiến trình. Bạn sẽ được thông báo khi tạo khoá hoàn tất."> - @@ -296,487 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' không hợp lệ"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý: Có thể mất mấy phút để hoàn tất việc tạo ra khóa. Đừng ra khỏi ứng dụng trong khi việc tạo ra khóa đang tiến triển. Bạn sẽ được báo cho biết khi việc tạo ra khóa được hoàn tất."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/vi/enigmail.properties enigmail-2.2.4/lang/vi/enigmail.properties --- enigmail-2.1.6+ds1/lang/vi/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Cảnh báo Enigmail # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Lỗi Enigmail enigPrompt=Nhắc nhở Enigmail - -dlgYes=&Có dlgNo=&Không dlgKeepSetting=Nhớ câu trả lời của tôi và đừng hỏi lại nữa dlgNoPrompt=Đừng hiện lại hộp thoại này nữa -dlg.button.delete=&Xoá dlg.button.cancel=&Huỷ dlg.button.close=&Đóng dlg.button.continue=Tiếp &tục -dlg.button.skip=&Bỏ qua -dlg.button.overwrite=&Chép đè -dlg.button.view=&Xem -dlg.button.retry=&Thử lại -dlg.button.ignore=&Bỏ qua -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\nCảnh báo này sẽ lặp lại %S repeatSuffixSingular=lần nữa. repeatSuffixPlural=lần nữa. noRepeat=\n\nCảnh báo này sẽ không lặp lại cho đến khi bạn nâng cấp Enigmail. - -pgpNotSupported=Có vẻ như bạn đang dùng Enigmail cùng với PGP 6.x\n\nĐáng tiếc là PGP 6.x có một vài vấn đề ngăn cản Enigmail hoạt động đúng cách. Vậy nên, Enigmail không còn hỗ trợ PGP 6.x nữa; xin chuyển sang dùng GnuPG (GPG) thay vào đó.\n\nNếu bạn cần hỗ trợ chuyển sang GnuPG, hãy tham khảo mục Trợ giúp trên trang chủ Enigmail. -initErr.howToFixIt=Để dùng Enigmail cần có GnuPG. Nếu bạn chưa cài GnuPG, cách dễ dàng nhất là dùng nút "Trình hướng dẫn cài đặt" bên dưới. -initErr.setupWizard.button=&Trình hướng dẫn cài đặt passphraseCleared=Đã xoá mật khẩu. cannotClearPassphrase=Bạn đang dùng một công cụ không tiêu chuẩn (như là gnome-keyring) để xử lý mật khẩu. Vậy nên không thể xoá mật khẩu khi dùng Enigmail. -noPhotoAvailable=Không có ảnh nào -debugLog.title=Nhật ký dò lỗi Enigmail -error.photoPathNotReadable=Không đọc được đường dẫn đến ảnh '%S' - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Phiên bản Enigmail mới này có những thay đổi đáng kể trong việc quản lý tinh chỉnh và tuỳ chọn. Chúng tôi đã cố gắng chuyển cài đặt cũ sang bản mới này. Tuy nhiên, chúng tôi không thể đảm bảo toàn bộ thao tác một cách tự động. Xin kiểm tra kỹ tinh chỉnh và tuỳ chọn mới. -enigmailCommon.checkPreferences=Kiểm tra Tinh chỉnh... -preferences.defaultToPgpMime=Chúng tôi đã đổi cách mã hoá tin nhắn mặc định trong Enigmail từ Inline-PGP thành PGP/MIME. Chúng tôi khuyên bạn giữ nó làm mặc định.\n\nNếu bạn vẫn muốn dùng Inline-PGP làm mặc định, bạn có thể vào Cài đặt tài khoản dưới mục Bảo mật cho OpenPGP. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Đang chạy Enigmail phiên bản %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Sử dụng %1$S tập tin chạy %2$S để mã hoá và giải mã agentError=LỖI: Không truy cập được dịch vụ trọng yếu của Enigmail! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Lỗi truy cập dịch vụ Enigmail -onlyGPG=Tạo khoá chỉ hoạt động với GnuPG (chứ không phải PGP)! - -keygenComplete=Hoàn tất tạo khoá! Danh tính <%S> sẽ được dùng để ký tên. -revokeCertRecommended=Chúng tôi khuyên bạn tạo một chứng nhận huỷ cho khoá của bạn. Chứng nhận này có thể được dùng để vô hiệu hoá khoá của bạn, VD. trong trường hợp khoá bí mật của bạn thất lạc hoặc bị lộ. Bạn có muốn tạo một chứng nhận huỷ ngay không? -keyMan.button.generateCert=&Tạo chứng nhận -genCompleteNoSign=Hoàn tất tạo khoá! -genGoing=Đã bắt đầu tạo khoá! - -passNoMatch=Các mục mật khẩu không trùng khớp; xin nhập lại -passCheckBox=Xin đánh dấu hộp chọn nếu không chỉ định mật khẩu cho khoá -passUserName=Xin chỉ định tên người dùng cho danh tính này -keygen.missingUserName=Chưa có tên chỉ định nào cho tài khoản/danh tính đã chọn. Xin nhập một giá trị vào trường "Tên của bạn" trong cài đặt tài khoản. -keygen.passCharProblem=Bạn đang dùng các ký tự đặc biệt cho mật khẩu. Đáng tiếc là nó sẽ gây rắc rối cho các ứng dụng khác. Chúng tôi khuyên bạn chọn mật khẩu chỉ chứa các ký tự này:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Vì lý do kỹ thuật, mật khẩu của bạn không thể bắt đầu hoặc kết thúc với khoảng trắng. -changePassFailed=Đổi mật khẩu thất bại. - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Tạo khoá -keyAbort=Huỷ tạo khoá? -keyMan.button.generateKeyAbort=&Huỷ tạo khoá? -keyMan.button.generateKeyContinue=&Tiếp tục tạo khoá? -expiryTooLong=Bạn không thể tạo khoá có hạn dùng quá 100 năm. -expiryTooLongShorter=Bạn không thể tạo khoá có hạn dùng quá 90 năm. -expiryTooShort=Khoá của bạn phải còn hiệu lực trong ít nhất một ngày. -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=Không thể đổi ngày hết hạn. - -# Strings in enigmailMessengerOverlay.js -securityInfo=Thông tin bảo mật cho Enigmail\n\n - -enigHeader=Enigmail: -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Có thể tin nhắn đã được mã hoá hoặc ký tên bằng PGP/MIME; hãy dùng tính năng 'Giải mã/Xác minh' để kiểm chứng - -saveAttachmentHeader=Enigmail: Lưu tập tin đính kèm đã giải mã -noTempDir=Không thấy thư mục tạm nào để chép vào\nXin đặt biến môi trường TEMP -attachmentPgpKey=Có vẻ như tập tin đính kèm '%S' bạn đang mở là tập tin khoá OpenPGP.\n\nNhấp 'Nhập' để nhập các khoá chứa trong đó hoặc 'Xem' để xem nội dung tập tin trên cửa sổ trình duyệt - -beginPgpPart=********* *BẮT ĐẦU PHẦN MÃ HOÁ hoặc KÝ TÊN* ********* -endPgpPart=********** *KẾT THÚC PHẦN MÃ HOÁ hoặc KÝ TÊN* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Tìm thấy nhiều khối tin nhắn -- đã huỷ giải mã/xác minh* - -decryptOkNoSig=Cảnh báo\n\nGiải mã thành công, nhưng không thể xác minh chữ ký đúng cách được -msgOvl.button.contAnyway=&Vẫn tiếp tục -signature.verifiedOK=Đã xác minh thành công chữ ký cho tập tin đính kèm %S -signature.verifyFailed=Không thể xác minh chữ ký cho tập tin đính kèm %S -attachment.noMatchToSignature=Không thể đối chiếu tập tin đính kèm '%S' với tập tin chữ ký -attachment.noMatchFromSignature=Không thể đối chiếu tập tin chữ ký '%S' với tập tin đính kèm -fixBrokenExchangeMsg.failed=Thất bại khi sửa chữa tin nhắn. -enigmail.msgViewColumn.label=Enigmail -# enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Chọn các khoá OpenPGP để Chèn keysToUse=Chọn (các) khoá OpenPGP để dùng cho %S pubKey=Khoá công khai cho %S\n - -windowLocked=Cửa sổ soạn tin nhắn đã bị khoá; huỷ gửi tin -sendUnencrypted=Không khởi chạy Enigmail được.\nGửi tin nhắn không mã hoá chứ? -composeSpecifyEmail=Xin chỉ định địa chỉ email chính mà bạn sẽ dùng để chọn khoá ký tên cho các tin nhắn gửi đi.\nNếu để trống thì địa chỉ ĐẾN TỪ của tin nhắn sẽ được dùng để chọn khoá ký tên. -sendingHiddenRcpt=Tin nhắn này có chứa người nhận dạng BCC (bản sao ẩn danh). Nếu được mã hoá, nó có thể che giấu những người nhận BCC nhưng người dùng một số sản phẩm (VD: PRP Corp.) sẽ không thể giải mã tin nhắn. Vì vậy, chúng tôi khuyên bạn tránh dùng email BCC với tin nhắn được mã hoá. -sendWithHiddenBcc=Ẩn người nhận dạng BCC -sendWithShownBcc=Mã hoá thông thường -sendingNews=Đã huỷ thao tác gửi được mã hoá.\n\nKhông thể mã hoá tin nhắn này vì nó có chứa người nhận trong nhóm tin. Xin gửi lại tin nhắn không có mã hoá. -sendToNewsWarning=Cảnh báo: bạn sắp gửi email được mã khoá đến một nhóm tin.\n\nBạn không nên làm vậy vì nó chỉ phù hợp khi tất cả thành viên trong nhóm đều có thể giải mã tin nhắn, nghĩa là tin nhắn cần được mã hoá bằng khoá của tất cả những người tham gia. Xin gửi thư này chỉ khi bạn biết chắc mình đang làm gì.\n\nTiếp tục chứ? -hasHTML=Cảnh báo thư HTML:\nTin nhắn này có thể chứa HTML và có khả năng làm cho việc ký tên/mã hoá thất bại. Để tránh việc này trong tương lai, bạn nên bấm phím SHIFT khi nhấp vào nút Soạn tin/Trả lời để gửi thư được ký tên.\nNếu bạn ký tên thư theo mặc định, bạn nên bỏ chọn hộp tuỳ chỉnh 'Soạn tin nhắn bằng HTML' để tắt thư HTML vĩnh viễn cho tài khoản thư này. -strippingHTML=Tin nhắn có chứa thông tin định dạng HTML sẽ bị mất khi chuyển thành văn bản thông thường để ký tên/mã hoá. Bạn có muốn tiến hành không? -msgCompose.button.sendAnyway=&Vẫn gửi tin nhắn -attachWarning=Các tập tin đính kèm trong tin nhắn này không nằm trên máy, không thể mã hoá được chúng. Để mã hoá, đầu tiên hãy lưu chúng vào máy rồi đính kèm. Bạn vẫn muốn gửi tin nhắn chứ? quotedPrintableWarn=Bạn đã bật cách mã hoá 'quoted-printable' để gửi tin nhắn. Nó có thể dẫn đến việc giải mã và/hoặc xác minh không đúng tin nhắn của bạn.\nBạn có muốn tắt gửi tin nhắn dạng 'quoted-printable' ngay? -minimalLineWrapping=Bạn đã cài đặt bao dòng cho các ký tự %S. Để việc mã hoá và/hoặc ký tên diễn ra đúng cách, cần đặt giá trị này ít nhất là 68.\nBạn có muốn đổi bao dòng thành 68 ký tự ngay? warning=Cảnh báo -signIconClicked=Bạn đã chỉnh sửa thủ công việc ký tên. Vì vậy, khi bạn soạn tin nhắn này, bật (tắt) việc ký tên không còn phụ thuộc vào bật (tắt) mã hoá nữa. -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Lỗi khi lưu thư nháp -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Lỗi nội vi: mã hoá cam kết đã bị tắt -msgCompose.internalError=Đã xảy ra lỗi nội vi. - -msgCompose.toolbarTxt.signAndEncrypt=Tin nhắn này sẽ được ký tên và mã hoá -msgCompose.toolbarTxt.signOnly=Tin nhắn này sẽ được ký tên -msgCompose.toolbarTxt.encryptOnly=Tin nhắn này sẽ được mã hoá -msgCompose.toolbarTxt.noEncryption=Tin nhắn này sẽ không được ký tên và mã hoá -msgCompose.toolbarTxt.disabled=Đã tắt Enigmail cho danh tính được chọn -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=Chi tiết ... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -msgCompose.pepSendSecure=Bảo mật -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Đã huỷ thao tác gửi.\n\n - -# details: keyNotTrusted=Không đủ tín nhiệm đối với khoá '%S' -keyNotFound=Không tìm thấy khoá '%S' -keyRevoked=Đã huỷ khoá '%S' -keyExpired=Khoá '%S' đã hết hạn - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=ĐÃ KÝ TÊN -statEncrypted=ĐÃ MÃ HOÁ -statPlain=KHÔNG KÝ TÊN và KHÔNG MÃ HOÁ - -offlineSave=Lưu %1$S tin nhắn vào %2$S trong thư mục Tin nhắn chưa gửi? - -onlineSend=Gửi %1$S tin nhắn đến %2$S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Gửi tin nhắn không mã hoá -recipientsSelectionHdr=Chọn người nhận để mã hoá - -configureNow=Bạn chưa cấu hình bảo mật Enigmail cho danh tính được chọn. Bạn có muốn cấu hình ngay? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Mã hoá tin nhắn (tự động) -encryptMessageNorm=Mã hoá tin nhắn -signMessageAuto=Ký tên tin nhắn (tự động) -signMessageNorm=Ký tên tin nhắn - -encryptOff=Mã hoá: TẮT -encryptOnWithReason=Mã hoá: BẬT (%S) -encryptOffWithReason=Mã hoá: TẮT (%S) -encryptOn=Mã hoá: BẬT -signOn=Ký tên: BẬT -signOff=Ký tên: TẮT -signOnWithReason=Ký tên: BẬT (%S) -signOffWithReason=Ký tên: TẮT (%S) -reasonEnabledByDefault=bật theo mặc định -reasonManuallyForced=bắt buộc thủ công -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=bắt buộc theo mã hoá tự động -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=do chế độ mã hoá - -# should not be used anymore: -encryptYes=Tin nhắn sẽ được mã hoá -encryptNo=Tin nhắn sẽ không được mã hoá - -# should not be used anymore: -signYes=Tin nhắn sẽ được ký tên -signNo=Tin nhắn sẽ không được ký tên - - -# PGP/MIME status: -pgpmimeNormal=Giao thức: PGP/MIME -inlinePGPNormal=Giao thức: Inline PGP -# smimeNormal=Protocol: S/MIME -pgpmimeAuto=Giao thức: PGP/MIME (tự động) -inlinePGPAuto=Giao thức: Inline PGP (tự động) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME sẽ được dùng -pgpmimeNo=Inline PGP sẽ được dùng - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Đã phát hiện mâu thuẫn trong quy tắc cho từng người nhận\n%S\n\nGửi tin nhắn với những cài đặt này? -msgCompose.button.configure=&Cấu hình -msgCompose.button.send=&Gửi tin nhắn -msgCompose.button.save=&Lưu tin nhắn - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Khoá công khai %S cần được xác minh chữ ký -keyUsed=Khoá công khai %S được dùng để xác minh chữ ký -clickDecrypt=; dùng tính năng 'Giải mã/Xác minh' -clickDecryptRetry=; dùng tính năng 'Giải mã/Xác minh' để thử lại -clickDetailsButton=; nhấp vào nút 'Chi tiết' để biết thêm thông tin -clickImportButton=; nhấp vào nút 'Nhập khoá' để nhập khoá -keyTypeUnsupported=; loại khoá này không được hỗ trợ bởi phiên bản GnuPG của bạn -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=Giải mã -msgPart=Một phần của tin nhắn %S -msgSigned=đã ký tên -msgSignedUnkownKey=đã ký tên với khoá lạ -msgEncrypted=đã mã hoá -msgSignedAndEnc=đã ký tên và mã hoá - unverifiedSig=Chữ ký chưa được xác minh -incompleteDecrypt=Giải mã không hoàn tất -needKey=Lỗi - không thấy khoá cá nhân/bí mật trùng khớp để giải mã tin nhắn -failedDecrypt=Lỗi - giải mã thất bại badPhrase=Lỗi - sai mật khẩu # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Lỗi - giải mã/xác minh thất bại -viewInfo=; Xem > Thông tin bảo mật tin nhắn để biết chi tiết -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Tin nhắn đã giải mã -decryptedMsgWithFormatError=Tin nhắn đã giải mã (định dạng đã được khôi phục của email PGP, bị hỏng có lẽ là do máy chủ Exchange cũ, vậy nên kết quả có thể không hoàn chỉnh để đọc) - -usedAlgorithms=Đã dùng thuật toán: %S và %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -# wksConfirmationReq.button.label=Confirm Request - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Định vị chương trình GnuPG -invalidGpgPath=Không chạy được GnuPG với đường dẫn đã cung cấp. Vì vậy, Enigmail sẽ bị tắt cho đến khi bạn đổi lại đường dẫn đến GnuPG hoặc đến khi bạn tái khởi chạy ứng dụng. -warningsAreReset=Đã cài lại tất cả cảnh báo. -prefs.gpgFound=Đã tìm thấy GnuPG trong %S -prefs.gpgNotFound=Không tìm thấy GnuPG -prefs.warnAskNever=Cảnh báo: bật tuỳ chọn này sẽ dẫn đến email không được mã hoá mà không kèm thông tin gì khác nếu không có khoá cho một trong những người nhận -- Enigmail sẽ không thông báo cho bạn nếu điều này xảy ra! -prefs.warnIdleTimeForUnknownAgent=Không thể kết nối đến gpg-agent. Có lẽ hệ thống của bạn sử dụng một công cụ chuyên biệt để xử lý mật khẩu (VD: gnome-keyring, seahorse-agent, trình quản lý ví KDE, ...). Đáng tiếc là Enigmail không thể kiểm soát thời gian chờ cho công cụ mà bạn đang dùng. Vậy nên cài đặt thời gian chờ tương ứng trong Enigmail sẽ bị bỏ qua. -prefEnigmail.oneKeyserverOnly=Lỗi - bạn chỉ có thể chỉ định một máy chủ quản lý khoá để tự động tải về các khoá OpenPGP còn thiếu. -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -# aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Xin gõ PIN QUẢN TRỊ SmartCard của bạn -enterCardPin=Xin gõ PIN SmartCard của bạn - -notInit=Lỗi - Dịch vụ Enigmail chưa được khởi chạy badCommand=Lỗi - lệnh mã hoá thất bại cmdLine=dòng lệnh và kết xuất: -notRequired=Lỗi - không yêu cầu mã hoá -notComplete=Lỗi - chưa hoàn tất tạo khoá -invalidEmail=Lỗi - (các) địa chỉ email không hợp lệ noPassphrase=Lỗi - chưa cung cấp mật khẩu noPGPblock=Lỗi - Không thấy khối dữ liệu OpenPGP được bảo vệ nào hợp lệ -unverifiedReply=Phần tin nhắn thụt lề (hồi đáp) có lẽ đã được chỉnh sửa -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Lỗi - Chữ ký không trùng khớp -# cantImport=Error importing public key\n\n -doImportOne=Nhập %1$S (%2$S)? -doImportMultiple=Nhập những khoá sau?\n\n%S -previewFailed=Không thể đọc tập tin khoá công khai. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=SmartCard %1$S tìm thấy trong trình đọc của bạn không thể dùng để xử lý tin nhắn được.\nVui lòng chèn SmartCard %2$S của bạn và lặp lại thao tác. sc.insertCard=Thao tác này cần SmartCard %S của bạn.\nXin chèn SmartCard cần thiết và lặp lại thao tác. sc.removeCard=Thao tác không cần SmartCard nào trong trình đọc.\nXin lấy SmartCard của bạn ra và lặp lại thao tác. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Không thể truy cập trình đọc SmartCard của bạn.\nXin nối trình đọc SmartCard của bạn vào, gắn thẻ, và lặp lại thao tác. # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Xin chọn một khoá hợp lệ trong mục OpenPGP của Cài đặt tài khoản. missingPassphrase=Mật khẩu còn thiếu errorHandling.gpgAgentInvalid=Hệ thống đang chạy phiên bản gpg-agent không phù hợp với phiên bản GnuPG của bạn. errorHandling.gpgAgentError=GnuPG đã báo cáo một lỗi trong giao tiếp với gpg-agent (một thành tố của GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG không thể yêu cầu mật khẩu qua pinentry. # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=Đây là lỗi cài đặt hoặc cấu hình hệ thống đã ngăn cản Enigmail hoạt động bình thường và không thể tự động xử lý.\n\nChúng tôi chân thành khuyên bạn nhận tư vấn từ trang hỗ trợ của chúng tôi tại https://enigmail.net/faq. - gpgNotFound=Không thể tìm được chương trình '%S' GnuPG.\nHãy bảo đảm là bạn đã đặt đúng đường dẫn thực thi GnuPG trong Tuỳ chỉnh của Enigmail. gpgNotInPath=Không thể tìm được tập tin chạy GnuPG trong ĐƯỜNG DẪN.\nHãy bảo đảm là bạn đã đặt đúng đường dẫn thực thi GnuPG trong Tuỳ chỉnh của Enigmail. enigmailNotAvailable=Dịch vụ trọng yếu của Enigmail không hoạt động - -prefGood=Chữ ký tốt từ %S -prefBad=Chữ ký XẤU từ %S - failCancel=Lỗi - Người dùng đã huỷ nhận khoá failKeyExtract=Lỗi - lệnh trích xuất khoá đã thất bại -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=Lỗi - Khối OpenPGP đầu tiên chứ không phải khối khoá công khai importKeyConfirm=Nhập (các) khoá công khai được nhúng trong tin nhắn? -failKeyImport=Lỗi - nhập khoá thất bại fileWriteFailed=Chép vào tập tin %S thất bại - importKey=Nhập khoá công khai %S từ máy chủ quản lý khoá: uploadKey=Gửi khoá công khai %S đến máy chủ quản lý khoá: keyId=ID khoá -keyAndSigDate=ID khoá: 0x%1$S / Đã ký vào: %2$S -keyFpr=Vân tay của khoá: %S -noEmailProvided=Bạn đã không cung cấp địa chỉ email! -keyAlreadySigned=Khoá đã được ký tên rồi, bạn không thể ký nó hai lần. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=%S đã hết hạn createdHeader=Đã tạo atLeastOneKey=Không có khoá nào được chọn! Bạn phải chọn ít nhất một khoá để chấp nhận hộp thoại này fewerKeysThanRecipients=Bạn đã chọn số khoá nhỏ hơn số người nhận. Có chắc là danh sách khoá để mã hoá là đầy đủ? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Chọn một khoá OpenPGP bí mật để ký tên tin nhắn của bạn userSel.problemNoKey=Không có khoá nào hợp lệ userSel.problemMultipleKeys=Nhiều khoá -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Gửi đi sau - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=thứ nhất second=thứ nhì - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Chọn khoá OpenPGP để mã hoá -identityName=Danh tính: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=Bạn đã kích hoạt mã hoá, nhưng lại chưa chọn khoá. Để mã hoá các thư gửi đến %1$S, bạn cần chỉ định một (hay một vài) khoá hợp lệ từ danh sách khoá. Bạn có muốn tắt mã hoá cho %2$S không? -noKeyToUse=(không có gì - không mã hoá) -noEmptyRule=Quy tắc không được rỗng! Xin đặt một địa chỉ email vào trường Quy tắc. -invalidAddress=(Các) địa chỉ email bạn đã nhập không hợp lệ. Bạn không nên nhập tên của người nhận, chỉ địa chỉ email thôi. V.D:\nKhông hợp lệ: Một vài cái tên \nHợp lệ: some.name@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Không bao giờ always=Luôn luôn possible=Có thể -deleteRule=Xoá quy tắc được chọn chứ? -nextRcpt=(Người nhận kế tiếp) -negateRule=Không -addKeyToRule=Thêm khoá %1$S (%2$S) vào quy tắc cho từng người nhận - -# Strings used in enigmailSearchKey.js -needOnline=Hàm bạn đã chọn không có sẵn trong chế độ ngoại tuyến. Xin hãy trực tuyến và thử lại. -noKeyserverConn=Không thể kết nối đến máy chủ quản lý khoá tại %S. -internalError=Đã xảy ra lỗi nội vi. Không thể tải xuống hoặc nhập khoá. -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Cài đặt tín nhiệm chủ nhân thất bại - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Ký tên khoá thất bại -alreadySigned.label=Lưu ý: khoá %S đã được ký tên với khoá cá nhân được chọn. -alreadySignedexportable.label=Lưu ý: khoá %S đã được ký là có thể xuất với khoá cá nhân được chọn. Chữ ký cục bộ là vô nghĩa. -partlySigned.label=Lưu ý: Một vài ID người dùng của khoá %S đã được ký với khoá cá nhân được chọn. -noTrustedOwnKeys=Không tìm thấy khoá nào đủ tư cách để ký tên! Bạn cần ít nhất một khoá cá nhân hoàn toàn đáng tin để ký tên khoá. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Đang nạp khoá, xin chờ ... keyValid.unknown=không rõ keyValid.invalid=không hợp lệ keyValid.disabled=đã tắt keyValid.revoked=đã huỷ keyValid.expired=đã hết hạn keyValid.noSubkey=không có khoá phụ hợp lệ - -keyTrust.untrusted=không đáng tin +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=một chút keyTrust.full=đáng tin keyTrust.ultimate=tối cao keyTrust.group=(nhóm) -keyType.public=c.khai -keyType.publicAndSec=c.khai/b.mật -keyMan.enableKey=Bật khoá -keyMan.disableKey=Tắt khoá userAtt.photo=Thuộc tính người dùng (ảnh JPEG) - -asciiArmorFile=Tập tin ASCII được bảo vệ (*.asc) importKeyFile=Nhập tập tin khoá OpenPGP -gnupgFile=Các tập tin GnuPG -saveRevokeCertAs=Tạo & Lưu chứng nhận huỷ -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=Không thể tạo chứng nhận huỷ. - -addUidOK=Đã thêm thành công ID người dùng -addUidFailed=Thất bại khi thêm ID người dùng -noKeySelected=Bạn nên chọn ít nhất một khoá để thực hiện thao tác được chọn -exportToFile=Xuất khoá công khai vào tập tin -exportKeypairToFile=Nhập bí mật và khoá công khai vào tập tin -exportSecretKey=Bạn có muốn thêm khoá bí mật vào tập tin khoá OpenPGP đã lưu? -saveKeysOK=Đã lưu thành công các khoá -saveKeysFailed=Lưu khoá thất bại -importKeysFailed=Nhập khoá thất bại -enableKeyFailed=Bật/tắt khoá thất bại -specificPubKeyFilename=%1$S (0x%2$S) c.khai -specificPubSecKeyFilename=%1$S (0x%2$S) c.khai-b.mật -defaultPubKeyFilename=Exported-public-keys -defaultPubSecKeyFilename=Exported-public-and-secret-keys - -sendKeysOk=Gửi (các) khoá thành công -sendKeysFailed=Gửi khoá thất bại -receiveKeysOk=Cập nhật (các) khoá thành công -receiveKeysFailed=Tải khoá xuống thất bại -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Bạn có muốn nhập (một số) khoá từ clipboard? -importFromUrl=Tải về khoá công khai từ URL này: -copyToClipbrdFailed=Không thể sao chép (các) khoá được chọn vào clipboard. -copyToClipbrdOK=Đã sao chép (các) khoá vào clipboard - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=CẢNH BÁO: Bạn sắp xoá các khoá bí mật!\nNếu xoá khoá bí mật thì bạn sẽ không thể giải mã bất kỳ tin nhắn nào đã được mã hoá với khoá đó nữa.\n\nCó chắc là bạn muốn xoá CẢ HAI, khoá bí mật và khoá công khai được chọn? -deletePubKey=Bạn có muốn xoá khoá công khai\n'%S'? -deleteSelectedPubKey=Bạn có muốn xoá các khoá công khai? -deleteKeyFailed=Không thể xoá khoá. revokeKeyQuestion=Bạn đang chuẩn bị huỷ khoá '%S'.\n\nBạn sẽ không thể ký tên với khoá này nữa, và một khi đã phân phối, người khác sẽ không thể mã hoá với khoá đó. Bạn vẫn có thể sử dụng khoá này để giải mã tin nhắn cũ.\n\nBạn có muốn tiếp tục? -revokeKeyOk=Khoá đã bị huỷ. Nếu khoá của bạn đã có trên máy chủ quản lý khoá thì bạn nên tải nó lên lại để những người khác có thể thấy là nó đã bị huỷ. -revokeKeyFailed=Không thể huỷ khoá. # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=Bạn chưa chọn khoá nào cả. Bạn có muốn làm mới TOÀN BỘ khoá? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Cảnh báo: tuỳ vào số lượng khoá và tốc độ kết nối, làm mới toàn bộ khoá có thể tốn rất nhiều thời gian! -downloadContactsKeys.warn=Cảnh báo: tuỳ vào số lượng liên hệ và tốc độ kết nối, việc tải về toàn bộ khoá có thể tốn rất nhiều thời gian! -downloadContactsKeys.importFrom=Nhập các liên hệ từ danh bạ '%S'? -keyMan.button.exportSecKey=Xuất &các khoá bí mật -keyMan.button.exportPubKey=Chỉ xuất &các khoá công khai keyMan.button.import=&Nhập -keyMan.button.refreshAll=&Làm mới toàn bộ khoá keyMan.button.revokeKey=&Huỷ khoá - -keylist.noOtherUids=Không có danh tính nào khác -keylist.hasOtherUids=Cũng được biết đến như là -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Chọn ảnh để thêm vào -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=Có vẻ như tập tin đã chọn không phải định dạng JPEG. Xin chọn tập tin khác. -keyMan.addphoto.failed=Không thể thêm ảnh này. -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Thất bại khi đổi ID người dùng chính -changePrimUidOK=Đã đổi thành công ID người dùng chính -revokeUidFailed=Thất bại khi huỷ ID người dùng %S -revokeUidOK=Đã huỷ thành công ID người dùng %S. Nếu khoá của bạn đã có trên máy chủ quản lý khoá thì bạn nên tải nó lên lại để những người khác có thể thấy là nó đã bị huỷ. -revokeUidQuestion=Có chắc là bạn muốn huỷ ID người dùng %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=THÀNH CÔNG! Đã nhập các khoá -importInfoBits=Các bit -importInfoCreated=Đã tạo -importInfoFpr=Vân tay -importInfoDetails=(Chi tiết) -importInfoNoKeys=Chưa nhập khoá nào. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=khoá công khai -keyTypePrimary=khoá chính -keyTypeSubkey=khoá phụ -keyTypePair=cặp khoá -keyExpiryNever=không bao giờ keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Mã hoá -keyUsageSign=Ký tên -keyUsageCertify=Chứng nhận -keyUsageAuthentication=Xác minh -keyDoesNotExpire=Khoá chưa hết hạn - -# Strings in enigmailGenCardKey.xul -keygen.started=Xin chờ khi khoá đang được tạo .... -keygen.completed=Đã tạo khoá. ID mới của khoá là: 0x%S -keygen.keyBackup=Đã sao lưu khoá vào %S -keygen.passRequired=Xin chỉ định mật khẩu nếu bạn muốn tạo bản sao lưu khoá của mình ngoài SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Đổi PIN thất bại - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Đang làm mới các khoá, xin chờ ... -keyserverProgress.uploading=Đang tải các khoá lên, xin chờ ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Làm mới các khoá -keyserverTitle.uploading=Tải khoá lên -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=Tập tin bạn chỉ định không phải tập tin chạy GnuPG. Hãy chỉ định tập tin khác. -setupWizard.installFailed=Có vẻ như quá trình cài đặt đã thất bại. Xin thử lại hoặc cài đặt thủ công GnuPG và chỉ đường đến nó bằng nút Duyệt tìm. -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Chỉ định tập tin sao lưu để nạp -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=Tập tin cấu hình GnuPG đã tồn tại. Bạn có muốn chép đè nó với tập tin từ bản cài đặt cũ? -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=Đã có lỗi khi tải về GnuPG. Xin kiểm tra nhật ký khung lệnh để biết thêm chi tiết. -installGnuPG.installFailed=Đã có lỗi khi cài đặt GnuPG. Xin kiểm tra nhật ký khung lệnh để biết thêm chi tiết. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=Bạn phải điền tên và địa chỉ email -addUidDlg.nameMinLengthError=Tên phải chứa ít nhất 5 ký tự -addUidDlg.invalidEmailError=Bạn phải chỉ định một địa chỉ email hợp lệ - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=Smartcard OpenPGP chỉ hỗ trợ các ký tự ASCII trong Tên/Họ tên. - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=Chứng nhận bảo mật trên dịch vụ web không hợp lệ. errorType.SecurityProtocol=Giao thức bảo mật được dùng bởi dịch vụ web không quen thuộc. errorType.Network=Đã xảy ra lỗi mạng. - -# filter stuff -filter.folderRequired=Bạn phải chọn một thư mục đích. -filter.decryptMove.label=Giải mã vĩnh viễn (Enigmail) -filter.decryptCopy.label=Tạo bản sao đã giải mã (Enigmail) -filter.decryptMove.warnExperimental=Cảnh báo - thao tác lọc "Giải mã vĩnh viễn" có thể huỷ hoại tin nhắn.\n\nChúng tôi chân thành khuyên bạn thử bộ lọc "Tạo bản sao đã giải mã", kiểm tra cẩn thận kết quả và chỉ bắt đầu dùng bộ lọc này một khi bạn hài lòng với kết quả thu được. -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Lưu tập tin nhật ký - -# strings in gpg.jsm -unknownSigningAlg=Thuật toán ký tên không quen thuộc (ID: %S) -unknownHashAlg=Hash viết mã không quen thuộc (ID: %S) - -# strings in keyRing.jsm keyring.photo=Ảnh keyRing.pubKeyRevoked=Khoá %1$S (ID khoá %2$S) đã bị huỷ. keyRing.pubKeyExpired=Khoá %1$S (ID khoá %2$S) đã hết hạn. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=Tất cả khoá phụ mã hoá của khoá %1$S (ID khoá %2$S) đã hết hạn. keyRing.noSecretKey=Có vẻ như bạn không có khoá bí mật cho %1$S (ID khoá %2$S) trong vòng khoá; bạn không thể dùng khoá này để ký tên. keyRing.encSubKeysUnusable=Tất cả khoá phụ mã hoá của khoá %1$S (ID khoá %2$S) đã bị huỷ, hết hạn hoặc không sử dụng được. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Không thể lưu vào tập tin '%S'. Xin chọn tập tin khác. dataExportError=Đã xảy ra lỗi trong khi xuất dữ liệu của bạn. -enigmailSettings=Cài đặt Enigmail -defaultBackupFileName=Enigmail-export -specifyExportFile=Chỉ định tên tập tin để xuất -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=Bảo mật -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=Thông tin về Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/vi/help/compose.html enigmail-2.2.4/lang/vi/help/compose.html --- enigmail-2.1.6+ds1/lang/vi/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - Trợ giúp Enigmail: Soạn Tin nhắn - - - - -

Trợ giúp Enigmail

- -

Sử dụng Enigmail trong khi soạn tin nhắn

- -
-
Trình đơn Enigmail trong cửa sổ Thư/Soạn
- -
-
-
Ký tên tin nhắn
- -
Bật/Tắt khi gửi thư được ký. Người dùng được thông báo, nếu không ký tên được.
- -
Mã hóa tin nhắn
-
-

Bật/Tắt mã hóa cho tất cả người nhận trước khi gửi. Người dùng được thông báo, nếu không mã hóa được.

- -

Nếu Hiển thị lựa chọn khi cần thiết được đặt trong Tùy thích -> thẻ Chọn Khóa, một danh sách các khóa sẽ bật lên nếu có địa chỉ trong danh sách những người nhận cho tin nhắn cho người mà bạn không có khóa công.

- -

Nếu Không bao giờ hiển thị thoại lựa chọn khóa OpenPGP được đặt trong Tùy thích -> thẻ Chọn Khóa, và có địa chỉ trong danh sách những người nhận cho tin nhắn cho người mà bạn không có khóa công, tin nhắn sẽ được gửi mà không được mã hóa.

-
- -
Sử dụng PGP/MIME cho tin nhắn này
- -
- Bật/Tắt việc sử dụng PGP/MIME cho tin nhắn này. - -

Nếu bạn biết (những) người nhận có thể đọc thư bằng cách dùng định dạng PGP/MIME thì bạn nên sử dụng nó.

- -

Tính năng này phụ thuộc vào các thiết lập trong Tùy thích -> thẻ PGP/MIME đang được đặt để Cho phép sử dụng PGP/MIME hoặc Luôn luôn sử dụng PGP/MIME.

-
- -
Tùy chọn mặc định của soạn tin
- -
-
    -
  • Các Tùy chọn của Ký tên/Mã hóa...: lối tắt đến Thiết lập Tài khoản -> Các tùy chọn của OpenPGP.
  • - -
  • Các tùy chọn của Gửi tin...: lối tắt đến Tùy thích -> thẻ Gửi tin.
  • - -
  • Các tùy chọn của chọn khóa...: lối tắt đến Tùy thích -> thẻ Chọn Khóa.
  • - -
  • Các tùy chọn của PGP/MIME...: lối tắt đến Tùy thích -> thẻ PGP/MIME.
  • -
-
- -
Hủy bước mã hóa
- -
-

Nếu bị trục trặc khi thật sự gửi thư, chẳng hạn như máy chủ POP không chấp nhận yêu cầu, Enigmail sẽ không biết gì về nó, và tin nhắn được mã hóa sẽ tiếp tục được hiển thị trong cửa sổ Soạn tin. Chọn mục trình đơn này sẽ hủy bước mã hóa/ký tên, rồi trở ngược lại văn bản ban đầu của cửa sổ Soạn tin.

- -

Tùy chọn này là một sửa chữa tạm thời nhưng cũng có thể được sử dụng để giải mã các văn bản trích dẫn khi trả lời các tin nhắn được mã hóa. Enigmail sẽ tự động giải mã tin trích dẫn, nhưng nếu không làm được vì lý do nào đó thì bạn có thể sử dụng mục trình đơn này để ép buộc nó.

-
- -
Chèn khóa công
- -
Chèn khối giáp khóa công ASCII ở vị trí con trỏ hiện tại trong cửa sổ Soạn tin. Bạn sẽ được hỏi nhắc địa chỉ thư điện tử của (các) khóa để được chèn vào. Các khóa được chèn theo cách này sẽ tự động được Enigmai nhận diện ở đầu tiếp nhận. Sau khi chèn khóa, bạn vẫn có thể chọn để ký tên/mã hóa thưl khi cần thiết. Ngoài ra, đừng chèn nhiều hơn một khối khóa trong một tin nhắn, chỉ cần điền rõ nhiều địa chỉ thư điện tử, phân biệt bằng dấu phẩy hoặc dấu cách, khi được nhắc.
- -
Xóa cụm từ mật khẩu đưọc lưu
- -
Xóa cụm từ mật khẩu được nhớ tạm. Hữu ích nếu bạn có nhiều cụm từ mật khẩu.
- -
Trợ giúp
- -
Hiển thị tin tức Trợ giúp từ trang web (trang này).
-
-
-
-
- -

Trợ giúp thêm nữa có sẵn trên Trang web Trợ giúp Enigmail

- - diff -Nru enigmail-2.1.6+ds1/lang/vi/help/editRcptRule.html enigmail-2.2.4/lang/vi/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/vi/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - Trợ giúp Enigmail: Sửa đổi Quy Tắc của OpenPGP - - - - -

Trợ giúp Enigmail

- -

Sử dụng Chỉnh sửa Quy tắc của Enigmail: Sửa đổi Quy Tắc của OpenPGP

- -

Trong Chỉnh sửa Quy tắc, bạn có thể điền rõ các mặc định cho mỗi người nhận để bật mã hóa lên, ký tên và PGP/MIME, và để xác định (các) khóa OpenPGP nào để sử dụng. Trong hộp thoại này, bạn có thể điền rõ các quy tắc cho một người nhận duy nhất, và cho một nhóm người nhận với các thuộc tính rất giống nhau.

- -
-
Đặt Quy tắc của OpenPGP cho
- -
Chứa các địa chỉ email của người nhận (không có tên, tức là chỉ cần một địa chỉ như somebody@email.domain). Bạn có thể điền rõ một số địa chỉ thư điện tử, phân biệt bằng dấu cách. Các địa chỉ điền rõ ở đây có thể chỉ gồm có phần miền để thư gửi đến bất kỳ địa chỉ nào tại miền đó sẽ được so sánh, ví dụn như @email.domain sẽ cho phép so sánh với body@email.domain, somebody@email.domain, anybody@email.domain, v.v.
- -
Áp dụng quy tắc nếu người nhận ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Chính xác là: với thiết lập này, các quy tắc sẽ chỉ kích hoạt ở những thư điện tử đến body@email.domain (chính xác, không so sánh chữ hoa/thường).
  • - -
  • Chứa : với thiết lập này, bất kỳ địa chỉ thư điện tử nào có chứa chuỗi được so sánh, ví dụ như anybody@email.domain hoặc body@email.domain.net
  • - -
  • Bắt đầu với: với thiết lập này, bất kỳ địa chỉ thư điện tử nào bắt đầu với chuỗi được so sánh, ví dụ như body@email.domain.net, body@email.domain-name.com.
  • - -
  • Kết thúc bằng: với thiết lập này, bất kỳ địa chỉ thư điện tử nào kết thúc với chuỗi được so sánh, ví dụ như anybody@email.domain , somebody@email.domain .
  • -
-
- -
Tiếp tục với quy tắc kế tiếp cho địa chỉ trùng hợp
- -
Bật chức năng này lên sẽ cho phép bạn xác định một quy tắc nhưng không phải điền rõ một KeyID trong trường Sử dụng những khóa OpenPGP sau đây:, để địa chỉ thư điện tử được dùng để kiếm một chiếc khóa ở thời điểm gửi. Ngoài ra, các quy tắc khác nữa cho cùng (các) địa chỉ cũng sẽ được xử lý.
- -
Đừng kiểm soát thêm quy tắc nữa cho địa chỉ trùng hợp
- -
Bật chức năng này lên ngưng xử lý bất kỳ quy tắc nào khác cho (các) địa chỉ trùng hợp nếu quy tắc này trùng hợp; nghĩa là xử lý quy tắc tiếp tục với người nhận kế tiếp.
- -
Sử dụng các khóa OpenPGP sau đây:
- -
Sử dụng nút Chọn (các) Khóa.. để chọn các khóa của người nhận dùng để mã hóa. Như hành động bên trên, không có thêm quy tắc nào nữa cho (các) địa chỉ trùng hợp được xử lý.
- -
Mặc định cho Ký tên
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Không bao giờ: tắt ký tên, ngay cả khi nó đã được bật lên trong cửa sổ viết tin nhắn (bác bỏ các giá trị khác)
  • - -
  • Có, nếu được chọn từ trong Soạn Tin nhắn: để việc ký tên như đã được điền rõ trong cửa sổ soạn tin nhắn
  • - -
  • Luôn luôn: bật ký tên lên, ngay cả nếu nó đã không được bật lên trong cửa sổ soạn tin nhắn
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Mã hóa
- -
Bật hoặc tắt việc mã hóa tin nhắn. Các thiết lập cho phép và ý nghĩa của chúng cũng giống như cho việc ký tên tin nhắn.
- -
PGP/MIME
- -
Bật hoặc tắt việc sử dụng PGP/MIME (RFC 3156) để mã hóa tin nhắn. Nếu PGP/MIME bị tắt, các tin nhắn được mã hoá bằng cách dùng "PGP trực tiếp". Các giá trị được cho phép và ý nghĩa của chúng cũng giống như cho việc ký tên tin nhắn.
-
- -

Các quy tắc được xử lý theo thứ tự hiển thị trong danh sách trong Chỉnh sửa Quy tắc của OpenPGP. Bất cứ khi nào một quy tắc trùng hợp với một người nhận và chứa một ID khóa OpenPGP, ngoài việc sử dụng ID khóa được điền rõ, người nhận không được lưu ý đến nữa khi tiếp tục xử lý các quy tắc khác.

-
- -

Trợ Giúp thêm nữa có sẵn trên trang Thiết lập Từng-Người nhận của Enigmail

- - diff -Nru enigmail-2.1.6+ds1/lang/vi/help/initError.html enigmail-2.2.4/lang/vi/help/initError.html --- enigmail-2.1.6+ds1/lang/vi/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -
-

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/vi/help/messenger.html enigmail-2.2.4/lang/vi/help/messenger.html --- enigmail-2.1.6+ds1/lang/vi/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - Trợ giúp Enigmail: Đọc tin nhắn - - - - -

Trợ giúp Enigmail

- -

Sử dụng Enigmail khi đọc tin nhắn

- -
-
Nút Giải mã trong cửa sổ Thư chính
- -
Nút này có thể được dùng cho nhiều mục đích: giải mã, xác nhận, hoặc nhập các khóa công vào. Thông thường thì việc giải mã/xác nhận xảy ra tự động, mặc dù điều này có thể bị tắt qua một tùy thích. Tuy nhiên, nếu điều này không làm được thì một thông báo lỗi ngắn sẽ thường xuất hiện trong dòng trạng thái của Enigmail. Nếu bạn nhấn nút Giải mã, bạn sẽ có thể thấy một thông báo lỗi chi tiết hơn, kể luôn kết qủa của lệnh GnuPG.
- -
Các biểu tượng của Bút và Khóa trong hiển thị Đầu đề Tin nhắn
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • Tin tức Bảo mật của OpenPGP: cho phép bạn xem trạng thái kết xuất từ GnuPG cho tin nhắn.
  • - -
  • Chép tin tức Bảo mật của OpenPGP: chép tình trạng kết xuất từ GnuPG vào bộ nhớ tạm; để dán vào một tin nhắn trả lời, v.v.
  • - -
  • Xem ID Hình của OpenPGP: cho phép bạn xem các ID Hình của người gửi tin nhắn, nếu họ có một hình ảnh được nhúng vào Khóa Công của họ. ( Tùy chọn này sẽ chỉ được bật lên nếu một ID Hình có sẵn trong khóa của họ.)
  • - -
  • Tin tức Bảo mật của S/MIME: cho phép bạn xem tin tức Bảo mật của S/MIME cho tin nhắn.
  • -
- -

Nếu bạn không có tùy chọn-máy phục vụ khóa tự động-lấy-khóa đặt trong tập tin gpg.conf của bạn và bạn đọc tin nhắn mà đã được ký tên hoặc mã hóa, bạn sẽ thấy một biểu tượng Bút trong khu vực hiển thị đầu đề với một Dấu Hỏitrên đó, dòng trạng thái Enigmail trong khu vực đầu đề sẽ nói là Một phần tin nhắn đã được ký; nhấn biểu tượng bút để có chi tiết và tin nhắn trong Cửa sổ tin nhắn sẽ hiển thị tất cả các OpenPGP chỉ số khối tin và ngăn chặn các chữ ký.

- -

Bạn cũng có thể thấy điều này nếu bạn có tùy chọn-máy phục vụ khóa tự động-lấy-khóa đặt trong tập tin gpg.conf của bạn và khoá OpenPGP không có sẵn trên máy phục vụ khóa mặc định.

- -

Nhấp vào biểu tượng Bút và dấu Hỏi sẽ đem đến một cửa sổ cho biết rằng khóa không có sẵn trong vòng khoá của bạn. Nhấn OK sẽ đem đến một cửa sổ khác với một danh sách các máy phục vụ khóa để từ đó bạn có thể chọn để tải xuống khoá công của người gửi.

- -

Để cấu hình danh sách các máy phục vụ khóa mà bạn muốn sử dụng, hãy vào thẻ Enigmail -> Tùy thích -> Căn bản và nhập địa chỉ máy phục vụ khóa vào hộp (Các) máy phục vụ khóa:, phân biệt bằng dấu phẩy. Máy phục vụ khóa đầu tiên trong danh sách sẽ được dùng làm mặc định.

-
- -
Mở các đính kèm được mã hóa / nhập các khóa OpenPGP đính kèm
- -
Các đính kèm có tên là *.pgp, *.asc và *.gpg được nhận diện là các đính kèm có thể được đặc biệt xử lý bởi Enigmail. Nhấn phải vào một đính kèm như vậy cho phép hai mục trình đơn đặc biệt trong trình đơn ngữ cảnh: Giải mã và Mở ra Giải mã và Lưu lại. Sử dụng hai mục trình đơn này nếu bạn muốn Enigmail giải mã một đính kèm trước khi mở hoặc lưu nó. Nếu một đính kèm được nhận diện là một tập tin khóa OpenPGP, bạn được mời để nhập các khóa vào những vòng khóa của bạn.
-
-
- -

Trợ Giúp thêm nữa có sẵn trên Trang web Trợ giúp của Enigmail

- - diff -Nru enigmail-2.1.6+ds1/lang/vi/help/rulesEditor.html enigmail-2.2.4/lang/vi/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/vi/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - - Trợ giúp Enigmail: Chỉnh sửa Quy tắc - - - - -

Trợ giúp Enigmail

- -

Sử dụng Chỉnh sửa Quy tắc của Enigmail

- -

Trong Chỉnh sửa Quy tắc, bạn có thể điền rõ các mặc định cho mỗi người nhận để bật mã hóa lên, ký tên và PGP/MIME, và để xác định (các) khóa OpenPGP nào để sử dụng. Mỗi quy tắc bao gồm 5 lĩnh vực và được biểu hiện trên một dòng đơn:

- -
-
Thư điện tử
- -
(Các) thư điện tử từ trường To:, Cc: và Bcc: để so sánh. Việc trùng hợp dựa vào chuỗi phụ (Những chi tiết khác có thể được tìm thấy trong hộp thoại Sửa đổi Quy Tắc)
- -
(Các) khóa OpenPGP
- -
một danh sách của các ID khóa OpenPGP để sử dụng cho người nhận
- -
Ký tên
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Không bao giờ: tắt ký tên, ngay cả khi nó đã được bật lên trong cửa sổ viết tin nhắn (bác bỏ các giá trị khác)
  • - -
  • Có thể: để việc ký tên như đã được điền rõ trong cửa sổ soạn tin nhắn
  • - -
  • Luôn luôn: bật ký tên lên, ngay cả nếu nó đã không được bật lên trong cửa sổ soạn tin nhắn
  • -
- -

Các thiết lập ký tên này được áp dụng cho tất cả các quy tắc trùng hợp. Nếu một trong những quy tắc tắt việc ký tên thì tin nhắn sẽ không được ký, ngay cả những quy tắc khác có điền rõ là Luôn luôn.

-
- -
Mã hóa
- -
bật hoặc tắt việc mã hóa tin nhắn. Các thiết lập cho phép và ý nghĩa của chúng cũng giống như cho việc ký tên tin nhắn.
- -
PGP/MIME
- -
Bật hoặc tắt việc sử dụng PGP/MIME (RFC 3156) để mã hóa tin nhắn. Nếu PGP/MIME bị tắt, các tin nhắn được mã hoá bằng cách dùng "PGP trực tiếp". Các giá trị được cho phép và ý nghĩa của chúng cũng giống như cho việc ký tên tin nhắn.
-
- -

Các quy tắc được xử lý theo thứ tự hiển thị trong danh sách. Bất cứ khi nào một quy tắc trùng hợp với một người nhận và chứa một ID khóa OpenPGP, ngoài việc sử dụng ID khóa được điền rõ, người nhận không được lưu ý đến nữa khi tiếp tục xử lý các quy tắc khác.

- -

Lưu ý: Chỉnh sửa quy tắc chưa được hoàn tất. Có thể viết thêm một số quy tắc tiên tiến hơn bằng cách trực tiếp chỉnh sửa tập tin quy tắc (các quy tắc này sau đó không nên được chỉnh sửa nữa trong chỉnh sửa quy tắc). Tin tức thêm nữa để trực tiếp chỉnh sửa tập tin có sẵn trên Trang chủ Enigmail

-
- -

Giúp hơn nữa có sẵn trên Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/vi/help/sendingPrefs.html enigmail-2.2.4/lang/vi/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/vi/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/vi/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/am-enigprefs.properties enigmail-2.2.4/lang/zh-CN/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/zh-CN/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP 安全 +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/enigmail.dtd enigmail-2.2.4/lang/zh-CN/enigmail.dtd --- enigmail-2.1.6+ds1/lang/zh-CN/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' 来指定电子邮件地址"> - - -' 字符来指定面向 GnuPG 的电子邮件地址。如果收件人有旧的 Hushmail 密钥就禁用。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP 安全)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意:密钥生成过程可能会持续数分钟。生成密钥的过程中请不要退出本程序。在此期间浏览网页或者执行能产生大量磁盘操作的程序将帮助填充“随机数池”并能加速密钥创建进程。密钥创建结束时您将收到完成通知。"> - @@ -296,489 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' 是无效的"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意:密钥生成过程可能会持续数分钟。 生成密钥的过程中请不要退出本程序。密钥生成结束时您将收到完成通知。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/enigmail.properties enigmail-2.2.4/lang/zh-CN/enigmail.properties --- enigmail-2.1.6+ds1/lang/zh-CN/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail 警告 # enigConfirm=Enigmail Confirmation # enigInfo=Enigmail Information -enigError=Enigmail 错误 enigPrompt=Enigmail 提示 - -dlgYes=是 dlgNo=否 dlgKeepSetting=记住设置下次不再询问 dlgNoPrompt=不再显示此对话框 -dlg.button.delete=删除(&D) dlg.button.cancel=取消(&C) dlg.button.close=关闭(&C) dlg.button.continue=继续(&T) -dlg.button.skip=忽略(&S) -dlg.button.overwrite=覆盖(&O) -dlg.button.view=查看(&V) -dlg.button.retry=回复(&R) -dlg.button.ignore=忽略(&I) -# dlg.button.install=&Install # dlg.button.ok=&OK - repeatPrefix=\n\n此警告将会重复出现 %S repeatSuffixSingular=次 repeatSuffixPlural=或更多次 noRepeat=\n\n在您升级 Enigmail 之前,此警告将不再出现。 - -pgpNotSupported=您似乎在同时使用 Enigmail 和 PGP 6.x \n\n遗憾的是,PGP 6.x 存在一些问题,致使 Enigmail 无法正常工作。因此, Enigmail 不再支持 PGP 6.x;请用 GnuPG (GPG)来代替。\n\n如果您在转移到 GnuPG 上需要帮助,请查询 Enigmail 主页上的帮助章节。 -initErr.howToFixIt=为了使用 Enigmail,GnuPG 是必须的。如果您还未安装 GnuPG,最简单的方法是使用斜线的“安装向导”按钮。 -initErr.setupWizard.button=安装向导(&S) passphraseCleared=口令已被清除。 cannotClearPassphrase=您在使用非标准的工具 (例如 gnome-keyring) 进行密钥处理。因此不能在 Enigmail 内部清除口令。 -noPhotoAvailable=无可用照片 -debugLog.title=Enigmail 调试日志 -error.photoPathNotReadable=照片路径 '%S' 不可读 - -# generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=Enigmail 的新版本在首选项和选项的处理上有显著的变化。我们在尝试转移旧版本的设置到此新版本。但我们不能自动完成所有情况。请仔细检查新产生的首选项和选项。 -enigmailCommon.checkPreferences=请检查首选项 ... -preferences.defaultToPgpMime=默认的消息编码已从内置PGP改为PGP/MIME。推荐保持这个默认设置。\n\n如果你想继续使用内置PGP,可以在账户设置的安全中更改这个选项。 - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=当前运行的 Enigmail 版本 %S -# enigmailPepVersion=Enigmail/p≡p version %S usingAgent=使用 %S 工具的 %S 程序进行加密或解密 agentError=错误: 无法访问 Enigmail 服务! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=访问 Enigmail 服务时发生错误 -onlyGPG=密钥创建功能仅支持使用 GnuPG (不支持 PGP)! - -keygenComplete=密钥创建结束! 该密钥将用于标识 <%S> 的数字签名。 -revokeCertRecommended=我们强烈推荐为您的密钥创将一个撤销证书。当您的私钥丢失或被窃取的时候,您可以通过此证书将您的密钥失效。您希望立即创建一个这样的撤销证书么? -keyMan.button.generateCert=生成证书(&G) -genCompleteNoSign=密钥创建结束! -genGoing=密钥创建正在执行中! - -passNoMatch=口令不符;请重新输入 -passCheckBox=如果不为密钥设置口令请选择此项 -passUserName=请为此标识设置用户名 -keygen.missingUserName=未为选中的账户指定姓名,请在账户设置的“姓名”中输入。 -keygen.passCharProblem=您在您的口令中使用了特殊字符。遗憾的是这可能导致其他应用程序出现问题。我们推荐您选择一个只包含下列字符的口令:a-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=因为技术原因,您的口令可能不能以空格字符开头或结尾。 -changePassFailed=更改口令失败。 - -# keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=生成密钥(&G) -keyAbort=中止密钥生成? -keyMan.button.generateKeyAbort=放弃密钥生成(&A) -keyMan.button.generateKeyContinue=继续密钥生成(&C) -expiryTooLong=您不能创建有效期超过 100 年的密钥。 -expiryTooLongShorter=您不能创建有效期超过 90 年的密钥。 -expiryTooShort=您的密钥必须至少在一天内有效。 -# keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=过期时间不能更改 - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail 安全信息\n\n - -enigHeader=Enigmail : -# enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=本邮件可能使用 PGP/MIME 方式加密或数字签名;点击“解密”按钮以验证 - -saveAttachmentHeader=Enigmail : 保存已解密附件 -noTempDir=无法写入临时目录\n请设置有效的环境变量 TEMP -attachmentPgpKey=您要打开的附件“%S”是一个 OpenPGP 密钥文件。\n\n点击“是”以导入该附件中的密钥或者点击“否”以便在浏览器中查看文件内容 - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -# notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *找到多个消息块 -- 解密/验证中止* - -decryptOkNoSig=警告\n\n解密成功,但无法验证数字签名的正确性 -msgOvl.button.contAnyway=坚持继续(&C) -signature.verifiedOK=附件 %S 的签名验证成功 -signature.verifyFailed=附件 %S 的签名未能验证 -attachment.noMatchToSignature=附件 '%S' 不匹配签名文件 -attachment.noMatchFromSignature=签名文件 '%S' 不匹配附件 -fixBrokenExchangeMsg.failed=修复消息未成功。 -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -# detailsDlg.importKey=Import key -# wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -# wksConfirmSuccess=Confirmation email sent. -# wksConfirmFailure=Sending the confirmation email failed. -# autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -# autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -# autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -# autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -# autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -# autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=选择要嵌入的 OpenPGP 密钥 keysToUse=选择用于 %S 的 OpenPGP 密钥 pubKey=%S 的公钥\n - -windowLocked=编辑窗口已锁定;发送取消 -sendUnencrypted=初始化 Enigmail 失败。\n发送未加密的邮件吗? -composeSpecifyEmail=请指定您要使用的主要邮件地址,该地址将被用于为待发邮件选择数字签名密钥。\n 如果保持此项空白,邮件的 FROM 地址将被用于选择数字签名密钥。 -sendingHiddenRcpt=此邮件有 BCC(密送)收件人。如果此消息已加密,它可以隐藏密送收件人,但一些产品(例如 PGP)的用户将不能解密该邮件。有鉴于此,我们建议不要同时使用密送与邮件加密。 -sendWithHiddenBcc=隐藏密送收件人 -sendWithShownBcc=正常加密 -sendingNews=加密的发送操作已取消。\n\n此邮件包含新闻组收件人,因此不能被加密。请重新发送未加密的副本。 -sendToNewsWarning=警告:您即将发送一封加密的邮件到一个新闻组。\n\n仅在该组的所有成员都能解密该邮件时才鼓励这么做,因为这才有意义。请仅在您明确知道他们能做到这点的情况下发送此邮件。\n\n继续吗? -hasHTML=HTML 邮件警告:\n此邮件可能含有 HTML,这有可能导致数字签名/加密失败。为防止再次出现此类提示,您应该在按下 SHIFT 键的同时点击 撰写/回复 按钮以便发送数字签名邮件。\n如果您选择了默认情况下数字签名所有邮件,那么您应该取消选项对话框中的“撰写 HTML 邮件”来永久关闭此邮件户的 HTML 邮件功能。 -strippingHTML=将邮件转换成纯文本进行数字签名/加密会导致 HTML 邮件中包含的格式信息丢失。您希望继续执行吗? -msgCompose.button.sendAnyway=坚持发送邮件(&S) -attachWarning=本邮件的附件没有本地副本,不能被加密。要加密此类附件,您必须将其保存至本地硬盘然后重新增加其为附件。您仍要继续吗? quotedPrintableWarn=您选择了在发送邮件时进行“quoted-printable”编码。这可能会导致您的邮件无法被正确解密或验证。\n 您希望立即关闭“发送“quoted-printable”邮件”选项吗? -minimalLineWrapping=您已经设置了在 %S 个字符处自动换行。此值必须不小于 68 以保证正确加密或数字签名。\n您希望立即将自动换行设置为 68 个字符吗? warning=警告 -signIconClicked=您已经手工更改了数字签名设置。因此,您撰写此邮件时,关闭或激活邮件数字签名将不再依赖于关闭或激活邮件加密。 -# errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=保存草稿时出错 -# msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -# msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=内部错误:保证加密已禁用 -msgCompose.internalError=发生内部错误。 - -msgCompose.toolbarTxt.signAndEncrypt=此消息将被签名和加密 -msgCompose.toolbarTxt.signOnly=此消息将被签名 -msgCompose.toolbarTxt.encryptOnly=此消息将被加密 -msgCompose.toolbarTxt.noEncryption=此消息将不被签名且不被加密 -msgCompose.toolbarTxt.disabled=Enigmail 已对选定的身份禁用 -# msgCompose.protectSubject.tooltip=Protect the message subject -# msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -# msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -# msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -# msgCompose.protectSubject.yesButton=&Protect subject -# msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=详细信息... -msgCompose.detailsButton.accessKey=D - -# msgCompose.pepSendUnknown=Unknown -# msgCompose.pepSendUnsecure=Unsecure -# msgCompose.pepSendSecure=Secure -# msgCompose.pepSendTrusted=Secure & Trusted - -# pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -# pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=发送操作已取消。\n\n - -# details: keyNotTrusted=对“%S”密钥没有足够的信任 -keyNotFound=找不到“%S”密钥 -keyRevoked=密钥“%S”已废除 -keyExpired=密钥“%S”已过期 - -statPGPMIME=PGP/MIME -# statSMIME=S/MIME -statSigned=已数字签名 -statEncrypted=已加密 -statPlain=纯文本 - -offlineSave=将待发邮件 %S 保存至发件箱中的 %S 目录? - -onlineSend=立即将邮件 %S 发送给 %S? -# encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey=<密钥已隐藏> - -# signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=发送未加密的邮件(&S) -recipientsSelectionHdr=选择加密收件人 - -configureNow=您未将选择的标识配置为使用 Enigmail 安全邮件 (Enigmail) 。立即配置? - -# encryption/signing status and associated reasons: -encryptMessageAuto=加密邮件(自动) -encryptMessageNorm=加密邮件 -signMessageAuto=签名邮件(自动) -signMessageNorm=签名邮件 - -encryptOff=加密:关 -encryptOnWithReason=加密:开 (%S) -encryptOffWithReason=加密:关 (%S) -encryptOn=加密:开 -signOn=签名:开 -signOff=签名:关 -signOnWithReason=签名:开 (%S) -signOffWithReason=签名:关 (%S) -reasonEnabledByDefault=默认启用 -reasonManuallyForced=手动强制 -# reasonByRecipientRules=forced by per-recipient rules -reasonByAutoEncryption=自动加密强制 -# reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=加密模式冲突 - -# should not be used anymore: -encryptYes=邮件将被加密 -encryptNo=邮件将不被加密 - -# should not be used anymore: -signYes=邮件将被数字签名 -signNo=邮件将不被数字签名 - - -# PGP/MIME status: -pgpmimeNormal=协议:PGP/MIME -inlinePGPNormal=协议:内嵌 PGP -smimeNormal=协议:S/MIME -pgpmimeAuto=协议:PGP/MIME(自动) -inlinePGPAuto=协议:内嵌 PGP(自动) -# smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME 将被使用 -pgpmimeNo=内联 PGP 将被使用 - -# Attach own key status (tooltip strings): -# attachOwnKeyNo=Your own public key will not be attached -# attachOwnKeyYes=Your own public key will be attached -# attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=检测到与收件人规则冲突\n%S\n\n使用这些设置发送邮件? -msgCompose.button.configure=配置(&C) -msgCompose.button.send=发送消息(&S) -msgCompose.button.save=保存消息(&S) - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=需要公钥 %S 以验证数字签名 -keyUsed=使用公钥 %S 来验证签名 -clickDecrypt=;请点击解密按钮 -clickDecryptRetry=;请点击解密按钮重试 -clickDetailsButton=;点击“详细信息”按钮获取更多信息 -clickImportButton=;点击“导入密钥”按钮下载密钥 -keyTypeUnsupported=;您的 GnuPG 版本的密钥类型不支持 -# decryptManually=; click on the 'Decrypt' button to decrypt the message -# verifyManually=; click on the 'Verify' button to verify the signature -# headerView.button.verify=Verify -headerView.button.decrypt=解密 -msgPart=邮件包含已 %S 部分 -msgSigned=数字签名 -msgSignedUnkownKey=使用未知密钥签名 -msgEncrypted=加密 -msgSignedAndEnc=数字签名并加密 - unverifiedSig=未验证的数字签名 -incompleteDecrypt=解密不完整 -needKey=错误 - 需要使用私钥进行邮件解密 -failedDecrypt=错误 - 解密失败 badPhrase=错误 - 口令不符 # missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=错误 - 解密/验证失败 -viewInfo=;选择“查看 > Enigmail 信息”查看详细信息 -# brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=已解密的邮件 -decryptedMsgWithFormatError=已解密消息(已恢复格式异常的 PHP 邮件,这可能是由于一个旧版本的 Exchange 服务器导致,因此这可能并不完整) - -usedAlgorithms=使用算法:%S 和 %S -# pepStatusInfo.text=p≡p Message Status. -# pepStatusInfo.title.m3=Under Attack -# pepStatusInfo.info.m3=This message is not secure and has been tampered with. -# pepStatusInfo.title.m1=Mistrusted -# pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -# pepStatusInfo.title.r0=Unknown -# pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -# pepStatusInfo.title.r1=Cannot Decrypt -# pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r2=Cannot Decrypt -# pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -# pepStatusInfo.title.r3=Unsecure -# pepStatusInfo.info.r3=This message is unsecure. -# pepStatusInfo.title.r4=Unsecure for Some -# pepStatusInfo.info.r4=This message is unsecure for some communication partners. -# pepStatusInfo.title.r5=Unreliable Security -# pepStatusInfo.info.r5=This message has unreliable protection. -# pepStatusInfo.title.r6=Secure... -# pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -# pepStatusInfo.title.r7=Secure & Trusted -# pepStatusInfo.info.r7=This message is secure and trusted. - -# pepStatusInfo.color.green=Green -# pepStatusInfo.color.yellow=Yellow -# pepStatusInfo.color.red=Red -# pepRevokeTrust.question=Do you really want to cancel the trust for %S? -# pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -# pepRevokeTrust.doRevoke=Cancel &trust - -# wksConfirmationReq=Web Key Directory Confirmation Request -# wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=确认请求 - -# autocryptSetupReq=Perform Autocrypt Setup -# autocryptSetupReq.button.label=Start Setup -# autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -# autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -# autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -# autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -# postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js # oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=定位 GnuPG 程序 -invalidGpgPath=指定的 GnuPG 执行路径不可用。 Enigmail 功能将被关闭直至您将该路径重新指向 GnuPG 或直至您重新启动程序。 -warningsAreReset=所有警告已经复位 -prefs.gpgFound=GnuPG 在 %S 找到 -prefs.gpgNotFound=未能发现 GnuPG -prefs.warnAskNever=警告: 选择此项将导致在任何一个收件人没有公钥时都会使邮件不能被加密的结果 -- 此时Enigmail也不能通知到你! -prefs.warnIdleTimeForUnknownAgent=无法连接到 gpg-agent。也许您的系统使用了一个特殊工具进行口令处理(例如 gnome-keyring、seahorse-agent、KDE 钱包管理器...)。遗憾的是 Enigmail 无法控制您所使用的工具的口令超时。因此,Enigmail 中设置的超时将被忽略。 -prefEnigmail.oneKeyserverOnly=错误 - 您只能指定一个密钥服务器用于自动下载缺失的 OpenPGP 密钥。 -# acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail 是依照 Mozilla 公共许可证 2.0 授权的开源软件。 - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=请输入您的智能卡管理识别码 -enterCardPin=请输入您的智能卡识别码 - -notInit=错误 - Enigmail 服务未初始化 badCommand=错误 - 加密命令失败 cmdLine=命令及输入: -notRequired=错误 - 无需加密 -notComplete=错误 - 密钥创建未完成 -invalidEmail=错误 - 无效邮件地址 noPassphrase=错误 - 未提供口令 noPGPblock=错误 - 未找到任何有效 ASCII ARMORED OpenPGP 数据段 -unverifiedReply=邮件的缩进部分 (回复) 可能已被修改 -# keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=错误 - 数字签名不符 -# cantImport=Error importing public key\n\n -doImportOne=导入 %1$S (%2$S)? -doImportMultiple=导入下列密钥?\n\n%S -previewFailed=无法读取公钥文件。 - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=在您的读卡器中找到的智能卡 %S 不能用来处理该邮件。\n请插入您的智能卡 %S,然后重新进行此操作。 sc.insertCard=此操作需要您的智能卡 %S。\n请插入所需的智能卡,然后重新进行此操作。 sc.removeCard=此操作不需要智能卡放在读卡器中。\n请从读卡器中去除您的智能卡,然后重新进行此操作。 @@ -376,7 +39,6 @@ sc.noReaderAvailable=无法访问您的智能卡读卡器 \n 请连接您的智能卡读卡器,插入您的智能卡,并重试 # keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. # keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=请在您的“账户设置”中的 OpenPGP 部分选择一个有效密钥。 missingPassphrase=缺少口令 errorHandling.gpgAgentInvalid=您的系统运行的 gpg-agent 版本不适合您的 GnuPG 版本。 errorHandling.gpgAgentError=GnuPG 与 gpg-agent (GnuPG 的一个组件) 通信时报告了一个错误。 @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG 无法通过 pinentry 查询您的口令。 # errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=一个安装或配置的错误阻止了Enigmail正常运行,并无法自动修正。\n\n强烈推荐在支持页面参考:https://enigmail.net/faq - gpgNotFound=不能在 '%S' 定位到GnuPG程序.\n确认你在Enigmail参数中已经正确设置GnuPG可执行程序路径 gpgNotInPath=不能在这个路径定位到GnuPG程序.\n确认你在Enigmail参数中已经正确设置GnuPG可执行程序路径 enigmailNotAvailable=Enigmail 核心服务不可用 - -prefGood=该邮件已经由 %S 数字签名,且在传输过程中未被篡改过 -prefBad=该邮件已经由 %S 数字签名,但“已被”篡改 - failCancel=错误 - 密钥接收被用户中断 failKeyExtract=错误 - 密钥提取命令失败 -# failKeyNoSubkey=No valid (sub-)key notFirstBlock=错误 - 第一个 OpenPGP 段不是公钥段 importKeyConfirm=从邮件中导入嵌入的密钥么? -failKeyImport=错误 - 密钥导入失败 fileWriteFailed=写入文件 %S 失败 - importKey=从密钥服务器导入公钥 %S: uploadKey=将公钥 %S 发送到密钥服务器: keyId=密钥标识 -keyAndSigDate=密钥标识: 0x%S / 签名日期: %S -keyFpr=密钥指纹: %S -noEmailProvided=您未提供邮件地址! -keyAlreadySigned=该密钥已被签署,您不能对其重复签署。 - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=%S 已过期 createdHeader=已创建 atLeastOneKey=未选择密钥!您必须至少选择一个密钥以接受此对话框 fewerKeysThanRecipients=您选择了一个比收件人人数还小的数字。您确定要用作加密的密钥列表已完成? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=选择一个秘密的 OpenPGP 密钥来签注您的消息 userSel.problemNoKey=没有有效的密钥 userSel.problemMultipleKeys=多个密钥 -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=以后发送 - -# Strings used in enigmailAttachmentDialog.js -# pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=第一个 second=第二个 - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=选择加密用的 OpenPGP 密钥 -identityName=标识: %S -# switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -# enableEnigmail=&Disable p≡p -# amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=您已经激活加密功能,但您并未选择任何密钥。要加密发送给 %S 的邮件,您必须从您的密钥列表中选择一个或多个有效密钥。您希望取消对 %S 的加密么? -noKeyToUse=(无 - 不加密) -noEmptyRule=规则不能为空!请在规则区域输入电子邮件地址。 -invalidAddress=您输入的电子邮件地址无效。请不要设置收件人姓名,仅输入电子邮件地址即可。例如:\n正确的: 张三 \n错误的: zhang.san@address.net -# noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=从不 always=总是 possible=可能 -deleteRule=确实要删除选中的规则? -nextRcpt=(下一收件人) -negateRule=非 -addKeyToRule=添加密钥 %S (%S) 到收件人规则 - -# Strings used in enigmailSearchKey.js -needOnline=您选择的功能不能在离线状态下使用。请连线重试。 -noKeyserverConn=无法连接密钥服务器 %S。 -internalError=发生内部错误。密钥无法被下载或导入。 -# noKeyFound=We could not find any key matching the specified search criteria. -# keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=设置密钥信任级别失败 - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=密钥签署失败 -alreadySigned.label=注意:该密钥 %S 已经用选定的密钥签名。 -alreadySignedexportable.label=注意:密钥 %S 已经使用选定的私钥签名可输出。本地签名没有意义。 -partlySigned.label=注意:密钥 %S 的一些用户ID已经使用选定的私钥签名。 -noTrustedOwnKeys=没有找到可签名的密钥!您需要至少一个完全受信任的私钥作为签名密钥。 - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=加载密钥, 请稍候 ... keyValid.unknown=未知 keyValid.invalid=无效 keyValid.disabled=已禁用 keyValid.revoked=已撤销 keyValid.expired=已过期 keyValid.noSubkey=无有效子密钥 - -keyTrust.untrusted=不信任 +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=半信半疑 keyTrust.full=信任 keyTrust.ultimate=完全信任 keyTrust.group=(组) -keyType.public=公钥 -keyType.publicAndSec=公钥/私钥 -keyMan.enableKey=启用密钥 -keyMan.disableKey=禁用密钥 userAtt.photo=用户属性 (JPEG 图像) - -asciiArmorFile=ASCII 格式保存文件 (*.asc) importKeyFile=导入 OpenPGP 密钥文件 -gnupgFile=GnuPG 文件 -saveRevokeCertAs=创建并保存撤销证书 -# revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=无法创建撤销证书。 - -addUidOK=添加用户标识成功 -addUidFailed=添加用户标识失败 -noKeySelected=要执行“选取”类型密钥操作您必须至少选取一个密钥 -exportToFile=将公有密钥导出到文件 -exportKeypairToFile=导出私钥和公钥到文件 -exportSecretKey=您希望在保存的 OpenPGP 密钥文件中包含私钥么? -saveKeysOK=成功保存密钥 -saveKeysFailed=保存密钥失败 -importKeysFailed=导入密钥失败 -enableKeyFailed=启用/禁用密钥失败 -specificPubKeyFilename=%S (0x%S) 公钥 -specificPubSecKeyFilename=%S (0x%S) 公钥+私钥 -defaultPubKeyFilename=已导出的公钥 -defaultPubSecKeyFilename=已导出的公钥/私钥 - -sendKeysOk=密钥发送成功 -sendKeysFailed=发送密钥失败 -receiveKeysOk=密钥更新成功 -receiveKeysFailed=下载密钥失败 -# keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=您希望从剪贴板导入密钥么? -importFromUrl=从此网址下载公钥: -copyToClipbrdFailed=无法将选中的密钥复制到剪贴板。 -copyToClipbrdOK=密钥已被复制到剪贴板 - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S # deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=警告: 您正在试图删除私钥!\n如果您删除了私钥,您将无法解密任何为该密钥加密的邮件。\n\n您确实要把选中的私钥和公钥“都”删除么? -deletePubKey=您希望删除此公钥\n'%S'? -deleteSelectedPubKey=您确实要删除此公钥么? -deleteKeyFailed=该密钥不能删除。 revokeKeyQuestion=您即将废除密钥“%S”。\n\n您将不能再使用此密钥签名,并且一旦分发,其他人将不能再使用该密钥来加密。您仍然可以使用此密钥解密旧的邮件。\n\n您确定要继续吗? -revokeKeyOk=该密钥已经成功撤销。如果您曾经将密钥上传到了某个密钥服务器,您应该重新上传一次,以便其他人能得到您的密钥撤销信息。 -revokeKeyFailed=该密钥不能撤销。 # revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! # revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=您未选择任何密钥。您想更新“所有”的密钥么? -# refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=警告: 根据密钥数量和连接速度的不同,更新所有密钥可能耗费很长时间!\n\n继续? -downloadContactsKeys.warn=警告:取决于联系人的数量和连接速度,下载所有密钥可能是一个相当漫长的过程! -downloadContactsKeys.importFrom=从通讯录 '%S' 导入联系人? -keyMan.button.exportSecKey=导出私钥(&E) -keyMan.button.exportPubKey=只导出公钥(&P) keyMan.button.import=导入(&I) -keyMan.button.refreshAll=刷新所有密钥(&R) keyMan.button.revokeKey=废除密钥(&R) - -keylist.noOtherUids=已没有其他身份 -keylist.hasOtherUids=也称为 -# keylist.noPhotos=No photo available -# keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=选择要添加的照片 -# keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=选择的文件不是 JPEG 文件。请选择其他文件。 -keyMan.addphoto.failed=此照片不能被添加。 -# noWksIdentity=The key %S does not have a WKS identity. -# wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -# keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -# keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -# keyman.addBlacklistKey.button=&Blacklist the key -# keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=修改主用户标识失败 -changePrimUidOK=成功修改主用户标识 -revokeUidFailed=撤销用户标识 %S 失败 -revokeUidOK=成功撤销用户标识 %S。如果您曾经将密钥上传到了某个密钥服务器,您应该重新上传一次,以便其他人能得到您的密钥撤销信息。 -revokeUidQuestion=您确实要撤销用户标识 %S 么? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=成功!密钥已导入 -importInfoBits=位 -importInfoCreated=创建时间 -importInfoFpr=指纹 -importInfoDetails=(详细信息) -importInfoNoKeys=没有导入密钥。 - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=公钥 -keyTypePrimary=主密钥 -keyTypeSubkey=子密钥 -keyTypePair=密钥对 -keyExpiryNever=从不 keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=加密 -keyUsageSign=签名 -keyUsageCertify=证明 -keyUsageAuthentication=身份验证 -keyDoesNotExpire=密钥不会过期 - -# Strings in enigmailGenCardKey.xul -keygen.started=正在生成密钥,请耐心等待…… -keygen.completed=密钥已生成。新密钥ID为: 0x%S -keygen.keyBackup=密钥已被备份为 %S -keygen.passRequired=如果您希望在智能卡外部为自己的密钥创建备份,请设置一个口令。 - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=更换识别码失败 - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=密钥刷新中,请等待 ... -keyserverProgress.uploading=密钥上传中,请等待 ... -# keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -# keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=刷新密钥 -keyserverTitle.uploading=上传密钥 -# keyserver.result.download.none=No key downloaded. -# keyserver.result.download.1of1=Key successfully downloaded. -# keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -# keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -# keyserver.result.uploadOne=Successfully uploaded 1 key. -# keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=您指定的文件不是一个 GnuPG 程序。请指定另一个文件。 -setupWizard.installFailed=看起来安装未成功。请重试安装,或者手动安装 GnuPG 然后使用“浏览”按钮定位。 -# setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -# setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=指定要载入的备份文件 -# setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=GnuPG 配置文件已经存在。您是否要使用您的旧安装覆盖它。 -# setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -# setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -# setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -# setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -# setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=尝试下载 GnuPG 时出错。请检查控制台日志获取进一步细节。 -installGnuPG.installFailed=尝试安装 GnuPG 时出错。请检查控制台日志获取进一步细节。 - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=您必须填写一个名称和一个电子邮件地址 -addUidDlg.nameMinLengthError=名称不能少于5个字符 -addUidDlg.invalidEmailError=您必须指定一个有效的电子邮件地址 - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP 智能卡只支持 ASCII 字符的名/名称。 - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=网络服务呈递的安全证书无效。 errorType.SecurityProtocol=网络服务使用的安全协议未知。 errorType.Network=发生网络错误。 - -# filter stuff -filter.folderRequired=您必须选择一个目标文件夹。 -filter.decryptMove.label=永久解密 (Enigmail) -filter.decryptCopy.label=创建解密的副本 (Enigmail) -filter.decryptMove.warnExperimental=警告 - “永久解密”过滤器可能导致消息被摧毁。\n\n我们强烈建议您先尝试“创建解密的副本”过滤器,仔细测试其结果,只在完全确定该过滤器的结果是您想要的效果时使用此过滤器。 -# filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -# filter.term.pgpencrypted.label=OpenPGP Encrypted -# filter.encrypt.label=Encrypt to key (Enigmail) -# filter.keyRequired=You must select a recipient key. -# filter.keyNotFound=Could not find an encryption key for '%S'. -# filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -# converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -# converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=保存日志文件 - -# strings in gpg.jsm -unknownSigningAlg=未知签名算法 (ID: %S) -unknownHashAlg=未知加密算法 (ID: %S) - -# strings in keyRing.jsm keyring.photo=照片 keyRing.pubKeyRevoked=密钥 %1$S (密钥 ID %2$S) 已废除。 keyRing.pubKeyExpired=密钥 %1$S (密钥 ID %2$S) 已过期。 @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=密钥 %1$S (密钥 ID %2$S) 的所有加密子密钥均已过期。 keyRing.noSecretKey=您的钥匙链似乎没有 %1$S (密钥 ID %2$S) 的私钥,您不能使用该密钥进行签名。 keyRing.encSubKeysUnusable=密钥 %1$S (密钥 ID %2$S) 的所有加密子密钥均已废除、过期或者无法使用。 - - -#strings in exportSettingsWizard.js -cannotWriteToFile=无法保存到文件“%S”。请指定其他文件名。 dataExportError=导出您的数据时发生错误。 -enigmailSettings=Enigmail设置 -defaultBackupFileName=Enigmail导出结果 -specifyExportFile=指定导出文件名 -# homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm # expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. # expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. # expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. # expiry.OpenKeyManager=Open Enigmail Key Management # expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -# pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm # gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. # gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. # gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. # gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. # gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -# pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -# pepTrustWords.cannotFindKey=Cannot find key for %S. -# pepTrustWords.cannotStoreChange=Could not change trust for %S. -# pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -# pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -# wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -# wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -# pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -# pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -# pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -# pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -# pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -# pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -# pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -# pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -# pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -# pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -# pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -# pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -# pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -# pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -# pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -# pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -# pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -# pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -# pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -# pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -# pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -# pepPrivacyStatus.RatingBrokenText=Broken -# pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -# pepPrivacyStatus.RatingMistrustText=Mistrusted -# pepPrivacyStatus.RatingReliableText=Secure -# pepPrivacyStatus.RatingTrustedText=Secure & Trusted -# pepPrivacyStatus.RatingUndefinedText=Unknown -# pepPrivacyStatus.RatingUnderAttackText=Under Attack -# pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -# pepPrivacyStatus.RatingUnencryptedText=Unsecure -# pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -# handshakeDlg.button.initHandshake=Handshake... -# handshakeDlg.button.stopTrust=Stop Trusting -# handshakeDlg.button.reTrust=Stop Mistrusting -# handshakeDlg.label.outgoingMessage=Outgoing message -# handshakeDlg.label.incomingMessage=Incoming message -# handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -# handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -# enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. -# enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -# autocrypt.setupMsg.subject=Autocrypt Setup Message -# autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -# autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -# upgradeInfo.doctitle=What's New in Enigmail v2.0? -# upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -# upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -# upgradeInfo.encSubject.title=Encrypting the Message Subject -# upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -# upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -# upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -# upgradeInfo.autocrypt.title=Support for Autocrypt -# upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -# upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -# upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -# upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -# 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. -# pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=关于 Enigmail # aboutEnigmail.title=OpenPGP support provided by Enigmail # aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,38 +159,7 @@ # aboutEnigmail.licenseSupportTitle=License & Support # aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S # aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -# updateGnuPG.tabName=GnuPG Update -# updateGnuPG.title=Updates for GnuPG -# updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -# updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -# updateGnuPG.noUpdateRequired=GnuPG is up to date. -# updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -# updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -# updateGnuPG.installUpdate=Install Update -# updateGnuPG.noMoreUpdates=Don't check for future updates # updateGnuPG.checkUpdate=Check for GnuPG Updates - - -#strings in keyserver.jsm -# keyserver.error.aborted=Aborted -# keyserver.error.unknown=An unknown error occurred -# keyserver.error.serverError=The keyserver reported an error. -# keyserver.error.importError=Failed to import the downloaded key. -# keyserver.error.unavailable=The keyserver is not available. -# keyserver.error.securityError=The keyserver does not support encrypted access. -# keyserver.error.certificateError=The keyserver’s certificate is not valid. -# keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -# mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -# mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm # import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -# importSettings.errorNoFile=The file you specified is not a regular file! -# importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -# importSettings.button.abortImport=&Abort process +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/compose.html enigmail-2.2.4/lang/zh-CN/help/compose.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ - -Enigmail 帮助: 撰写邮件 - - - -

Enigmail 帮助

- -

在撰写邮件时使用 Enigmail

- -
    -
  • 邮件/撰写窗口中的 Enigmail 菜单 -
      -
    • 数字签名邮件: 启用/禁用发送数字签名邮件。数字签名失败时用户将收到提示。 -
    • -
    • 加密邮件: 在邮件发出之前启用/禁用针对所有收件人的邮件加密。加密失败时用户将收到提示。 -

      如果您在 选项 -> 密钥选择 标签中设置了 在需要的时候提示选取密钥 , 当无法找到您的邮件收件人中某个收件人地址对应的公用密钥时将会弹出一个密钥列表。

      -

      如果您在 选项 -> 密钥选择 标签中设置了 不要提示选取密钥 , 当无法找到您的邮件收件人中某个收件人地址对应的公用密钥时, 将不加密发送邮件。

      -
    • -
    • 在本邮件中使用 PGP/MIME: 启用/禁止在当前邮件中使用 - PGP/MIME。 -

      如果您确认您的收件人能够处理 PGP/MIME 格式的邮件, 您应该使用它。

      -

      要使用本功能, 您必须设置 选项 -> PGP/MIME 标签中的 允许使用 PGP/MIME总是使用 PGP/MIME

      -
    • -
    • 默认撰写选项: 子菜单。 -
        -
      • 数字签名/加密选项...: 访问 帐户设置 -> - OpenPGP 选项的快捷方式 -
      • -
      • 发送选项...: 访问 选项 -> - 发送 标签的快捷方式。 -
      • -
      • 密钥选择选项...: 访问 选项 -> - 密钥选择 标签的快捷方式。 -
      • -
      • PGP/MIME 选项...: 访问 选项 -> PGP/MIME 标签的快捷方式。 -
      • -
      -
    • 取消加密: Enigmail 不会探测到发送邮件过程中的错误,例如 POP 未接受请求,当因出现此类情况导致发送邮件失败时,毫无意义的已加密信件将会显示在邮件撰写窗口中。通过选择此菜单您可以取消加密/数字签名,将邮件撰写窗口恢复成原始文本。
      - 作为一个临时的解决方案,该选项也可用于在回复某加密邮件时解密被引用的文本。Enigmail 应该可以自动解密被引用的邮件,但是如果它没能自动解密,您可以使用此菜单强制其执行解密动作。 -
    • -
    • 插入公用密钥: 在邮件撰写窗口的当前光标位置插入 ASCII-armored 格式的公用密钥段。它还将提示您输入要插入的密钥对应的邮件地址。以这种方式插入的密钥可以被接受方的 Enigmail 自动识别。插入密钥之后,您仍可以根据需要选择对邮件进行数字签名/加密。除此之外,请不要在邮件中插入多个密钥段; 这种情况下只要在接收到提示的时候指定多个用逗号或者空格分隔的邮件地址即可。 -
    • -
    • 清除缓存的口令: 清除缓存的口令。如果您同时使用多个口令这个功能将会很有用。 -
    • -
    • 帮助: 从网站获取帮助信息 (本页)。 -
    • -
    -
  • -
-
-

-您可以从 -Enigmail 帮助网页获得更多的帮助 -

- - - - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/editRcptRule.html enigmail-2.2.4/lang/zh-CN/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ - -Enigmail 帮助: 编辑 OpenPGP 规则 - - - -

Enigmail 帮助

- -

使用 Enigmail 规则编辑器: 编辑 OpenPGP 规则

-

在规则编辑器中,您可以为每个收件人单独指定 -加密,数字签名和 PGP/MIME,并定义要使用的 OpenPGP 密钥。通过这个 -对话框,您可以为单个收件人定义规则,也可以为具有相似属性的一组 -收件人定义规则。 -

-
    -
  • 为如下收件人设置 OpenPGP 规则: 包含收件人的电子邮件地址 (不包含姓名,例如: 类似 - somebody@email.domain 的电子邮件地址)。您可以使用空格分隔多个不同的电子邮件地址。 - 电子邮件地址仅包含域名部分则可以匹配发往该域的任何邮件, -例如: @email.domain 将匹配 body@email.domain、 - somebody@email.domainanybody@email.domain 等等。 -
  • -
  • 如果收件人地址 ...: - 此项修改邮件地址的匹配规则。 - 如果输入了多个地址,该设置将应用于所有地址。 - 下面的示例假定在上面的 OpenPGP 规则 栏中输入了 body@email.domain。 -
      -
    • 与上述某邮件地址完全相同: 使用此设置,只有邮件地址与 body@email.domain 完全相同才会触发规则(完全相同,大小写敏感匹配)。 -
    • -
    • 包含上述邮件地址中的字符: 使用此设置,任何包含上述字符的邮件地址都将被 - 匹配到, - 例如: anybody@email.domainbody@email.domain.net -
    • -
    • 以上述某邮件地址开头: 使用此设置,任何以上述字符开头的邮件地址都将被 - 匹配到,例如: body@email.domain.net、 - body@email.domain-name.com。 -
    • -
    • 以上述某邮件地址结尾: 使用此设置,任何以上述字符结尾的邮件地址都将被 - 匹配到,例如: anybody@email.domain、 - somebody@email.domain。 -
    • -
    - -
  • -
  • 如果邮件地址符合条件则测试下一条规则
    - 通过启用此功能,您将可以不必为某个邮件地址在 使用下列 OpenPGP 密钥进行加密或数字签名: 栏中指定 - 密钥,直到发送的时候再为发往该地址的邮件选择一个要使用的密钥。 - 此外,匹配这些邮件地址的后续规则还会相继处理。 -
  • -
  • 如果邮件地址符合条件则不再测试后续规则
    - 启用此功能将会停止处理任何匹配这些邮件地址的后续规则; 例如: 如果邮件地址符合 - 条件则测试下一条规则。 -
  • -
  • 使用下列 OpenPGP 密钥进行加密或数字签名:
    - 通过 选择密钥(S)... 按钮选择加密用的收件人密钥。 - 与上面的动作相同,此项规则匹配后将不再处理能够匹配的后续规则。 -
  • -
  • 数字签名: 启用或禁用 - 电子邮件数字签名。此选项将使用或者取代您在邮件撰写窗口选择的设置。 - 其值为: -
      -
    • 从不: 禁用数字签名,即便已经在邮件撰写窗口做出选择 - (取代其他值)
      -
    • -
    • 在撰写邮件时选择: 使用在邮件撰写窗口中选择的设置 -
    • -
    • 总是: 启用数字签名,即便您在邮件撰写窗口 并未 启用数字签名 -
    • -
    -
  • -
-
这些数字签名设置将应用于所有匹配的规则。如果有任意一条 - 规则禁用了数字签名,不管其他规则是否指定了总是进行数字签名,该邮件都不会被数字签名.
-
-
    -
  • 加密: 启用或禁用 - 邮件加密。可选的设置及其含义同数字签名.
  • -
  • PGP/MIME: 启用或禁用 - PGP/MIME (RFC 3156) 邮件编码。 - 如果禁用了 PGP/MIME,信件将使用 "嵌入式 PGP" 编码。可选的设置及其含义同数字签名。 -
  • -
-

所有的规则将会按照 OpenPGP 规则编辑器 列表中的顺序逐个处理。当任一包含 OpenPGP -密钥标识的规则成功匹配一个收件人,我们除了为这个收件人使用规则中包含的密钥之外,还将在后续的规则 -测试中忽略该收件人。 -

-
-

-您可以从 -Enigmail 每收件人设置帮助页 获得更多帮助 -

- - - - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/initError.html enigmail-2.2.4/lang/zh-CN/help/initError.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
- -
-

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/messenger.html enigmail-2.2.4/lang/zh-CN/help/messenger.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - -Enigmail 帮助: 阅读邮件 - - - -

Enigmail 帮助

- -

在阅读邮件的时候使用 Enigmail

-
    -
  • 主邮件窗口中的解密按钮
    - 这个按钮有多种用途: 解密、验证或导入 - 公用密钥。一般情况下 解密/验证 动作应该自动执行(可以从属性设置里禁用自动解密/验证)。 - 当发生错误时 Enigmail 状态行会显示一个简短的错误信息。这时如果您点击 - 解密按钮,您将会看到错误的详细信息,以及 GnuPG 命令的输出信息。 -
  • -
  • 邮件头显示区域中的钢笔图标和钥匙图标
    - 这些在邮件头显示区域中显示的 钢笔钥匙 图标可以指示您正在阅读的邮件 - 是否经过数字签名或加密以及这个数字签名是否完好,例如: 该邮件在数字签名之后为被篡改。如果邮件 - 已经被篡改,那个 钢笔 图标将会变成一个 折断的钢笔 来指示数字签名已经 - 遭到破坏。在钢笔或者钥匙图标上面点击右键将会出现带有如下选项的菜单: -
      -
    • OpenPGP 安全信息: 允许您查看该邮件的 GnuPG 命令输出的状态信息。
    • -
    • 复制 OpenPGP 安全信息: 将 GnuPG 输出的状态信息复制到剪贴板;以便粘贴到 - 回复邮件中,等等。
    • -
    • 查看 OpenPGP 相片: 如果发件人在他的公用密钥中嵌入了相片,这个 - 选项将允许您查看它。 - (此选项仅在密钥中存在相片时可用。)
    • -
    • S/MIME 安全信息: 允许您查看该邮件的 S/MIME 安全信息。
    • -
    -

    如果您的 gpg.conf 文件中没有设置 - keyserver-options auto-key-retrieve,当您阅读一封经过数字签名或者 - 加密的邮件的时候,您会看到邮件头显示区域的 钢笔 图标上面有个 问号, - 邮件头区域中的 Enigmail 状态行将会显示 邮件包含已 数字签名 部分 - ;请点击“钢笔”图标查看详细信息 并且邮件正文显示部分 - 将显示全部 OpenPGP 段指示符号和全部数字签名段。

    -

    不果即使您在 gpg.conf 文件中设置了 keyserver-options auto-key-retrieve,当无法从默认密钥服务器找到发件人的密钥时您也会看到此提示。

    -

    点击该 带有问号的钢笔 将会弹出一个窗口提示您的密钥链不包含该发件人的密钥。 - 此时点击“确定”就会弹出另一个带有密钥服务器列表的窗口以便您从中选择一个服务器来下载 - 发件人的公用密钥。

    -

    您可以通过在 Enigmail -> 选项 -> 基本 标签的 密钥服务器: - 框中输入以逗号分隔的密钥服务器地址来配置上面提到的密钥服务器列表窗口中显示的服务器。 - 这里所填写的第一个密钥服务器将被作为默认密钥服务器。

    -
  • -
  • 查看加密的附件 / 导入附件中的 OpenPGP 密钥
    - Enigmail 将自动识别文件名为 *.pgp、 *.asc 和 *.gpg 的附件并对其进行特别处理。 - 在此类附件上面点击右键弹出的菜单将会有两个特殊的选项: 解密并打开 - 和 解密并保存。如果您希望利用 Enigmail 查看或保存加密的附件, - 可以使用这两个选项。如果附件被识别为 OpenPGP 密钥文件,Enigmail - 将引导您将它导入您的密钥链。 -
  • -

-

-您可以从 -Enigmail 帮助网页获得更多帮助 -

- - - - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/rulesEditor.html enigmail-2.2.4/lang/zh-CN/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ - -Enigmail帮助: 规则编辑器 - - - -

Enigmail帮助

- -

使用 Enigmail 规则编辑器

-

在规则编辑器中您可以为每个收件人默认设置加密、签名和PGP/MIME,以及定义使用某个 OpenPGP 密钥。每一条规则由5个字段组成,并且每条规则占一行: -

-
    -
  • 电子邮件: 要从 To:、Cc: 和 Bcc: 字段 - 中匹配的电子邮件地址。该匹配使用 子字串 匹配方式工作(详细信息请见 - 规则编辑对话框) -
  • -
  • OpenPGP 密钥: 为收件人使用的 OpenPGP -密钥标识的列表
  • -
  • 数字签名: 启用或禁用 - 电子邮件数字签名。此选项将使用或者取代您在邮件撰写窗口选择的设置。 - 其值为: -
      -
    • 从不: 禁用数字签名,即便已经在邮件撰写窗口做出选择 - (取代其他值)
      -
    • -
    • 在撰写邮件时选择: 使用在邮件撰写窗口中选择的设置 -
    • -
    • 总是: 启用数字签名,即便您在邮件撰写窗口 并未 启用数字签名 -
    • -
    -
  • -
-
这些数字签名设置将应用于所有匹配的规则。如果有任意一条 - 规则禁用了数字签名,不管其他规则是否指定了总是进行数字签名,该邮件都不会被数字签名。
-
-
    -
  • 加密: 启用或禁用 - 邮件加密。可选的设置及其含义同数字签名。
  • -
  • PGP/MIME: 启用或禁用 - PGP/MIME (RFC 3156) 邮件编码。 - 如果禁用了 PGP/MIME,信件将使用 "嵌入式 PGP" 编码。可选的设置及其含义同数字签名。 -
  • -
-

所有的规则将会按照 OpenPGP 规则编辑器 列表中的顺序逐个处理。当任一包含 OpenPGP -密钥标识的规则成功匹配一个收件人,我们除了为这个收件人使用规则中包含的密钥之外,还将在后续的规则 -测试中忽略该收件人。

-

注意: 规则编辑器的功能还不完全。 你可以通过直接编辑规则文件来写更多高级的规则(不要再在规则编辑器中编辑这些规则)。直接编辑规则文件的更详细帮助 可以 Enigmail 的主页上找到

-
-

-您可以从 -Enigmail 帮助web页上获得更多的帮助信息 -

- - - - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-CN/help/sendingPrefs.html enigmail-2.2.4/lang/zh-CN/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/zh-CN/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-CN/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/am-enigprefs.properties enigmail-2.2.4/lang/zh-TW/am-enigprefs.properties --- enigmail-2.1.6+ds1/lang/zh-TW/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/am-enigprefs.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,2 +1 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP 安全性 +Not Found \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/enigmail.dtd enigmail-2.2.4/lang/zh-TW/enigmail.dtd --- enigmail-2.1.6+ds1/lang/zh-TW/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,283 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'"> - - - - - - -』來指定Email地址"> - - -』來為GnuPG指定Email地址,收件人有舊版Hushmail密鑰時請禁用。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP 安全性)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意:生成密鑰需要數分鍾時間。在此期間請不要退出程式。活跃的网頁瀏覽或磁盤操作可以刷新『隨機池』,從而加快速度。密鑰生成完成時您將會得到提示。"> - @@ -296,492 +20,21 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -』是無效的。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -注意:密鑰生成需要數分鐘的時間。密鑰生成過程中請勿退出程式。密鑰生成完成時您將會收到提示。"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/enigmail.properties enigmail-2.2.4/lang/zh-TW/enigmail.properties --- enigmail-2.1.6+ds1/lang/zh-TW/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail 警告 enigConfirm=Enigmail 確認 enigInfo=Enigmail 資訊 -enigError=Enigmail 錯誤 enigPrompt=Enigmail 提示 - -dlgYes=是 (&Y) dlgNo=否 (&N) dlgKeepSetting=記住我的答案,不要再問我 dlgNoPrompt=不再顯示此對話框 -dlg.button.delete=刪除 (&D) dlg.button.cancel=取消 (&C) dlg.button.close=關閉 (&C) dlg.button.continue=繼續 (&T) -dlg.button.skip=略過 (&S) -dlg.button.overwrite=&覆寫 -dlg.button.view=檢視 (&V) -dlg.button.retry=重試 (&R) -dlg.button.ignore=忽略 (&I) -dlg.button.install=&安裝 dlg.button.ok=&OK - repeatPrefix=\n\n該警告重複 %S。 repeatSuffixSingular=次 repeatSuffixPlural=次 noRepeat=\n\n您升級 Enigmail 前將不再重複出現此警告。 - -pgpNotSupported=您似乎正同時使用 Enigmail 和 PGP 6.x。\n\nPGP 6.x 有諸多問題,造成 Enigmail 無法正常工作。因此,Enigmail 不再支持 PGP 6.x,請改用 GnuPG(GPG)。\n\n如果您需要轉換至 GnuPG 的幫助,請參考 Enigmail 網站的 Help 段落。 -initErr.howToFixIt=必須要有 GnuPG 才能使用 Enigmail。若您還沒有安裝 GnuPG,最簡單的方式就是直接使用下方的「安裝精靈」。 -initErr.setupWizard.button=安裝精靈 (&S) passphraseCleared=已清除密碼。 cannotClearPassphrase=您正在使用非標準的密碼短語管理工具(例如:gnome-keyring),所以無法在Enigmail上使用密碼短語。 -noPhotoAvailable=無可用照片 -debugLog.title=Enigmail 除錯紀錄 -error.photoPathNotReadable=無法讀取照片路徑「%S」。 - -generalError=錯誤:%S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=這個新版的 Enigmail 在處理設定與選項上有大幅度的變更。我們已嘗試移轉舊版的設定到這個版本,但無法自動轉換所有設定。請再次檢查新的設定有沒有問題。 -enigmailCommon.checkPreferences=檢查偏好設定… -preferences.defaultToPgpMime=我們將Enigmail的預設訊息加密方法由Inline-PGP變更為PGP/MIME,我們建議您維持這個改變。\n若您想要以Inline-PGP為預設,您可以在OpenPGP安全性的帳號設定中變更。 - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=使用 Enigmail 版本 %S -enigmailPepVersion=Enigmail/p≡p 版本 %S usingAgent=使用 %1$S 執行檔 %2$S 來進行加解密 agentError=錯誤: 無法存取 Enigmime 服務! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=存取 Enigmail 服務時發生錯誤 -onlyGPG=Enigmail 僅能使用 GnuPG(非 PGP)產生金鑰! - -keygenComplete=金鑰產生完成!將使用 <%S> 身份簽署。 -revokeCertRecommended=我們強烈建議您為金鑰產生撤銷憑證。當金鑰遺失或洩漏時,可使用該憑證讓金鑰失效。您要產生這樣的撤銷憑證嗎? -keyMan.button.generateCert=產生憑證 (&G) -genCompleteNoSign=金鑰產生完成! -genGoing=已在產生金鑰! - -passNoMatch=密語不相同,請重新輸入。 -passCheckBox=若不要為金鑰指定密語請勾選此欄位 -passUserName=請指定此身份的使用者名稱。 -keygen.missingUserName=所選擇的帳號/身分未指定名字,請在帳號設定下的「您的名字」中輸入一個值。 -keygen.passCharProblem=您在密語中使用特殊字元,但可能會在其他應用程式中造成問題。我們建議您只使用下列字元:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=由於技術問題,您的密語不能以空白開始或結束。 -changePassFailed=密語更改失敗。 - -keyConfirm=是否為「%S」產生公鑰和私鑰? -keyMan.button.generateKey=產生金鑰 (&G) -keyAbort=停止產生金鑰? -keyMan.button.generateKeyAbort=停止產生金鑰 (&A) -keyMan.button.generateKeyContinue=繼續產生金鑰 (&C) -expiryTooLong=您無法建立一把超過 100 年後才會過期的金鑰。 -expiryTooLongShorter=您無法建立一把超過 90 年後才會過期的金鑰。 -expiryTooShort=您的金鑰必須至少有效 1 天。 -keyGenFailed=金鑰產生失敗。請檢查 Enigmail 主控台(選單 > Enigmail > Enigmail 除錯)以取得更多資訊。 -setKeyExpirationDateFailed=無法變更過期日 - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail 安全資訊\n\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: * 此訊息附件尚未經簽署或加密 *\n -possiblyPgpMime=可能是由 PGP/MIME 加密或簽署的訊息,請點擊「解密」按鈕以驗證。 - -saveAttachmentHeader=Enigmail: 儲存解密附件 -noTempDir=找不到可寫入的站存目錄,\n請設定 TEMP 環境參數 -attachmentPgpKey=您正要開啟的附件「%S」可能是 OpenPGP 金鑰。\n\n點擊「匯入」來匯入包含的金鑰,或點擊「檢視」在瀏覽器視窗中檢視該檔案 - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -notePartEncrypted=Enigmail: * 此訊息部分內容未經簽署或加密 * -noteCutMessage=Enigmail: * 發現多個訊息區塊,終止解密/驗證 * - -decryptOkNoSig=警告\n\n已成功解密,但無法正確驗證簽章 -msgOvl.button.contAnyway=還是繼續 (&C) -signature.verifiedOK=成功驗證附件 %S 的簽章 -signature.verifyFailed=無法驗證附件 %S 的簽章 -attachment.noMatchToSignature=簽章檔案中沒有與「%S」符合的簽章 -attachment.noMatchFromSignature=附件中沒有與「%S」符合的簽章 -fixBrokenExchangeMsg.failed=並未成功修復訊息。 -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=匯入金鑰 -wksNoIdentity=這個鑰匙未連結您任何一個email帳號,請新增一個帳號予至少一個來自以下的email地址:\n\n%S -wksConfirmSuccess=驗證email已送出 -wksConfirmFailure=驗證email送出失敗 -autocrypt.importSetupKey.accountPreconfigured=您的帳號已經正確配置給Autocrypt。\n\n您真的確定要覆寫您的設定嗎? -autocrypt.importSetupKey.selfCreated=這個訊息是透過正在運作的Enigmail範例所產生的。\n\n請轉至您希望傳送設定的email客戶,並點選那個email客戶的訊息以匯入設定。 -autocrypt.importSetupKey.invalidMessage=錯誤 - 無法讀取設定訊息。訊息似乎損毀了,請試著在您的其他裝置上建立新的設定訊息。 -autocrypt.importSetupKey.invalidKey=錯誤 - 鑰匙無法匯入。這支鑰匙可能不受您的GnuPG版本支援,或是已經損毀。 -autocrypt.importSetupKey.wrongPasswd=您輸入的密碼錯誤,是否重新輸入? -autocrypt.importSetupKey.success=已經成功處理Autocrypt設定訊息,您的帳號 %S 已經可以使用Autocrypt。 - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=選擇要插入的 OpenPGP 金鑰 keysToUse=選擇要用來 %S 的 OpenPGP 金鑰 pubKey=%S 的公鑰\n - -windowLocked=編輯窗口已鎖定,已取消傳送。 -sendUnencrypted=Enigmail 初始化失敗。\n是否要寄送未加密的訊息? -composeSpecifyEmail=請指定您的主要電子郵件地址,它將在寄送訊息時用來選擇要簽署金鑰。\n若您留空,將依照訊息的寄件地址來選擇簽署用金鑰。 -sendingHiddenRcpt=此訊息有密件副本收件人。若此訊息是加密訊息,您可以隱藏密件副本收件者,但某些產品使用者(例如 PGP)將無法解密該訊息。因此我們建議您不要加密有密件副本收件者的訊息。 -sendWithHiddenBcc=隱藏密件副本收件者 -sendWithShownBcc=正常加密 -sendingNews=加密傳送操作中止。\n\n因為有新聞群組收件者,無法加密此訊息。請取消加密後再寄送。 -sendToNewsWarning=警告:您正要向新聞群組傳送加密郵件。\n\n只有新聞群組的所有成員都能解密訊息的情况下才有意義(也就是說,訊息需要使用群組中所有成員的金鑰加密),因此不推薦這樣做。請確定您知道自己正在做什麼。\n\n要繼續嗎? -hasHTML=HTML 郵件警告:\n此訊息包含 HTML,可能會使簽署或加密失敗。為避免這個情况,您應該在點擊「寫信/回覆」時按住 Shift 鍵來傳送經簽署的郵件。\n如果您預設要簽署郵件,您應該為此帳號取消選擇「用 HTML 格式撰寫郵件」來永久停用 HTML。 -strippingHTML=訊息中的 HTML 格式將在轉換成純文字以進行簽署/加密消失。您要繼續嗎? -msgCompose.button.sendAnyway=還是傳送訊息 (&S) -attachWarning=此訊息的附件不在本機,無法加密。若要加密附件,請先將它們儲存至本機後再新增為附件。您還是要傳送訊息嗎? quotedPrintableWarn=您為要傳送的訊息啟用了「quoted-printable」編碼。可能會在解密或驗證時出現錯誤。\n您是否要關閉以「quoted-printable」編碼傳送訊息? -minimalLineWrapping=您設定每行在 %S 字元後換行。為了正確加密和簽署,這個值應至少為 68。\n您現在是否想改成 68 字元後換行? warning=警告 -signIconClicked=您已經手動修改簽章。所以當您撰寫郵件的時候,啟(停)用簽署不再跟隨啟(停)用加密。 -errorOwnKeyUnusable=在現在的身分下所配置的鑰匙ID %S 無法產生可用的OpenPGP鑰匙。\n\n請確認您持有的鑰匙是有效且未過期的,且您的帳號設定中指定該鑰匙。如果您的鑰匙未過期,請檢查是否將擁有者的信任級別設定為「完全」或「最高」。 -msgCompose.cannotSaveDraft=儲存草稿時發生錯誤。 -msgCompose.partiallyEncrypted.short=堤防洩漏敏感訊息 - 部分加密郵件 -msgCompose.partiallyEncrypted.inlinePGP=您正在回覆的郵件含有加密及未加密的部分。如果寄送者原本無法解密已加密的部分,您可能會因此洩漏機密訊息給原本無法自行解密訊息的寄送者。\n\n請考慮回覆時移除所有引用郵件原文。 - -msgCompose.internalEncryptionError=內部錯誤: promised encryption disabled -msgCompose.internalError=發生內部錯誤 - -msgCompose.toolbarTxt.signAndEncrypt=將簽署並加密此訊息 -msgCompose.toolbarTxt.signOnly=將簽署此訊息 -msgCompose.toolbarTxt.encryptOnly=將加密此訊息 -msgCompose.toolbarTxt.noEncryption=將不會簽署並加密此訊息 -msgCompose.toolbarTxt.disabled=已為所選擇的身分停用 Enigmail -msgCompose.protectSubject.tooltip=保護郵件主旨 -msgCompose.noSubjectProtection.tooltip=不˙要保護郵件主旨 -msgCompose.protectSubject.dialogTitle=啟用主旨保護嗎? -msgCompose.protectSubject.question=標準加密郵件含有未編輯的主旨。\n\n我們啟用了一個標準來隱藏原來的加密郵件中的主旨,並更換成一段假替的文字,原本的主旨需要解密後才能看到。\n\n您想要保護加密郵件的主旨嗎? -msgCompose.protectSubject.yesButton=&保護主旨 -msgCompose.protectSubject.noButton=&不用保護主旨 - -msgCompose.detailsButton.label=細節... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=未知 -msgCompose.pepSendUnsecure=不安全 -msgCompose.pepSendSecure=安全 -msgCompose.pepSendTrusted=安全且可信任 - -pep.alert.disabledForIdentity=目前身分未啟用p≡p,請自Enigmail/p≡p偏好設定中啟用p≡p。 -pep.alert.weakReply=您即將轉寄或回覆一封安全的訊息,但您所送出的訊息並不安全。如果您選擇繼續,有可能會洩漏機密資訊,並危及您及您的通訊對象。您確定要繼續? - - -# note: should end with double newline: -sendAborted=已中止傳送。\n - -# details: keyNotTrusted=金鑰「%S」的信任等級不足 -keyNotFound=找不到金鑰「%S」 -keyRevoked=金鑰「%S」已被撤銷 -keyExpired=金鑰「%S」已過期 - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=已簽署 -statEncrypted=已加密 -statPlain=未簽署或加密 - -offlineSave=要儲存給 %2$S 的 %1$S 封訊息到未寄出訊息信件匣中嗎? - -onlineSend=要寄送 %1$S 封訊息給 %1$S 嗎? -encryptKeysNote=註: 此訊息以使用下列使用者身分/金鑰加密: %S -hiddenKey=<金鑰已隱藏> - -signFailed=Enigmail 發生錯誤,加密/簽署失敗,要寄送未加密的訊息嗎? -msgCompose.button.sendUnencrypted=傳送未加密的訊息 (&S) -recipientsSelectionHdr=選擇要加密的收件人 - -configureNow=您尚未為這個身份設定 Enigmail 安全資訊,您要現在設定嗎? - -# encryption/signing status and associated reasons: -encryptMessageAuto=加密郵件(自動) -encryptMessageNorm=加密郵件 -signMessageAuto=簽署郵件(自動) -signMessageNorm=簽證郵件 - -encryptOff=加密: 關 -encryptOnWithReason=加密: 開 (%S) -encryptOffWithReason=加密: 關 (%S) -encryptOn=加密: 開 -signOn=簽署: 開 -signOff=簽署: 關 -signOnWithReason=簽署: 開 (%S) -signOffWithReason=簽署: 關 (%S) -reasonEnabledByDefault=預設開啟 -reasonManuallyForced=手動強制 -reasonByRecipientRules=因收件者規則而強制 -reasonByAutoEncryption=因自動加密而強制 -reasonByConflict=因收件者規則衝突 -reasonByEncryptionMode=因加密模式 - -# should not be used anymore: -encryptYes=訊息將被加密 -encryptNo=訊息將不被加密 - -# should not be used anymore: -signYes=訊息將被簽署 -signNo=訊息將不被簽署 - - -# PGP/MIME status: -pgpmimeNormal=通訊協定:PGP/MIME -inlinePGPNormal=通訊協定:Inline PGP -smimeNormal=通訊協定:S/MIME -pgpmimeAuto=通訊協定:PGP/MIME(自動) -inlinePGPAuto=通訊協定:Inline PGP(自動) -smimeAuto=通訊協定:S/MIME(自動) - -# should not be used anymore -pgpmimeYes=將使用 PGP/MIME -pgpmimeNo=將使用行內 PGP - -# Attach own key status (tooltip strings): -attachOwnKeyNo=您自己的公鑰不會被夾帶 -attachOwnKeyYes=您自己的公鑰會被夾帶 -attachOwnKeyDisabled=您的公鑰無法夾帶,您必須選擇特定的鑰匙。可在帳號設定下的OpenPGP欄位開啟這個功能。 - -rulesConflict=偵測到收件者規則衝突。\n%S\n\n您是要仍然按照此設定傳送訊息嗎? -msgCompose.button.configure=設定 (&C) -msgCompose.button.send=傳送訊息 (&S) -msgCompose.button.save=儲存訊息 (&S) - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=需要公鑰 %S 才能驗證簽名 -keyUsed=已用公鑰 %S 驗證簽章 -clickDecrypt=,點擊「解密」按鈕 -clickDecryptRetry=,點擊「解密」按鈕以重試 -clickDetailsButton=,點擊「詳細資訊」按鈕取得更多資訊 -clickImportButton=,點擊「匯入金鑰」按鈕下載金鑰 -keyTypeUnsupported=,您的版本的 GnuPG 不支援該類型金鑰 -decryptManually=;點擊「解密」按鈕以解密訊息。 -verifyManually=;點擊「驗證」按鈕以驗證簽署 -headerView.button.verify=驗證 -headerView.button.decrypt=解密 -msgPart=郵件 %S 的片段 -msgSigned=已簽署 -msgSignedUnkownKey=已用未知金鑰簽署 -msgEncrypted=已加密 -msgSignedAndEnc=已簽署並加密 - unverifiedSig=未驗證的簽章 -incompleteDecrypt=解密未完成 -needKey=錯誤 - 缺少用於解密訊息的私鑰 -failedDecrypt=錯誤 - 解密失敗 badPhrase=錯誤 - 密語無效 missingMdcError=錯誤 - 系統完整性保護(MDC)欠缺或損毀 -failedDecryptVerify=錯誤 - 解密/驗證失敗 -viewInfo=,請參考檢視 > 訊息安全性資訊 -brokenExchangeMessage=來自MS-Exchange的破損的PGP/MIME郵件 - -decryptedMsg=解密後的訊息 -decryptedMsgWithFormatError=已解密的訊息(可能因舊版的 Exchange 伺服器毀損了 PGP 郵件,已恢復的內容可能不能正常閱讀) - -usedAlgorithms=所使用的演算法:%1$S及%2$S -pepStatusInfo.text=p≡p 訊息狀態 -pepStatusInfo.title.m3=遭受攻擊 -pepStatusInfo.info.m3=這份訊息不安全且曾被動過手腳。 -pepStatusInfo.title.m1=無法信任的 -pepStatusInfo.info.m1=這份訊息包含一個曾被標記為不可信任的通訊對象。 -pepStatusInfo.title.r0=未知 -pepStatusInfo.info.r0=這份訊息含有的資訊不足以確定是否為安全。 -pepStatusInfo.title.r1=無法解密 -pepStatusInfo.info.r1=無法解密此訊息,因為無可用的鑰匙。 -pepStatusInfo.title.r2=無法解密 -pepStatusInfo.info.r2=無法解密此訊息,因為無可用的鑰匙。 -pepStatusInfo.title.r3=不安全 -pepStatusInfo.info.r3=此訊息不安全 -pepStatusInfo.title.r4=對部分人不安全 -pepStatusInfo.info.r4=此訊息對部分通訊對象不安全 -pepStatusInfo.title.r5=不可信賴的安全性 -pepStatusInfo.info.r5=此訊息含有不可信賴的保護 -pepStatusInfo.title.r6=安全... -pepStatusInfo.info.r6=此訊息安全,但您仍須驗證您的通訊對象。 -pepStatusInfo.title.r7=安全且可信任 -pepStatusInfo.info.r7=此訊息安全且可信任 - -pepStatusInfo.color.green=綠 -pepStatusInfo.color.yellow=黃 -pepStatusInfo.color.red=紅 -pepRevokeTrust.question=是否取消對%S的信任? -pepRevokeMistrust.question=是否重新信任%S的鑰匙? -pepRevokeTrust.doRevoke=取消 &信任 - -wksConfirmationReq=網路鑰匙路徑確認要求 -wksConfirmationReq.message=您的 email 提供者寄送此郵件,以確認您的 OpenPGP 公鑰布署在他們的網路鑰匙路徑中。\n提供您的公鑰給其他人,能讓他們藉此加密郵件給您。\n\n如果您希望將您的鑰匙布署在網路鑰匙路徑中的話,請點選狀態列中的「確認要求」按鈕。\n否則,請忽視此郵件。 -wksConfirmationReq.button.label=確認要求 - -autocryptSetupReq=執行Autocrypte設定 -autocryptSetupReq.button.label=進行設定 -autocryptSetupReq.setupMsg.desc=此郵件含有將您的Autocrypt設定及您的密鑰自您原有裝置安全地傳送所需的所有資訊。 -autocryptSetupReq.setupMsg.backup=您可以保留此郵件並當做您密鑰的備份。如果您想要這麼做,您需要寫下密碼並妥善保管。 -autocryptSetupReq.message.import=若要在Enigmail匯入設定及鑰時,請點選狀態列的「開始設定」 -autocryptSetupReq.message.sent=請在您的新裝置上點選郵件,並遵循指示匯入設定。 -postbox.cannotUseQuickReply.message=您正在回覆一則加密訊息。請使用文字方塊右上角的「展開」圖示打開回覆視窗,並用它傳送訊息。 - -# strings in pref-enigmail.js oldGpgVersion20=Enigmail初始化失敗。\n\n您正在使用GnuPG %1$S 版,該版本已不受支援。Enigmail需求GnupG %2$S 版或更新的版本。請升級您的GnuPG,否則Enigmail無法啟用。 -locateGpg=尋找 GnuPG 程式 -invalidGpgPath=無法執行指定路徑下的 GnuPG。在您重新啟動軟體或更改路徑前將無法使用 Enigmail。 -warningsAreReset=已重設所有警告。 -prefs.gpgFound=在 %S 找到 GnuPG -prefs.gpgNotFound=找不到 GnuPG -prefs.warnAskNever=警告: 啟用該選項會造成當您缺少任何收件者的公鑰時傳送未加密的郵件,且 Enigmail 將不會提醒您。 -prefs.warnIdleTimeForUnknownAgent=無法連線至 gpg-agent。可能是您的系統使用了特別的工具來管理密語(例: gnome-keyring, seahorse-agent, KDE wallet manager 等等)。可惜的是 Enigmail 無法控制您使用的工具的密語逾時設定,所以 Enigmail 當中的逾時設定將被忽略。 -prefEnigmail.oneKeyserverOnly=錯誤 - 您僅能指定一組金鑰伺服器來自動下載缺少的 OpenPGP 金鑰。 -acSetupMessage.desc=將您的鑰時傳送到另一個啟用Autocrypt的裝置 (What is Autocrypt) -aboutLicense.desc=Enigmail是根據 Mozilla Public License 2.0 授權的開源軟體。 - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=請输入您智慧卡的管理 PIN 碼 -enterCardPin=請輸入您的智慧卡 PIN 碼 - -notInit=錯誤 - Enigmail 服務尚未初始化 badCommand=錯誤 - 加密指令失敗 cmdLine=命令列和輸出資料: -notRequired=錯誤 - 無加密需求 -notComplete=錯誤 - 金鑰尚未產生完成 -invalidEmail=錯誤 - 電子郵件地址無效 noPassphrase=錯誤 - 未指定密語 noPGPblock=錯誤 - 找不到有效的 armored OpenPGP 資料區塊 -unverifiedReply=訊息的縮排部分(引用文章)可能被修改過 -keyInMessageBody=郵件內文找到一支鑰匙。點選「匯入鑰匙」以匯入鑰匙。 -sigMismatch=錯誤 - 簽章不符 -cantImport=匯入公鑰時發生錯誤\n\n -doImportOne=匯入 %1$S (%2$S) ? -doImportMultiple=匯入以下鑰匙嗎?\n\n%S -previewFailed=無法讀取公鑰文件。 - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=讀卡機中的智慧卡 %S 無法用於處理訊息。\n請插入智慧卡 %S 後重試。 sc.insertCard=此操作需要您的智慧卡 %S。\n請插入智慧卡後重試。 sc.removeCard=讀卡機中不能有智慧卡。\n請移除智慧卡後重試。 @@ -376,7 +39,6 @@ sc.noReaderAvailable=無法存取您的智慧卡讀卡機\n請連結您的讀卡機並插入智慧卡後重試。 keyError.keySpecNotFound=信箱地址 %S 無法與您的鑰匙圈上的鑰匙配對。 keyError.keyIdNotFound=無法在您的鑰匙圈上找到已配置的鑰匙ID %S -keyError.resolutionAction=請在帳號設定的OpenPGP版面中,選擇一支有效的鑰匙。 missingPassphrase=缺少密碼短語 errorHandling.gpgAgentInvalid=您的系統正在運作的gpg-agent版本與您的GnuPG版本不相容。 errorHandling.gpgAgentError=GnuPG回報一個與gpg-agent(GnuPG的一個部件)聯絡時的錯誤。 @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG無法透過pinentry詢問您的密碼短語。 errorHandling.pinentryCursesError=銀的GnuPG安裝已經配置成可使用pinentry。然而,當使用Enigmail時,您需要一個圖形版本的pinentry。 errorHandling.readFaq=這是一個系統設定或配置上的錯誤,造成Enigmail無法順利運作或自動修復。\n\n我們強烈建議您向我們的支援部門網站求助:https://enigmail.net/faq - gpgNotFound=找不到 GnuPG 程式「%S」。\n請確定你已經在 Enigmail 偏好設定中設定正確的 GnuPG 執行檔路徑。 gpgNotInPath=無法在 PATH 環境變數的路徑中找到 GnuPG。\n請確定你已經在 Enigmail 偏好設定中設定正確的 GnuPG 執行檔路徑。 enigmailNotAvailable=Enigmail核心服務不可用 - -prefGood=來自 %S 的有效簽章 -prefBad=來自 %S 的無效簽章 - failCancel=錯誤 - 使用者取消接收金鑰 failKeyExtract=錯誤 - 金鑰解壓縮指令失敗 -failKeyNoSubkey=無有效的鑰匙(子鑰) notFirstBlock=錯誤 -第一個 OpenPGP 區塊不是公鑰區塊 importKeyConfirm=要匯入訊息中嵌入的公鑰嗎? -failKeyImport=錯誤 - 金鑰匯入失敗 fileWriteFailed=檔案 %S 寫入失敗 - importKey=自下列金鑰伺服器匯入公鑰 %S: uploadKey=傳送公鑰 %S 到金鑰伺服器: keyId=金鑰 ID -keyAndSigDate=金鑰 ID:0x%1$S / 簽署於 %2$S -keyFpr=金鑰指紋: %S -noEmailProvided=未指定電子郵件地址! -keyAlreadySigned=已經簽署過這把金鑰,您不能再次簽署。 - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=已過期 %S createdHeader=已建立 atLeastOneKey=未選擇金鑰!您必須至少選擇一把金鑰才能接受此對話 fewerKeysThanRecipients=您選擇的金鑰數量少於收件者數量,您確定此加密金鑰清單是完整的嗎? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=選擇一把 OpenPGP 私鑰來簽署您的訊息 userSel.problemNoKey=無有效金鑰 userSel.problemMultipleKeys=多重金鑰 -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=稍後再寄 - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=注意:並非所有的email客戶都支援PGP/MIME,如果您不確定,請選擇%S選項。 first=第一 second=第二 - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=選擇用來加密的 OpenPGP 金鑰 -identityName=身份: %S -switchPepMode=您正在使用Enigmail的p≡p兒童模式\n\n當您為一個帳號啟用OpenPGP或S/MIME,您將關閉p≡p並使用正常模式的Enigmail。 -enableEnigmail=&關閉p≡p -amPrefAutocrypt.desc=Autocrypt是一個定義如何管理便利的終端對終端的email加密準則,它指定了email程式該如何透過一般的email協調加密能力。 - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=您已經啟用加密,但您沒有選擇所使用的金鑰。您需要從您的金鑰清單中指定有效的金鑰來寄送加密郵件給 %1$S。您是否要為 %2$S 取消加密? -noKeyToUse=(無 — 不加密) -noEmptyRule=規則不能為空!請在規則欄位中輸入電子郵件地址。 -invalidAddress=您輸入的電子郵件地址無效。請不要輸入收件人的名字,只需要電子郵件地址即可。例如:\n無效:Some Name \n有效:some.name@address.net -noCurlyBrackets=大括號 { } 有特殊意義,不能用於電子郵件地址。如果您需要修改這個規則的符合行為,請使用「當收件人…,套用規則」選項。\n點擊「說明」按鈕檢視更多資訊。 - -# Strings used in enigmailRulesEditor.js never=從不 always=總是 possible=可能 -deleteRule=真的要要删除所選的規則嗎? -nextRcpt=(下個收件者) -negateRule=非 -addKeyToRule=將金鑰 %1$S(%2$S)加入至收件人規則 - -# Strings used in enigmailSearchKey.js -needOnline=您選擇的功能在離線模式下無法使用。請連線後重試。 -noKeyserverConn=無法連線至金鑰伺服器 %S。 -internalError=發生內部錯誤。無法下載或匯入金鑰。 -noKeyFound=無法找不到符合搜尋條件的金鑰。 -keyDownload.keyUnavailable=鑰匙ID %S 在您的鑰匙伺服器上不可用。極有可能鑰匙的擁有者未將他們的鑰匙傳上鑰匙伺服器。\n\n請要求郵件的寄送者透過email,將他們的公鑰寄送給您。 - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=設定所有人信任程度失敗 - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=金鑰簽署失敗 -alreadySigned.label=註: 已使用指定的私鑰簽署金鑰 %S。 -alreadySignedexportable.label=注意:鑰匙%S已經被簽署為可與所選擇的密鑰匯出,本地簽署並無意義。 -partlySigned.label=註: 已使用選擇的私鑰簽署金鑰 %S 的某些使用者身分。 -noTrustedOwnKeys=沒有可以用來簽署的鑰匙!您需要至少一個完全信任的密鑰,才可以簽署鑰匙。 - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=金鑰載入中,請稍候… keyValid.unknown=未知 keyValid.invalid=無效 keyValid.disabled=已停用 keyValid.revoked=已撤銷 keyValid.expired=已失效 keyValid.noSubkey=無有效的子鑰 - -keyTrust.untrusted=不信任 +# keyValid.valid=valid +# keyValid.ownKey=own key +# keyTrust.untrusted=not trusted keyTrust.marginal=部分信任 keyTrust.full=受信任 keyTrust.ultimate=完全信任 keyTrust.group=(群組) -keyType.public=公鑰 -keyType.publicAndSec=公鑰/私鑰 -keyMan.enableKey=啟用金鑰 -keyMan.disableKey=停用金鑰 userAtt.photo=使用者屬性(JPEG 圖片) - -asciiArmorFile=ASCII Armored 檔案(*.asc) importKeyFile=匯入 OpenPGP 金鑰檔案 -gnupgFile=GnuPG 檔案 -saveRevokeCertAs=建立並儲存撤銷憑證 -revokeCertOK=已成功建立撤銷憑證。當您搞丟密鑰時,您可以使用它讓您的公鑰失效。 -revokeCertFailed=無法建立撤銷憑證。 - -addUidOK=使用者 ID 新增成功 -addUidFailed=使用者 ID 新增失敗 -noKeySelected=您需要選擇至少一把金鑰才能進行選擇的操作。 -exportToFile=導出公鑰至檔案 -exportKeypairToFile=匯出公鑰與私鑰至檔案 -exportSecretKey=您想要在儲存的 OpenPGP 金鑰檔案中加入私鑰嗎? -saveKeysOK=成功儲存金鑰 -saveKeysFailed=金鑰儲存失敗 -importKeysFailed=金鑰匯入失敗 -enableKeyFailed=啟(停)用金鑰失敗 -specificPubKeyFilename=%S (0x%S) 公鑰 -specificPubSecKeyFilename=%S (0x%S) 公鑰-私鑰 -defaultPubKeyFilename=匯入公鑰 -defaultPubSecKeyFilename=匯入公鑰和私鑰 - -sendKeysOk=金鑰傳送成功 -sendKeysFailed=金鑰傳送失敗 -receiveKeysOk=金鑰更新成功 -receiveKeysFailed=金鑰下載失敗 -keyUpload.verifyEmails=密鑰伺服器會寄送一封 email 給您每一個上傳的密鑰的信箱地址。若要確認發佈您的密鑰,您需要點選每個您將收到的 email 的連結。 - -importFromClip=您想要從剪貼簿中匯入金鑰嗎? -importFromUrl=自以下URL下載公鑰: -copyToClipbrdFailed=無法複製選擇的金鑰到剪貼簿。 -copyToClipbrdOK=已複製金鑰至剪貼簿。 - +# importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +# importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S deleteSecretKey=警告:您正要删除一把私鑰!\n如果您删除了您的私鑰,您將不再能夠解開任何為該私鑰加密的訊息,也將無法撤銷您的金鑰了。\n\n您真的要删除公鑰和私鑰\n「%S」嗎? -deleteMix=警告:您正要删除一個私鑰!\n如果您删除了您的私鑰,您將不再能夠解密任何為該私鑰加密的郵件。\n\n您真的要删除公鑰和私鑰對\n%S嗎? -deletePubKey=您是要删除公鑰\n%S嗎? -deleteSelectedPubKey=您是要删除公鑰嗎? -deleteKeyFailed=無法删除金鑰。 revokeKeyQuestion=您即將撤銷金鑰「%S」。\n\n您將不再能使用該金鑰進行簽署,且一旦公開後,其他人也將不再能使用該金鑰進行加密。您還是能使用該金鑰解開舊訊息。\n\n您要繼續嗎? -revokeKeyOk=金鑰已被撤銷。如果您的金鑰在某金鑰伺服器上,建議您重新上傳一次,讓其它人可以得知撤銷消息。 -revokeKeyFailed=無法撤銷金鑰。 revokeKeyNotPresent=您沒有符合撤銷憑證的鑰匙(0x%S)!\n\n如果您失去了您的鑰匙,您必須先匯入鑰匙才能匯入撤銷憑證。 revokeKeyAlreadyRevoked=鑰匙0x%S已經被撤銷。 -refreshAllQuestion=您尚未選擇任何金鑰,您是否要重新整理所有金鑰? -refreshKeyServiceOn.warn=警告:您的鑰匙正在背景中盡可能安全地被重新整理當中。\n一時間重新整理您所有的鑰匙會無必要地揭露關於您的訊息。\n您確定要這麼做嗎? -refreshKey.warn=警告: 視金鑰數量與連線速度而定,重新整理金鑰可能要花上不少時間! -downloadContactsKeys.warn=警告: 視聯絡人數量與連線速度而定,下載金鑰可能要花一點時間! -downloadContactsKeys.importFrom=要從通訊錄「%S」匯入聯絡人嗎? -keyMan.button.exportSecKey=匯出私鑰 (&S) -keyMan.button.exportPubKey=僅匯出公鑰 (&P) keyMan.button.import=匯入 (&I) -keyMan.button.refreshAll=重新載入所有金鑰 (&R) keyMan.button.revokeKey=撤銷金鑰 (&R) - -keylist.noOtherUids=無其它身份 -keylist.hasOtherUids=別名 -keylist.noPhotos=沒有可用的相片 -keylist.hasPhotos=相片 - -keyMan.addphoto.filepicker.title=選擇要加入的相片 -keyMan.addphoto.warnLargeFile=您選擇的檔案超過 25 kB。\n不推薦您加入大檔案,因為這樣會使您的金鑰也變大。 -keyMan.addphoto.noJpegFile=選擇的檔案不是 JPEG 檔案,請重新選擇。 -keyMan.addphoto.failed=無法新增相片。 -noWksIdentity=鑰匙%S並沒有WKS身分 -wksUpload.noKeySupported=上傳不成功 - 您的提供者似乎不支援WKS - -keyman.addBlacklistKey.msg=您真的希望p≡p停止用鑰匙 %1$S (%2$S) 加密訊息嗎? -keyman.removeBlacklistKey.msg=您希望允許p≡p使用鑰匙 %1$S (%2$S) 來加密未來的訊息嗎? -keyman.addBlacklistKey.button=&將鑰匙加入黑名單 -keyman.removeBlacklistKey.button=&將鑰匙自黑名單移除 - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=主要使用者 ID 變更失敗 -changePrimUidOK=主要使用者 ID 變更成功 -revokeUidFailed=用戶ID %S 撤銷失敗 -revokeUidOK=已成功撤銷使用者 ID %S,若您曾將金鑰上傳到金鑰伺服器,建議您重新上傳一次,讓其它人能夠得知金鑰已撤銷。 -revokeUidQuestion=您真的想要撤銷使用者 ID %S 嗎? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=成功!已匯入鑰匙 -importInfoBits=位元 -importInfoCreated=已建立 -importInfoFpr=指紋 -importInfoDetails=(細節) -importInfoNoKeys=未匯入任何鑰匙 - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=公鑰 -keyTypePrimary=主金鑰 -keyTypeSubkey=子鑰 -keyTypePair=金鑰對 -keyExpiryNever=從不 keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECC keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=加密 -keyUsageSign=簽署 -keyUsageCertify=確認 -keyUsageAuthentication=驗證 -keyDoesNotExpire=密鑰永久有效 - -# Strings in enigmailGenCardKey.xul -keygen.started=請稍候金鑰產生… -keygen.completed=已產生金鑰。新金鑰 ID 為: 0x%S -keygen.keyBackup=已備份金鑰至 %S -keygen.passRequired=如果您需要在智慧卡外做金鑰備份,請指定一組密語。 - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=PIN 碼修改失敗 - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=正在重新整理金鑰,請稍候… -keyserverProgress.uploading=正在上傳金鑰,請稍候… -keyserverProgress.wksUploadFailed=無法上船您的鑰匙到網路鑰匙服務 -keyserverProgress.wksUploadCompleted=您的公鑰已成功傳送給您的供應者,您將收到一封email向您確認。 -keyserverTitle.refreshing=重新整理金鑰 -keyserverTitle.uploading=上傳金鑰 -keyserver.result.download.none=未下載任何鑰匙。 -keyserver.result.download.1of1=成功下載鑰匙。 -keyserver.result.download.1ofN=成功下載1把%S鑰匙。 -keyserver.result.download.NofN=成功下載%2$S的%1$S鑰匙 -keyserver.result.uploadOne=成功上傳1把鑰匙。 -keyserver.result.uploadMany=成功上傳%S鑰匙。 - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=您指定的檔案不是 GnuPG 執行檔,請指定另一個檔案。 -setupWizard.installFailed=看來安裝並未成功,請重試安裝程式,或手動安裝 GnuPG 並用瀏覽按鈕手動尋找該程式。 -setupWizard.downloadForbidden=為了您的安全,我們不會下載 GnuPG。請前往前往 https://gnupg.org/ 下載 GnuPG。 -setupWizard.downloadImpossible=目前無法下載 GnuPG,請稍後再試或前往 https://gnupg.org/ 下載 GnuPG。 -setupWizard.hashSumError=本精靈無法驗證已下載檔案的完整性,此檔案可能已損毀或被竄改。您還要繼續安裝嗎? -setupWizard.importSettingsFile=指定匯入的備份檔 -setupWizard.invalidSettingsFile=指定的檔案並非可用的Enigmail設定備份檔 -setupWizard.gpgConfExists=GnuPG配置檔已存在,是否要以您舊的安裝檔覆寫它? -setupWizard.noGpgHomeDir=看來您將%S配置為與GnuPG使用。然而,這並非一個路徑,您將無法使用它。 -setupWizard.unmachtedIds=下列的您舊設定的身分無法配對:\n%S\n關於這些身分的設定將會被跳過。 -setupWizard.foundAcSetupMessage=找到 Autocrypt 設定訊息。若要開始Autocrypt設定程序,點選以下的 開始設定 按鈕。 -setupWizard.foundAcNoSetupMsg=我們判定您正在使用 Autocrypt兼容 email客戶,但我們無法找到任何Autocrypt設定訊息。我們建議您在既有的裝置上建立一個Autocrypt設定訊息,並再點選重新掃描收件夾。或者,您也可以將您的設定及鑰匙從既存的Enigmail安裝匯出,再於此處重置這些設定。 -setupWizard.setupComplete=Enigmail已經適當地配置並準備就緒。如需更多關於Enigmail操作上的資訊,請參閱我們的首頁。 - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=嘗試下載 GnuPG 時發生錯誤,若需更多資訊,請檢查主控台的記錄。 -installGnuPG.installFailed=安裝 GnuPG 時發生錯誤,若需更多資訊,請檢查主控台的記錄。 - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=您需要输入一個名字和一個電子郵件地址 -addUidDlg.nameMinLengthError=名字至少需要有 5 個字元 -addUidDlg.invalidEmailError=您必須指定一個有效的郵箱地址 - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP 智慧卡僅支援在姓名欄位中使用 ASCII 字元。 - - -# network error types +# setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=網頁服務提供的安全性憑證無效。 errorType.SecurityProtocol=網頁服務使用未知的安全通訊協定。 errorType.Network=發生網路錯誤。 - -# filter stuff -filter.folderRequired=您必須選擇目的資訊夾。 -filter.decryptMove.label=永久解密(Enigmail) -filter.decryptCopy.label=建立已解密的副本(Enigmail) -filter.decryptMove.warnExperimental=警告:過濾器行為「永久解密」可能會毀損訊息。\n\n我們強烈建議您先使用「建立已解密的副本」過濾器,小心測試一下結果,確認結果滿意後再使用「永久解密」過濾器。 -filter.tempPepFilterDesc=儲存已送出郵件的暫時性篩選未加密。 -filter.term.pgpencrypted.label=OpenPGP已加密 -filter.encrypt.label=加密成鑰匙(Enigmail) -filter.keyRequired=你必須選擇一個收件人鑰匙。 -filter.keyNotFound=無法找到加密鑰匙給%S -filter.warn.keyNotSecret=警告 - 篩選行為「加密成鑰匙」會取代收件者。\n\n如果您沒有%S的密鑰,您將永遠無法閱讀這些email。 - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=無法解密主旨為「%S」的訊息。\n\n您想要使用不同的密語再試一次,或是跳過該訊息? -converter.decryptAtt.failed=無法解密主旨為「%2$S」訊息的附件「%1$S」。\n\n您想要使用不同的密語再試一次,或是跳過該訊息? - -saveLogFile.title=儲存紀錄檔 - -# strings in gpg.jsm -unknownSigningAlg=未知的簽署演算法(ID:%S) -unknownHashAlg=未知的暗號(ID:%S) - -# strings in keyRing.jsm keyring.photo=相片 keyRing.pubKeyRevoked=鑰匙 %1$S (ID %2$S)已經被撤銷。 keyRing.pubKeyExpired=鑰匙 %1$S (ID %2$S)已經過期。 @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=鑰匙 %1$S (ID %2$S)的所有加密子鑰都已過期。 keyRing.noSecretKey=您的鑰匙圈上似乎沒有鑰匙 %1$S (ID %2$S)的私鑰;您無法用該鑰匙簽署。 keyRing.encSubKeysUnusable=鑰匙 %1$S (ID %2$S)的所有加密子鑰都已經被撤銷、已經過期或因其他原因無法使用。 - - -#strings in exportSettingsWizard.js -cannotWriteToFile=無法儲存為%S,請選擇另一個檔案。 dataExportError=匯出資料時發生錯誤。 -enigmailSettings=Enigmail設定 -defaultBackupFileName=Enigmail匯出 -specifyExportFile=指定匯出檔名 -homedirParamNotSUpported=用來配置例如--homedir和--keyring的路徑的額外參數不支援輸出/重置您的設定。請使用別的方式,例如設定環境參數為GNUPGHOME - -#strings in expiry.jsm expiry.keyExpiresSoon=您的鑰匙%1$S將在%2$S天內過期。\n\n我們建議您建立新的一對鑰匙,並配置其對應的帳號以使用。 expiry.keysExpireSoon=您的下列鑰匙將在%1$S天內過期:\n%2$S\n我們建議您建立新的鑰匙,並配置對應的帳號以使用。 expiry.keyMissingOwnerTrust=您的密鑰%S欠缺信任程度。\n\n我們建議您將鑰匙內容設定從「依賴認證」改為「最高」。 expiry.keysMissingOwnerTrust=下列密鑰欠缺信任程度。\n%S\n我們建議您將鑰匙內容設定從「依賴認證」改為「最高」。 expiry.OpenKeyManager=打開Enigmail鑰匙管理 expiry.OpenKeyProperties=打開鑰匙內容 - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=這是一封加密郵件。不幸地,您並沒有解密郵件的鑰匙。 - -#strings in gpgAgent.jsm gpghomedir.notexists=含有您OpenPGP鑰匙的途徑%S並不存在,也無法被建立。 gpghomedir.notwritable=含有您OpenPGP鑰匙的途徑%S無法被覆寫。 gpghomedir.notdirectory=含有您OpenPGP鑰匙的途徑%S是一個檔案,而不是路徑。 gpghomedir.notusable=請修復路徑許可或改變您GnuPG「主目錄」的位置。否則,GnuPG無法正確運作。 gpgAgent.noAutostart=您正在使用GnuPG %S版,這個版本需要您在Thunderbird啟動前預先啟用gpg-agent,且需要預載環境變數「GPG_AGENT_INFO」。\n\n這些先決條件尚未達成前,您無法使用Enigmail。 - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=無法驗證自己帳號的p≡p信任短語 -pepTrustWords.cannotFindKey=無法找到%S的鑰匙。 -pepTrustWords.cannotStoreChange=無法改變%S的信任程度。 -pepTrustWords.generalFailure=無法取得%S的信任短語。 -pepTrustWords.partnerFingerprint=%S的指紋: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=您的email提供者已處理您上載您的公鑰至OpenPGP網路鑰匙途徑的要求。\n\n請點選Enigmail頁首的確認按鈕,以完成公布您的公鑰。 -wkdMessage.body.process=這是一封關於自動處理上載您的公鑰到OpenPGP網路鑰匙途徑的email。\n\n你目前不需要採取任何動作。 - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=您或是寄件人需要重寄此訊息。 -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=若您撰寫了此封訊息,您的鑰匙不可用。 -pepPrivacyStatus.RatingMistrustSuggestion=重新建立與您的構通對象的連結,並試著完成另一次握手。 -pepPrivacyStatus.RatingReliableSuggestion=與您的通訊對象親自或透過電話交換密碼短語,以完成一次握手。您只需要與每個對象握一次手,就可以確保安全且可信賴的通訊。 -pepPrivacyStatus.RatingTrustedSuggestion=無需動作! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=小心此訊息可能不安全。 -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=請添加必要資訊。 -pepPrivacyStatus.RatingUnderAttackSuggestion=請使用別的管道與您的通訊對象驗證此訊息的內容。 -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=確保每一個通訊對象的隱私狀態都至少是「安全」。 -pepPrivacyStatus.RatingUnencryptedSuggestion=請要求您的通訊對象使用加密方案或安裝p≡p。 -pepPrivacyStatus.RatingUnreliableSuggestion=此訊息並無可信賴的加密或欠缺簽署。要求您的通訊對象升級他們的加密方案或安裝p≡p。 - -pepPrivacyStatus.RatingBrokenExplanation=此訊息含有破損的加密或格式。 -pepPrivacyStatus.RatingHaveNoKeyExplanation=無法解密此訊息,因為無可用的鑰匙。 -pepPrivacyStatus.RatingMistrustExplanation=這份訊息包含一個曾被標記為不可信任的通訊對象。 -pepPrivacyStatus.RatingReliableExplanation=此訊息安全,但您仍須驗證您的通訊對象。 -pepPrivacyStatus.RatingTrustedExplanation=此訊息安全且可信任 -pepPrivacyStatus.RatingUndefinedExplanation=這份訊息含有的資訊不足以確定是否為安全。 -pepPrivacyStatus.RatingUnderAttackExplanation=這份訊息不安全且曾被動過手腳。 -pepPrivacyStatus.RatingUnencryptedExplanation=此訊息不安全 -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=此訊息對部分通訊對象不安全 -pepPrivacyStatus.RatingUnreliableExplanation=此訊息含有不可信賴的保護 - -pepPrivacyStatus.RatingBrokenText=破損 -pepPrivacyStatus.RatingHaveNoKeyText=無法解密 -pepPrivacyStatus.RatingMistrustText=無法信任的 -pepPrivacyStatus.RatingReliableText=安全 -pepPrivacyStatus.RatingTrustedText=安全且可信任 -pepPrivacyStatus.RatingUndefinedText=未知 -pepPrivacyStatus.RatingUnderAttackText=遭受攻擊 -pepPrivacyStatus.RatingUnencryptedForSomeText=對部分人不安全 -pepPrivacyStatus.RatingUnencryptedText=不安全 -pepPrivacyStatus.RatingUnreliableText=不可信賴的安全性 - -handshakeDlg.button.initHandshake=握手... -handshakeDlg.button.stopTrust=停止信任 -handshakeDlg.button.reTrust=停止不信任 -handshakeDlg.label.outgoingMessage=寄出的訊息 -handshakeDlg.label.incomingMessage=接收中的訊息 -handshakeDlg.error.noPeers=無法在沒有任何對象之下握手。 -handshakeDlg.error.noProtection=請啟用保護以使用「握手」功能。 - -enigmail.acSetupPasswd.descEnterPasswd=請輸入在另一個裝置上出現的設置碼。 -enigmail.acSetupPasswd.descCopyPasswd=請在另一個裝置上輸入以下的設置碼以繼續設定。 - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt 設定訊息 -autocrypt.setupMsg.msgBody=若要替您的新裝置設定Autocrypt,請依照以下新裝置上的指示。 -autocrypt.setupMsg.fileTxt=這是用來在客戶間傳送設定及鑰匙的Autocrypt設定檔。您可以使用舊裝置上的設置碼來解密它,再將鑰匙匯入您的鑰匙圈上。 - -#strings in upgradeInfo.html -upgradeInfo.doctitle=Enigmail 2.0版有什麼新功能? -upgradeInfo.welcome1=歡迎來到新的Enigmail 2.0版! -upgradeInfo.welcome2=新版本有許多新功能,容我們耽誤一分鐘向您介紹: -upgradeInfo.encSubject.title=加密郵件主旨中 -upgradeInfo.encSubject.desc=我們開發了一種新方法,可將email主旨移至加密訊息中,並將原可見主旨以「加密訊息」取代。一旦訊息經過解密,原本的主旨會自動被替換回來。隱藏主旨的功能預設為開啟,但您可以在偏好設定中關閉。 (附註:此功能要求郵件透過PGP/MIME傳送。) -upgradeInfo.buttons.title=加密及簽署按鍵行為已改變 -upgradeInfo.buttons.desc=郵件編輯視窗中的加密 以及 簽署 按鍵適用於OpenPGP與S/MIME協定。若兩個演算法皆可用,Enigmail會盡量使用所有鑰匙都可用的演算法。 -upgradeInfo.autocrypt.title=支援Autocrypt -upgradeInfo.autocrypt.desc=Enigmail 現在支援 Autocrypt,一種將密鑰以送出訊息的一部分的形式發佈的新標準。Enigmail 會從與 Autocrypt 相容的訊息中自動匯入密鑰,所以越來越多的email 將可以被解密。 -upgradeInfo.pEp.title=新p≡p兒童模式(相當簡易隱私) -upgradeInfo.pEp.desc=Enigmail 現在有 p≡p兒童模式,該模式將使您可以盡可能地透明地使用OpenPGP加密。您再也不需要操心鑰匙管理或是多個裝置間的鑰匙同步。 -upgradeInfo.bottom.desc=使用Enigmail上如需幫助,請參考我們的文件。 - -#strings in pEpAdapter.jsm -pep.missingGnuPG=為了使用Enigmail/p≡p,將需要GnuPG。因為我們無法偵測到GnuPG,我們建議您讓我們幫您下載並安裝它。 -pep.updateAvailable=一個新版的Enigmail/p≡p 加密引擎現可使用,您希望下載並安裝更新檔嗎? - -#strings in enigmailAbout.html +# upgradeInfo.doctitle=Goodbye from Enigmail +# upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +# upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +# upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +# upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +# upgradeInfo.performMigration.buttonLabel=Start Migration Now +# upgradeInfo.thankyou.title=Thank you for using Enigmail +# upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +# upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=關於Enigmail aboutEnigmail.title=Enigmail提供的OpenPGP支援 aboutEnigmail.team=Enigmail是由Enigmail團隊所開發: @@ -820,38 +159,7 @@ aboutEnigmail.licenseSupportTitle=授權 & 支援 aboutEnigmail.license=Enigmail OpenPGP 是開源且根據%S所授權 aboutEnigmail.support=支持並自 www.enigmail.net 下載。 - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG更新 -updateGnuPG.title=GnuPG更新 -updateGnuPG.introduction.desc=Enigmail需要GnuPG以執行加密功能,我們建議您時常更新GnuPG的版本。 -updateGnuPG.updateRequired=有新版本的 GnuPG,我們強烈建議您保持 GnuPG 最為更新的狀態。請點選 安裝更新 按鍵以下載並安裝更新。 -updateGnuPG.noUpdateRequired=GnuPG是最新版本。 -updateGnuPG.cannotUpdate.header=Enigmail僅支援更新以下組件包。 -updateGnuPG.cannotUpdate.footer=您似乎正使用別種的GnuGP。不幸地,Enigmail無法幫您更新您的GnuGP。 -updateGnuPG.installUpdate=安裝更新 -updateGnuPG.noMoreUpdates=不要檢查未來的更新 updateGnuPG.checkUpdate=檢查GnuPG更新 - - -#strings in keyserver.jsm -keyserver.error.aborted=已放棄 -keyserver.error.unknown=發生未知錯誤 -keyserver.error.serverError=鑰匙伺服器出現一個錯誤。 -keyserver.error.importError=無法匯入已下載的鑰匙 -keyserver.error.unavailable=鑰匙伺服器不可使用。 -keyserver.error.securityError=鑰匙伺服器不支援加密連接。 -keyserver.error.certificateError=鑰匙伺服器的認證無效。 -keyserver.error.unsupported=Enigmail不支援該鑰匙伺服器。 - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=加密訊息部分 -mimeDecrypt.encryptedPart.concealedData=此部分為加密訊息,您需要點選附件並開啟新視窗才能瀏覽。 - -#strings in gnupg-key.jsm import.secretKeyImportError=GnuPG在匯入密鑰時發生錯誤,匯入失敗。 - -#strings in importSettings.js -importSettings.errorNoFile=你指定檔案不是正規檔案! -importSettings.cancelWhileInProgress=正在回復中,確定要放棄回復嗎? -importSettings.button.abortImport=&放棄回復 +# passphrasePrompt=Please enter the passphrase for the following key: %S +# openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/compose.html enigmail-2.2.4/lang/zh-TW/help/compose.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

Enigmail Help

- -

Using Enigmail when composing messages

- -
-
Enigmail menu in Mail/Compose window
- -
-
-
Sign message
- -
Enable/Disable sending signed mail. User is notified, if signing fails.
- -
Encrypt message
-
-

Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

- -

If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

- -

If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

-
- -
Use PGP/MIME for this message
- -
- Enable/Disable the use of PGP/MIME for this message. - -

If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

- -

This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

-
- -
Default composition options
- -
-
    -
  • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
  • - -
  • Send options...: shortcut to Preferences -> Send tab.
  • - -
  • Key selection options...: shortcut to Preferences -> Key Selection tab.
  • - -
  • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
  • -
-
- -
Undo encryption
- -
-

If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

- -

As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

-
- -
Insert public key
- -
insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- -
Clear save passphrase
- -
Clears cached passphrase. Useful if you have multiple passphrases.
- -
Help
- -
Displays Help information from the website (this page).
-
-
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/editRcptRule.html enigmail-2.2.4/lang/zh-TW/help/editRcptRule.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor: Edit OpenPGP Rule

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

- -
-
Set OpenPGP Rules for
- -
Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- -
Apply rule if recipient ...
- -
- This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above. - -
    -
  • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
  • - -
  • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
  • - -
  • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
  • - -
  • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
  • -
-
- -
Continue with the next rule for the matching address
- -
Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- -
Do not check further rules for the matching address
- -
Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- -
Use the following OpenPGP keys:
- -
Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- -
Default for Signing
- -
- Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
- -
Encryption
- -
Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
-
- -

The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

-
- -

Further help is available on the Enigmail Per-Recipient Settings page

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/initError.html enigmail-2.2.4/lang/zh-TW/help/initError.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing OpenPGP - - - - - -

Enigmail Help

- -

How to Resolve Problems with Initializing OpenPGP

- -

There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

- -
-
GnuPG could not be found
-
-

- In order for OpenPGP to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences) -

- -
Enigmime failed to initialize
- -
-

- OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

-

- If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

-
-
- -

Further help is available on the Enigmail Support Web Site.

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/messenger.html enigmail-2.2.4/lang/zh-TW/help/messenger.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

Enigmail Help

- -

Using Enigmail when reading messages

- -
-
Decrypt button in main Mail window
- -
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- -
Pen and Key icons in Message Header display
- -
- The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
    -
  • OpenPGP Security info: allows you to view the output status from GnuPG for the message.
  • - -
  • Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
  • - -
  • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
  • - -
  • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
  • -
- -

If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

- -

You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

- -

Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

- -

To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

-
- -
Opening encrypted attachments / importing attached OpenPGP keys
- -
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
-
-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/rulesEditor.html enigmail-2.2.4/lang/zh-TW/help/rulesEditor.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

Enigmail Help

- -

Using the Enigmail Rules Editor

- -

In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

- -
-
Email
- -
The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- -
OpenPGP Key(s)
- -
a list of OpenPGP Key ID's to use for the recipient
- -
Sign
- -
- enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
    -
  • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
  • - -
  • Possible: leave signing as specified in the message composition window
  • - -
  • Always: enable signing, even if it was not enabled in the message composition window
  • -
- -

These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

-
- -
Encrypt
- -
enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- -
PGP/MIME
- -
enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
-
- -

The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

- -

Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

-
- -

Further help is available on the Enigmail Help web page

- - diff -Nru enigmail-2.1.6+ds1/lang/zh-TW/help/sendingPrefs.html enigmail-2.2.4/lang/zh-TW/help/sendingPrefs.html --- enigmail-2.1.6+ds1/lang/zh-TW/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/lang/zh-TW/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

Enigmail Help

- -

Defining Preferences to Send Encrypted

- -

In the Sending Preferences you can choose the general model and preferences for encryption.

-
-
Convenient Encryption
-
With these settings, emails are encrypted without confirmation whenever possible. -

This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible. -

The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

- -
Manual Encryption
-
This option allows you to specify the different preferences for encryption according to your needs. You can specify -
    -
  • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
  • -
  • whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
  • -
  • whether you want to automatically send emails encrypted if all keys are accepted.
  • -
  • whether and when you want to finally confirm sending an email.
  • -
-
- - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/Makefile enigmail-2.2.4/Makefile --- enigmail-2.1.6+ds1/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/Makefile 2020-10-01 13:32:58.000000000 +0000 @@ -8,7 +8,7 @@ include $(DEPTH)/config/autoconf.mk -DIRS = ipc ui package lang stdlib +DIRS = ipc ui package lang ALL = xpi @@ -38,12 +38,7 @@ static_analysis/eslint ipc static_analysis/eslint ui -unit: - make -C package/tests - make -C ui/tests - make -C ipc/tests - -test: eslint check unit +test: eslint check clean: rm -f build/$(XPIFILE) .eslintcache diff -Nru enigmail-2.1.6+ds1/package/addrbook.jsm enigmail-2.2.4/package/addrbook.jsm --- enigmail-2.1.6+ds1/package/addrbook.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/addrbook.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailAddrbook"]; - -/* - * Functionality related to the Thunderbird address book - * - */ - - - - - -const ABMANAGER = "@mozilla.org/abmanager;1"; - -var EnigmailAddrbook = { - /** - * Look up the address book card for a given email address - * - * @param emailAddr: String - email address to find - * - * @return if found: Object: - * - card: nsIAbCard for found email address - * - directory: nsIAbDirectory of found card - * NULL if not found - */ - lookupEmailAddress: function(emailAddr) { - let abm = Cc[ABMANAGER].getService(Ci.nsIAbManager); - let enumerator = abm.directories; - - while (enumerator.hasMoreElements()) { - let abd = enumerator.getNext().QueryInterface(Ci.nsIAbDirectory); - try { - let crd = abd.cardForEmailAddress(emailAddr); - if (crd) return { - directory: abd, - card: crd - }; - } - catch (x) {} - } - - return null; - } -}; diff -Nru enigmail-2.1.6+ds1/package/amPrefsService.jsm enigmail-2.2.4/package/amPrefsService.jsm --- enigmail-2.1.6+ds1/package/amPrefsService.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/amPrefsService.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -const { - manager: Cm, - results: Cr, - Constructor: CC -} = Components; -Cm.QueryInterface(Ci.nsIComponentRegistrar); - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const CATEGORY = "mailnews-accountmanager-extensions"; -const CATEGORY_ENTRY = "enigmail-account-manager-extension"; -const PREF_SERVICE_NAME = "@mozilla.org/accountmanager/extension;1?name=enigprefs"; - -var EXPORTED_SYMBOLS = ["EnigmailAmPrefsService"]; - -var EnigmailAmPrefsService = { - startup: function(reason) { - try { - var catMan = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager); - catMan.addCategoryEntry(CATEGORY, - CATEGORY_ENTRY, - PREF_SERVICE_NAME, - false, true); - this.factory = new Factory(EnigmailPrefService); - } - catch (ex) {} - }, - - shutdown: function(reason) { - var catMan = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager); - catMan.deleteCategoryEntry(CATEGORY, CATEGORY_ENTRY, false); - - if (this.factory) { - this.factory.unregister(); - } - } -}; - -function EnigmailPrefService() {} - -EnigmailPrefService.prototype = { - name: "enigprefs", - chromePackageName: "enigmail", - classID: Components.ID("{943b06a2-24d2-4d38-b0f0-a45f959e331a}"), - classDescription: "Enigmail Account Manager Extension Service", - contractID: PREF_SERVICE_NAME, - QueryInterface: EnigmailCompat.generateQI(["nsIMsgAccountManagerExtension"]), - - showPanel: function(server) { - // show Enigmail panel for POP3, IMAP, NNTP and "movemail" (unix) account types - switch (server.type) { - case "nntp": - case "imap": - case "pop3": - case "movemail": - return true; - } - return false; - } -}; - -class Factory { - constructor(component) { - this.component = component; - this.register(); - Object.freeze(this); - } - - createInstance(outer, iid) { - if (outer) { - throw Cr.NS_ERROR_NO_AGGREGATION; - } - return new this.component(); - } - - register() { - Cm.registerFactory(this.component.prototype.classID, - this.component.prototype.classDescription, - this.component.prototype.contractID, - this); - } - - unregister() { - Cm.unregisterFactory(this.component.prototype.classID, this); - } -} diff -Nru enigmail-2.1.6+ds1/package/attachment.jsm enigmail-2.2.4/package/attachment.jsm --- enigmail-2.1.6+ds1/package/attachment.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/attachment.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailAttachment"]; - -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -var EnigmailAttachment = { - getFileName: function(parent, byteData) { - const cApi = EnigmailCryptoAPI(); - return cApi.sync(cApi.getFileName(byteData)); - } -}; diff -Nru enigmail-2.1.6+ds1/package/autocrypt.jsm enigmail-2.2.4/package/autocrypt.jsm --- enigmail-2.1.6+ds1/package/autocrypt.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/autocrypt.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1070 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for dealing with received Autocrypt headers, level 0 - * See details at https://github.com/mailencrypt/autocrypt - */ - -var EXPORTED_SYMBOLS = ["EnigmailAutocrypt"]; - -const Cr = Components.results; - -Components.utils.importGlobalProperties(["crypto"]); - -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailSqliteDb = ChromeUtils.import("chrome://enigmail/content/modules/sqliteDb.jsm").EnigmailSqliteDb; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailOpenPGP = ChromeUtils.import("chrome://enigmail/content/modules/openpgp.jsm").EnigmailOpenPGP; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailSend = ChromeUtils.import("chrome://enigmail/content/modules/send.jsm").EnigmailSend; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailArmor = ChromeUtils.import("chrome://enigmail/content/modules/armor.jsm").EnigmailArmor; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailRules = ChromeUtils.import("chrome://enigmail/content/modules/rules.jsm").EnigmailRules; -const EnigmailKeyEditor = ChromeUtils.import("chrome://enigmail/content/modules/keyEditor.jsm").EnigmailKeyEditor; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -var gCreatedSetupIds = []; - -var EnigmailAutocrypt = { - /** - * Process the "Autocrypt:" header and if successful store the update in the database - * - * @param {String} fromAddr: Address of sender (From: header) - * @param {Array of String} headerDataArr: all instances of the Autocrypt: header found in the message - * @param {String or Number} dateSent: "Date:" field of the message as readable string or in seconds after 1970-01-01 - * @param {Boolean} autoCryptEnabled: if true, autocrypt is enabled for the context of the message - * - * @return {Promise}: success: 0 = success, 1+ = failure - */ - processAutocryptHeader: async function(fromAddr, headerDataArr, dateSent, autoCryptEnabled = false, isGossip = false) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader(): from=" + fromAddr + "\n"); - let conn; - - try { - // critical parameters: {param: mandatory} - const CRITICAL = { - addr: true, - keydata: true, - type: false, // That's actually oboslete according to the Level 1 spec. - "prefer-encrypt": false - }; - - try { - fromAddr = EnigmailFuncs.stripEmail(fromAddr).toLowerCase(); - } - catch (ex) { - throw "processAutocryptHeader error " + ex; - } - let foundTypes = {}; - let paramArr = []; - - for (let hdrNum = 0; hdrNum < headerDataArr.length; hdrNum++) { - - let hdr = headerDataArr[hdrNum].replace(/[\r\n \t]/g, ""); - let k = hdr.search(/keydata=/); - if (k > 0) { - let d = hdr.substr(k); - if (d.search(/"/) < 0) { - hdr = hdr.replace(/keydata=/, 'keydata="') + '"'; - } - } - - paramArr = EnigmailMime.getAllParameters(hdr); - - for (let i in CRITICAL) { - if (CRITICAL[i]) { - // found mandatory parameter - if (!(i in paramArr)) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: cannot find param '" + i + "'\n"); - return 1; // do nothing if not all mandatory parts are present - } - } - } - - for (let i in paramArr) { - if (i.substr(0, 1) !== "_") { - if (!(i in CRITICAL)) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: unknown critical param " + i + "\n"); - return 2; // do nothing if an unknown critical parameter is found - } - } - } - - paramArr.addr = paramArr.addr.toLowerCase(); - - if (fromAddr !== paramArr.addr) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: from Addr " + fromAddr + " != " + paramArr.addr.toLowerCase() + "\n"); - - return 3; - } - - if (!("type" in paramArr)) { - paramArr.type = (isGossip ? "1g" : "1"); - } - else { - paramArr.type = paramArr.type.toLowerCase(); - if (paramArr.type !== "1") { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: unknown type " + paramArr.type + "\n"); - return 4; // we currently only support 1 (=OpenPGP) - } - } - - try { - let keyData = atob(paramArr.keydata); - } - catch (ex) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: key is not base64-encoded\n"); - return 5; - } - - if (paramArr.type in foundTypes) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: duplicate header for type=" + paramArr.type + "\n"); - return 6; // do not process anything if more than one Autocrypt header for the same type is found - } - - foundTypes[paramArr.type] = 1; - } - - if (isGossip) { - paramArr["prefer-encrypt"] = "nopreference"; - } - - if (!("prefer-encrypt" in paramArr)) { - paramArr["prefer-encrypt"] = "nopreference"; - } - - let lastDate; - if (typeof dateSent === "string") { - lastDate = jsmime.headerparser.parseDateHeader(dateSent); - } - else { - lastDate = new Date(dateSent * 1000); - } - let now = new Date(); - if (lastDate > now) { - lastDate = now; - } - paramArr.dateSent = lastDate; - - if (("_enigmail_artificial" in paramArr) && (paramArr._enigmail_artificial === "yes")) { - if ("_enigmail_fpr" in paramArr) { - paramArr.fpr = paramArr._enigmail_fpr; - } - - paramArr.keydata = ""; - paramArr.autocryptDate = 0; - } - else { - paramArr.autocryptDate = lastDate; - } - - try { - conn = await EnigmailSqliteDb.openDatabase(); - } - catch (ex) { - EnigmailLog.DEBUG("autocrypt.jsm: processAutocryptHeader: could not open database\n"); - return 7; - } - - let resultObj = await findUserRecord(conn, [fromAddr], paramArr.type); - EnigmailLog.DEBUG("autocrypt.jsm: got " + resultObj.numRows + " rows\n"); - if (resultObj.data.length === 0) { - await appendUser(conn, paramArr); - } - else { - await updateUser(conn, paramArr, resultObj.data, autoCryptEnabled); - } - - EnigmailLog.DEBUG("autocrypt.jsm: OK - closing connection\n"); - conn.close(); - return 0; - } - catch (err) { - EnigmailLog.DEBUG("autocrypt.jsm: error - closing connection: " + err + "\n"); - conn.close(); - return 8; - } - }, - - /** - * Import autocrypt OpenPGP keys into regular keyring for a given list of email addresses - * @param {Array of String} emailAddr: email addresses - * @param {Boolean} acceptGossipKeys: import keys received via gossip - * - * @return {Promise} - */ - importAutocryptKeys: async function(emailAddr, acceptGossipKeys = false) { - EnigmailLog.DEBUG("autocrypt.jsm: importAutocryptKeys()\n"); - - let keyArr = await this.getOpenPGPKeyForEmail(emailAddr); - if (!keyArr) return []; - - let importedKeys = []; - let now = new Date(); - let prev = null; - - for (let i = 0; i < keyArr.length; i++) { - if (prev && prev.email === keyArr[i].email && prev.type === "1" && keyArr[i].type === "1g") { - // skip if we have "gossip" key preceeded by a "regular" key - continue; - } - if (!acceptGossipKeys && keyArr[i].type === "1g") { - EnigmailLog.DEBUG(`autocrypt.jsm: importAutocryptKeys: skipping gossip key for ${keyArr[i].email}\n`); - continue; - } - - prev = keyArr[i]; - if ((now - keyArr[i].lastAutocrypt) / (1000 * 60 * 60 * 24) < 366) { - // only import keys received less than 12 months ago - try { - let keyData = atob(keyArr[i].keyData); - if (keyData.length > 1) { - importedKeys = await this.applyKeyFromKeydata(keyData, keyArr[i].email, keyArr[i].state, keyArr[i].type); - } - } - catch (ex) { - EnigmailLog.DEBUG("autocrypt.jsm importAutocryptKeys: exception " + ex.toString() + "\n"); - } - } - } - - return importedKeys; - }, - - /** - * Import given key data and set the per-recipient rule accordingly - * - * @param {String} keyData - String key data (BLOB, binary form) - * @param {String} email - email address associated with key - * @param {String} autocryptState - mutual or nopreference - * @param {String} type - autocrypt header type (1 / 1g) - * - * @return {Promise} list of imported keys - */ - applyKeyFromKeydata: async function(keyData, email, autocryptState, type) { - let keysObj = {}; - let importedKeys = []; - - let pubkey = EnigmailOpenPGP.enigmailFuncs.bytesToArmor(EnigmailOpenPGP.openpgp.enums.armor.public_key, keyData); - await EnigmailKeyRing.importKeyAsync(null, false, pubkey, "", {}, keysObj); - - 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 = (autocryptState === "mutual" ? 1 : 0); - - if (key && key.fpr) { - let ruleObj = { - email: `{${EnigmailConstants.AC_RULE_PREFIX}${email}}`, - keyList: `0x${key.fpr}`, - sign: signEncrypt, - encrypt: signEncrypt, - pgpMime: 2, - flags: 0 - }; - - EnigmailRules.insertOrUpdateRule(ruleObj); - await this.setKeyImported(null, email); - } - } - } - - return importedKeys; - }, - - /** - * Update key in the Autocrypt database to mark it "imported in keyring" - */ - setKeyImported: async function(connection, email) { - EnigmailLog.DEBUG(`autocrypt.jsm: setKeyImported(${email})\n`); - try { - let conn = connection; - if (!conn) { - conn = await EnigmailSqliteDb.openDatabase(); - } - let updateStr = "update autocrypt_keydata set keyring_inserted = '1' where email = :email;"; - - let updateObj = { - email: email.toLowerCase() - }; - - await new Promise((resolve, reject) => - conn.executeTransaction(function _trx() { - conn.execute(updateStr, updateObj).then(r => { - resolve(r); - }).catch(err => { - EnigmailLog.DEBUG(`autocrypt.jsm: setKeyImported: error ${err}\n`); - reject(err); - }); - })); - - if (!connection) conn.close(); - } - catch (err) { - EnigmailLog.DEBUG(`autocrypt.jsm: setKeyImported: error ${err}\n`); - throw err; - } - }, - - /** - * Go through all emails in the autocrypt store and determine which keys already - * have a per-recipient rule - */ - updateAllImportedKeys: async function() { - EnigmailLog.DEBUG(`autocrypt.jsm: updateAllImportedKeys()\n`); - try { - let conn = await EnigmailSqliteDb.openDatabase(); - - let rows = []; - await conn.execute("select email, type from autocrypt_keydata where type = '1';", {}, - function _onRow(record) { - rows.push(record.getResultByName("email")); - }); - - for (let i in rows) { - let r = EnigmailRules.getRuleByEmail(`${EnigmailConstants.AC_RULE_PREFIX}${rows[i]}`); - if (r) { - await this.setKeyImported(conn, rows[i], "1"); - } - - } - EnigmailLog.DEBUG(`autocrypt.jsm: updateAllImportedKeys done\n`); - - conn.close(); - } - catch (err) { - EnigmailLog.DEBUG(`autocrypt.jsm: updateAllImportedKeys: error ${err}\n`); - throw err; - } - }, - - /** - * Find an autocrypt OpenPGP key for a given list of email addresses - * @param emailAddr: Array of String - email addresses - * - * @return Promise() - * Object: {fpr, keyData, lastAutocrypt} - */ - getOpenPGPKeyForEmail: function(emailAddr) { - EnigmailLog.DEBUG("autocrypt.jsm: getOpenPGPKeyForEmail(" + emailAddr.join(",") + ")\n"); - - let conn; - - return new Promise((resolve, reject) => { - EnigmailSqliteDb.openDatabase().then( - function onConnection(connection) { - conn = connection; - return findUserRecord(conn, emailAddr, "1,1g"); - }, - function onError(error) { - EnigmailLog.DEBUG("autocrypt.jsm: getOpenPGPKeyForEmail: could not open database\n"); - reject("getOpenPGPKeyForEmail1 error " + error); - } - ).then( - function gotData(resultObj) { - EnigmailLog.DEBUG("autocrypt.jsm: getOpenPGPKeyForEmail got " + resultObj.numRows + " rows\n"); - conn.close(); - - if (resultObj.data.length === 0) { - resolve(null); - } - else { - let retArr = []; - for (let i in resultObj.data) { - let record = resultObj.data[i]; - retArr.push({ - email: record.getResultByName("email"), - fpr: record.getResultByName("fpr"), - keyData: record.getResultByName("keydata"), - state: record.getResultByName("state"), - type: record.getResultByName("type"), - lastAutocrypt: new Date(record.getResultByName("last_seen_autocrypt")) - }); - } - - resolve(retArr); - } - } - ). - catch((err) => { - conn.close(); - reject("getOpenPGPKeyForEmail: error " + err); - }); - }); - }, - - /** - * Create Autocrypt Setup Message - * - * @param identity: Object - nsIMsgIdentity - * - * @return Promise({str, passwd}): - * msg: String - complete setup message - * passwd: String - backup password - */ - createSetupMessage: function(identity) { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage()\n"); - - return new Promise((resolve, reject) => { - let keyId = ""; - let key; - try { - - if (!EnigmailCore.getService(null, false)) { - reject(0); - return; - } - - if (identity.getIntAttribute("pgpKeyMode") === 1) { - keyId = identity.getCharAttribute("pgpkeyId"); - } - - if (keyId.length > 0) { - key = EnigmailKeyRing.getKeyById(keyId); - } - else { - key = EnigmailKeyRing.getSecretKeyByUserId(identity.email); - } - - if (!key) { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: no key found for " + identity.email + "\n"); - reject(1); - return; - } - - let keyData = key.getSecretKey(true).keyData; - - 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"; - - let innerMsg = EnigmailArmor.replaceArmorHeaders(keyData, { - 'Autocrypt-Prefer-Encrypt': preferEncrypt - }) + '\r\n'; - - let bkpCode = createBackupCode(); - let enc = { - message: EnigmailOpenPGP.openpgp.message.fromText(innerMsg), - passwords: bkpCode, - armor: true - }; - - // create symmetrically encrypted message - EnigmailOpenPGP.openpgp.encrypt(enc).then(msg => { - let msgData = EnigmailArmor.replaceArmorHeaders(msg.data, { - 'Passphrase-Format': 'numeric9x4', - 'Passphrase-Begin': bkpCode.substr(0, 2) - }).replace(/\n/g, "\r\n"); - - let m = createBackupOuterMsg(identity.email, msgData); - resolve({ - msg: m, - passwd: bkpCode - }); - }).catch(e => { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: error " + e + "\n"); - reject(2); - }); - } - catch (ex) { - EnigmailLog.DEBUG("autocrypt.jsm: createSetupMessage: error " + ex.toString() + "\n"); - reject(4); - } - }); - }, - - /** - * Create and send the Autocrypt Setup Message to yourself - * The message is sent asynchronously. - * - * @param identity: Object - nsIMsgIdentity - * - * @return Promise(passwd): - * passwd: String - backup password - * - */ - sendSetupMessage: function(identity) { - EnigmailLog.DEBUG("autocrypt.jsm: sendSetupMessage()\n"); - - let self = this; - return new Promise((resolve, reject) => { - 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"; - composeFields.from = identity.email; - composeFields.to = identity.email; - gCreatedSetupIds.push(composeFields.messageId); - - let now = new Date(); - let mimeStr = "Message-Id: " + composeFields.messageId + "\r\n" + - "Date: " + now.toUTCString() + "\r\n" + res.msg; - - if (EnigmailSend.sendMessage(mimeStr, composeFields, null)) { - resolve(res.passwd); - } - else { - reject(99); - } - }); - }); - }, - - - /** - * get the data of the attachment of a setup message - * - * @param attachmentUrl: String - URL of the attachment - * - * @return Promise(Object): - * attachmentData: String - complete attachment data - * passphraseFormat: String - extracted format from the header (e.g. numeric9x4) [optional] - * passphraseHint: String - 1st two digits of the password [optional] - */ - getSetupMessageData: function(attachmentUrl) { - EnigmailLog.DEBUG("autocrypt.jsm: getSetupMessageData()\n"); - - return new Promise((resolve, reject) => { - let s = EnigmailStreams.newStringStreamListener(data => { - let start = {}, - end = {}; - let msgType = EnigmailArmor.locateArmoredBlock(data, 0, "", start, end, {}); - - if (msgType === "MESSAGE") { - EnigmailLog.DEBUG("autocrypt.jsm: getSetupMessageData: got backup key\n"); - let armorHdr = EnigmailArmor.getArmorHeaders(data); - - let passphraseFormat = "generic"; - if ("passphrase-format" in armorHdr) { - passphraseFormat = armorHdr["passphrase-format"]; - } - let passphraseHint = ""; - if ("passphrase-begin" in armorHdr) { - passphraseHint = armorHdr["passphrase-begin"]; - } - - resolve({ - attachmentData: data, - passphraseFormat: passphraseFormat, - passphraseHint: passphraseHint - }); - } - else { - reject("getSetupMessageData"); - } - }); - - let channel = EnigmailStreams.createChannel(attachmentUrl); - channel.asyncOpen(s, null); - }); - }, - - /** - * @return Promise(Object): - * fpr: String - FPR of the imported key - * preferEncrypt: String - Autocrypt preferEncrypt value (e.g. mutual) - */ - handleBackupMessage: function(passwd, attachmentData, fromAddr) { - EnigmailLog.DEBUG("autocrypt.jsm: handleBackupMessage()\n"); - - return new Promise((resolve, reject) => { - let start = {}, - end = {}; - let msgType = EnigmailArmor.locateArmoredBlock(attachmentData, 0, "", start, end, {}); - - EnigmailOpenPGP.openpgp.message.readArmored(attachmentData.substring(start.value, end.value)).then(encMessage => { - let enc = { - message: encMessage, - passwords: [passwd], - format: 'utf8' - }; - - return EnigmailOpenPGP.openpgp.decrypt(enc); - }) - .then(msg => { - EnigmailLog.DEBUG("autocrypt.jsm: handleBackupMessage: data: " + msg.data.length + "\n"); - - let setupData = importSetupKey(msg.data); - if (setupData) { - EnigmailKeyEditor.setKeyTrust(null, "0x" + setupData.fpr, "5", function(returnCode) { - if (returnCode === 0) { - let id = EnigmailStdlib.getIdentityForEmail(EnigmailFuncs.stripEmail(fromAddr).toLowerCase()); - let ac = EnigmailFuncs.getAccountForIdentity(id.identity); - ac.incomingServer.setBoolValue("enableAutocrypt", true); - ac.incomingServer.setIntValue("acPreferEncrypt", (setupData.preferEncrypt === "mutual" ? 1 : 0)); - id.identity.setCharAttribute("pgpkeyId", "0x" + setupData.fpr); - id.identity.setBoolAttribute("enablePgp", true); - id.identity.setBoolAttribute("pgpSignEncrypted", true); - id.identity.setBoolAttribute("pgpMimeMode", true); - id.identity.setIntAttribute("pgpKeyMode", 1); - EnigmailPrefs.setPref("juniorMode", 1); - resolve(setupData); - } - else { - reject("keyImportFailed"); - } - }); - } - else { - reject("keyImportFailed"); - } - }). - catch(err => { - reject("wrongPasswd"); - }); - }); - }, - - /** - * Determine if a message id was self-created (only during same TB session) - */ - isSelfCreatedSetupMessage: function(messageId) { - return (gCreatedSetupIds.indexOf(messageId) >= 0); - }, - - /** - * Check if an account is set up with OpenPGP and if the configured key is valid - * - * @param emailAddr: String - email address identifying the account - * - * @return Boolean: true: account is valid / false: OpenPGP not configured or key not valid - */ - isAccountSetupForPgp: function(emailAddr) { - let id = EnigmailStdlib.getIdentityForEmail(EnigmailFuncs.stripEmail(emailAddr).toLowerCase()); - let keyObj = null; - - if (!(id && id.identity)) return false; - if (!id.identity.getBoolAttribute("enablePgp")) return false; - - if (id.identity.getIntAttribute("pgpKeyMode") === 1) { - keyObj = EnigmailKeyRing.getKeyById(id.identity.getCharAttribute("pgpkeyId")); - } - else { - keyObj = EnigmailKeyRing.getSecretKeyByUserId(emailAddr); - } - - if (!keyObj) return false; - if (!keyObj.secretAvailable) return false; - - let o = keyObj.getEncryptionValidity(); - if (!o.keyValid) return false; - o = keyObj.getSigningValidity(); - if (!o.keyValid) return false; - - return true; - }, - - /** - * Delete the record for a user from the autocrypt keystore - * The record with the highest precedence is deleted (i.e. type=1 before type=1g) - */ - deleteUser: async function(email, type) { - EnigmailLog.DEBUG(`autocrypt.jsm: deleteUser(${email})\n`); - let conn = await EnigmailSqliteDb.openDatabase(); - - let updateStr = "delete from autocrypt_keydata where email = :email and type = :type"; - let updateObj = { - email: email, - type: type - }; - - await new Promise((resolve, reject) => { - conn.executeTransaction(function _trx() { - conn.execute(updateStr, updateObj).then( - function _ok() { - resolve(); - } - ).catch(function _err() { - reject("update failed"); - }); - }); - }); - EnigmailLog.DEBUG(" deletion complete\n"); - - conn.close(); - } - -}; - -/** - * Find the database record for a given email address and type - * - * @param connection: Object - SQLite connection - * @param emails Array of String - Email addresses to search - * @param type: String - types to search (in lowercase), separated by comma - * - * @return {Promise}: - * numRows: number of results - * data: array of RowObject. Query columns using data[i].getResultByName(columnName); - */ -async function findUserRecord(connection, emails, type) { - EnigmailLog.DEBUG("autocrypt.jsm: findUserRecord\n"); - - let data = []; - let t = type.split(/[ ,]+/); - - let queryParam = { - e0: emails[0], - t0: t[0] - }; - - let numRows = 0; - - let search = ":e0"; - for (let i = 1; i < emails.length; i++) { - search += ", :e" + i; - queryParam["e" + i] = emails[i].toLowerCase(); - } - - let typeParam = ":t0"; - for (let i = 1; i < t.length; i++) { - typeParam += ", :t" + i; - queryParam["t" + i] = t[i]; - } - - try { - await connection.execute( - "select * from autocrypt_keydata where email in (" + search + ") and type in (" + typeParam + ") order by email, type", queryParam, - function _onRow(row) { - EnigmailLog.DEBUG("autocrypt.jsm: findUserRecord - got row\n"); - data.push(row); - ++numRows; - }); - } - catch (x) { - EnigmailLog.DEBUG(`autocrypt.jsm: findUserRecord: error ${x}\n`); - throw x; - } - - return { - data: data, - numRows: numRows - }; -} - -/** - * Create new database record for an Autorypt header - * - * @param connection: Object - SQLite connection - * @param paramsArr: Object - the Autocrypt header parameters - * - * @return Promise - */ -async function appendUser(connection, paramsArr) { - EnigmailLog.DEBUG("autocrypt.jsm: appendUser(" + paramsArr.addr + ")\n"); - - if (!("fpr" in paramsArr)) { - await getFprForKey(paramsArr); - } - - return new Promise((resolve, reject) => { - - if (paramsArr.autocryptDate == 0) { - // do not insert record for non-autocrypt mail - resolve(); - return; - } - - 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.toLowerCase(), - keyData: paramsArr.keydata, - fpr: ("fpr" in paramsArr ? paramsArr.fpr : ""), - type: paramsArr.type, - lastAutocrypt: paramsArr.dateSent.toJSON(), - lastSeen: paramsArr.dateSent.toJSON(), - state: paramsArr["prefer-encrypt"] - }).then( - function _ok() { - EnigmailLog.DEBUG("autocrypt.jsm: appendUser - OK\n"); - resolve(); - } - ).catch(function _err() { - reject("appendUser"); - }); - }); - }); -} - -/** - * Update the record for an email address and type, if the email we got is newer - * than the latest record we already stored - * - * @param connection: Object - SQLite connection - * @param paramsArr: Object - the Autocrypt header parameters - * @param resultRows: Array of mozIStorageRow - records stored in the database - * @param autoCryptEnabled: Boolean: is autocrypt enabled for this transaction - * - * @return Promise - */ -async function updateUser(connection, paramsArr, resultRows, autoCryptEnabled) { - EnigmailLog.DEBUG("autocrypt.jsm: updateUser\n"); - - let currData = resultRows[0]; - let deferred = PromiseUtils.defer(); - - let lastSeen = new Date(currData.getResultByName("last_seen")); - let lastAutocrypt = new Date(currData.getResultByName("last_seen_autocrypt")); - let notGossip = (currData.getResultByName("state") !== "gossip"); - let currentKeyData = currData.getResultByName("keydata"); - let isKeyInKeyring = (currData.getResultByName("keyring_inserted") === "1"); - - if (lastSeen >= paramsArr.dateSent || - (paramsArr["prefer-encrypt"] === "gossip" && notGossip)) { - EnigmailLog.DEBUG("autocrypt.jsm: updateUser: not a relevant new latest message\n"); - - return; - } - - EnigmailLog.DEBUG("autocrypt.jsm: updateUser: updating latest message\n"); - - let updateStr; - let updateObj; - - if (paramsArr.autocryptDate > 0) { - lastAutocrypt = paramsArr.autocryptDate; - if (!("fpr" in paramsArr)) { - await getFprForKey(paramsArr); - } - - 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.toLowerCase(), - state: paramsArr["prefer-encrypt"], - keyData: paramsArr.keydata, - fpr: ("fpr" in paramsArr ? paramsArr.fpr : ""), - type: paramsArr.type, - lastAutocrypt: lastAutocrypt.toJSON(), - lastSeen: paramsArr.dateSent.toJSON() - }; - } - else { - updateStr = "update autocrypt_keydata set state = :state, last_seen = :lastSeen where email = :email and type = :type"; - updateObj = { - email: paramsArr.addr.toLowerCase(), - state: paramsArr["prefer-encrypt"], - type: paramsArr.type, - lastSeen: paramsArr.dateSent.toJSON() - }; - } - - if (!("fpr" in paramsArr)) { - await getFprForKey(paramsArr); - } - - await new Promise((resolve, reject) => { - connection.executeTransaction(function _trx() { - connection.execute(updateStr, updateObj).then( - function _ok() { - resolve(); - } - ).catch(function _err() { - reject("update failed"); - }); - }); - }); - - if (autoCryptEnabled && isKeyInKeyring && (currentKeyData !== paramsArr.keydata)) { - await updateKeyIfNeeded(paramsArr.addr.toLowerCase(), paramsArr.keydata, paramsArr.fpr, paramsArr.type, paramsArr["prefer-encrypt"]); - } - - return; -} - - -/** - * Determine if a key in the keyring should be replaced by a new (or updated) key - * @param {String} email - Email address - * @param {String} keydata - new keydata to import - * @param {String} fpr - fingerprint of new key - * @param {String} keyType - key type (1 / 1g) - * @param {String} autocryptState - mutual or nopreference - * - * @return {Promise} - key updated - */ -async function updateKeyIfNeeded(email, keydata, fpr, keyType, autocryptState) { - let ruleNode = EnigmailRules.getRuleByEmail(EnigmailConstants.AC_RULE_PREFIX + email); - if (!ruleNode) return false; - - let doImport = false; - - let currentKeyId = ruleNode.getAttribute("keyList"); - if (`0x${fpr}` === currentKeyId || keyType === "1") { - doImport = true; - } - else { - // Gossip keys - let keyObj = EnigmailKeyRing.getKeyById(currentKeyId); - let encOk = keyObj.getEncryptionValidity().keyValid; - - if (!encOk) { - // current key is not valid anymore - doImport = true; - } - } - - if (doImport) { - await EnigmailAutocrypt.applyKeyFromKeydata(atob(keydata), email, autocryptState, keyType); - } - - return doImport; -} - -/** - * Set the fpr attribute for a given key parameter object - */ -async function getFprForKey(paramsArr) { - let keyData = atob(paramsArr.keydata); - - const cApi = EnigmailCryptoAPI(); - - try { - let keyInfo = await cApi.getKeyListFromKeyBlock(keyData); - - // keyInfo is an object, not an array => convert to array 1st - let keyArr = []; - - for (let k in keyInfo) { - keyArr.push(keyInfo[k]); - } - - if (keyArr.length === 1) { - paramsArr.fpr = keyArr[0].fpr; - } - } - catch (x) {} -} - - -/** - * Create the 9x4 digits backup code as defined in the Autocrypt spec - * - * @return String: xxxx-xxxx-... - */ - -function createBackupCode() { - let bkpCode = ""; - - for (let i = 0; i < 9; i++) { - if (i > 0) bkpCode += "-"; - - let a = new Uint8Array(4); - crypto.getRandomValues(a); - for (let j = 0; j < 4; j++) { - bkpCode += String(a[j] % 10); - } - } - return bkpCode; -} - - -function createBackupOuterMsg(toEmail, encryptedMsg) { - - let boundary = EnigmailMime.createBoundary(); - - let msgStr = 'To: ' + toEmail + '\r\n' + - 'From: ' + toEmail + '\r\n' + - 'Autocrypt-Setup-Message: v1\r\n' + - 'Subject: ' + EnigmailLocale.getString("autocrypt.setupMsg.subject") + '\r\n' + - 'Content-type: multipart/mixed; boundary="' + boundary + '"\r\n\r\n' + - '--' + boundary + '\r\n' + - 'Content-Type: text/plain\r\n\r\n' + - EnigmailLocale.getString("autocryptSetupReq.setupMsg.desc") + '\r\n\r\n' + - EnigmailLocale.getString("autocrypt.setupMsg.msgBody") + '\r\n\r\n' + - EnigmailLocale.getString("autocryptSetupReq.setupMsg.backup") + '\r\n' + - '--' + boundary + '\r\n' + - 'Content-Type: application/autocrypt-setup\r\n' + - 'Content-Disposition: attachment; filename="autocrypt-setup-message.html"\r\n\r\n' + - '\r\n' + - '

' + EnigmailLocale.getString("autocrypt.setupMsg.fileTxt") + '

\r\n' + - '
\r\n' +
-    encryptedMsg +
-    '
\r\n' + - '--' + boundary + '--\r\n'; - - return msgStr; -} - - -/** - * @return Object: - * fpr: String - FPR of the imported key - * preferEncrypt: String - Autocrypt preferEncrypt value (e.g. mutual) - */ -function importSetupKey(keyData) { - - EnigmailLog.DEBUG("autocrypt.jsm: importSetupKey()\n"); - - let preferEncrypt = "nopreference"; // Autocrypt default according spec - let start = {}, - end = {}, - keyObj = {}; - - let msgType = EnigmailArmor.locateArmoredBlock(keyData, 0, "", start, end, {}); - if (msgType === "PRIVATE KEY BLOCK") { - - let headers = EnigmailArmor.getArmorHeaders(keyData); - if ("autocrypt-prefer-encrypt" in headers) { - preferEncrypt = headers["autocrypt-prefer-encrypt"]; - } - - let r = EnigmailKeyRing.importKey(null, false, keyData, "", {}, keyObj); - - if (r === 0 && keyObj.value && keyObj.value.length > 0) { - return { - fpr: keyObj.value[0], - preferEncrypt: preferEncrypt - }; - } - } - - return null; -} - - -function updateRuleForEmail(email, preferEncrypt, fpr = null) { - let node = EnigmailRules.getRuleByEmail(EnigmailConstants.AC_RULE_PREFIX + email); - - if (node) { - let signEncrypt = (preferEncrypt === "mutual" ? "1" : "0"); - - if (node.getAttribute("sign") !== signEncrypt || - node.getAttribute("encrypt") !== signEncrypt) { - - node.setAttribute("sign", signEncrypt); - node.setAttribute("encrypt", signEncrypt); - if (fpr) { - node.setAttribute("keyList", `0x${fpr}`); - } - EnigmailRules.saveRulesFile(); - } - } -} diff -Nru enigmail-2.1.6+ds1/package/autoSetup.jsm enigmail-2.2.4/package/autoSetup.jsm --- enigmail-2.1.6+ds1/package/autoSetup.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/autoSetup.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,693 +0,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 - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/*eslint no-loop-func: 0 no-async-promise-executor: 0*/ - -/** - * Module to determine the type of setup of the user, based on existing emails - * found in the inbox - */ - -var EXPORTED_SYMBOLS = ["EnigmailAutoSetup"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailAutocrypt = ChromeUtils.import("chrome://enigmail/content/modules/autocrypt.jsm").EnigmailAutocrypt; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailWks = ChromeUtils.import("chrome://enigmail/content/modules/webKey.jsm").EnigmailWks; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; - -// Interfaces -const nsIFolderLookupService = Ci.nsIFolderLookupService; -const nsIMsgAccountManager = Ci.nsIMsgAccountManager; -const nsIMsgAccount = Ci.nsIMsgAccount; -const nsIMsgDBHdr = Ci.nsIMsgDBHdr; -const nsIMessenger = Ci.nsIMessenger; -const nsIMsgMessageService = Ci.nsIMsgMessageService; -const nsIMsgFolder = Ci.nsIMsgFolder; - -/** - * the determined setup type - */ -var gDeterminedSetupType = { - value: EnigmailConstants.AUTOSETUP_NOT_INITIALIZED -}; - -var EnigmailAutoSetup = { - - getDeterminedSetupType: async function() { - if (gDeterminedSetupType.value === EnigmailConstants.AUTOSETUP_NOT_INITIALIZED) { - return await this.determinePreviousInstallType(); - } - else - return gDeterminedSetupType; - }, - - /** - * Identify which type of setup the user had before Enigmail was (re-)installed - * - * @return Promise with: - * - value : For each case assigned value, see EnigmailConstants.AUTOSETUP_xxx values - * - acSetupMessage {nsIMsgDBHdr} in case value === 1 - * - msgHeaders {Object} in case value === 2 - */ - determinePreviousInstallType: function() { - let self = this; - gDeterminedSetupType = { - value: EnigmailConstants.AUTOSETUP_NOT_INITIALIZED - }; - - return new Promise(async (resolve, reject) => { - EnigmailLog.DEBUG("autoSetup.jsm: determinePreviousInstallType()\n"); - - let resolved = false; - const currDateInSeconds = getCurrentTime(); - - function doResolve(value) { - if (resolved) return; - resolved = true; - resolve(value); - } - - // if after task runs for more than 3 minutes, then return whatever has been found (or not found) so far - EnigmailTimer.setTimeout(function _f() { - if (!resolved) { - EnigmailLog.DEBUG(`autoSetup.jsm: determinePreviousInstallType: timeout after 3 minutes\n`); - } - doResolve(gDeterminedSetupType); - }, 3 * 60 * 1000); // 3 minutes - - try { - let msgAccountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(nsIMsgAccountManager); - let folderService = Cc["@mozilla.org/mail/folder-lookup;1"].getService(nsIFolderLookupService); - let returnMsgValue = { - value: EnigmailConstants.AUTOSETUP_NO_HEADER - }; - - var accounts = msgAccountManager.accounts; - - let msgHeaders = []; - let autocryptSetupMessage = {}; - - // If no account, except Local Folders is configured - if (accounts.length <= 1) { - gDeterminedSetupType.value = EnigmailConstants.AUTOSETUP_NO_ACCOUNT; - doResolve(gDeterminedSetupType); - return; - } - - // Iterate through each account - - for (var i = 0; i < accounts.length; i++) { - var account = accounts.queryElementAt(i, Ci.nsIMsgAccount); - var accountMsgServer = account.incomingServer; - EnigmailLog.DEBUG(`autoSetup.jsm: determinePreviousInstallType: scanning account "${accountMsgServer.prettyName}"\n`); - - let msgFolderArr = []; - - try { - getMsgFolders(account.incomingServer.rootFolder, msgFolderArr); - } - catch (e) { - EnigmailLog.DEBUG("autoSetup.jsm: determinePreviousInstallType: Error: " + e + "\n"); - } - - if (account.incomingServer.type.search(/^(none|nntp)$/) === 0) { - // ignore NNTP accounts and "Local Folders" accounts - continue; - } - - // Iterating through each non empty Folder Database in the Account - - for (var k = 0; k < msgFolderArr.length; k++) { - let msgFolder = msgFolderArr[k]; - let msgDatabase = msgFolderArr[k].msgDatabase; - - if ((msgFolder.flags & Ci.nsMsgFolderFlags.Junk) || - (msgFolder.flags & Ci.nsMsgFolderFlags.Trash) || - (!account.defaultIdentity)) { - continue; - } - - EnigmailLog.DEBUG(`autoSetup.jsm: determinePreviousInstallType: scanning folder "${msgFolder.name}"\n`); - - let msgEnumerator = msgDatabase.ReverseEnumerateMessages(); - - // Iterating through each message in the Folder - while (msgEnumerator.hasMoreElements()) { - let msgHeader = msgEnumerator.getNext().QueryInterface(nsIMsgDBHdr); - let msgURI = msgFolder.getUriForMsg(msgHeader); - - let msgAuthor = ""; - try { - msgAuthor = EnigmailFuncs.stripEmail(msgHeader.author); - } - catch (x) {} - - // Listing all the headers in the message - - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(nsIMessenger); - let mms = messenger.messageServiceFromURI(msgURI).QueryInterface(nsIMsgMessageService); - - let headerObj = await getStreamedHeaders(msgURI, mms); - if (headerObj) { - let checkHeaderValues = await checkHeaders(headerObj, msgHeader, msgAuthor, account.defaultIdentity.email, msgFolder, returnMsgValue, msgHeaders); - - msgHeaders = checkHeaderValues.msgHeaders; - returnMsgValue = checkHeaderValues.returnMsgValue; - } - const diffSecond = currDateInSeconds - msgHeader.dateInSeconds; - - /** - 2592000 = No. of Seconds in a Month. - This is to ignore 1 month old messages. - */ - if (diffSecond > 2592000.0) { - break; - } - } - - } - - } - if (returnMsgValue.acSetupMessage) { - EnigmailLog.DEBUG(`autoSetup.jsm: determinePreviousInstallType: found AC-Setup message\n`); - gDeterminedSetupType = returnMsgValue; - doResolve(gDeterminedSetupType); - } - else { - EnigmailLog.DEBUG(`msgHeaders.length: ${msgHeaders.length}\n`); - - // find newest message to know the protocol - let latestMsg = null; - for (let i = 0; i < msgHeaders.length; i++) { - if (!latestMsg) { - latestMsg = msgHeaders[i]; - } - - if (msgHeaders[i].dateTime > latestMsg.dateTime) { - latestMsg = msgHeaders[i]; - } - } - - if (latestMsg) { - if (latestMsg.msgType === "Autocrypt") { - returnMsgValue.value = EnigmailConstants.AUTOSETUP_AC_HEADER; - returnMsgValue.msgHeaders = msgHeaders; - } - else if (latestMsg.msgType === "pEp") { - returnMsgValue.value = EnigmailConstants.AUTOSETUP_PEP_HEADER; - returnMsgValue.msgHeaders = msgHeaders; - } - else { - returnMsgValue.value = EnigmailConstants.AUTOSETUP_ENCRYPTED_MSG; - returnMsgValue.msgHeaders = msgHeaders; - } - } - - let defId = EnigmailFuncs.getDefaultIdentity(); - if (defId) { - returnMsgValue.userName = defId.fullName; - returnMsgValue.userEmail = defId.email; - } - else { - returnMsgValue.userName = undefined; - returnMsgValue.userEmail = undefined; - } - - gDeterminedSetupType = returnMsgValue; - EnigmailLog.DEBUG(`autoSetup.jsm: determinePreviousInstallType: found type: ${returnMsgValue.value}\n`); - doResolve(returnMsgValue); - } - } - catch (x) { - reject(x); - } - }); - - }, - - /** - * Process the Autocrypt Setup Message - * - * @param {Object} headerValue: contains header and attachment of an Autocrypt Setup Message - * @param {nsIWindow} passwordWindow: parent window for password dialog - * @param {nsIWindow} confirmWindow: parent window for confirmation dialog - * (note: split into 2 parent windows for unit tests) - * - * @return {Promise}: Import result. - * 1: imported OK - * 0: no Autocrypt setup message - * -1: import not OK (wrong password, canceled etc.) - */ - - performAutocryptSetup: async function(headerValue, passwordWindow = null, confirmWindow = null) { - EnigmailLog.DEBUG("autoSetup.jsm: performAutocryptSetup()\n"); - - let imported = 0; - if (headerValue.attachment.contentType.search(/^application\/autocrypt-setup$/i) === 0) { - try { - let res = await EnigmailAutocrypt.getSetupMessageData(headerValue.attachment.url); - let passwd = EnigmailWindows.autocryptSetupPasswd(passwordWindow, "input", res.passphraseFormat, res.passphraseHint); - - if ((!passwd) || passwd == "") { - throw "noPasswd"; - } - - await EnigmailAutocrypt.handleBackupMessage(passwd, res.attachmentData, headerValue.acSetupMessage.author); - EnigmailDialog.info(confirmWindow, EnigmailLocale.getString("autocrypt.importSetupKey.success", headerValue.acSetupMessage.author)); - imported = 1; - } - catch (err) { - EnigmailLog.DEBUG("autoSetup.jsm: performAutocryptSetup got cancel status=" + err + "\n"); - imported = -1; - - switch (err) { - case "getSetupMessageData": - EnigmailDialog.alert(confirmWindow, EnigmailLocale.getString("autocrypt.importSetupKey.invalidMessage")); - break; - case "wrongPasswd": - if (EnigmailDialog.confirmDlg(confirmWindow, EnigmailLocale.getString("autocrypt.importSetupKey.wrongPasswd"), EnigmailLocale.getString("dlg.button.retry"), - EnigmailLocale.getString("dlg.button.cancel"))) { - EnigmailAutoSetup.performAutocryptSetup(headerValue); - } - break; - case "keyImportFailed": - EnigmailDialog.alert(confirmWindow, EnigmailLocale.getString("autocrypt.importSetupKey.invalidKey")); - break; - default: - EnigmailDialog.alert(confirmWindow, EnigmailLocale.getString("keyserver.error.unknown")); - } - } - } - - return imported; - }, - - /** - * Process accounts with Autocrypt headers - * - * @param {Object} setupType: containing Autocrypt headers from accounts - * - * @return {Promise}: Result: 0: OK / 1: failure - */ - - processAutocryptHeader: function(setupType) { - EnigmailLog.DEBUG("autoSetup.jsm: processAutocryptHeader()\n"); - - return new Promise(async (resolve, reject) => { - - // find newest message to know the protocol - let latestMsg = null; - for (let i = 0; i < setupType.msgHeaders.length; i++) { - if (!latestMsg) { - latestMsg = setupType.msgHeaders[i]; - } - - if (setupType.msgHeaders[i].dateTime > latestMsg) { - latestMsg = setupType.msgHeaders[i]; - } - } - - let sysType = latestMsg.msgType; - EnigmailLog.DEBUG(`autoSetup.jsm: processAutocryptHeader: got type: ${sysType}\n`); - - - for (let i = 0; i < setupType.msgHeaders.length; i++) { - if (setupType.msgHeaders[i].msgType === "Autocrypt") { - // FIXME - let success = await EnigmailAutocrypt.processAutocryptHeader(setupType.msgHeaders[i].fromAddr, [setupType.msgHeaders[i].msgData], - setupType.msgHeaders[i].date); - if (success !== 0) { - resolve(1); - } - } - } - resolve(0); - }); - }, - - /** - * Create a new autocrypt key for every configured account and configure the account - * to use that key. The keys are not protected by a password. - * - * The creation is done in the background after waiting timeoutValue ms - * @param {Number} timeoutValue: number of miliseconds to wait before starting - * the process - */ - createKeyForAllAccounts: function(timeoutValue = 1000) { - EnigmailLog.DEBUG("autoSetup.jsm: createKeyForAllAccounts()\n"); - let self = this; - - EnigmailTimer.setTimeout(async function _f() { - let msgAccountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(nsIMsgAccountManager); - let accounts = msgAccountManager.accounts; - let createdKeys = []; - - for (let i = 0; i < accounts.length; i++) { - let account = accounts.queryElementAt(i, Ci.nsIMsgAccount); - let id = account.defaultIdentity; - - if (id && id.email) { - let keyId = await self.createAutocryptKey(id.fullName, id.email); - EnigmailLog.DEBUG(`autoSetup.jsm: createKeyForAllAccounts: created key ${keyId}\n`); - if (keyId) { - let keyObj = EnigmailKeyRing.getKeyById(keyId); - if (keyObj) createdKeys.push(keyObj); - id.setBoolAttribute("enablePgp", true); - id.setCharAttribute("pgpkeyId", keyId); - id.setIntAttribute("pgpKeyMode", 1); - id.setBoolAttribute("pgpMimeMode", true); - id.setBoolAttribute("pgpSignEncrypted", true); - } - } - } - - // upload created keys to WKD (if possible) - EnigmailWks.wksUpload(createdKeys, null); - }, timeoutValue); - }, - - /** - * Create a new autocrypt-complinant key - * The keys will not be protected by passwords. - * - * @param {String} userName: Display name - * @param {String} userEmail: Email address - * - * @return {Promise}: Success (true = successful) - */ - createAutocryptKey: function(userName, userEmail) { - return new Promise((resolve, reject) => { - EnigmailLog.DEBUG("autoSetup.jsm: createAutocryptKey()\n"); - - let keyType = "ECC", - keyLength = 0; - - if (!EnigmailGpg.getGpgFeature("supports-ecc-keys")) { - // fallback for gpg < 2.1 - keyLength = 4096; - keyType = "RSA"; - } - - let expiry = 1825, // 5 years - passphrase = "", - generateObserver = { - keyId: null, - backupLocation: null, - _state: 0, - - onDataAvailable: function(data) {}, - onStopRequest: function(exitCode) { - EnigmailLog.DEBUG("autoSetup.jsm: createAutocryptKey(): key generation complete\n"); - resolve(generateObserver.keyId); - } - }; - - try { - let keygenRequest = EnigmailKeyRing.generateKey(userName, "", userEmail, expiry, keyLength, keyType, passphrase, generateObserver); - } - catch (ex) { - EnigmailLog.DEBUG("autoSetup.jsm: createAutocryptKey: error: " + ex.message); - resolve(null); - } - }); - }, - - /** - * Configure Enigmail to use existing keys - */ - applyExistingKeys: function() { - EnigmailLog.DEBUG(`autoSetup.jsm: applyExistingKeys()\n`); - let msgAccountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(nsIMsgAccountManager); - let identities = msgAccountManager.allIdentities; - - for (let i = 0; i < identities.length; i++) { - let id = identities.queryElementAt(i, Ci.nsIMsgIdentity); - - if (id && id.email) { - let keyObj = EnigmailKeyRing.getSecretKeyByEmail(id.email); - if (keyObj) { - EnigmailLog.DEBUG(`autoSetup.jsm: applyExistingKeys: found key ${keyObj.keyId}\n`); - id.setBoolAttribute("enablePgp", true); - id.setCharAttribute("pgpkeyId", "0x" + keyObj.fpr); - id.setIntAttribute("pgpKeyMode", 1); - id.setBoolAttribute("pgpMimeMode", true); - id.setBoolAttribute("pgpSignEncrypted", true); - } - } - } - } -}; - - -/** - * Recusrively go through all folders to get a flat array of all sub-folders - * starting with a parent folder. - * - * @param {nsIMsgFolder} folder: the folder to scan - * @param {nsIMsgFolder} msgFolderArr: An array to be filled with all folders that contain messages - */ - -function getMsgFolders(folder, msgFolderArr) { - EnigmailLog.DEBUG(`autoSetup.jsm: getMsgFolders(${folder.prettyName})\n`); - if (folder.getTotalMessages(false) > 0) { - msgFolderArr.push(folder); - } - - // add all subfolders - if (folder.hasSubFolders) { - let subFolders = folder.subFolders; - while (subFolders.hasMoreElements()) { - getMsgFolders(subFolders.getNext().QueryInterface(nsIMsgFolder), msgFolderArr); - } - } -} - -// Util Function for Extracting manually added Headers -function getStreamListener(callback) { - let streamListener = { - mAttachments: [], - mHeaders: [], - mBusy: true, - - onStartRequest: function(aRequest) { - this.mAttachments = []; - this.mHeaders = []; - this.mBusy = true; - - var channel = aRequest.QueryInterface(Components.interfaces.nsIChannel); - channel.URI.QueryInterface(Components.interfaces.nsIMsgMailNewsUrl); - channel.URI.msgHeaderSink = this; // adds this header sink interface to the channel - }, - onStopRequest: function(aRequest, aStatusCode) { - callback(); - this.mBusy = false; // if needed, you can poll this var to see if we are done collecting attachment details - }, - onDataAvailable: function(aRequest, aInputStream, aOffset, aCount) {}, - onStartHeaders: function() {}, - onEndHeaders: function() {}, - processHeaders: function(aHeaderNameEnumerator, aHeaderValueEnumerator, aDontCollectAddress) { - while (aHeaderNameEnumerator.hasMore()) { - this.mHeaders.push({ - name: aHeaderNameEnumerator.getNext().toLowerCase(), - value: aHeaderValueEnumerator.getNext() - }); - } - }, - handleAttachment: function(aContentType, aUrl, aDisplayName, aUri, aIsExternalAttachment) { - if (aContentType == "text/html") { - return; - } - this.mAttachments.push({ - contentType: aContentType, - url: aUrl, - displayName: aDisplayName, - uri: aUri, - isExternal: aIsExternalAttachment - }); - }, - onEndAllAttachments: function() {}, - onEndMsgDownload: function(aUrl) {}, - onEndMsgHeaders: function(aUrl) {}, - onMsgHasRemoteContent: function(aMsgHdr) {}, - getSecurityInfo: function() {}, - setSecurityInfo: function(aSecurityInfo) {}, - getDummyMsgHeader: function() {}, - - QueryInterface: function(aIID) { - if (aIID.equals(Components.interfaces.nsIStreamListener) || - aIID.equals(Components.interfaces.nsIMsgHeaderSink) || - aIID.equals(Components.interfaces.nsISupports)) { - return this; - } - - throw Components.results.NS_NOINTERFACE; - } - }; - - return streamListener; -} - -function getStreamedMessage(msgFolder, msgHeader) { - return new Promise((resolve, reject) => { - let msgURI = msgFolder.getUriForMsg(msgHeader); - EnigmailLog.DEBUG(`autoSetup.jsm: getStreamedMessage(${msgURI})\n`); - var listener = getStreamListener(() => { - resolve(listener.mAttachments[0]); - }); - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(nsIMessenger); - let mms = messenger.messageServiceFromURI(msgURI).QueryInterface(nsIMsgMessageService); - mms.streamMessage(msgURI, listener, null, null, true, "filter"); - }); -} - -function checkHeaders(headerObj, msgHeader, msgAuthor, accountEmail, msgFolder, returnMsgValue, msgHeaders) { - EnigmailLog.DEBUG(`autoSetup.jsm: checkHeaders()\n`); - - return new Promise(async (resolve, reject) => { - if (headerObj['autocrypt-setup-message'] && msgHeader.author == msgHeader.recipients) { - - // To extract Attachement for Autocrypt Setup Message - - returnMsgValue.attachment = await getStreamedMessage(msgFolder, msgHeader); - - if (!returnMsgValue.acSetupMessage) { - returnMsgValue.value = 1; - returnMsgValue.acSetupMessage = msgHeader; - } - else if (returnMsgValue.acSetupMessage.date < msgHeader.date) { - returnMsgValue.acSetupMessage = msgHeader; - } - - } - else if (msgAuthor == accountEmail && - (("autocrypt" in headerObj) || - ("x-pep-version" in headerObj))) { - - let msgType = ("x-pep-version" in headerObj) ? "pEp" : "Autocrypt"; - - let fromHeaderExist = null; - for (let j = 0; j < msgHeaders.length; j++) { - if (msgHeaders[j].fromAddr == msgAuthor) { - fromHeaderExist = msgHeaders[j]; - break; - } - } - - if (fromHeaderExist === null) { - let dateTime = new Date(0); - try { - dateTime = jsmime.headerparser.parseDateHeader(headerObj.date); - } - catch (x) {} - - let addHeader = { - fromAddr: msgAuthor, - msgType: msgType, - msgData: headerObj.autocrypt, - date: headerObj.date, - dateTime: dateTime - }; - msgHeaders.push(addHeader); - } - else { - let dateTime = new Date(0); - try { - dateTime = jsmime.headerparser.parseDateHeader(headerObj.date); - } - catch (x) {} - if (dateTime > fromHeaderExist.dateTime) { - fromHeaderExist.msgData = headerObj.autocrypt; - fromHeaderExist.date = headerObj.date; - fromHeaderExist.msgType = msgType; - fromHeaderExist.dateTime = dateTime; - } - } - } - - resolve({ - 'returnMsgValue': returnMsgValue, - 'msgHeaders': msgHeaders - }); - }); -} - -function getStreamedHeaders(msgURI, mms) { - EnigmailLog.DEBUG(`autoSetup.jsm: getStreamedHeaders(${msgURI})\n`); - - return new Promise((resolve, reject) => { - let headers = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - let headerObj = {}; - let done = false; - - EnigmailTimer.setTimeout(function _f() { - // Stream did not do anyting after 5 seconds, skip message - if (!done) { - EnigmailLog.DEBUG(`autoSetup.jsm: getStreamedHeaders: no response after 5 seconds\n`); - resolve(null); - } - }, 5000); // return after 5 seconds of inactivity - - try { - mms.streamHeaders(msgURI, EnigmailStreams.newStringStreamListener(aRawString => { - try { - EnigmailLog.DEBUG(`autoSetup.jsm: getStreamedHeaders: got ${aRawString.length} chars\n`); - headers.initialize(aRawString); - - let i = headers.headerNames; - while (i.hasMore()) { - let hdrName = i.getNext().toLowerCase(); - - let hdrValue = headers.extractHeader(hdrName, true); - headerObj[hdrName] = hdrValue; - } - - if ("autocrypt" in headerObj) { - let acHeader = headers.extractHeader("autocrypt", false); - acHeader = acHeader.replace(/keydata=/i, 'keydata="') + '"'; - - let paramArr = EnigmailMime.getAllParameters(acHeader); - paramArr.keydata = paramArr.keydata.replace(/[\r\n\t ]/g, ""); - - headerObj.autocrypt = ""; - for (i in paramArr) { - if (headerObj.autocrypt.length > 0) { - headerObj.autocrypt += "; "; - } - headerObj.autocrypt += `${i}="${paramArr[i]}"`; - } - } - } - catch (e) { - done = true; - reject({}); - EnigmailLog.DEBUG("autoSetup.jsm: getStreamedHeaders: Error: " + e + "\n"); - } - done = true; - resolve(headerObj); - }), null, false); - } - catch (e) { - reject({}); - EnigmailLog.DEBUG("autoSetup.jsm: getStreamedHeaders: Error: " + e + "\n"); - } - }); -} - - -function getCurrentTime() { - return new Date().getTime() / 1000; -} diff -Nru enigmail-2.1.6+ds1/package/bootstrap.js enigmail-2.2.4/package/bootstrap.js --- enigmail-2.1.6+ds1/package/bootstrap.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/bootstrap.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - - -/* global APP_SHUTDOWN: false */ - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); - -var gAllModules = []; - -function install() {} - -function uninstall() {} - -function startup(data, reason) { - try { - const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; - const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; - const EnigmailAmPrefsService = ChromeUtils.import("chrome://enigmail/content/modules/amPrefsService.jsm").EnigmailAmPrefsService; - const EnigmailPgpmimeHander = ChromeUtils.import("chrome://enigmail/content/modules/pgpmimeHandler.jsm").EnigmailPgpmimeHander; - const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; - - loadListOfModules(); - - EnigmailApp.initAddon(data); - EnigmailAmPrefsService.startup(reason); - EnigmailCore.startup(reason); - EnigmailPgpmimeHander.startup(reason); - - Services.console.logStringMessage("Enigmail bootstrap completed"); - } catch (ex) { - logException(ex); - } -} - -function shutdown(data, reason) { - try { - const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; - subprocess.onShutdown(); - - if (reason === APP_SHUTDOWN) return; - - const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; - const EnigmailAmPrefsService = ChromeUtils.import("chrome://enigmail/content/modules/amPrefsService.jsm").EnigmailAmPrefsService; - const EnigmailPgpmimeHander = ChromeUtils.import("chrome://enigmail/content/modules/pgpmimeHandler.jsm").EnigmailPgpmimeHander; - const EnigmailOverlays = ChromeUtils.import("chrome://enigmail/content/modules/enigmailOverlays.jsm").EnigmailOverlays; - const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; - const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; - - shutdownModule(EnigmailWindows, reason); - shutdownModule(EnigmailOverlays, reason); - shutdownModule(EnigmailAmPrefsService, reason); - shutdownModule(EnigmailCore, reason); - shutdownModule(EnigmailPgpmimeHander, reason); - unloadModules(); - - // HACK WARNING: The Addon Manager does not properly clear all addon related caches on update; - // in order to fully update images and locales, their caches need clearing here - Services.obs.notifyObservers(null, "chrome-flush-caches", null); - - } catch (ex) { - logException(ex); - } -} - -/** - * Perform shutdown of a module - */ -function shutdownModule(module, reason) { - try { - module.shutdown(reason); - } catch (ex) {} -} - -/** - * Load list of all Enigmail modules that can be potentially loaded - */ -function loadListOfModules() { - let request = new XMLHttpRequest(); - request.open("GET", "chrome://enigmail/content/modules/all-modules.txt", true); // async=true - request.responseType = "text"; - request.onerror = function(event) {}; - request.onload = function(event) { - if (request.response) { - gAllModules = []; - let modules = request.response.split(/[\r\n]/); - for (let mod of modules) { - mod = mod.replace(/^chrome/, ""); - gAllModules.push(mod); - } - } else - request.onerror(event); - }; - request.send(); -} - - -/** - * Unload all Enigmail modules that were potentially loaded - */ -function unloadModules() { - for (let mod of gAllModules) { - try { - // cannot unload filtersWrapper as you can't unregister filters in TB - if (mod.search(/filtersWrapper\.jsm$/) < 0) { - Components.utils.unload("chrome://enigmail" + mod); - } - } catch (ex) { - logException(ex); - } - } -} - -function logException(exc) { - try { - const { - Services - } = ChromeUtils.import("resource://gre/modules/Services.jsm"); - Services.console.logStringMessage(exc.toString() + "\n" + exc.stack); - } catch (x) {} -} diff -Nru enigmail-2.1.6+ds1/package/card.jsm enigmail-2.2.4/package/card.jsm --- enigmail-2.1.6+ds1/package/card.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/card.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailCard"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; - -var EnigmailCard = { - getCardStatus: function(exitCodeObj, errorMsgObj) { - EnigmailLog.DEBUG("card.jsm: EnigmailCard.getCardStatus\n"); - const GPG_ADDITIONAL_OPTIONS=["--no-verbose", "--status-fd", "2", "--fixed-list-mode", "--with-colons", "--card-status"]; - const args = EnigmailGpg.getStandardArgs(false).concat(GPG_ADDITIONAL_OPTIONS); - const statusMsgObj = {}; - const statusFlagsObj = {}; - - const outputTxt = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, errorMsgObj); - - if ((exitCodeObj.value === 0) && !outputTxt) { - exitCodeObj.value = -1; - return ""; - } - - return outputTxt; - } -}; diff -Nru enigmail-2.1.6+ds1/package/commandLine.jsm enigmail-2.2.4/package/commandLine.jsm --- enigmail-2.1.6+ds1/package/commandLine.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/commandLine.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailCommandLine"]; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const NS_ENIGCLINE_SERVICE_CID = Components.ID("{847b3ab1-7ab1-11d4-8f02-006008948af5}"); -const NS_CLINE_SERVICE_CONTRACTID = "@mozilla.org/enigmail/cline-handler;1"; - -function Handler() {} - -Handler.prototype = { - classDescription: "Enigmail Key Management CommandLine Service", - classID: NS_ENIGCLINE_SERVICE_CID, - contractID: NS_CLINE_SERVICE_CONTRACTID, - QueryInterface: EnigmailCompat.generateQI(["nsICommandLineHandler", "nsIFactory"]), - - // nsICommandLineHandler - handle: function(cmdLine) { - if (cmdLine.handleFlag("pgpkeyman", false)) { - cmdLine.preventDefault = true; // do not open main app window - - const wwatch = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher); - wwatch.openWindow(null, "chrome://enigmail/content/ui/enigmailKeyManager.xul", "_blank", "chrome,dialog=no,all", cmdLine); - } - }, - - helpInfo: " -pgpkeyman Open the OpenPGP key management.\n", - - lockFactory: function(lock) {} -}; - -var EnigmailCommandLine = { - Handler: Handler, - categoryRegistry: { - category: "command-line-handler", - entry: "m-cline-enigmail", - serviceName: NS_CLINE_SERVICE_CONTRACTID - } -}; diff -Nru enigmail-2.1.6+ds1/package/configBackup.jsm enigmail-2.2.4/package/configBackup.jsm --- enigmail-2.1.6+ds1/package/configBackup.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/configBackup.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,213 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailConfigBackup"]; - - - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailRules = ChromeUtils.import("chrome://enigmail/content/modules/rules.jsm").EnigmailRules; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; - -const TYPE_BOOL = 1; -const TYPE_CHAR = 2; -const TYPE_INT = 3; - -const IdentityPref = { - enablePgp: TYPE_BOOL, - pgpkeyId: TYPE_CHAR, - pgpKeyMode: TYPE_INT, - pgpSignPlain: TYPE_BOOL, - pgpSignEncrypted: TYPE_BOOL, - defaultSigningPolicy: TYPE_INT, - defaultEncryptionPolicy: TYPE_INT, - openPgpUrlName: TYPE_CHAR, - pgpMimeMode: TYPE_BOOL, - attachPgpKey: TYPE_BOOL, - autoEncryptDrafts: TYPE_BOOL -}; - -var EnigmailConfigBackup = { - - getAccountManager: function() { - let amService = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - return amService; - }, - - /** - * itereate over all identities and execute a callback function for each found element - * - * @param callbackFunc function - the callback for each identity - * The function takes the identity as 1st argument, i.e. - * callbackFunc(nsIMsgIdentity) - * @return - undefined - */ - forAllIdentitites: function(callbackFunc) { - - let amService = this.getAccountManager(); - - amService.LoadAccounts(); // ensure accounts are really loaded - let a = amService.allIdentities; - for (let i = 0; i < a.length; i++) { - let id = a.queryElementAt(i, Ci.nsIMsgIdentity); - try { - callbackFunc(id); - } - catch (ex) { - EnigmailLog.DEBUG("configBackup.jsm: forAllIdentitites: exception " + ex.toString() + "\n"); - } - } - }, - - /** - * backup Enigmail preferences to a file - * - * @param outputFile nsIFile - handle to file to be saved - * - * @return 0: success, other values: failure - */ - backupPrefs: function(outputFile) { - EnigmailLog.DEBUG("configBackup.jsm: backupPrefs\n"); - - // user preference - let prefObj = { - enigmailPrefs: EnigmailPrefs.getAllPrefs(), - mailIdentities: {} - }; - - function getIdentityPrefs(identity) { - - if (!identity.getBoolAttribute("enablePgp")) return; // do nothing if Enigmail disabled - - let keyObj = { - emailAddress: identity.email.toLowerCase(), - identityName: identity.identityName - }; - - for (let pref in IdentityPref) { - switch (IdentityPref[pref]) { - case TYPE_BOOL: - keyObj[pref] = identity.getBoolAttribute(pref); - break; - case TYPE_INT: - keyObj[pref] = identity.getIntAttribute(pref); - break; - case TYPE_CHAR: - keyObj[pref] = identity.getCharAttribute(pref); - break; - } - } - - prefObj.mailIdentities[identity.key] = keyObj; - } - - this.forAllIdentitites(getIdentityPrefs); - - // per-recipient rules (aka pgpRules.xml) - var rulesFile = EnigmailRules.getRulesFile(); - if (rulesFile.exists()) { - prefObj.rules = EnigmailFiles.readFile(rulesFile); - } - - let jsonStr = JSON.stringify(prefObj); - - // serialize everything to UTF-8 encoded JSON. - if (EnigmailFiles.writeFileContents(outputFile, jsonStr)) { - return 0; - } - - return -1; - }, - - /** - * Restore Enigmail preferences from a file as generated by backpPrefs() - * - * @param inputFile nsIFile - handle to file to be saved - * - * @return Object: { - * retVal: Number - 0: success, other values: failure - * unmatchedIds: Array (String): keys of identities - * } - */ - restorePrefs: function(inputFile) { - EnigmailLog.DEBUG("configBackup.jsm: restorePrefs\n"); - var prefObj; - var returnObj = { - retVal: -1, - unmatchedIds: [] - }; - - function setIdentityPref(identity) { - for (let k in prefObj.mailIdentities) { - if (prefObj.mailIdentities[k].emailAddress === identity.email.toLowerCase()) { - EnigmailLog.DEBUG("configBackup.jsm: setIdentityPref: restoring values for " + identity.email + "\n"); - prefObj.mailIdentities[k].foundMatchingEmail = true; - let keyObj = prefObj.mailIdentities[k]; - for (let pref in IdentityPref) { - switch (IdentityPref[pref]) { - case TYPE_BOOL: - identity.setBoolAttribute(pref, keyObj[pref]); - break; - case TYPE_INT: - identity.setIntAttribute(pref, keyObj[pref]); - break; - case TYPE_CHAR: - identity.setCharAttribute(pref, keyObj[pref]); - break; - } - } - return; - } - } - - EnigmailLog.DEBUG("configBackup.jsm: setIdentityPref: no matching data for " + identity.email + "\n"); - } - - // Profile must be a single UTF-8 encoded JSON object. - try { - let jsonStr = EnigmailFiles.readFile(inputFile); - prefObj = JSON.parse(jsonStr); - - var nsIPB = Ci.nsIPrefBranch; - var branch = EnigmailPrefs.getPrefBranch(); - - // Set all options recorded in the JSON file. - for (let name in prefObj.enigmailPrefs) { - EnigmailPrefs.setPref(name, prefObj.enigmailPrefs[name]); - } - - this.forAllIdentitites(setIdentityPref); - - for (let i in prefObj.mailIdentities) { - if (!("foundMatchingEmail" in prefObj.mailIdentities[i])) { - returnObj.unmatchedIds.push(prefObj.mailIdentities[i].identityName); - } - } - - let am = this.getAccountManager(); - am.saveAccountInfo(); - EnigmailPrefs.savePrefs(); - - if ("rules" in prefObj) { - EnigmailRules.loadRulesFromString(prefObj.rules); - EnigmailRules.saveRulesFile(); - } - - } - catch (ex) { - EnigmailLog.ERROR("configBackup.jsm: restorePrefs - exception " + ex.toString() + "\n"); - return returnObj; - } - - returnObj.retVal = 0; - return returnObj; - } - -}; diff -Nru enigmail-2.1.6+ds1/package/configure.jsm enigmail-2.2.4/package/configure.jsm --- enigmail-2.1.6+ds1/package/configure.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/configure.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,302 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailConfigure"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailAutoSetup = ChromeUtils.import("chrome://enigmail/content/modules/autoSetup.jsm").EnigmailAutoSetup; -const EnigmailSqliteDb = ChromeUtils.import("chrome://enigmail/content/modules/sqliteDb.jsm").EnigmailSqliteDb; - -// Interfaces -const nsIFolderLookupService = Ci.nsIFolderLookupService; -const nsIMsgAccountManager = Ci.nsIMsgAccountManager; - -/** - * Upgrade sending prefs - * (v1.6.x -> v1.7 ) - */ -function upgradePrefsSending() { - EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending()\n"); - - var cbs = EnigmailPrefs.getPref("confirmBeforeSend"); - var ats = EnigmailPrefs.getPref("alwaysTrustSend"); - var ksfr = EnigmailPrefs.getPref("keepSettingsForReply"); - EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending cbs=" + cbs + " ats=" + ats + " ksfr=" + ksfr + "\n"); - - // Upgrade confirmBeforeSend (bool) to confirmBeforeSending (int) - switch (cbs) { - case false: - EnigmailPrefs.setPref("confirmBeforeSending", 0); // never - break; - case true: - EnigmailPrefs.setPref("confirmBeforeSending", 1); // always - break; - } - - // Upgrade alwaysTrustSend (bool) to acceptedKeys (int) - switch (ats) { - case false: - EnigmailPrefs.setPref("acceptedKeys", 0); // valid - break; - case true: - EnigmailPrefs.setPref("acceptedKeys", 1); // all - break; - } - - // if all settings are default settings, use convenient encryption - if (cbs === false && ats === true && ksfr === true) { - EnigmailPrefs.setPref("encryptionModel", 0); // convenient - EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending() encryptionModel=0 (convenient)\n"); - } - else { - EnigmailPrefs.setPref("encryptionModel", 1); // manually - EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending() encryptionModel=1 (manually)\n"); - } - - // clear old prefs - EnigmailPrefs.getPrefBranch().clearUserPref("confirmBeforeSend"); - EnigmailPrefs.getPrefBranch().clearUserPref("alwaysTrustSend"); -} - -/** - * Replace short key IDs with FPR in identity settings - * (v1.9 -> v2.0) - */ -function replaceKeyIdWithFpr() { - try { - const GetKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing"); - - var accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - for (var i = 0; i < accountManager.allIdentities.length; i++) { - var id = accountManager.allIdentities.queryElementAt(i, Ci.nsIMsgIdentity); - if (id.getBoolAttribute("enablePgp")) { - let keyId = id.getCharAttribute("pgpkeyId"); - - if (keyId.search(/^(0x)?[a-fA-F0-9]{8}$/) === 0) { - - EnigmailCore.getService(); - - let k = GetKeyRing().getKeyById(keyId); - if (k) { - id.setCharAttribute("pgpkeyId", "0x" + k.fpr); - } - else { - id.setCharAttribute("pgpkeyId", ""); - } - } - } - } - } - catch (ex) { - EnigmailDialog.alert("config upgrade: error" + ex.toString()); - } -} - - -/** - * Change the default to PGP/MIME for all accounts, except nntp - * (v1.8.x -> v1.9) - */ -function defaultPgpMime() { - 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) { - - for (let i = 0; i < ac.identities.length; i++) { - let id = ac.identities.queryElementAt(i, Ci.nsIMsgIdentity); - if (id.getBoolAttribute("enablePgp") && !id.getBoolAttribute("pgpMimeMode")) { - changedSomething = true; - } - id.setBoolAttribute("pgpMimeMode", true); - } - } - } - - if (EnigmailPrefs.getPref("advancedUser") && changedSomething) { - EnigmailDialog.alert(null, - EnigmailLocale.getString("preferences.defaultToPgpMime")); - } -} - -/** - * 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) {} -} - -function setDefaultKeyServer() { - EnigmailLog.DEBUG("configure.jsm: setDefaultKeyServer()\n"); - - let ks = EnigmailPrefs.getPref("keyserver"); - - if (ks.search(/^ldaps?:\/\//) < 0) { - ks = "vks://keys.openpgp.org, " + ks; - } - - ks = ks.replace(/hkps:\/\/keys.openpgp.org/g, "vks://keys.openpgp.org"); - EnigmailPrefs.setPref("keyserver", ks); -} - - - -function displayUpgradeInfo() { - EnigmailLog.DEBUG("configure.jsm: displayUpgradeInfo()\n"); - try { - EnigmailWindows.openMailTab("chrome://enigmail/content/ui/upgradeInfo.html"); - } - catch (ex) {} -} - - -var EnigmailConfigure = { - /** - * configureEnigmail: main function for configuring Enigmail during the first run - * this method is called from core.jsm if Enigmail has not been set up before - * (determined via checking the configuredVersion in the preferences) - * - * @param {nsIWindow} win: The parent window. Null if no parent window available - * @param {Boolean} startingPreferences: if true, called while switching to new preferences - * (to avoid re-check for preferences) - * - * @return {Promise} - */ - configureEnigmail: async function(win, startingPreferences) { - EnigmailLog.DEBUG("configure.jsm: configureEnigmail()\n"); - - if (!EnigmailStdlib.hasConfiguredAccounts()) { - EnigmailLog.DEBUG("configure.jsm: configureEnigmail: no account configured. Waiting 60 seconds.\n"); - - // try again in 60 seconds - EnigmailTimer.setTimeout( - function _f() { - EnigmailConfigure.configureEnigmail(win, startingPreferences); - }, - 60000); - return; - } - - let oldVer = EnigmailPrefs.getPref("configuredVersion"); - - let vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator); - - if (oldVer === "") { - try { - let setupResult = await EnigmailAutoSetup.determinePreviousInstallType(); - - switch (EnigmailAutoSetup.value) { - case EnigmailConstants.AUTOSETUP_NOT_INITIALIZED: - case EnigmailConstants.AUTOSETUP_NO_ACCOUNT: - break; - default: - EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion()); - EnigmailWindows.openSetupWizard(win); - } - } - catch(x) { - // ignore exceptions and proceed without setup wizard - } - } - else { - if (vc.compare(oldVer, "1.7a1pre") < 0) { - // 1: rules only - // => assignKeysByRules true; rest false - // 2: rules & email addresses (normal) - // => assignKeysByRules/assignKeysByEmailAddr/assignKeysManuallyIfMissing true - // 3: email address only (no rules) - // => assignKeysByEmailAddr/assignKeysManuallyIfMissing true - // 4: manually (always prompt, no rules) - // => assignKeysManuallyAlways true - // 5: no rules, no key selection - // => assignKeysByRules/assignKeysByEmailAddr true - - upgradePrefsSending(); - } - if (vc.compare(oldVer, "1.7") < 0) { - // open a modal dialog. Since this might happen during the opening of another - // window, we have to do this asynchronously - EnigmailTimer.setTimeout( - function _cb() { - var doIt = EnigmailDialog.confirmDlg(win, - EnigmailLocale.getString("enigmailCommon.versionSignificantlyChanged"), - EnigmailLocale.getString("enigmailCommon.checkPreferences"), - EnigmailLocale.getString("dlg.button.close")); - if (!startingPreferences && doIt) { - // same as: - // - EnigmailWindows.openPrefWindow(window, true, 'sendingTab'); - // but - // - without starting the service again because we do that right now - // - and modal (waiting for its end) - win.openDialog("chrome://enigmail/content/ui/pref-enigmail.xul", - "_blank", "chrome,resizable=yes,modal", { - 'showBasic': true, - 'clientType': 'thunderbird', - 'selectTab': 'sendingTab' - }); - } - }, 100); - } - - if (vc.compare(oldVer, "1.9a2pre") < 0) { - defaultPgpMime(); - } - if (vc.compare(oldVer, "2.0a1pre") < 0) { - this.upgradeTo20(); - } - if (vc.compare(oldVer, "2.0.1a2pre") < 0) { - this.upgradeTo201(); - } - if (vc.compare(oldVer, "2.1b2") < 0) { - this.upgradeTo21(); - } - - } - - EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion()); - EnigmailPrefs.savePrefs(); - }, - - upgradeTo20: function() { - EnigmailPrefs.setPref("juniorMode", 0); // disable pEp if upgrading from older version - replaceKeyIdWithFpr(); - displayUpgradeInfo(); - }, - - upgradeTo201: function() { - setAutocryptForOldAccounts(); - }, - - upgradeTo21: function() { - setDefaultKeyServer(); - } -}; diff -Nru enigmail-2.1.6+ds1/package/constants.jsm enigmail-2.2.4/package/constants.jsm --- enigmail-2.1.6+ds1/package/constants.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/constants.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -99,7 +99,7 @@ DECRYPTION_INCOMPLETE: 0x00008000, DECRYPTION_FAILED: 0x00010000, DECRYPTION_OKAY: 0x00020000, - MISSING_MDC: 0x00040000, + MISSING_MDC: 0x00040000, // indicates missing or bad MDC TRUSTED_IDENTITY: 0x00080000, PGP_MIME_SIGNED: 0x00100000, PGP_MIME_ENCRYPTED: 0x00200000, @@ -136,7 +136,7 @@ CARD_PIN_UNBLOCK: 2, CARD_ADMIN_PIN_CHANGE: 3, - /* Keyserver error codes (in keyserver.jsm) */ + /* Keyserver error codes */ KEYSERVER_ERR_ABORTED: 1, KEYSERVER_ERR_SERVER_ERROR: 2, KEYSERVER_ERR_SECURITY_ERROR: 3, @@ -165,5 +165,11 @@ ADDON_DOWNGRADE: 8, // The add-on is being downgraded. /* Protected subject replacement as specified in Protected Headers Spec, draft 02*/ - PROTECTED_SUBJECT: "..." + PROTECTED_SUBJECT: "...", + + /* Reason why OpenPGP key needs to be decrypted */ + KEY_DECRYPT_REASON_ENCRYPTED_MSG: 1, + KEY_DECRYPT_REASON_SIGN_MSG: 2, + KEY_DECRYPT_REASON_SIGNCRYPT_MSG: 3, + KEY_DECRYPT_REASON_MANIPULATE_KEY: 4 }; diff -Nru enigmail-2.1.6+ds1/package/core.jsm enigmail-2.2.4/package/core.jsm --- enigmail-2.1.6+ds1/package/core.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/core.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -15,40 +15,25 @@ const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; // load all modules lazily to avoid possible cross-reference errors -const getEnigmailConsole = EnigmailLazy.loader("enigmail/pipeConsole.jsm", "EnigmailConsole"); -const getEnigmailGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); -const getEnigmailMimeEncrypt = EnigmailLazy.loader("enigmail/mimeEncrypt.jsm", "EnigmailMimeEncrypt"); -const getEnigmailProtocolHandler = EnigmailLazy.loader("enigmail/protocolHandler.jsm", "EnigmailProtocolHandler"); -const getEnigmailFiltersWrapper = EnigmailLazy.loader("enigmail/filtersWrapper.jsm", "EnigmailFiltersWrapper"); +const getEnigmailCryptoAPI = EnigmailLazy.loader("enigmail/cryptoAPI.jsm", "EnigmailCryptoAPI"); const getEnigmailLog = EnigmailLazy.loader("enigmail/log.jsm", "EnigmailLog"); -const getEnigmailOS = EnigmailLazy.loader("enigmail/os.jsm", "EnigmailOS"); const getEnigmailLocale = EnigmailLazy.loader("enigmail/locale.jsm", "EnigmailLocale"); -const getEnigmailCommandLine = EnigmailLazy.loader("enigmail/commandLine.jsm", "EnigmailCommandLine"); const getEnigmailPrefs = EnigmailLazy.loader("enigmail/prefs.jsm", "EnigmailPrefs"); -const getEnigmailVerify = EnigmailLazy.loader("enigmail/mimeVerify.jsm", "EnigmailVerify"); const getEnigmailWindows = EnigmailLazy.loader("enigmail/windows.jsm", "EnigmailWindows"); -const getEnigmailDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); -const getEnigmailConfigure = EnigmailLazy.loader("enigmail/configure.jsm", "EnigmailConfigure"); const getEnigmailApp = EnigmailLazy.loader("enigmail/app.jsm", "EnigmailApp"); -const getMsgRead = EnigmailLazy.loader("enigmail/msgRead.jsm", "EnigmailMsgRead"); -const getEnigmailKeyRefreshService = EnigmailLazy.loader("enigmail/keyRefreshService.jsm", "EnigmailKeyRefreshService"); -const getEnigmailKeyServer = EnigmailLazy.loader("enigmail/keyserver.jsm", "EnigmailKeyServer"); -const getEnigmailWksMimeHandler = EnigmailLazy.loader("enigmail/wksMimeHandler.jsm", "EnigmailWksMimeHandler"); -const getEnigmailPEPAdapter = EnigmailLazy.loader("enigmail/pEpAdapter.jsm", "EnigmailPEPAdapter"); const getEnigmailOverlays = EnigmailLazy.loader("enigmail/enigmailOverlays.jsm", "EnigmailOverlays"); -const getEnigmailSqlite = EnigmailLazy.loader("enigmail/sqliteDb.jsm", "EnigmailSqliteDb"); -const getEnigmailGnuPGUpdate = EnigmailLazy.loader("enigmail/gnupgUpdate.jsm", "EnigmailGnuPGUpdate"); const getEnigmailTimer = EnigmailLazy.loader("enigmail/timer.jsm", "EnigmailTimer"); const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; +var { + MailConstants +} = ChromeUtils.import("resource:///modules/MailConstants.jsm"); var EXPORTED_SYMBOLS = ["EnigmailCore"]; // Interfaces const nsIEnvironment = Ci.nsIEnvironment; -const APP_STARTUP = 1; var gPreferredGpgPath = null; var gOverwriteEnvVar = []; @@ -80,83 +65,41 @@ logger.DEBUG("core.jsm: startup()\n"); - getEnigmailSqlite().checkDatabaseStructure(); getEnigmailPrefs().startup(reason); this.factories = []; function initService() { if (observerFired > 0) return; + if (!MailConstants.MOZ_OPENPGP) return; ++observerFired; const configuredVersion = getEnigmailPrefs().getPref("configuredVersion"); - if (configuredVersion && configuredVersion.length > 0) { - self.createInstance(); - if (!gEnigmailService.initialized) { - // try to initialize Enigmail - gEnigmailService.initialize(null, getEnigmailApp().getVersion()); - } + self.createInstance(); + if (!gEnigmailService.initialized) { + // try to initialize Enigmail + gEnigmailService.initialize(null, getEnigmailApp().getVersion()); } } - function continueStartup(type) { - logger.DEBUG(`core.jsm: startup.continueStartup(${type})\n`); - - try { - let mimeEncrypt = getEnigmailMimeEncrypt(); - mimeEncrypt.startup(reason); - getEnigmailOverlays().startup(); - self.factories.push(new Factory(getEnigmailProtocolHandler())); - self.factories.push(new Factory(mimeEncrypt.Handler)); - - if (isPostbox() || reason !== APP_STARTUP) { - // Postbox or while not starting up - initService(); - } - - } - catch (ex) { - gEnigmailService = null; - logger.DEBUG("core.jsm: startup.continueStartup: error " + ex.message + "\n" + ex.stack + "\n"); - } - } + // if TB starts up, observe "mail-tabs-session-restored" + Services.obs.addObserver(initService, "mail-tabs-session-restored", false); - if ((!isPostbox()) && reason === APP_STARTUP) { - // if TB starts up, observe "mail-tabs-session-restored" - Services.obs.addObserver(initService, "mail-tabs-session-restored", false); - } + // in any case (for example if Enigmail is updated or re-enabled), wait 10 seconds then initialize + getEnigmailTimer().setTimeout(initService, 10000); - getEnigmailVerify().registerContentTypeHandler(); - getEnigmailWksMimeHandler().registerContentTypeHandler(); - getEnigmailFiltersWrapper().onStartup(); - getMsgRead().onStartup(); - getEnigmailPEPAdapter().initialize().then(r => { - continueStartup(0); - }).catch(r => { - continueStartup(1); - }); + getEnigmailOverlays().startup(); }, shutdown: function(reason) { getEnigmailLog().DEBUG("core.jsm: shutdown():\n"); - let cLineReg = getEnigmailCommandLine().categoryRegistry; - let catMan = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager); - catMan.deleteCategoryEntry(cLineReg.category, cLineReg.entry, false); - - if (this.factories) { - for (let fct of this.factories) { - fct.unregister(); - } - } + let EnigmailCryptoAPI = getEnigmailCryptoAPI(); + const cApi = EnigmailCryptoAPI(); - getMsgRead().onShutdown(); - getEnigmailFiltersWrapper().onShutdown(); - getEnigmailPEPAdapter().onShutdown(); - getEnigmailVerify().unregisterContentTypeHandler(); + cApi.shutdown(); - getEnigmailGpgAgent().finalize(); getEnigmailLocale().shutdown(); getEnigmailLog().onShutdown(); @@ -274,12 +217,6 @@ } } -function initializeAgentInfo() { - if (!getEnigmailOS().isDosLike && !getEnigmailGpgAgent().isDummy()) { - EnigmailCore.addToEnvList("GPG_AGENT_INFO=" + getEnigmailGpgAgent().gpgAgentInfo.envStr); - } -} - function failureOn(ex, status) { status.initializationError = getEnigmailLocale().getString("enigmailNotAvailable"); getEnigmailLog().ERROR("core.jsm: Enigmail.initialize: Error - " + status.initializationError + "\n"); @@ -316,17 +253,6 @@ gEnvList = []; - // if (!getEnigmailPrefs().getPref("gpgLocaleEn")) { - // passEnv = passEnv.concat([ - // "LANG", "LANGUAGE", "LC_ALL", "LC_COLLATE", "LC_CTYPE", - // "LC_MESSAGES", "LC_MONETARY", "LC_NUMERIC", "LC_TIME" - // ]); - // } - // else if (getEnigmailOS().getOS() === "WINNT") { - // // force output on Windows to EN-US - // EnigmailCore.addToEnvList("LC_ALL=en_US"); - // EnigmailCore.addToEnvList("LANG=en_US"); - // } EnigmailCore.addToEnvList("LC_ALL=C"); EnigmailCore.addToEnvList("LANG=C"); @@ -379,37 +305,16 @@ initializeSubprocessLogging(this.environment); initializeEnvironment(this.environment); - try { - getEnigmailConsole().write("Initializing Enigmail service ...\n"); - } - catch (ex) { - failureOn(ex, this); - } - - getEnigmailGpgAgent().setAgentPath(domWindow, this, gPreferredGpgPath); - getEnigmailGpgAgent().detectGpgAgent(domWindow, this); - - initializeAgentInfo(); + let EnigmailCryptoAPI = getEnigmailCryptoAPI(); + const cApi = EnigmailCryptoAPI(); - getEnigmailKeyRefreshService().start(getEnigmailKeyServer()); + cApi.initialize(domWindow, this, gPreferredGpgPath); this.initialized = true; - getEnigmailGnuPGUpdate().runUpdateCheck(); getEnigmailLog().DEBUG("core.jsm: Enigmail.initialize: END\n"); }, - reinitialize: function() { - getEnigmailLog().DEBUG("core.jsm: Enigmail.reinitialize:\n"); - this.initialized = false; - this.initializationAttempted = true; - - getEnigmailConsole().write("Reinitializing Enigmail service ...\n"); - initializeEnvironment(this.environment); - getEnigmailGpgAgent().setAgentPath(null, this, gPreferredGpgPath); - this.initialized = true; - }, - perferGpgPath: function(gpgPath) { getEnigmailLog().DEBUG("core.jsm: Enigmail.perferGpgPath = " + gpgPath + "\n"); gPreferredGpgPath = gpgPath; @@ -435,8 +340,6 @@ getEnigmailLog().DEBUG("core.jsm: svc = " + this + "\n"); if (!this.initialized) { - const firstInitialization = !this.initializationAttempted; - try { // Initialize enigmail EnigmailCore.init(getEnigmailApp().getVersion()); @@ -449,49 +352,12 @@ catch (ex) {} } catch (ex) { - if (firstInitialization) { - // Display initialization error alert - const errMsg = (this.initializationError ? this.initializationError : getEnigmailLocale().getString("accessError")) + - "\n\n" + getEnigmailLocale().getString("initErr.howToFixIt"); - - const checkedObj = { - value: false - }; - if (getEnigmailPrefs().getPref("initAlert")) { - const r = getEnigmailDialog().longAlert(win, "Enigmail: " + errMsg, - getEnigmailLocale().getString("dlgNoPrompt"), - null, getEnigmailLocale().getString("initErr.setupWizard.button"), - null, checkedObj); - if (r >= 0 && checkedObj.value) { - getEnigmailPrefs().setPref("initAlert", false); - } - if (r == 1) { - // start setup wizard - getEnigmailWindows().openSetupWizard(win, false); - return Enigmail.getService(win); - } - } - if (getEnigmailPrefs().getPref("initAlert")) { - this.initializationAttempted = false; - gEnigmailService = null; - } - } - return null; } const configuredVersion = getEnigmailPrefs().getPref("configuredVersion"); getEnigmailLog().DEBUG("core.jsm: getService: last used version: " + configuredVersion + "\n"); - - if (firstInitialization && this.initialized && - getEnigmailGpgAgent().agentType === "pgp") { - getEnigmailDialog().alert(win, getEnigmailLocale().getString("pgpNotSupported")); - } - - if (this.initialized && (getEnigmailApp().getVersion() != configuredVersion)) { - getEnigmailConfigure().configureEnigmail(win, startingPreferences); - } } return this.initialized ? this : null; @@ -524,10 +390,3 @@ Cm.unregisterFactory(this.component.prototype.classID, this); } } - -function isPostbox() { - const POSTBOX_ID = "postbox@postbox-inc.com"; - const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1"; - - return Cc[XPCOM_APPINFO].getService(Ci.nsIXULAppInfo).ID == POSTBOX_ID; -} diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-agent.jsm enigmail-2.2.4/package/cryptoAPI/gnupg-agent.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-agent.jsm 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg-agent.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,780 @@ +/* + * 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 https://mozilla.org/MPL/2.0/. + */ + + +"use strict"; + +var EXPORTED_SYMBOLS = ["EnigmailGpgAgent"]; + +const ctypes = ChromeUtils.import("resource://gre/modules/ctypes.jsm").ctypes; +const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; +const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; +const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; +const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; +const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; +const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; +const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; +const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; +const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; +const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; +const EnigmailPassword = ChromeUtils.import("chrome://enigmail/content/modules/passwords.jsm").EnigmailPassword; +const EnigmailSystem = ChromeUtils.import("chrome://enigmail/content/modules/system.jsm").EnigmailSystem; +const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; +const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; +const getEnigmailGpg = EnigmailLazy.loader("enigmail/cryptoAPI/gnupg-core.jsm", "EnigmailGpg"); +const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); + +const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; +const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1"; +const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID = "@mozilla.org/network/file-output-stream;1"; + +const DEFAULT_FILE_PERMS = 0o600; + +// Making this a var makes it possible to test windows things on linux +var nsIWindowsRegKey = Ci.nsIWindowsRegKey; + +var gIsGpgAgent = -1; + +const DUMMY_AGENT_INFO = "none"; + +function cloneOrNull(v) { + if (v && typeof v.clone === "function") { + return v.clone(); + } + else { + return v; + } +} + +function extractAgentInfo(fullStr) { + if (fullStr) { + return fullStr. + replace(/[\r\n]/g, ""). + replace(/^.*=/, ""). + replace(/;.*$/, ""); + } + else { + return ""; + } +} + +function getHomedirFromParam(param) { + let i = param.search(/--homedir/); + if (i >= 0) { + param = param.substr(i + 9); + + let m = param.match(/^(\s*)([^\\]".+[^\\]")/); + if (m && m.length > 2) { + param = m[2].substr(1); + let j = param.search(/[^\\]"/); + return param.substr(1, j); + } + + m = param.match(/^(\s*)([^\\]'.+[^\\]')/); + if (m && m.length > 2) { + param = m[2].substr(1); + let j = param.search(/[^\\]'/); + return param.substr(1, j); + } + + m = param.match(/^(\s*)(\S+)/); + if (m && m.length > 2) { + return m[2]; + } + } + + return null; +} + +var EnigmailGpgAgent = { + agentType: "", + agentPath: null, + connGpgAgentPath: null, + gpgconfPath: null, + gpgAgentInfo: { + preStarted: false, + envStr: "" + }, + gpgAgentProcess: null, + gpgAgentIsOptional: true, + + isDummy: function() { + return EnigmailGpgAgent.gpgAgentInfo.envStr === DUMMY_AGENT_INFO; + }, + + setDummyAgentInfo: function() { + if (!EnigmailOS.isDosLike && !this.isDummy()) { + EnigmailCore.addToEnvList("GPG_AGENT_INFO=" + EnigmailGpgAgent.gpgAgentInfo.envStr); + } + }, + + resetGpgAgent: function() { + EnigmailLog.DEBUG("gnupg-agent.jsm: resetGpgAgent\n"); + gIsGpgAgent = -1; + }, + + isCmdGpgAgent: function(pid) { + EnigmailLog.DEBUG("gnupg-agent.jsm: isCmdGpgAgent:\n"); + + const environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); + let ret = false; + + let path = environment.get("PATH"); + if (!path || path.length === 0) { + path = "/bin:/usr/bin:/usr/local/bin"; + } + + const psCmd = EnigmailFiles.resolvePath("ps", path, false); + let outStr = ""; + + const proc = { + command: psCmd, + arguments: ["-o", "comm", "-p", pid], + environment: EnigmailCore.getEnvList(), + charset: null, + stdout: function(data) { + outStr += data; + } + }; + + try { + subprocess.call(proc).wait(); + + EnigmailLog.DEBUG("gnupg-agent.jsm: isCmdGpgAgent: got data: '" + outStr + "'\n"); + var data = outStr.replace(/[\r\n]/g, " "); + if (data.search(/gpg-agent/) >= 0) { + ret = true; + } + } + catch (ex) {} + + return ret; + + }, + + isAgentTypeGpgAgent: function() { + // determine if the used agent is a gpg-agent + + EnigmailLog.DEBUG("gnupg-agent.jsm: isAgentTypeGpgAgent:\n"); + + // to my knowledge there is no other agent than gpg-agent on Windows + if (EnigmailOS.getOS() == "WINNT") return true; + + if (gIsGpgAgent >= 0) { + return gIsGpgAgent == 1; + } + + let pid = -1; + let exitCode = -1; + let outStr = ""; + if (!EnigmailCore.getService()) return false; + + const proc = { + command: EnigmailGpgAgent.connGpgAgentPath, + arguments: [], + charset: null, + environment: EnigmailCore.getEnvList(), + stdin: function(pipe) { + pipe.write("/subst\n"); + pipe.write("/serverpid\n"); + pipe.write("/echo pid: ${get serverpid}\n"); + pipe.write("/bye\n"); + pipe.close(); + }, + stdout: function(data) { + outStr += data; + } + }; + + try { + exitCode = subprocess.call(proc).wait(); + if (exitCode) pid = -2; + + const data = outStr.replace(/[\r\n]/g, ""); + if (data.search(/^pid: [0-9]+$/) === 0) { + pid = data.replace(/^pid: /, ""); + } + } + catch (ex) {} + + EnigmailLog.DEBUG("gnupg-agent.jsm: isAgentTypeGpgAgent: pid=" + pid + "\n"); + + EnigmailGpgAgent.isCmdGpgAgent(pid); + let isAgent = false; + + try { + isAgent = EnigmailGpgAgent.isCmdGpgAgent(pid); + gIsGpgAgent = isAgent ? 1 : 0; + } + catch (ex) {} + + return isAgent; + }, + + getAgentMaxIdle: function() { + EnigmailLog.DEBUG("gnupg-agent.jsm: getAgentMaxIdle:\n"); + let maxIdle = -1; + + if (!EnigmailCore.getService()) return maxIdle; + + const DEFAULT = 7; + const CFGVALUE = 9; + let outStr = ""; + + const proc = { + command: EnigmailGpgAgent.gpgconfPath, + arguments: ["--list-options", "gpg-agent"], + charset: null, + environment: EnigmailCore.getEnvList(), + stdout: function(data) { + outStr += data; + } + }; + + subprocess.call(proc).wait(); + + const lines = outStr.split(/[\r\n]/); + + for (let i = 0; i < lines.length; i++) { + EnigmailLog.DEBUG("gnupg-agent.jsm: getAgentMaxIdle: line: " + lines[i] + "\n"); + + if (lines[i].search(/^default-cache-ttl:/) === 0) { + const m = lines[i].split(/:/); + if (m[CFGVALUE].length === 0) { + maxIdle = Math.round(m[DEFAULT] / 60); + } + else { + maxIdle = Math.round(m[CFGVALUE] / 60); + } + + break; + } + } + return maxIdle; + }, + + setAgentMaxIdle: function(idleMinutes) { + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentMaxIdle:\n"); + if (!EnigmailCore.getService()) return; + + const RUNTIME = 8; + + const proc = { + command: EnigmailGpgAgent.gpgconfPath, + arguments: ["--runtime", "--change-options", "gpg-agent"], + environment: EnigmailCore.getEnvList(), + charset: null, + mergeStderr: true, + stdin: function(pipe) { + pipe.write("default-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 60) + "\n"); + pipe.write("max-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 600) + "\n"); + pipe.close(); + }, + stdout: function(data) { + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentMaxIdle.stdout: " + data + "\n"); + } + }; + + try { + let exitCode = subprocess.call(proc); + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentMaxIdle.stdout: gpgconf exitCode=" + exitCode + "\n"); + } + catch (ex) { + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentMaxIdle: exception: " + ex.toString() + "\n"); + } + }, + + getMaxIdlePref: function(win) { + let maxIdle = EnigmailPrefs.getPref("maxIdleMinutes"); + + try { + if (EnigmailCore.getService(win)) { + if (EnigmailGpgAgent.gpgconfPath && + EnigmailGpgAgent.connGpgAgentPath) { + + if (EnigmailGpgAgent.isAgentTypeGpgAgent()) { + const m = EnigmailGpgAgent.getAgentMaxIdle(); + if (m > -1) maxIdle = m; + } + } + } + } + catch (ex) {} + + return maxIdle; + }, + + setMaxIdlePref: function(minutes) { + EnigmailPrefs.setPref("maxIdleMinutes", minutes); + + if (EnigmailGpgAgent.isAgentTypeGpgAgent()) { + try { + EnigmailGpgAgent.setAgentMaxIdle(minutes); + } + catch (ex) {} + } + }, + + /** + * Determine the "gpg home dir", i.e. the directory where gpg.conf and the keyring are + * stored using the "additional parameter" and gpgconf. + * + * @return String - directory name, or NULL (in case the command did not succeed) + */ + getGpgHomeDir: function() { + + let param = EnigmailPrefs.getPref("agentAdditionalParam"); + + if (param) { + let hd = getHomedirFromParam(param); + + if (hd) return hd; + } + + if (EnigmailGpgAgent.gpgconfPath === null) return null; + + const command = EnigmailGpgAgent.gpgconfPath; + let args = ["--list-dirs"]; + + let exitCode = -1; + let outStr = ""; + EnigmailLog.DEBUG("gnupg-agent.jsm: getGpgHomeDir: calling subprocess with '" + command.path + "'\n"); + + EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); + + const proc = { + command: command, + arguments: args, + environment: EnigmailCore.getEnvList(), + charset: null, + stdout: function(data) { + outStr += data; + }, + mergeStderr: false + }; + + try { + exitCode = subprocess.call(proc).wait(); + } + catch (ex) { + EnigmailLog.ERROR("gnupg-agent.jsm: getGpgHomeDir: subprocess.call failed with '" + ex.toString() + "'\n"); + EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n"); + throw ex; + } + + let m = outStr.match(/^(homedir:)(.*)$/mi); + if (m && m.length > 2) { + return EnigmailData.convertGpgToUnicode(unescape(m[2])); + } + + return null; + }, + + /** + * @param domWindow: Object - parent window, may be NULL + * @param esvc: Object - Enigmail service object + * @param preferredPath: String - try to use specific path to locate gpg + */ + setAgentPath: function(domWindow, esvc, preferredPath) { + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentPath()\n"); + let agentPath = ""; + try { + if (preferredPath) { + agentPath = preferredPath; + } + else { + agentPath = EnigmailPrefs.getPrefBranch().getCharPref("agentPath"); + } + } + catch (ex) {} + + var agentType = "gpg"; + var agentName = ""; + + EnigmailGpgAgent.resetGpgAgent(); + + if (agentPath) { + // Locate GnuPG executable + + // Append default .exe extension for DOS-Like systems, if needed + if (EnigmailOS.isDosLike && (agentPath.search(/\.\w+$/) < 0)) { + agentPath += ".exe"; + } + + try { + let pathDir = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); + + if (!EnigmailFiles.isAbsolutePath(agentPath, EnigmailOS.isDosLike)) { + // path relative to Mozilla installation dir + const ds = Cc[DIR_SERV_CONTRACTID].getService(); + const dsprops = ds.QueryInterface(Ci.nsIProperties); + pathDir = dsprops.get("CurProcD", Ci.nsIFile); + + const dirs = agentPath.split(new RegExp(EnigmailOS.isDosLike ? "\\\\" : "/")); + for (let i = 0; i < dirs.length; i++) { + if (dirs[i] != ".") { + pathDir.append(dirs[i]); + } + } + if (pathDir.exists()) { + pathDir.normalize(); + } + } + else { + // absolute path + EnigmailFiles.initPath(pathDir, agentPath); + } + if (!(pathDir.isFile() /* && pathDir.isExecutable()*/ )) { + throw Components.results.NS_ERROR_FAILURE; + } + agentPath = pathDir.QueryInterface(Ci.nsIFile); + + } + catch (ex) { + esvc.initializationError = EnigmailLocale.getString("gpgNotFound", [agentPath]); + EnigmailLog.ERROR("gnupg-agent.jsm: initialize: Error - " + esvc.initializationError + "\n"); + throw Components.results.NS_ERROR_FAILURE; + } + } + else { + agentPath = this.resolveGpgPath(esvc.environment); + if (!agentPath) { + esvc.initializationError = EnigmailLocale.getString("gpgNotInPath"); + EnigmailLog.ERROR("gnupg-agent.jsm: Error - " + esvc.initializationError + "\n"); + throw Components.results.NS_ERROR_FAILURE; + } + } + + agentPath.normalize(); // replace a/../b with b + EnigmailLog.CONSOLE("EnigmailAgentPath=" + EnigmailFiles.getFilePathDesc(agentPath) + "\n\n"); + + EnigmailGpgAgent.agentType = agentType; + EnigmailGpgAgent.agentPath = agentPath; + getEnigmailGpg().setAgentPath(agentPath); + EnigmailExecution.agentType = agentType; + + const command = agentPath; + let args = []; + if (agentType == "gpg") { + args = ["--batch", "--no-tty", "--charset", "utf-8", "--display-charset", "utf-8", "--version", "--version"]; + } + + let exitCode = -1; + let outStr = ""; + let errStr = ""; + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentPath: calling subprocess with '" + command.path + "'\n"); + + EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); + + const proc = { + command: command, + arguments: args, + environment: EnigmailCore.getEnvList(), + charset: null, + stdout: function(data) { + outStr += data; + }, + stderr: function(data) { + errStr += data; + }, + mergeStderr: false + }; + + try { + exitCode = subprocess.call(proc).wait(); + } + catch (ex) { + EnigmailLog.ERROR("gnupg-agent.jsm: setAgentPath: subprocess.call failed with '" + ex.toString() + "'\n"); + EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n"); + throw ex; + } + EnigmailLog.DEBUG(" enigmail> DONE\n"); + + outStr = EnigmailSystem.convertNativeToUnicode(outStr); + + if (exitCode !== 0) { + EnigmailLog.ERROR("gnupg-agent.jsm: setAgentPath: gpg failed with exitCode " + exitCode + " msg='" + outStr + " " + errStr + "'\n"); + throw Components.results.NS_ERROR_FAILURE; + } + + EnigmailLog.CONSOLE(outStr + "\n"); + + // detection for Gpg4Win wrapper + if (outStr.search(/^gpgwrap.*;/) === 0) { + const outLines = outStr.split(/[\n\r]+/); + const firstLine = outLines[0]; + outLines.splice(0, 1); + outStr = outLines.join("\n"); + agentPath = firstLine.replace(/^.*;[ \t]*/, ""); + + EnigmailLog.CONSOLE("gpg4win-gpgwrapper detected; EnigmailAgentPath=" + agentPath + "\n\n"); + } + + const versionParts = outStr.replace(/[\r\n].*/g, "").replace(/ *\(gpg4win.*\)/i, "").split(/ /); + const gpgVersion = versionParts[versionParts.length - 1]; + + EnigmailLog.DEBUG("gnupg-agent.jsm: detected GnuPG version '" + gpgVersion + "'\n"); + getEnigmailGpg().agentVersion = gpgVersion; + + if (!getEnigmailGpg().getGpgFeature("version-supported")) { + if (!domWindow) { + domWindow = EnigmailWindows.getBestParentWin(); + } + getDialog().alert(domWindow, EnigmailLocale.getString("oldGpgVersion20", [gpgVersion, getEnigmailGpg().getMinimumGpgVersion()])); + throw Components.results.NS_ERROR_FAILURE; + } + + EnigmailGpgAgent.gpgconfPath = EnigmailGpgAgent.resolveToolPath("gpgconf"); + EnigmailGpgAgent.connGpgAgentPath = EnigmailGpgAgent.resolveToolPath("gpg-connect-agent"); + + EnigmailGpgAgent.checkGpgHomeDir(domWindow, esvc); + + EnigmailLog.DEBUG("gnupg-agent.jsm: setAgentPath: gpgconf found: " + (EnigmailGpgAgent.gpgconfPath ? "yes" : "no") + "\n"); + }, + + + /** + * Determine the location of the GnuPG executable + * + * @param env: Object: nsIEnvironment to use + * + * @return Object: nsIFile pointing to gpg, or NULL + */ + resolveGpgPath: function(env) { + EnigmailLog.DEBUG("gnupg-agent.jsm: resolveGpgPath()\n"); + + let agentName = ""; + if (EnigmailOS.isDosLike) { + agentName = "gpg2.exe;gpg.exe"; + } + else { + agentName = "gpg2;gpg"; + } + + // Resolve relative path using PATH environment variable + const envPath = env.get("PATH"); + let agentPath = EnigmailFiles.resolvePath(agentName, envPath, EnigmailOS.isDosLike); + + if (!agentPath && EnigmailOS.isDosLike) { + // DOS-like systems: search for GPG in c:\gnupg, c:\gnupg\bin, d:\gnupg, d:\gnupg\bin + let gpgPath = "c:\\gnupg;c:\\gnupg\\bin;d:\\gnupg;d:\\gnupg\\bin"; + agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); + } + + if ((!agentPath) && EnigmailOS.isWin32) { + // Look up in Windows Registry + const installDir = ["Software\\GNU\\GNUPG", "Software\\GNUPG"]; + + try { + for (let i = 0; i < installDir.length && !agentPath; i++) { + let gpgPath = EnigmailOS.getWinRegistryString(installDir[i], "Install Directory", nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE); + + agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike()); + if (!agentPath) { + gpgPath += "\\bin"; + agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike()); + } + } + } + catch (ex) {} + + if (!agentPath) { + // try to determine the default PATH from the registry after the installation + // if we could not get any information from the registry + try { + let winPath = EnigmailOS.getWinRegistryString("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", "Path", nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE); + agentPath = EnigmailFiles.resolvePath(agentName, winPath, EnigmailOS.isDosLike); + } + catch (ex) {} + } + + if (!agentPath) { + // default for gpg4win 3.0 + let gpgPath = "C:\\Program Files\\GnuPG\\bin;C:\\Program Files (x86)\\GnuPG\\bin"; + agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); + } + } + + if (!agentPath && !EnigmailOS.isDosLike) { + // Unix-like systems: check /usr/bin and /usr/local/bin + let gpgPath = "/usr/bin:/usr/local/bin"; + agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); + } + + if (!agentPath) { + return null; + } + + return agentPath.QueryInterface(Ci.nsIFile); + }, + + // resolve the path for GnuPG helper tools + resolveToolPath: function(fileName) { + let filePath = cloneOrNull(EnigmailGpgAgent.agentPath); + + if (filePath) { + // try to get the install directory of gpg/gpg2 executable + filePath.normalize(); + filePath = filePath.parent; + } + + if (filePath) { + filePath.append(EnigmailFiles.potentialWindowsExecutable(fileName)); + if (filePath.exists()) { + filePath.normalize(); + return filePath; + } + } + + return EnigmailFiles.resolvePathWithEnv(fileName); + }, + + detectGpgAgent: function(domWindow, esvc) { + EnigmailLog.DEBUG("gnupg-agent.jsm: detectGpgAgent\n"); + + var gpgAgentInfo = esvc.environment.get("GPG_AGENT_INFO"); + if (gpgAgentInfo && gpgAgentInfo.length > 0) { + EnigmailLog.DEBUG("gnupg-agent.jsm: detectGpgAgent: GPG_AGENT_INFO variable available\n"); + // env. variable suggests running gpg-agent + EnigmailGpgAgent.gpgAgentInfo.preStarted = true; + EnigmailGpgAgent.gpgAgentInfo.envStr = gpgAgentInfo; + EnigmailGpgAgent.gpgAgentIsOptional = false; + } + else { + EnigmailLog.DEBUG("gnupg-agent.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("gnupg-agent.jsm: Error - " + esvc.initializationError + "\n"); + throw Components.results.NS_ERROR_FAILURE; + } + + var command = null; + var outStr = ""; + var errorStr = ""; + var exitCode = -1; + EnigmailGpgAgent.gpgAgentIsOptional = false; + + + EnigmailGpgAgent.gpgAgentInfo.envStr = DUMMY_AGENT_INFO; + var envFile = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); + EnigmailFiles.initPath(envFile, EnigmailGpgAgent.determineGpgHomeDir(esvc)); + envFile.append("gpg-agent.conf"); + + if (!envFile.exists()) { + EnigmailLog.DEBUG("gnupg-agent.jsm: detectGpgAgent: writing gpg-agent.conf file\n"); + let data = "default-cache-ttl " + (EnigmailPassword.getMaxIdleMinutes() * 60) + "\n"; + data += "max-cache-ttl 999999\n"; + try { + var flags = 0x02 | 0x08 | 0x20; + var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); + fileOutStream.init(envFile, flags, 384, 0); // 0600 + fileOutStream.write(data, data.length); + fileOutStream.flush(); + fileOutStream.close(); + } + catch (ex) {} // ignore file write errors + } + + } + EnigmailLog.DEBUG("gnupg-agent.jsm: detectGpgAgent: GPG_AGENT_INFO='" + EnigmailGpgAgent.gpgAgentInfo.envStr + "'\n"); + }, + + /** + * Determine the GnuPG home directory based on the same logic as GnuPG, but without involving + * any external tool. + * + * @return String - the path to the gpg home directory + */ + determineGpgHomeDir: function(esvc) { + + let param = EnigmailPrefs.getPref("agentAdditionalParam"); + if (param) { + let hd = getHomedirFromParam(param); + + if (hd) return hd; + } + + let homeDir = esvc.environment.get("GNUPGHOME"); + + if (!homeDir && EnigmailOS.isWin32) { + homeDir = EnigmailOS.getWinRegistryString("Software\\GNU\\GNUPG", "HomeDir", nsIWindowsRegKey.ROOT_KEY_CURRENT_USER); + + if (!homeDir) { + homeDir = esvc.environment.get("USERPROFILE") || esvc.environment.get("SystemRoot"); + + if (homeDir) homeDir += "\\Application Data\\GnuPG"; + } + + if (!homeDir) homeDir = "C:\\gnupg"; + } + + if (!homeDir) homeDir = esvc.environment.get("HOME") + "/.gnupg"; + + return homeDir; + }, + + /** + * Check if the users directory for GnuPG exists and is writeable. + * Throw exception if directory cannot be created or adjusted. + */ + checkGpgHomeDir: function(domWindow, esvc) { + EnigmailLog.DEBUG("gnupg-agent.jsm: checkGpgHomeDir:\n"); + + let homeDir = EnigmailGpgAgent.getGpgHomeDir(); + if (!homeDir) homeDir = EnigmailGpgAgent.determineGpgHomeDir(esvc); + + EnigmailLog.DEBUG("gnupg-agent.jsm: checkGpgHomeDir: got homedir = '" + homeDir + "'\n"); + + let homeDirObj = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); + EnigmailFiles.initPath(homeDirObj, homeDir); + + if (homeDirObj.exists()) { + homeDirObj.normalize(); // resolve symlinks etc. + } + + let dirType = EnigmailFiles.ensureWritableDirectory(homeDirObj, 0x1C0); // 0700 + let errMsg = ""; + switch (dirType) { + case 1: + errMsg = "gpghomedir.notexists"; + break; + case 2: + errMsg = "gpghomedir.notwritable"; + break; + case 3: + errMsg = "gpghomedir.notdirectory"; + break; + } + + if (errMsg.length > 0) { + if (!domWindow) { + domWindow = EnigmailWindows.getBestParentWin(); + } + getDialog().alert(domWindow, EnigmailLocale.getString(errMsg, homeDir) + "\n\n" + EnigmailLocale.getString("gpghomedir.notusable")); + throw Components.results.NS_ERROR_FAILURE; + } + }, + + finalize: function() { + if (EnigmailGpgAgent.gpgAgentProcess) { + EnigmailLog.DEBUG("gnupg-agent.jsm: EnigmailGpgAgent.finalize: stopping gpg-agent\n"); + try { + const proc = { + command: EnigmailGpgAgent.connGpgAgentPath, + arguments: ['killagent', '/bye'], + environment: EnigmailCore.getEnvList() + }; + + subprocess.call(proc).wait(); + } + catch (ex) { + EnigmailLog.ERROR("gnupg-agent.jsm: EnigmailGpgAgent.finalize ERROR: " + ex + "\n"); + } + } + } +}; diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-core.jsm enigmail-2.2.4/package/cryptoAPI/gnupg-core.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-core.jsm 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg-core.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,347 @@ +/* + * 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 https://mozilla.org/MPL/2.0/. + */ + + +"use strict"; + +const EXPORTED_SYMBOLS = ["EnigmailGpg"]; + +const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; +const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; +const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; +const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; +const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; +const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; +const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; +const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; +const EnigmailVersioning = ChromeUtils.import("chrome://enigmail/content/modules/versioning.jsm").EnigmailVersioning; +const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; +const getGpgAgent = EnigmailLazy.loader("enigmail/cryptoAPI/gnupg-agent.jsm", "EnigmailGpgAgent"); +const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); + +const MINIMUM_GPG_VERSION = "2.0.14"; +const GPG_BATCH_OPT_LIST = ["--batch", "--no-tty", "--no-verbose", "--status-fd", "2"]; + +function pushTrimmedStr(arr, str, splitStr) { + // Helper function for pushing a string without leading/trailing spaces + // to an array + str = str.replace(/^ */, "").replace(/ *$/, ""); + if (str.length > 0) { + if (splitStr) { + const tmpArr = str.split(/[\t ]+/); + for (let i = 0; i < tmpArr.length; i++) { + arr.push(tmpArr[i]); + } + } else { + arr.push(str); + } + } + return (str.length > 0); +} + +function getDirmngrTorStatus(exitCodeObj) { + const command = getGpgAgent().resolveToolPath("gpg-connect-agent"); + if (command === null) { + return null; + } + + const args = ["--dirmngr"]; + + EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); + + let stdout = ""; + try { + exitCodeObj.value = subprocess.call({ + command: command, + arguments: args, + environment: EnigmailCore.getEnvList(), + stdin: function(stdin) { + stdin.write("GETINFO tor\r\n"); + stdin.write("bye\r\n"); + stdin.write("\r\n"); + stdin.close(); + }, + stdout: function(data) { + stdout += data; + } + }).wait(); + } catch (ex) { + exitCodeObj.value = -1; + EnigmailLog.DEBUG("enigmail> DONE with FAILURE\n"); + } + + return stdout; +} + +function dirmngrConfiguredWithTor() { + if (!EnigmailGpg.getGpgFeature("supports-dirmngr")) return false; + + const exitCodeObj = { + value: null + }; + const output = getDirmngrTorStatus(exitCodeObj); + + if (output === null || exitCodeObj.value < 0) { + return false; + } + return output.match(/Tor mode is enabled/) !== null; +} + +var EnigmailGpg = { + agentVersion: "", + _agentPath: null, + + get agentPath() { + return this._agentPath; + }, + + setAgentPath: function(path) { + this._agentPath = path; + }, + + /** + * return the minimum version of GnuPG that is supported by Enigmail + */ + getMinimumGpgVersion: function() { + return MINIMUM_GPG_VERSION; + }, + + /*** + determine if a specific feature is available in the GnuPG version used + + @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 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) + search-keys-cmd - what command to use to terminate the --search-key operation. ("save" for gpg > 2.1; "quit" otherwise) + socks-on-windows - is SOCKS proxy supported on Windows (true for gpg >= 2.0.20) + supports-dirmngr - is dirmngr supported (true for gpg >= 2.1) + supports-ecc-keys - are ECC (elliptic curve) keys supported (true for gpg >= 2.1) + supports-sender - does gnupg understand the --sender argument (true for gpg >= 2.1.15) + supports-wkd - does gpg support wkd (web key directory) (true for gpg >= 2.1.19) + export-result - does gpg print EXPORTED when exporting keys (true for gpg >= 2.1.10) + decryption-info - does gpg print DECRYPTION_INFO (true for gpg >= 2.0.19) + export-specific-uid - does gpg support exporting a key with a specific UID (true for gpg >= 2.2.8) + supports-show-only - does gpg support --import-options show-only (true for gpg >= 2.1.14) + handles-huge-keys - can gpg deal with huge keys without aborting (true for gpg >= 2.2.17) + smartcard - are smartcards supported (true for all supported gpg versions) + uid-management - implementation supports adding, removing etc. of UIDs (true for GnuPG) + + @return: depending on featureName - Boolean unless specified differently: + (true if feature is available / false otherwise) + If the feature cannot be found, undefined is returned + */ + getGpgFeature: function(featureName) { + let gpgVersion = EnigmailGpg.agentVersion; + + if (!gpgVersion || typeof(gpgVersion) != "string" || gpgVersion.length === 0) { + return undefined; + } + + gpgVersion = gpgVersion.replace(/-.*$/, ""); + if (gpgVersion.search(/^\d+\.\d+/) < 0) { + // not a valid version number + return undefined; + } + + switch (featureName) { + case "version-supported": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, MINIMUM_GPG_VERSION); + case "supports-gpg-agent": + 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": + return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); + case "windows-photoid-bug": + return EnigmailVersioning.lessThan(gpgVersion, "2.0.16"); + case "supports-dirmngr": + return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); + case "supports-ecc-keys": + return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); + case "socks-on-windows": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.20"); + case "search-keys-cmd": + // returns a string + if (EnigmailVersioning.greaterThan(gpgVersion, "2.1")) { + return "save"; + } else + return "quit"; + case "supports-sender": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.15"); + case "export-result": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.10"); + case "decryption-info": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.19"); + case "supports-wkd": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.19"); + case "export-specific-uid": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.2.9"); + case "supports-show-only": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.14"); + case "handles-huge-keys": + return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.2.17"); + case "smartcard": + case "uid-management": + case "ownertrust": + return true; + } + + return undefined; + }, + + /** + * get the standard arguments to pass to every GnuPG subprocess + * + * @withBatchOpts: Boolean - true: use --batch and some more options + * false: don't use --batch and co. + * + * @return: Array of String - the list of arguments + */ + getStandardArgs: function(withBatchOpts) { + // return the arguments to pass to every GnuPG subprocess + let r = ["--charset", "utf-8", "--display-charset", "utf-8", "--no-auto-check-trustdb"]; // mandatory parameters to add in all cases + + try { + let p = EnigmailPrefs.getPref("agentAdditionalParam").replace(/\\\\/g, "\\"); + + let i = 0; + let last = 0; + let foundSign = ""; + let startQuote = -1; + + while ((i = p.substr(last).search(/['"]/)) >= 0) { + if (startQuote == -1) { + startQuote = i; + foundSign = p.substr(last).charAt(i); + last = i + 1; + } else if (p.substr(last).charAt(i) == foundSign) { + // found enquoted part + if (startQuote > 1) pushTrimmedStr(r, p.substr(0, startQuote), true); + + pushTrimmedStr(r, p.substr(startQuote + 1, last + i - startQuote - 1), false); + p = p.substr(last + i + 1); + last = 0; + startQuote = -1; + foundSign = ""; + } else { + last = last + i + 1; + } + } + + pushTrimmedStr(r, p, true); + } catch (ex) {} + + + if (withBatchOpts) { + r = r.concat(GPG_BATCH_OPT_LIST); + } + + return r; + }, + + // returns the output of --with-colons --list-config + getGnupgConfig: function(exitCodeObj, errorMsgObj) { + if (!EnigmailGpg.agentPath) { + exitCodeObj.value = 0; + return ""; + } + + const args = EnigmailGpg.getStandardArgs(true). + concat(["--fixed-list-mode", "--with-colons", "--list-config"]); + + const statusMsgObj = {}; + const cmdErrorMsgObj = {}; + const statusFlagsObj = {}; + + const listText = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, cmdErrorMsgObj); + + if (exitCodeObj.value !== 0) { + errorMsgObj.value = EnigmailLocale.getString("badCommand"); + if (cmdErrorMsgObj.value) { + errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args); + errorMsgObj.value += "\n" + cmdErrorMsgObj.value; + } + + return ""; + } + + return listText.replace(/(\r\n|\r)/g, "\n"); + }, + + /** + * return an array containing the aliases and the email addresses + * of groups defined in gpg.conf + * + * @return: array of objects with the following properties: + * - alias: group name as used by GnuPG + * - keylist: list of keys (any form that GnuPG accepts), separated by ";" + * + * (see docu for gnupg parameter --group) + */ + getGpgGroups: function() { + const exitCodeObj = {}; + const errorMsgObj = {}; + + const cfgStr = EnigmailGpg.getGnupgConfig(exitCodeObj, errorMsgObj); + + if (exitCodeObj.value !== 0) { + getDialog().alert(errorMsgObj.value); + return null; + } + + const groups = []; + const cfg = cfgStr.split(/\n/); + + for (let i = 0; i < cfg.length; i++) { + if (cfg[i].indexOf("cfg:group") === 0) { + const groupArr = cfg[i].split(/:/); + groups.push({ + alias: groupArr[2], + keylist: groupArr[3] + }); + } + } + + return groups; + }, + + /** + * Force GnuPG to recalculate the trust db. This is sometimes required after importing keys. + * + * no return value + */ + recalcTrustDb: function() { + EnigmailLog.DEBUG("gnupg-core.jsm: recalcTrustDb:\n"); + + const command = EnigmailGpg.agentPath; + const args = EnigmailGpg.getStandardArgs(false). + concat(["--check-trustdb"]); + + try { + const proc = subprocess.call({ + command: EnigmailGpg.agentPath, + arguments: args, + environment: EnigmailCore.getEnvList(), + charset: null, + mergeStderr: false + }); + proc.wait(); + } catch (ex) { + EnigmailLog.ERROR("enigmailCommon.jsm: recalcTrustDb: subprocess.call failed with '" + ex.toString() + "'\n"); + throw ex; + } + }, + + /** + * For versions of GPG 2.1 and higher, checks to see if the dirmngr is configured to use Tor + * + * @return Boolean - True if dirmngr is configured with Tor. False otherwise + */ + dirmngrConfiguredWithTor: dirmngrConfiguredWithTor +}; diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-decryption.jsm enigmail-2.2.4/package/cryptoAPI/gnupg-decryption.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-decryption.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg-decryption.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,376 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["GnuPGDecryption"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -const EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; - -const STATUS_ERROR = EnigmailConstants.BAD_SIGNATURE | EnigmailConstants.DECRYPTION_FAILED; -const STATUS_DECRYPTION_OK = EnigmailConstants.DECRYPTION_OKAY; -const STATUS_GOODSIG = EnigmailConstants.GOOD_SIGNATURE; - -var GnuPGDecryption = { - - /* - * options: - * - logFile (the actual file) - * - keyserver - * - keyserverProxy - * - fromAddr - * - noOutput - * - verifyOnly - * - mimeSignatureFile - * - maxOutputLength - * - */ - getDecryptionArgs: function(options) { - var args = EnigmailGpg.getStandardArgs(true); - - args.push("--log-file"); - args.push(EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(options.logFile))); - - if (options.keyserver && options.keyserver !== "") { - var keyserver = options.keyserver.trim(); - args.push("--keyserver-options"); - var keySrvArgs = "auto-key-retrieve"; - var srvProxy = options.keyserverProxy; - if (srvProxy) { - keySrvArgs += ",http-proxy=" + srvProxy; - } - args.push(keySrvArgs); - args.push("--keyserver"); - args.push(keyserver); - } - - if (EnigmailGpg.getGpgFeature("supports-sender") && options.fromAddr) { - args.push("--sender"); - args.push(options.fromAddr.toLowerCase()); - } - - if (options.noOutput) { - args.push("--verify"); - if (options.mimeSignatureFile) { - args.push(options.mimeSignatureFile); - args.push("-"); - } - } - else { - if (options.maxOutputLength) { - args.push("--max-output"); - args.push(String(options.maxOutputLength)); - } - - args.push("--decrypt"); - } - - return args; - }, - decryptMessageEnd: function(stderrStr, exitCode, outputLen, verifyOnly, noOutput, uiFlags, retStatusObj) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: uiFlags=" + uiFlags + ", verifyOnly=" + verifyOnly + ", noOutput=" + noOutput + "\n"); - - stderrStr = stderrStr.replace(/\r\n/g, "\n"); - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: stderrStr=\n" + stderrStr + "\n"); - - - var interactive = uiFlags & EnigmailConstants.UI_INTERACTIVE; - var pgpMime = uiFlags & EnigmailConstants.UI_PGP_MIME; - var allowImport = uiFlags & EnigmailConstants.UI_ALLOW_KEY_IMPORT; - var unverifiedEncryptedOK = uiFlags & EnigmailConstants.UI_UNVERIFIED_ENC_OK; - var j; - - retStatusObj.statusFlags = 0; - retStatusObj.errorMsg = ""; - retStatusObj.blockSeparation = ""; - - var errorMsg = EnigmailErrorHandling.parseErrorOutput(stderrStr, retStatusObj); - if (retStatusObj.statusFlags & STATUS_ERROR) { - retStatusObj.errorMsg = errorMsg; - } - else { - retStatusObj.errorMsg = ""; - } - - if (pgpMime) { - retStatusObj.statusFlags |= verifyOnly ? EnigmailConstants.PGP_MIME_SIGNED : EnigmailConstants.PGP_MIME_ENCRYPTED; - } - - var statusMsg = retStatusObj.statusMsg; - exitCode = EnigmailExecution.fixExitCode(exitCode, retStatusObj); - if ((exitCode === 0) && !noOutput && !outputLen && - ((retStatusObj.statusFlags & (STATUS_DECRYPTION_OK | STATUS_GOODSIG)) === 0)) { - exitCode = -1; - } - - if (retStatusObj.statusFlags & EnigmailConstants.DISPLAY_MESSAGE && retStatusObj.extendedStatus.search(/\bdisp:/) >= 0) { - EnigmailDialog.alert(null, statusMsg); - return -1; - } - - var errLines; - if (statusMsg) { - errLines = statusMsg.split(/\r?\n/); - } - else { - // should not really happen ... - errLines = stderrStr.split(/\r?\n/); - } - - // possible STATUS Patterns (see GPG dod DETAILS.txt): - // one of these should be set for a signature: - var newsigPat = /^NEWSIG ?.*$/i; - var trustedsigPat = /^TRUST_(FULLY|ULTIMATE) ?.*$/i; - var goodsigPat = /^GOODSIG (\w{16}) (.*)$/i; - var badsigPat = /^BADSIG (\w{16}) (.*)$/i; - var expsigPat = /^EXPSIG (\w{16}) (.*)$/i; - var expkeysigPat = /^EXPKEYSIG (\w{16}) (.*)$/i; - var revkeysigPat = /^REVKEYSIG (\w{16}) (.*)$/i; - var errsigPat = /^ERRSIG (\w{16}) (.*)$/i; - // additional infos for good signatures: - var validSigPat = /^VALIDSIG (\w+) (.*) (\d+) (.*)/i; - // hint for a certain key id: - var userIdHintPat = /^USERID_HINT (\w{16}) (.*)$/i; - // to find out for which recipients the email was encrypted: - var encToPat = /^ENC_TO (\w{16}) (.*)$/i; - - var matches; - - var signed = false; - var goodOrExpOrRevSignature = false; - var sigKeyId = ""; // key of sender - var sigUserId = ""; // user ID of sender - var sigDetails = ""; - var sigTrusted = false; - var encToDetails = ""; - var encToArray = []; // collect ENC_TO lines here - - for (j = 0; j < errLines.length; j++) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: process: " + errLines[j] + "\n"); - - // ENC_TO entry - // - collect them for later processing to print details - matches = errLines[j].match(encToPat); - if (matches && (matches.length > 2)) { - encToArray.push("0x" + matches[1]); - } - - // USERID_HINT entry - // - NOTE: NO END of loop - // ERROR: wrong to set userId because ecom is NOT the sender: - //matches = errLines[j].match(userIdHintPat); - //if (matches && (matches.length > 2)) { - // sigKeyId = matches[1]; - // sigUserId = matches[2]; - //} - - // check for one of the possible SIG entries: - - matches = errLines[j].match(newsigPat); - if (matches) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: multiple SIGN entries - ignoring previous signature\n"); - } - signed = true; - goodOrExpOrRevSignature = false; - sigKeyId = ""; - sigUserId = ""; - sigDetails = ""; - sigTrusted = false; - continue; - } - - matches = errLines[j].match(trustedsigPat); - if (matches) { - sigTrusted = true; - continue; - } - - matches = errLines[j].match(validSigPat); - if (matches && (matches.length > 4)) { - if (matches[4].length == 40) { - // in case of several subkeys refer to the main key ID. - // Only works with PGP V4 keys (Fingerprint length ==40) - sigKeyId = matches[4]; - } - if (matches && (matches.length > 2)) { - sigDetails = errLines[j].substr(9); - } - continue; - } - - // GOODSIG entry - matches = errLines[j].match(goodsigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = true; - sigKeyId = matches[1]; - sigUserId = matches[2]; - } - else { - // BADSIG entry => signature found but bad - matches = errLines[j].match(badsigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = false; - sigKeyId = matches[1]; - sigUserId = matches[2]; - } - else { - // EXPSIG entry => expired signature found - matches = errLines[j].match(expsigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = true; - sigKeyId = matches[1]; - sigUserId = matches[2]; - } - else { - // EXPKEYSIG entry => signature found but key expired - matches = errLines[j].match(expkeysigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = true; - sigKeyId = matches[1]; - sigUserId = matches[2]; - } - else { - // REVKEYSIG entry => signature found but key revoked - matches = errLines[j].match(revkeysigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = true; - sigKeyId = matches[1]; - sigUserId = matches[2]; - } - else { - // ERRSIG entry => signature found but key not usable or unavailable - matches = errLines[j].match(errsigPat); - if (matches && (matches.length > 2)) { - if (signed) { - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n"); - } - signed = true; - goodOrExpOrRevSignature = false; - sigKeyId = matches[1]; - // no user id with ecom istatus entry - } - } - } - } - } - } - - } // end loop of processing errLines - - if (sigTrusted) { - retStatusObj.statusFlags |= EnigmailConstants.TRUSTED_IDENTITY; - } - - if (sigUserId && sigKeyId && EnigmailPrefs.getPref("displaySecondaryUid")) { - let keyObj = EnigmailKeyRing.getKeyById(sigKeyId); - if (keyObj) { - if (keyObj.photoAvailable) { - retStatusObj.statusFlags |= EnigmailConstants.PHOTO_AVAILABLE; - } - sigUserId = EnigmailKeyRing.getValidUids(sigKeyId).join("\n"); - } - } - else if (sigUserId) { - sigUserId = EnigmailData.convertToUnicode(sigUserId, "UTF-8"); - } - - // add list of keys used for encryption if known (and their user IDs) if known - // Parsed status messages are something like (here the German version): - // [GNUPG:] ENC_TO AAAAAAAAAAAAAAAA 1 0 - // [GNUPG:] ENC_TO 5B820D2D4553884F 16 0 - // [GNUPG:] ENC_TO 37904DF2E631552F 1 0 - // [GNUPG:] ENC_TO BBBBBBBBBBBBBBBB 1 0 - // gpg: verschlüsselt mit 3072-Bit RSA Schlüssel, ID BBBBBBBB, erzeugt 2009-11-28 - // "Joe Doo " - // [GNUPG:] NO_SECKEY E71712DF47BBCC40 - // gpg: verschlüsselt mit RSA Schlüssel, ID AAAAAAAA - // [GNUPG:] NO_SECKEY AAAAAAAAAAAAAAAA - if (encToArray.length > 0) { - // for each key also show an associated user ID if known: - for (var encIdx = 0; encIdx < encToArray.length; ++encIdx) { - var localKeyId = encToArray[encIdx]; - // except for ID 00000000, which signals hidden keys - if (localKeyId != "0x0000000000000000") { - let localKey = EnigmailKeyRing.getKeyById(localKeyId); - if (localKey) { - encToArray[encIdx] += " (" + localKey.userId + ")"; - } - } - else { - encToArray[encIdx] = EnigmailLocale.getString("hiddenKey"); - } - } - encToDetails = "\n " + encToArray.join(",\n ") + "\n"; - } - - retStatusObj.userId = sigUserId; - retStatusObj.keyId = sigKeyId; - retStatusObj.sigDetails = sigDetails; - retStatusObj.encToDetails = encToDetails; - - if (signed) { - if (goodOrExpOrRevSignature) { - retStatusObj.errorMsg = EnigmailLocale.getString("prefGood", [sigUserId]); - /* + ", " + EnigmailLocale.getString("keyId") + " 0x" + sigKeyId.substring(8,16); */ - } - else { - if (sigUserId.length > 0) { - retStatusObj.errorMsg = EnigmailLocale.getString("prefBad", [sigUserId]); - } - if (!exitCode) - exitCode = 1; - } - } - - if (retStatusObj.statusFlags & EnigmailConstants.UNVERIFIED_SIGNATURE) { - retStatusObj.keyId = EnigmailKey.extractPubkey(statusMsg); - - if (retStatusObj.statusFlags & EnigmailConstants.DECRYPTION_OKAY) { - exitCode = 0; - } - } - - if (exitCode !== 0) { - // Error processing - EnigmailLog.DEBUG("gnupg-decryption.jsm: decryptMessageEnd: command execution exit code: " + exitCode + "\n"); - } - - return exitCode; - } -}; diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg.js enigmail-2.2.4/package/cryptoAPI/gnupg.js --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg.js 2020-10-01 13:32:58.000000000 +0000 @@ -11,14 +11,11 @@ var Services = Components.utils.import("resource://gre/modules/Services.jsm").Services; -// Load OpenPGP.js (including generic) API -Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/openpgp-js.js", - null, "UTF-8"); /* global OpenPGPjsCryptoAPI: false */ +Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/interface.js", + null, "UTF-8"); /* global CryptoAPI */ -/* Globals loaded from openpgp-js.js: */ -/* global getOpenPGP: false, EnigmailLog: false */ - -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; +const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; +const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-core.jsm").EnigmailGpg; const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; @@ -27,7 +24,6 @@ const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; const EnigmailPassword = ChromeUtils.import("chrome://enigmail/content/modules/passwords.jsm").EnigmailPassword; const EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -const GnuPGDecryption = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-decryption.jsm").GnuPGDecryption; const { obtainKeyList, @@ -39,20 +35,50 @@ const { GnuPG_importKeyFromFile, - GnuPG_extractSecretKey + GnuPG_extractSecretKey, + GnuPG_extractPublicKey, + GnuPG_importKeyData, + GnuPG_generateKey, + GnuPG_getTrustLabel } = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-key.jsm"); + +const DEFAULT_FILE_PERMS = 0o600; + /** * GnuPG implementation of CryptoAPI */ -class GnuPGCryptoAPI extends OpenPGPjsCryptoAPI { +class GnuPGCryptoAPI extends CryptoAPI { constructor() { super(); this.api_name = "GnuPG"; } /** + * Initialize the tools/functions required to run the API + * + * @param {nsIWindow} parentWindow: parent window, may be NULL + * @param {Object} enigSvc: Enigmail service object + * @param {String } preferredPath: try to use specific path to locate tool (gpg) + */ + initialize(parentWindow, enigSvc, preferredPath) { + const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-agent.jsm").EnigmailGpgAgent; + + EnigmailGpgAgent.setAgentPath(parentWindow, enigSvc, preferredPath); + EnigmailGpgAgent.detectGpgAgent(parentWindow, enigSvc); + EnigmailGpgAgent.setDummyAgentInfo(); + } + + /** + * Close/shutdown anything related to the functionality + */ + finalize() { + const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-agent.jsm").EnigmailGpgAgent; + EnigmailGpgAgent.finalize(); + } + + /** * Get the list of all knwn keys (including their secret keys) * @param {Array of String} onlyKeys: [optional] only load data for specified key IDs * @@ -68,7 +94,7 @@ * * @return {Array of KeyObject} with type = "grp" */ - getGroups() { + getGroupList() { let groups = EnigmailGpg.getGpgGroups(); let r = []; @@ -103,7 +129,11 @@ async getKeySignatures(keyId, ignoreUnknownUid = false) { EnigmailLog.DEBUG(`gnupg.js: getKeySignatures: ${keyId}\n`); - const args = EnigmailGpg.getStandardArgs(true).concat(["--with-fingerprint", "--fixed-list-mode", "--with-colons", "--list-sig"]).concat(keyId.split(" ")); + let args = EnigmailGpg.getStandardArgs(true).concat(["--with-fingerprint", "--fixed-list-mode", "--with-colons", "--list-sig"]); + + if (keyId.length > 0) { + args = args.concat(keyId.split(" ")); + } let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, ""); @@ -165,7 +195,8 @@ "--export-filter", "drop-subkey=" + dropSubkeyFilter, "--export", fpr ]); - } else { + } + else { args = args.concat(["--export-options", "export-minimal,no-export-attributes", "-a", "--export", fpr]); } @@ -183,7 +214,8 @@ retObj.errorMsg = EnigmailLocale.getString("failKeyExtract"); exportOK = false; } - } else { + } + else { // GnuPG older than 2.1.10 if (keyBlock.length < 50) { retObj.exitCode = 2; @@ -198,19 +230,6 @@ return retObj; } - // GnuPG < 2.2.9 - if (exportOK) { - let minKey = await this.getStrippedKey(keyBlock, email); - if (minKey) { - minimalKeyBlock = btoa(String.fromCharCode.apply(null, minKey)); - } - - if (!minimalKeyBlock) { - retObj.exitCode = 1; - retObj.errorMsg = EnigmailLocale.getString("failKeyNoSubkey"); - } - } - retObj.keyData = minimalKeyBlock; return retObj; } @@ -246,7 +265,41 @@ } /** - * Export secret key(s) to a file + * Import key(s) from a file + * + * @param {String} keyData: the key data to be imported (ASCII armored) + * @param {Boolean} minimizeKey: import the minimum key without any 3rd-party signatures + * @param {Array of String} limitedUids: skip UIDs that were not specified + * + * @return {Object} or null in case no data / error: + * - {Number} exitCode: result code (0: OK) + * - {Array of String) importedKeys: imported fingerprints + * - {Number} importSum: total number of processed keys + * - {Number} importUnchanged: number of unchanged keys + */ + + async importKeyData(keyData, minimizeKey, limitedUids) { + let keys = await GnuPG_importKeyData(keyData, minimizeKey, limitedUids); + return keys; + } + + /** + * Delete keys from keyring + * + * @param {Array} fpr: fingerprint(s) to delete. Separate multiple keys with space + * @param {Boolean} deleteSecretKey: if true, also delete secret keys + * @param {nsIWindow} parentWindow: parent window for displaying modal dialogs + * + * @return {Promise}: + * - {Number} exitCode: 0 if successful, other values indicate error + * - {String} errorMsg: error message if deletion not successful + */ + async deleteKeys(fpr, deleteSecretKey, parentWindow) { + } + + + /** + * Export secret key(s) as ASCII armored text * * @param {String} keyId Specification by fingerprint or keyID * @param {Boolean} minimalKey if true, reduce key to minimum required @@ -267,6 +320,49 @@ } /** + * Generate a new key pair + * + * @param {String} name: name part of UID + * @param {String} comment: comment part of UID (brackets are added) + * @param {String} email: email part of UID (<> will be added) + * @param {Number} expiryDate: Unix timestamp of key expiry date; 0 if no expiry + * @param {Number} keyLength: size of key in bytes (e.g 4096) + * @param {String} keyType: 'RSA' or 'ECC' + * @param {String} passphrase: password; use null if no password + * + * @return {Object}: + * - {function} cancel(): abort key creation + * - {Promise} promise: resolved when key creation is complete + * - {Number} exitCode: result code (0: OK) + * - {String} generatedKeyId: generated key ID + */ + + generateKey(name, comment, email, expiryDate, keyLength, keyType, passphrase) { + return GnuPG_generateKey(name, comment, email, expiryDate, keyLength, keyType, passphrase); + } + + /** + * Export public key(s) as ASCII armored text + * + * @param {String} keyId Specification by fingerprint or keyID + * + * @return {Object}: + * - {Number} exitCode: result code (0: OK) + * - {String} keyData: ASCII armored key data material + * - {String} errorMsg: error message in case exitCode !== 0 + */ + + async extractPublicKey(keyId) { + let ret = await GnuPG_extractPublicKey(keyId, EnigmailGpg.getGpgFeature("export-specific-uid")); + + if (ret.exitCode !== 0) { + ret.errorMsg = EnigmailLocale.getString("failKeyExtract") + "\n" + ret.errorMsg; + } + return ret; + } + + + /** * * @param {byte} byteData The encrypted data * @@ -286,15 +382,16 @@ filename = filename.replace(/ .*$/, ""); } return EnigmailData.convertToUnicode(unescape(filename), "utf-8"); - } else { + } + else { return null; } } /** * - * @param {Path} filePath The signed file - * @param {Path} sigPath The signature to verify + * @param {String} filePath Path specification for the signed file + * @param {String} sigPath Path specification for the signature file * * @return {Promise} - A message from the verification. * @@ -303,21 +400,7 @@ */ async verifyAttachment(filePath, sigPath) { - EnigmailLog.DEBUG(`gnupg.js: verifyAttachment()\n`); - const args = EnigmailGpg.getStandardArgs(true).concat(["--verify", sigPath, filePath]); - let result = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args); - const decrypted = {}; - GnuPGDecryption.decryptMessageEnd(result.stderrData, result.exitCode, 1, true, true, EnigmailConstants.UI_INTERACTIVE, decrypted); - if (result.exitCode === 0) { - const detailArr = decrypted.sigDetails.split(/ /); - const dateTime = EnigmailTime.getDateTime(detailArr[2], true, true); - const msg1 = decrypted.errorMsg.split(/\n/)[0]; - const msg2 = EnigmailLocale.getString("keyAndSigDate", ["0x" + decrypted.keyId, dateTime]); - const message = msg1 + "\n" + msg2; - return (message); - } else { - throw (decrypted.errorMsg); - } + } @@ -349,36 +432,29 @@ * * @param {String} encrypted The encrypted data * @param {Object} options Decryption options - * - * @return {Promise} - Return object with decryptedData and - * status information + * - logFile (the actual file) + * - keyserver + * - keyserverProxy + * - fromAddr + * - noOutput + * - verifyOnly + * - uiFlags + * - mimeSignatureFile + * - maxOutputLength + * + * @return {Promise} - Return object with decryptedData and status information: + * - {String} decryptedData + * - {Number} exitCode + * - {Number} statusFlags + * - {String} errorMsg + * - {String} blockSeparation * * Use Promise.catch to handle failed decryption. * retObj.errorMsg will be an error message in this case. */ async decrypt(encrypted, options) { - EnigmailLog.DEBUG(`gnupg.js: decrypt()\n`); - - options.logFile = EnigmailErrorHandling.getTempLogFile(); - const args = GnuPGDecryption.getDecryptionArgs(options); - let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, encrypted); - EnigmailErrorHandling.appendLogFileToDebug(options.logFile); - - if (res.statusFlags & EnigmailConstants.MISSING_PASSPHRASE) { - EnigmailLog.ERROR("decryption.jsm: decryptMessageStart: Error - no passphrase supplied\n"); - throw { - errorMsg: EnigmailLocale.getString("noPassphrase") - }; - } - const result = { - exitCode: res.exitCode, - decryptedData: res.stdoutData - }; - GnuPGDecryption.decryptMessageEnd(res.stderrData, res.exitCode, res.stdoutData.length, options.verifyOnly, options.noOutput, options.uiFlags, result); - - return result; } /** @@ -410,7 +486,8 @@ /** * - * @param {String} signed The signed data + * @param {String} signedData The signed data + * @param {String} signature The signature data * @param {Object} options Decryption options * * @return {Promise} - Return object with decryptedData and @@ -420,31 +497,154 @@ * retObj.errorMsg will be an error message in this case. */ - async verifyMime(signed, options) { + async verifyMime(signedData, signature, options) { EnigmailLog.DEBUG(`gnupg.js: verifyMime()\n`); options.noOutput = true; options.verifyOnly = true; options.uiFlags = EnigmailConstants.UI_PGP_MIME; - return this.decrypt(signed, options); + // create temp file holding signature data + let sigFile = EnigmailFiles.getTempDirObj(); + sigFile.append("data.sig"); + sigFile.createUnique(sigFile.NORMAL_FILE_TYPE, 0x180); + EnigmailFiles.writeFileContents(sigFile, signature, 0x180); + + options.mimeSignatureFile = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(sigFile)); + + let r = await this.decrypt(signedData, options); + + if (sigFile) sigFile.remove(false); + return r; } async getKeyListFromKeyBlock(keyBlockStr) { - let res; + let res = await getGpgKeyData(keyBlockStr); + return res; + } + + /** + * Export the ownertrust database from GnuPG + * @param {String or nsIFile} outputFile: Output file name or Object - or NULL if trust data + * should be returned as string + * + * @return {Object}: + * - ownerTrustData {String}: if outputFile is NULL, the key block data; "" if a file is written + * - exitCode {Number}: exit code + * - errorMsg {String}: error message + */ + async getOwnerTrust(outputFile) { + let args = EnigmailGpg.getStandardArgs(true).concat(["--export-ownertrust"]); + + let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, ""); + let exitCode = res.exitCode; + let errorMsg = res.errorMsg; + + if (outputFile) { + if (!EnigmailFiles.writeFileContents(outputFile, res.stdoutData, DEFAULT_FILE_PERMS)) { + exitCode = -1; + errorMsg = EnigmailLocale.getString("fileWriteFailed", [outputFile]); + } + return ""; + } + + return { + ownerTrustData: res.stdoutData, + exitCode: exitCode, + errorMsg: errorMsg + }; + } + + + /** + * Import the ownertrust database into GnuPG + * + * @param {String or nsIFile} inputFile: input file name or Object + * + * @return {Object}: + * - exitCode {Number}: exit code + * - errorMsg {String}: error message + */ + async importOwnerTrust(inputFile) { + let args = EnigmailGpg.getStandardArgs(true).concat(["--import-ownertrust"]); + let res = { + exitCode: -1, + errorMsg: "" + }; + + let exitCodeObj = {}; try { - res = await getGpgKeyData(keyBlockStr); - } catch (ex) { - if (ex === "unsupported") { - res = await this.OPENPGPjs_getKeyListFromKeyBlock(keyBlockStr); - } else throw ex; + let trustData = EnigmailFiles.readFile(inputFile); + res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, trustData); } + catch (ex) {} + return res; } + + /** + * Encrypt messages + * + * @param {String} from: keyID or email address of sender/signer + * @param {String} recipients: keyIDs or email addresses of recipients, separated by spaces + * @param {String} hiddenRecipients: keyIDs or email addresses of hidden recipients (bcc), separated by spaces + * @param {Number} encryptionFlags: Flags for Signed/encrypted/PGP-MIME etc. + * @param {String} plainText: data to encrypt + * @param {String} hashAlgorithm: [OPTIONAL] hash algorithm + * @param {nsIWindow} parentWindow: [OPTIONAL] window on top of which to display modal dialogs + * + * @returns {Object}: + * - {Number} exitCode: 0 = success / other values: error + * - {String} data: encrypted data + * - {String} errorMsg: error message in case exitCode !== 0 + * - {Number} statusFlags: Status flags for result + */ + encryptMessage(from, recipients, hiddenRecipients, encryptionFlags, plainText, hashAlgorithm = null, parentWindow = null) { + return null; + } + + async encryptFile(from, recipients, hiddenRecipients, encryptionFlags, inputFile, outputFile, parentWindow) { + return null; + } + + /** + * Clear any cached passwords + * + * @return {Boolean} true if successful, false otherwise + */ + async clearPassphrase() { + + const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-agent.jsm").EnigmailGpgAgent; + + const input = "RELOADAGENT\n/bye\n"; + + let res = await EnigmailExecution.execAsync(EnigmailGpgAgent.connGpgAgentPath, [], input); + return (res.stdoutData.search(/^ERR/m) < 0); + } + + supportsFeature(featureName) { + return EnigmailGpg.getGpgFeature(featureName); + } + + /** + * Return the key management functions (sub-API) + */ + getKeyManagement() { + return null; + } + + getGroups() { + return EnigmailGpg.getGpgGroups(); + } + + getTrustLabel(trustCode) { + return GnuPG_getTrustLabel(trustCode); + } } + function getGnuPGAPI() { return new GnuPGCryptoAPI(); -} \ No newline at end of file +} diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-key.jsm enigmail-2.2.4/package/cryptoAPI/gnupg-key.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-key.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg-key.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -10,13 +10,17 @@ "use strict"; -var EXPORTED_SYMBOLS = ["GnuPG_importKeyFromFile", "GnuPG_extractSecretKey"]; +var EXPORTED_SYMBOLS = ["GnuPG_importKeyFromFile", "GnuPG_importKeyData", "GnuPG_extractSecretKey", "GnuPG_extractPublicKey", + "GnuPG_generateKey", "GnuPG_getTrustLabel" +]; const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; +const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-core.jsm").EnigmailGpg; const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailLocale; +const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; +const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; +const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; async function GnuPG_importKeyFromFile(inputFile) { @@ -28,49 +32,84 @@ args.push(fileName); - let res = await EnigmailExecution.execAsync(command, args, ""); - let statusMsg = res.statusMsg; + const res = await EnigmailExecution.execAsync(command, args, ""); - var keyList = []; let importedKeys = []; let importSum = 0; let importUnchanged = 0; + let secCount = 0; + let secImported = 0; + let secDups = 0; + + if (res.statusMsg) { + let r = parseImportResult(res.statusMsg); + if (r.exitCode !== -1) { + res.exitCode = r.exitCode; + } + if (r.errorMsg !== "") { + res.errorMsg = r.errorMsg; + } - // IMPORT_RES 0 - // - if (statusMsg) { - let import_res = statusMsg.match(/^IMPORT_RES ([0-9]+) ([0-9]+) ([0-9]+) 0 ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/m); + importedKeys = r.importedKeys; + importSum = r.importSum; + importUnchanged = r.importUnchanged; + secCount = r.secCount; + secImported = r.secImported; + secDups = r.secDups; + } - if (import_res !== null) { - let secCount = parseInt(import_res[9], 10); // number of secret keys found - let secImported = parseInt(import_res[10], 10); // number of secret keys imported - let secDups = parseInt(import_res[11], 10); // number of secret keys already on the keyring - - if (secCount !== secImported + secDups) { - res.errorMsg = EnigmailLocale.getString("import.secretKeyImportError"); - res.exitCode = 1; - } - else { - importSum = parseInt(import_res[1], 10); - importUnchanged = parseInt(import_res[4], 10); - res.exitCode = 0; - var statusLines = statusMsg.split(/\r?\n/); - - for (let j = 0; j < statusLines.length; j++) { - var matches = statusLines[j].match(/IMPORT_OK ([0-9]+) (\w+)/); - if (matches && (matches.length > 2)) { - if (typeof (keyList[matches[2]]) != "undefined") { - keyList[matches[2]] |= Number(matches[1]); - } - else - keyList[matches[2]] = Number(matches[1]); + return { + exitCode: res.exitCode, + errorMsg: res.errorMsg, + importedKeys: importedKeys, + importSum: importSum, + importUnchanged: importUnchanged, + secCount: secCount, + secImported: secImported, + secDups: secDups + }; +} - importedKeys.push(matches[2]); - EnigmailLog.DEBUG("gnupg-key.jsm: importKeysFromFile: imported " + matches[2] + ":" + matches[1] + "\n"); - } - } - } +async function GnuPG_importKeyData(keyData, minimizeKey = false, limitedUids = []) { + let args = EnigmailGpg.getStandardArgs(false).concat(["--no-verbose", "--status-fd", "2"]); + if (minimizeKey) { + args = args.concat(["--import-options", "import-minimal"]); + } + + if (limitedUids.length > 0 && EnigmailGpg.getGpgFeature("export-specific-uid")) { + let filter = limitedUids.map(i => { + return `mbox =~ ${i}`; + }).join(" || "); + + args.push("--import-filter"); + args.push(`keep-uid=${filter}`); + } + args = args.concat(["--no-auto-check-trustdb", "--import"]); + + const res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, keyData); + + let importedKeys = []; + let importSum = 0; + let importUnchanged = 0; + let secCount = 0; + let secImported = 0; + let secDups = 0; + + if (res.statusMsg) { + let r = parseImportResult(res.statusMsg); + if (r.exitCode !== -1) { + res.exitCode = r.exitCode; + } + if (r.errorMsg !== "") { + res.errorMsg = r.errorMsg; } + + importedKeys = r.importedKeys; + importSum = r.importSum; + importUnchanged = r.importUnchanged; + secCount = r.secCount; + secImported = r.secImported; + secDups = r.secDups; } return { @@ -78,11 +117,13 @@ errorMsg: res.errorMsg, importedKeys: importedKeys, importSum: importSum, - importUnchanged: importUnchanged + importUnchanged: importUnchanged, + secCount: secCount, + secImported: secImported, + secDups: secDups }; } - async function GnuPG_extractSecretKey(userId, minimalKey) { let args = EnigmailGpg.getStandardArgs(true); let exitCode = -1, @@ -101,6 +142,7 @@ } let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, ""); + exitCode = res.exitCode; if (res.stdoutData) { exitCode = 0; @@ -119,3 +161,283 @@ errorMsg: errorMsg }; } + + +async function GnuPG_extractPublicKey(userId, cleanKey) { + let args = EnigmailGpg.getStandardArgs(true); + let exitCode = -1, + errorMsg = ""; + + args.push("-a"); + args.push("--export"); + if (cleanKey) { + args.push("--export-options"); + args.push("export-clean"); + } + + if (userId) { + args = args.concat(userId.split(/[ ,\t]+/)); + } + + let res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, ""); + exitCode = res.exitCode; + + if (res.stdoutData) { + exitCode = 0; + } + + if (exitCode !== 0) { + if (res.errorMsg) { + errorMsg = EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args); + errorMsg += "\n" + res.errorMsg; + } + } + + return { + keyData: res.stdoutData, + exitCode: exitCode, + errorMsg: errorMsg + }; +} + +/** + * Parse GnuPG status output + * + * @param statusMsg + */ +function parseImportResult(statusMsg) { + // IMPORT_RES 0 + // + + let import_res = statusMsg.match(/^IMPORT_RES ([0-9]+) ([0-9]+) ([0-9]+) 0 ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/m); + + let keyList = []; + let res = { + errorMsg: "", + exitCode: -1, + importedKeys: [], + importSum: 0, + importUnchanged: 0 + }; + + if (import_res !== null) { + let secCount = parseInt(import_res[9], 10); // number of secret keys found + let secImported = parseInt(import_res[10], 10); // number of secret keys imported + let secDups = parseInt(import_res[11], 10); // number of secret keys already on the keyring + + if (secCount !== secImported + secDups) { + res.errorMsg = EnigmailLocale.getString("import.secretKeyImportError"); + res.exitCode = 1; + } + else { + res.importSum = parseInt(import_res[1], 10); + res.importUnchanged = parseInt(import_res[4], 10); + res.secCount = parseInt(import_res[9], 10); // number of secret keys found + res.secImported = parseInt(import_res[10], 10); // number of secret keys imported + res.secDups = parseInt(import_res[11], 10); // number of secret keys already on the keyring + + res.exitCode = 0; + var statusLines = statusMsg.split(/\r?\n/); + + for (let j = 0; j < statusLines.length; j++) { + var matches = statusLines[j].match(/IMPORT_OK ([0-9]+) (\w+)/); + if (matches && (matches.length > 2)) { + if (typeof(keyList[matches[2]]) != "undefined") { + keyList[matches[2]] |= Number(matches[1]); + } + else + keyList[matches[2]] = Number(matches[1]); + + res.importedKeys.push(matches[2]); + EnigmailLog.DEBUG("gnupg-key.jsm: parseImportResult: imported " + matches[2] + ":" + matches[1] + "\n"); + } + } + } + } + + return res; +} + + +function GnuPG_generateKey(name, comment, email, expiryDate, keyLength, keyType, passphrase) { + EnigmailLog.DEBUG("gnupg-key.jsm: generateKey()\n"); + + let proc = null; + let generatedKeyId = ""; + let returnHandle = { + cancel: function() { + EnigmailLog.DEBUG("gnupg-key.jsm: generateKey -> cancel()\n"); + if (proc) { + proc.kill(false); + } + } + }; + + returnHandle.promise = new Promise((resolve, reject) => { + const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; + const args = EnigmailGpg.getStandardArgs(true).concat(["--gen-key"]); + + EnigmailLog.CONSOLE(EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args) + "\n"); + + let inputData = "%echo Generating key\nKey-Type: "; + + switch (keyType) { + case "RSA": + inputData += "RSA\nKey-Usage: sign,auth\nKey-Length: " + keyLength; + inputData += "\nSubkey-Type: RSA\nSubkey-Usage: encrypt\nSubkey-Length: " + keyLength + "\n"; + break; + case "ECC": + inputData += "EDDSA\nKey-Curve: Ed25519\nKey-Usage: sign\n"; + inputData += "Subkey-Type: ECDH\nSubkey-Curve: Curve25519\nSubkey-Usage: encrypt\n"; + break; + default: + throw "Invalid algoeithm"; + } + + if (name.replace(/ /g, "").length) { + inputData += "Name-Real: " + name + "\n"; + } + if (comment && comment.replace(/ /g, "").length) { + inputData += "Name-Comment: " + comment + "\n"; + } + inputData += "Name-Email: " + email + "\n"; + inputData += "Expire-Date: " + String(expiryDate) + "\n"; + + EnigmailLog.CONSOLE(inputData + " \n"); + + if (passphrase.length) { + inputData += "Passphrase: " + passphrase + "\n"; + } + else { + if (EnigmailGpg.getGpgFeature("genkey-no-protection")) { + inputData += "%echo no-protection\n"; + inputData += "%no-protection\n"; + } + } + + inputData += "%commit\n%echo done\n"; + + try { + proc = subprocess.call({ + command: EnigmailGpg.agentPath, + arguments: args, + environment: EnigmailCore.getEnvList(), + charset: null, + stdin: function(pipe) { + pipe.write(inputData); + pipe.close(); + }, + stderr: function(data) { + // extract key ID + if (data.search(/^\[GNUPG:\] KEY_CREATED/m)) { + let m = data.match(/^(\[GNUPG:\] KEY_CREATED [BPS] )([^ \r\n\t]+)$/m); + if (m && m.length > 2) { + generatedKeyId = "0x" + m[2]; + } + } + }, + done: function(result) { + try { + resolve({ + exitCode: result.exitCode, + generatedKeyId: generatedKeyId + }); + } + catch (ex) {} + }, + mergeStderr: false + }); + } + catch (ex) { + EnigmailLog.ERROR("keyRing.jsm: generateKey: subprocess.call failed with '" + ex.toString() + "'\n"); + reject(ex); + } + + EnigmailLog.DEBUG("keyRing.jsm: generateKey: subprocess = " + proc + "\n"); + }); + + return returnHandle; +} + + +function GnuPG_getTrustLabel(trustCode) { + let keyTrust; + if (EnigmailPrefs.getPref("acceptedKeys") === 0) { + // only accept valid/authenticated keys + switch (trustCode) { + case 'q': + keyTrust = EnigmailLocale.getString("keyValid.unknown"); + break; + case 'i': + keyTrust = EnigmailLocale.getString("keyValid.invalid"); + break; + case 'd': + case 'D': + keyTrust = EnigmailLocale.getString("keyValid.disabled"); + break; + case 'r': + keyTrust = EnigmailLocale.getString("keyValid.revoked"); + break; + case 'e': + keyTrust = EnigmailLocale.getString("keyValid.expired"); + break; + case 'n': + keyTrust = EnigmailLocale.getString("keyTrust.untrusted"); + break; + case 'm': + keyTrust = EnigmailLocale.getString("keyTrust.marginal"); + break; + case 'f': + keyTrust = EnigmailLocale.getString("keyTrust.full"); + break; + case 'u': + keyTrust = EnigmailLocale.getString("keyTrust.ultimate"); + break; + case 'g': + keyTrust = EnigmailLocale.getString("keyTrust.group"); + break; + case '-': + keyTrust = "-"; + break; + default: + keyTrust = ""; + } + } + else { + // simplified validity model if all keys are accepted + switch (trustCode) { + case 'n': + keyTrust = EnigmailLocale.getString("keyTrust.untrusted"); + break; + case 'd': + case 'D': + keyTrust = EnigmailLocale.getString("keyValid.disabled"); + break; + case 'i': + keyTrust = EnigmailLocale.getString("keyValid.invalid"); + break; + case 'r': + keyTrust = EnigmailLocale.getString("keyValid.revoked"); + break; + case 'e': + keyTrust = EnigmailLocale.getString("keyValid.expired"); + break; + case '-': + case 'o': + case 'q': + case 'm': + case 'f': + keyTrust = EnigmailLocale.getString("keyValid.valid"); + break; + case 'u': + keyTrust = EnigmailLocale.getString("keyValid.ownKey"); + break; + case 'g': + keyTrust = EnigmailLocale.getString("keyTrust.group"); + break; + default: + keyTrust = ""; + } + } + return keyTrust; +} diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-keylist.jsm enigmail-2.2.4/package/cryptoAPI/gnupg-keylist.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI/gnupg-keylist.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/gnupg-keylist.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -15,7 +15,7 @@ ]; const EnigmailTime = ChromeUtils.import("chrome://enigmail/content/modules/time.jsm").EnigmailTime; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; +const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-core.jsm").EnigmailGpg; const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; const EnigmailTrust = ChromeUtils.import("chrome://enigmail/content/modules/trust.jsm").EnigmailTrust; @@ -37,6 +37,7 @@ const USERID_ID = 9; const SIG_TYPE_ID = 10; const KEY_USE_FOR_ID = 11; +const KEY_TOKEN = 14; const ALGO_SYMBOL = { 1: "RSA", @@ -139,12 +140,14 @@ keyObj = keyList.index[listRow[KEY_ID]]; if (keyObj) { keyObj.secretAvailable = true; + keyObj.token = listRow[KEY_TOKEN]; // create a dummy object that is not added to the list since we already have the key keyObj = createKeyObj(listRow); } else { appendUnkownSecretKey(listRow[KEY_ID], keyListString, i, keyList); keyObj = keyList.index[listRow[KEY_ID]]; keyObj.secretAvailable = true; + keyObj.token = listRow[KEY_TOKEN]; } break; case "fpr": @@ -254,7 +257,7 @@ /** * Extract a photo ID from a key, store it as file and return the file object. - + * @param {String} keyId: Key ID / fingerprint * @param {Number} photoNumber: number of the photo on the key, starting with 0 * @@ -332,7 +335,7 @@ fileStream.close(); // delete picFile upon exit - let extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher); + let extAppLauncher = Cc["@mozilla.org/uriloader/external-helper-app-service;1"].getService(Ci.nsPIExternalAppLauncher); extAppLauncher.deleteTemporaryFileOnExit(picFile); return picFile; } catch (ex) {} @@ -348,22 +351,24 @@ * Only the first public key is processed! * @param {Boolean} ignoreUnknownUid true if unknown signer's UIDs should be filtered out * - * @return {Array of Object}: - * - uid - * - uidLabel - * - creationDate - * - sigList: [uid, creationDate, signerKeyId, sigType ] + * @return {Array}: + * - keyId + * - fpr + * - uid: Array + * - userId + * - rawUserId + * - created: creationDate of UID + * - sigList: [uid, creationDate, signerKeyId, sigType ] */ function extractSignatures(gpgKeyList, ignoreUnknownUid) { EnigmailLog.DEBUG("gnupg.js: extractSignatures\n"); - var listObj = {}; + let keyList = [], + keyObj = null; - let havePub = false; let currUid = "", - keyId = "", - fpr = ""; + keyId = ""; const lineArr = gpgKeyList.split(/\n/); for (let i = 0; i < lineArr.length; i++) { @@ -378,24 +383,26 @@ const lineTokens = lineArr[i].split(/:/); switch (lineTokens[ENTRY_ID]) { case "pub": - if (havePub) { - return listObj; + if (keyObj) { + keyList.push(keyObj); } - havePub = true; keyId = lineTokens[KEY_ID]; + keyObj = { + keyId: keyId, + fpr: "", + uid: {} + }; break; case "fpr": - if (fpr === "") - fpr = lineTokens[USERID_ID]; + if (keyObj.fpr === "") + keyObj.fpr = lineTokens[USERID_ID]; break; case "uid": case "uat": currUid = lineTokens[UID_ID]; - listObj[currUid] = { + keyObj.uid[currUid] = { userId: lineTokens[ENTRY_ID] == "uat" ? EnigmailLocale.getString("keyring.photo") : EnigmailData.convertGpgToUnicode(lineTokens[USERID_ID]), rawUserId: lineTokens[USERID_ID], - keyId: keyId, - fpr: fpr, created: EnigmailTime.getDateTime(lineTokens[CREATED_ID], true, false), sigList: [] }; @@ -413,14 +420,15 @@ }; if (!ignoreUnknownUid || sig.userId != UNKNOWN_SIGNATURE) { - listObj[currUid].sigList.push(sig); + keyObj.uid[currUid].sigList.push(sig); } } break; } } - return listObj; + if (keyObj) keyList.push(keyObj); + return keyList; } @@ -500,4 +508,4 @@ } return keyList; -} \ No newline at end of file +} diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/interface.js enigmail-2.2.4/package/cryptoAPI/interface.js --- enigmail-2.1.6+ds1/package/cryptoAPI/interface.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/interface.js 2020-10-01 13:32:58.000000000 +0000 @@ -22,9 +22,29 @@ } /** - * Synchronize a promise: wait synchonously until a promise has completed and return + * Initialize the tools/functions required to run the API + * + * @param {nsIWindow} parentWindow: parent window, may be NULL + * @param {Object} esvc: Enigmail service object + * @param {String } preferredPath: try to use specific path to locate tool (gpg) + */ + initialize(parentWindow, esvc, preferredPath) { + return null; + } + + /** + * Close/shutdown anything related to the functionality + */ + finalize() { + return null; + } + + /** + * Synchronize on a Promise: wait synchonously until a promise has completed and return * the value that the promise returned. * + * NOTE: just like await, this will throw an exception if the Promise fails with "reject" + * * @param {Promise} promise: the promise to wait for * * @return {Variant} whatever the promise returns @@ -34,29 +54,45 @@ inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); } - let res = null; + let res = null, + isError = false; let p = promise.then(gotResult => { res = gotResult; inspector.exitNestedEventLoop(); }).catch(gotResult => { res = gotResult; + isError = true; inspector.exitNestedEventLoop(); }); inspector.enterNestedEventLoop(0); + if (isError) { + throw res; + } return res; } /** * Obtain signatures for a given set of key IDs. * - * @param {String} keyId: space-separated list of key IDs + * @param {String} fpr: key fingerprint * @param {Boolean} ignoreUnknownUid: if true, filter out unknown signer's UIDs * - * @return {Promise} - see extractSignatures() + * @return {Promise} + * - {String} userId + * - {String} rawUserId + * - {String} keyId + * - {String} fpr + * - {String} created + * - {Array} sigList: + * - {String} userId + * - {String} created + * - {String} signerKeyId + * - {String} sigType + * - {Boolean} sigKnown */ - async getKeySignatures(keyId, ignoreUnknownUid = false) { + async getKeySignatures(fpr, ignoreUnknownUid = false) { return null; } @@ -112,7 +148,7 @@ * * @return {Array of KeyObject} with type = "grp" */ - getGroups() { + getGroupList() { return []; } @@ -145,9 +181,42 @@ } /** - * Export secret key(s) to a file + * Import key(s) from a string + * + * @param {String} keyData: the key data to be imported (ASCII armored) + * @param {Boolean} minimizeKey: import the minimum key without any 3rd-party signatures + * @param {Array of String} limitedUids: skip UIDs that were not specified + * + * @return {Object} or null in case no data / error: + * - {Number} exitCode: result code (0: OK) + * - {Array of String) importedKeys: imported fingerprints + * - {Number} importSum: total number of processed keys + * - {Number} importUnchanged: number of unchanged keys + */ + + async importKeyData(keyData, minimizeKey, limitedUids) { + return null; + } + + /** + * Delete keys from keyring + * + * @param {Array} fpr: fingerprint(s) to delete + * @param {Boolean} deleteSecretKey: if true, also delete secret keys + * @param {nsIWindow} parentWindow: parent window for displaying modal dialogs + * + * @return {Promise}: + * - {Number} exitCode: 0 if successful, other values indicate error + * - {String} errorMsg: error message if deletion not successful + */ + async deleteKeys(fpr, deleteSecretKey, parentWindow) { + return null; + } + + /** + * Export secret key(s) as ASCII armored data * - * @param {String} keyId Specification by fingerprint or keyID + * @param {String} keyId Specification by fingerprint or keyID, separate mutliple keys with spaces * @param {Boolean} minimalKey if true, reduce key to minimum required * * @return {Object}: @@ -161,6 +230,45 @@ } /** + * Export public key(s) as ASCII armored data + * + * @param {String} keyId Specification by fingerprint or keyID, separate mutliple keys with spaces + * @param {Boolean} minimalKey if true, reduce key to minimum required + * + * @return {Object}: + * - {Number} exitCode: result code (0: OK) + * - {String} keyData: ASCII armored key data material + * - {String} errorMsg: error message in case exitCode !== 0 + */ + + async extractPublicKey(keyId) { + return null; + } + + /** + * Generate a new key pair + * + * @param {String} name: name part of UID + * @param {String} comment: comment part of UID (brackets are added) + * @param {String} email: email part of UID (<> will be added) + * @param {Number} expiryDate: Unix timestamp of key expiry date; 0 if no expiry + * @param {Number} keyLength: size of key in bytes (e.g 4096) + * @param {String} keyType: 'RSA' or 'ECC' + * @param {String} passphrase: password; use null if no password + * + * @return {Object}: Handle to key creation + * - {function} cancel(): abort key creation + * - {Promise} promise: resolved when key creation is complete + * - {Number} exitCode: result code (0: OK) + * - {String} generatedKeyId: generated key ID + */ + + generateKey(name, comment, email, expiryDate, keyLength, keyType, passphrase) { + return null; + } + + + /** * Determine the file name from OpenPGP data. * * @param {byte} byteData The encrypted data @@ -176,8 +284,8 @@ * Verify the detached signature of an attachment (or in other words, * check the signature of a file, given the file and the signature). * - * @param {Path} filePath The signed file - * @param {Path} sigPath The signature to verify + * @param {String} filePath Path specification for the signed file + * @param {String} sigPath Path specification for the signature file * * @return {Promise} - A message from the verification. * @@ -227,9 +335,27 @@ * * @param {String} encrypted The encrypted data * @param {Object} options Decryption options - * - * @return {Promise} - Return object with decryptedData and - * status information + * - logFile (the actual file) + * - keyserver + * - keyserverProxy + * - fromAddr + * - noOutput + * - verifyOnly + * - uiFlags + * - mimeSignatureFile + * - maxOutputLength + * + * @return {Promise} - Return object with decryptedData and status information: + * - {String} decryptedData + * - {Number} exitCode + * - {Number} statusFlags + * - {String} errorMsg + * - {String} blockSeparation + * - {String} userId: signature user Id + * - {String} keyId: signature key ID + * - {String} sigDetails: as printed by GnuPG for VALIDSIG pattern + retStatusObj.encToDetails = encToDetails; +* * * Use Promise.catch to handle failed decryption. * retObj.errorMsg will be an error message in this case. @@ -242,7 +368,8 @@ /** * Verify a PGP/MIME-signed message * - * @param {String} signed The signed data + * @param {String} signedData The signed data + * @param {String} signature The signature data * @param {Object} options Decryption options * * @return {Promise} - Return object with decryptedData and @@ -252,7 +379,7 @@ * retObj.errorMsg will be an error message in this case. */ - async verifyMime(signed, options) { + async verifyMime(signedData, signature, options) { return null; } @@ -270,4 +397,142 @@ async getKeyListFromKeyBlock(keyBlockStr) { return null; } -} \ No newline at end of file + + /** + * Export the ownertrust database + * @param {String or nsIFile} outputFile: Output file name or Object - or NULL if trust data + * should be returned as string + * + * @return {Object}: + * - ownerTrustData {String}: if outputFile is NULL, the key block data; "" if a file is written + * - exitCode {Number}: exit code + * - errorMsg {String}: error message + */ + async getOwnerTrust(outputFile) { + return { + exitCode: 0, + ownerTrustData: "", + errorMsg: "" + }; + } + + + /** + * Import the ownertrust database + * + * @param {String or nsIFile} inputFile: input file name or Object + * + * @return {Object}: + * - exitCode {Number}: exit code + * - errorMsg {String}: error message + */ + async importOwnerTrust(inputFile) { + return { + exitCode: 0, + errorMsg: "" + }; + } + + + /** + * Encrypt messages + * + * @param {String} from: keyID or email address of sender/signer + * @param {String} recipients: keyIDs or email addresses of recipients, separated by spaces + * @param {String} hiddenRecipients: keyIDs or email addresses of hidden recipients (bcc), separated by spaces + * @param {Number} encryptionFlags: Flags for Signed/encrypted/PGP-MIME etc. + * @param {String} plainText: data to encrypt + * @param {String} hashAlgorithm: [OPTIONAL] hash algorithm + * @param {nsIWindow} parentWindow: [OPTIONAL] window on top of which to display modal dialogs + * + * @return {Object}: + * - {Number} exitCode: 0 = success / other values: error + * - {String} data: encrypted data + * - {String} errorMsg: error message in case exitCode !== 0 + * - {Number} statusFlags: Status flags for result + */ + + async encryptMessage(from, recipients, hiddenRecipients, encryptionFlags, plainText, hashAlgorithm = null, parentWindow = null) { + return null; + } + + /** + * Encrypt Files + * + * @param {String} from: keyID or email address of sender/signer + * @param {String} recipients: keyIDs or email addresses of recipients, separated by spaces + * @param {String} hiddenRecipients: keyIDs or email addresses of hidden recipients (bcc), separated by spaces + * @param {Number} encryptionFlags: Flags for Signed/encrypted/PGP-MIME etc. + * @param {nsIFile} inputFile: source file to encrypt + * @param {nsIFile} outputFile: target file containing encrypted data + * + * @return {Object}: + * - {Number} exitCode: 0 = success / other values: error + * - {String} data: encrypted data + * - {String} errorMsg: error message in case exitCode !== 0 + * - {Number} statusFlags: Status flags for result + */ + + async encryptFile(from, recipients, hiddenRecipients, encryptionFlags, inputFile, outputFile, parentWindow = null) { + return null; + } + + /** + * Clear any cached passwords + * + * @return {Boolean} true if successful, false otherwise + */ + async clearPassphrase() { + return null; + } + + /** + * Return an array containing the aliases and the email addresses + * + * @return {Array<{Alias,KeyList}>} <{String,String}> + */ + getGroups() { + return []; + } + + /*** + * Determine if a specific feature is available by the used toolset + * + * @param {String} 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 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) + * search-keys-cmd - what command to use to terminate the --search-key operation. ("save" for gpg > 2.1; "quit" otherwise) + * socks-on-windows - is SOCKS proxy supported on Windows (true for gpg >= 2.0.20) + * supports-dirmngr - is dirmngr supported (true for gpg >= 2.1) + * supports-ecc-keys - are ECC (elliptic curve) keys supported (true for gpg >= 2.1) + * supports-sender - does gnupg understand the --sender argument (true for gpg >= 2.1.15) + * supports-wkd - does gpg support wkd (web key directory) (true for gpg >= 2.1.19) + * export-result - does gpg print EXPORTED when exporting keys (true for gpg >= 2.1.10) + * decryption-info - does gpg print DECRYPTION_INFO (true for gpg >= 2.0.19) + * export-specific-uid - does gpg support exporting a key with a specific UID (true for gpg >= 2.2.8) + * supports-show-only - does gpg support --import-options show-only (true for gpg >= 2.1.14) + * handles-huge-keys - can gpg deal with huge keys without aborting (true for gpg >= 2.2.17) + * smartcard - does the library support smartcards + * + * @return: depending on featureName - Boolean unless specified differently: + * (true if feature is available / false otherwise) + * If the feature cannot be found, undefined is returned + */ + supportsFeature(featureName) { + return false; + } + + /** + * Return the key management functions (sub-API) + */ + getKeyManagement() { + return null; + } + + getTrustLabel(trustCode) { + return trustCode; + } +} diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/Makefile enigmail-2.2.4/package/cryptoAPI/Makefile --- enigmail-2.1.6+ds1/package/cryptoAPI/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/Makefile 2020-10-01 13:32:58.000000000 +0000 @@ -11,10 +11,10 @@ MODFILES = \ gnupg.js \ - gnupg-decryption.jsm \ + gnupg-agent.jsm \ + gnupg-core.jsm \ gnupg-keylist.jsm \ gnupg-key.jsm \ - openpgp-js.js \ interface.js GENFILES = $(addprefix $(GENDIR)/,$(MODFILES)) diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI/openpgp-js.js enigmail-2.2.4/package/cryptoAPI/openpgp-js.js --- enigmail-2.1.6+ds1/package/cryptoAPI/openpgp-js.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI/openpgp-js.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,183 +0,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 - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -//var EXPORTED_SYMBOLS = ["getOpenPGPjsAPI"]; - - -var Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; -const EnigmailLog = Cu.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLazy = Cu.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; - -const getOpenPGP = EnigmailLazy.loader("enigmail/openpgp.jsm", "EnigmailOpenPGP"); -const getArmor = EnigmailLazy.loader("enigmail/armor.jsm", "EnigmailArmor"); - -// Load generic API -Services.scriptloader.loadSubScript("chrome://enigmail/content/modules/cryptoAPI/interface.js", - null, "UTF-8"); /* global CryptoAPI */ - - -/** - * OpenPGP.js implementation of CryptoAPI - */ - -class OpenPGPjsCryptoAPI extends CryptoAPI { - constructor() { - super(); - this.api_name = "OpenPGP.js"; - } - - async getStrippedKey(armoredKey, emailAddr) { - EnigmailLog.DEBUG("openpgp-js.js: getStrippedKey()\n"); - - let searchUid = undefined; - if (emailAddr) { - if (emailAddr.search(/^<.{1,500}>$/) < 0) { - searchUid = `<${emailAddr}>`; - } else searchUid = emailAddr; - } - - try { - const openpgp = getOpenPGP().openpgp; - let msg = await openpgp.key.readArmored(armoredKey); - - if (!msg || msg.keys.length === 0) { - if (msg.err) { - EnigmailLog.writeException("openpgp-js.js", msg.err[0]); - } - return null; - } - - let key = msg.keys[0]; - let uid = await key.getPrimaryUser(null, searchUid); - if (!uid || !uid.user) return null; - - let signSubkey = await key.getSigningKey(); - let encSubkey = await key.getEncryptionKey(); - /* - let encSubkey = null, - signSubkey = null; - - for (let i = 0; i < key.subKeys.length; i++) { - if (key.subKeys[i].subKey === encSubkeyPacket) { - encSubkey = key.subKeys[i]; - break; - } - } - if (!encSubkey) return null; - - if (!signSubkeyPacket.keyid) { - for (let i = 0; i < key.subKeys.length; i++) { - if (key.subKeys[i].subKey === signSubkeyPacket) { - signSubkey = key.subKeys[i]; - break; - } - } - if (!signSubkey) return null; - } - */ - - let p = new openpgp.packet.List(); - p.push(key.primaryKey); - p.concat(uid.user.toPacketlist()); - if (key !== signSubkey) { - p.concat(signSubkey.toPacketlist()); - } - if (key !== encSubkey) { - p.concat(encSubkey.toPacketlist()); - } - - return p.write(); - } catch (ex) { - EnigmailLog.DEBUG("openpgp-js.js: getStrippedKey: ERROR " + ex.message + "\n" + ex.stack + "\n"); - } - return null; - } - - async getKeyListFromKeyBlock(keyBlockStr) { - return await this.OPENPGPjs_getKeyListFromKeyBlockkeyBlockStr(keyBlockStr); - } - - async OPENPGPjs_getKeyListFromKeyBlock(keyBlockStr) { - EnigmailLog.DEBUG("openpgp-js.js: getKeyListFromKeyBlock()\n"); - const EnigmailTime = ChromeUtils.import("chrome://enigmail/content/modules/time.jsm").EnigmailTime; - - const SIG_TYPE_REVOCATION = 0x20; - - let keyList = []; - let key = {}; - let blocks; - let isBinary = false; - const EOpenpgp = getOpenPGP(); - - if (keyBlockStr.search(/-----BEGIN PGP (PUBLIC|PRIVATE) KEY BLOCK-----/) >= 0) { - blocks = getArmor().splitArmoredBlocks(keyBlockStr); - } else { - isBinary = true; - blocks = [EOpenpgp.enigmailFuncs.bytesToArmor(EOpenpgp.openpgp.enums.armor.public_key, keyBlockStr)]; - } - - for (let b of blocks) { - let m = await EOpenpgp.openpgp.message.readArmored(b); - - for (let i = 0; i < m.packets.length; i++) { - let packetType = EOpenpgp.openpgp.enums.read(EOpenpgp.openpgp.enums.packet, m.packets[i].tag); - switch (packetType) { - case "publicKey": - case "secretKey": - key = { - id: m.packets[i].getKeyId().toHex().toUpperCase(), - fpr: m.packets[i].getFingerprint().toUpperCase(), - uids: [], - created: EnigmailTime.getDateTime(m.packets[i].getCreationTime().getTime()/1000, true, false), - name: null, - isSecret: false, - revoke: false - }; - - if (!(key.id in keyList)) { - keyList[key.id] = key; - } - - if (packetType === "secretKey") { - keyList[key.id].isSecret = true; - } - break; - case "userid": - if (!key.name) { - key.name = m.packets[i].userid.replace(/[\r\n]+/g, " "); - } - else { - key.uids.push(m.packets[i].userid.replace(/[\r\n]+/g, " ")); - } - break; - case "signature": - if (m.packets[i].signatureType === SIG_TYPE_REVOCATION) { - let keyId = m.packets[i].issuerKeyId.toHex().toUpperCase(); - if (keyId in keyList) { - keyList[keyId].revoke = true; - } else { - keyList[keyId] = { - revoke: true, - id: keyId - }; - } - } - break; - } - } - } - - return keyList; - } -} - - -function getOpenPGPjsAPI() { - return new OpenPGPjsCryptoAPI(); -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/cryptoAPI.jsm enigmail-2.2.4/package/cryptoAPI.jsm --- enigmail-2.1.6+ds1/package/cryptoAPI.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/cryptoAPI.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -12,15 +12,16 @@ var gCurrentApi = null; var Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; - function EnigmailCryptoAPI() { if (!gCurrentApi) { - const { - getGnuPGAPI - } = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg.js"); - - gCurrentApi = getGnuPGAPI(); + loadGnuPGApi(); } return gCurrentApi; } + +function loadGnuPGApi() { + const getGnuPGAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg.js").getGnuPGAPI; + + gCurrentApi = getGnuPGAPI(); +} diff -Nru enigmail-2.1.6+ds1/package/data.jsm enigmail-2.2.4/package/data.jsm --- enigmail-2.1.6+ds1/package/data.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/data.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -21,7 +21,7 @@ var EnigmailData = { getUnicodeData: function(data) { - // convert output from subprocess to Unicode + // convert output from 8-bit string to Unicode var tmpStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); tmpStream.setData(data, data.length); var inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); diff -Nru enigmail-2.1.6+ds1/package/decryption.jsm enigmail-2.2.4/package/decryption.jsm --- enigmail-2.1.6+ds1/package/decryption.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/decryption.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,431 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailDecryption"]; - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailArmor = ChromeUtils.import("chrome://enigmail/content/modules/armor.jsm").EnigmailArmor; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailHttpProxy = ChromeUtils.import("chrome://enigmail/content/modules/httpProxy.jsm").EnigmailHttpProxy; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -const EnigmailPassword = ChromeUtils.import("chrome://enigmail/content/modules/passwords.jsm").EnigmailPassword; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -const STATUS_ERROR = EnigmailConstants.BAD_SIGNATURE | EnigmailConstants.DECRYPTION_FAILED; -const STATUS_DECRYPTION_OK = EnigmailConstants.DECRYPTION_OKAY; -const STATUS_GOODSIG = EnigmailConstants.GOOD_SIGNATURE; - -const NS_WRONLY = 0x02; - -function statusObjectFrom(signatureObj, exitCodeObj, statusFlagsObj, keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj) { - return { - signature: signatureObj, - exitCode: exitCodeObj, - statusFlags: statusFlagsObj, - keyId: keyIdObj, - userId: userIdObj, - sigDetails: sigDetailsObj, - message: errorMsgObj, - blockSeparation: blockSeparationObj, - encToDetails: encToDetailsObj - }; -} - -function newStatusObject() { - return statusObjectFrom({ - value: "" - }, {}, {}, {}, {}, {}, {}, {}, {}); -} - -var EnigmailDecryption = { - isReady: function(win) { - return (EnigmailCore.getService(win)) && (!EnigmailKeyRing.isGeneratingKey()); - }, - - getFromAddr: function(win) { - var fromAddr; - if (win && win.gFolderDisplay && win.gFolderDisplay.selectedMessage) { - fromAddr = win.gFolderDisplay.selectedMessage.author; - try { - fromAddr = EnigmailFuncs.stripEmail(fromAddr); - if (fromAddr.search(/[a-zA-Z0-9]@.*[\(\)]/) >= 0) { - fromAddr = false; - } - } - catch (ex) { - fromAddr = false; - } - } - return fromAddr; - }, - - /** - * Decrypts a PGP ciphertext and returns the the plaintext - * - *in @parent a window object - *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 - *out @statusFlagsObj see status flags in nslEnigmail.idl, GOOD_SIGNATURE, BAD_SIGNATURE - *out @keyIdObj holds the key id - *out @userIdObj holds the user id - *out @sigDetailsObj - *out @errorMsgObj error string - *out @blockSeparationObj - *out @encToDetailsObj returns in details, which keys the mesage was encrypted for (ENC_TO entries) - * - * @return string plaintext ("" if error) - * - */ - decryptMessage: function(parent, uiFlags, cipherText, - signatureObj, exitCodeObj, - statusFlagsObj, keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, - blockSeparationObj, encToDetailsObj) { - const esvc = EnigmailCore.getEnigmailService(); - - EnigmailLog.DEBUG("decryption.jsm: decryptMessage(" + cipherText.length + " bytes, " + uiFlags + ")\n"); - - if (!cipherText) - return ""; - - var interactive = uiFlags & EnigmailConstants.UI_INTERACTIVE; - var allowImport = uiFlags & EnigmailConstants.UI_ALLOW_KEY_IMPORT; - var unverifiedEncryptedOK = uiFlags & EnigmailConstants.UI_UNVERIFIED_ENC_OK; - var oldSignature = signatureObj.value; - - EnigmailLog.DEBUG("decryption.jsm: decryptMessage: oldSignature=" + oldSignature + "\n"); - - signatureObj.value = ""; - exitCodeObj.value = -1; - statusFlagsObj.value = 0; - keyIdObj.value = ""; - userIdObj.value = ""; - errorMsgObj.value = ""; - - var beginIndexObj = {}; - var endIndexObj = {}; - var indentStrObj = {}; - var blockType = EnigmailArmor.locateArmoredBlock(cipherText, 0, "", beginIndexObj, endIndexObj, indentStrObj); - if (!blockType || blockType == "SIGNATURE") { - // return without displaying a message - return ""; - } - - var publicKey = (blockType == "PUBLIC KEY BLOCK"); - - var verifyOnly = (blockType == "SIGNED MESSAGE"); - - var pgpBlock = cipherText.substr(beginIndexObj.value, - endIndexObj.value - beginIndexObj.value + 1); - - if (indentStrObj.value) { - var indentRegexp = new RegExp("^" + indentStrObj.value, "gm"); - pgpBlock = pgpBlock.replace(indentRegexp, ""); - if (indentStrObj.value.substr(-1) == " ") { - var indentRegexpStr = "^" + indentStrObj.value.replace(/ $/m, "$"); - indentRegexp = new RegExp(indentRegexpStr, "gm"); - pgpBlock = pgpBlock.replace(indentRegexp, ""); - } - } - - // HACK to better support messages from Outlook: if there are empty lines, drop them - if (pgpBlock.search(/MESSAGE-----\r?\n\r?\nVersion/) >= 0) { - EnigmailLog.DEBUG("decryption.jsm: decryptMessage: apply Outlook empty line workaround\n"); - pgpBlock = pgpBlock.replace(/\r?\n\r?\n/g, "\n"); - } - - const head = ""; - var tail = cipherText.substr(endIndexObj.value + 1, - cipherText.length - endIndexObj.value - 1); - - if (publicKey) { - if (!allowImport) { - errorMsgObj.value = EnigmailLocale.getString("keyInMessageBody"); - statusFlagsObj.value |= EnigmailConstants.DISPLAY_MESSAGE; - statusFlagsObj.value |= EnigmailConstants.INLINE_KEY; - - return ""; - } - - // Import public key - exitCodeObj.value = EnigmailKeyRing.importKey(parent, true, pgpBlock, "", - errorMsgObj); - if (exitCodeObj.value === 0) { - statusFlagsObj.value |= EnigmailConstants.IMPORTED_KEY; - } - return ""; - } - - var newSignature = ""; - - if (verifyOnly) { - newSignature = EnigmailArmor.extractSignaturePart(pgpBlock, EnigmailConstants.SIGNATURE_ARMOR); - if (oldSignature && (newSignature != oldSignature)) { - EnigmailLog.ERROR("enigmail.js: Enigmail.decryptMessage: Error - signature mismatch " + newSignature + "\n"); - errorMsgObj.value = EnigmailLocale.getString("sigMismatch"); - statusFlagsObj.value |= EnigmailConstants.DISPLAY_MESSAGE; - - return ""; - } - } - - if (!EnigmailCore.getService(parent)) { - EnigmailLog.ERROR("decryption.jsm: decryptMessage: not yet initialized\n"); - errorMsgObj.value = EnigmailLocale.getString("notInit"); - statusFlagsObj.value |= EnigmailConstants.DISPLAY_MESSAGE; - return ""; - } - - if (EnigmailKeyRing.isGeneratingKey()) { - errorMsgObj.value = EnigmailLocale.getString("notComplete"); - statusFlagsObj.value |= EnigmailConstants.DISPLAY_MESSAGE; - return ""; - } - - // limit output to 100 times message size to avoid DoS attack - var maxOutput = pgpBlock.length * 100; - let keyserver = EnigmailPrefs.getPref("autoKeyRetrieve"); - let options = { - keyserver: keyserver, - keyserverProxy: EnigmailHttpProxy.getHttpProxy(keyserver), - fromAddr: EnigmailDecryption.getFromAddr(parent), - verifyOnly: verifyOnly, - noOutput: false, - maxOutputLength: maxOutput, - uiFlags: uiFlags - }; - const cApi = EnigmailCryptoAPI(); - let result = cApi.sync(cApi.decrypt(pgpBlock, options)); - EnigmailLog.DEBUG("decryption.jsm: decryptMessage: decryption finished\n"); - if (! result) { - return ""; - } - - var plainText = EnigmailData.getUnicodeData(result.decryptedData); - exitCodeObj.value = result.exitCode; - statusFlagsObj.value = result.statusFlags; - errorMsgObj.value = result.errorMsg; - - // do not return anything if gpg signales DECRYPTION_FAILED - // (which could be possible in case of MDC errors) - if ((uiFlags & EnigmailConstants.UI_IGNORE_MDC_ERROR) && - (result.statusFlags & EnigmailConstants.MISSING_MDC)) { - EnigmailLog.DEBUG("decryption.jsm: decryptMessage: ignoring MDC error\n"); - } - else if (result.statusFlags & EnigmailConstants.DECRYPTION_FAILED) { - plainText = ""; - } - - userIdObj.value = result.userId; - keyIdObj.value = result.keyId; - sigDetailsObj.value = result.sigDetails; - if (encToDetailsObj) { - encToDetailsObj.value = result.encToDetails; - } - blockSeparationObj.value = result.blockSeparation; - - if (tail.search(/\S/) >= 0) { - statusFlagsObj.value |= EnigmailConstants.PARTIALLY_PGP; - } - - - if (exitCodeObj.value === 0) { - // Normal return - - var doubleDashSeparator = false; - try { - doubleDashSeparator = EnigmailPrefs.getPrefBranch().getBoolPref("doubleDashSeparator"); - } - catch (ex) {} - - if (doubleDashSeparator && (plainText.search(/(\r|\n)-- +(\r|\n)/) < 0)) { - // Workaround for MsgCompose stripping trailing spaces from sig separator - plainText = plainText.replace(/(\r|\n)--(\r|\n)/, "$1-- $2"); - } - - statusFlagsObj.value |= EnigmailConstants.DISPLAY_MESSAGE; - - if (verifyOnly && indentStrObj.value) { - plainText = plainText.replace(/^/gm, indentStrObj.value); - } - - return EnigmailDecryption.inlineInnerVerification(parent, uiFlags, plainText, - statusObjectFrom(signatureObj, exitCodeObj, statusFlagsObj, keyIdObj, userIdObj, - sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj)); - } - - var pubKeyId = keyIdObj.value; - - if (statusFlagsObj.value & EnigmailConstants.BAD_SIGNATURE) { - if (verifyOnly && indentStrObj.value) { - // Probably replied message that could not be verified - errorMsgObj.value = EnigmailLocale.getString("unverifiedReply") + "\n\n" + errorMsgObj.value; - return ""; - } - - // Return bad signature (for checking later) - signatureObj.value = newSignature; - - } - else if (pubKeyId && - (statusFlagsObj.value & EnigmailConstants.UNVERIFIED_SIGNATURE)) { - - var innerKeyBlock; - if (verifyOnly) { - // Search for indented public key block in signed message - var innerBlockType = EnigmailArmor.locateArmoredBlock(pgpBlock, 0, "- ", beginIndexObj, endIndexObj, indentStrObj); - if (innerBlockType == "PUBLIC KEY BLOCK") { - - innerKeyBlock = pgpBlock.substr(beginIndexObj.value, - endIndexObj.value - beginIndexObj.value + 1); - - innerKeyBlock = innerKeyBlock.replace(/- -----/g, "-----"); - - statusFlagsObj.value |= EnigmailConstants.INLINE_KEY; - EnigmailLog.DEBUG("decryption.jsm: decryptMessage: innerKeyBlock found\n"); - } - } - - if (allowImport) { - - var importedKey = false; - - if (innerKeyBlock) { - var importErrorMsgObj = {}; - var exitStatus = EnigmailKeyRing.importKey(parent, true, innerKeyBlock, - pubKeyId, importErrorMsgObj); - - importedKey = (exitStatus === 0); - - if (exitStatus > 0) { - EnigmailDialog.alert(parent, EnigmailLocale.getString("cantImport") + importErrorMsgObj.value); - } - } - - if (importedKey) { - // Recursive call; note that EnigmailConstants.UI_ALLOW_KEY_IMPORT is unset - // to break the recursion - var uiFlagsDeep = interactive ? EnigmailConstants.UI_INTERACTIVE : 0; - signatureObj.value = ""; - return EnigmailDecryption.decryptMessage(parent, uiFlagsDeep, pgpBlock, - signatureObj, exitCodeObj, statusFlagsObj, - keyIdObj, userIdObj, sigDetailsObj, errorMsgObj); - } - - } - - if (plainText && !unverifiedEncryptedOK) { - // Append original PGP block to unverified message - plainText = "-----BEGIN PGP UNVERIFIED MESSAGE-----\r\n" + plainText + - "-----END PGP UNVERIFIED MESSAGE-----\r\n\r\n" + pgpBlock; - } - - } - - return verifyOnly ? "" : plainText; - }, - - inlineInnerVerification: function(parent, uiFlags, text, statusObject) { - EnigmailLog.DEBUG("decryption.jsm: inlineInnerVerification()\n"); - - if (text && text.indexOf("-----BEGIN PGP SIGNED MESSAGE-----") === 0) { - var status = newStatusObject(); - var newText = EnigmailDecryption.decryptMessage(parent, uiFlags, text, - status.signature, status.exitCode, status.statusFlags, status.keyId, status.userId, - status.sigDetails, status.message, status.blockSeparation, status.encToDetails); - if (status.exitCode.value === 0) { - text = newText; - // merge status into status object: - statusObject.statusFlags.value = statusObject.statusFlags.value | status.statusFlags.value; - statusObject.keyId.value = status.keyId.value; - statusObject.userId.value = status.userId.value; - statusObject.sigDetails.value = status.sigDetails.value; - statusObject.message.value = status.message.value; - // we don't merge encToDetails - } - } - - return text; - }, - - decryptAttachment: function(parent, outFile, displayName, byteData, - exitCodeObj, statusFlagsObj, errorMsgObj) { - const esvc = EnigmailCore.getEnigmailService(); - - EnigmailLog.DEBUG("decryption.jsm: decryptAttachment(parent=" + parent + ", outFileName=" + outFile.path + ")\n"); - - let attachmentHead = byteData.substr(0, 200); - if (attachmentHead.match(/-----BEGIN PGP \w{5,10} KEY BLOCK-----/)) { - // attachment appears to be a PGP key file - - if (EnigmailDialog.confirmDlg(parent, EnigmailLocale.getString("attachmentPgpKey", [displayName]), - EnigmailLocale.getString("keyMan.button.import"), EnigmailLocale.getString("dlg.button.view"))) { - - let preview = EnigmailKey.getKeyListFromKeyBlock(byteData, errorMsgObj); - exitCodeObj.keyList = preview; - let exitStatus = 0; - - if (errorMsgObj.value === "") { - if (preview.length > 0) { - if (preview.length == 1) { - exitStatus = EnigmailDialog.confirmDlg(parent, EnigmailLocale.getString("doImportOne", [preview[0].name, preview[0].id])); - } - else { - exitStatus = EnigmailDialog.confirmDlg(parent, - EnigmailLocale.getString("doImportMultiple", [ - preview.map(function(a) { - return "\t" + a.name + " (" + a.id + ")"; - }). - join("\n") - ])); - } - - if (exitStatus) { - exitCodeObj.value = EnigmailKeyRing.importKey(parent, false, byteData, "", errorMsgObj); - statusFlagsObj.value = EnigmailConstants.IMPORTED_KEY; - } - else { - exitCodeObj.value = 0; - statusFlagsObj.value = EnigmailConstants.DISPLAY_MESSAGE; - } - } - } - } - else { - exitCodeObj.value = 0; - statusFlagsObj.value = EnigmailConstants.DISPLAY_MESSAGE; - } - return true; - } - - //var outFileName = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(outFile.QueryInterface(Ci.nsIFile), NS_WRONLY)); - - const cApi = EnigmailCryptoAPI(); - let result = cApi.sync(cApi.decryptAttachment(byteData)); - - exitCodeObj.value = result.exitCode; - statusFlagsObj.value = result.statusFlags; - if (result.stdoutData.length > 0) { - return EnigmailFiles.writeFileContents(outFile, result.stdoutData); - } - - return false; - } -}; diff -Nru enigmail-2.1.6+ds1/package/dialog.jsm enigmail-2.2.4/package/dialog.jsm --- enigmail-2.1.6+ds1/package/dialog.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/dialog.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -111,7 +111,7 @@ win = EnigmailWindows.getBestParentWin(); } - win.openDialog("chrome://enigmail/content/ui/enigmailMsgBox.xul", "_blank", + win.openDialog("chrome://enigmail/content/ui/enigmailMsgBox.xhtml", "_blank", "chrome,dialog,modal,centerscreen,resizable,titlebar", { msgtext: mesg, checkboxLabel: checkboxLabel, @@ -162,7 +162,7 @@ win = EnigmailWindows.getBestParentWin(); } - win.openDialog("chrome://enigmail/content/ui/enigmailMsgBox.xul", "", + win.openDialog("chrome://enigmail/content/ui/enigmailMsgBox.xhtml", "", "chrome,dialog,modal,centerscreen,resizable", argsObj, result); if (argsObj.checkboxLabel) { diff -Nru enigmail-2.1.6+ds1/package/dns.jsm enigmail-2.2.4/package/dns.jsm --- enigmail-2.1.6+ds1/package/dns.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/dns.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,345 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * This module provides DNS query functionality via subprocesses. - * Supported record types: MX, SRV - * - * The following tools are currently supported: - * Windows: nslookup - * Unix/Linux: dig, kdig, host, nslookup - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailDns"]; - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; - -const RESTYPE_WIN_NLSOOKUP = 1; -const RESTYPE_UNIX_NLSOOKUP = 2; -const RESTYPE_DIG = 3; -const RESTYPE_HOST = 4; -const RESTYPE_NOT_AVAILABLE = 99; - -var gHandler = null, - gResolverExecutable = null; - -var EnigmailDns = { - /** - * Perform a DNS lookup - * - * @param {String} recordType: The resource record type to query. MX and SRV are currently supported. - * @param {String} queryName: The name to search for, e.g. "enigmail.net" - * - * @return {Promise}: array of server(s) handling - * - */ - lookup: async function(recordType, queryName) { - EnigmailLog.DEBUG(`dns.jsm: lookup(${recordType}, ${queryName})\n`); - if (!determineResolver()) return null; - - switch (recordType.toUpperCase()) { - case "MX": - case "SRV": - break; - default: - throw Components.results.NS_ERROR_NOT_IMPLEMENTED; - } - let dnsHandler = new gHandler(gResolverExecutable); - return dnsHandler.execute(recordType, queryName); - } -}; - -/** - * Determine the DNS resolver tool to use (e.g. dig, nslookup) - * - * @return {Boolean}: true: tool found / false: no tool found - */ - -function determineResolver() { - if (!gHandler) { - gHandler = GenericHandler; - if (EnigmailOS.isWin32) { - gResolverExecutable = EnigmailFiles.resolvePathWithEnv("nslookup"); - if (gResolverExecutable) { - EnigmailLog.DEBUG(`dns.jsm: determineResolver: executable = ${gResolverExecutable.path}\n`); - gHandler = NsLookupHandler_Windows; - } - } - else { - determineLinuxResolver(); - } - - if (!gResolverExecutable) EnigmailLog.DEBUG(`dns.jsm: determineResolver: no executable found\n`); - - } - - return gHandler !== GenericHandler; -} - - -function determineLinuxResolver() { - EnigmailLog.DEBUG(`dns.jsm: determineLinuxResolver()\n`); - const services = [{ - exe: "dig", - class: DigHandler - }, { - exe: "kdig", - class: DigHandler - }, { - exe: "host", - class: HostHandler - }, { - exe: "nslookup", - class: NsLookupHandler - }]; - - for (let i of services) { - gResolverExecutable = EnigmailFiles.resolvePathWithEnv(i.exe); - if (gResolverExecutable) { - EnigmailLog.DEBUG(`dns.jsm: determineLinuxResolver: found ${i.class.handlerType}\n`); - - gHandler = i.class; - return; - } - } -} - -/** - * Base class for executing DNS requests - */ -class GenericHandler { - constructor(handlerFile) { - this._handlerFile = handlerFile; - this.recordType = ""; - this.hostName = ""; - } - - getCmdArgs() { - return []; - } - - execute(recordType, hostName) { - return new Promise((resolve, reject) => { - - this.recordType = recordType.toUpperCase(); - this.hostName = hostName; - let args = this.getCmdArgs(); - - if (args.length === 0) { - resolve([]); - return; - } - - let stdoutData = "", - stderrData = ""; - let self = this; - - EnigmailLog.DEBUG(`dns.jsm: execute(): launching ${EnigmailFiles.formatCmdLine(this._handlerFile, args)}\n`); - - subprocess.call({ - command: this._handlerFile, - arguments: args, - environment: EnigmailCore.getEnvList(), - charset: null, - stdout: function(data) { - //EnigmailLog.DEBUG(`dns.jsm: execute.stdout: got data ${data}\n`); - stdoutData += data; - }, - stderr: function(data) { - //EnigmailLog.DEBUG(`dns.jsm: execute.stderr: got data ${data}\n`); - stderrData += data; - }, - done: function(result) { - EnigmailLog.DEBUG(`dns.jsm: execute.done(${result.exitCode})\n`); - try { - if (result.exitCode === 0) { - resolve(self.parseResult(stdoutData)); - } - else { - resolve([]); - } - } - catch (ex) { - reject(ex); - } - }, - mergeStderr: false - }); - }); - } - - parseResult() { - return []; - } -} - -/** - * Handler class for "dig" and "kdig" - */ -class DigHandler extends GenericHandler { - constructor(handlerFile) { - super(handlerFile); - this.handlerType = "dig"; - } - - getCmdArgs() { - return ["-t", this.recordType, "+short", this.hostName]; - } - - parseResult(stdoutData) { - let hosts = []; - let lines = stdoutData.split(/[\r\n]+/); - - if (this.recordType === "MX") { - for (let i = 0; i < lines.length; i++) { - let m = lines[i].match(/^(\d+ )(.*)\./); - - if (m && m.length >= 3) hosts.push(m[2]); - } - } - else if (this.recordType === "SRV") { - for (let i = 0; i < lines.length; i++) { - let m = lines[i].match(/^(\d+) (\d+) (\d+) ([^ ]+)\.$/); - - if (m && m.length >= 5) hosts.push(m[4] + ":" + m[3]); - } - } - - return hosts; - } -} - -/** - * Handler class for "host" - */ - -class HostHandler extends GenericHandler { - constructor(handlerFile) { - super(handlerFile); - this.handlerType = "host"; - } - - getCmdArgs() { - return ["-t", this.recordType, this.hostName]; - } - - parseResult(stdoutData) { - if (stdoutData.search(/3\(NXDOMAIN\)/) >= 0) return []; - - let hosts = []; - let lines = stdoutData.split(/[\r\n]+/); - - if (this.recordType === "MX") { - for (let i = 0; i < lines.length; i++) { - let m = lines[i].match(/^(.* )([^ ]+)\.$/); - - if (m && m.length >= 3) hosts.push(m[2]); - } - } - else if (this.recordType === "SRV") { - for (let i = 0; i < lines.length; i++) { - let m = lines[i].match(/^(.*) (\d+) ([^ ]+)\.$/); - - if (m && m.length >= 4) hosts.push(m[3] + ":" + m[2]); - } - } - - return hosts; - } -} - -/** - * Handler class for "nslookup" (on Linux/Unix) - */ - -class NsLookupHandler extends GenericHandler { - constructor(handlerFile) { - super(handlerFile); - this.handlerType = "nslookup"; - } - - getCmdArgs() { - return ["-type=" + this.recordType, this.hostName]; - } - - parseResult(stdoutData) { - let hosts = []; - let lines = stdoutData.split(/[\r\n]+/); - - if (lines.length > 3 && lines[3].search(/: NXDOMAIN/) > 0) return []; - - if (this.recordType === "MX") { - let reg = new RegExp("^" + this.hostName.toLowerCase() + "(.* )([^ \t]+.*[^\.])\\.?$"); - for (let i = 2; i < lines.length; i++) { - let m = lines[i].match(reg); - - if (m && m.length >= 3) hosts.push(m[2]); - if (lines[i].length < 5) break; - } - } - else if (this.recordType === "SRV") { - for (let i = 2; i < lines.length; i++) { - let m = lines[i].match(/^(.*) (\d+) ([^ ]+)\.$/); - - if (m && m.length >= 3) hosts.push(m[3] + ":" + m[2]); - if (lines[i].length < 5) break; - } - } - - return hosts; - } -} - -/** - * Handler class for "nslookup" on Windows - */ - -class NsLookupHandler_Windows extends NsLookupHandler { - - parseResult(stdoutData) { - let hosts = []; - let lines = stdoutData.split(/[\r\n]+/); - - if (this.recordType === "MX") { - let reg = new RegExp("^" + this.hostName.toLowerCase() + "(.* )([^ \t]+.*[^\.])\\.?$"); - for (let i = 2; i < lines.length; i++) { - let m = lines[i].match(reg); - - if (m && m.length >= 3) hosts.push(m[2]); - if (lines[i].length < 5) break; - } - } - else if (this.recordType === "SRV") { - let svc = null; - for (let i = 2; i < lines.length; i++) { - if (lines[i].search(/SRV service location:$/) > 0) { - svc = null; - continue; - } - - let m = lines[i].match(/^[\t ]+(port|svr hostname)([\t =]+)([^ \t]+)$/); - - if (m && m.length >= 4) { - if (m[1] === "port" && svc === null) { - svc = m[3]; - } - else if (m[1] === "svr hostname" && svc) { - hosts.push(m[3] + ":" + svc); - } - } - if (lines[i].length < 5) break; - } - } - - return hosts; - } -} diff -Nru enigmail-2.1.6+ds1/package/encryption.jsm enigmail-2.2.4/package/encryption.jsm --- enigmail-2.1.6+ds1/package/encryption.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/encryption.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,499 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailEncryption"]; - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailPassword = ChromeUtils.import("chrome://enigmail/content/modules/passwords.jsm").EnigmailPassword; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - - -const gMimeHashAlgorithms = [null, "sha1", "ripemd160", "sha256", "sha384", "sha512", "sha224", "md5"]; - -const ENC_TYPE_MSG = 0; -const ENC_TYPE_ATTACH_BINARY = 1; -const ENC_TYPE_ATTACH_ASCII = 2; - -const GPG_COMMENT_OPT = "Using GnuPG with %s - https://www.enigmail.net/"; - - -var EnigmailEncryption = { - getEncryptCommand: function(fromMailAddr, toMailAddr, bccMailAddr, hashAlgorithm, sendFlags, isAscii, errorMsgObj, - logFileObj) { - EnigmailLog.DEBUG("encryption.jsm: getEncryptCommand: hashAlgorithm=" + hashAlgorithm + "\n"); - - try { - fromMailAddr = EnigmailFuncs.stripEmail(fromMailAddr); - toMailAddr = EnigmailFuncs.stripEmail(toMailAddr); - bccMailAddr = EnigmailFuncs.stripEmail(bccMailAddr); - - } - catch (ex) { - errorMsgObj.value = EnigmailLocale.getString("invalidEmail"); - return null; - } - - var defaultSend = sendFlags & EnigmailConstants.SEND_DEFAULT; - var signMsg = sendFlags & EnigmailConstants.SEND_SIGNED; - var encryptMsg = sendFlags & EnigmailConstants.SEND_ENCRYPTED; - var usePgpMime = sendFlags & EnigmailConstants.SEND_PGP_MIME; - - var useDefaultComment = false; - try { - useDefaultComment = EnigmailPrefs.getPref("useDefaultComment"); - } - catch (ex) {} - - var hushMailSupport = false; - try { - hushMailSupport = EnigmailPrefs.getPref("hushMailSupport"); - } - catch (ex) {} - - var detachedSig = (usePgpMime || (sendFlags & EnigmailConstants.SEND_ATTACHMENT)) && signMsg && !encryptMsg; - - var toAddrList = toMailAddr.split(/\s*,\s*/); - var bccAddrList = bccMailAddr.split(/\s*,\s*/); - var k; - - var encryptArgs = EnigmailGpg.getStandardArgs(true); - - if (!useDefaultComment) - encryptArgs = encryptArgs.concat(["--comment", GPG_COMMENT_OPT.replace(/%s/, EnigmailApp.getName())]); - - var angledFromMailAddr = ((fromMailAddr.search(/^0x/) === 0) || hushMailSupport) ? - fromMailAddr : "<" + fromMailAddr + ">"; - angledFromMailAddr = angledFromMailAddr.replace(/(["'`])/g, "\\$1"); - - if (signMsg && hashAlgorithm) { - encryptArgs = encryptArgs.concat(["--digest-algo", hashAlgorithm]); - } - - if (logFileObj) { - logFileObj.value = EnigmailErrorHandling.getTempLogFile(); - encryptArgs.push("--log-file"); - encryptArgs.push(EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(logFileObj.value))); - } - - if (encryptMsg) { - switch (isAscii) { - case ENC_TYPE_MSG: - encryptArgs.push("-a"); - encryptArgs.push("-t"); - break; - case ENC_TYPE_ATTACH_ASCII: - encryptArgs.push("-a"); - } - - encryptArgs.push("--encrypt"); - - if (signMsg) - encryptArgs.push("--sign"); - - if (sendFlags & EnigmailConstants.SEND_ALWAYS_TRUST) { - encryptArgs.push("--trust-model"); - encryptArgs.push("always"); - } - if ((sendFlags & EnigmailConstants.SEND_ENCRYPT_TO_SELF) && fromMailAddr) - encryptArgs = encryptArgs.concat(["--encrypt-to", angledFromMailAddr]); - - for (k = 0; k < toAddrList.length; k++) { - toAddrList[k] = toAddrList[k].replace(/'/g, "\\'"); - if (toAddrList[k].length > 0) { - encryptArgs.push("-r"); - if (toAddrList[k].search(/^GROUP:/) === 0) { - // groups from gpg.conf file - encryptArgs.push(toAddrList[k].substr(6)); - } - else { - encryptArgs.push((hushMailSupport || (toAddrList[k].search(/^0x/) === 0)) ? toAddrList[k] : "<" + toAddrList[k] + ">"); - } - } - } - - for (k = 0; k < bccAddrList.length; k++) { - bccAddrList[k] = bccAddrList[k].replace(/'/g, "\\'"); - if (bccAddrList[k].length > 0) { - encryptArgs.push("--hidden-recipient"); - encryptArgs.push((hushMailSupport || (bccAddrList[k].search(/^0x/) === 0)) ? bccAddrList[k] : "<" + bccAddrList[k] + ">"); - } - } - - } - else if (detachedSig) { - encryptArgs = encryptArgs.concat(["-s", "-b"]); - - switch (isAscii) { - case ENC_TYPE_MSG: - encryptArgs = encryptArgs.concat(["-a", "-t"]); - break; - case ENC_TYPE_ATTACH_ASCII: - encryptArgs.push("-a"); - } - - } - else if (signMsg) { - encryptArgs = encryptArgs.concat(["-t", "--clearsign"]); - } - - if (fromMailAddr) { - encryptArgs = encryptArgs.concat(["-u", angledFromMailAddr]); - } - - return encryptArgs; - }, - - /** - * Determine if the sender key ID or user ID can be used for signing and/or encryption - * - * @param sendFlags: Number - the send Flags; need to contain SEND_SIGNED and/or SEND_ENCRYPTED - * @param fromMailAddr: String - the sender email address or key ID - * - * @return Object: - * - keyId: String - the found key ID, or null if fromMailAddr is not valid - * - errorMsg: String - the erorr message if key not valid, or null if key is valid - */ - determineOwnKeyUsability: function(sendFlags, fromMailAddr) { - EnigmailLog.DEBUG("encryption.jsm: determineOwnKeyUsability: sendFlags=" + sendFlags + ", sender=" + fromMailAddr + "\n"); - - let keyList = []; - let ret = { - keyId: null, - errorMsg: null - }; - - let sign = (sendFlags & EnigmailConstants.SEND_SIGNED ? true : false); - let encrypt = (sendFlags & EnigmailConstants.SEND_ENCRYPTED ? true : false); - - if (fromMailAddr.search(/^(0x)?[A-Z0-9]+$/) === 0) { - // key ID specified - let key = EnigmailKeyRing.getKeyById(fromMailAddr); - keyList.push(key); - } - else { - // email address specified - keyList = EnigmailKeyRing.getKeysByUserId(fromMailAddr); - } - - if (keyList.length === 0) { - ret.errorMsg = EnigmailLocale.getString("errorOwnKeyUnusable", fromMailAddr); - return ret; - } - - if (sign) { - keyList = keyList.reduce(function _f(p, keyObj) { - if (keyObj && keyObj.getSigningValidity().keyValid) p.push(keyObj); - return p; - }, []); - } - - if (encrypt) { - keyList = keyList.reduce(function _f(p, keyObj) { - if (keyObj && keyObj.getEncryptionValidity().keyValid) p.push(keyObj); - return p; - }, []); - } - - if (keyList.length === 0) { - if (sign) { - ret.errorMsg = EnigmailErrorHandling.determineInvSignReason(fromMailAddr); - } - else { - ret.errorMsg = EnigmailErrorHandling.determineInvRcptReason(fromMailAddr); - } - } - else { - ret.keyId = keyList[0].fpr; - } - - return ret; - }, - - encryptMessageStart: function(win, uiFlags, fromMailAddr, toMailAddr, bccMailAddr, - hashAlgorithm, sendFlags, listener, statusFlagsObj, errorMsgObj) { - EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: uiFlags=" + uiFlags + ", from " + fromMailAddr + " to " + toMailAddr + ", hashAlgorithm=" + hashAlgorithm + " (" + EnigmailData.bytesToHex( - EnigmailData.pack(sendFlags, 4)) + ")\n"); - - let keyUseability = this.determineOwnKeyUsability(sendFlags, fromMailAddr); - - if (!keyUseability.keyId) { - EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: own key invalid\n"); - errorMsgObj.value = keyUseability.errorMsg; - statusFlagsObj.value = EnigmailConstants.INVALID_RECIPIENT | EnigmailConstants.NO_SECKEY | EnigmailConstants.DISPLAY_MESSAGE; - - return null; - } - - var pgpMime = uiFlags & EnigmailConstants.UI_PGP_MIME; - - var hashAlgo = gMimeHashAlgorithms[EnigmailPrefs.getPref("mimeHashAlgorithm")]; - - if (hashAlgorithm) { - hashAlgo = hashAlgorithm; - } - - errorMsgObj.value = ""; - - if (!sendFlags) { - EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: NO ENCRYPTION!\n"); - errorMsgObj.value = EnigmailLocale.getString("notRequired"); - return null; - } - - if (!EnigmailCore.getService(win)) { - EnigmailLog.ERROR("encryption.jsm: encryptMessageStart: not yet initialized\n"); - errorMsgObj.value = EnigmailLocale.getString("notInit"); - return null; - } - - let logFileObj = {}; - let encryptArgs = EnigmailEncryption.getEncryptCommand(fromMailAddr, toMailAddr, bccMailAddr, hashAlgo, sendFlags, ENC_TYPE_MSG, errorMsgObj, logFileObj); - if (!encryptArgs) - return null; - - var signMsg = sendFlags & EnigmailConstants.SEND_SIGNED; - if (!listener) { - listener = {}; - } - if ("done" in listener) { - listener.outerDone = listener.done; - } - - listener.done = function(exitCode) { - EnigmailErrorHandling.appendLogFileToDebug(logFileObj.value); - if (this.outerDone) { - this.outerDone(exitCode); - } - }; - - var proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, encryptArgs, signMsg, win, listener, statusFlagsObj); - - if (statusFlagsObj.value & EnigmailConstants.MISSING_PASSPHRASE) { - EnigmailLog.ERROR("encryption.jsm: encryptMessageStart: Error - no passphrase supplied\n"); - - errorMsgObj.value = ""; - } - - if (pgpMime && errorMsgObj.value) { - EnigmailDialog.alert(win, errorMsgObj.value); - } - - return proc; - }, - - encryptMessageEnd: function(fromMailAddr, stderrStr, exitCode, uiFlags, sendFlags, outputLen, retStatusObj) { - EnigmailLog.DEBUG("encryption.jsm: encryptMessageEnd: uiFlags=" + uiFlags + ", sendFlags=" + EnigmailData.bytesToHex(EnigmailData.pack(sendFlags, 4)) + ", outputLen=" + outputLen + "\n"); - - var pgpMime = uiFlags & EnigmailConstants.UI_PGP_MIME; - var defaultSend = sendFlags & EnigmailConstants.SEND_DEFAULT; - var signMsg = sendFlags & EnigmailConstants.SEND_SIGNED; - var encryptMsg = sendFlags & EnigmailConstants.SEND_ENCRYPTED; - - retStatusObj.statusFlags = 0; - retStatusObj.errorMsg = ""; - retStatusObj.blockSeparation = ""; - - if (!EnigmailCore.getService().initialized) { - EnigmailLog.ERROR("encryption.jsm: encryptMessageEnd: not yet initialized\n"); - retStatusObj.errorMsg = EnigmailLocale.getString("notInit"); - return -1; - } - - EnigmailErrorHandling.parseErrorOutput(stderrStr, retStatusObj); - - exitCode = EnigmailExecution.fixExitCode(exitCode, retStatusObj); - if ((exitCode === 0) && !outputLen) { - exitCode = -1; - } - - if (exitCode !== 0 && (signMsg || encryptMsg)) { - // GnuPG might return a non-zero exit code, even though the message was correctly - // signed or encryped -> try to fix the exit code - - var correctedExitCode = 0; - if (signMsg) { - if (!(retStatusObj.statusFlags & EnigmailConstants.SIG_CREATED)) correctedExitCode = exitCode; - } - if (encryptMsg) { - if (!(retStatusObj.statusFlags & EnigmailConstants.END_ENCRYPTION)) correctedExitCode = exitCode; - } - exitCode = correctedExitCode; - } - - EnigmailLog.DEBUG("encryption.jsm: encryptMessageEnd: command execution exit code: " + exitCode + "\n"); - - if (retStatusObj.statusFlags & EnigmailConstants.DISPLAY_MESSAGE) { - if (retStatusObj.extendedStatus.search(/\bdisp:/) >= 0) { - retStatusObj.errorMsg = retStatusObj.statusMsg; - } - else { - if (fromMailAddr.search(/^0x/) === 0) { - fromMailAddr = fromMailAddr.substr(2); - } - if (fromMailAddr.search(/^[A-F0-9]{8,40}$/i) === 0) { - fromMailAddr = "[A-F0-9]+" + fromMailAddr; - } - - let s = new RegExp("^(\\[GNUPG:\\] )?INV_(RECP|SGNR) [0-9]+ (\\<|0x)?" + fromMailAddr + "\\>?", "m"); - if (retStatusObj.statusMsg.search(s) >= 0) { - retStatusObj.errorMsg += "\n\n" + EnigmailLocale.getString("keyError.resolutionAction"); - } - else if (retStatusObj.statusMsg.length > 0) { - retStatusObj.errorMsg = retStatusObj.statusMsg; - } - } - } - else if (retStatusObj.statusFlags & EnigmailConstants.INVALID_RECIPIENT) { - retStatusObj.errorMsg = retStatusObj.statusMsg; - } - else if (exitCode !== 0) { - retStatusObj.errorMsg = EnigmailLocale.getString("badCommand"); - } - - return exitCode; - }, - - encryptMessage: function(parent, uiFlags, plainText, fromMailAddr, toMailAddr, bccMailAddr, sendFlags, - exitCodeObj, statusFlagsObj, errorMsgObj) { - EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: " + plainText.length + " bytes from " + fromMailAddr + " to " + toMailAddr + " (" + sendFlags + ")\n"); - - exitCodeObj.value = -1; - statusFlagsObj.value = 0; - errorMsgObj.value = ""; - - if (!plainText) { - EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: NO ENCRYPTION!\n"); - exitCodeObj.value = 0; - EnigmailLog.DEBUG(" <=== encryptMessage()\n"); - return plainText; - } - - var defaultSend = sendFlags & EnigmailConstants.SEND_DEFAULT; - var signMsg = sendFlags & EnigmailConstants.SEND_SIGNED; - var encryptMsg = sendFlags & EnigmailConstants.SEND_ENCRYPTED; - - if (encryptMsg) { - // First convert all linebreaks to newlines - plainText = plainText.replace(/\r\n/g, "\n"); - plainText = plainText.replace(/\r/g, "\n"); - - // we need all data in CRLF according to RFC 4880 - plainText = plainText.replace(/\n/g, "\r\n"); - } - - var listener = EnigmailExecution.newSimpleListener( - function _stdin(pipe) { - pipe.write(plainText); - pipe.close(); - }, - function _done(exitCode) {}); - - - var proc = EnigmailEncryption.encryptMessageStart(parent, uiFlags, - fromMailAddr, toMailAddr, bccMailAddr, - null, sendFlags, - listener, statusFlagsObj, errorMsgObj); - if (!proc) { - exitCodeObj.value = -1; - EnigmailLog.DEBUG(" <=== encryptMessage()\n"); - return ""; - } - - // Wait for child pipes to close - proc.wait(); - - var retStatusObj = {}; - exitCodeObj.value = EnigmailEncryption.encryptMessageEnd(fromMailAddr, EnigmailData.getUnicodeData(listener.stderrData), listener.exitCode, - uiFlags, sendFlags, - listener.stdoutData.length, - retStatusObj); - - statusFlagsObj.value = retStatusObj.statusFlags; - statusFlagsObj.statusMsg = retStatusObj.statusMsg; - errorMsgObj.value = retStatusObj.errorMsg; - - - if ((exitCodeObj.value === 0) && listener.stdoutData.length === 0) - exitCodeObj.value = -1; - - if (exitCodeObj.value === 0) { - // Normal return - EnigmailLog.DEBUG(" <=== encryptMessage()\n"); - return EnigmailData.getUnicodeData(listener.stdoutData); - } - - // Error processing - EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: command execution exit code: " + exitCodeObj.value + "\n"); - return ""; - }, - - encryptAttachment: function(parent, fromMailAddr, toMailAddr, bccMailAddr, sendFlags, inFile, outFile, - exitCodeObj, statusFlagsObj, errorMsgObj) { - EnigmailLog.DEBUG("encryption.jsm: EnigmailEncryption.encryptAttachment infileName=" + inFile.path + "\n"); - - statusFlagsObj.value = 0; - sendFlags |= EnigmailConstants.SEND_ATTACHMENT; - - let asciiArmor = false; - try { - asciiArmor = EnigmailPrefs.getPrefBranch().getBoolPref("inlineAttachAsciiArmor"); - } - catch (ex) {} - - const asciiFlags = (asciiArmor ? ENC_TYPE_ATTACH_ASCII : ENC_TYPE_ATTACH_BINARY); - let args = EnigmailEncryption.getEncryptCommand(fromMailAddr, toMailAddr, bccMailAddr, "", sendFlags, asciiFlags, errorMsgObj); - - if (!args) { - return null; - } - - const signMessage = (sendFlags & EnigmailConstants.SEND_SIGNED); - - if (signMessage) { - args = args.concat(EnigmailPassword.command()); - } - - //const inFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(inFile.QueryInterface(Ci.nsIFile))); - const fileContents = EnigmailFiles.readBinaryFile(inFile.QueryInterface(Ci.nsIFile)); - const inFileName = inFile.QueryInterface(Ci.nsIFile).leafName; - const outFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(outFile.QueryInterface(Ci.nsIFile))); - - args = args.concat(["--yes", "-o", outFilePath, "--set-filename", inFileName]); - - let cmdErrorMsgObj = {}; - - const msg = EnigmailExecution.execCmd(EnigmailGpgAgent.agentPath, args, fileContents, exitCodeObj, statusFlagsObj, {}, cmdErrorMsgObj); - if (exitCodeObj.value !== 0) { - if (cmdErrorMsgObj.value) { - errorMsgObj.value = EnigmailFiles.formatCmdLine(EnigmailGpgAgent.agentPath, args); - errorMsgObj.value += "\n" + cmdErrorMsgObj.value; - } - else { - errorMsgObj.value = "An unknown error has occurred"; - } - - return ""; - } - - return msg; - } -}; diff -Nru enigmail-2.1.6+ds1/package/enigmailOverlays.jsm enigmail-2.2.4/package/enigmailOverlays.jsm --- enigmail-2.1.6+ds1/package/enigmailOverlays.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/enigmailOverlays.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -53,72 +53,11 @@ const overlays = { // main mail reading window "chrome://messenger/content/messenger.xul": [ - "columnOverlay.xul", { - // Overlay for Thunderbird - url: "messengerOverlay-tbird.xul", - application: "!postbox@postbox-inc.com" - }, { - // Overlay for Postbox - url: "messengerOverlay-pbx.xul", - application: "postbox@postbox-inc.com" - }, - "enigmailMessengerOverlay.xul", - "enigmailMsgHdrViewOverlay.xul" + "enigmailMessengerOverlay.xhtml" ], - - // single message reader window - "chrome://messenger/content/messageWindow.xul": [{ - // Overlay for Thunderbird - url: "messengerOverlay-tbird.xul", - application: "!postbox@postbox-inc.com" - }, { - // Overlay for Postbox - url: "messengerOverlay-pbx.xul", - application: "postbox@postbox-inc.com" - }, - "enigmailMessengerOverlay.xul", - "enigmailMsgHdrViewOverlay.xul" - ], - - "chrome://messenger/content/messengercompose/messengercompose.xul": [{ - // Overlay for Thunderbird - url: "enigmailMsgComposeOverlay.xul", - application: "!postbox@postbox-inc.com" - }, { - // Overlay for Postbox - url: "enigmailMsgComposeOverlay-pbx.xul", - application: "postbox@postbox-inc.com" - }], - - "chrome://messenger/content/FilterEditor.xul": [{ - // Overlay for TB 67+ - url: "enigmailFilterEditorOverlay.xul", - minGeckoVersion: "67.0a1" - }, { - // Overlay for TB <= 66 - url: "tb60FilterEditorOverlay.xul", - maxGeckoVersion: "66.0" - }], - "chrome://messenger/content/FilterListDialog.xul": ["enigmailFilterListOverlay.xul"], - "chrome://messenger/content/am-identity-edit.xul": [ - "enigmailAmIdEditOverlay.xul", - "enigmailEditIdentity.xul" - ], - "chrome://messenger/content/addressbook/addressbook.xul": ["enigmailAbCardViewOverlay.xul"], - "chrome://enigmail/content/ui/editSingleAccount.xul": ["enigmailEditIdentity.xul"], - - // Overlay for privacy preferences in Thunderbird - "chrome://messenger/content/preferences/preferences.xul": [{ - url: "enigmailPrivacyOverlay.xul", - application: "!postbox@postbox-inc.com" - }], - - // Overlay for Customize Toolbar (Windows, Linux) - "chrome://messenger/content/customizeToolbar.xul": ["enigmailCustToolOverlay.xul"], // TB 60+ - "chrome://global/content/customizeToolbar.xul": ["enigmailCustToolOverlay.xul"], // TB <= 52.x - - // Overlay for Account Manager - "chrome://messenger/content/AccountManager.xul": ["accountManagerOverlay.xul"] + "chrome://messenger/content/messenger.xhtml": [ + "enigmailMessengerOverlay.xhtml" + ] }; const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; diff -Nru enigmail-2.1.6+ds1/package/errorHandling.jsm enigmail-2.2.4/package/errorHandling.jsm --- enigmail-2.1.6+ds1/package/errorHandling.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/errorHandling.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -15,11 +15,10 @@ const EnigmailSystem = ChromeUtils.import("chrome://enigmail/content/modules/system.jsm").EnigmailSystem; const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; +const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; const getEnigmailKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing"); -const getEnigmailGpg = EnigmailLazy.loader("enigmail/gpg.jsm", "EnigmailGpg"); const getEnigmailFiles = EnigmailLazy.loader("enigmail/files.jsm", "EnigmailFiles"); -const getEnigmailRNG = EnigmailLazy.loader("enigmail/rng.jsm", "EnigmailRNG"); const gStatusFlags = { @@ -401,6 +400,8 @@ } function parseErrorLine(errLine, c) { + const cApi = EnigmailCryptoAPI(); + if (errLine.search(c.statusPat) === 0) { // status line c.statusLine = errLine.replace(c.statusPat, ""); @@ -415,7 +416,8 @@ } } else { // non-status line (details of previous status command) - if (!getEnigmailGpg().getGpgFeature("decryption-info")) { + + if (!cApi.supportsFeature("decryption-info")) { if (errLine == "gpg: WARNING: message was not integrity protected") { // workaround for Gpg < 2.0.19 that don't print DECRYPTION_INFO c.statusFlags |= EnigmailConstants.DECRYPTION_FAILED; @@ -525,7 +527,7 @@ inDecryption = 0; } else if (inDecryption >0) { m = c.statusArray[i].match(/^(PLAINTEXT [0-9]+ [0-9]+ )(.*)$/); - if (m && m.length >= 3) c.retStatusObj.encryptedFileName = m[2]; + if (m && m.length >= 3) c.retStatusObj.encryptedFileName = m[2]; } } @@ -618,7 +620,7 @@ getTempLogFile: function() { let logFile = getEnigmailFiles().getTempDirObj().clone(); logFile.normalize(); - logFile.append("gpgOutput." + getEnigmailRNG().generateRandomString(6)); + logFile.append("gpgOutput.tmp"); return logFile; }, @@ -639,4 +641,4 @@ } catch (ex) {} } } -}; \ No newline at end of file +}; diff -Nru enigmail-2.1.6+ds1/package/events.jsm enigmail-2.2.4/package/events.jsm --- enigmail-2.1.6+ds1/package/events.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/events.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailEvents"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; - -/**** DEPRECATED - use EnigmailTimer instead *****/ - -var EnigmailEvents = { - /** - * dispatch event aynchronously to the main thread - * - * @callbackFunction: Function - any function specification - * @sleepTimeMs: Number - optional number of miliseconds to delay - * (0 if not specified) - * @arrayOfArgs: Array - arguments to pass to callbackFunction - */ - dispatchEvent: function(callbackFunction, sleepTimeMs, arrayOfArgs) { - EnigmailLog.DEBUG("enigmailCommon.jsm: dispatchEvent f=" + callbackFunction.name + "\n"); - - return EnigmailTimer.setTimeout(() => { - callbackFunction(arrayOfArgs); - }, sleepTimeMs); - } -}; diff -Nru enigmail-2.1.6+ds1/package/files.jsm enigmail-2.2.4/package/files.jsm --- enigmail-2.1.6+ds1/package/files.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/files.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -339,6 +339,8 @@ * 3 - NOK: File object with required name exists but is not a directory */ ensureWritableDirectory: function(dirObj, permissions) { + lazyLog().DEBUG(`files.jsm: ensureWritableDirectory(${dirObj.path})\n`); + let retVal = -1; try { if (dirObj.isDirectory()) { diff -Nru enigmail-2.1.6+ds1/package/filters.jsm enigmail-2.2.4/package/filters.jsm --- enigmail-2.1.6+ds1/package/filters.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/filters.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,551 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailFilters"]; - -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailPersistentCrypto = ChromeUtils.import("chrome://enigmail/content/modules/persistentCrypto.jsm").EnigmailPersistentCrypto; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const NetUtil = ChromeUtils.import("resource://gre/modules/NetUtil.jsm").NetUtil; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); - -var gNewMailListenerInitiated = false; - -/** - * filter action for creating a decrypted version of the mail and - * deleting the original mail at the same time - */ - -const filterActionMoveDecrypt = { - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - - EnigmailLog.DEBUG("filters.jsm: filterActionMoveDecrypt: Move to: " + aActionValue + "\n"); - - var msgHdrs = []; - - for (var i = 0; i < aMsgHdrs.length; i++) { - msgHdrs.push(aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr)); - } - - EnigmailPersistentCrypto.dispatchMessages(msgHdrs, aActionValue, aListener, true); - }, - - isValidForType: function(type, scope) { - return true; - }, - - validateActionValue: function(value, folder, type) { - getDialog().alert(null, EnigmailLocale.getString("filter.decryptMove.warnExperimental")); - - if (value === "") { - return EnigmailLocale.getString("filter.folderRequired"); - } - - return null; - } -}; - -/** - * filter action for creating a decrypted copy of the mail, leaving the original - * message untouched - */ -const filterActionCopyDecrypt = { - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - EnigmailLog.DEBUG("filters.jsm: filterActionCopyDecrypt: Copy to: " + aActionValue + "\n"); - - var msgHdrs = []; - - for (var i = 0; i < aMsgHdrs.length; i++) { - msgHdrs.push(aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr)); - } - - EnigmailPersistentCrypto.dispatchMessages(msgHdrs, aActionValue, aListener, false); - }, - - isValidForType: function(type, scope) { - EnigmailLog.DEBUG("filters.jsm: filterActionCopyDecrypt.isValidForType(" + type + ")\n"); - - let r = true; - return r; - }, - - validateActionValue: function(value, folder, type) { - EnigmailLog.DEBUG("filters.jsm: filterActionCopyDecrypt.validateActionValue(" + value + ")\n"); - - if (value === "") { - return EnigmailLocale.getString("filter.folderRequired"); - } - - return null; - } -}; - -/** - * filter action for to encrypt a mail to a specific key - */ -const filterActionEncrypt = { - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - // Ensure KeyRing is loaded. - if (aMsgWindow) { - EnigmailCore.getService(aMsgWindow.domWindow); - } - else { - EnigmailCore.getService(); - } - EnigmailKeyRing.getAllKeys(); - - EnigmailLog.DEBUG("filters.jsm: filterActionEncrypt: Encrypt to: " + aActionValue + "\n"); - let keyObj = EnigmailKeyRing.getKeyById(aActionValue); - - if (keyObj === null) { - EnigmailLog.DEBUG("filters.jsm: failed to find key by id: " + aActionValue + "\n"); - let keyId = EnigmailKeyRing.getValidKeyForRecipient(aActionValue); - if (keyId) { - keyObj = EnigmailKeyRing.getKeyById(keyId); - } - } - - if (keyObj === null && aListener) { - EnigmailLog.DEBUG("filters.jsm: no valid key - aborting\n"); - - aListener.OnStartCopy(); - aListener.OnStopCopy(1); - - return; - } - - EnigmailLog.DEBUG("filters.jsm: key to encrypt to: " + JSON.stringify(keyObj) + ", userId: " + keyObj.userId + "\n"); - - var msgHdrs = []; - for (let i = 0; i < aMsgHdrs.length; i++) { - let msg = aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr); - // Maybe skip messages here if they are already encrypted to - // the target key? There might be some use case for unconditionally - // encrypting here. E.g. to use the local preferences and remove all - // other recipients. - // Also not encrypting to already encrypted messages would make the - // behavior less transparent as it's not obvious. - msgHdrs.push(msg); - } - - if (msgHdrs.length) { - EnigmailPersistentCrypto.dispatchMessages(msgHdrs, null /* same folder */ , aListener, - true /* move */ , keyObj /* target key */ ); - } - }, - - isValidForType: function(type, scope) { - return true; - }, - - validateActionValue: function(value, folder, type) { - // Initialize KeyRing. Ugly as it blocks the GUI but - // we need it. - EnigmailCore.getService(); - EnigmailKeyRing.getAllKeys(); - - EnigmailLog.DEBUG("filters.jsm: validateActionValue: Encrypt to: " + value + "\n"); - if (value === "") { - return EnigmailLocale.getString("filter.keyRequired"); - } - - let keyObj = EnigmailKeyRing.getKeyById(value); - - if (keyObj === null) { - EnigmailLog.DEBUG("filters.jsm: failed to find key by id. Looking for uid.\n"); - let keyId = EnigmailKeyRing.getValidKeyForRecipient(value); - if (keyId) { - keyObj = EnigmailKeyRing.getKeyById(keyId); - } - } - - if (keyObj === null) { - return EnigmailLocale.getString("filter.keyNotFound", [value]); - } - - if (!keyObj.secretAvailable) { - // We warn but we allow it. There might be use cases where - // thunderbird + enigmail is used as a gateway filter with - // the secret not available on one machine and the decryption - // is intended to happen on different systems. - getDialog().alert(null, EnigmailLocale.getString("filter.warn.keyNotSecret", [value])); - } - - return null; - } -}; - -function isPGPEncrypted(data) { - // We only check the first mime subpart for application/pgp-encrypted. - // If it is text/plain or text/html we look into that for the - // message marker. - // If there are no subparts we just look in the body. - // - // This intentionally does not match more complex cases - // with sub parts beeing encrypted etc. as auto processing - // these kinds of mails will be error prone and better not - // done through a filter - - var mimeTree = EnigmailMime.getMimeTree(data, true); - if (!(mimeTree.subParts.length)) { - // No subParts. Check for PGP Marker in Body - return mimeTree.body.indexOf('-----BEGIN PGP MESSAGE-----') >= 0; - } - - // Check the type of the first subpart. - var firstPart = mimeTree.subParts[0]; - var ct = firstPart.fullContentType; - if (typeof(ct) == "string") { - ct = ct.replace(/[\r\n]/g, " "); - // Proper PGP/MIME ? - if (ct.search(/application\/pgp-encrypted/i) >= 0) { - return true; - } - // Look into text/plain pgp messages and text/html messages. - if (ct.search(/text\/plain/i) >= 0 || - ct.search(/text\/html/i) >= 0) { - return firstPart.body.indexOf('-----BEGIN PGP MESSAGE-----') >= 0; - } - } - return false; -} - -/** - * filter term for OpenPGP Encrypted mail - */ -const filterTermPGPEncrypted = { - id: EnigmailConstants.FILTER_TERM_PGP_ENCRYPTED, - name: EnigmailLocale.getString("filter.term.pgpencrypted.label"), - needsBody: true, - match: function(aMsgHdr, searchValue, searchOp) { - var folder = aMsgHdr.folder; - var stream = folder.getMsgInputStream(aMsgHdr, {}); - - var messageSize = folder.hasMsgOffline(aMsgHdr.messageKey) ? aMsgHdr.offlineMessageSize : aMsgHdr.messageSize; - var scriptInput = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(); - var data; - try { - data = NetUtil.readInputStreamToString(stream, messageSize); - } - catch (ex) { - EnigmailLog.DEBUG("filters.jsm: filterTermPGPEncrypted: failed to get data.\n"); - // If we don't know better to return false. - stream.close(); - return false; - } - - var isPGP = isPGPEncrypted(data); - - stream.close(); - - return ((searchOp == Ci.nsMsgSearchOp.Is && isPGP) || - (searchOp == Ci.nsMsgSearchOp.Isnt && !isPGP)); - }, - - getEnabled: function(scope, op) { - return true; - }, - - getAvailable: function(scope, op) { - return true; - }, - - getAvailableOperators: function(scope, length) { - length.value = 2; - return [Ci.nsMsgSearchOp.Is, Ci.nsMsgSearchOp.Isnt]; - } -}; - -/** - * Add a custom filter action. If the filter already exists, do nothing - * (for example, if addon is disabled and re-enabled) - * - * @param filterObj - nsIMsgFilterCustomAction - */ -function addFilterIfNotExists(filterObj) { - let filterService = Cc["@mozilla.org/messenger/services/filters;1"].getService(Ci.nsIMsgFilterService); - - let foundFilter = null; - try { - foundFilter = filterService.getCustomAction(filterObj.id); - } - catch (ex) {} - - if (!foundFilter) { - EnigmailLog.DEBUG("filters.jsm: addFilterIfNotExists: " + filterObj.id + "\n"); - filterService.addCustomAction(filterObj); - } -} - -function initNewMailListener() { - EnigmailLog.DEBUG("filters.jsm: initNewMailListener()\n"); - - if (!gNewMailListenerInitiated) { - let notificationService = Cc["@mozilla.org/messenger/msgnotificationservice;1"] - .getService(Ci.nsIMsgFolderNotificationService); - notificationService.addListener(newMailListener, notificationService.msgAdded); - } - gNewMailListenerInitiated = true; -} - -function shutdownNewMailListener() { - EnigmailLog.DEBUG("filters.jsm: shutdownNewMailListener()\n"); - - if (gNewMailListenerInitiated) { - let notificationService = Cc["@mozilla.org/messenger/msgnotificationservice;1"] - .getService(Ci.nsIMsgFolderNotificationService); - notificationService.removeListener(newMailListener); - gNewMailListenerInitiated = false; - } -} - -function getIdentityForSender(senderEmail, msgServer) { - let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - - let identities = accountManager.getIdentitiesForServer(msgServer); - - for (let i = 0; i < identities.length; i++) { - let id = identities.queryElementAt(i, Ci.nsIMsgIdentity); - if (id.email.toLowerCase() === senderEmail.toLowerCase()) { - return id; - } - } - - return null; -} - -var consumerList = []; - - -function JsmimeEmitter(requireBody) { - this.requireBody = requireBody; - this.mimeTree = { - partNum: "", - headers: null, - body: "", - parent: null, - subParts: [] - }; - this.stack = []; - this.currPartNum = ""; -} - -JsmimeEmitter.prototype = { - - createPartObj: function(partNum, headers, parent) { - return { - partNum: partNum, - headers: headers, - body: "", - parent: parent, - subParts: [] - }; - }, - - getMimeTree: function() { - return this.mimeTree.subParts[0]; - }, - - /** JSMime API **/ - startMessage: function() { - this.currentPart = this.mimeTree; - }, - endMessage: function() {}, - - startPart: function(partNum, headers) { - EnigmailLog.DEBUG("filters.jsm: JsmimeEmitter.startPart: partNum=" + partNum + "\n"); - //this.stack.push(partNum); - let newPart = this.createPartObj(partNum, headers, this.currentPart); - - if (partNum.indexOf(this.currPartNum) === 0) { - // found sub-part - this.currentPart.subParts.push(newPart); - } - else { - // found same or higher level - this.currentPart.subParts.push(newPart); - } - this.currPartNum = partNum; - this.currentPart = newPart; - }, - - endPart: function(partNum) { - EnigmailLog.DEBUG("filters.jsm: JsmimeEmitter.startPart: partNum=" + partNum + "\n"); - this.currentPart = this.currentPart.parent; - }, - - deliverPartData: function(partNum, data) { - EnigmailLog.DEBUG("filters.jsm: JsmimeEmitter.deliverPartData: partNum=" + partNum + "\n"); - if (this.requireBody) { - if (typeof(data) === "string") { - this.currentPart.body += data; - } - else { - this.currentPart.body += EnigmailData.arrayBufferToString(data); - } - } - } -}; - -function processIncomingMail(url, requireBody, aMsgHdr) { - EnigmailLog.DEBUG("filters.jsm: processIncomingMail()\n"); - - let inputStream = EnigmailStreams.newStringStreamListener(msgData => { - let opt = { - strformat: "unicode", - bodyformat: "decode" - }; - - try { - let e = new JsmimeEmitter(requireBody); - let p = new jsmime.MimeParser(e, opt); - p.deliverData(msgData); - - - for (let c of consumerList) { - try { - c.consumeMessage(e.getMimeTree(), msgData, aMsgHdr); - } - catch (ex) { - EnigmailLog.DEBUG("filters.jsm: processIncomingMail: exception: " + ex.toString() + "\n"); - } - } - } - catch (ex) {} - }); - - try { - let channel = EnigmailStreams.createChannel(url); - channel.asyncOpen(inputStream, null); - } - catch (e) { - EnigmailLog.DEBUG("filters.jsm: processIncomingMail: open stream exception " + e.toString() + "\n"); - } -} - -function getRequireMessageProcessing(aMsgHdr) { - let isInbox = aMsgHdr.folder.getFlag(Ci.nsMsgFolderFlags.CheckNew) || aMsgHdr.folder.getFlag(Ci.nsMsgFolderFlags.Inbox); - let requireBody = false; - let inboxOnly = true; - let selfSentOnly = false; - let processReadMail = false; - - for (let c of consumerList) { - if (!c.incomingMailOnly) { - inboxOnly = false; - } - if (!c.unreadOnly) { - processReadMail = true; - } - if (!c.headersOnly) { - requireBody = true; - } - if (c.selfSentOnly) { - selfSentOnly = true; - } - } - - if (!processReadMail && aMsgHdr.isRead) return null; - if (inboxOnly && !isInbox) return null; - if (selfSentOnly) { - let sender = EnigmailFuncs.parseEmails(aMsgHdr.author, true); - let id = null; - if (sender && sender[0]) { - id = getIdentityForSender(sender[0].email, aMsgHdr.folder.server); - } - - if (!id) return null; - } - - EnigmailLog.DEBUG("filters.jsm: getRequireMessageProcessing: author: " + aMsgHdr.author + "\n"); - - let u = EnigmailCompat.getUrlFromUriSpec(aMsgHdr.folder.getUriForMsg(aMsgHdr)); - - if (! u) { - return null; - } - - let op = (u.spec.indexOf("?") > 0 ? "&" : "?"); - let url = u.spec + op + "header=enigmailFilter"; - - return { - url: url, - requireBody: requireBody - }; -} - -const newMailListener = { - msgAdded: function(aMsgHdr) { - EnigmailLog.DEBUG("filters.jsm: newMailListener.msgAdded() - got new mail in " + aMsgHdr.folder.prettiestName + "\n"); - - if (consumerList.length === 0) return; - - let ret = getRequireMessageProcessing(aMsgHdr); - if (ret) { - processIncomingMail(ret.url, ret.requireBody, aMsgHdr); - } - } -}; - -/** - messageStructure - Object: - - partNum: String - MIME part number - - headers: Object(nsIStructuredHeaders) - MIME part headers - - body: String or typedarray - the body part - - parent: Object(messageStructure) - link to the parent part - - subParts: Array of Object(messageStructure) - array of the sub-parts - */ - -var EnigmailFilters = { - onStartup: function() { - let filterService = Cc["@mozilla.org/messenger/services/filters;1"].getService(Ci.nsIMsgFilterService); - filterService.addCustomTerm(filterTermPGPEncrypted); - if (!EnigmailCompat.isPostbox()) { - initNewMailListener(); - } - }, - - onShutdown: function() { - shutdownNewMailListener(); - }, - - /** - * add a new consumer to listen to new mails - * - * @param consumer - Object - * - headersOnly: Boolean - needs full message body? [FUTURE] - * - incomingMailOnly: Boolean - only work on folder(s) that obtain new mail - * (Inbox and folders that listen to new mail) - * - unreadOnly: Boolean - only process unread mails - * - selfSentOnly: Boolean - only process mails with sender Email == Account Email - * - consumeMessage: function(messageStructure, rawMessageData, nsIMsgHdr) - */ - addNewMailConsumer: function(consumer) { - EnigmailLog.DEBUG("filters.jsm: addNewMailConsumer()\n"); - consumerList.push(consumer); - }, - - removeNewMailConsumer: function(consumer) { - - }, - - moveDecrypt: filterActionMoveDecrypt, - copyDecrypt: filterActionCopyDecrypt, - encrypt: filterActionEncrypt -}; diff -Nru enigmail-2.1.6+ds1/package/filtersWrapper.jsm enigmail-2.2.4/package/filtersWrapper.jsm --- enigmail-2.1.6+ds1/package/filtersWrapper.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/filtersWrapper.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailFiltersWrapper"]; - - - - - -var gNewMailListenerInitiated = false; -var gEnigmailFilters = null; - -let { - EnigmailConstants -} = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm"); -let { - EnigmailLocale -} = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm"); - -/** - * filter action for creating a decrypted version of the mail and - * deleting the original mail at the same time - */ - -const filterActionMoveDecrypt = { - id: EnigmailConstants.FILTER_MOVE_DECRYPT, - name: EnigmailLocale.getString("filter.decryptMove.label"), - value: "movemessage", - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - - if (gEnigmailFilters) { - gEnigmailFilters.moveDecrypt.apply(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow); - } - else { - aListener.OnStartCopy(); - aListener.OnStopCopy(0); - } - }, - - isValidForType: function(type, scope) { - return gEnigmailFilters ? gEnigmailFilters.moveDecrypt.isValidForType(type, scope) : false; - }, - - validateActionValue: function(value, folder, type) { - if (gEnigmailFilters) { - return gEnigmailFilters.moveDecrypt.validateActionValue(value, folder, type); - } - return null; - }, - - allowDuplicates: false, - isAsync: true, - needsBody: true -}; - -/** - * filter action for creating a decrypted copy of the mail, leaving the original - * message untouched - */ -const filterActionCopyDecrypt = { - id: EnigmailConstants.FILTER_COPY_DECRYPT, - name: EnigmailLocale.getString("filter.decryptCopy.label"), - value: "copymessage", - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - if (gEnigmailFilters) { - gEnigmailFilters.copyDecrypt.apply(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow); - } - else { - aListener.OnStartCopy(); - aListener.OnStopCopy(0); - } - }, - - isValidForType: function(type, scope) { - return gEnigmailFilters ? gEnigmailFilters.copyDecrypt.isValidForType(type, scope) : false; - }, - - validateActionValue: function(value, folder, type) { - if (gEnigmailFilters) { - return gEnigmailFilters.copyDecrypt.validateActionValue(value, folder, type); - } - return null; - }, - - allowDuplicates: false, - isAsync: true, - needsBody: true -}; - -/** - * filter action for to encrypt a mail to a specific key - */ -const filterActionEncrypt = { - id: EnigmailConstants.FILTER_ENCRYPT, - name: EnigmailLocale.getString("filter.encrypt.label"), - value: "encryptto", - apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) { - if (gEnigmailFilters) { - gEnigmailFilters.encrypt.apply(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow); - } - else { - aListener.OnStartCopy(); - aListener.OnStopCopy(0); - } - }, - - isValidForType: function(type, scope) { - return gEnigmailFilters ? gEnigmailFilters.encrypt.isValidForType() : false; - }, - - validateActionValue: function(value, folder, type) { - if (gEnigmailFilters) { - return gEnigmailFilters.encrypt.validateActionValue(value, folder, type); - } - return null; - - }, - - allowDuplicates: false, - isAsync: true, - needsBody: true -}; - - -/** - * Add a custom filter action. If the filter already exists, do nothing - * (for example, if addon is disabled and re-enabled) - * - * @param filterObj - nsIMsgFilterCustomAction - */ -function addFilterIfNotExists(filterObj) { - let filterService = Cc["@mozilla.org/messenger/services/filters;1"].getService(Ci.nsIMsgFilterService); - - let foundFilter = null; - try { - foundFilter = filterService.getCustomAction(filterObj.id); - } - catch (ex) {} - - if (!foundFilter) { - filterService.addCustomAction(filterObj); - } -} - -var EnigmailFiltersWrapper = { - onStartup: function() { - let { - EnigmailFilters - } = ChromeUtils.import("chrome://enigmail/content/modules/filters.jsm"); - gEnigmailFilters = EnigmailFilters; - - addFilterIfNotExists(filterActionMoveDecrypt); - addFilterIfNotExists(filterActionCopyDecrypt); - addFilterIfNotExists(filterActionEncrypt); - - gEnigmailFilters.onStartup(); - }, - - onShutdown: function() { - gEnigmailFilters.onShutdown(); - gEnigmailFilters = null; - } -}; diff -Nru enigmail-2.1.6+ds1/package/fixExchangeMsg.jsm enigmail-2.2.4/package/fixExchangeMsg.jsm --- enigmail-2.1.6+ds1/package/fixExchangeMsg.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/fixExchangeMsg.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,428 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailFixExchangeMsg"]; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; - -const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; - -/* - * Fix a broken message from MS-Exchange and replace it with the original message - * - * @param nsIMsgDBHdr hdr Header of the message to fix (= pointer to message) - * @param String brokenByApp Type of app that created the message. Currently one of - * exchange, iPGMail - * @param String destFolderUri optional destination Folder URI - * - * @return Promise; upon success, the promise returns the messageKey - */ -var EnigmailFixExchangeMsg = { - fixExchangeMessage: function(hdr, brokenByApp, destFolderUri) { - var self = this; - return new Promise( - function fixExchangeMessage_p(resolve, reject) { - - let msgUriSpec = hdr.folder.getUriForMsg(hdr); - EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: msgUriSpec: " + msgUriSpec + "\n"); - - self.hdr = hdr; - self.destFolder = hdr.folder; - self.resolve = resolve; - self.reject = reject; - self.brokenByApp = brokenByApp; - - if (destFolderUri) { - self.destFolder = EnigmailCompat.getExistingFolder(destFolderUri); - } - - - let messenger = Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - self.msgSvc = messenger.messageServiceFromURI(msgUriSpec); - - let p = self.getMessageBody(); - p.then( - function resolved(fixedMsgData) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: got fixedMsgData\n"); - if (self.checkMessageStructure(fixedMsgData)) { - self.copyToTargetFolder(fixedMsgData); - } else { - reject(); - } - }); - p.catch( - function rejected(reason) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: caught rejection: " + reason + "\n"); - reject(); - return; - }); - } - ); - }, - - getMessageBody: function() { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getMessageBody:\n"); - - var self = this; - - return new Promise( - function(resolve, reject) { - let url = EnigmailCompat.getUrlFromUriSpec(self.hdr.folder.getUriForMsg(self.hdr)); - - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getting data from URL " + url + "\n"); - - let s = EnigmailStreams.newStringStreamListener( - function analyzeData(data) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: analyzeDecryptedData: got " + data.length + " bytes\n"); - - if (EnigmailLog.getLogLevel() > 5) { - EnigmailLog.DEBUG("*** start data ***\n'" + data + "'\n***end data***\n"); - } - - try { - let msg = self.getRepairedMessage(data); - - if (msg) { - resolve(msg); - } else - reject(2); - return; - - } catch (ex) { - reject(ex); - } - } - ); - - var ioServ = Components.classes[IOSERVICE_CONTRACTID].getService(Components.interfaces.nsIIOService); - try { - let channel = EnigmailStreams.createChannel(url); - channel.asyncOpen(s, null); - } catch (e) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getMessageBody: exception " + e + "\n"); - } - } - ); - }, - - getRepairedMessage: function(data) { - this.determineCreatorApp(data); - - let hdrEnd = data.search(/\r?\n\r?\n/); - - if (hdrEnd <= 0) { - // cannot find end of header data - throw 0; - } - - let hdrLines = data.substr(0, hdrEnd).split(/\r?\n/); - let hdrObj = this.getFixedHeaderData(hdrLines); - - if (hdrObj.headers.length === 0 || hdrObj.boundary.length === 0) { - throw 1; - } - - let boundary = hdrObj.boundary; - let body; - - switch (this.brokenByApp) { - case "exchange": - body = this.getCorrectedExchangeBodyData(data.substr(hdrEnd + 2), boundary); - break; - case "iPGMail": - body = this.getCorrectediPGMailBodyData(data.substr(hdrEnd + 2), boundary); - break; - default: - EnigmailLog.ERROR("fixExchangeMsg.jsm: getRepairedMessage: unknown appType " + self.brokenByApp + "\n"); - throw 99; - } - - if (body) { - return hdrObj.headers + "\r\n" + body; - } else { - throw 2; - } - }, - - determineCreatorApp: function(msgData) { - // perform extra testing if iPGMail is assumed - if (this.brokenByApp === "exchange") return; - - let msgTree = EnigmailMime.getMimeTree(msgData, false); - - try { - let isIPGMail = - msgTree.subParts.length === 3 && - msgTree.subParts[0].headers.get("content-type").type.toLowerCase() === "text/plain" && - msgTree.subParts[1].headers.get("content-type").type.toLowerCase() === "application/pgp-encrypted" && - msgTree.subParts[2].headers.get("content-type").type.toLowerCase() === "text/plain"; - - if (!isIPGMail) { - this.brokenByApp = "exchange"; - } - } catch (x) {} - }, - - /** - * repair header data, such that they are working for PGP/MIME - * - * @return: object: { - * headers: String - all headers ready for appending to message - * boundary: String - MIME part boundary (incl. surrounding "" or '') - * } - */ - getFixedHeaderData: function(hdrLines) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getFixedHeaderData: hdrLines[]:'" + hdrLines.length + "'\n"); - let r = { - headers: "", - boundary: "" - }; - - for (let i = 0; i < hdrLines.length; i++) { - if (hdrLines[i].search(/^content-type:/i) >= 0) { - // Join the rest of the content type lines together. - // See RFC 2425, section 5.8.1 - let contentTypeLine = hdrLines[i]; - i++; - while (i < hdrLines.length) { - // Does the line start with a space or a tab, followed by something else? - if (hdrLines[i].search(/^[ \t]+?/) === 0) { - contentTypeLine += hdrLines[i]; - i++; - } else { - // we got the complete content-type header - contentTypeLine = contentTypeLine.replace(/[\r\n]/g, ""); - let h = EnigmailFuncs.getHeaderData(contentTypeLine); - r.boundary = h.boundary || ""; - break; - } - } - } else { - r.headers += hdrLines[i] + "\r\n"; - } - } - - r.boundary = r.boundary.replace(/^(['"])(.*)(['"])/, "$2"); - - r.headers += 'Content-Type: multipart/encrypted;\r\n' + - ' protocol="application/pgp-encrypted";\r\n' + - ' boundary="' + r.boundary + '"\r\n' + - 'X-Enigmail-Info: Fixed broken PGP/MIME message\r\n'; - - return r; - }, - - - /** - * Get corrected body for MS-Exchange messages - */ - getCorrectedExchangeBodyData: function(bodyData, boundary) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: boundary='" + boundary + "'\n"); - let boundRx = new RegExp("^--" + boundary, "gm"); - let match = boundRx.exec(bodyData); - - if (match.index < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find index of mime type to skip\n"); - return null; - } - - let skipStart = match.index; - // found first instance -- that's the message part to ignore - match = boundRx.exec(bodyData); - if (match.index <= 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find boundary of PGP/MIME version identification\n"); - return null; - } - - let versionIdent = match.index; - - if (bodyData.substring(skipStart, versionIdent).search(/^content-type:[ \t]*text\/(plain|html)/mi) < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: first MIME part is not content-type text/plain or text/html\n"); - return null; - } - - match = boundRx.exec(bodyData); - if (match.index < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find boundary of PGP/MIME encrypted data\n"); - return null; - } - - let encData = match.index; - let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - mimeHdr.initialize(bodyData.substring(versionIdent, encData)); - let ct = mimeHdr.extractHeader("content-type", false); - - if (!ct || ct.search(/application\/pgp-encrypted/i) < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: wrong content-type of version-identification\n"); - EnigmailLog.DEBUG(" ct = '" + ct + "'\n"); - return null; - } - - 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"); - EnigmailLog.DEBUG(" ct = '" + ct + "'\n"); - return null; - } - - return bodyData.substr(versionIdent); - }, - - - /** - * Get corrected body for iPGMail messages - */ - getCorrectediPGMailBodyData: function(bodyData, boundary) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: boundary='" + boundary + "'\n"); - let boundRx = new RegExp("^--" + boundary, "gm"); - let match = boundRx.exec(bodyData); - - if (match.index < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find index of mime type to skip\n"); - return null; - } - - let skipStart = match.index; - // found first instance -- that's the message part to ignore - match = boundRx.exec(bodyData); - if (match.index <= 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find boundary of text/plain msg part\n"); - return null; - } - - let encData = match.index; - - match = boundRx.exec(bodyData); - if (match.index < 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find end boundary of PGP/MIME encrypted data\n"); - return null; - } - - let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - - 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"); - EnigmailLog.DEBUG(" ct = '" + ct + "'\n"); - return null; - } - - return "--" + boundary + "\r\n" + - "Content-Type: application/pgp-encrypted\r\n" + - "Content-Description: PGP/MIME version identification\r\n\r\n" + - "Version: 1\r\n\r\n" + - bodyData.substring(encData, match.index).replace(/^Content-Type: +application\/pgp-encrypted/im, - "Content-Type: application/octet-stream") + - "--" + boundary + "--\r\n"; - }, - - checkMessageStructure: function(msgData) { - let msgTree = EnigmailMime.getMimeTree(msgData, true); - - try { - - // check message structure - let ok = - msgTree.headers.get("content-type").type.toLowerCase() === "multipart/encrypted" && - msgTree.headers.get("content-type").get("protocol").toLowerCase() === "application/pgp-encrypted" && - msgTree.subParts.length === 2 && - msgTree.subParts[0].headers.get("content-type").type.toLowerCase() === "application/pgp-encrypted" && - msgTree.subParts[1].headers.get("content-type").type.toLowerCase() === "application/octet-stream"; - - - if (ok) { - // check for existence of PGP Armor - let body = msgTree.subParts[1].body; - let p0 = body.search(/^-----BEGIN PGP MESSAGE-----$/m); - let p1 = body.search(/^-----END PGP MESSAGE-----$/m); - - ok = (p0 >= 0 && p1 > p0 + 32); - } - return ok; - } catch (x) {} - return false; - }, - - copyToTargetFolder: function(msgData) { - var self = this; - var tempFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("TmpD", Ci.nsIFile); - tempFile.append("message.eml"); - tempFile.createUnique(0, 0o600); - - // ensure that file gets deleted on exit, if something goes wrong ... - var extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher); - - var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); - foStream.init(tempFile, 2, 0x200, false); // open as "write only" - foStream.write(msgData, msgData.length); - foStream.close(); - - extAppLauncher.deleteTemporaryFileOnExit(tempFile); - - // note: nsIMsgFolder.copyFileMessage seems to have a bug on Windows, when - // the nsIFile has been already used by foStream (because of Windows lock system?), so we - // must initialize another nsIFile object, pointing to the temporary file - var fileSpec = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - fileSpec.initWithPath(tempFile.path); - - - var copyListener = { - QueryInterface: function(iid) { - if (iid.equals(Ci.nsIMsgCopyServiceListener) || iid.equals(Ci.nsISupports)) { - return this; - } - throw Components.results.NS_NOINTERFACE; - }, - msgKey: null, - GetMessageId: function(messageId) {}, - OnProgress: function(progress, progressMax) {}, - OnStartCopy: function() {}, - SetMessageKey: function(key) { - this.msgKey = key; - }, - OnStopCopy: function(statusCode) { - if (statusCode !== 0) { - EnigmailLog.DEBUG("fixExchangeMsg.jsm: error copying message: " + statusCode + "\n"); - try { - tempFile.remove(false); - } catch (ex) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Could not delete temp file\n"); - } - self.reject(3); - return; - } - EnigmailLog.DEBUG("fixExchangeMsg.jsm: copy complete\n"); - - EnigmailLog.DEBUG("fixExchangeMsg.jsm: deleting message key=" + self.hdr.messageKey + "\n"); - let msgArray = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray); - msgArray.appendElement(self.hdr, false); - - self.hdr.folder.deleteMessages(msgArray, null, true, false, null, false); - EnigmailLog.DEBUG("fixExchangeMsg.jsm: deleted original message\n"); - - try { - tempFile.remove(false); - } catch (ex) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Could not delete temp file\n"); - } - self.resolve(this.msgKey); - return; - } - }; - - EnigmailCompat.copyFileToMailFolder(fileSpec, this.destFolder, 0, this.hdr.flags, copyListener, null); - } -}; diff -Nru enigmail-2.1.6+ds1/package/funcs.jsm enigmail-2.2.4/package/funcs.jsm --- enigmail-2.1.6+ds1/package/funcs.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/funcs.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -472,22 +472,51 @@ }, /** - * Synchronize a promise + * Synchronize on a Promise: wait synchonously until a promise has completed and return + * the value that the promise returned. + * + * NOTE: just like await, this will throw an exception if the Promise fails with "reject" + * + * @param {Promise} promise: the promise to wait for + * + * @return {Variant} whatever the promise returns */ syncPromise: function(promise) { let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - let res = null; + let res = null, + isError = false; let p = promise.then(gotResult => { res = gotResult; inspector.exitNestedEventLoop(); }).catch(gotResult => { res = gotResult; + isError = true; inspector.exitNestedEventLoop(); }); inspector.enterNestedEventLoop(0); + if (isError) { + throw res; + } + return res; + }, + + /** + * Convert an array containing numbers into a Hexadecimal string + * + * @param {Array} arr: input array + * + * @return {String} Hex-String + */ + arrayToHex: function(arr) { + return arr.reduce((previousValue, i) => { + if (typeof(previousValue) === "number") { + previousValue = ("0" + previousValue.toString(16)).substr(-2); + } + return previousValue + ("0" + i.toString(16)).substr(-2); + }).toUpperCase(); } }; diff -Nru enigmail-2.1.6+ds1/package/glodaUtils.jsm enigmail-2.2.4/package/glodaUtils.jsm --- enigmail-2.1.6+ds1/package/glodaUtils.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/glodaUtils.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/* - This module is a shim module to make it easier to load - GlodaUtils from the various potential sources -*/ - -"use strict"; - -var EXPORTED_SYMBOLS = ["GlodaUtils"]; - -var GlodaUtils = null; - -try { - // TB with omnijar - GlodaUtils = ChromeUtils.import("resource:///modules/gloda/utils.js").GlodaUtils; -} -catch (ex) { - // "old style" TB - GlodaUtils = ChromeUtils.import("resource://app/modules/gloda/utils.js").GlodaUtils; -} - -// We don't define the exported symbol here - that is on purpose -// The goal of this module is simply to simplify loading of the component diff -Nru enigmail-2.1.6+ds1/package/gnupgUpdate.jsm enigmail-2.2.4/package/gnupgUpdate.jsm --- enigmail-2.1.6+ds1/package/gnupgUpdate.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/gnupgUpdate.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,218 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailGnuPGUpdate"]; - -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const InstallGnuPG = ChromeUtils.import("chrome://enigmail/content/modules/installGnuPG.jsm").InstallGnuPG; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailVersioning = ChromeUtils.import("chrome://enigmail/content/modules/versioning.jsm").EnigmailVersioning; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailOpenPGP = ChromeUtils.import("chrome://enigmail/content/modules/openpgp.jsm").EnigmailOpenPGP; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; - -var EnigmailGnuPGUpdate = { - isUpdateAvailable: async function() { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: isUpdateAvailable()\n`); - - if (!this.isGnuPGUpdatable()) return false; - - let now = Math.floor(Date.now() / 1000); - let lastCheck = Number(EnigmailPrefs.getPref("gpgLastUpdate")); - if (now > lastCheck) { - EnigmailPrefs.setPref("gpgLastUpdate", String(now)); - } - - let newVer = await InstallGnuPG.getAvailableInstaller(); - - if (newVer && EnigmailVersioning.greaterThan(newVer.gpgVersion, EnigmailGpg.agentVersion)) { - // new version is available - return true; - } - - return false; - }, - - isUpdateCheckNeeded: function() { - // check once a week - let now = Math.floor(Date.now() / 1000); - return (now > Number(EnigmailPrefs.getPref("gpgLastUpdate")) + 604800); - }, - - stopCheckingForUpdate: function() { - // set the last check date to Dec 31, 2299 - EnigmailPrefs.setPref("gpgLastUpdate", String(Math.floor(Date.parse('31 Dec 2299') / 1000))); - }, - - enableCheckingForUpdate: function() { - // set the last check date "now" - let now = Math.floor(Date.now() / 1000); - EnigmailPrefs.setPref("gpgLastUpdate", String(now)); - }, - - isAutoCheckEnabled: function() { - let farAway = Math.floor(Date.parse('31 Dec 2299') / 1000); - return Number(EnigmailPrefs.getPref("gpgLastUpdate")) < farAway; - }, - - - isGnuPGUpdatable: function() { - try { - switch (EnigmailOS.getOS()) { - case "Darwin": - return isGpgOsxInstalled(); - case "WINNT": - return isGpg4WinInstalled(); - } - } - catch (x) {} - - return false; - }, - - runUpdateCheck: function() { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: runUpdateCheck()\n`); - if (!this.isGnuPGUpdatable()) { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: runUpdateCheck: cannot update GnuPG\n`); - return; - } - if (!this.isUpdateCheckNeeded()) { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: runUpdateCheck: no checking needed\n`); - return; - } - - let self = this; - let timeoutSec = 300 + Math.floor(Math.random() * 1800); - - EnigmailLog.DEBUG(`gnupgUpdate.jsm: runUpdateCheck: check needed; waiting for ${timeoutSec} seconds\n`); - - EnigmailTimer.setTimeout(async function f() { - if (await self.isUpdateAvailable()) { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: runUpdateCheck: check available\n`); - let w = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; - w.openGnuPGUpdate(); - } - }, timeoutSec * 1000); - }, - - /** - * Is is required to upgrade the keyring from GnuPG 2.0 to 2.2 - * - * @return {Boolean}: true if upgrade required - */ - requireKeyRingUpgrade: function() { - return EnigmailVersioning.greaterThan("2.1", EnigmailGpg.agentVersion); - }, - - /** - * Perform Update of GnuPG. - * - * @param {Object} progressListener: same structure as InstallGnuPG progressListener - */ - performUpdate: function(progressListener) { - InstallGnuPG.startInstaller(progressListener); - }, - - /** - * Trigger conversion of GnuPG 2.0 keyring to GnuPG 2.2. - * - * This is done by (re-)reading the secret keys, after the file gpg-v21-migrated was deleted. - */ - triggerKeyringConversion: function() { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: importKeysFromOldGnupg()\n`); - - if (prepareKeyringConversion()) { - importKeysFromOldGnuPG(); - } - - EnigmailKeyRing.clearCache(); - EnigmailKeyRing.getAllKeys(); - } -}; - -function isGpg4WinInstalled() { - const reg = ["Software\\Gpg4win", "Software\\GNU\\Gpg4win", "Software\\WOW6432Node\\Gpg4win", "Software\\WOW6432Node\\GNU\\Gpg4win"]; - - for (let i in reg) { - let s = EnigmailOS.getWinRegistryString(reg[i], "Installer Language", Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE); - if (s.length > 0) return true; - } - - return false; -} - -function isGpgOsxInstalled() { - // check the installation path of GnuPG - return (EnigmailGpg.agentPath.path.search(/^\/usr\/local\/gnupg-2.[12]\//) === 0); -} - -/** - * Prepare conversion of keyring - * - * @return {Boolean}: true - need to import keys / false: key import not needed - */ -function prepareKeyringConversion() { - // delete gpg-v21-migrated in GnuPG profile if existing - EnigmailLog.DEBUG(`gnupgUpdate.jsm: prepareKeyringConversion()\n`); - let homeDir = EnigmailGpgAgent.getGpgHomeDir(); - let gpgHomeDir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(gpgHomeDir, homeDir); - - try { - let gpgMigrationFile = gpgHomeDir.clone(); - gpgMigrationFile.append("gpg-v21-migrated"); - - if (gpgMigrationFile.exists()) { - gpgMigrationFile.remove(false); - } - } - catch (ex) {} - - try { - // if pubring.kbx is present, then re-import all keys from pubring.gpg and secring.gpg - let pubring = gpgHomeDir.clone(); - pubring.append("pubring.kbx"); - - if (pubring.exists()) { - return true; - } - } - catch(ex) {} - - return false; -} - - -function importKeysFromOldGnuPG() { - EnigmailLog.DEBUG(`gnupgUpdate.jsm: importKeysFromOldGnuPG()\n`); - - let homeDir = EnigmailGpgAgent.getGpgHomeDir(); - let gpgHomeDir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(gpgHomeDir, homeDir); - - let keyRing = gpgHomeDir.clone(); - try { - keyRing.append("secring.gpg"); - if (keyRing.exists()) EnigmailKeyRing.importKeyFromFile(keyRing); - } - catch (ex) {} - - keyRing = gpgHomeDir.clone(); - try { - keyRing.append("pubring.gpg"); - if (keyRing.exists()) EnigmailKeyRing.importKeyFromFile(keyRing); - } - catch (ex) {} -} diff -Nru enigmail-2.1.6+ds1/package/gpgAgent.jsm enigmail-2.2.4/package/gpgAgent.jsm --- enigmail-2.1.6+ds1/package/gpgAgent.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/gpgAgent.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,780 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailGpgAgent"]; - - - -const ctypes = ChromeUtils.import("resource://gre/modules/ctypes.jsm").ctypes; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailPassword = ChromeUtils.import("chrome://enigmail/content/modules/passwords.jsm").EnigmailPassword; -const EnigmailSystem = ChromeUtils.import("chrome://enigmail/content/modules/system.jsm").EnigmailSystem; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const getEnigmailGpg = EnigmailLazy.loader("enigmail/gpg.jsm", "EnigmailGpg"); -const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); - - - - - -const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; -const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1"; -const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID = "@mozilla.org/network/file-output-stream;1"; - -const DEFAULT_FILE_PERMS = 0o600; - -// Making this a var makes it possible to test windows things on linux -var nsIWindowsRegKey = Ci.nsIWindowsRegKey; - -var gIsGpgAgent = -1; - -const DUMMY_AGENT_INFO = "none"; - -function cloneOrNull(v) { - if (v && typeof v.clone === "function") { - return v.clone(); - } - else { - return v; - } -} - -function extractAgentInfo(fullStr) { - if (fullStr) { - return fullStr. - replace(/[\r\n]/g, ""). - replace(/^.*=/, ""). - replace(/;.*$/, ""); - } - else { - return ""; - } -} - -function getHomedirFromParam(param) { - let i = param.search(/--homedir/); - if (i >= 0) { - param = param.substr(i + 9); - - let m = param.match(/^(\s*)([^\\]".+[^\\]")/); - if (m && m.length > 2) { - param = m[2].substr(1); - let j = param.search(/[^\\]"/); - return param.substr(1, j); - } - - m = param.match(/^(\s*)([^\\]'.+[^\\]')/); - if (m && m.length > 2) { - param = m[2].substr(1); - let j = param.search(/[^\\]'/); - return param.substr(1, j); - } - - m = param.match(/^(\s*)(\S+)/); - if (m && m.length > 2) { - return m[2]; - } - } - - return null; -} - -var EnigmailGpgAgent = { - agentType: "", - agentPath: null, - connGpgAgentPath: null, - gpgconfPath: null, - gpgAgentInfo: { - preStarted: false, - envStr: "" - }, - gpgAgentProcess: null, - gpgAgentIsOptional: true, - - isDummy: function() { - return EnigmailGpgAgent.gpgAgentInfo.envStr === DUMMY_AGENT_INFO; - }, - - resetGpgAgent: function() { - EnigmailLog.DEBUG("gpgAgent.jsm: resetGpgAgent\n"); - gIsGpgAgent = -1; - }, - - isCmdGpgAgent: function(pid) { - EnigmailLog.DEBUG("gpgAgent.jsm: isCmdGpgAgent:\n"); - - const environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let ret = false; - - let path = environment.get("PATH"); - if (!path || path.length === 0) { - path = "/bin:/usr/bin:/usr/local/bin"; - } - - const psCmd = EnigmailFiles.resolvePath("ps", path, false); - let outStr = ""; - - const proc = { - command: psCmd, - arguments: ["-o", "comm", "-p", pid], - environment: EnigmailCore.getEnvList(), - charset: null, - stdout: function(data) { - outStr += data; - } - }; - - try { - subprocess.call(proc).wait(); - - EnigmailLog.DEBUG("gpgAgent.jsm: isCmdGpgAgent: got data: '" + outStr + "'\n"); - var data = outStr.replace(/[\r\n]/g, " "); - if (data.search(/gpg-agent/) >= 0) { - ret = true; - } - } - catch (ex) {} - - return ret; - - }, - - isAgentTypeGpgAgent: function() { - // determine if the used agent is a gpg-agent - - EnigmailLog.DEBUG("gpgAgent.jsm: isAgentTypeGpgAgent:\n"); - - // to my knowledge there is no other agent than gpg-agent on Windows - if (EnigmailOS.getOS() == "WINNT") return true; - - if (gIsGpgAgent >= 0) { - return gIsGpgAgent == 1; - } - - let pid = -1; - let exitCode = -1; - let outStr = ""; - if (!EnigmailCore.getService()) return false; - - const proc = { - command: EnigmailGpgAgent.connGpgAgentPath, - arguments: [], - charset: null, - environment: EnigmailCore.getEnvList(), - stdin: function(pipe) { - pipe.write("/subst\n"); - pipe.write("/serverpid\n"); - pipe.write("/echo pid: ${get serverpid}\n"); - pipe.write("/bye\n"); - pipe.close(); - }, - stdout: function(data) { - outStr += data; - } - }; - - try { - exitCode = subprocess.call(proc).wait(); - if (exitCode) pid = -2; - - const data = outStr.replace(/[\r\n]/g, ""); - if (data.search(/^pid: [0-9]+$/) === 0) { - pid = data.replace(/^pid: /, ""); - } - } - catch (ex) {} - - EnigmailLog.DEBUG("gpgAgent.jsm: isAgentTypeGpgAgent: pid=" + pid + "\n"); - - EnigmailGpgAgent.isCmdGpgAgent(pid); - let isAgent = false; - - try { - isAgent = EnigmailGpgAgent.isCmdGpgAgent(pid); - gIsGpgAgent = isAgent ? 1 : 0; - } - catch (ex) {} - - return isAgent; - }, - - getAgentMaxIdle: function() { - EnigmailLog.DEBUG("gpgAgent.jsm: getAgentMaxIdle:\n"); - let maxIdle = -1; - - if (!EnigmailCore.getService()) return maxIdle; - - const DEFAULT = 7; - const CFGVALUE = 9; - let outStr = ""; - - const proc = { - command: EnigmailGpgAgent.gpgconfPath, - arguments: ["--list-options", "gpg-agent"], - charset: null, - environment: EnigmailCore.getEnvList(), - stdout: function(data) { - outStr += data; - } - }; - - subprocess.call(proc).wait(); - - const lines = outStr.split(/[\r\n]/); - - for (let i = 0; i < lines.length; i++) { - EnigmailLog.DEBUG("gpgAgent.jsm: getAgentMaxIdle: line: " + lines[i] + "\n"); - - if (lines[i].search(/^default-cache-ttl:/) === 0) { - const m = lines[i].split(/:/); - if (m[CFGVALUE].length === 0) { - maxIdle = Math.round(m[DEFAULT] / 60); - } - else { - maxIdle = Math.round(m[CFGVALUE] / 60); - } - - break; - } - } - return maxIdle; - }, - - setAgentMaxIdle: function(idleMinutes) { - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle:\n"); - if (!EnigmailCore.getService()) return; - - const RUNTIME = 8; - - const proc = { - command: EnigmailGpgAgent.gpgconfPath, - arguments: ["--runtime", "--change-options", "gpg-agent"], - environment: EnigmailCore.getEnvList(), - charset: null, - mergeStderr: true, - stdin: function(pipe) { - pipe.write("default-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 60) + "\n"); - pipe.write("max-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 600) + "\n"); - pipe.close(); - }, - stdout: function(data) { - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle.stdout: " + data + "\n"); - } - }; - - try { - let exitCode = subprocess.call(proc); - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle.stdout: gpgconf exitCode=" + exitCode + "\n"); - } - catch (ex) { - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle: exception: " + ex.toString() + "\n"); - } - }, - - getMaxIdlePref: function(win) { - let maxIdle = EnigmailPrefs.getPref("maxIdleMinutes"); - - try { - if (EnigmailCore.getService(win)) { - if (EnigmailGpgAgent.gpgconfPath && - EnigmailGpgAgent.connGpgAgentPath) { - - if (EnigmailGpgAgent.isAgentTypeGpgAgent()) { - const m = EnigmailGpgAgent.getAgentMaxIdle(); - if (m > -1) maxIdle = m; - } - } - } - } - catch (ex) {} - - return maxIdle; - }, - - setMaxIdlePref: function(minutes) { - EnigmailPrefs.setPref("maxIdleMinutes", minutes); - - if (EnigmailGpgAgent.isAgentTypeGpgAgent()) { - try { - EnigmailGpgAgent.setAgentMaxIdle(minutes); - } - catch (ex) {} - } - }, - - /** - * Determine the "gpg home dir", i.e. the directory where gpg.conf and the keyring are - * stored using the "additional parameter" and gpgconf. - * - * @return String - directory name, or NULL (in case the command did not succeed) - */ - getGpgHomeDir: function() { - - let param = EnigmailPrefs.getPref("agentAdditionalParam"); - - if (param) { - let hd = getHomedirFromParam(param); - - if (hd) return hd; - } - - if (EnigmailGpgAgent.gpgconfPath === null) return null; - - const command = EnigmailGpgAgent.gpgconfPath; - let args = ["--list-dirs"]; - - let exitCode = -1; - let outStr = ""; - EnigmailLog.DEBUG("gpgAgent.jsm: getGpgHomeDir: calling subprocess with '" + command.path + "'\n"); - - EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); - - const proc = { - command: command, - arguments: args, - environment: EnigmailCore.getEnvList(), - charset: null, - stdout: function(data) { - outStr += data; - }, - mergeStderr: false - }; - - try { - exitCode = subprocess.call(proc).wait(); - } - catch (ex) { - EnigmailLog.ERROR("gpgAgent.jsm: getGpgHomeDir: subprocess.call failed with '" + ex.toString() + "'\n"); - EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n"); - throw ex; - } - - let m = outStr.match(/^(homedir:)(.*)$/mi); - if (m && m.length > 2) { - return EnigmailData.convertGpgToUnicode(unescape(m[2])); - } - - return null; - }, - - /** - * @param domWindow: Object - parent window, may be NULL - * @param esvc: Object - Enigmail service object - * @param preferredPath: String - try to use specific path to locate gpg - */ - setAgentPath: function(domWindow, esvc, preferredPath) { - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentPath()\n"); - let agentPath = ""; - try { - if (preferredPath) { - agentPath = preferredPath; - } - else { - agentPath = EnigmailPrefs.getPrefBranch().getCharPref("agentPath"); - } - } - catch (ex) {} - - var agentType = "gpg"; - var agentName = ""; - - EnigmailGpgAgent.resetGpgAgent(); - - if (agentPath) { - // Locate GnuPG executable - - // Append default .exe extension for DOS-Like systems, if needed - if (EnigmailOS.isDosLike && (agentPath.search(/\.\w+$/) < 0)) { - agentPath += ".exe"; - } - - try { - let pathDir = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - - if (!EnigmailFiles.isAbsolutePath(agentPath, EnigmailOS.isDosLike)) { - // path relative to Mozilla installation dir - const ds = Cc[DIR_SERV_CONTRACTID].getService(); - const dsprops = ds.QueryInterface(Ci.nsIProperties); - pathDir = dsprops.get("CurProcD", Ci.nsIFile); - - const dirs = agentPath.split(new RegExp(EnigmailOS.isDosLike ? "\\\\" : "/")); - for (let i = 0; i < dirs.length; i++) { - if (dirs[i] != ".") { - pathDir.append(dirs[i]); - } - } - if (pathDir.exists()) { - pathDir.normalize(); - } - } - else { - // absolute path - EnigmailFiles.initPath(pathDir, agentPath); - } - if (!(pathDir.isFile() /* && pathDir.isExecutable()*/ )) { - throw Components.results.NS_ERROR_FAILURE; - } - agentPath = pathDir.QueryInterface(Ci.nsIFile); - - } - catch (ex) { - esvc.initializationError = EnigmailLocale.getString("gpgNotFound", [agentPath]); - EnigmailLog.ERROR("gpgAgent.jsm: initialize: Error - " + esvc.initializationError + "\n"); - throw Components.results.NS_ERROR_FAILURE; - } - } - else { - agentPath = this.resolveGpgPath(esvc.environment); - if (!agentPath) { - esvc.initializationError = EnigmailLocale.getString("gpgNotInPath"); - EnigmailLog.ERROR("gpgAgent.jsm: Error - " + esvc.initializationError + "\n"); - throw Components.results.NS_ERROR_FAILURE; - } - } - - agentPath.normalize(); // replace a/../b with b - EnigmailLog.CONSOLE("EnigmailAgentPath=" + EnigmailFiles.getFilePathDesc(agentPath) + "\n\n"); - - EnigmailGpgAgent.agentType = agentType; - EnigmailGpgAgent.agentPath = agentPath; - getEnigmailGpg().setAgentPath(agentPath); - EnigmailExecution.agentType = agentType; - - const command = agentPath; - let args = []; - if (agentType == "gpg") { - args = ["--batch", "--no-tty", "--charset", "utf-8", "--display-charset", "utf-8", "--version", "--version"]; - } - - let exitCode = -1; - let outStr = ""; - let errStr = ""; - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentPath: calling subprocess with '" + command.path + "'\n"); - - EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); - - const proc = { - command: command, - arguments: args, - environment: EnigmailCore.getEnvList(), - charset: null, - stdout: function(data) { - outStr += data; - }, - stderr: function(data) { - errStr += data; - }, - mergeStderr: false - }; - - try { - exitCode = subprocess.call(proc).wait(); - } - catch (ex) { - EnigmailLog.ERROR("gpgAgent.jsm: setAgentPath: subprocess.call failed with '" + ex.toString() + "'\n"); - EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n"); - throw ex; - } - EnigmailLog.DEBUG(" enigmail> DONE\n"); - - outStr = EnigmailSystem.convertNativeToUnicode(outStr); - - if (exitCode !== 0) { - EnigmailLog.ERROR("gpgAgent.jsm: setAgentPath: gpg failed with exitCode " + exitCode + " msg='" + outStr + " " + errStr + "'\n"); - throw Components.results.NS_ERROR_FAILURE; - } - - EnigmailLog.CONSOLE(outStr + "\n"); - - // detection for Gpg4Win wrapper - if (outStr.search(/^gpgwrap.*;/) === 0) { - const outLines = outStr.split(/[\n\r]+/); - const firstLine = outLines[0]; - outLines.splice(0, 1); - outStr = outLines.join("\n"); - agentPath = firstLine.replace(/^.*;[ \t]*/, ""); - - EnigmailLog.CONSOLE("gpg4win-gpgwrapper detected; EnigmailAgentPath=" + agentPath + "\n\n"); - } - - const versionParts = outStr.replace(/[\r\n].*/g, "").replace(/ *\(gpg4win.*\)/i, "").split(/ /); - const gpgVersion = versionParts[versionParts.length - 1]; - - EnigmailLog.DEBUG("gpgAgent.jsm: detected GnuPG version '" + gpgVersion + "'\n"); - getEnigmailGpg().agentVersion = gpgVersion; - - if (!getEnigmailGpg().getGpgFeature("version-supported")) { - if (!domWindow) { - domWindow = EnigmailWindows.getBestParentWin(); - } - getDialog().alert(domWindow, EnigmailLocale.getString("oldGpgVersion20", [gpgVersion, getEnigmailGpg().getMinimumGpgVersion()])); - throw Components.results.NS_ERROR_FAILURE; - } - - EnigmailGpgAgent.gpgconfPath = EnigmailGpgAgent.resolveToolPath("gpgconf"); - EnigmailGpgAgent.connGpgAgentPath = EnigmailGpgAgent.resolveToolPath("gpg-connect-agent"); - - EnigmailGpgAgent.checkGpgHomeDir(domWindow, esvc); - - EnigmailLog.DEBUG("gpgAgent.jsm: setAgentPath: gpgconf found: " + (EnigmailGpgAgent.gpgconfPath ? "yes" : "no") + "\n"); - }, - - - /** - * Determine the location of the GnuPG executable - * - * @param env: Object: nsIEnvironment to use - * - * @return Object: nsIFile pointing to gpg, or NULL - */ - resolveGpgPath: function(env) { - EnigmailLog.DEBUG("gpgAgent.jsm: resolveGpgPath()\n"); - - let agentName = ""; - if (EnigmailOS.isDosLike) { - agentName = "gpg2.exe;gpg.exe"; - } - else { - agentName = "gpg2;gpg"; - } - - // Resolve relative path using PATH environment variable - const envPath = env.get("PATH"); - let agentPath = EnigmailFiles.resolvePath(agentName, envPath, EnigmailOS.isDosLike); - - if (!agentPath && EnigmailOS.isDosLike) { - // DOS-like systems: search for GPG in c:\gnupg, c:\gnupg\bin, d:\gnupg, d:\gnupg\bin - let gpgPath = "c:\\gnupg;c:\\gnupg\\bin;d:\\gnupg;d:\\gnupg\\bin"; - agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); - } - - if ((!agentPath) && EnigmailOS.isWin32) { - // Look up in Windows Registry - const installDir = ["Software\\GNU\\GNUPG", "Software\\GNUPG"]; - - try { - for (let i = 0; i < installDir.length && !agentPath; i++) { - let gpgPath = EnigmailOS.getWinRegistryString(installDir[i], "Install Directory", nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE); - - agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike()); - if (!agentPath) { - gpgPath += "\\bin"; - agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike()); - } - } - } - catch (ex) {} - - if (!agentPath) { - // try to determine the default PATH from the registry after the installation - // if we could not get any information from the registry - try { - let winPath = EnigmailOS.getWinRegistryString("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", "Path", nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE); - agentPath = EnigmailFiles.resolvePath(agentName, winPath, EnigmailOS.isDosLike); - } - catch (ex) {} - } - - if (!agentPath) { - // default for gpg4win 3.0 - let gpgPath = "C:\\Program Files\\GnuPG\\bin;C:\\Program Files (x86)\\GnuPG\\bin"; - agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); - } - } - - if (!agentPath && !EnigmailOS.isDosLike) { - // Unix-like systems: check /usr/bin and /usr/local/bin - let gpgPath = "/usr/bin:/usr/local/bin"; - agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike); - } - - if (!agentPath) { - return null; - } - - return agentPath.QueryInterface(Ci.nsIFile); - }, - - // resolve the path for GnuPG helper tools - resolveToolPath: function(fileName) { - let filePath = cloneOrNull(EnigmailGpgAgent.agentPath); - - if (filePath) { - // try to get the install directory of gpg/gpg2 executable - filePath.normalize(); - filePath = filePath.parent; - } - - if (filePath) { - filePath.append(EnigmailFiles.potentialWindowsExecutable(fileName)); - if (filePath.exists()) { - filePath.normalize(); - return filePath; - } - } - - return EnigmailFiles.resolvePathWithEnv(fileName); - }, - - detectGpgAgent: function(domWindow, esvc) { - EnigmailLog.DEBUG("gpgAgent.jsm: detectGpgAgent\n"); - - var gpgAgentInfo = esvc.environment.get("GPG_AGENT_INFO"); - if (gpgAgentInfo && gpgAgentInfo.length > 0) { - EnigmailLog.DEBUG("gpgAgent.jsm: detectGpgAgent: GPG_AGENT_INFO variable available\n"); - // env. variable suggests running gpg-agent - EnigmailGpgAgent.gpgAgentInfo.preStarted = true; - EnigmailGpgAgent.gpgAgentInfo.envStr = gpgAgentInfo; - EnigmailGpgAgent.gpgAgentIsOptional = false; - } - else { - 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 = ""; - var exitCode = -1; - EnigmailGpgAgent.gpgAgentIsOptional = false; - - - EnigmailGpgAgent.gpgAgentInfo.envStr = DUMMY_AGENT_INFO; - var envFile = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(envFile, EnigmailGpgAgent.determineGpgHomeDir(esvc)); - envFile.append("gpg-agent.conf"); - - if (!envFile.exists()) { - EnigmailLog.DEBUG("gpgAgent.jsm: detectGpgAgent: writing gpg-agent.conf file\n"); - let data = "default-cache-ttl " + (EnigmailPassword.getMaxIdleMinutes() * 60) + "\n"; - data += "max-cache-ttl 999999\n"; - try { - var flags = 0x02 | 0x08 | 0x20; - var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); - fileOutStream.init(envFile, flags, 384, 0); // 0600 - fileOutStream.write(data, data.length); - fileOutStream.flush(); - fileOutStream.close(); - } - catch (ex) {} // ignore file write errors - } - - } - EnigmailLog.DEBUG("gpgAgent.jsm: detectGpgAgent: GPG_AGENT_INFO='" + EnigmailGpgAgent.gpgAgentInfo.envStr + "'\n"); - }, - - /** - * Determine the GnuPG home directory based on the same logic as GnuPG, but without involving - * any external tool. - * - * @return String - the path to the gpg home directory - */ - determineGpgHomeDir: function(esvc) { - - let param = EnigmailPrefs.getPref("agentAdditionalParam"); - if (param) { - let hd = getHomedirFromParam(param); - - if (hd) return hd; - } - - let homeDir = esvc.environment.get("GNUPGHOME"); - - if (!homeDir && EnigmailOS.isWin32) { - homeDir = EnigmailOS.getWinRegistryString("Software\\GNU\\GNUPG", "HomeDir", nsIWindowsRegKey.ROOT_KEY_CURRENT_USER); - - if (!homeDir) { - homeDir = esvc.environment.get("USERPROFILE") || esvc.environment.get("SystemRoot"); - - if (homeDir) homeDir += "\\Application Data\\GnuPG"; - } - - if (!homeDir) homeDir = "C:\\gnupg"; - } - - if (!homeDir) homeDir = esvc.environment.get("HOME") + "/.gnupg"; - - return homeDir; - }, - - /** - * Check if the users directory for GnuPG exists and is writeable. - * Throw exception if directory cannot be created or adjusted. - */ - checkGpgHomeDir: function(domWindow, esvc) { - EnigmailLog.DEBUG("gpgAgent.jsm: checkGpgHomeDir:\n"); - - let homeDir = EnigmailGpgAgent.getGpgHomeDir(); - if (!homeDir) homeDir = EnigmailGpgAgent.determineGpgHomeDir(esvc); - - EnigmailLog.DEBUG("gpgAgent.jsm: checkGpgHomeDir: got homedir = '" + homeDir + "'\n"); - - let homeDirObj = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(homeDirObj, homeDir); - - if (homeDirObj.exists()) { - homeDirObj.normalize(); // resolve symlinks etc. - } - - let dirType = EnigmailFiles.ensureWritableDirectory(homeDirObj, 0x1C0); // 0700 - let errMsg = ""; - switch (dirType) { - case 1: - errMsg = "gpghomedir.notexists"; - break; - case 2: - errMsg = "gpghomedir.notwritable"; - break; - case 3: - errMsg = "gpghomedir.notdirectory"; - break; - } - - if (errMsg.length > 0) { - if (!domWindow) { - domWindow = EnigmailWindows.getBestParentWin(); - } - getDialog().alert(domWindow, EnigmailLocale.getString(errMsg, homeDir) + "\n\n" + EnigmailLocale.getString("gpghomedir.notusable")); - throw Components.results.NS_ERROR_FAILURE; - } - }, - - finalize: function() { - if (EnigmailGpgAgent.gpgAgentProcess) { - EnigmailLog.DEBUG("gpgAgent.jsm: EnigmailGpgAgent.finalize: stopping gpg-agent\n"); - try { - const proc = { - command: EnigmailGpgAgent.connGpgAgentPath, - arguments: ['killagent', '/bye'], - environment: EnigmailCore.getEnvList() - }; - - subprocess.call(proc).wait(); - } - catch (ex) { - EnigmailLog.ERROR("gpgAgent.jsm: EnigmailGpgAgent.finalize ERROR: " + ex + "\n"); - } - } - } -}; diff -Nru enigmail-2.1.6+ds1/package/gpg.jsm enigmail-2.2.4/package/gpg.jsm --- enigmail-2.1.6+ds1/package/gpg.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/gpg.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,391 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailGpg"]; - - - - - -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailVersioning = ChromeUtils.import("chrome://enigmail/content/modules/versioning.jsm").EnigmailVersioning; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const getGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); -const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); - -const MINIMUM_GPG_VERSION = "2.0.14"; -const GPG_BATCH_OPT_LIST = ["--batch", "--no-tty", "--no-verbose", "--status-fd", "2"]; - -function pushTrimmedStr(arr, str, splitStr) { - // Helper function for pushing a string without leading/trailing spaces - // to an array - str = str.replace(/^ */, "").replace(/ *$/, ""); - if (str.length > 0) { - if (splitStr) { - const tmpArr = str.split(/[\t ]+/); - for (let i = 0; i < tmpArr.length; i++) { - arr.push(tmpArr[i]); - } - } else { - arr.push(str); - } - } - return (str.length > 0); -} - -function getDirmngrTorStatus(exitCodeObj) { - const command = getGpgAgent().resolveToolPath("gpg-connect-agent"); - if (command === null) { - return null; - } - - const args = ["--dirmngr"]; - - EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); - - let stdout = ""; - try { - exitCodeObj.value = subprocess.call({ - command: command, - arguments: args, - environment: EnigmailCore.getEnvList(), - stdin: function(stdin) { - stdin.write("GETINFO tor\r\n"); - stdin.write("bye\r\n"); - stdin.write("\r\n"); - stdin.close(); - }, - stdout: function(data) { - stdout += data; - } - }).wait(); - } catch (ex) { - exitCodeObj.value = -1; - EnigmailLog.DEBUG("enigmail> DONE with FAILURE\n"); - } - - return stdout; -} - -function dirmngrConfiguredWithTor() { - if (!EnigmailGpg.getGpgFeature("supports-dirmngr")) return false; - - const exitCodeObj = { - value: null - }; - const output = getDirmngrTorStatus(exitCodeObj); - - if (output === null || exitCodeObj.value < 0) { - return false; - } - return output.match(/Tor mode is enabled/) !== null; -} - -var EnigmailGpg = { - agentVersion: "", - _agentPath: null, - - get agentPath() { - return this._agentPath; - }, - - setAgentPath: function(path) { - this._agentPath = path; - }, - - /** - * return the minimum version of GnuPG that is supported by Enigmail - */ - getMinimumGpgVersion: function() { - return MINIMUM_GPG_VERSION; - }, - - /*** - determine if a specific feature is available in the GnuPG version used - - @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 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) - search-keys-cmd - what command to use to terminate the --search-key operation. ("save" for gpg > 2.1; "quit" otherwise) - socks-on-windows - is SOCKS proxy supported on Windows (true for gpg >= 2.0.20) - supports-dirmngr - is dirmngr supported (true for gpg >= 2.1) - supports-ecc-keys - are ECC (elliptic curve) keys supported (true for gpg >= 2.1) - supports-sender - does gnupg understand the --sender argument (true for gpg >= 2.1.15) - supports-wkd - does gpg support wkd (web key directory) (true for gpg >= 2.1.19) - export-result - does gpg print EXPORTED when exporting keys (true for gpg >= 2.1.10) - decryption-info - does gpg print DECRYPTION_INFO (true for gpg >= 2.0.19) - export-specific-uid - does gpg support exporting a key with a specific UID (true for gpg >= 2.2.8) - supports-show-only - does gpg support --import-options show-only (true for gpg >= 2.1.14) - handles-huge-keys - can gpg deal with huge keys without aborting (true for gpg >= 2.2.17) - - @return: depending on featureName - Boolean unless specified differently: - (true if feature is available / false otherwise) - If the feature cannot be found, undefined is returned - */ - getGpgFeature: function(featureName) { - let gpgVersion = EnigmailGpg.agentVersion; - - if (!gpgVersion || typeof(gpgVersion) != "string" || gpgVersion.length === 0) { - return undefined; - } - - gpgVersion = gpgVersion.replace(/-.*$/, ""); - if (gpgVersion.search(/^\d+\.\d+/) < 0) { - // not a valid version number - return undefined; - } - - switch (featureName) { - case "version-supported": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, MINIMUM_GPG_VERSION); - case "supports-gpg-agent": - 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": - return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); - case "windows-photoid-bug": - return EnigmailVersioning.lessThan(gpgVersion, "2.0.16"); - case "supports-dirmngr": - return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); - case "supports-ecc-keys": - return EnigmailVersioning.greaterThan(gpgVersion, "2.1"); - case "socks-on-windows": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.20"); - case "search-keys-cmd": - // returns a string - if (EnigmailVersioning.greaterThan(gpgVersion, "2.1")) { - return "save"; - } else - return "quit"; - case "supports-sender": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.15"); - case "export-result": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.10"); - case "decryption-info": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.0.19"); - case "supports-wkd": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.19"); - case "export-specific-uid": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.2.9"); - case "supports-show-only": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.1.14"); - case "handles-huge-keys": - return EnigmailVersioning.greaterThanOrEqual(gpgVersion, "2.2.17"); - } - - return undefined; - }, - - /** - * get the standard arguments to pass to every GnuPG subprocess - * - * @withBatchOpts: Boolean - true: use --batch and some more options - * false: don't use --batch and co. - * - * @return: Array of String - the list of arguments - */ - getStandardArgs: function(withBatchOpts) { - // return the arguments to pass to every GnuPG subprocess - let r = ["--charset", "utf-8", "--display-charset", "utf-8", "--no-auto-check-trustdb"]; // mandatory parameters to add in all cases - - try { - let p = EnigmailPrefs.getPref("agentAdditionalParam").replace(/\\\\/g, "\\"); - - let i = 0; - let last = 0; - let foundSign = ""; - let startQuote = -1; - - while ((i = p.substr(last).search(/['"]/)) >= 0) { - if (startQuote == -1) { - startQuote = i; - foundSign = p.substr(last).charAt(i); - last = i + 1; - } else if (p.substr(last).charAt(i) == foundSign) { - // found enquoted part - if (startQuote > 1) pushTrimmedStr(r, p.substr(0, startQuote), true); - - pushTrimmedStr(r, p.substr(startQuote + 1, last + i - startQuote - 1), false); - p = p.substr(last + i + 1); - last = 0; - startQuote = -1; - foundSign = ""; - } else { - last = last + i + 1; - } - } - - pushTrimmedStr(r, p, true); - } catch (ex) {} - - - if (withBatchOpts) { - r = r.concat(GPG_BATCH_OPT_LIST); - } - - return r; - }, - - // returns the output of --with-colons --list-config - getGnupgConfig: function(exitCodeObj, errorMsgObj) { - if (!EnigmailGpg.agentPath) { - exitCodeObj.value = 0; - return ""; - } - - const args = EnigmailGpg.getStandardArgs(true). - concat(["--fixed-list-mode", "--with-colons", "--list-config"]); - - const statusMsgObj = {}; - const cmdErrorMsgObj = {}; - const statusFlagsObj = {}; - - const listText = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, cmdErrorMsgObj); - - if (exitCodeObj.value !== 0) { - errorMsgObj.value = EnigmailLocale.getString("badCommand"); - if (cmdErrorMsgObj.value) { - errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args); - errorMsgObj.value += "\n" + cmdErrorMsgObj.value; - } - - return ""; - } - - return listText.replace(/(\r\n|\r)/g, "\n"); - }, - - /** - * return an array containing the aliases and the email addresses - * of groups defined in gpg.conf - * - * @return: array of objects with the following properties: - * - alias: group name as used by GnuPG - * - keylist: list of keys (any form that GnuPG accepts), separated by ";" - * - * (see docu for gnupg parameter --group) - */ - getGpgGroups: function() { - const exitCodeObj = {}; - const errorMsgObj = {}; - - const cfgStr = EnigmailGpg.getGnupgConfig(exitCodeObj, errorMsgObj); - - if (exitCodeObj.value !== 0) { - getDialog().alert(errorMsgObj.value); - return null; - } - - const groups = []; - const cfg = cfgStr.split(/\n/); - - for (let i = 0; i < cfg.length; i++) { - if (cfg[i].indexOf("cfg:group") === 0) { - const groupArr = cfg[i].split(/:/); - groups.push({ - alias: groupArr[2], - keylist: groupArr[3] - }); - } - } - - return groups; - }, - - /** - * Force GnuPG to recalculate the trust db. This is sometimes required after importing keys. - * - * no return value - */ - recalcTrustDb: function() { - EnigmailLog.DEBUG("enigmailCommon.jsm: recalcTrustDb:\n"); - - const command = EnigmailGpg.agentPath; - const args = EnigmailGpg.getStandardArgs(false). - concat(["--check-trustdb"]); - - try { - const proc = subprocess.call({ - command: EnigmailGpg.agentPath, - arguments: args, - environment: EnigmailCore.getEnvList(), - charset: null, - mergeStderr: false - }); - proc.wait(); - } catch (ex) { - EnigmailLog.ERROR("enigmailCommon.jsm: recalcTrustDb: subprocess.call failed with '" + ex.toString() + "'\n"); - throw ex; - } - }, - - signingAlgIdToString: function(id) { - // RFC 4880 Sec. 9.1, RFC 6637 Sec. 5 and draft-koch-eddsa-for-openpgp-03 Sec. 8 - switch (parseInt(id, 10)) { - case 1: - case 2: - case 3: - return "RSA"; - case 16: - return "Elgamal"; - case 17: - return "DSA"; - case 18: - return "ECDH"; - case 19: - return "ECDSA"; - case 20: - return "ELG"; - case 22: - return "EDDSA"; - default: - return EnigmailLocale.getString("unknownSigningAlg", [parseInt(id, 10)]); - } - }, - - hashAlgIdToString: function(id) { - // RFC 4880 Sec. 9.4 - switch (parseInt(id, 10)) { - case 1: - return "MD5"; - case 2: - return "SHA-1"; - case 3: - return "RIPE-MD/160"; - case 8: - return "SHA256"; - case 9: - return "SHA384"; - case 10: - return "SHA512"; - case 11: - return "SHA224"; - default: - return EnigmailLocale.getString("unknownHashAlg", [parseInt(id, 10)]); - } - }, - - /** - * For versions of GPG 2.1 and higher, checks to see if the dirmngr is configured to use Tor - * - * @return Boolean - True if dirmngr is configured with Tor. False otherwise - */ - dirmngrConfiguredWithTor: dirmngrConfiguredWithTor -}; \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/hash.jsm enigmail-2.2.4/package/hash.jsm --- enigmail-2.1.6+ds1/package/hash.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/hash.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailHash"]; - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailEncryption = ChromeUtils.import("chrome://enigmail/content/modules/encryption.jsm").EnigmailEncryption; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - - - -const keyAlgorithms = []; -const mimeHashAlgorithms = [null, "sha1", "ripemd160", "sha256", "sha384", "sha512", "sha224", "md5"]; - -var EnigmailHash = { - determineAlgorithm: function(win, uiFlags, fromMailAddr, hashAlgoObj) { - EnigmailLog.DEBUG("hash.jsm: determineAlgorithm\n"); - - if (!win) { - win = EnigmailWindows.getMostRecentWindow(); - } - - const sendFlags = EnigmailConstants.SEND_TEST | EnigmailConstants.SEND_SIGNED; - const hashAlgo = mimeHashAlgorithms[EnigmailPrefs.getPref("mimeHashAlgorithm")]; - - if (typeof(keyAlgorithms[fromMailAddr]) != "string") { - // hash algorithm not yet known - - const testUiFlags = EnigmailConstants.UI_TEST; - const listener = { - stdoutData: "", - stderrData: "", - exitCode: -1, - stdin: function(pipe) { - pipe.write("Dummy Test"); - pipe.close(); - }, - stdout: function(data) { - this.stdoutData += data; - }, - stderr: function(data) { - this.stderrData += data; - }, - done: function(exitCode) { - this.exitCode = exitCode; - } - }; - - let errorMsgObj = {}; - let statusFlagsObj = {}; - const proc = EnigmailEncryption.encryptMessageStart(win, testUiFlags, fromMailAddr, "", - "", hashAlgo, sendFlags, - listener, statusFlagsObj, errorMsgObj); - - if (!proc) { - hashAlgoObj.errorMsg = errorMsgObj.value; - hashAlgoObj.statusFlags = statusFlagsObj.value; - return 1; - } - - proc.wait(); - - const msgText = listener.stdoutData; - const exitCode = listener.exitCode; - - const retStatusObj = {}; - let exitCode2 = EnigmailEncryption.encryptMessageEnd(fromMailAddr, listener.stderrData, exitCode, - testUiFlags, sendFlags, 10, - retStatusObj); - - if ((exitCode2 === 0) && !msgText) exitCode2 = 1; - // if (exitCode2 > 0) exitCode2 = -exitCode2; - - if (exitCode2 !== 0) { - // Abormal return - if (retStatusObj.statusFlags & EnigmailConstants.BAD_PASSPHRASE) { - // "Unremember" passphrase on error return - retStatusObj.errorMsg = EnigmailLocale.getString("badPhrase"); - } - EnigmailDialog.alert(win, retStatusObj.errorMsg); - return exitCode2; - } - - let hashAlgorithm = "sha1"; // default as defined in RFC 4880, section 7 is MD5 -- but that's outdated - - const m = msgText.match(/^(Hash: )(.*)$/m); - if (m && (m.length > 2) && (m[1] == "Hash: ")) { - hashAlgorithm = m[2].toLowerCase(); - } - else { - EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: no hashAlgorithm specified - using MD5\n"); - } - - for (let i = 1; i < mimeHashAlgorithms.length; i++) { - if (mimeHashAlgorithms[i] === hashAlgorithm) { - EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: found hashAlgorithm " + hashAlgorithm + "\n"); - keyAlgorithms[fromMailAddr] = hashAlgorithm; - hashAlgoObj.value = hashAlgorithm; - return 0; - } - } - - EnigmailLog.ERROR("hash.jsm: determineAlgorithm: no hashAlgorithm found\n"); - return 2; - } - else { - EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: hashAlgorithm " + keyAlgorithms[fromMailAddr] + " is cached\n"); - hashAlgoObj.value = keyAlgorithms[fromMailAddr]; - } - - return 0; - } -}; diff -Nru enigmail-2.1.6+ds1/package/httpProxy.jsm enigmail-2.2.4/package/httpProxy.jsm --- enigmail-2.1.6+ds1/package/httpProxy.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/httpProxy.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailHttpProxy"]; - - - - - -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; - -const NS_PREFS_SERVICE_CID = "@mozilla.org/preferences-service;1"; - -function getPasswdForHost(hostname, userObj, passwdObj) { - var loginmgr = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager); - - // search HTTP password 1st - var logins = loginmgr.findLogins({}, "http://" + hostname, "", ""); - if (logins.length > 0) { - userObj.value = logins[0].username; - passwdObj.value = logins[0].password; - return true; - } - - // look for any other password for same host - logins = loginmgr.getAllLogins({}); - for (var i = 0; i < logins.lenth; i++) { - if (hostname == logins[i].hostname.replace(/^.*:\/\//, "")) { - userObj.value = logins[i].username; - passwdObj.value = logins[i].password; - return true; - } - } - return false; -} - -var EnigmailHttpProxy = { - /** - * get Proxy for a given hostname as configured in Mozilla - * - * @hostname: String - the host to check if there is a proxy. - * - * @return: String - proxy host URL to provide to GnuPG - * null if no proxy required - */ - getHttpProxy: function(hostName) { - var proxyHost = null; - if (((typeof hostName) !== 'undefined') && EnigmailPrefs.getPref("respectHttpProxy")) { - // determine proxy host - var prefsSvc = Cc[NS_PREFS_SERVICE_CID].getService(Ci.nsIPrefService); - var prefRoot = prefsSvc.getBranch(null); - var useProxy = prefRoot.getIntPref("network.proxy.type"); - if (useProxy == 1) { - var proxyHostName = prefRoot.getCharPref("network.proxy.http"); - var proxyHostPort = prefRoot.getIntPref("network.proxy.http_port"); - var noProxy = prefRoot.getCharPref("network.proxy.no_proxies_on").split(/[ ,]/); - for (var i = 0; i < noProxy.length; i++) { - var proxySearch = new RegExp(noProxy[i].replace(/\./g, "\\.").replace(/\*/g, ".*") + "$", "i"); - if (noProxy[i] && hostName.search(proxySearch) >= 0) { - i = noProxy.length + 1; - proxyHostName = null; - } - } - - if (proxyHostName) { - var userObj = {}; - var passwdObj = {}; - if (getPasswdForHost(proxyHostName, userObj, passwdObj)) { - proxyHostName = userObj.value + ":" + passwdObj.value + "@" + proxyHostName; - } - } - if (proxyHostName && proxyHostPort) { - proxyHost = "http://" + proxyHostName + ":" + proxyHostPort; - } - } - } - - return proxyHost; - } -}; diff -Nru enigmail-2.1.6+ds1/package/installGnuPG.jsm enigmail-2.2.4/package/installGnuPG.jsm --- enigmail-2.1.6+ds1/package/installGnuPG.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/installGnuPG.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,595 +0,0 @@ -/* 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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["InstallGnuPG"]; - -/* Usage: - InstallGnuPG.start(progressListener). - - progressListener needs to implement the following methods: - void onError (errorMessage) - boolean onWarning (message) - void onProgress (event) - void onLoaded (event) // fired when instllation complete - void onDownloaded () // fired when download complete, before installation - void onStart (requestObj) - - requestObj: - abort(): cancel download - - onWarning can return true if the warning should be ignored, false otherwise - -*/ - -var Cu = Components.utils; - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailXhrUtils = ChromeUtils.import("chrome://enigmail/content/modules/xhrUtils.jsm").EnigmailXhrUtils; - -const EXEC_FILE_PERMS = 0x1C0; // 0700 - - -const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID = - "@mozilla.org/network/file-output-stream;1"; -const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1"; -const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; -const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1"; - -const GPG_QUERY_URL = "https://www.enigmail.net/service/getGnupgDownload.svc"; - -function toHexString(charCode) { - return ("0" + charCode.toString(16)).slice(-2); -} - -function sanitizeFileName(str) { - // remove shell escape, #, ! and / from string - return str.replace(/[`/#!]/g, ""); -} - -function sanitizeHash(str) { - return str.replace(/[^a-hA-H0-9]/g, ""); -} - - -function Installer(progressListener) { - this.progressListener = progressListener; -} - -Installer.prototype = { - - installMacOs: function(deferred) { - EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs\n"); - - var exitCode = -1; - var mountPath = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - mountPath.initWithPath("/Volumes/" + this.mount); - if (mountPath.exists()) { - let p = mountPath.path + " "; - let i = 1; - mountPath.initWithPath(p + i); - while (mountPath.exists() && i < 10) { - ++i; - mountPath.initWithPath(p + i); - } - if (mountPath.exists()) { - throw "Error - cannot mount package"; - } - } - - this.mountPath = mountPath; - EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs - mount Package\n"); - - var cmd = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - cmd.initWithPath("/usr/bin/open"); - - var args = ["-W", this.installerFile.path]; - - var proc = { - command: cmd, - arguments: args, - charset: null, - done: function(result) { - exitCode = result.exitCode; - } - }; - - try { - subprocess.call(proc).wait(); - if (exitCode) throw "Installer failed with exit code " + exitCode; - } - catch (ex) { - EnigmailLog.ERROR("installGnuPG.jsm: installMacOs: subprocess.call failed with '" + ex.toString() + "'\n"); - throw ex; - } - - EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs - run installer\n"); - - args = ["-W", this.mountPath.path + "/" + this.command]; - - proc = { - command: cmd, - arguments: args, - charset: null, - done: function(result) { - if (result.exitCode !== 0) { - deferred.reject("Installer failed with exit code " + result.exitCode); - } - else - deferred.resolve(); - } - }; - - try { - subprocess.call(proc); - } - catch (ex) { - EnigmailLog.ERROR("installGnuPG.jsm: installMacOs: subprocess.call failed with '" + ex.toString() + "'\n"); - throw ex; - } - }, - - cleanupMacOs: function() { - EnigmailLog.DEBUG("installGnuPG.jsm.cleanupMacOs: unmount package\n"); - - var cmd = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile); - cmd.initWithPath("/usr/sbin/diskutil"); - var args = ["eject", this.mountPath.path]; - var proc = { - command: cmd, - arguments: args, - charset: null, - done: function(result) { - if (result.exitCode) EnigmailLog.ERROR("Installer failed with exit code " + result.exitCode); - } - }; - - try { - subprocess.call(proc).wait(); - } - catch (ex) { - EnigmailLog.ERROR("installGnuPG.jsm.cleanupMacOs: subprocess.call failed with '" + ex.toString() + "'\n"); - } - - EnigmailLog.DEBUG("installGnuPG.jsm: cleanupMacOs - remove package\n"); - 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"); - - try { - // use runwAsync in order to get UAC approval on Windows 7 / 8 if required - - var obs = { - QueryInterface: EnigmailCompat.generateQI(["nsIObserver"]), - - observe: function(proc, aTopic, aData) { - EnigmailLog.DEBUG("installGnuPG.jsm: installWindows.observe: topic='" + aTopic + "' \n"); - - if (aTopic == "process-finished") { - EnigmailLog.DEBUG("installGnuPG.jsm: installWindows finished\n"); - deferred.resolve(); - } - else if (aTopic == "process-failed") { - deferred.reject("Installer could not be started"); - } - } - }; - - 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(params, params.length, obs, false); - } - catch (ex) { - deferred.reject("Installer could not be started"); - } - - }, - - cleanupWindows: function() { - EnigmailLog.DEBUG("installGnuPG.jsm: cleanupWindows - remove package\n"); - this.installerFile.remove(false); - if (this.gpg4WinCfgFile) this.gpg4WinCfgFile.remove(false); - }, - - installUnix: function() {}, - - /** - * Chech the SHA256 hash sum of this.installerFile - */ - checkHashSum: function() { - EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum\n"); - var istream = Components.classes["@mozilla.org/network/file-input-stream;1"] - .createInstance(Components.interfaces.nsIFileInputStream); - // open for reading - istream.init(this.installerFile, 0x01, 0o444, 0); - - var ch = Components.classes["@mozilla.org/security/hash;1"] - .createInstance(Components.interfaces.nsICryptoHash); - ch.init(ch.SHA256); - const PR_UINT32_MAX = 0xffffffff; // read entire file - ch.updateFromStream(istream, PR_UINT32_MAX); - var gotHash = ch.finish(false); - - // convert the binary hash data to a hex string. - var hashStr = ""; - - for (let i in gotHash) { - hashStr += toHexString(gotHash.charCodeAt(i)); - } - - if (this.hash != hashStr) { - EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum - hash sums don't match: " + hashStr + "\n"); - } - else - EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum - hash sum OK\n"); - - return this.hash == hashStr; - }, - - getDownloadUrl: function(on) { - - let deferred = PromiseUtils.defer(); - - function reqListener() { - // "this" is set by the calling XMLHttpRequest - if (typeof(this.responseXML) == "object") { - EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: got: " + this.responseText + "\n"); - if (!this.responseText) { - onError({ - type: "Network" - }); - return; - } - - if (typeof(this.responseText) == "string") { - EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: got: " + this.responseText + "\n"); - - try { - let doc = JSON.parse(this.responseText); - self.url = doc.url; - self.hash = sanitizeHash(doc.hash); - self.command = doc.command; - self.mount = sanitizeFileName(doc.mountPath); - self.gpgVersion = doc.gpgVersion; - deferred.resolve(); - } - catch (ex) { - EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: exception: " + ex.toString() + "\n"); - - onError({ - type: "Network" - }); - } - } - } - } - - function onError(error) { - deferred.reject("error"); - if (self.progressListener) { - return self.progressListener.onError(error); - } - - return false; - } - - - EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl: start request\n"); - - let queryUrl = GPG_QUERY_URL; - - // if ENIGMAIL_GPG_DOWNLOAD_URL env variable is set, use that instead of the - // official URL (for testing) - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - if (env.get("ENIGMAIL_GPG_DOWNLOAD_URL")) { - queryUrl = env.get("ENIGMAIL_GPG_DOWNLOAD_URL"); - } - - var self = this; - - try { - var xulRuntime = Cc[XPCOM_APPINFO].getService(Ci.nsIXULRuntime); - var platform = xulRuntime.XPCOMABI.toLowerCase(); - var os = EnigmailOS.getOS().toLowerCase(); - - var oReq = new XMLHttpRequest(); - oReq.onload = reqListener; - oReq.addEventListener("error", - function(e) { - var error = EnigmailXhrUtils.createTCPErrorFromFailedXHR(oReq); - onError(error); - }, - false); - - oReq.open("get", queryUrl + "?vEnigmail=" + escape(EnigmailApp.getVersion()) + "&os=" + escape(os) + "&platform=" + - escape(platform), true); - oReq.send(); - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installGnuPG.jsm", ex); - - if (self.progressListener) - self.progressListener.onError("installGnuPG.downloadFailed"); - } - - return deferred.promise; - }, - - getUrlObj: function() { - let o = { - url: this.url, - hash: this.hash, - comamnd: this.command, - mount: this.mount, - gpgVersion: this.gpgVersion - }; - - return o; - }, - - performDownload: function() { - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: " + this.url + "\n"); - - var self = this; - var deferred = PromiseUtils.defer(); - - function onProgress(event) { - - if (event.lengthComputable) { - var percentComplete = event.loaded / event.total; - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: " + percentComplete * 100 + "% loaded\n"); - } - else { - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: got " + event.loaded + "bytes\n"); - } - - if (self.progressListener) - self.progressListener.onProgress(event); - } - - function onError(error) { - deferred.reject("error"); - if (self.progressListener) - self.progressListener.onError(error); - } - - function onLoaded(event) { - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: downloaded " + event.loaded + "bytes\n"); - - if (self.progressListener) - self.progressListener.onDownloaded(); - - try { - // "this" is set by the calling XMLHttpRequest - performInstall(this.response).then(function _f() { - performCleanup(); - }); - } - catch (ex) { - EnigmailLog.writeException("installGnuPG.jsm", ex); - - if (self.progressListener) - self.progressListener.onError("installGnuPG.installFailed"); - } - } - - function performInstall(response) { - var arraybuffer = response; // not responseText - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: bytes " + arraybuffer.byteLength + "\n"); - - try { - var flags = 0x02 | 0x08 | 0x20; - var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); - self.installerFile = EnigmailFiles.getTempDirObj().clone(); - - switch (EnigmailOS.getOS()) { - case "Darwin": - self.installerFile.append("GnuPG-Installer.dmg"); - self.performCleanup = self.cleanupMacOs; - break; - case "WINNT": - self.installerFile.append("gpg4win.exe"); - self.performCleanup = self.cleanupWindows; - break; - default: - self.installerFile.append("gpg-installer.bin"); - self.performCleanup = null; - } - - self.installerFile.createUnique(self.installerFile.NORMAL_FILE_TYPE, EXEC_FILE_PERMS); - - EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: writing file to " + self.installerFile.path + "\n"); - - fileOutStream.init(self.installerFile, flags, EXEC_FILE_PERMS, 0); - - var binStr = Cc["@mozilla.org/binaryoutputstream;1"].createInstance(Ci.nsIBinaryOutputStream); - - binStr.setOutputStream(fileOutStream.QueryInterface(Ci.nsIOutputStream)); - - var buf = new Uint8Array(arraybuffer); - binStr.writeByteArray(buf, buf.length); - binStr.flush(); - binStr.close(); - fileOutStream.close(); - - if (!self.checkHashSum()) { - var cont = true; - if (self.progressListener) { - cont = self.progressListener.onWarning("hashSumMismatch"); - } - - if (!cont) { - deferred.reject("Aborted due to hash sum error"); - return null; - } - - } - - switch (EnigmailOS.getOS()) { - case "Darwin": - self.installMacOs(deferred); - break; - case "WINNT": - self.installWindows(deferred); - break; - default: - self.installUnix(deferred); - } - - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installGnuPG.jsm", ex); - - if (self.progressListener) - self.progressListener.onError("installGnuPG.installFailed"); - } - - return deferred.promise; - } - - function performCleanup() { - EnigmailLog.DEBUG("installGnuPG.jsm: performCleanup:\n"); - try { - if (self.performCleanup) self.performCleanup(); - } - catch (ex) {} - - if (self.progressListener) { - EnigmailLog.DEBUG("installGnuPG.jsm: performCleanup - onLoaded()\n"); - self.progressListener.onLoaded(); - } - } - - try { - // create a XMLHttpRequest object - var oReq = new XMLHttpRequest(); - - oReq.addEventListener("load", onLoaded, false); - oReq.addEventListener("error", - function(e) { - var error = EnigmailXhrUtils.createTCPErrorFromFailedXHR(oReq); - onError(error); - }, - false); - - oReq.addEventListener("progress", onProgress, false); - oReq.open("get", this.url, true); - oReq.responseType = "arraybuffer"; - if (self.progressListener) - self.progressListener.onStart({ - abort: function() { - oReq.abort(); - } - }); - oReq.send(); - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installGnuPG.jsm", ex); - - if (self.progressListener) - self.progressListener.onError("installGnuPG.downloadFailed"); - } - - } -}; - - -var InstallGnuPG = { - - // check if there is a downloadable item for the given platform - // returns true if item available - checkAvailability: function() { - switch (EnigmailOS.getOS()) { - case "Darwin": - case "WINNT": - return true; - } - - return false; - }, - - startInstaller: function(progressListener) { - - var i = new Installer(progressListener); - i.getDownloadUrl(i). - then(function _dl() { - i.performDownload(); - }); - return i; - }, - - getAvailableInstaller: async function() { - if (!this.checkAvailability()) return null; - - let i = new Installer(null); - await i.getDownloadUrl(i); - - return i.getUrlObj(); - } -}; diff -Nru enigmail-2.1.6+ds1/package/installPep.jsm enigmail-2.2.4/package/installPep.jsm --- enigmail-2.1.6+ds1/package/installPep.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/installPep.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,487 +0,0 @@ -/* 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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailInstallPep"]; - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailXhrUtils = ChromeUtils.import("chrome://enigmail/content/modules/xhrUtils.jsm").EnigmailXhrUtils; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const EXEC_FILE_PERMS = 0x1C0; // 0700 -const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID = "@mozilla.org/network/file-output-stream;1"; -const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1"; -const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; -const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1"; - -const PEP_QUERY_URL = "https://www.enigmail.net/service/getPepDownload.svc"; -const PEP_MAX_VERSION = "1.*"; // accept any pEp package versions 0.* and 1.*, but not 2.0 - -// install modes -const INSTALL_AUTO = 0; -const INSTALL_MANUAL = 1; -const INSTALL_UPDATE = 2; - -var gInstallInProgress = 0; - -function toHexString(charCode) { - return ("0" + charCode.toString(16)).slice(-2); -} - -function sanitizeHash(str) { - return str.replace(/[^a-hA-H0-9]/g, ""); -} - -function Installer(progressListener) { - this.progressListener = progressListener; -} - -Installer.prototype = { - - cleanupOnOs: function() { - EnigmailLog.DEBUG("installPep.jsm.cleanupOnOs():\n"); - - if (this.installerFile) { - try { - let extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher); - extAppLauncher.deleteTemporaryFileOnExit(this.installerFile); - } - catch (ex) {} - } - if (this.progressListener) { - this.progressListener.onInstalled(); - } - }, - - checkHashSum: function() { - EnigmailLog.DEBUG("installPep.jsm: checkHashSum\n"); - var istream = Cc["@mozilla.org/network/file-input-stream;1"] - .createInstance(Ci.nsIFileInputStream); - // open for reading - istream.init(this.installerFile, 0x01, 0o444, 0); - - var ch = Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash); - ch.init(ch.SHA256); - const PR_UINT32_MAX = 0xffffffff; // read entire file - ch.updateFromStream(istream, PR_UINT32_MAX); - var gotHash = ch.finish(false); - - // convert the binary hash data to a hex string. - var hashStr = ""; - - for (let i in gotHash) { - hashStr += toHexString(gotHash.charCodeAt(i)); - } - - if (this.hash != hashStr) { - EnigmailLog.DEBUG("installPep.jsm: checkHashSum - hash sums don't match: " + hashStr + "\n"); - } - else - EnigmailLog.DEBUG("installPep.jsm: checkHashSum - hash sum OK\n"); - - return this.hash == hashStr; - }, - - getUrlObj: function() { - let o = { - url: this.url, - hash: this.hash, - comamnd: this.command, - mount: this.mount, - pepVersion: this.pepVersion - }; - - return o; - }, - - getDownloadUrl: function(on, installType) { - EnigmailLog.DEBUG("installPep.jsm: getDownloadUrl: installType=" + installType + "\n"); - - let deferred = PromiseUtils.defer(); - - function reqListener() { - // "this" is set by the calling XMLHttpRequest - - if (!this.responseText) { - onError({ - type: "Network" - }); - return; - } - if (typeof(this.responseText) == "string") { - EnigmailLog.DEBUG("installPep.jsm: getDownloadUrl.reqListener: got: " + this.responseText + "\n"); - - try { - let doc = JSON.parse(this.responseText); - self.url = doc.url; - self.pepVersion = doc.pepVersion; - self.hash = sanitizeHash(doc.hash); - deferred.resolve(); - } - catch (ex) { - EnigmailLog.DEBUG("installPep.jsm: getDownloadUrl.reqListener: exception: " + ex.toString() + "\n"); - - onError({ - type: "JSON" - }); - } - } - } - - function onError(error) { - deferred.reject("error"); - gInstallInProgress = 0; - if (self.progressListener) { - return self.progressListener.onError(error); - } - - return false; - } - - - EnigmailLog.DEBUG("installPep.jsm: getDownloadUrl: start request\n"); - - let queryUrl = PEP_QUERY_URL; - - // if ENIGMAIL_PEP_DOWNLOAD_URL env variable is set, use that instead of the - // official URL (for testing) - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - if (env.get("ENIGMAIL_PEP_DOWNLOAD_URL")) { - queryUrl = env.get("ENIGMAIL_PEP_DOWNLOAD_URL"); - } - - var self = this; - - try { - var xulRuntime = Cc[XPCOM_APPINFO].getService(Ci.nsIXULRuntime); - var platform = xulRuntime.XPCOMABI.toLowerCase(); - var os = EnigmailOS.getOS().toLowerCase(); - - // create a XMLHttpRequest object - var oReq = new XMLHttpRequest(); - oReq.onload = reqListener; - oReq.addEventListener("error", - function(e) { - var error = EnigmailXhrUtils.createTCPErrorFromFailedXHR(oReq); - onError(error); - }, - false); - queryUrl = queryUrl + "?vEnigmail=" + escape(EnigmailApp.getVersion()) + "&os=" + escape(os) + - "&platform=" + escape(platform); - - switch (installType) { - case INSTALL_MANUAL: - queryUrl += "&queryType=manual"; - break; - case INSTALL_UPDATE: - queryUrl += "&queryType=update"; - } - - EnigmailLog.DEBUG("installPep.jsm: getDownloadUrl: accessing '" + queryUrl + "'\n"); - - oReq.open("get", queryUrl, true); - oReq.send(); - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installPep.jsm", ex); - - if (self.progressListener) - self.progressListener.onError({ - type: "installPep.downloadFailed" - }); - } - - return deferred.promise; - }, - - performDownload: function() { - EnigmailLog.DEBUG("installPep.jsm: performDownload: " + this.url + "\n"); - - var self = this; - var deferred = PromiseUtils.defer(); - - function onProgress(event) { - - if (event.lengthComputable) { - var percentComplete = event.loaded / event.total; - EnigmailLog.DEBUG("installPep.jsm: performDownload: " + percentComplete * 100 + "% loaded\n"); - } - else { - EnigmailLog.DEBUG("installPep.jsm: performDownload: got " + event.loaded + "bytes\n"); - } - - } - - function onError(error) { - deferred.reject("error"); - if (self.progressListener) - self.progressListener.onError(error); - } - - function onLoaded(event) { - EnigmailLog.DEBUG("installPep.jsm: performDownload: downloaded " + event.loaded + "bytes\n"); - - try { - // "this" is set by the calling XMLHttpRequest - performInstall(this.response).then(function _f() { - performCleanup(); - gInstallInProgress = 0; - }); - } - catch (ex) { - EnigmailLog.writeException("installPep.jsm", ex); - - gInstallInProgress = 0; - if (self.progressListener) - self.progressListener.onError({ - type: "installPep.installFailed" - }); - } - } - - function performInstall(response) { - var arraybuffer = response; // not responseText - EnigmailLog.DEBUG("installPep.jsm: performInstall: bytes " + arraybuffer.byteLength + "\n"); - - try { - var flags = 0x02 | 0x08 | 0x20; - var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream); - self.installerFile = EnigmailFiles.getTempDirObj().clone(); - self.performCleanup = self.cleanupOnOs; - self.installerFile.append("pepmda.zip"); - - self.installerFile.createUnique(self.installerFile.NORMAL_FILE_TYPE, EXEC_FILE_PERMS); - - EnigmailLog.DEBUG("installPep.jsm: performInstall: writing file to " + self.installerFile.path + "\n"); - - fileOutStream.init(self.installerFile, flags, EXEC_FILE_PERMS, 0); - - var binStr = Cc["@mozilla.org/binaryoutputstream;1"].createInstance(Ci.nsIBinaryOutputStream); - - binStr.setOutputStream(fileOutStream.QueryInterface(Ci.nsIOutputStream)); - - var buf = new Uint8Array(arraybuffer); - binStr.writeByteArray(buf, buf.length); - binStr.flush(); - binStr.close(); - fileOutStream.close(); - - if (!self.checkHashSum()) { - EnigmailLog.ERROR("installPep.jsm: performInstall: HASH sum mismatch!\n"); - deferred.reject("Aborted due to hash sum error"); - return null; - } - - let tempDir = EnigmailApp.getProfileDirectory(); - tempDir.append("pep_tmp"); - tempDir.createUnique(Ci.nsIFile.DIRECTORY_TYPE, 509 /* = 0775 */ ); - - let pepDir = EnigmailApp.getProfileDirectory(); - pepDir.append("pepmda"); - - if (EnigmailFiles.extractZipFile(self.installerFile, tempDir)) { - - if (pepDir.exists()) { - if (self.progressListener) { - self.progressListener.stopPep(); - } - pepDir.remove(true); - } - - pepDir = tempDir.clone(); - pepDir.append("pepmda"); - pepDir.moveTo(EnigmailApp.getProfileDirectory(), "pepmda"); - tempDir.remove(true); - deferred.resolve(); - } - else { - deferred.reject("Could not unzip " + self.installerFile.path + " to " + tempDir.path + "\n"); - } - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installPep.jsm", ex); - - if (self.progressListener) - self.progressListener.onError({ - type: "installPep.installFailed" - }); - } - - return deferred.promise; - } - - function performCleanup() { - EnigmailLog.DEBUG("installPep.jsm: performCleanup:\n"); - try { - if (self.performCleanup) self.performCleanup(); - } - catch (ex) {} - - } - - try { - // "main" part of performDownload - - if (!this.url || this.url.length === 0) { - onError({ - type: "downloadPep.noURL" - }); - return; - } - - var oReq = new XMLHttpRequest(); - - oReq.addEventListener("load", onLoaded, false); - oReq.addEventListener("error", - function(e) { - var error = EnigmailXhrUtils.createTCPErrorFromFailedXHR(oReq); - onError(error); - }, - false); - - oReq.addEventListener("progress", onProgress, false); - oReq.open("get", this.url, true); - oReq.responseType = "arraybuffer"; - oReq.send(); - } - catch (ex) { - deferred.reject(ex); - EnigmailLog.writeException("installPep.jsm", ex); - - if (self.progressListener) - self.progressListener.onError({ - type: "installPep.downloadFailed" - }); - } - - } -}; - - -var EnigmailInstallPep = { - - /** - * Start downloading and installing pEp - * - * @param progressListener: Object (optional) - * progressListener needs to implement the following methods: - * void onError ({type: errorType, name: errorName}) - * void onInstalled () - * @param manualInstall: Boolean: if true, ignore pEpAutoDownload option - * - * @return Installer object or null (if not installation started) - */ - - startInstaller: function(progressListener, manualInstall = false) { - EnigmailLog.DEBUG("installPep.jsm: startInstaller()\n"); - - if (EnigmailCompat.isPostbox()) return null; - if (!manualInstall) { - if (!EnigmailPrefs.getPref("pEpAutoDownload")) return null; - } - - if (gInstallInProgress > 0) return null; - - gInstallInProgress = 1; - - let i = new Installer(progressListener); - i.getDownloadUrl(i, manualInstall ? INSTALL_MANUAL : INSTALL_AUTO). - then(function _gotUrl() { - i.performDownload(); - }).catch(function _err() { - gInstallInProgress = 0; - i.cleanupOnOs(); - }); - return i; - }, - - /** - * Determine if pEp installer is available online - * - * @param manualInstall: Boolean: if true, ignore pEpAutoDownload option - * - * @return {Promise}: true: installer for current platform is online available - * false: otherwise - */ - isPepInstallerAvailable: async function(manualInstall = false) { - EnigmailLog.DEBUG("installPep.jsm: isPepInstallerAvailable()\n"); - - if (EnigmailCompat.isPostbox()) return false; - if (!manualInstall) { - // don't download anything if auto-download is disabled - if (!EnigmailPrefs.getPref("pEpAutoDownload")) return false; - } - - let urlObj = null; - let i = new Installer(null); - - try { - let r = await i.getDownloadUrl(i, manualInstall ? INSTALL_MANUAL : INSTALL_AUTO); - urlObj = i.getUrlObj(); - } - catch (err) {} - - return (urlObj ? urlObj.url !== null && urlObj.url !== "" : false); - }, - - /** - * Determine if an update to pEp is available online - * - * @param manualInstall: Boolean: if true, ignore pEpAutoDownload option - * @param currentPepVersion: the current version of pEp - * - * @return true: installer for current platform is online available - * false: otherwise - */ - isPepUpdateAvailable: function(manualInstall = false, currentPepVersion) { - EnigmailLog.DEBUG("installPep.jsm: isPepUpdateAvailable()\n"); - - if (EnigmailCompat.isPostbox()) return false; - if (!manualInstall) { - // don't download anything if auto-download is disabled - if (!EnigmailPrefs.getPref("pEpAutoDownload")) return false; - } - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - let urlObj = null; - - let i = new Installer(null); - - i.getDownloadUrl(i, INSTALL_UPDATE). - then(function _gotUrl() { - urlObj = i.getUrlObj(); - inspector.exitNestedEventLoop(); - }). - catch(function _err(data) { - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - let vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator); - - if (urlObj && ("pepVersion" in urlObj)) { - // current version older than available version - // and available version <= PEP_MAX_VERSION? - if (vc.compare(currentPepVersion, urlObj.pepVersion) < 0 && - vc.compare(urlObj.pepVersion, PEP_MAX_VERSION) < 0) return true; - } - - return false; - } - -}; diff -Nru enigmail-2.1.6+ds1/package/keyEditor.jsm enigmail-2.2.4/package/keyEditor.jsm --- enigmail-2.1.6+ds1/package/keyEditor.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyEditor.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1392 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailKeyEditor"]; - - - - - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - -const GET_BOOL = "GET_BOOL"; -const GET_LINE = "GET_LINE"; -const GET_HIDDEN = "GET_HIDDEN"; - -const NS_PROMPTSERVICE_CONTRACTID = "@mozilla.org/embedcomp/prompt-service;1"; - -function GpgEditorInterface(reqObserver, callbackFunc, inputData) { - this._reqObserver = reqObserver; - this._callbackFunc = callbackFunc; - this._inputData = inputData; - - if (this._inputData && this._inputData.cardAdmin) { - this._saveCmd = "quit"; - } - else - this._saveCmd = "save"; -} - - -GpgEditorInterface.prototype = { - _stdin: null, - _data: "", - _txt: "", - _exitCode: 0, - errorMsg: "", - - setStdin: function(pipe) { - this._stdin = pipe; - if (this._data.length > 0) this.processData(); - }, - - gotData: function(data) { - //EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.gotData: '"+data+"'\n"); - this._data += data.replace(/\r\n/g, "\n"); - this.processData(); - }, - - processData: function() { - //EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.processData\n"); - var txt = ""; - while (this._data.length > 0 && this._stdin) { - var index = this._data.indexOf("\n"); - if (index < 0) { - txt = this._data; - this._data = ""; - } - else { - txt = this._data.substr(0, index); - this._data = this._data.substr(index + 1); - } - this.nextLine(txt); - } - }, - - closeStdin: function() { - EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.closeStdin:\n"); - if (this._stdin) { - this._stdin.close(); - this._stdin = null; - } - }, - - onComplete: function(parentCallback, exitCode) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.onComplete: exitCode=" + exitCode + "\n"); - - if (exitCode === 0) exitCode = this._exitCode; - - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.onComplete: returning exitCode " + exitCode + "\n"); - - parentCallback(exitCode, this.errorMsg); - }, - - writeLine: function(inputData) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.writeLine: '" + inputData + "'\n"); - this._stdin.write(inputData + "\n"); - }, - - nextLine: function(txt) { - if (txt.indexOf("[GNUPG:]") >= 0) { - if (this._reqObserver) { - var newTxt = this._reqObserver.onDataAvailable(txt); - if (newTxt.length > 0) { - - txt = newTxt; - } - } - this._txt = txt; - this.processLine(txt); - } - }, - - doCheck: function(inputType, promptVal) { - var a = this._txt.split(/ /); - return ((a[1] == inputType) && (a[2] == promptVal)); - }, - - getText: function() { - return this._txt; - }, - - handleGpgError: function(lineTxt) { - let retStatusObj = {}; - - EnigmailErrorHandling.parseErrorOutput(lineTxt, retStatusObj); - return retStatusObj; - }, - - processLine: function(txt) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: '" + txt + "'\n"); - var r = { - quitNow: false, - exitCode: -1 - }; - - try { - if (txt.indexOf("[GNUPG:] BAD_PASSPHRASE") >= 0 || - txt.indexOf("[GNUPG:] SC_OP_FAILURE 2") >= 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected bad passphrase\n"); - r.exitCode = -2; - r.quitNow = true; - this.errorMsg = EnigmailLocale.getString("badPhrase"); - } - else if (txt.indexOf("[GNUPG:] ERROR ") >= 0 || txt.indexOf("[GNUPG:] FAILURE ") >= 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected GnuPG ERROR message\n"); - let statusObj = this.handleGpgError(txt); - if (statusObj.statusFlags & EnigmailConstants.DISPLAY_MESSAGE) { - this.errorMsg = statusObj.statusMsg; - r.exitCode = -3; - r.quitNow = true; - } - } - else if (txt.indexOf("[GNUPG:] NO_CARD_AVAILABLE") >= 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected missing card\n"); - this.errorMsg = EnigmailLocale.getString("sc.noCardAvailable"); - r.exitCode = -3; - r.quitNow = true; - } - else if (txt.indexOf("[GNUPG:] ENIGMAIL_FAILURE") === 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected general failure\n"); - r.exitCode = -3; - r.quitNow = true; - this.errorMsg = txt.substr(26); - } - else if (txt.indexOf("[GNUPG:] ALREADY_SIGNED") >= 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected key already signed\n"); - this.errorMsg = EnigmailLocale.getString("keyAlreadySigned"); - r.exitCode = -1; - r.quitNow = true; - } - else if (txt.indexOf("[GNUPG:] MISSING_PASSPHRASE") >= 0) { - EnigmailLog.DEBUG("keyEdit.jsm: GpgEditorInterface.processLine: detected missing passphrase\n"); - this.errorMsg = EnigmailLocale.getString("noPassphrase"); - r.exitCode = -2; - this._exitCode = -2; - r.quitNow = true; - } - else if (txt.indexOf("[GNUPG:] GET_") < 0) { - // return if no "GET" statement - return; - } - } - catch (ex) { - txt = ""; - r.quitNow = true; - } - - if (!r.quitNow) { - if (txt.indexOf("[GNUPG:] GOT_IT") < 0) { - if (this._callbackFunc) { - this._callbackFunc(this._inputData, this, r); - if (r.exitCode === 0) { - this.writeLine(r.writeTxt); - } - else { - if (r.errorMsg && r.errorMsg.length > 0) - this.errorMsg = r.errorMsg; - } - } - else { - r.quitNow = true; - r.exitCode = 0; - } - } - else { - r.exitCode = 0; - } - } - - if (r.quitNow) { - try { - this.writeLine(this._saveCmd); - this.closeStdin(); - } - catch (ex) { - EnigmailLog.DEBUG("no more data\n"); - } - } - - if (r.exitCode !== null) - this._exitCode = r.exitCode; - }, - - QueryInterface: function(iid) { - if (!iid.equals(Ci.nsISupports)) - throw Components.results.NS_ERROR_NO_INTERFACE; - return this; - } -}; - -function editKey(parent, needPassphrase, userId, keyId, editCmd, inputData, callbackFunc, requestObserver, parentCallback) { - EnigmailLog.DEBUG("keyEdit.jsm: editKey: parent=" + parent + ", editCmd=" + editCmd + "\n"); - - if (!EnigmailCore.getService(parent)) { - EnigmailLog.ERROR("keyEdit.jsm: Enigmail.editKey: not yet initialized\n"); - parentCallback(-1, EnigmailLocale.getString("notInit")); - return -1; - } - - var keyIdList = keyId.split(" "); - var args = EnigmailGpg.getStandardArgs(false); - - var statusFlags = {}; - - args = args.concat(["--no-tty", "--no-verbose", "--status-fd", "1", "--logger-fd", "1", "--command-fd", "0"]); - if (userId) args = args.concat(["-u", userId]); - var editCmdArr; - if (typeof(editCmd) == "string") { - editCmdArr = [editCmd]; - } - else { - editCmdArr = editCmd; - } - - if (editCmdArr[0] == "revoke") { - // escape backslashes and ' characters - args = args.concat(["-a", "-o"]); - args.push(EnigmailFiles.getEscapedFilename(inputData.outFile.path)); - args.push("--gen-revoke"); - args = args.concat(keyIdList); - } - else if (editCmdArr[0].indexOf("--") === 0) { - args = args.concat(editCmd); - args = args.concat(keyIdList); - } - else { - args = args.concat(["--ask-cert-level", "--edit-key", keyId]); - args = args.concat(editCmd); - } - - - var command = EnigmailGpgAgent.agentPath; - EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n"); - - var keyEdit = new GpgEditorInterface(requestObserver, callbackFunc, inputData); - - try { - EnigmailExecution.execCmd2(command, args, - keyEdit.setStdin.bind(keyEdit), - keyEdit.gotData.bind(keyEdit), - function(result) { - EnigmailKeyRing.updateKeys(keyIdList); - keyEdit.onComplete(parentCallback, 0); // ignore exit code from GnuPG - } - ); - } - catch (ex) { - EnigmailLog.ERROR("keyEditor.jsm: editKey: " + command.path + " failed\n"); - parentCallback(-1, ""); - } - - return null; -} - -function runKeyTrustCheck(callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: runKeyTrustCheck()\n"); - - let args = EnigmailGpg.getStandardArgs(true); - args = args.concat(["--yes", "--check-trustdb"]); - - EnigmailExecution.execCmd2(EnigmailGpgAgent.agentPath, - args, - null, - function stdout(data) { - EnigmailLog.DEBUG(data); - }, - function(result) { - EnigmailLog.DEBUG("keyEdit.jsm: runKeyTrustCheck: done\n"); - }); -} - -/* - * NOTE: the callbackFunc used in every call to the key editor needs to be implemented like this: - * callbackFunc(returnCode, errorMsg) - * returnCode = 0 in case of success - * returnCode != 0 and errorMsg set in case of failure - */ -var EnigmailKeyEditor = { - setKeyTrust: function(parent, keyId, trustLevel, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.setKeyTrust: trustLevel=" + trustLevel + ", keyId=" + keyId + "\n"); - - return editKey(parent, false, null, keyId, "trust", { - trustLevel: trustLevel - }, - keyTrustCallback, - null, - function _f(returnCode, errorMsg) { - runKeyTrustCheck(); - EnigmailKeyRing.updateKeys([keyId]); - callbackFunc(returnCode, errorMsg); - }); - }, - - - /** - * Call editKey() to set the expiration date of the chosen key and subkeys - * - * @param Object parent - * @param String keyId e.g. 8D18EB22FDF633A2 - * @param Array subKeys List of Integer values, e.g. [0,1,3] - * "0" should allways be set because it's the main key. - * @param Integer expiryLength A number between 1 and 100 - * @param Integer timeScale 1 or 30 or 365 meaning days, months, years - * @param Boolean noExpiry True: Expire never. False: Use expiryLength. - * @param Function callbackFunc will be executed by editKey() - * @return Integer - * returnCode = 0 in case of success - * returnCode != 0 and errorMsg set in case of failure - */ - setKeyExpiration: function(parent, keyId, subKeys, expiryLength, timeScale, noExpiry, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.setKeyExpiry: keyId=" + keyId + "\n"); - - expiryLength = String(expiryLength); - if (noExpiry === true) { - expiryLength = "0"; - } - else { - switch (parseInt(timeScale, 10)) { - case 365: - expiryLength += "y"; - break; - case 30: - expiryLength += "m"; - break; - case 7: - expiryLength += "w"; - break; - } - } - - return editKey(parent, - true, - null, - keyId, - "", /* "expire", */ { - expiryLength: expiryLength, - subKeys: subKeys, - currentSubKey: false - }, - keyExpiryCallback, /* contains the gpg communication logic */ - null, - callbackFunc); - }, - - - signKey: function(parent, userId, keyId, signLocally, trustLevel, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.signKey: trustLevel=" + trustLevel + ", userId=" + userId + ", keyId=" + keyId + "\n"); - return editKey(parent, true, userId, keyId, (signLocally ? "lsign" : "sign"), { - trustLevel: trustLevel, - usePassphrase: true - }, - signKeyCallback, - null, - function _f(returnCode, errorMsg) { - runKeyTrustCheck(); - EnigmailKeyRing.updateKeys([keyId]); - callbackFunc(returnCode, errorMsg); - }); - - }, - - genRevokeCert: function(parent, keyId, outFile, reasonCode, reasonText, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.genRevokeCert: keyId=" + keyId + "\n"); - - /** - * GnuPG < 2.1 does not properly report failures; - * therefore we check if the revokation certificate was really generated - */ - function checkGeneratedCert(exitCode, errorMsg) { - if (!outFile.exists()) { - exitCode = 1; - errorMsg = ""; - } - callbackFunc(exitCode, errorMsg); - } - - return editKey(parent, true, null, keyId, "revoke", { - outFile: outFile, - reasonCode: reasonCode, - reasonText: EnigmailData.convertFromUnicode(reasonText), - usePassphrase: true - }, - revokeCertCallback, - null, - checkGeneratedCert); - }, - - addUid: function(parent, keyId, name, email, comment, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.addUid: keyId=" + keyId + ", name=" + name + ", email=" + email + "\n"); - return editKey(parent, true, null, keyId, "adduid", { - email: email, - name: name, - comment: comment, - nameAsked: 0, - emailAsked: 0, - usePassphrase: true - }, - addUidCallback, - null, - callbackFunc); - }, - - deleteKey: function(parent, keyId, deleteSecretKey, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.addUid: keyId=" + keyId + ", deleteSecretKey=" + deleteSecretKey + "\n"); - - var cmd = ["--yes", (deleteSecretKey ? "--delete-secret-and-public-key" : "--delete-key")]; - return editKey(parent, false, null, keyId, cmd, { - usePassphrase: true - }, - deleteKeyCallback, - null, - callbackFunc); - }, - - changePassphrase: function(parent, keyId, oldPw, newPw, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.changePassphrase: keyId=" + keyId + "\n"); - - var pwdObserver = new ChangePasswdObserver(); - return editKey(parent, false, null, keyId, "passwd", { - oldPw: oldPw, - newPw: newPw, - step: 0, - observer: pwdObserver, - usePassphrase: true - }, - changePassphraseCallback, - pwdObserver, - callbackFunc); - }, - - - enableDisableKey: function(parent, keyId, disableKey, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.enableDisableKey: keyId=" + keyId + ", disableKey=" + disableKey + "\n"); - - var cmd = (disableKey ? "disable" : "enable"); - return editKey(parent, false, null, keyId, cmd, { - usePassphrase: true - }, - null, - null, - callbackFunc); - }, - - setPrimaryUid: function(parent, keyId, idNumber, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.setPrimaryUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n"); - return editKey(parent, true, null, keyId, "", { - idNumber: idNumber, - step: 0, - usePassphrase: true - }, - setPrimaryUidCallback, - null, - callbackFunc); - }, - - - deleteUid: function(parent, keyId, idNumber, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.deleteUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n"); - return editKey(parent, true, null, keyId, "", { - idNumber: idNumber, - step: 0, - usePassphrase: true - }, - deleteUidCallback, - null, - callbackFunc); - }, - - - revokeUid: function(parent, keyId, idNumber, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.revokeUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n"); - return editKey(parent, true, null, keyId, "", { - idNumber: idNumber, - step: 0, - usePassphrase: true - }, - revokeUidCallback, - null, - callbackFunc); - }, - - addPhoto: function(parent, keyId, photoFile, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.addPhoto: keyId=" + keyId + "\n"); - - var photoFileName = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(photoFile.QueryInterface(Ci.nsIFile))); - - return editKey(parent, true, null, keyId, "addphoto", { - file: photoFileName, - step: 0, - usePassphrase: true - }, - addPhotoCallback, - null, - function _f(returnCode, errorMsg) { - runKeyTrustCheck(); - EnigmailKeyRing.updateKeys([keyId]); - callbackFunc(returnCode, errorMsg); - }); - }, - - - genCardKey: function(parent, name, email, comment, expiry, backupPasswd, requestObserver, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.genCardKey: \n"); - var generateObserver = new EnigCardAdminObserver(requestObserver, EnigmailOS.isDosLike); - return editKey(parent, false, null, "", ["--with-colons", "--card-edit"], { - step: 0, - name: EnigmailData.convertFromUnicode(name), - email: email, - comment: EnigmailData.convertFromUnicode(comment), - expiry: expiry, - backupPasswd: backupPasswd, - cardAdmin: true, - backupKey: (backupPasswd.length > 0 ? "Y" : "N"), - parent: parent - }, - genCardKeyCallback, - generateObserver, - callbackFunc); - }, - - cardAdminData: function(parent, name, firstname, lang, sex, url, login, forcepin, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.cardAdminData: parent=" + parent + ", name=" + name + ", firstname=" + firstname + ", lang=" + lang + ", sex=" + sex + ", url=" + url + - ", login=" + login + ", forcepin=" + forcepin + "\n"); - var adminObserver = new EnigCardAdminObserver(null, EnigmailOS.isDosLike); - return editKey(parent, false, null, "", ["--with-colons", "--card-edit"], { - step: 0, - name: name, - firstname: firstname, - lang: lang, - sex: sex, - url: url, - login: login, - cardAdmin: true, - forcepin: forcepin - }, - cardAdminDataCallback, - adminObserver, - callbackFunc); - }, - - cardChangePin: function(parent, action, oldPin, newPin, adminPin, pinObserver, callbackFunc) { - EnigmailLog.DEBUG("keyEdit.jsm: Enigmail.cardChangePin: parent=" + parent + ", action=" + action + "\n"); - var adminObserver = new EnigCardAdminObserver(pinObserver, EnigmailOS.isDosLike); - - return editKey(parent, true, null, "", ["--with-colons", "--card-edit"], { - step: 0, - pinStep: 0, - cardAdmin: true, - action: action, - oldPin: oldPin, - newPin: newPin, - adminPin: adminPin - }, - cardChangePinCallback, - adminObserver, - callbackFunc); - } - -}; // EnigmailKeyEditor - - -function signKeyCallback(inputData, keyEdit, ret) { - - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_BOOL, "sign_uid.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "keyedit.sign_all.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_LINE, "sign_uid.expire")) { - ret.exitCode = 0; - ret.writeTxt = "0"; - } - else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_value")) { - ret.exitCode = 0; - ret.writeTxt = "0"; - } - else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_depth")) { - ret.exitCode = 0; - ret.writeTxt = ""; - } - else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_regexp")) { - ret.exitCode = 0; - ret.writeTxt = "0"; - } - else if (keyEdit.doCheck(GET_LINE, "siggen.valid")) { - ret.exitCode = 0; - ret.writeTxt = "0"; - } - else if (keyEdit.doCheck(GET_BOOL, "sign_uid.local_promote_okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "sign_uid.replace_expired_okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_LINE, "sign_uid.class")) { - ret.exitCode = 0; - ret.writeTxt = String(inputData.trustLevel); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.quitNow = true; - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function keyTrustCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "edit_ownertrust.value")) { - ret.exitCode = 0; - ret.writeTxt = String(inputData.trustLevel); - } - else if (keyEdit.doCheck(GET_BOOL, "edit_ownertrust.set_ultimate.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.quitNow = true; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -/** - * - * @param Array inputData Has the keys ... - * expiryLength (String): e.g. 8m = 8 month, 5 = 5 days, 3y = 3 years, 0 = never - * subKeys (array): list of still unprocessed subkeys - * currentSubKey (Integer or false): current subkey in progress - * @param Object keyEdit Readonly messages from GPG. - * @param Object ret - */ -function keyExpiryCallback(inputData, keyEdit, ret) { - EnigmailLog.DEBUG("keyEdit.jsm: keyExpiryCallback()\n"); - - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (inputData.subKeys.length === 0) { - // zero keys are submitted to edit: this must be a mistake. - ret.exitCode = -1; - ret.quitNow = true; - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - if (inputData.currentSubKey === false) { - // currently no subkey is selected. Chose the first subkey. - inputData.currentSubKey = inputData.subKeys[0]; - ret.exitCode = 0; - ret.writeTxt = "key " + inputData.currentSubKey; - } - else if (inputData.currentSubKey === inputData.subKeys[0]) { - // a subkey is selected. execute command "expire" - ret.exitCode = 0; - ret.writeTxt = "expire"; - } - else { - // if (inputData.currentSubKey === inputData.subKeys[0]) - // unselect the previous used subkey - ret.exitCode = 0; - ret.writeTxt = "key " + inputData.currentSubKey; - inputData.currentSubKey = false; - } - } - else if (keyEdit.doCheck(GET_LINE, "keygen.valid")) { - // submit the expiry length. - ret.exitCode = 0; - ret.writeTxt = inputData.expiryLength; - // processing of the current subkey is through. - // remove current subkey from list of "to be processed keys". - inputData.subKeys.splice(0, 1); - // if the list of "to be processed keys" is empty, then quit. - if (inputData.subKeys.length === 0) { - ret.quitNow = true; - } - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function addUidCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "keygen.name")) { - ++inputData.nameAsked; - if (inputData.nameAsked == 1) { - ret.exitCode = 0; - ret.writeTxt = inputData.name; - } - else { - ret.exitCode = -1; - ret.quitNow = true; - ret.errorMsg = "Invalid name (too short)"; - } - } - else if (keyEdit.doCheck(GET_LINE, "keygen.email")) { - ++inputData.emailAsked; - if (inputData.emailAsked == 1) { - ret.exitCode = 0; - ret.writeTxt = inputData.email; - } - else { - ret.exitCode = -1; - ret.quitNow = true; - ret.errorMsg = "Invalid email"; - } - } - else if (keyEdit.doCheck(GET_LINE, "keygen.comment")) { - ret.exitCode = 0; - if (inputData.comment) { - ret.writeTxt = inputData.comment; - } - else { - ret.writeTxt = ""; - } - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.quitNow = true; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function revokeCertCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.code")) { - ret.exitCode = 0; - ret.writeTxt = String(inputData.reasonCode); - } - else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.text")) { - ret.exitCode = 0; - ret.writeTxt = ""; - } - else if (keyEdit.doCheck(GET_BOOL, "gen_revoke.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "ask_revocation_reason.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "openfile.overwrite.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.quitNow = true; - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function setPrimaryUidCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ++inputData.step; - switch (inputData.step) { - case 1: - ret.exitCode = 0; - ret.writeTxt = "uid " + inputData.idNumber; - break; - case 2: - ret.exitCode = 0; - ret.writeTxt = "primary"; - break; - case 3: - ret.exitCode = 0; - ret.quitNow = true; - break; - default: - ret.exitCode = -1; - ret.quitNow = true; - } - - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function changePassphraseCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_HIDDEN, "passphrase.enter")) { - switch (inputData.observer.passphraseStatus) { - case 0: - ret.writeTxt = inputData.oldPw; - ret.exitCode = 0; - break; - case 1: - ret.writeTxt = inputData.newPw; - ret.exitCode = 0; - break; - case -1: - ret.exitCode = -2; - ret.quitNow = true; - break; - } - } - else if (keyEdit.doCheck(GET_BOOL, "change_passwd.empty.okay")) { - ret.writeTxt = "Y"; - ret.exitCode = 0; - } - else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.quitNow = true; - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function deleteUidCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ++inputData.step; - switch (inputData.step) { - case 1: - ret.exitCode = 0; - ret.writeTxt = "uid " + inputData.idNumber; - break; - case 2: - ret.exitCode = 0; - ret.writeTxt = "deluid"; - break; - case 4: - ret.exitCode = 0; - ret.quitNow = true; - break; - default: - ret.exitCode = -1; - ret.quitNow = true; - } - } - else if (keyEdit.doCheck(GET_BOOL, "keyedit.remove.uid.okay")) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function revokeUidCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ++inputData.step; - switch (inputData.step) { - case 1: - ret.exitCode = 0; - ret.writeTxt = "uid " + inputData.idNumber; - break; - case 2: - ret.exitCode = 0; - ret.writeTxt = "revuid"; - break; - case 7: - ret.exitCode = 0; - ret.quitNow = true; - break; - default: - ret.exitCode = -1; - ret.quitNow = true; - } - } - else if (keyEdit.doCheck(GET_BOOL, "keyedit.revoke.uid.okay")) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.code")) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = "0"; // no reason specified - } - else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.text")) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = ""; - } - else if (keyEdit.doCheck(GET_BOOL, "ask_revocation_reason.okay")) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - - -function deleteKeyCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_BOOL, "delete_key.secret.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "keyedit.remove.subkey.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_BOOL, "delete_key.okay")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function getPin(domWindow, promptMsg, ret) { - EnigmailLog.DEBUG("keyEdit.jsm: getPin: \n"); - - var passwdObj = { - value: "" - }; - var dummyObj = {}; - - var success = false; - - var promptService = Cc[NS_PROMPTSERVICE_CONTRACTID].getService(Ci.nsIPromptService); - success = promptService.promptPassword(domWindow, - EnigmailLocale.getString("Enigmail"), - promptMsg, - passwdObj, - null, - dummyObj); - - if (!success) { - ret.errorMsg = EnigmailLocale.getString("noPassphrase"); - ret.quitNow = true; - return false; - } - - EnigmailLog.DEBUG("keyEdit.jsm: getPin: got pin\n"); - ret.writeTxt = passwdObj.value; - - return true; -} - -function genCardKeyCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - var pinObj = {}; - - if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) { - if (inputData.step === 0) { - ret.exitCode = 0; - ret.writeTxt = "admin"; - } - else if (inputData.step == 1) { - ret.exitCode = 0; - ret.writeTxt = "generate"; - } - else { - ret.exitCode = 0; - ret.quitNow = true; - ret.writeTxt = "quit"; - } - ++inputData.step; - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.genkeys.backup_enc") || - keyEdit.doCheck(GET_BOOL, "cardedit.genkeys.backup_enc")) { - ret.exitCode = 0; - ret.writeTxt = String(inputData.backupKey); - } - else if (keyEdit.doCheck(GET_BOOL, "cardedit.genkeys.replace_keys")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.enter")) { - ret.exitCode = 0; - ret.writeTxt = inputData.backupPasswd; - } - else if (keyEdit.doCheck(GET_LINE, "keygen.valid")) { - ret.exitCode = 0; - ret.writeTxt = String(inputData.expiry); - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.genkeys.size")) { - ret.exitCode = 0; - ret.writeTxt = "2048"; - } - else if (keyEdit.doCheck(GET_LINE, "keygen.name")) { - ret.exitCode = 0; - ret.writeTxt = inputData.name; - } - else if (keyEdit.doCheck(GET_LINE, "keygen.email")) { - ret.exitCode = 0; - ret.writeTxt = inputData.email; - } - else if (keyEdit.doCheck(GET_LINE, "keygen.comment")) { - ret.exitCode = 0; - if (inputData.comment) { - ret.writeTxt = inputData.comment; - } - else { - ret.writeTxt = ""; - } - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function cardAdminDataCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - var pinObj = {}; - - if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) { - ++inputData.step; - ret.exitCode = 0; - switch (inputData.step) { - case 1: - ret.writeTxt = "admin"; - break; - case 2: - ret.writeTxt = "name"; - break; - case 3: - ret.writeTxt = "lang"; - break; - case 4: - ret.writeTxt = "sex"; - break; - case 5: - ret.writeTxt = "url"; - break; - case 6: - ret.writeTxt = "login"; - break; - case 7: - if (inputData.forcepin !== 0) { - ret.writeTxt = "forcesig"; - } - else { - ret.writeTxt = "quit"; - ret.exitCode = 0; - ret.quitNow = true; - } - break; - default: - ret.writeTxt = "quit"; - ret.exitCode = 0; - ret.quitNow = true; - break; - } - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else if (keyEdit.doCheck(GET_LINE, "keygen.smartcard.surname")) { - ret.exitCode = 0; - ret.writeTxt = inputData.name.replace(/^$/, "-"); - } - else if (keyEdit.doCheck(GET_LINE, "keygen.smartcard.givenname")) { - ret.exitCode = 0; - ret.writeTxt = inputData.firstname.replace(/^$/, "-"); - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.change_sex")) { - ret.exitCode = 0; - ret.writeTxt = inputData.sex; - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.change_lang")) { - ret.exitCode = 0; - ret.writeTxt = inputData.lang.replace(/^$/, "-"); - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.change_url")) { - ret.exitCode = 0; - ret.writeTxt = inputData.url.replace(/^$/, "-"); - } - else if (keyEdit.doCheck(GET_LINE, "cardedit.change_login")) { - ret.exitCode = 0; - ret.writeTxt = inputData.login.replace(/^$/, "-"); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function cardChangePinCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) { - ++inputData.step; - ret.exitCode = 0; - switch (inputData.step) { - case 1: - ret.writeTxt = "admin"; - break; - case 2: - ret.writeTxt = "passwd"; - break; - default: - ret.writeTxt = "quit"; - ret.exitCode = 0; - ret.quitNow = true; - break; - } - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - ret.exitCode = 0; - ret.writeTxt = inputData.adminPin; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - ret.exitCode = 0; - ret.writeTxt = inputData.oldPin; - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.new.ask") || - keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.repeat") || - keyEdit.doCheck(GET_HIDDEN, "passphrase.ask") || - keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.new.ask")) { - ret.exitCode = 0; - ret.writeTxt = inputData.newPin; - } - else if (keyEdit.doCheck(GET_LINE, "cardutil.change_pin.menu")) { - ret.exitCode = 0; - ++inputData.pinStep; - if (inputData.pinStep == 1) { - ret.writeTxt = inputData.action.toString(); - } - else { - ret.writeTxt = "Q"; - } - } - else { - ret.exitCode = -1; - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - } -} - - -function addPhotoCallback(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - - if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) { - ret.exitCode = 0; - ret.writeTxt = "save"; - ret.quitNow = true; - } - else if (keyEdit.doCheck(GET_LINE, "photoid.jpeg.add")) { - if (inputData.step === 0) { - ++inputData.step; - ret.exitCode = 0; - ret.writeTxt = inputData.file; - } - else { - ret.exitCode = -1; - ret.quitNow = true; - } - } - else if (keyEdit.doCheck(GET_BOOL, "photoid.jpeg.size")) { - ret.exitCode = 0; - ret.writeTxt = "Y"; // add large file - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret); - } - else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) { - getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret); - } - else { - ret.quitNow = true; - EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n"); - ret.exitCode = -1; - } -} - -function EnigCardAdminObserver(guiObserver, isDosLike) { - this._guiObserver = guiObserver; - this._isDosLike = isDosLike; -} - -EnigCardAdminObserver.prototype = { - _guiObserver: null, - _failureCode: 0, - - onDataAvailable: function(data) { - var ret = ""; - EnigmailLog.DEBUG("keyEdit.jsm: enigCardAdminObserver.onDataAvailable: data=" + data + "\n"); - if (this._isDosLike && data.indexOf("[GNUPG:] BACKUP_KEY_CREATED") === 0) { - data = data.replace(/\//g, "\\"); - } - if (data.indexOf("[GNUPG:] SC_OP_FAILURE") >= 0) { - data = data.substr(23); - if (data == "2") { - data = "[GNUPG:] BAD_PASSPHRASE 0"; - this._failureCode = 2; - } - else - this._failureCode = 1; - } - if (this._failureCode == 1) { - ret = "[GNUPG:] ENIGMAIL_FAILURE " + data; - } - if (this._guiObserver) { - this._guiObserver.onDataAvailable(data); - } - return ret; - } -}; - -function ChangePasswdObserver() {} - -ChangePasswdObserver.prototype = { - _failureCode: 0, - passphraseStatus: 0, - - onDataAvailable: function(data) { - var ret = ""; - EnigmailLog.DEBUG("keyEdit.jsm: ChangePasswdObserver.onDataAvailable: data=" + data + "\n"); - if (this._failureCode) { - ret = "[GNUPG:] ENIGMAIL_FAILURE " + data; - } - if (data.indexOf("[GNUPG:] GOOD_PASSPHRASE") >= 0) { - this.passphraseStatus = 1; - } - else if (data.indexOf("[GNUPG:] BAD_PASSPHRASE") >= 0) { - this.passphraseStatus = -1; - } - return ret; - } -}; diff -Nru enigmail-2.1.6+ds1/package/key.jsm enigmail-2.2.4/package/key.jsm --- enigmail-2.1.6+ds1/package/key.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/key.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -106,7 +106,6 @@ const cApi = EnigmailCryptoAPI(); let keyList = []; let key = {}; - let blocks; errorMsgObj.value = ""; try { @@ -125,7 +124,7 @@ if (interactive && retArr.length === 1) { key = retArr[0]; if (("revoke" in key) && (!("name" in key))) { - this.importRevocationCert(key.id, blocks.join("\n")); + this.importRevocationCert(key.id, keyBlockStr); return []; } } diff -Nru enigmail-2.1.6+ds1/package/keyObj.jsm enigmail-2.2.4/package/keyObj.jsm --- enigmail-2.1.6+ds1/package/keyObj.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyObj.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -27,6 +27,9 @@ - secretAvailable - [Boolean] true if secret key is available - algoSym - public key algorithm type (String, e.g. RSA) - keySize - size of public key + - token - S/N of card for keys on smartcard + # for offline public keys + + for regular secret keys - type - "pub" or "grp" - userIds - [Array]: - Contains ALL UIDs (including the primary UID) * userId - User ID @@ -61,6 +64,7 @@ * clone * getMinimalPubKey * getVirtualKeySize + * getSecretKey */ const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; @@ -92,6 +96,7 @@ this.minimalKeyBlock = []; this.photoAvailable = false; this.secretAvailable = false; + this.token = ""; this._sigList = null; this.type = keyData.type; @@ -103,7 +108,7 @@ const ATTRS = [ "created", "keyCreated", "keyTrust", "keyUseFor", "ownerTrust", "algoSym", "keySize", - "userIds", "subKeys", "fpr", "secretAvailable", "photoAvailable", "userId" + "userIds", "subKeys", "fpr", "secretAvailable", "photoAvailable", "userId", "token" ]; for (let i of ATTRS) { if (i in keyData) { @@ -124,7 +129,7 @@ get signatures() { if (this._sigList === null) { const cApi = EnigmailCryptoAPI(); - this._sigList = cApi.sync(cApi.getKeySignatures(this.keyId)); + this._sigList = cApi.sync(cApi.getKeySignatures(this.fpr)); } return this._sigList; @@ -497,4 +502,4 @@ const cApi = EnigmailCryptoAPI(); return cApi.sync(cApi.extractSecretKey(this.fpr, minimalKey)); } -} \ No newline at end of file +} diff -Nru enigmail-2.1.6+ds1/package/keyRefreshService.jsm enigmail-2.2.4/package/keyRefreshService.jsm --- enigmail-2.1.6+ds1/package/keyRefreshService.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyRefreshService.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailKeyRefreshService"]; - - - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailKeyServer = ChromeUtils.import("chrome://enigmail/content/modules/keyserver.jsm").EnigmailKeyServer; -const EnigmailKeyserverURIs = ChromeUtils.import("chrome://enigmail/content/modules/keyserverUris.jsm").EnigmailKeyserverURIs; - -const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; -const ONE_HOUR_IN_MILLISEC = 60 * 60 * 1000; - -let gTimer = null; - -function getTimer() { - if (gTimer === null) gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); - return gTimer; -} - -const HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF = "hoursPerWeekEnigmailIsOn"; -const SECONDS_MIN_DELAY = "refreshMinDelaySeconds"; - -function calculateMaxTimeForRefreshInMilliseconds(totalPublicKeys) { - const millisecondsAvailableForRefresh = EnigmailPrefs.getPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF) * ONE_HOUR_IN_MILLISEC; - return Math.floor(millisecondsAvailableForRefresh / totalPublicKeys); -} - -function calculateWaitTimeInMilliseconds(totalPublicKeys) { - const randomNumber = EnigmailRNG.generateRandomUint32(); - const maxTimeForRefresh = calculateMaxTimeForRefreshInMilliseconds(totalPublicKeys); - const minDelay = EnigmailPrefs.getPref(SECONDS_MIN_DELAY) * 1000; - - EnigmailLog.DEBUG("keyRefreshService.jsm: Wait time = random number: " + randomNumber + " % max time for refresh: " + maxTimeForRefresh + "\n"); - - let millisec = randomNumber % maxTimeForRefresh; - if (millisec < minDelay) { - millisec += minDelay; - } - - EnigmailLog.DEBUG("keyRefreshService.jsm: Time until next refresh in milliseconds: " + millisec + "\n"); - - return millisec; -} - -function refreshKey() { - const timer = getTimer(); - refreshWith(EnigmailKeyServer, timer, true); -} - -function restartTimerInOneHour(timer) { - timer.initWithCallback(refreshKey, - ONE_HOUR_IN_MILLISEC, - Ci.nsITimer.TYPE_ONE_SHOT); -} - -function setupNextRefresh(timer, waitTime) { - timer.initWithCallback(refreshKey, - waitTime, - Ci.nsITimer.TYPE_ONE_SHOT); -} - -function logMissingInformation(keyIdsExist, validKeyserversExist) { - if (!keyIdsExist) { - EnigmailLog.DEBUG("keyRefreshService.jsm: No keys available to refresh yet. Will recheck in an hour.\n"); - } - if (!validKeyserversExist) { - EnigmailLog.DEBUG("keyRefreshService.jsm: Either no keyservers exist or the protocols specified are invalid. Will recheck in an hour.\n"); - } -} - -function getRandomKeyId(randomNumber) { - const keyRingLength = EnigmailKeyRing.getAllKeys().keyList.length; - - if (keyRingLength === 0) { - return null; - } - - return EnigmailKeyRing.getAllKeys().keyList[randomNumber % keyRingLength].keyId; -} - -function refreshKeyIfReady(keyserver, readyToRefresh, keyId) { - if (readyToRefresh) { - EnigmailLog.DEBUG("keyRefreshService.jsm: refreshing key ID " + keyId + "\n"); - return keyserver.download(keyId); - } - else { - return Promise.resolve(0); - } -} - -async function refreshWith(keyserver, timer, readyToRefresh) { - const keyId = getRandomKeyId(EnigmailRNG.generateRandomUint32()); - const keyIdsExist = keyId !== null; - const validKeyserversExist = EnigmailKeyserverURIs.validKeyserversExist(); - const ioService = Cc[IOSERVICE_CONTRACTID].getService(Ci.nsIIOService); - - if (keyIdsExist && validKeyserversExist) { - if (ioService && (!ioService.offline)) { - // don't try to refresh if we are offline - await refreshKeyIfReady(keyserver, readyToRefresh, keyId); - } - else { - EnigmailLog.DEBUG("keyRefreshService.jsm: offline - not refreshing any key\n"); - } - const waitTime = calculateWaitTimeInMilliseconds(EnigmailKeyRing.getAllKeys().keyList.length); - setupNextRefresh(timer, waitTime); - } - else { - logMissingInformation(keyIdsExist, validKeyserversExist); - restartTimerInOneHour(timer); - } -} - -/** - * Starts a process to continuously refresh keys on a random time interval and in random order. - * - * The default time period for all keys to be refreshed is one week, although the user can specifically set this in their preferences - * The wait time to refresh the next key is selected at random, from a range of zero milliseconds to the maximum time to refresh a key - * - * The maximum time to refresh a single key is calculated by averaging the total refresh time by the total number of public keys to refresh - * For example, if a user has 12 public keys to refresh, the maximum time to refresh a single key (by default) will be: milliseconds per week divided by 12 - * - * This service does not keep state, it will restart each time Enigmail is initialized. - * - * @param keyserver | dependency injected for testability - */ -function start(keyserver) { - if (EnigmailPrefs.getPref("keyRefreshOn")) { - EnigmailLog.DEBUG("keyRefreshService.jsm: Started\n"); - const timer = getTimer(); - refreshWith(keyserver, timer, false); - } -} - -/* - This module intializes the continuous key refresh functionality. This includes randomly selecting th key to refresh and the timing to wait between each refresh -*/ - -var EnigmailKeyRefreshService = { - start: start -}; diff -Nru enigmail-2.1.6+ds1/package/keyRing.jsm enigmail-2.2.4/package/keyRing.jsm --- enigmail-2.1.6+ds1/package/keyRing.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyRing.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -8,25 +8,18 @@ var EXPORTED_SYMBOLS = ["EnigmailKeyRing"]; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; const EnigmailTrust = ChromeUtils.import("chrome://enigmail/content/modules/trust.jsm").EnigmailTrust; const EnigmailArmor = ChromeUtils.import("chrome://enigmail/content/modules/armor.jsm").EnigmailArmor; const EnigmailTime = ChromeUtils.import("chrome://enigmail/content/modules/time.jsm").EnigmailTime; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; const newEnigmailKeyObj = ChromeUtils.import("chrome://enigmail/content/modules/keyObj.jsm").newEnigmailKeyObj; const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); const getWindows = EnigmailLazy.loader("enigmail/windows.jsm", "EnigmailWindows"); const getKeyUsability = EnigmailLazy.loader("enigmail/keyUsability.jsm", "EnigmailKeyUsability"); @@ -76,10 +69,8 @@ getAllKeys: function(win, sortColumn, sortDirection) { if (gKeyListObj.keySortList.length === 0) { loadKeyList(win, sortColumn, sortDirection); - getWindows().keyManReloadKeys(); if (!gKeyCheckDone) { gKeyCheckDone = true; - runKeyUsabilityCheck(); } } else { @@ -286,12 +277,13 @@ const cApi = EnigmailCryptoAPI(); let res = cApi.sync(cApi.importKeyFromFile(inputFile)); + + if (!res) return 1; + if (importedKeysObj) { importedKeysObj.value = res.importedKeys.join(";"); } - if (!res) return 1; - if (res.importedKeys.length > 0) { EnigmailKeyRing.updateKeys(res.importedKeys); } @@ -382,7 +374,7 @@ * * @param includeSecretKey Boolean - if true, secret keys are exported * @param userId String - space or comma separated list of keys to export. Specification by - * key ID, fingerprint, or userId + * key ID, email or fingerprint * @param outputFile String or nsIFile - output file name or Object - or NULL * @param exitCodeObj Object - o.value will contain exit code * @param errorMsgObj Object - o.value will contain error message from GnuPG @@ -390,28 +382,41 @@ * @return String - if outputFile is NULL, the key block data; "" if a file is written */ extractKey: function(includeSecretKey, userId, outputFile, exitCodeObj, errorMsgObj) { - EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.extractKey: " + userId + "\n"); - let args = EnigmailGpg.getStandardArgs(true).concat(["-a", "--export"]); + EnigmailLog.DEBUG(`keyRing.jsm: EnigmailKeyRing.extractKey: ${userId}\n`); - if (userId) { - args = args.concat(userId.split(/[ ,\t]+/)); - } + const cApi = EnigmailCryptoAPI(); - const cmdErrorMsgObj = {}; - let keyBlock = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, {}, {}, cmdErrorMsgObj); + let keys = userId.split(/[ ,\t]+/); + let keyList = []; + let k; + + for (let keyId of keys) { + k = this.getKeyById(keyId); + if (k) { + keyList.push("0x" + k.fpr); + } + else { + k = EnigmailKeyRing.getKeysByUserId(keyId); - if ((exitCodeObj.value === 0) && !keyBlock) { - exitCodeObj.value = -1; + if (k && k.length > 0) { + keyList = keyList.concat(k.map(keyObj => { + return "0x" + keyObj.fpr; + })); + } + } } - if (exitCodeObj.value !== 0) { - errorMsgObj.value = EnigmailLocale.getString("failKeyExtract"); + let r = cApi.sync(cApi.extractPublicKey(keyList.join(" "))); - if (cmdErrorMsgObj.value) { - errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args); - errorMsgObj.value += "\n" + cmdErrorMsgObj.value; - } + let keyBlock = r.keyData; + exitCodeObj.value = r.exitCode; + if ((r.exitCode === 0) && !r.keyData) { + exitCodeObj.value = -1; + } + + if (r.exitCode !== 0) { + errorMsgObj.value = r.errorMsg; return ""; } @@ -463,39 +468,30 @@ * @return String - if outputFile is NULL, the key block data; "" if a file is written */ extractOwnerTrust: function(outputFile, exitCodeObj, errorMsgObj) { - let args = EnigmailGpg.getStandardArgs(true).concat(["--export-ownertrust"]); + let cApi = EnigmailCryptoAPI(); - let trustData = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, {}, {}, errorMsgObj); + let res = cApi.sync(cApi.getOwnerTrust(outputFile)); - if (outputFile) { - if (!EnigmailFiles.writeFileContents(outputFile, trustData, DEFAULT_FILE_PERMS)) { - exitCodeObj.value = -1; - errorMsgObj.value = EnigmailLocale.getString("fileWriteFailed", [outputFile]); - } - return ""; - } + exitCodeObj.value = res.exitCode; + errorMsgObj.value = res.errorMsg; - return trustData; + return res.ownerTrustData; }, /** * Import the ownertrust database into GnuPG - * @param inputFile String or nsIFile - input file name or Object - or NULL + * @param inputFile String or nsIFile - input file name or Object * @param errorMsgObj Object - o.value will contain error message from GnuPG * * @return exit code */ importOwnerTrust: function(inputFile, errorMsgObj) { - let args = EnigmailGpg.getStandardArgs(true).concat(["--import-ownertrust"]); + let cApi = EnigmailCryptoAPI(); - let exitCodeObj = {}; - try { - let trustData = EnigmailFiles.readFile(inputFile); - EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, trustData, exitCodeObj, {}, {}, errorMsgObj); - } - catch (ex) {} + let res = cApi.sync(cApi.importOwnerTrust(inputFile)); + errorMsgObj.value = res.errorMsg; - return exitCodeObj.value; + return res.exitCode; }, /** @@ -563,62 +559,24 @@ } } - let args = EnigmailGpg.getStandardArgs(false).concat(["--no-verbose", "--status-fd", "2"]); - if (minimizeKey) { - args = args.concat(["--import-options", "import-minimal"]); - } - - if (limitedUids.length > 0 && EnigmailGpg.getGpgFeature("export-specific-uid")) { - let filter = limitedUids.map(i => { - return `mbox =~ ${i}`; - }).join(" || "); - - args.push("--import-filter"); - args.push(`keep-uid=${filter}`); - } - args = args.concat(["--no-auto-check-trustdb", "--import"]); + const cApi = EnigmailCryptoAPI(); + const res = await cApi.importKeyData(keyBlock, minimizeKey, limitedUids); - const res = await EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, pgpBlock); - const statusMsg = res.statusMsg; + let exitCode = res.exitCode; - if (!importedKeysObj) { - importedKeysObj = {}; + if (res.secCount !== res.secImported + res.secDups) { + EnigmailKeyRing.clearCache(); + errorMsgObj.value = EnigmailLocale.getString("import.secretKeyImportError"); + return 1; } - importedKeysObj.value = []; - let exitCode = 1; - if (statusMsg && (statusMsg.search(/^IMPORT_RES /m) > -1)) { - let importRes = statusMsg.match(/^IMPORT_RES ([0-9]+) ([0-9]+) ([0-9]+) 0 ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/m); - - if (importRes !== null) { - let secCount = parseInt(importRes[9], 10); // number of secret keys found - let secImported = parseInt(importRes[10], 10); // number of secret keys imported - let secDups = parseInt(importRes[11], 10); // number of secret keys already on the keyring - - if (secCount !== secImported + secDups) { - EnigmailKeyRing.clearCache(); - errorMsgObj.value = EnigmailLocale.getString("import.secretKeyImportError"); - return 1; - } - } - - exitCode = 0; - // Normal return - if (statusMsg.search(/^IMPORT_OK /m) > -1) { - let l = statusMsg.split(/\r|\n/); - for (let i = 0; i < l.length; i++) { - const matches = l[i].match(/^(IMPORT_OK [0-9]+ )(([0-9a-fA-F]{8}){2,5})/); - if (matches && (matches.length > 2)) { - EnigmailLog.DEBUG("enigmail.js: Enigmail.importKey: IMPORTED 0x" + matches[2] + "\n"); - importedKeysObj.value.push(matches[2]); - } - } + if (importedKeysObj) { + importedKeysObj.value = res.importedKeys; + } - if (importedKeysObj.value.length > 0) { - EnigmailKeyRing.updateKeys(importedKeysObj.value); - } - } + if (res.importedKeys.length > 0) { + EnigmailKeyRing.updateKeys(res.importedKeys); } return exitCode; @@ -638,109 +596,14 @@ * @keyLength: Number - size of key in bytes (e.g 4096) * @keyType: String - RSA or ECC * @passphrase: String - password; null if no password - * @listener: Object - { - * function onDataAvailable(data) {...}, - * function onStopRequest(exitCode) {...} - * } * - * @return: handle to process + * @return: handle to process, @see interface.js->generatedKey() */ - generateKey: function(name, comment, email, expiryDate, keyLength, keyType, - passphrase, listener) { - EnigmailLog.WRITE("keyRing.jsm: generateKey:\n"); - - if (EnigmailKeyRing.isGeneratingKey()) { - // key generation already ongoing - throw Components.results.NS_ERROR_FAILURE; - } - - const args = EnigmailGpg.getStandardArgs(true).concat(["--gen-key"]); - - EnigmailLog.CONSOLE(EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args)); - - let inputData = "%echo Generating key\nKey-Type: "; - - switch (keyType) { - case "RSA": - inputData += "RSA\nKey-Usage: sign,auth\nKey-Length: " + keyLength; - inputData += "\nSubkey-Type: RSA\nSubkey-Usage: encrypt\nSubkey-Length: " + keyLength + "\n"; - break; - case "ECC": - inputData += "EDDSA\nKey-Curve: Ed25519\nKey-Usage: sign\n"; - inputData += "Subkey-Type: ECDH\nSubkey-Curve: Curve25519\nSubkey-Usage: encrypt\n"; - break; - default: - return null; - } - - if (name.replace(/ /g, "").length) { - inputData += "Name-Real: " + name + "\n"; - } - if (comment && comment.replace(/ /g, "").length) { - inputData += "Name-Comment: " + comment + "\n"; - } - inputData += "Name-Email: " + email + "\n"; - inputData += "Expire-Date: " + String(expiryDate) + "\n"; - - EnigmailLog.CONSOLE(inputData + " \n"); + generateKey: function(name, comment, email, expiryDate, keyLength, keyType, passphrase) { + EnigmailLog.DEBUG("keyRing.jsm: generateKey:\n"); - if (passphrase.length) { - inputData += "Passphrase: " + passphrase + "\n"; - } - else { - if (EnigmailGpg.getGpgFeature("genkey-no-protection")) { - inputData += "%echo no-protection\n"; - inputData += "%no-protection\n"; - } - } - - inputData += "%commit\n%echo done\n"; - - let proc = null; - - try { - proc = subprocess.call({ - command: EnigmailGpg.agentPath, - arguments: args, - environment: EnigmailCore.getEnvList(), - charset: null, - stdin: function(pipe) { - pipe.write(inputData); - pipe.close(); - }, - stderr: function(data) { - // extract key ID - if (data.search(/^\[GNUPG:\] KEY_CREATED/m)) { - let m = data.match(/^(\[GNUPG:\] KEY_CREATED [BPS] )([^ \r\n\t]+)$/m); - if (m && m.length > 2) { - listener.keyId = "0x" + m[2]; - } - } - listener.onDataAvailable(data); - }, - done: function(result) { - gKeygenProcess = null; - try { - if (result.exitCode === 0) { - EnigmailKeyRing.clearCache(); - } - listener.onStopRequest(result.exitCode); - } - catch (ex) {} - }, - mergeStderr: false - }); - } - catch (ex) { - EnigmailLog.ERROR("keyRing.jsm: generateKey: subprocess.call failed with '" + ex.toString() + "'\n"); - throw ex; - } - - gKeygenProcess = proc; - - EnigmailLog.DEBUG("keyRing.jsm: generateKey: subprocess = " + proc + "\n"); - - return proc; + const cApi = EnigmailCryptoAPI(); + return cApi.generateKey(name, comment, email, expiryDate, keyLength, keyType, passphrase); }, /** @@ -1014,8 +877,6 @@ else { loadKeyList(null, null, 1); } - - getWindows().keyManReloadKeys(); } }; // EnigmailKeyRing @@ -1208,27 +1069,6 @@ } -function runKeyUsabilityCheck() { - EnigmailLog.DEBUG("keyRing.jsm: runKeyUsabilityCheck()\n"); - - EnigmailTimer.setTimeout(function _f() { - try { - let msg = getKeyUsability().keyExpiryCheck(); - - if (msg && msg.length > 0) { - getDialog().info(null, msg); - } - else { - getKeyUsability().checkOwnertrust(); - } - } - catch (ex) { - EnigmailLog.DEBUG("keyRing.jsm: runKeyUsabilityCheck: exception " + ex.message + "\n" + ex.stack + "\n"); - } - - }, 60 * 1000); // 1 minute -} - function waitForKeyList() { let mainThread = Services.tm.mainThread; try { diff -Nru enigmail-2.1.6+ds1/package/keyserver.jsm enigmail-2.2.4/package/keyserver.jsm --- enigmail-2.1.6+ds1/package/keyserver.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyserver.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1640 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailKeyServer"]; - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailKeyserverURIs = ChromeUtils.import("chrome://enigmail/content/modules/keyserverUris.jsm").EnigmailKeyserverURIs; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailHttpProxy = ChromeUtils.import("chrome://enigmail/content/modules/httpProxy.jsm").EnigmailHttpProxy; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailXhrUtils = ChromeUtils.import("chrome://enigmail/content/modules/xhrUtils.jsm").EnigmailXhrUtils; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; - -const ENIG_DEFAULT_HKP_PORT = "11371"; -const ENIG_DEFAULT_HKPS_PORT = "443"; -const ENIG_DEFAULT_LDAP_PORT = "389"; - -const SKS_CACERT_URL = "https://sks-keyservers.net/sks-keyservers.netCA.pem"; -const HKPS_POOL_HOST = "hkps.pool.sks-keyservers.net"; -const SKS_CACERT_SUBJECTNAME = "CN=sks-keyservers.net CA,O=sks-keyservers.net CA,ST=Oslo,C=NO"; - -/** - KeySrvListener API - Object implementing: - - onProgress: function(percentComplete) [only implemented for download()] - - onCancel: function() - the body will be set by the callee -*/ - - -function createError(errId) { - let msg = ""; - switch (errId) { - case EnigmailConstants.KEYSERVER_ERR_ABORTED: - msg = EnigmailLocale.getString("keyserver.error.aborted"); - break; - case EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR: - msg = EnigmailLocale.getString("keyserver.error.serverError"); - break; - case EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE: - msg = EnigmailLocale.getString("keyserver.error.unavailable"); - break; - case EnigmailConstants.KEYSERVER_ERR_SECURITY_ERROR: - msg = EnigmailLocale.getString("keyserver.error.securityError"); - break; - case EnigmailConstants.KEYSERVER_ERR_CERTIFICATE_ERROR: - msg = EnigmailLocale.getString("keyserver.error.certificateError"); - break; - case EnigmailConstants.KEYSERVER_ERR_IMPORT_ERROR: - msg = EnigmailLocale.getString("keyserver.error.importError"); - break; - case EnigmailConstants.KEYSERVER_ERR_UNKNOWN: - msg = EnigmailLocale.getString("keyserver.error.unknown"); - break; - } - - return { - result: errId, - errorDetails: msg - }; -} - -/** - * parse a keyserver specification and return host, protocol and port - * - * @param keyserver: String - name of keyserver with optional protocol and port. - * E.g. keys.gnupg.net, hkps://keys.gnupg.net:443 - * - * @return Object: {port, host, protocol} (all Strings) - */ -function parseKeyserverUrl(keyserver) { - if (keyserver.length > 1024) { - // insane length of keyserver is forbidden - throw Components.results.NS_ERROR_FAILURE; - } - - keyserver = keyserver.toLowerCase().trim(); - let protocol = ""; - if (keyserver.search(/^[a-zA-Z0-9_.-]+:\/\//) === 0) { - protocol = keyserver.replace(/^([a-zA-Z0-9_.-]+)(:\/\/.*)/, "$1"); - keyserver = keyserver.replace(/^[a-zA-Z0-9_.-]+:\/\//, ""); - } - else { - protocol = "hkp"; - } - - let port = ""; - switch (protocol) { - case "hkp": - port = ENIG_DEFAULT_HKP_PORT; - break; - case "https": - case "hkps": - port = ENIG_DEFAULT_HKPS_PORT; - break; - case "ldap": - port = ENIG_DEFAULT_LDAP_PORT; - break; - } - - let m = keyserver.match(/^(.+)(:)(\d+)$/); - if (m && m.length == 4) { - keyserver = m[1]; - port = m[3]; - } - - if (keyserver.search(/^(keys\.mailvelope\.com|api\.protonmail\.ch)$/) === 0) { - protocol = "hkps"; - port = ENIG_DEFAULT_HKPS_PORT; - } - if (keyserver.search(/^(keybase\.io)$/) === 0) { - protocol = "keybase"; - port = ENIG_DEFAULT_HKPS_PORT; - } - - return { - protocol: protocol, - host: keyserver, - port: port - }; -} - - -/** - Object to handle HKP/HKPS requests via builtin XMLHttpRequest() - */ -const accessHkpInternal = { - /** - * Create the payload of hkp requests (upload only) - * - */ - buildHkpPayload: function(actionFlag, searchTerms) { - let payLoad = null, - keyData = ""; - - switch (actionFlag) { - case EnigmailConstants.UPLOAD_KEY: - keyData = EnigmailKeyRing.extractKey(false, searchTerms, null, {}, {}); - if (keyData.length === 0) return null; - - payLoad = "keytext=" + encodeURIComponent(keyData); - return payLoad; - - case EnigmailConstants.DOWNLOAD_KEY: - case EnigmailConstants.SEARCH_KEY: - case EnigmailConstants.GET_SKS_CACERT: - return ""; - } - - // other actions are not yet implemented - return null; - }, - - /** - * return the URL and the HTTP access method for a given action - */ - createRequestUrl: function(keyserver, actionFlag, searchTerm) { - let keySrv = parseKeyserverUrl(keyserver); - - let method = "GET"; - let protocol; - - switch (keySrv.protocol) { - case "hkp": - protocol = "http"; - break; - case "ldap": - throw Components.results.NS_ERROR_FAILURE; - default: // equals to hkps - protocol = "https"; - } - - let url = protocol + "://" + keySrv.host + ":" + keySrv.port; - - if (actionFlag === EnigmailConstants.UPLOAD_KEY) { - url += "/pks/add"; - method = "POST"; - } - else if (actionFlag === EnigmailConstants.DOWNLOAD_KEY) { - if (searchTerm.indexOf("0x") !== 0) { - searchTerm = "0x" + searchTerm; - } - url += "/pks/lookup?search=" + searchTerm + "&op=get&options=mr"; - } - else if (actionFlag === EnigmailConstants.SEARCH_KEY) { - url += "/pks/lookup?search=" + escape(searchTerm) + "&fingerprint=on&op=index&options=mr"; - } - else if (actionFlag === EnigmailConstants.GET_SKS_CACERT) { - url = SKS_CACERT_URL; - } - - return { - url: url, - host: keySrv.host, - method: method - }; - }, - - /** - * Upload, search or download keys from a keyserver - * @param actionFlag: Number - Keyserver Action Flags: from EnigmailConstants - * @param keyId: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - */ - accessKeyServer: function(actionFlag, keyserver, keyId, listener) { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer(${keyserver})\n`); - if (keyserver === null) { - keyserver = EnigmailKeyserverURIs.getDefaultKeyServer(); - } - - return new Promise((resolve, reject) => { - let xmlReq = null; - if (listener && typeof(listener) === "object") { - listener.onCancel = function() { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer - onCancel() called\n`); - if (xmlReq) { - xmlReq.abort(); - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_ABORTED)); - }; - } - if (actionFlag === EnigmailConstants.REFRESH_KEY) { - // we don't (need to) distinguish between refresh and download for our internal protocol - actionFlag = EnigmailConstants.DOWNLOAD_KEY; - } - - let payLoad = this.buildHkpPayload(actionFlag, keyId); - if (payLoad === null) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_UNKNOWN)); - return; - } - - let errorCode = 0; - - xmlReq = new XMLHttpRequest(); - - xmlReq.onload = function _onLoad() { - EnigmailLog.DEBUG("keyserver.jsm: accessHkpInternal: onload(): status=" + xmlReq.status + "\n"); - switch (actionFlag) { - case EnigmailConstants.UPLOAD_KEY: - EnigmailLog.DEBUG("keyserver.jsm: accessHkpInternal: onload: " + xmlReq.responseText + "\n"); - if (xmlReq.status >= 400) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - resolve(0); - } - return; - - case EnigmailConstants.SEARCH_KEY: - case EnigmailConstants.GET_SKS_CACERT: - if (xmlReq.status === 404) { - // key not found - resolve(""); - } - else if (xmlReq.status >= 400) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - resolve(xmlReq.responseText); - } - return; - - case EnigmailConstants.DOWNLOAD_KEY: - if (xmlReq.status >= 400 && xmlReq.status < 500) { - // key not found - resolve(1); - } - else if (xmlReq.status >= 500) { - EnigmailLog.DEBUG("keyserver.jsm: accessHkpInternal: onload: " + xmlReq.responseText + "\n"); - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - let errorMsgObj = {}, - importedKeysObj = {}; - let importMinimal = (xmlReq.responseText.length > 1024000 && (!EnigmailGpg.getGpgFeature("handles-huge-keys"))); - let r = EnigmailKeyRing.importKey(null, false, xmlReq.responseText, "", errorMsgObj, importedKeysObj, importMinimal); - if (r === 0) { - resolve(importedKeysObj.value); - } - else { - reject(createError(EnigmailConstants.KEYSERVER_ERR_IMPORT_ERROR)); - } - } - return; - } - resolve(-1); - }; - - xmlReq.onerror = function(e) { - EnigmailLog.DEBUG("keyserver.jsm: accessHkpInternal.accessKeyServer: onerror: " + e + "\n"); - let err = EnigmailXhrUtils.createTCPErrorFromFailedXHR(e.target); - switch (err.type) { - case 'SecurityCertificate': - reject(createError(EnigmailConstants.KEYSERVER_ERR_CERTIFICATE_ERROR)); - break; - case 'SecurityProtocol': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SECURITY_ERROR)); - break; - case 'Network': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - break; - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - }; - - xmlReq.onloadend = function() { - EnigmailLog.DEBUG("keyserver.jsm: accessHkpInternal.accessKeyServer: loadEnd\n"); - }; - - let { - url, - host, - method - } = this.createRequestUrl(keyserver, actionFlag, keyId); - - if (host === HKPS_POOL_HOST && actionFlag !== EnigmailConstants.GET_SKS_CACERT) { - this.getSksCACert().then(r => { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer: getting ${url}\n`); - xmlReq.open(method, url); - xmlReq.send(payLoad); - }); - } - else { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.accessKeyServer: requesting ${url}\n`); - xmlReq.open(method, url); - xmlReq.send(payLoad); - } - }); - }, - - installSksCACert: async function() { - EnigmailLog.DEBUG(`keyserver.jsm: installSksCACert()\n`); - let certDb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); - try { - let certTxt = await this.accessKeyServer(EnigmailConstants.GET_SKS_CACERT, "", "", null); - const BEGIN_CERT = "-----BEGIN CERTIFICATE-----"; - const END_CERT = "-----END CERTIFICATE-----"; - - certTxt = certTxt.replace(/[\r\n]/g, ""); - let begin = certTxt.indexOf(BEGIN_CERT); - let end = certTxt.indexOf(END_CERT); - let certData = certTxt.substring(begin + BEGIN_CERT.length, end); - let x509cert = certDb.addCertFromBase64(certData, "C,C,C", ""); - return x509cert; - } - catch (x) { - return null; - } - }, - - /** - * Get the CA certificate for the HKPS sks-keyserver pool - */ - getSksCACert: async function() { - EnigmailLog.DEBUG(`keyserver.jsm: getSksCACert()\n`); - let certDb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); - let cert = null; - - let it = certDb.getCerts().getEnumerator(); - while (it.hasMoreElements()) { - cert = it.getNext().QueryInterface(Ci.nsIX509Cert); - if (cert.subjectName === SKS_CACERT_SUBJECTNAME && cert.certType === Ci.nsIX509Cert.CA_CERT) { - return cert; - } - } - - cert = await this.installSksCACert(); - return cert; - }, - - /** - * Download keys from a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - download: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.download(${keyIDs})\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - for (let i = 0; i < keyIdArr.length; i++) { - try { - let r = await this.accessKeyServer(EnigmailConstants.DOWNLOAD_KEY, keyserver, keyIdArr[i], listener); - if (Array.isArray(r)) { - retObj.keyList = retObj.keyList.concat(r); - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - refresh: function(keyServer, listener = null) { - let keyList = EnigmailKeyRing.getAllKeys().keyList.map(keyObj => { - return "0x" + keyObj.fpr; - }).join(" "); - - return this.download(keyList, keyServer, listener); - }, - - /** - * Upload keys to a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - upload: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.upload(${keyIDs})\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - for (let i = 0; i < keyIdArr.length; i++) { - try { - let r = await this.accessKeyServer(EnigmailConstants.UPLOAD_KEY, keyserver, keyIdArr[i], listener); - if (r === 0) { - retObj.keyList.push(keyIdArr[i]); - } - else { - retObj.result = r; - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - /** - * Search for keys on a keyserver - * @param searchTerm: String - search term - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * - result: Number - * - pubKeys: Array of Object: - * PubKeys: Object with: - * - keyId: String - * - keyLen: String - * - keyType: String - * - created: String (YYYY-MM-DD) - * - status: String: one of ''=valid, r=revoked, e=expired - * - uid: Array of Strings with UIDs - */ - search: async function(searchTerm, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessHkpInternal.search(${searchTerm})\n`); - let retObj = { - result: 0, - errorDetails: "", - pubKeys: [] - }; - let key = null; - - let searchArr = searchTerm.split(/ +/); - - try { - for (let k in searchArr) { - let r = await this.accessKeyServer(EnigmailConstants.SEARCH_KEY, keyserver, searchArr[k], listener); - - let lines = r.split(/\r?\n/); - - for (var i = 0; i < lines.length; i++) { - let line = lines[i].split(/:/).map(unescape); - if (line.length <= 1) continue; - - switch (line[0]) { - case "info": - if (line[1] !== "1") { - // protocol version not supported - throw { - result: 7, - errorDetails: EnigmailLocale.getString("keyserver.error.unsupported"), - pubKeys: [] - }; - } - break; - case "pub": - if (line.length >= 6) { - if (key) { - retObj.pubKeys.push(key); - key = null; - } - let dat = new Date(line[4] * 1000); - let month = String(dat.getMonth() + 101).substr(1); - let day = String(dat.getDate() + 100).substr(1); - key = { - keyId: line[1], - keyLen: line[3], - keyType: line[2], - created: dat.getFullYear() + "-" + month + "-" + day, - uid: [], - status: line[6] - }; - } - break; - case "uid": - key.uid.push(EnigmailData.convertToUnicode(line[1].trim(), "utf-8")); - } - } - - if (key) { - retObj.pubKeys.push(key); - } - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - return retObj; - } -}; - -/** - Object to handle KeyBase requests (search & download only) - */ -const accessKeyBase = { - /** - * return the URL and the HTTP access method for a given action - */ - createRequestUrl: function(actionFlag, searchTerm) { - const method = "GET"; - - let url = "https://keybase.io/_/api/1.0/user/"; - - if (actionFlag === EnigmailConstants.UPLOAD_KEY) { - // not supported - throw Components.results.NS_ERROR_FAILURE; - } - else if (actionFlag === EnigmailConstants.DOWNLOAD_KEY) { - if (searchTerm.indexOf("0x") === 0) { - searchTerm = searchTerm.substr(0, 40); - } - url += "lookup.json?key_fingerprint=" + escape(searchTerm) + "&fields=public_keys"; - } - else if (actionFlag === EnigmailConstants.SEARCH_KEY) { - url += "autocomplete.json?q=" + escape(searchTerm); - } - - return { - url: url, - method: "GET" - }; - }, - - /** - * Upload, search or download keys from a keyserver - * @param actionFlag: Number - Keyserver Action Flags: from EnigmailConstants - * @param keyId: String - space-separated list of search terms or key IDs - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - */ - accessKeyServer: function(actionFlag, keyId, listener) { - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: accessKeyServer()\n`); - - return new Promise((resolve, reject) => { - let xmlReq = null; - if (listener && typeof(listener) === "object") { - listener.onCancel = function() { - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: accessKeyServer - onCancel() called\n`); - if (xmlReq) { - xmlReq.abort(); - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_ABORTED)); - }; - } - if (actionFlag === EnigmailConstants.REFRESH_KEY) { - // we don't (need to) distinguish between refresh and download for our internal protocol - actionFlag = EnigmailConstants.DOWNLOAD_KEY; - } - - let errorCode = 0; - - xmlReq = new XMLHttpRequest(); - - xmlReq.onload = function _onLoad() { - EnigmailLog.DEBUG("keyserver.jsm: onload(): status=" + xmlReq.status + "\n"); - switch (actionFlag) { - case EnigmailConstants.SEARCH_KEY: - if (xmlReq.status >= 400) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - resolve(xmlReq.responseText); - } - return; - - case EnigmailConstants.DOWNLOAD_KEY: - if (xmlReq.status >= 400 && xmlReq.status < 500) { - // key not found - resolve([]); - } - else if (xmlReq.status >= 500) { - EnigmailLog.DEBUG("keyserver.jsm: onload: " + xmlReq.responseText + "\n"); - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - try { - let resp = JSON.parse(xmlReq.responseText); - let imported = []; - - if (resp.status.code === 0) { - for (let hit in resp.them) { - EnigmailLog.DEBUG(JSON.stringify(resp.them[hit].public_keys.primary) + "\n"); - - if (resp.them[hit] !== null) { - let errorMsgObj = {}, - importedKeysObj = {}; - let r = EnigmailKeyRing.importKey(null, false, resp.them[hit].public_keys.primary.bundle, "", errorMsgObj, importedKeysObj); - if (r === 0) { - imported.push(importedKeysObj.value); - } - } - } - } - resolve(imported); - } - catch (ex) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_UNKNOWN)); - } - } - return; - } - resolve(-1); - }; - - xmlReq.onerror = function(e) { - EnigmailLog.DEBUG("keyserver.jsm: accessKeyBase: onerror: " + e + "\n"); - let err = EnigmailXhrUtils.createTCPErrorFromFailedXHR(e.target); - switch (err.type) { - case 'SecurityCertificate': - reject(createError(EnigmailConstants.KEYSERVER_ERR_CERTIFICATE_ERROR)); - break; - case 'SecurityProtocol': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SECURITY_ERROR)); - break; - case 'Network': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - break; - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - }; - - xmlReq.onloadend = function() { - EnigmailLog.DEBUG("keyserver.jsm: accessKeyBase: loadEnd\n"); - }; - - let { - url, - method - } = this.createRequestUrl(actionFlag, keyId); - - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: requesting ${url}\n`); - xmlReq.open(method, url); - xmlReq.send(""); - }); - }, - - /** - * Download keys from a KeyBase - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: (not used for keybase) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - download: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: download()\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - - for (let i = 0; i < keyIdArr.length; i++) { - try { - let r = await this.accessKeyServer(EnigmailConstants.DOWNLOAD_KEY, keyIdArr[i], listener); - if (r.length > 0) { - retObj.keyList = retObj.keyList.concat(r); - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.result; - throw retObj; - } - - if (listener && "onProgress" in listener) { - listener.onProgress(i / keyIdArr.length); - } - } - - return retObj; - }, - - /** - * Search for keys on a keyserver - * @param searchTerm: String - search term - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * - result: Number - * - pubKeys: Array of Object: - * PubKeys: Object with: - * - keyId: String - * - keyLen: String - * - keyType: String - * - created: String (YYYY-MM-DD) - * - status: String: one of ''=valid, r=revoked, e=expired - * - uid: Array of Strings with UIDs - - */ - search: async function(searchTerm, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: search()\n`); - let retObj = { - result: 0, - errorDetails: "", - pubKeys: [] - }; - - let key = {}; - - try { - let r = await this.accessKeyServer(EnigmailConstants.SEARCH_KEY, searchTerm, listener); - - let res = JSON.parse(r); - let completions = res.completions; - - for (let hit in completions) { - if (completions[hit] && completions[hit].components.key_fingerprint !== undefined) { - let uid = completions[hit].components.username.val; - if ("full_name" in completions[hit].components) { - uid += " (" + completions[hit].components.full_name.val + ")"; - } - let key = { - keyId: completions[hit].components.key_fingerprint.val.toUpperCase(), - keyLen: completions[hit].components.key_fingerprint.nbits.toString(), - keyType: completions[hit].components.key_fingerprint.algo.toString(), - created: 0, //date.toDateString(), - uid: [uid], - status: "" - }; - retObj.pubKeys.push(key); - } - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - return retObj; - }, - - upload: function() { - throw Components.results.NS_ERROR_FAILURE; - }, - - refresh: function(keyServer, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessKeyBase: refresh()\n`); - let keyList = EnigmailKeyRing.getAllKeys().keyList.map(keyObj => { - return "0x" + keyObj.fpr; - }).join(" "); - - return this.download(keyList, keyServer, listener); - } -}; - - -/** - Object to handle HKP/HKPS and LDAP/LDAPS requests via GnuPG - */ -const accessGnuPG = { - - /** - * Upload, search or download keys from a keyserver - * @param actionFlag: Number - Keyserver Action Flags: from EnigmailConstants - * @param keyId: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return Promise Object from execAsync - */ - accessKeyServer: function(actionFlag, keyserver, keyId, listener) { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG: accessKeyServer(${keyserver})\n`); - - let processHandle = { - value: null - }; - - if (listener) { - listener._isCancelled = 0; - listener.onCancel = function() { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG: accessKeyServer: onCancel\n`); - - if (processHandle.value) { - processHandle.value.killProcess(); - } - this._isCancelled = 1; - }; - } - - if (keyserver === null) { - keyserver = EnigmailKeyserverURIs.getDefaultKeyServer(); - } - - let args = EnigmailGpg.getStandardArgs(true); - args.push("--log-file"); - args.push(EnigmailOS.isWin32 ? "NUL" : "/dev/null"); - args.push("--with-colons"); - - let cmd = ""; - - let proxyHost = EnigmailHttpProxy.getHttpProxy(); - if (proxyHost) { - args = args.concat(["--keyserver-options", "http-proxy=" + proxyHost]); - } - - args.push("--keyserver"); - args.push(keyserver); - - switch (actionFlag) { - case EnigmailConstants.SEARCH_KEY: - cmd = "--search-keys"; - break; - case EnigmailConstants.DOWNLOAD_KEY: - cmd = "--recv-keys"; - break; - case EnigmailConstants.UPLOAD_KEY: - cmd = "--send-keys"; - break; - } - - args.push(cmd); - args = args.concat(keyId.split(/ +/)); - - return EnigmailExecution.execAsync(EnigmailGpg.agentPath, args, "", processHandle); - }, - - parseStatusMsg: function(execResult) { - let errorCode = 0, - errorType = null; - - // Find the 1st FAILURE message in the gpg status output - let m = execResult.stderrData.match(/^\[GNUPG:\] (FAILURE|ERROR) ([^ ]+ )(\d+)/m); - - if (m && m.length >= 4 && m[3].search(/^[0-9]+$/) === 0) { - let errorNumber = Number(m[3]); - //let sourceSystem = errorNumber >> 24; - errorCode = errorNumber & 0xFFFFFF; - - switch (errorCode) { - case 58: // no data - break; - case 32793: // connection refused - case 32810: // host unreachable - case 220: // Server not found (no name) - errorType = EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE; - break; - case 228: - errorType = EnigmailConstants.KEYSERVER_ERR_SECURITY_ERROR; - break; - case 100: // various certificate errors - case 101: - case 102: - case 103: - case 185: - errorType = EnigmailConstants.KEYSERVER_ERR_CERTIFICATE_ERROR; - break; - default: - errorType = EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR; - } - } - - if (execResult.isKilled !== 0) { - errorType = EnigmailConstants.KEYSERVER_ERR_ABORTED; - } - - if (errorType !== null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG.parseStatusMsg: got errorCode=${errorCode}\n`); - return createError(errorType); - } - - return null; - }, - /** - * Download keys from a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - download: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG.download(${keyIDs})\n`); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - let keyIdArr = keyIDs.split(/ +/); - - for (let i = 0; i < keyIdArr.length; i++) { - let r = await this.accessKeyServer(EnigmailConstants.DOWNLOAD_KEY, keyserver, keyIdArr[i], listener); - - let exitValue = this.parseStatusMsg(r); - if (exitValue) { - exitValue.keyList = []; - throw exitValue; - } - - var statusLines = r.statusMsg.split(/\r?\n/); - - for (let j = 0; j < statusLines.length; j++) { - let matches = statusLines[j].match(/IMPORT_OK ([0-9]+) (\w+)/); - if (matches && (matches.length > 2)) { - retObj.keyList.push(matches[2]); - EnigmailKeyRing.updateKeys([matches[2]]); - } - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - refresh: function(keyServer, listener = null) { - let keyList = EnigmailKeyRing.getAllKeys().keyList.map(keyObj => { - return "0x" + keyObj.fpr; - }).join(" "); - - return this.download(keyList, keyServer, listener); - }, - - /** - * Upload keys to a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - upload: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG.upload(${keyIDs})\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - for (let i = 0; i < keyIdArr.length; i++) { - let r = await this.accessKeyServer(EnigmailConstants.UPLOAD_KEY, keyserver, keyIdArr[i], listener); - - let exitValue = this.parseStatusMsg(r); - if (exitValue) { - exitValue.keyList = []; - throw exitValue; - } - - if (r.exitCode === 0) { - retObj.keyList.push(keyIdArr[i]); - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - /** - * Search for keys on a keyserver - * @param searchTerm: String - search term - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * - result: Number - * - pubKeys: Array of Object: - * PubKeys: Object with: - * - keyId: String - * - keyLen: String - * - keyType: String - * - created: String (YYYY-MM-DD) - * - status: String: one of ''=valid, r=revoked, e=expired - * - uid: Array of Strings with UIDs - */ - search: async function(searchTerm, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessGnuPG.search(${searchTerm})\n`); - let retObj = { - result: 0, - errorDetails: "", - pubKeys: [] - }; - let key = null; - - try { - let r = await this.accessKeyServer(EnigmailConstants.SEARCH_KEY, keyserver, searchTerm, listener); - - let exitValue = this.parseStatusMsg(r); - if (exitValue) { - exitValue.pubKeys = []; - throw exitValue; - } - - let lines = r.stdoutData.split(/\r?\n/); - - for (var i = 0; i < lines.length; i++) { - let line = lines[i].split(/:/).map(unescape); - if (line.length <= 1) continue; - - switch (line[0]) { - case "info": - if (line[1] !== "1") { - // protocol version not supported - throw { - result: 7, - errorDetails: EnigmailLocale.getString("keyserver.error.unsupported"), - pubKeys: [] - }; - } - break; - case "pub": - if (line.length >= 6) { - if (key) { - retObj.pubKeys.push(key); - key = null; - } - let dat = new Date(line[4] * 1000); - let month = String(dat.getMonth() + 101).substr(1); - let day = String(dat.getDate() + 100).substr(1); - key = { - keyId: line[1], - keyLen: line[3], - keyType: line[2], - created: dat.getFullYear() + "-" + month + "-" + day, - uid: [], - status: line[6] - }; - } - break; - case "uid": - key.uid.push(EnigmailData.convertToUnicode(line[1].trim(), "utf-8")); - } - } - - if (key) { - retObj.pubKeys.push(key); - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - return retObj; - } -}; - - -function getAccessType(keyserver) { - if (keyserver === null) { - keyserver = EnigmailKeyserverURIs.getDefaultKeyServer(); - } - - - let srv = parseKeyserverUrl(keyserver); - switch (srv.protocol) { - case "keybase": - return accessKeyBase; - case "ldap": - case "ldaps": - return accessGnuPG; - case "vks": - return accessVksServer; - } - - if (srv.host.search(/keys.openpgp.org$/i) >= 0) { - return accessVksServer; - } - - if (EnigmailPrefs.getPref("useGpgKeysTool")) { - return accessGnuPG; - } - - return accessHkpInternal; -} - - -/** - Object to handle VKS requests (for example keys.openpgp.org) - */ -const accessVksServer = { - /** - * Create the payload of VKS requests (currently upload only) - * - */ - buildJsonPayload: function(actionFlag, searchTerms, locale) { - let payLoad = null, - keyData = ""; - - switch (actionFlag) { - case EnigmailConstants.UPLOAD_KEY: - keyData = EnigmailKeyRing.extractKey(false, searchTerms, null, {}, {}); - if (keyData.length === 0) return null; - - payLoad = JSON.stringify({ - keytext: keyData - }); - return payLoad; - - case EnigmailConstants.GET_CONFIRMATION_LINK: - payLoad = JSON.stringify({ - token: searchTerms.token, - addresses: searchTerms.addresses, - locale: [locale] - }); - return payLoad; - - case EnigmailConstants.DOWNLOAD_KEY: - case EnigmailConstants.SEARCH_KEY: - case EnigmailConstants.GET_SKS_CACERT: - return ""; - } - - // other actions are not yet implemented - return null; - }, - - /** - * return the URL and the HTTP access method for a given action - */ - createRequestUrl: function(keyserver, actionFlag, searchTerm) { - let keySrv = parseKeyserverUrl(keyserver); - let contentType = "text/plain;charset=UTF-8"; - - let method = "GET"; - - let url = "https://" + keySrv.host + ":443"; - - if (actionFlag === EnigmailConstants.UPLOAD_KEY) { - url += "/vks/v1/upload"; - method = "POST"; - contentType = "application/json"; - } - else if (actionFlag === EnigmailConstants.GET_CONFIRMATION_LINK) { - url += "/vks/v1/request-verify"; - method = "POST"; - contentType = "application/json"; - } - else if (actionFlag === EnigmailConstants.DOWNLOAD_KEY || actionFlag === EnigmailConstants.SEARCH_KEY) { - if (searchTerm) { - let lookup = "/vks/"; - if (searchTerm.indexOf("0x") === 0) { - searchTerm = searchTerm.substr(2); - if (searchTerm.length == 16 && searchTerm.search(/^[A-F0-9]+$/) === 0) { - lookup = "/vks/v1/by-keyid/" + searchTerm; - } - else if (searchTerm.length == 40 && searchTerm.search(/^[A-F0-9]+$/) === 0) { - lookup = "/vks/v1/by-fingerprint/" + searchTerm; - } - } - else { - if (searchTerm.search(/^[A-F0-9]+$/) === 0 && searchTerm.length === 16) { - lookup = "/vks/v1/by-keyid/" + searchTerm; - } - else if (searchTerm.search(/^[A-F0-9]+$/) === 0 && searchTerm.length === 40) { - lookup = "/vks/v1/by-fingerprint/" + searchTerm; - } - else { - try { - searchTerm = EnigmailFuncs.stripEmail(searchTerm); - } - catch (x) {} - - lookup = "/vks/v1/by-email/" + searchTerm; - } - } - url += lookup; - } - } - - return { - url: url, - host: keySrv.host, - method: method, - contentType: contentType - }; - }, - - /** - * Upload, search or download keys from a keyserver - * @param actionFlag: Number - Keyserver Action Flags: from EnigmailConstants - * @param keyId: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - */ - accessKeyServer: function(actionFlag, keyserver, keyId, listener) { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.accessKeyServer(${keyserver})\n`); - if (keyserver === null) { - keyserver = "keys.openpgp.org"; - } - - return new Promise((resolve, reject) => { - let xmlReq = null; - if (listener && typeof(listener) === "object") { - listener.onCancel = function() { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.accessKeyServer - onCancel() called\n`); - if (xmlReq) { - xmlReq.abort(); - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_ABORTED)); - }; - } - if (actionFlag === EnigmailConstants.REFRESH_KEY) { - // we don't (need to) distinguish between refresh and download for our internal protocol - actionFlag = EnigmailConstants.DOWNLOAD_KEY; - } - - let uiLocale = EnigmailLocale.getUILocale(); - let payLoad = this.buildJsonPayload(actionFlag, keyId, uiLocale); - if (payLoad === null) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_UNKNOWN)); - return; - } - - let errorCode = 0; - - xmlReq = new XMLHttpRequest(); - - xmlReq.onload = function _onLoad() { - EnigmailLog.DEBUG("keyserver.jsm: accessVksServer.onload(): status=" + xmlReq.status + "\n"); - switch (actionFlag) { - case EnigmailConstants.UPLOAD_KEY: - case EnigmailConstants.GET_CONFIRMATION_LINK: - - EnigmailLog.DEBUG("keyserver.jsm: accessVksServer.onload: " + xmlReq.responseText + "\n"); - if (xmlReq.status >= 400) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - resolve(xmlReq.responseText); - } - return; - - case EnigmailConstants.SEARCH_KEY: - if (xmlReq.status === 404) { - // key not found - resolve(""); - } - else if (xmlReq.status >= 400) { - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - resolve(xmlReq.responseText); - } - return; - - case EnigmailConstants.DOWNLOAD_KEY: - if (xmlReq.status >= 400 && xmlReq.status < 500) { - // key not found - resolve(1); - } - else if (xmlReq.status >= 500) { - EnigmailLog.DEBUG("keyserver.jsm: accessVksServer.onload: " + xmlReq.responseText + "\n"); - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_ERROR)); - } - else { - let errorMsgObj = {}, - importedKeysObj = {}; - let r = EnigmailKeyRing.importKey(null, false, xmlReq.responseText, "", errorMsgObj, importedKeysObj); - if (r === 0) { - resolve(importedKeysObj.value); - } - else { - reject(createError(EnigmailConstants.KEYSERVER_ERR_IMPORT_ERROR)); - } - } - return; - } - resolve(-1); - }; - - xmlReq.onerror = function(e) { - EnigmailLog.DEBUG("keyserver.jsm: accessVksServer.accessKeyServer: onerror: " + e + "\n"); - let err = EnigmailXhrUtils.createTCPErrorFromFailedXHR(e.target); - switch (err.type) { - case 'SecurityCertificate': - reject(createError(EnigmailConstants.KEYSERVER_ERR_CERTIFICATE_ERROR)); - break; - case 'SecurityProtocol': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SECURITY_ERROR)); - break; - case 'Network': - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - break; - } - reject(createError(EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE)); - }; - - xmlReq.onloadend = function() { - EnigmailLog.DEBUG("keyserver.jsm: accessVksServer.accessKeyServer: loadEnd\n"); - }; - - let { - url, - host, - method, - contentType - } = this.createRequestUrl(keyserver, actionFlag, keyId); - - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.accessKeyServer: requesting ${method} for ${url}\n`); - xmlReq.open(method, url); - xmlReq.setRequestHeader("Content-Type", contentType); - xmlReq.send(payLoad); - }); - }, - - /** - * Download keys from a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - download: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.download(${keyIDs})\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - for (let i = 0; i < keyIdArr.length; i++) { - try { - let r = await this.accessKeyServer(EnigmailConstants.DOWNLOAD_KEY, keyserver, keyIdArr[i], listener); - if (Array.isArray(r)) { - retObj.keyList = retObj.keyList.concat(r); - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - refresh: function(keyServer, listener = null) { - let keyList = EnigmailKeyRing.getAllKeys().keyList.map(keyObj => { - return "0x" + keyObj.fpr; - }).join(" "); - - return this.download(keyList, keyServer, listener); - }, - - requestConfirmationLink: async function(keyserver, jsonFragment) { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.requestConfirmationLink()\n`); - - let response = JSON.parse(jsonFragment); - - let addr = []; - - for (let email in response.status) { - if (response.status[email] !== "published") { - addr.push(email); - } - } - - if (addr.length > 0) { - let r = await this.accessKeyServer(EnigmailConstants.GET_CONFIRMATION_LINK, keyserver, { - token: response.token, - addresses: addr - }, null); - - if (typeof r === "string") { - return addr.length; - } - } - - return 0; - }, - - /** - * Upload keys to a keyserver - * @param keyIDs: String - space-separated list of search terms or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise<...> - */ - upload: async function(keyIDs, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.upload(${keyIDs})\n`); - let keyIdArr = keyIDs.split(/ +/); - let retObj = { - result: 0, - errorDetails: "", - keyList: [] - }; - - for (let i = 0; i < keyIdArr.length; i++) { - let keyObj = EnigmailKeyRing.getKeyById(keyIdArr[i]); - - if (!keyObj.secretAvailable) { - // VKS keyservers only accept uploading own keys - retObj.result = 1; - retObj.errorDetails = "NO_SECRET_KEY_AVAILABLE"; - throw retObj; - } - - try { - let r = await this.accessKeyServer(EnigmailConstants.UPLOAD_KEY, keyserver, keyIdArr[i], listener); - if (typeof r === "string") { - retObj.keyList.push(keyIdArr[i]); - let req = await this.requestConfirmationLink(keyserver, r); - - if (req >= 0) { - retObj.result = 0; - retObj.numEmails = req; - } - } - else { - retObj.result = r; - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - if (listener && "onProgress" in listener) { - listener.onProgress((i + 1) / keyIdArr.length * 100); - } - } - - return retObj; - }, - - /** - * Search for keys on a keyserver - * @param searchTerm: String - search term - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * - result: Number - * - pubKeys: Array of Object: - * PubKeys: Object with: - * - keyId: String - * - keyLen: String - * - keyType: String - * - created: String (YYYY-MM-DD) - * - status: String: one of ''=valid, r=revoked, e=expired - * - uid: Array of Strings with UIDs - */ - search: async function(searchTerm, keyserver, listener = null) { - EnigmailLog.DEBUG(`keyserver.jsm: accessVksServer.search(${searchTerm})\n`); - let retObj = { - result: 0, - errorDetails: "", - pubKeys: [] - }; - let key = null; - - let searchArr = searchTerm.split(/ +/); - - try { - for (let i in searchArr) { - let r = await this.accessKeyServer(EnigmailConstants.SEARCH_KEY, keyserver, searchArr[i], listener); - - const cApi = EnigmailCryptoAPI(); - let keyList = await cApi.getKeyListFromKeyBlock(r); - - for (let k in keyList) { - key = { - keyId: keyList[k].fpr, - keyLen: "0", - keyType: "", - created: keyList[k].created, - uid: [keyList[k].name], - status: keyList[k].revoke ? "r" : "" - }; - - for (let uid of keyList[k].uids) { - key.uid.push(uid); - } - - retObj.pubKeys.push(key); - } - } - } - catch (ex) { - retObj.result = ex.result; - retObj.errorDetails = ex.errorDetails; - throw retObj; - } - - return retObj; - } -}; - -var EnigmailKeyServer = { - /** - * Download keys from a keyserver - * @param keyIDs: String - space-separated list of FPRs or key IDs - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * Object: - result: Number - result Code (0 = OK), - * - keyList: Array of String - imported key FPR - */ - download: function(keyIDs, keyserver = null, listener) { - let acc = getAccessType(keyserver); - return acc.download(keyIDs, keyserver, listener); - }, - - /** - * Upload keys to a keyserver - * @param keyIDs: String - space-separated list of key IDs or FPR - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * Object: - result: Number - result Code (0 = OK), - * - keyList: Array of String - imported key FPR - */ - - upload: function(keyIDs, keyserver = null, listener) { - let acc = getAccessType(keyserver); - return acc.upload(keyIDs, keyserver, listener); - }, - - /** - * Search keys on a keyserver - * @param searchString: String - search term. Multiple email addresses can be search by spaces - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise - * - result: Number - * - pubKeys: Array of Object: - * PubKeys: Object with: - * - keyId: String - * - keyLen: String - * - keyType: String - * - created: String (YYYY-MM-DD) - * - status: String: one of ''=valid, r=revoked, e=expired - * - uid: Array of Strings with UIDs - */ - search: function(searchString, keyserver = null, listener) { - let acc = getAccessType(keyserver); - return acc.search(searchString, keyserver, listener); - }, - - /** - * Refresh all keys - * - * @param keyserver: String - keyserver URL (optionally incl. protocol) - * @param listener: optional Object implementing the KeySrvListener API (above) - * - * @return: Promise (identical to download) - */ - refresh: function(keyserver = null, listener) { - let acc = getAccessType(keyserver); - return acc.refresh(keyserver, listener); - } -}; diff -Nru enigmail-2.1.6+ds1/package/keyserverUris.jsm enigmail-2.2.4/package/keyserverUris.jsm --- enigmail-2.1.6+ds1/package/keyserverUris.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/keyserverUris.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailKeyserverURIs"]; - -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; - -const KEYSERVER_PREF = "keyserver"; -const AUTO_KEYSERVER_SELECTION_PREF = "autoKeyServerSelection"; - -const supportedProtocols = { - "hkps": "443", - "vks": "443", - "hkp": "11371", - "ldap": "389" -}; - -function buildUriFor(protocol, keyserver) { - return { - protocol: protocol, - domain: keyserver, - port: supportedProtocols[protocol] - }; -} - -function addUriOptionsForPoolKeyservers(keyserver, uris) { - if (keyserver === "hkps.pool.sks-keyservers.net") { - uris.push(buildUriFor("hkps", keyserver)); - } - if (keyserver === "pool.sks-keyservers.net") { - uris.push(buildUriFor("hkps", "hkps.pool.sks-keyservers.net")); - uris.push(buildUriFor("hkp", keyserver)); - } -} - -function buildUriOptionsFor(keyserver) { - const uris = []; - const keyserverProtocolAndDomain = keyserver.split("://"); - const protocolIncluded = keyserverProtocolAndDomain.length === 2; - const isPoolKeyserver = ["hkps.pool.sks-keyservers.net", "pool.sks-keyservers.net"].indexOf(keyserver) > -1; - - if (isPoolKeyserver) { - addUriOptionsForPoolKeyservers(keyserver, uris); - } - else if (protocolIncluded) { - uris.push(buildUriFor(keyserverProtocolAndDomain[0].toLowerCase(), keyserverProtocolAndDomain[1])); - } - else { - uris.push(buildUriFor("hkps", keyserver)); - uris.push(buildUriFor("hkp", keyserver)); - } - - return uris; -} - -function getDefaultKeyServer() { - let keyservers = EnigmailPrefs.getPref(KEYSERVER_PREF).split(/\s*[,;]\s*/g); - return keyservers[0]; -} - -function getUserDefinedKeyserverURIs() { - const keyservers = EnigmailPrefs.getPref(KEYSERVER_PREF).split(/\s*[,;]\s*/g); - return EnigmailPrefs.getPref(AUTO_KEYSERVER_SELECTION_PREF) ? [keyservers[0]] : keyservers; -} - -function combineIntoURI(protocol, domain, port) { - return protocol + "://" + domain + ":" + port; -} - -function isValidProtocol(uri) { - return uri.match(/:\/\//) === null || /^(hkps|hkp|ldap|vks):\/\//i.test(uri); -} - -function validProtocolsExist() { - const validKeyserverUris = getUserDefinedKeyserverURIs().filter(isValidProtocol); - return validKeyserverUris.length > 0; -} - -/** - * Construct the full URIs for making gpg requests. - * This takes the specified keyservers and adds the relevant protocol and port. - * When no specific protocol is defined by the user, 2 URIs will be built, for hkps and hkp. - * - * @return array of all URIs to try refreshing keys over - */ -function buildKeyserverUris() { - const uris = getUserDefinedKeyserverURIs().filter(isValidProtocol).map(function(keyserver) { - return buildUriOptionsFor(keyserver); - }).reduce(function(a, b) { - return a.concat(b); - }); - - return uris.map(function(uri) { - return combineIntoURI(uri.protocol, uri.domain, uri.port); - }); -} - -/** - * Checks if the keyservers specified are valid. - * Key refreshes will not be attempted without valid keyservers. - * A valid keyserver is one that is non-empty and consists of - * - the keyserverDomain - * - may include a protocol from hkps, hkp or ldap - * - may include the port - * - * @return true if keyservers exist and are valid, false otherwise. - */ -function validKeyserversExist() { - const keyservers = EnigmailPrefs.getPref(KEYSERVER_PREF); - return keyservers !== undefined && keyservers.trim() !== "" && validProtocolsExist(); -} - -var EnigmailKeyserverURIs = { - getDefaultKeyServer: getDefaultKeyServer, - buildKeyserverUris: buildKeyserverUris, - validKeyserversExist: validKeyserversExist -}; diff -Nru enigmail-2.1.6+ds1/package/localizeHtml.jsm enigmail-2.2.4/package/localizeHtml.jsm --- enigmail-2.1.6+ds1/package/localizeHtml.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/localizeHtml.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -12,12 +12,12 @@ const EnigmailBuildDate = ChromeUtils.import("chrome://enigmail/content/modules/buildDate.jsm").EnigmailBuildDate; const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; +const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI/gnupg-agent.jsm").EnigmailGpgAgent; const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; function getEnigmailVersion() { let versionStr = EnigmailApp.getVersion() + " (" + EnigmailBuildDate.built + ")"; - return EnigmailLocale.getString("usingVersion", versionStr); + return "Enigmail v" + versionStr; } function getGpgWorking() { diff -Nru enigmail-2.1.6+ds1/package/log.jsm enigmail-2.2.4/package/log.jsm --- enigmail-2.1.6+ds1/package/log.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/log.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -92,13 +92,7 @@ }, WRITE: function(str) { - function withZeroes(val, digits) { - return ("0000" + val.toString()).substr(-digits); - } - - var d = new Date(); - var datStr = d.getFullYear() + "-" + withZeroes(d.getMonth() + 1, 2) + "-" + withZeroes(d.getDate(), 2) + " " + withZeroes(d.getHours(), 2) + ":" + withZeroes(d.getMinutes(), 2) + ":" + - withZeroes(d.getSeconds(), 2) + "." + withZeroes(d.getMilliseconds(), 3) + " "; + let datStr = this.getLogDateStr(new Date()) + " "; if (EnigmailLog.level >= 4) dump(datStr + str); @@ -165,5 +159,14 @@ "File: " + ex.fileName + "\n" + "Line: " + ex.lineNumber + "\n" + "Stack: " + ex.stack + "\n"); + }, + + getLogDateStr(d) { + function withZeroes(val, digits) { + return val.toString().padStart(digits, "0"); + } + + return d.getFullYear() + "-" + withZeroes(d.getMonth() + 1, 2) + "-" + withZeroes(d.getDate(), 2) + " " + withZeroes(d.getHours(), 2) + ":" + withZeroes(d.getMinutes(), 2) + ":" + + withZeroes(d.getSeconds(), 2) + "." + withZeroes(d.getMilliseconds(), 3); } }; diff -Nru enigmail-2.1.6+ds1/package/Makefile enigmail-2.2.4/package/Makefile --- enigmail-2.1.6+ds1/package/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/Makefile 2020-10-01 13:32:58.000000000 +0000 @@ -13,107 +13,43 @@ PREFFILES = prefs/defaultPrefs.js -ifeq ($(ENABLE_POSTBOX),yes) -PEPJSM = pEp-nonfunc.jsm -else -PEPJSM = pEp.jsm -endif - MODFILES = \ - addrbook.jsm \ - amPrefsService.jsm \ app.jsm \ armor.jsm \ - attachment.jsm \ - autocrypt.jsm \ - autoSetup.jsm \ - card.jsm \ clipboard.jsm \ - commandLine.jsm \ - configBackup.jsm \ - configure.jsm \ constants.jsm \ core.jsm \ cryptoAPI.jsm \ data.jsm \ - decryption.jsm \ - persistentCrypto.jsm \ dialog.jsm \ - encryption.jsm \ enigmailOverlays.jsm \ errorHandling.jsm \ - events.jsm \ execution.jsm \ - dns.jsm \ funcs.jsm \ files.jsm \ - filters.jsm \ - filtersWrapper.jsm \ - fixExchangeMsg.jsm \ - gpgAgent.jsm \ - gnupgUpdate.jsm \ - glodaUtils.jsm \ - gpg.jsm \ - hash.jsm \ - httpProxy.jsm \ - installGnuPG.jsm \ - installPep.jsm \ key.jsm \ - keyEditor.jsm \ keyRing.jsm \ keyObj.jsm \ keyUsability.jsm \ - keyRefreshService.jsm \ - keyserver.jsm \ - keyserverUris.jsm \ lazy.jsm \ locale.jsm \ localizeHtml.jsm \ log.jsm \ - mime.jsm \ - mimeDecrypt.jsm \ - mimeEncrypt.jsm \ - mimeVerify.jsm \ - msgRead.jsm \ os.jsm \ - openpgp.jsm \ overlays.jsm \ - passwordCheck.jsm \ passwords.jsm \ - $(PEPJSM) \ - pEpAdapter.jsm \ - pEpDecrypt.jsm \ - pEpFilter.jsm \ - pEpListener.jsm \ - pEpKeySync.jsm \ - pgpmimeHandler.jsm \ pipeConsole.jsm \ prefs.jsm \ - protocolHandler.jsm \ - rng.jsm \ - rules.jsm \ searchCallback.jsm \ - send.jsm \ singletons.jsm \ - socks5Proxy.jsm \ - sqliteDb.jsm \ - stdlib.jsm \ streams.jsm \ system.jsm \ compat.jsm \ time.jsm \ timer.jsm \ - tor.jsm \ trust.jsm \ - uris.jsm \ - verify.jsm \ versioning.jsm \ - webKey.jsm \ - wkdLookup.jsm \ - windows.jsm \ - wksMimeHandler.jsm \ - xhrUtils.jsm \ - zbase32.jsm + windows.jsm DATE_FMT = +%Y%m%d-%H%M SOURCE_DATE_EPOCH ?= $(shell date +%s) @@ -138,14 +74,14 @@ echo '"use strict";' > $(DIST)/chrome/content/modules/buildDate.jsm echo 'var EXPORTED_SYMBOLS = ["EnigmailBuildDate"];' >> $(DIST)/chrome/content/modules/buildDate.jsm echo 'var EnigmailBuildDate = { built: "$(ENIG_BUILD_DATE)" };' >> $(DIST)/chrome/content/modules/buildDate.jsm - $(DEPTH)/util/prepPostbox $(TARGET_TOOL) bootstrap.js $(DIST)/bootstrap.js + $(DEPTH)/util/prepPostbox $(TARGET_TOOL) webextension.js $(DIST)/webextension.js $(DEPTH)/util/prepPackage $(XPI_MODULE_VERS) $(DIST) clean: $(DEPTH)/util/install -u $(DIST)/chrome/content/preferences $(PREFFILES) $(DEPTH)/util/install -u $(DIST)/chrome/content/modules $(MODFILES) - $(DEPTH)/util/install -u $(DIST) bootstrap.js manifest.json install.rdf chrome.manifest + $(DEPTH)/util/install -u $(DIST) bootstrap.js manifest.json schema.json install.rdf chrome.manifest .PHONY: dirs $(DIRS) diff -Nru enigmail-2.1.6+ds1/package/manifest.json enigmail-2.2.4/package/manifest.json --- enigmail-2.1.6+ds1/package/manifest.json 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/manifest.json 2020-10-01 13:32:58.000000000 +0000 @@ -5,18 +5,21 @@ "version": "${EnigmailVersion}", "author": "Enigmail Team", "homepage_url": "https://enigmail.net/", - "legacy": { - "type": "bootstrap", - "options": { - "page": "chrome://enigmail/content/ui/pref-enigmail.xul", - "open_in_tab": false + "experiment_apis": { + "enigmailApi": { + "schema": "schema.json", + "parent": { + "scopes": ["addon_parent"], + "paths": [["enigmailApi"]], + "events": ["startup"], + "script": "webextension.js" + } } }, "applications": { "gecko": { "id": "{847b3a00-7ab1-11d4-8f02-006008948af5}", // Enigmail GUID - "strict_min_version": "68.0a1", - "strict_max_version": "68.*" + "strict_min_version": "77.0a1" } } } diff -Nru enigmail-2.1.6+ds1/package/mimeDecrypt.jsm enigmail-2.2.4/package/mimeDecrypt.jsm --- enigmail-2.1.6+ds1/package/mimeDecrypt.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/mimeDecrypt.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,805 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailMimeDecrypt"]; - -/** - * Module for handling PGP/MIME encrypted messages - * implemented as an XPCOM object - */ - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailVerify = ChromeUtils.import("chrome://enigmail/content/modules/mimeVerify.jsm").EnigmailVerify; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailDecryption = ChromeUtils.import("chrome://enigmail/content/modules/decryption.jsm").EnigmailDecryption; -var EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailURIs = ChromeUtils.import("chrome://enigmail/content/modules/uris.jsm").EnigmailURIs; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; -const EnigmailHttpProxy = ChromeUtils.import("chrome://enigmail/content/modules/httpProxy.jsm").EnigmailHttpProxy; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; -const EnigmailAutocrypt = ChromeUtils.import("chrome://enigmail/content/modules/autocrypt.jsm").EnigmailAutocrypt; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; - -const getKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing"); - - -const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; -const PGPMIME_JS_DECRYPTOR_CONTRACTID = "@mozilla.org/mime/pgp-mime-js-decrypt;1"; -const PGPMIME_JS_DECRYPTOR_CID = Components.ID("{7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8}"); - -const ENCODING_DEFAULT = 0; -const ENCODING_BASE64 = 1; -const ENCODING_QP = 2; - -const LAST_MSG = EnigmailSingletons.lastDecryptedMessage; - -var gDebugLogLevel = 0; - -var gNumProc = 0; - -var EnigmailMimeDecrypt = { - /** - * create a new instance of a PGP/MIME decryption handler - */ - newPgpMimeHandler: function() { - return new MimeDecryptHandler(); - }, - - /** - * Return a fake empty attachment with information that the message - * was not decrypted - * - * @return {String}: MIME string (HTML text) - */ - emptyAttachment: function() { - EnigmailLog.DEBUG("mimeDecrypt.jsm: emptyAttachment()\n"); - - let encPart = EnigmailLocale.getString("mimeDecrypt.encryptedPart.attachmentLabel"); - let concealed = EnigmailLocale.getString("mimeDecrypt.encryptedPart.concealedData"); - let retData = - `Content-Type: message/rfc822; name="${encPart}.eml" -Content-Transfer-Encoding: 7bit -Content-Disposition: attachment; filename="${encPart}.eml" - -Content-Type: text/html - -

${concealed}

-`; - return retData; - }, - - /** - * Wrap the decrypted output into a message/rfc822 attachment - * - * @param {String} decryptingMimePartNum: requested MIME part number - * @param {Object} uri: nsIURI object of the decrypted message - * - * @return {String}: prefix for message data - */ - pretendAttachment: function(decryptingMimePartNum, uri) { - if (decryptingMimePartNum === "1" || !uri) return ""; - - let msg = ""; - let mimePartNumber = EnigmailMime.getMimePartNumber(uri.spec); - - if (mimePartNumber === decryptingMimePartNum + ".1") { - msg = 'Content-Type: message/rfc822; name="attachment.eml"\r\n' + - 'Content-Transfer-Encoding: 7bit\r\n' + - 'Content-Disposition: attachment; filename="attachment.eml"\r\n\r\n'; - - try { - let dbHdr = uri.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader; - if (dbHdr.subject) msg += `Subject: ${dbHdr.subject}\r\n`; - if (dbHdr.author) msg += `From: ${dbHdr.author}\r\n`; - if (dbHdr.recipients) msg += `To: ${dbHdr.recipients}\r\n`; - if (dbHdr.ccList) msg += `Cc: ${dbHdr.ccList}\r\n`; - } catch (x) {} - } - - return msg; - } -}; - -//////////////////////////////////////////////////////////////////// -// handler for PGP/MIME encrypted messages -// data is processed from libmime -> nsPgpMimeProxy - -function MimeDecryptHandler() { - - EnigmailLog.DEBUG("mimeDecrypt.jsm: MimeDecryptHandler()\n"); // always log this one - this.mimeSvc = null; - this.initOk = false; - this.boundary = ""; - this.pipe = null; - this.closePipe = false; - this.statusStr = ""; - this.outQueue = ""; - this.dataLength = 0; - this.bytesWritten = 0; - this.mimePartCount = 0; - this.headerMode = 0; - this.xferEncoding = ENCODING_DEFAULT; - this.matchedPgpDelimiter = 0; - this.exitCode = null; - this.msgWindow = null; - this.msgUriSpec = null; - this.returnStatus = null; - this.proc = null; - this.statusDisplayed = false; - this.uri = null; - this.backgroundJob = false; - this.decryptedHeaders = {}; - this.mimePartNumber = ""; - this.dataIsBase64 = null; - this.base64Cache = ""; - - if (EnigmailCompat.isMessageUriInPgpMime()) { - this.onDataAvailable = this.onDataAvailable68; - } else { - this.onDataAvailable = this.onDataAvailable60; - } -} - -MimeDecryptHandler.prototype = { - inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream), - - onStartRequest: function(request, uri) { - if (!EnigmailCore.getService()) // Ensure Enigmail is initialized - return; - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest\n"); // always log this one - - ++gNumProc; - if (gNumProc > EnigmailPrefs.getPref("maxNumProcesses")) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: number of parallel requests above threshold - ignoring requst\n"); - return; - } - - this.initOk = true; - this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - if ("mimePart" in this.mimeSvc) { - this.mimePartNumber = this.mimeSvc.mimePart; - } else { - this.mimePartNumber = ""; - } - - if ("messageURI" in this.mimeSvc) { - this.uri = this.mimeSvc.messageURI; - if (this.uri) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest: uri='" + this.uri.spec + "'\n"); - } - else { - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest: uri=null\n"); - } - } else { - if (uri) { - this.uri = uri.QueryInterface(Ci.nsIURI); - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest: uri='" + this.uri.spec + "'\n"); - } - } - this.pipe = null; - this.closePipe = false; - this.exitCode = null; - this.msgWindow = EnigmailVerify.lastMsgWindow; - this.msgUriSpec = EnigmailVerify.lastMsgUri; - - this.statusDisplayed = false; - this.returnStatus = null; - this.dataLength = 0; - this.decryptedData = ""; - this.mimePartCount = 0; - this.bytesWritten = 0; - this.matchedPgpDelimiter = 0; - this.dataIsBase64 = null; - this.base64Cache = ""; - this.outQueue = ""; - this.statusStr = ""; - this.headerMode = 0; - this.decryptedHeaders = {}; - this.xferEncoding = ENCODING_DEFAULT; - this.boundary = EnigmailMime.getBoundary(this.mimeSvc.contentType); - - if (!this.isReloadingLastMessage()) { - EnigmailSingletons.clearLastDecryptedMessage(); - } - }, - - processData: function(data) { - // detect MIME part boundary - if (data.indexOf(this.boundary) >= 0) { - LOCAL_DEBUG("mimeDecrypt.jsm: processData: found boundary\n"); - ++this.mimePartCount; - this.headerMode = 1; - return; - } - - // found PGP/MIME "body" - if (this.mimePartCount == 2) { - - if (this.headerMode == 1) { - // we are in PGP/MIME main part headers - if (data.search(/\r|\n/) === 0) { - // end of Mime-part headers reached - this.headerMode = 2; - return; - } else { - if (data.search(/^content-transfer-encoding:\s*/i) >= 0) { - // extract content-transfer-encoding - data = data.replace(/^content-transfer-encoding:\s*/i, ""); - data = data.replace(/;.*/, "").toLowerCase().trim(); - if (data.search(/base64/i) >= 0) { - this.xferEncoding = ENCODING_BASE64; - } else if (data.search(/quoted-printable/i) >= 0) { - this.xferEncoding = ENCODING_QP; - } - - } - } - } else { - // PGP/MIME main part body - if (this.xferEncoding == ENCODING_QP) { - this.cacheData(EnigmailData.decodeQuotedPrintable(data)); - } else { - this.cacheData(data); - } - } - } - }, - - /** - * onDataAvailable for TB <= 66 - */ - onDataAvailable60: function(req, dummy, stream, offset, count) { - - // get data from libmime - if (!this.initOk) return; - this.inStream.init(stream); - - if (count > 0) { - var data = this.inStream.read(count); - - if (this.mimePartCount == 0 && this.dataIsBase64 === null) { - // try to determine if this could be a base64 encoded message part - this.dataIsBase64 = this.isBase64Encoding(data); - } - - if (!this.dataIsBase64) { - if (data.search(/[\r\n][^\r\n]+[\r\n]/) >= 0) { - // process multi-line data line by line - let lines = data.replace(/\r\n/g, "\n").split(/\n/); - - for (let i = 0; i < lines.length; i++) { - this.processData(lines[i] + "\r\n"); - } - } else - this.processData(data); - } else { - this.base64Cache += data; - } - } - }, - - /** - * onDataAvailable for TB >= 68 - */ - onDataAvailable68: function(req, stream, offset, count) { - - // get data from libmime - if (!this.initOk) return; - this.inStream.init(stream); - - if (count > 0) { - var data = this.inStream.read(count); - - if (this.mimePartCount == 0 && this.dataIsBase64 === null) { - // try to determine if this could be a base64 encoded message part - this.dataIsBase64 = this.isBase64Encoding(data); - } - - if (!this.dataIsBase64) { - if (data.search(/[\r\n][^\r\n]+[\r\n]/) >= 0) { - // process multi-line data line by line - let lines = data.replace(/\r\n/g, "\n").split(/\n/); - - for (let i = 0; i < lines.length; i++) { - this.processData(lines[i] + "\r\n"); - } - } else - this.processData(data); - } else { - this.base64Cache += data; - } - } - }, - - /** - * Try to determine if data is base64 endoded - */ - isBase64Encoding: function(str) { - let ret = false; - - str = str.replace(/[\r\n]/, ""); - if (str.search(/^[A-Za-z0-9+/=]+$/) === 0) { - let excess = str.length % 4; - str = str.substring(0, str.length - excess); - - try { - let s = atob(str); - // if the conversion succeds, we have a base64 encoded message - ret = true; - } catch (ex) { - // not a base64 encoded - } - } - - return ret; - }, - - // cache encrypted data for writing to subprocess - cacheData: function(str) { - if (gDebugLogLevel > 4) - LOCAL_DEBUG("mimeDecrypt.jsm: cacheData: " + str.length + "\n"); - - this.outQueue += str; - }, - - processBase64Message: function() { - LOCAL_DEBUG("mimeDecrypt.jsm: processBase64Message\n"); - - try { - this.base64Cache = EnigmailData.decodeBase64(this.base64Cache); - } catch (ex) { - // if decoding failed, try non-encoded version - } - - let lines = this.base64Cache.replace(/\r\n/g, "\n").split(/\n/); - - for (let i = 0; i < lines.length; i++) { - this.processData(lines[i] + "\r\n"); - } - }, - - /** - * Determine if we are reloading the same message as the previous one - * - * @return Boolean - */ - isReloadingLastMessage: function() { - if (!this.uri) return false; - if (!LAST_MSG.lastMessageURI) return false; - if (("lastMessageData" in LAST_MSG) && LAST_MSG.lastMessageData === "") return false; - if (this.isUrlEnigmailConvert()) return false; - - let currMsg = EnigmailURIs.msgIdentificationFromUrl(this.uri); - - if (LAST_MSG.lastMessageURI.folder === currMsg.folder && LAST_MSG.lastMessageURI.msgNum === currMsg.msgNum) { - return true; - } - - return false; - }, - - isUrlEnigmailConvert: function() { - if (!this.uri) return false; - - return (this.uri.spec.search(/[&?]header=enigmailConvert/) >= 0); - }, - - onStopRequest: function(request, status, dummy) { - LOCAL_DEBUG("mimeDecrypt.jsm: onStopRequest\n"); - --gNumProc; - if (!this.initOk) return; - - if (this.dataIsBase64) { - this.processBase64Message(); - } - - // ensure that all keys are loaded before processing the message - getKeyRing().getAllKeys(); - - this.msgWindow = EnigmailVerify.lastMsgWindow; - this.msgUriSpec = EnigmailVerify.lastMsgUri; - - let url = {}; - let currMsg = EnigmailURIs.msgIdentificationFromUrl(this.uri); - - this.backgroundJob = false; - - if (this.uri) { - // return if not decrypting currently displayed message (except if - // printing, replying, etc) - - this.backgroundJob = (this.uri.spec.search(/[&?]header=(print|quotebody|enigmailConvert)/) >= 0); - - try { - var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger); - - if (!EnigmailPrefs.getPref("autoDecrypt")) { - // "decrypt manually" mode - let manUrl = {}; - - if (EnigmailVerify.getManualUri()) { - manUrl.value = EnigmailCompat.getUrlFromUriSpec(EnigmailVerify.getManualUri()); - } else { - manUrl.value = { - spec: "enigmail://invalid/message" - }; - } - - // print a message if not message explicitly decrypted - let currUrlSpec = this.uri.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2"); - let manUrlSpec = manUrl.value.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2"); - - - if ((!this.backgroundJob) && currUrlSpec.indexOf(manUrlSpec) !== 0) { - this.handleManualDecrypt(); - return; - } - } - - if (this.msgUriSpec) { - url.value = EnigmailCompat.getUrlFromUriSpec(this.msgUriSpec); - } - - if (this.uri.spec.search(/[&?]header=[^&]+/) > 0 && - this.uri.spec.search(/[&?]examineEncryptedParts=true/) < 0) { - - if (this.uri.spec.search(/[&?]header=(filter|enigmailFilter)(&.*)?$/) > 0) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStopRequest: detected incoming message processing\n"); - return; - } - } - - if (this.uri.spec.search(/[&?]header=[^&]+/) < 0 && - this.uri.spec.search(/[&?]part=[.0-9]+/) < 0 && - this.uri.spec.search(/[&?]examineEncryptedParts=true/) < 0) { - - if (this.uri && url && url.value) { - - if ("path" in url) { - // TB < 57 - if (url.value.host !== this.uri.host || - url.value.path !== this.uri.path) - return; - } else { - // TB >= 57 - if (url.value.host !== this.uri.host || - url.value.pathQueryRef !== this.uri.pathQueryRef) - return; - } - } - } - } catch (ex) { - EnigmailLog.writeException("mimeDecrypt.js", ex); - EnigmailLog.DEBUG("mimeDecrypt.jsm: error while processing " + this.msgUriSpec + "\n"); - } - } - - let spec = this.uri ? this.uri.spec : null; - EnigmailLog.DEBUG(`mimeDecrypt.jsm: checking MIME structure for ${this.mimePartNumber} / ${spec}\n`); - - if (!EnigmailMime.isRegularMimeStructure(this.mimePartNumber, spec, false)) { - if (!this.isUrlEnigmailConvert()) { - this.returnData(EnigmailMimeDecrypt.emptyAttachment()); - } else { - throw "mimeDecrypt.jsm: Cannot decrypt messages with mixed (encrypted/non-encrypted) content"; - } - return; - } - - if (!this.isReloadingLastMessage()) { - if (this.xferEncoding == ENCODING_BASE64) { - this.outQueue = EnigmailData.decodeBase64(this.outQueue) + "\n"; - } - - let win = this.msgWindow; - - if (!EnigmailDecryption.isReady(win)) return; - - // limit output to 100 times message size to avoid DoS attack - let maxOutput = this.outQueue.length * 100; - let statusFlagsObj = {}; - let errorMsgObj = {}; - let listener = this; - - EnigmailLog.DEBUG("mimeDecryp.jsm: starting decryption\n"); - - let keyserver = EnigmailPrefs.getPref("autoKeyRetrieve"); - let options = { - keyserver: keyserver, - keyserverProxy: EnigmailHttpProxy.getHttpProxy(keyserver), - fromAddr: EnigmailDecryption.getFromAddr(win), - maxOutputLength: maxOutput - }; - const cApi = EnigmailCryptoAPI(); - this.returnStatus = cApi.sync(cApi.decryptMime(this.outQueue, options)); - if (!this.returnStatus) { - this.returnStatus = { - decryptedData: "", - exitCode: -1, - statusFlags: EnigmailConstants.DECRYPTION_FAILED - }; - } - this.decryptedData = this.returnStatus.decryptedData; - this.handleResult(this.returnStatus.exitCode); - - let mdcError = ((this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_FAILED) || - !(this.returnStatus.statusFlags & EnigmailConstants.DECRYPTION_OKAY)); - - if (!this.isUrlEnigmailConvert()) { - // 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(); - - // HACK: remove filename from 1st HTML and plaintext parts to make TB display message without attachment - this.decryptedData = this.decryptedData.replace(/^Content-Disposition: inline; filename="msg.txt"/m, "Content-Disposition: inline"); - this.decryptedData = this.decryptedData.replace(/^Content-Disposition: inline; filename="msg.html"/m, "Content-Disposition: inline"); - - let prefix = EnigmailMimeDecrypt.pretendAttachment(this.mimePartNumber, this.uri); - this.returnData(prefix + this.decryptedData); - - // 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 && - !mdcError) { - LAST_MSG.lastMessageData = this.decryptedData; - LAST_MSG.lastMessageURI = currMsg; - LAST_MSG.lastStatus = this.returnStatus; - LAST_MSG.lastStatus.decryptedHeaders = this.decryptedHeaders; - LAST_MSG.lastStatus.mimePartNumber = this.mimePartNumber; - } else { - LAST_MSG.lastMessageURI = null; - LAST_MSG.lastMessageData = ""; - } - - this.decryptedData = ""; - EnigmailLog.DEBUG("mimeDecrypt.jsm: onStopRequest: process terminated\n"); // always log this one - this.proc = null; - } else { - this.returnStatus = LAST_MSG.lastStatus; - this.decryptedHeaders = LAST_MSG.lastStatus.decryptedHeaders; - this.mimePartNumber = LAST_MSG.lastStatus.mimePartNumber; - this.exitCode = 0; - this.displayStatus(); - this.returnData(LAST_MSG.lastMessageData); - } - }, - - displayStatus: function() { - EnigmailLog.DEBUG("mimeDecrypt.jsm: displayStatus()\n"); - - if (this.exitCode === null || this.msgWindow === null || this.statusDisplayed) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: displayStatus: nothing to display\n"); - return; - } - - let uriSpec = (this.uri ? this.uri.spec : null); - - try { - EnigmailLog.DEBUG("mimeDecrypt.jsm: displayStatus for uri " + uriSpec + "\n"); - let headerSink = EnigmailSingletons.messageReader; - - if (headerSink && this.uri && !this.backgroundJob) { - - headerSink.processDecryptionResult(this.uri, "modifyMessageHeaders", JSON.stringify(this.decryptedHeaders), this.mimePartNumber); - - headerSink.updateSecurityStatus( - this.msgUriSpec, - this.exitCode, - this.returnStatus.statusFlags, - this.returnStatus.keyId, - this.returnStatus.userId, - this.returnStatus.sigDetails, - this.returnStatus.errorMsg, - this.returnStatus.blockSeparation, - this.uri, - JSON.stringify({ - encryptedTo: this.returnStatus.encToDetails - }), - this.mimePartNumber); - } else { - this.updateHeadersInMsgDb(); - } - this.statusDisplayed = true; - } catch (ex) { - EnigmailLog.writeException("mimeDecrypt.jsm", ex); - } - LOCAL_DEBUG("mimeDecrypt.jsm: displayStatus done\n"); - }, - - handleResult: function(exitCode) { - LOCAL_DEBUG("mimeDecrypt.jsm: done: " + exitCode + "\n"); - - if (gDebugLogLevel > 4) - LOCAL_DEBUG("mimeDecrypt.jsm: done: decrypted data='" + this.decryptedData + "'\n"); - - // ensure newline at the end of the stream - if (!this.decryptedData.endsWith("\n")) { - this.decryptedData += "\r\n"; - } - - try { - this.extractEncryptedHeaders(); - this.extractAutocryptGossip(); - } catch (ex) {} - - let i = this.decryptedData.search(/\n\r?\n/); - if (i > 0) { - var hdr = this.decryptedData.substr(0, i).split(/\r?\n/); - for (let j = 0; j < hdr.length; j++) { - if (hdr[j].search(/^\s*content-type:\s+text\/(plain|html)/i) >= 0) { - LOCAL_DEBUG("mimeDecrypt.jsm: done: adding multipart/mixed around " + hdr[j] + "\n"); - - this.addWrapperToDecryptedResult(); - break; - } - } - } - - this.exitCode = exitCode; - }, - - addWrapperToDecryptedResult: function() { - if (!this.isUrlEnigmailConvert()) { - let wrapper = EnigmailMime.createBoundary(); - - this.decryptedData = 'Content-Type: multipart/mixed; boundary="' + wrapper + '"\r\n' + - 'Content-Disposition: inline\r\n\r\n' + - '--' + wrapper + '\r\n' + - this.decryptedData + '\r\n' + - '--' + wrapper + '--\r\n'; - } - }, - - extractContentType: function(data) { - let i = data.search(/\n\r?\n/); - if (i <= 0) return null; - - let headers = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - headers.initialize(data.substr(0, i)); - return headers.extractHeader("content-type", false); - }, - - // return data to libMime - returnData: function(data) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: returnData: " + data.length + " bytes\n"); - - let proto = null; - let ct = this.extractContentType(data); - if (ct && ct.search(/multipart\/signed/i) >= 0) { - proto = EnigmailMime.getProtocol(ct); - } - - try { - if (proto && proto.search(/application\/(pgp|pkcs7|x-pkcs7)-signature/i) >= 0) { - EnigmailLog.DEBUG("mimeDecrypt.jsm: returnData: using direct verification\n"); - this.mimeSvc.contentType = ct; - if ("mimePart" in this.mimeSvc) { - this.mimeSvc.mimePart = this.mimeSvc.mimePart + ".1"; - } - let veri = EnigmailVerify.newVerifier(proto); - veri.onStartRequest(this.mimeSvc, this.uri); - veri.onTextData(data); - veri.onStopRequest(null, 0); - } else { - if ("outputDecryptedData" in this.mimeSvc) { - // TB >= 57 - this.mimeSvc.outputDecryptedData(data, data.length); - } else { - let gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - gConv.setData(data, data.length); - this.mimeSvc.onStartRequest(null, null); - this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length); - this.mimeSvc.onStopRequest(null, null, 0); - } - } - } catch (ex) { - EnigmailLog.ERROR("mimeDecrypt.jsm: returnData(): mimeSvc.onDataAvailable failed:\n" + ex.toString()); - } - }, - - handleManualDecrypt: function() { - - try { - let headerSink = EnigmailSingletons.messageReader; - - if (headerSink && this.uri && !this.backgroundJob) { - headerSink.updateSecurityStatus( - this.msgUriSpec, - EnigmailConstants.POSSIBLE_PGPMIME, - 0, - "", - "", - "", - EnigmailLocale.getString("possiblyPgpMime"), - "", - this.uri, - null, - ""); - } - } catch (ex) {} - - return 0; - }, - - updateHeadersInMsgDb: function() { - if (this.mimePartNumber !== "1") return; - if (!this.uri) return; - - if (this.decryptedHeaders && ("subject" in this.decryptedHeaders)) { - try { - let msgDbHdr = this.uri.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader; - msgDbHdr.subject = EnigmailData.convertFromUnicode(this.decryptedHeaders.subject, "utf-8"); - } catch (x) {} - } - }, - - extractEncryptedHeaders: function() { - let r = EnigmailMime.extractProtectedHeaders(this.decryptedData); - if (!r) return; - - this.decryptedHeaders = r.newHeaders; - if (r.startPos >= 0 && r.endPos > r.startPos) { - this.decryptedData = this.decryptedData.substr(0, r.startPos) + this.decryptedData.substr(r.endPos); - } - }, - - extractAutocryptGossip: async function() { - let m1 = this.decryptedData.search(/^--/m); - let m2 = this.decryptedData.search(/\r?\n\r?\n/); - let m = Math.max(m1, m2); - - let hdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - hdr.initialize(this.decryptedData.substr(0, m)); - - let gossip = hdr.getHeader("autocrypt-gossip") || []; - EnigmailLog.DEBUG(`mimeDecrypt.jsm: extractAutocryptGossip: found ${gossip.length} headers\n`); - - let msgDate = null; - try { - msgDate = this.uri.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader.dateInSeconds; - } catch (x) {} - - - for (let i in gossip) { - let addr = EnigmailMime.getParameter(gossip[i], "addr"); - try { - let r = await EnigmailAutocrypt.processAutocryptHeader(addr, [gossip[i].replace(/ /g, "")], msgDate, true, true); - EnigmailLog.DEBUG(`mimeDecrypt.jsm: extractAutocryptGossip: r=${r}\n`); - } catch (x) { - EnigmailLog.DEBUG(`mimeDecrypt.jsm: extractAutocryptGossip: Error: ${x}\n`); - } - } - } -}; - - -//////////////////////////////////////////////////////////////////// -// General-purpose functions, not exported - -function LOCAL_DEBUG(str) { - if (gDebugLogLevel) EnigmailLog.DEBUG(str); -} - -function initModule() { - var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - var nspr_log_modules = env.get("NSPR_LOG_MODULES"); - var matches = nspr_log_modules.match(/mimeDecrypt:(\d+)/); - - if (matches && (matches.length > 1)) { - gDebugLogLevel = matches[1]; - } -} diff -Nru enigmail-2.1.6+ds1/package/mimeEncrypt.jsm enigmail-2.2.4/package/mimeEncrypt.jsm --- enigmail-2.1.6+ds1/package/mimeEncrypt.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/mimeEncrypt.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,907 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for creating PGP/MIME signed and/or encrypted messages - * implemented as XPCOM component - */ - -var EXPORTED_SYMBOLS = ["EnigmailMimeEncrypt"]; - -const Cr = Components.results; - -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailEncryption = ChromeUtils.import("chrome://enigmail/content/modules/encryption.jsm").EnigmailEncryption; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailHash = ChromeUtils.import("chrome://enigmail/content/modules/hash.jsm").EnigmailHash; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailPEPAdapter = ChromeUtils.import("chrome://enigmail/content/modules/pEpAdapter.jsm").EnigmailPEPAdapter; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; - -// our own contract IDs -const PGPMIME_ENCRYPT_CID = Components.ID("{96fe88f9-d2cd-466f-93e0-3a351df4c6d2}"); -const PGPMIME_ENCRYPT_CONTRACTID = "@enigmail.net/compose/mimeencrypt;1"; - -const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; - -// S/MIME contract IDs -const SMIME_ENCRYPT_CONTRACTID = "@mozilla.org/messengercompose/composesecure;1"; -const kSmimeComposeSecureCID = "{dd753201-9a23-4e08-957f-b3616bf7e012}"; - -const maxBufferLen = 102400; -const MIME_SIGNED = 1; -const MIME_ENCRYPTED = 2; - -var gDebugLogLevel = 0; - -function PgpMimeEncrypt(sMimeSecurityInfo) { - this.wrappedJSObject = this; - - // nsIMsgSMIMECompFields - this.signMessage = false; - this.requireEncryptMessage = false; - - // "securityInfo" variables - this.sendFlags = 0; - this.UIFlags = 0; - this.senderEmailAddr = ""; - this.recipients = ""; - this.bccRecipients = ""; - this.originalSubject = null; - this.keyMap = {}; - - if (EnigmailCompat.isMessageUriInPgpMime()) { - this.onDataAvailable = this.onDataAvailable68; - } - else { - this.onDataAvailable = this.onDataAvailable60; - } - - try { - if (sMimeSecurityInfo) { - if ("nsIMsgSMIMECompFields" in Ci) { - sMimeSecurityInfo = sMimeSecurityInfo.QueryInterface(Ci.nsIMsgSMIMECompFields); - } - this.signMessage = sMimeSecurityInfo.signMessage; - this.requireEncryptMessage = sMimeSecurityInfo.requireEncryptMessage; - } - } - catch (ex) {} -} - -PgpMimeEncrypt.prototype = { - classDescription: "Enigmail JS Encryption Handler", - classID: PGPMIME_ENCRYPT_CID, - get contractID() { - if (Components.classesByID && Components.classesByID[kSmimeComposeSecureCID]) { - // hack needed for TB < 62: we overwrite the S/MIME encryption handler - return SMIME_ENCRYPT_CONTRACTID; - } - else { - return PGPMIME_ENCRYPT_CONTRACTID; - } - }, - QueryInterface: EnigmailCompat.generateQI([ - "nsIMsgComposeSecure", - "nsIStreamListener", - "nsIMsgSMIMECompFields" // TB < 64 - ]), - - signMessage: false, - requireEncryptMessage: false, - - // private variables - - inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream), - msgCompFields: null, - smimeCompose: null, - useSmime: false, - outStringStream: null, - - // 0: processing headers - // 1: processing body - // 2: skipping header - inputMode: 0, - dataLength: 0, - headerData: "", - encapsulate: null, - encHeader: null, - cryptoBoundary: null, - win: null, - pipe: null, - proc: null, - statusStr: "", - encryptedData: "", - hashAlgorithm: null, - pipeQueue: "", - outQueue: "", - closePipe: false, - cryptoMode: 0, - exitCode: -1, - inspector: null, - checkSMime: true, - - // nsIStreamListener interface - onStartRequest: function(request) { - EnigmailLog.DEBUG("mimeEncrypt.js: onStartRequest\n"); - this.encHeader = null; - }, - - /** - * onDataAvailable for TB <= 66 - */ - onDataAvailable60: function(req, ctxt, stream, offset, count) { - LOCAL_DEBUG("mimeEncrypt.js: onDataAvailable\n"); - this.inStream.init(stream); - var data = this.inStream.read(count); - //LOCAL_DEBUG("mimeEncrypt.js: >"+data+"<\n"); - - }, - - /** - * onDataAvailable for TB >= 67 - */ - onDataAvailable68: function(req, stream, offset, count) { - LOCAL_DEBUG("mimeEncrypt.js: onDataAvailable\n"); - this.inStream.init(stream); - var data = this.inStream.read(count); - //LOCAL_DEBUG("mimeEncrypt.js: >"+data+"<\n"); - - }, - - onStopRequest: function(request, status) { - EnigmailLog.DEBUG("mimeEncrypt.js: onStopRequest\n"); - }, - - disableSMimeCheck: function() { - this.useSmime = false; - this.checkSMime = false; - }, - - // nsIMsgComposeSecure interface - requiresCryptoEncapsulation: function(msgIdentity, msgCompFields) { - EnigmailLog.DEBUG("mimeEncrypt.js: requiresCryptoEncapsulation\n"); - try { - - if (EnigmailPEPAdapter.usingPep()) { - try { - return msgIdentity.getBoolAttribute("enablePEP"); - } - catch (ex) { - return false; - } - } - else { - if (Components.classesByID && kSmimeComposeSecureCID in Components.classesByID) { - // TB < 64 - if (this.checkSMime) { - // Remember to use original CID, not CONTRACTID, to avoid infinite looping! - this.smimeCompose = Components.classesByID[kSmimeComposeSecureCID].createInstance(Ci.nsIMsgComposeSecure); - this.useSmime = this.smimeCompose.requiresCryptoEncapsulation(msgIdentity, msgCompFields); - } - - if (this.useSmime) return true; - - if (msgCompFields.securityInfo) { - let securityInfo = msgCompFields.securityInfo.wrappedJSObject; - if (!securityInfo) return false; - - for (let prop of ["sendFlags", "UIFlags", "senderEmailAddr", "recipients", "bccRecipients", "originalSubject", "keyMap"]) { - this[prop] = securityInfo[prop]; - } - } - else return false; - } - else { - // TB >= 64: we are not called for S/MIME - this.disableSMimeCheck(); - } - - return (this.sendFlags & (EnigmailConstants.SEND_SIGNED | - EnigmailConstants.SEND_ENCRYPTED | - EnigmailConstants.SEND_VERBATIM)) !== 0; - } - } - catch (ex) { - EnigmailLog.writeException("mimeEncrypt.js", ex); - throw (ex); - } - }, - - beginCryptoEncapsulation: function(outStream, recipientList, msgCompFields, msgIdentity, sendReport, isDraft) { - EnigmailLog.DEBUG("mimeEncrypt.js: beginCryptoEncapsulation\n"); - - if (EnigmailPEPAdapter.usingPep()) { - this.recipientList = recipientList; - this.msgIdentity = msgIdentity; - this.outStream = outStream; - this.msgCompFields = msgCompFields; - this.isDraft = isDraft; - this.inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - this.outStringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - return null; - } - - if (this.checkSMime && (!this.smimeCompose)) { - LOCAL_DEBUG("mimeEncrypt.js: beginCryptoEncapsulation: ERROR MsgComposeSecure not instantiated\n"); - throw Cr.NS_ERROR_FAILURE; - } - - if (this.useSmime) - return this.smimeCompose.beginCryptoEncapsulation(outStream, recipientList, - msgCompFields, msgIdentity, - sendReport, isDraft); - - if (!outStream) throw Cr.NS_ERROR_NULL_POINTER; - - try { - - this.outStream = outStream; - this.isDraft = isDraft; - - this.msgCompFields = msgCompFields; - this.outStringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - - var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); - this.win = windowManager.getMostRecentWindow(null); - - if (this.sendFlags & EnigmailConstants.SEND_VERBATIM) { - this.recipientList = recipientList; - this.msgIdentity = msgIdentity; - this.msgCompFields = msgCompFields; - this.inputMode = 2; - return null; - } - - if (this.sendFlags & EnigmailConstants.SEND_PGP_MIME) { - - if (this.sendFlags & EnigmailConstants.SEND_ENCRYPTED) { - // applies to encrypted and signed & encrypted - this.cryptoMode = MIME_ENCRYPTED; - } - else if (this.sendFlags & EnigmailConstants.SEND_SIGNED) { - this.cryptoMode = MIME_SIGNED; - - let hashAlgoObj = {}; - if (EnigmailHash.determineAlgorithm(this.win, - this.UIFlags, - this.senderEmailAddr, - hashAlgoObj) === 0) { - this.hashAlgorithm = hashAlgoObj.value; - } - else { - if ("statusFlags" in hashAlgoObj && hashAlgoObj.statusFlags !== 0 && hashAlgoObj.errorMsg) { - EnigmailDialog.alert(this.win, hashAlgoObj.errorMsg); - } - - throw Cr.NS_ERROR_FAILURE; - } - } - } - else - throw Cr.NS_ERROR_NOT_IMPLEMENTED; - - this.cryptoBoundary = EnigmailMime.createBoundary(); - this.startCryptoHeaders(); - - } - catch (ex) { - EnigmailLog.writeException("mimeEncrypt.js", ex); - throw (ex); - } - - return null; - }, - - startCryptoHeaders: function() { - EnigmailLog.DEBUG("mimeEncrypt.js: startCryptoHeaders\n"); - - if (this.cryptoMode == MIME_SIGNED) this.signedHeaders1(false); - if (this.cryptoMode == MIME_ENCRYPTED) this.encryptedHeaders(); - - this.writeSecureHeaders(); - }, - - writeSecureHeaders: function() { - this.encHeader = EnigmailMime.createBoundary(); - - let allHdr = ""; - - if (this.sendFlags & EnigmailConstants.ENCRYPT_HEADERS) { - let addrParser = jsmime.headerparser.parseAddressingHeader; - let newsParser = function(s) { - return jsmime.headerparser.parseStructuredHeader("Newsgroups", s); - }; - let noParser = function(s) { - return s; - }; - - let h = { - from: { - field: "From", - parser: addrParser - }, - replyTo: { - field: "Reply-To", - parser: addrParser - }, - to: { - field: "To", - parser: addrParser - }, - cc: { - field: "Cc", - parser: addrParser - }, - newsgroups: { - field: "Newsgroups", - parser: newsParser - }, - followupTo: { - field: "Followup-To", - parser: addrParser - }, - messageId: { - field: "Message-Id", - parser: noParser - }, - subject: { - field: "Subject", - parser: noParser - } - }; - - for (let i in h) { - if (this.msgCompFields[i] && this.msgCompFields[i].length > 0) { - allHdr += jsmime.headeremitter.emitStructuredHeader(h[i].field, h[i].parser(this.msgCompFields[i]), {}); - } - } - - if (this.cryptoMode == MIME_ENCRYPTED && this.originalSubject && this.originalSubject.length > 0) { - allHdr += jsmime.headeremitter.emitStructuredHeader("subject", this.originalSubject, {}); - } - - // special handling for references and in-reply-to - - if (this.originalReferences && this.originalReferences.length > 0) { - allHdr += jsmime.headeremitter.emitStructuredHeader("references", this.originalReferences, {}); - - let bracket = this.originalReferences.lastIndexOf("<"); - if (bracket >= 0) { - allHdr += jsmime.headeremitter.emitStructuredHeader("in-reply-to", this.originalReferences.substr(bracket), {}); - } - } - } - - let w = `Content-Type: multipart/mixed; boundary="${this.encHeader}"`; - - if (allHdr.length > 0) { - w += `;\r\n protected-headers="v1"\r\n${allHdr}`; - } - else { - w += '\r\n'; - } - - w += this.getAutocryptGossip() + `\r\n--${this.encHeader}\r\n`; - this.writeToPipe(w); - - if (this.cryptoMode == MIME_SIGNED) { - this.writeOut(w); - } - else if (EnigmailPrefs.getPref("protectedHeadersLegacyPart") && - this.originalSubject && this.originalSubject.length > 0 && - (this.sendFlags & EnigmailConstants.ENCRYPT_HEADERS)) { - w = 'Content-Type: text/plain; charset=utf-8; protected-headers="v1"\r\n' + - 'Content-Disposition: inline\r\n\r\n' + - 'Subject: ' + EnigmailData.convertFromUnicode(this.originalSubject, "utf-8") + "\r\n\r\n" + - `--${this.encHeader}\r\n`; - this.writeToPipe(w); - } - }, - - getAutocryptGossip: function() { - let gossip = ""; - if (this.cryptoMode == MIME_ENCRYPTED && - this.msgCompFields.hasHeader("autocrypt") && - this.keyMap && - EnigmailFuncs.getNumberOfRecipients(this.msgCompFields) > 1) { - for (let email in this.keyMap) { - let keyObj = EnigmailKeyRing.getKeyById(this.keyMap[email]); - if (keyObj) { - let k = keyObj.getMinimalPubKey(email); - if (k.exitCode === 0) { - let keyData = " " + k.keyData.replace(/(.{72})/g, "$1\r\n ").replace(/\r\n $/, ""); - gossip += 'Autocrypt-Gossip: addr=' + email + '; keydata=\r\n' + keyData + "\r\n"; - } - } - } - } - - return gossip; - }, - - encryptedHeaders: function(isEightBit) { - EnigmailLog.DEBUG("mimeEncrypt.js: encryptedHeaders\n"); - let subj = ""; - - if (this.sendFlags & EnigmailConstants.ENCRYPT_HEADERS) { - subj = jsmime.headeremitter.emitStructuredHeader("subject", EnigmailConstants.PROTECTED_SUBJECT, {}); - } - - this.writeOut(subj + - "Content-Type: multipart/encrypted;\r\n" + - " protocol=\"application/pgp-encrypted\";\r\n" + - " boundary=\"" + this.cryptoBoundary + "\"\r\n" + - "\r\n" + - "This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)\r\n" + - "--" + this.cryptoBoundary + "\r\n" + - "Content-Type: application/pgp-encrypted\r\n" + - "Content-Description: PGP/MIME version identification\r\n" + - "\r\n" + - "Version: 1\r\n" + - "\r\n" + - "--" + this.cryptoBoundary + "\r\n" + - "Content-Type: application/octet-stream; name=\"encrypted.asc\"\r\n" + - "Content-Description: OpenPGP encrypted message\r\n" + - "Content-Disposition: inline; filename=\"encrypted.asc\"\r\n" + - "\r\n"); - }, - - signedHeaders1: function(isEightBit) { - LOCAL_DEBUG("mimeEncrypt.js: signedHeaders1\n"); - this.writeOut("Content-Type: multipart/signed; micalg=pgp-" + - this.hashAlgorithm.toLowerCase() + - ";\r\n" + - " protocol=\"application/pgp-signature\";\r\n" + - " boundary=\"" + this.cryptoBoundary + "\"\r\n" + - (isEightBit ? "Content-Transfer-Encoding: 8bit\r\n\r\n" : "\r\n") + - "This is an OpenPGP/MIME signed message (RFC 4880 and 3156)\r\n" + - "--" + this.cryptoBoundary + "\r\n"); - }, - - - signedHeaders2: function() { - LOCAL_DEBUG("mimeEncrypt.js: signedHeaders2\n"); - - this.writeOut("\r\n--" + this.cryptoBoundary + "\r\n" + - "Content-Type: application/pgp-signature; name=\"signature.asc\"\r\n" + - "Content-Description: OpenPGP digital signature\r\n" + - "Content-Disposition: attachment; filename=\"signature.asc\"\r\n\r\n"); - }, - - finishCryptoHeaders: function() { - EnigmailLog.DEBUG("mimeEncrypt.js: finishCryptoHeaders\n"); - - this.writeOut("\r\n--" + this.cryptoBoundary + "--\r\n"); - }, - - finishCryptoEncapsulation: function(abort, sendReport) { - EnigmailLog.DEBUG("mimeEncrypt.js: finishCryptoEncapsulation\n"); - - if (EnigmailPEPAdapter.usingPep()) { - this.processPepEncryption(); - return; - } - - if (this.checkSMime && (!this.smimeCompose)) - throw Cr.NS_ERROR_NOT_INITIALIZED; - - if (this.useSmime) { - this.smimeCompose.finishCryptoEncapsulation(abort, sendReport); - return; - } - - if ((this.sendFlags & EnigmailConstants.SEND_VERBATIM) !== 0) { - this.flushOutput(); - return; - } - - - let statusFlagsObj = {}; - let errorMsgObj = {}; - let proc = EnigmailEncryption.encryptMessageStart(this.win, - this.UIFlags, - this.senderEmailAddr, - this.recipients, - this.bccRecipients, - this.hashAlgorithm, - this.sendFlags, - this, - statusFlagsObj, - errorMsgObj); - if (!proc) throw Cr.NS_ERROR_FAILURE; - - try { - if (this.encapsulate) this.writeToPipe("--" + this.encapsulate + "--\r\n"); - - if (this.encHeader) { - this.writeToPipe("\r\n--" + this.encHeader + "--\r\n"); - if (this.cryptoMode == MIME_SIGNED) this.writeOut("\r\n--" + this.encHeader + "--\r\n"); - } - - this.flushInput(); - - if (!this.pipe) { - this.closePipe = true; - } - else - this.pipe.close(); - - // wait here for proc to terminate - proc.wait(); - - LOCAL_DEBUG("mimeEncrypt.js: finishCryptoEncapsulation: exitCode = " + this.exitCode + "\n"); - if (this.exitCode !== 0) throw Cr.NS_ERROR_FAILURE; - - if (this.cryptoMode == MIME_SIGNED) this.signedHeaders2(); - - this.encryptedData = this.encryptedData.replace(/\r/g, "").replace(/\n/g, "\r\n"); // force CRLF - this.writeOut(this.encryptedData); - this.finishCryptoHeaders(); - this.flushOutput(); - } - catch (ex) { - EnigmailLog.writeException("mimeEncrypt.js", ex); - throw (ex); - } - - }, - - mimeCryptoWriteBlock: function(buffer, length) { - if (gDebugLogLevel > 4) - LOCAL_DEBUG("mimeEncrypt.js: mimeCryptoWriteBlock: " + length + "\n"); - - if (EnigmailPEPAdapter.usingPep()) { - this.pipeQueue += buffer.substr(0, length); - return null; - } - - if (this.checkSMime && (!this.smimeCompose)) - throw Cr.NS_ERROR_NOT_INITIALIZED; - - if (this.useSmime) return this.smimeCompose.mimeCryptoWriteBlock(buffer, length); - - try { - let line = buffer.substr(0, length); - if (this.inputMode === 0) { - if ((this.sendFlags & EnigmailConstants.SEND_VERBATIM) !== 0) { - line = EnigmailData.decodeQuotedPrintable(line.replace("=\r\n", "")); - } - - if ((this.sendFlags & EnigmailConstants.SEND_VERBATIM) === 0 || - line.match(/^(From|To|Subject|Message-ID|Date|User-Agent|MIME-Version):/i) === null) { - this.headerData += line; - } - - if (line.replace(/[\r\n]/g, "").length === 0) { - this.inputMode = 1; - - if (this.cryptoMode == MIME_ENCRYPTED) { - if (!this.encHeader) { - let ct = this.getHeader("content-type", false); - if ((ct.search(/text\/plain/i) === 0) || (ct.search(/text\/html/i) === 0)) { - this.encapsulate = EnigmailMime.createBoundary(); - this.writeToPipe('Content-Type: multipart/mixed; boundary="' + - this.encapsulate + '"\r\n\r\n'); - this.writeToPipe("--" + this.encapsulate + "\r\n"); - } - } - } - else if (this.cryptoMode == MIME_SIGNED) { - let ct = this.getHeader("content-type", true); - let hdr = EnigmailFuncs.getHeaderData(ct); - hdr.boundary = hdr.boundary || ""; - hdr.boundary = hdr.boundary.replace(/['"]/g, ""); - } - - this.writeToPipe(this.headerData); - if (this.cryptoMode == MIME_SIGNED || - (this.sendFlags & EnigmailConstants.SEND_VERBATIM) !== 0) { - this.writeOut(this.headerData); - } - } - - } - else if (this.inputMode == 1) { - if (this.cryptoMode == MIME_SIGNED) { - // special treatments for various special cases with PGP/MIME signed messages - if (line.substr(0, 5) == "From ") { - LOCAL_DEBUG("mimeEncrypt.js: added >From\n"); - this.writeToPipe(">"); - } - } - - this.writeToPipe(line); - if (this.cryptoMode == MIME_SIGNED) { - this.writeOut(line); - } - else if ((this.sendFlags & EnigmailConstants.SEND_VERBATIM) !== 0) { - this.writeOut(EnigmailData.decodeQuotedPrintable(line.replace("=\r\n", ""))); - } - } - else if (this.inputMode == 2) { - if (line.replace(/[\r\n]/g, "").length === 0) { - this.inputMode = 0; - } - } - } - catch (ex) { - EnigmailLog.writeException("mimeEncrypt.js", ex); - throw (ex); - } - - return null; - }, - - writeOut: function(str) { - if (gDebugLogLevel > 4) - LOCAL_DEBUG("mimeEncrypt.js: writeOut: " + str.length + "\n"); - - this.outQueue += str; - - if (this.outQueue.length > maxBufferLen) - this.flushOutput(); - }, - - flushOutput: function() { - LOCAL_DEBUG("mimeEncrypt.js: flushOutput: " + this.outQueue.length + "\n"); - - this.outStringStream.setData(this.outQueue, this.outQueue.length); - var writeCount = this.outStream.writeFrom(this.outStringStream, this.outQueue.length); - if (writeCount < this.outQueue.length) { - LOCAL_DEBUG("mimeEncrypt.js: flushOutput: wrote " + writeCount + " instead of " + this.outQueue.length + " bytes\n"); - } - this.outQueue = ""; - }, - - writeToPipe: function(str) { - if (gDebugLogLevel > 4) - LOCAL_DEBUG("mimeEncrypt.js: writeToPipe: " + str.length + "\n"); - - if (this.pipe) { - this.pipeQueue += str; - if (this.pipeQueue.length > maxBufferLen) - this.flushInput(); - } - else - this.pipeQueue += str; - }, - - flushInput: function() { - LOCAL_DEBUG("mimeEncrypt.js: flushInput\n"); - if (!this.pipe) return; - this.pipe.write(this.pipeQueue); - this.pipeQueue = ""; - }, - - getHeader: function(hdrStr, fullHeader) { - var foundIndex = 0; - var res = ""; - var hdrLines = this.headerData.split(/[\r\n]+/); - var i; - for (i = 0; i < hdrLines.length; i++) { - if (hdrLines[i].length > 0) { - if (fullHeader && res !== "") { - if (hdrLines[i].search(/^\s+/) === 0) { - res += hdrLines[i].replace(/\s*[\r\n]*$/, ""); - } - else - return res; - } - else { - let j = hdrLines[i].indexOf(":"); - if (j > 0) { - let h = hdrLines[i].substr(0, j).replace(/\s*$/, ""); - let re = new RegExp("^" + hdrStr + "$", "i"); - if (h.search(re) === 0) { - foundIndex = 1; - res = hdrLines[i].substr(j + 1).replace(/^\s*/, ""); - if (!fullHeader) return res; - } - } - } - } - } - - return res; - }, - - - // API for decryptMessage Listener - stdin: function(pipe) { - LOCAL_DEBUG("mimeEncrypt.js: stdin\n"); - if (this.pipeQueue.length > 0) { - pipe.write(this.pipeQueue); - this.pipeQueue = ""; - } - if (this.closePipe) { - pipe.close(); - } - else { - this.pipe = pipe; - } - }, - - stdout: function(s) { - LOCAL_DEBUG("mimeEncrypt.js: stdout:" + s.length + "\n"); - this.encryptedData += s; - this.dataLength += s.length; - }, - - stderr: function(s) { - LOCAL_DEBUG("mimeEncrypt.js: stderr\n"); - this.statusStr += s; - }, - - done: function(exitCode) { - EnigmailLog.DEBUG("mimeEncrypt.js: done: " + exitCode + "\n"); - - let retStatusObj = {}; - - this.exitCode = EnigmailEncryption.encryptMessageEnd(this.senderEmailAddr, - this.statusStr, - exitCode, - this.UIFlags, - this.sendFlags, - this.dataLength, - retStatusObj); - - if (this.exitCode !== 0) - EnigmailDialog.alert(this.win, retStatusObj.errorMsg); - - }, - - processPepEncryption: function() { - EnigmailLog.DEBUG("mimeEncrypt.js: processPepEncryption:\n"); - - let requireEncryption = (this.sendFlags & EnigmailConstants.SEND_ENCRYPTED); - let self = this; - let resultObj = null; - let originalSubject = null; - let sendFlags = 0; - this.outQueue = ""; - - if ((!this.isDraft) || self.msgIdentity.getBoolAttribute("autoEncryptDrafts")) { - try { - originalSubject = this.originalSubject; - sendFlags = this.sendFlags; - } - catch (ex) {} - - let fromAddr = jsmime.headerparser.parseAddressingHeader(self.msgIdentity.email); - - let toAddr; - let encryptFlags = 0; - - if (!this.isDraft) { - toAddr = jsmime.headerparser.parseAddressingHeader(this.recipientList); - - if (!self.msgIdentity.getBoolAttribute("attachPepKey")) { - encryptFlags = 0x4; // do not attach own key - } - } - else { - toAddr = fromAddr; - sendFlags = EnigmailConstants.SEND_ENCRYPTED; - encryptFlags = 0x2 + 0x4; // unsigned message; do not attach own key - } - - if (sendFlags & EnigmailConstants.SEND_ENCRYPTED) { - let s = jsmime.headeremitter.emitStructuredHeader("from", fromAddr, {}); - s += jsmime.headeremitter.emitStructuredHeader("to", toAddr, {}); - - if (originalSubject !== null) { - s += jsmime.headeremitter.emitStructuredHeader("subject", originalSubject, {}); - } - - EnigmailPEPAdapter.pep.encryptMimeString(s + this.pipeQueue, null, encryptFlags).then(function _f(res) { - EnigmailLog.DEBUG("mimeEncrypt.js: processPepEncryption: got result\n"); - if ((typeof(res) === "object") && ("result" in res)) { - resultObj = res.result.outParams; - } - else - EnigmailLog.DEBUG("mimeEncrypt.js: processPepEncryption: typeof res=" + typeof(res) + "\n"); - - - if (self.inspector && self.inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - self.inspector.exitNestedEventLoop(); - } - - }).catch(function _error(err) { - EnigmailLog.DEBUG("mimeEncrypt.js: processPepEncryption: ERROR\n"); - try { - EnigmailLog.DEBUG(err.code + ": " + ("exception" in err ? err.exception.toString() : err.message) + "\n"); - } - catch (x) { - EnigmailLog.DEBUG(JSON.stringify(err) + "\n"); - } - - if (self.inspector && self.inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - self.inspector.exitNestedEventLoop(); - } - }); - - // wait here for PEP to terminate - this.inspector.enterNestedEventLoop(0); - } - } - - if (resultObj !== null && Array.isArray(resultObj) && typeof(resultObj[0]) === "string") { - this.outQueue = EnigmailPEPAdapter.stripMsgHeadersFromEncryption(resultObj); - } - else if (requireEncryption) { - if (!EnigmailDialog.confirmDlg(this.win, EnigmailLocale.getString("signFailed"), EnigmailLocale.getString("msgCompose.button.sendUnencrypted"))) { - throw Cr.NS_ERROR_FAILURE; - } - } - - if (this.outQueue === "") { - if (originalSubject !== null) { - this.outQueue = jsmime.headeremitter.emitStructuredHeader("subject", originalSubject, {}) + - this.pipeQueue; - } - else { - this.outQueue = this.pipeQueue; - } - } - - this.outStringStream.setData(this.outQueue, this.outQueue.length); - let writeCount = this.outStream.writeFrom(this.outStringStream, this.outQueue.length); - - if (writeCount < this.outQueue.length) { - EnigmailLog.DEBUG("mimeEncrypt.js: flushOutput: wrote " + writeCount + " instead of " + this.outQueue.length + " bytes\n"); - } - this.outQueue = ""; - - } -}; - - -//////////////////////////////////////////////////////////////////// -// General-purpose functions, not exported - - -function LOCAL_DEBUG(str) { - if (gDebugLogLevel) EnigmailLog.DEBUG(str); -} - -function initModule() { - EnigmailLog.DEBUG("mimeEncrypt.jsm: initModule()\n"); - var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - var nspr_log_modules = env.get("NSPR_LOG_MODULES"); - var matches = nspr_log_modules.match(/mimeEncrypt:(\d+)/); - - if (matches && (matches.length > 1)) { - gDebugLogLevel = matches[1]; - LOCAL_DEBUG("mimeEncrypt.js: enabled debug logging\n"); - } -} - -var EnigmailMimeEncrypt = { - Handler: PgpMimeEncrypt, - - startup: function(reason) { - initModule(); - }, - shutdown: function(reason) {}, - - createMimeEncrypt: function(sMimeSecurityInfo) { - return new PgpMimeEncrypt(sMimeSecurityInfo); - }, - - isEnigmailCompField: function(obj) { - return obj instanceof PgpMimeEncrypt; - } -}; diff -Nru enigmail-2.1.6+ds1/package/mime.jsm enigmail-2.2.4/package/mime.jsm --- enigmail-2.1.6+ds1/package/mime.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/mime.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,494 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailMime"]; - -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; - -var EnigmailMime = { - /*** - * create a string of random characters suitable to use for a boundary in a - * MIME message following RFC 2045 - * - * @return: string of 33 random characters and digits - */ - createBoundary: function() { - return EnigmailRNG.generateRandomString(33); - }, - - /*** - * determine the "boundary" part of a mail content type. - * - * @contentTypeStr: the string containing all parts of a content-type. - * (e.g. multipart/mixed; boundary="xyz") --> returns "xyz" - * - * @return: String containing the boundary parameter; or "" - */ - - getBoundary: function(contentTypeStr) { - return EnigmailMime.getParameter(contentTypeStr, "boundary"); - }, - - /*** - * determine the "protocol" part of a mail content type. - * - * @contentTypeStr: the string containing all parts of a content-type. - * (e.g. multipart/signed; protocol="xyz") --> returns "xyz" - * - * @return: String containing the protocol parameter; or "" - */ - - getProtocol: function(contentTypeStr) { - return EnigmailMime.getParameter(contentTypeStr, "protocol"); - }, - - /*** - * determine an arbitrary "parameter" part of a mail header. - * - * @param headerStr: the string containing all parts of the header. - * @param parameter: the parameter we are looking for - * - * - * 'multipart/signed; protocol="xyz"', 'protocol' --> returns "xyz" - * - * @return: String containing the parameter; or "" - */ - - getParameter: function(headerStr, parameter) { - let paramsArr = EnigmailMime.getAllParameters(headerStr); - parameter = parameter.toLowerCase(); - if (parameter in paramsArr) { - return paramsArr[parameter]; - } - else - return ""; - }, - - /*** - * get all parameter attributes of a mail header. - * - * @param headerStr: the string containing all parts of the header. - * - * @return: Array of Object containing the key value pairs - * - * 'multipart/signed; protocol="xyz"'; boundary="xxx" - * --> returns [ ["protocol": "xyz"], ["boundary": "xxx"] ] - */ - - getAllParameters: function(headerStr) { - - headerStr = headerStr.replace(/[\r\n]+[ \t]+/g, ""); - let hdrMap = jsmime.headerparser.parseParameterHeader(";" + headerStr, true, true); - - let paramArr = []; - let i = hdrMap.entries(); - let p = i.next(); - while (p.value) { - paramArr[p.value[0].toLowerCase()] = p.value[1]; - p = i.next(); - } - - return paramArr; - }, - - /*** - * determine the "charset" part of a mail content type. - * - * @contentTypeStr: the string containing all parts of a content-type. - * (e.g. multipart/mixed; charset="utf-8") --> returns "utf-8" - * - * @return: String containing the charset parameter; or null - */ - - getCharset: function(contentTypeStr) { - return EnigmailMime.getParameter(contentTypeStr, "charset"); - }, - - /** - * Convert a MIME header value into a UTF-8 encoded representation following RFC 2047 - */ - encodeHeaderValue: function(aStr) { - let ret = ""; - - if (aStr.search(/[^\x01-\x7F]/) >= 0) { // eslint-disable-line no-control-regex - let s = EnigmailData.convertFromUnicode(aStr, "utf-8"); - ret = "=?UTF-8?B?" + btoa(s) + "?="; - } - else { - ret = aStr; - } - - return ret; - }, - - /** - * format MIME header with maximum length of 72 characters. - */ - formatHeaderData: function(hdrValue) { - let header; - if (Array.isArray(hdrValue)) { - header = hdrValue.join("").split(" "); - } - else { - header = hdrValue.split(/ +/); - } - - let line = ""; - let lines = []; - - for (let i = 0; i < header.length; i++) { - if (line.length + header[i].length >= 72) { - lines.push(line + "\r\n"); - line = " " + header[i]; - } - else { - line += " " + header[i]; - } - } - - lines.push(line); - - return lines.join("").trim(); - }, - - /** - * Correctly encode and format a set of email addresses for RFC 2047 - */ - formatEmailAddress: function(addressData) { - const adrArr = addressData.split(/, */); - - for (let i in adrArr) { - try { - const m = adrArr[i].match(/(.*[\w\s]+?)<([\w-][\w.-]+@[\w-][\w.-]+[a-zA-Z]{1,4})>/); - if (m && m.length == 3) { - adrArr[i] = this.encodeHeaderValue(m[1]) + " <" + m[2] + ">"; - } - } - catch (ex) {} - } - - return adrArr.join(", "); - }, - - /** - * Extract the subject from the 1st line of the message body, if the message body starts - * with: "Subject: ...\r?\n\r?\n". - * - * @param msgBody - String: message body - * - * @return - * if subject is found: - * Object: - * - messageBody - String: message body without subject - * - subject - String: extracted subject - * - * if subject not found: null - */ - extractSubjectFromBody: function(msgBody) { - let m = msgBody.match(/^(\r?\n?Subject: [^\r\n]+\r?\n\r?\n)/i); - if (m && m.length > 0) { - let subject = m[0].replace(/[\r\n]/g, ""); - subject = subject.substr(9); - msgBody = msgBody.substr(m[0].length); - - return { - messageBody: msgBody, - subject: subject - }; - } - - return null; - }, - - /*** - * determine if the message data contains a first mime part with content-type = "text/rfc822-headers" - * if so, extract the corresponding field(s) - */ - - extractProtectedHeaders: function(contentData) { - // find first MIME delimiter. Anything before that delimiter is the top MIME structure - let m = contentData.search(/^--/m); - - if (m < 0) { - // we got a single, simple MIME part without any sub-parts - m = contentData.length; - } - - let protectedHdr = ["subject", "date", "from", - "to", "cc", "reply-to", "references", - "newsgroups", "followup-to", "message-id" - ]; - let newHeaders = {}; - - // read headers of first MIME part and extract the boundary parameter - let outerHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - outerHdr.initialize(contentData.substr(0, m)); - - let ct = outerHdr.extractHeader("content-type", false) || ""; - if (ct === "") return null; - - let startPos = -1, - endPos = -1, - bound = ""; - - if (ct.search(/^multipart\//i) === 0) { - // multipart/xyz message type - if (m < 5) { - return null; - } - - - bound = EnigmailMime.getBoundary(ct); - if (bound === "") return null; - - // search for "outer" MIME delimiter(s) - let r = new RegExp("^--" + bound, "mg"); - - startPos = -1; - endPos = -1; - - // 1st match: start of 1st MIME-subpart - let match = r.exec(contentData); - if (match && match.index) { - startPos = match.index; - } - - // 2nd match: end of 1st MIME-subpart - match = r.exec(contentData); - if (match && match.index) { - endPos = match.index; - } - - if (startPos < 0 || endPos < 0) return null; - } - else { - startPos = contentData.length; - endPos = 0; - } - - let headers = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - headers.initialize(contentData.substring(0, startPos)); - - // we got a potentially protected header. Let's check ... - ct = headers.extractHeader("content-type", false) || ""; - if (this.getParameter(ct, "protected-headers").search(/^v1$/i) !== 0) return null; - - for (let i in protectedHdr) { - if (headers.hasHeader(protectedHdr[i])) { - newHeaders[protectedHdr[i]] = jsmime.headerparser.decodeRFC2047Words(headers.extractHeader(protectedHdr[i], true)) || undefined; - } - } - - // contentBody holds the complete 1st MIME part - let contentBody = contentData.substring(startPos + bound.length + 3, endPos); - let i = contentBody.search(/^[A-Za-z]/m); // skip empty lines - if (i > 0) { - contentBody = contentBody.substr(i); - } - - headers.initialize(contentBody); - - let innerCt = headers.extractHeader("content-type", false) || ""; - if (!(innerCt.search(/^text\/(plain|rfc822-headers)/i) === 0 && innerCt.search(/; *protected-headers="?v1"?/i) > 0)) { - startPos = -1; - endPos = -1; - } - - return { - newHeaders: newHeaders, - startPos: startPos, - endPos: endPos, - securityLevel: 0 - }; - }, - - /** - * Get the part number from a URI spec (e.g. mailbox:///folder/xyz?part=1.2.3.5) - * - * @param spec: String - the URI spec to inspect - * - * @return String: the mime part number (or "" if none found) - */ - getMimePartNumber: function(spec) { - let m = spec.match(/([\?&]part=)(\d+(\.\d+)*)/); - - if (m && m.length >= 3) { - return m[2]; - } - - return ""; - }, - - /** - * Try to determine if the message structure is a known MIME structure, - * based on the MIME part number and the uriSpec. - * - * @param mimePartNumber: String - the MIME part we are requested to decrypt - * @param uriSpec: String - the URI spec of the message (or msg part) loaded by TB - * - * @return Boolean: true: regular message structure, MIME part is safe to be decrypted - * false: otherwise - */ - isRegularMimeStructure: function(mimePartNumber, uriSpec, acceptSubParts = false) { - if (mimePartNumber.length === 0) return true; - - if (acceptSubParts && (mimePartNumber.search(/^1(\.1)*$/) === 0)) return true; - if (mimePartNumber === "1") return true; - - if (!uriSpec) return true; - - // is the message a subpart of a complete attachment? - let msgPart = this.getMimePartNumber(uriSpec); - if (msgPart.length > 0) { - // load attached messages - if (mimePartNumber.indexOf(msgPart) === 0 && - mimePartNumber.substr(msgPart.length).search(/^(\.1)+$/) === 0) return true; - - // load attachments of attached messages - if (msgPart.indexOf(mimePartNumber) === 0 && - uriSpec.search(/[\?&]filename=/) > 0) return true; - } - - return false; - }, - - - /** - * Parse a MIME message and return a tree structur of TreeObject - * - * @param url: String - the URL to load and parse - * @param getBody: Boolean - if true, delivers the body text of each MIME part - * @param callbackFunc Function - the callback function that is called asynchronously - * when parsing is complete. - * Function signature: callBackFunc(TreeObject) - * - * @return undefined - */ - getMimeTreeFromUrl: function(url, getBody = false, callbackFunc) { - function onData(data) { - let tree = getMimeTree(data, getBody); - callbackFunc(tree); - } - - let chan = EnigmailStreams.createChannel(url); - let bufferListener = EnigmailStreams.newStringStreamListener(onData); - chan.asyncOpen(bufferListener, null); - }, - - getMimeTree: getMimeTree - -}; - -/** - * Parse a MIME message and return a tree structure of TreeObject. - * - * TreeObject contains the following main parts: - * - partNum: String - * - headers: Map, containing all headers. - * Special headers for contentType and charset - * - body: String, if getBody == true - * - subParts: Array of TreeObject - * - * @param mimeStr: String - a MIME structure to parse - * @param getBody: Boolean - if true, delivers the body text of each MIME part - * - * @return TreeObject, or NULL in case of failure - */ -function getMimeTree(mimeStr, getBody = false) { - - let mimeTree = { - partNum: "", - headers: null, - body: "", - parent: null, - subParts: [] - }, - stack = [], - currentPart = "", - currPartNum = ""; - - const jsmimeEmitter = { - - createPartObj: function(partNum, headers, parent) { - let ct; - - if (headers.has("content-type")) { - ct = headers.contentType.type; - let it = headers.get("content-type").entries(); - for (let i of it) { - ct += '; ' + i[0] + '="' + i[1] + '"'; - } - } - - return { - partNum: partNum, - headers: headers, - fullContentType: ct, - body: "", - parent: parent, - subParts: [] - }; - }, - - /** JSMime API **/ - startMessage: function() { - currentPart = mimeTree; - }, - - endMessage: function() {}, - - startPart: function(partNum, headers) { - //dump("mime.jsm: jsmimeEmitter.startPart: partNum=" + partNum + "\n"); - partNum = "1" + (partNum !== "" ? "." : "") + partNum; - let newPart = this.createPartObj(partNum, headers, currentPart); - - if (partNum.indexOf(currPartNum) === 0) { - // found sub-part - currentPart.subParts.push(newPart); - } - else { - // found same or higher level - currentPart.subParts.push(newPart); - } - currPartNum = partNum; - currentPart = newPart; - }, - endPart: function(partNum) { - //dump("mime.jsm: jsmimeEmitter.startPart: partNum=" + partNum + "\n"); - currentPart = currentPart.parent; - }, - - deliverPartData: function(partNum, data) { - //dump("mime.jsm: jsmimeEmitter.deliverPartData: partNum=" + partNum + " / " + typeof data + "\n"); - if (typeof(data) === "string") { - currentPart.body += data; - } - else { - currentPart.body += EnigmailData.arrayBufferToString(data); - } - } - }; - - let opt = { - strformat: "unicode", - bodyformat: getBody ? "decode" : "none" - }; - - - try { - let p = new jsmime.MimeParser(jsmimeEmitter, opt); - p.deliverData(mimeStr); - return mimeTree.subParts[0]; - } - catch (ex) { - return null; - } -} diff -Nru enigmail-2.1.6+ds1/package/mimeVerify.jsm enigmail-2.2.4/package/mimeVerify.jsm --- enigmail-2.1.6+ds1/package/mimeVerify.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/mimeVerify.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,614 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailVerify"]; - -/** - * Module for handling PGP/MIME signed messages - * implemented as JS module - */ - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailDecryption = ChromeUtils.import("chrome://enigmail/content/modules/decryption.jsm").EnigmailDecryption; -const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; -const EnigmailHttpProxy = ChromeUtils.import("chrome://enigmail/content/modules/httpProxy.jsm").EnigmailHttpProxy; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; -const PGPMIME_PROTO = "application/pgp-signature"; - -const maxBufferLen = 102400; - -var gDebugLog = false; - -// MimeVerify Constructor -function MimeVerify(protocol) { - if (!protocol) { - protocol = PGPMIME_PROTO; - } - - this.protocol = protocol; - this.verifyEmbedded = false; - this.partiallySigned = false; - this.exitCode = null; - this.inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); - - if (EnigmailCompat.isMessageUriInPgpMime()) { - this.onDataAvailable = this.onDataAvailable68; - } else { - this.onDataAvailable = this.onDataAvailable60; - } -} - - -var EnigmailVerify = { - lastMsgWindow: null, - lastMsgUri: null, - manualMsgUri: null, - - currentCtHandler: EnigmailConstants.MIME_HANDLER_UNDEF, - - setMsgWindow: function(msgWindow, msgUriSpec) { - LOCAL_DEBUG("mimeVerify.jsm: setMsgWindow: " + msgUriSpec + "\n"); - - this.lastMsgWindow = msgWindow; - this.lastMsgUri = msgUriSpec; - }, - - newVerifier: function(protocol) { - EnigmailLog.DEBUG("mimeVerify.jsm: newVerifier: " + (protocol || "null") + "\n"); - - let v = new MimeVerify(protocol); - return v; - }, - - setManualUri: function(msgUriSpec) { - LOCAL_DEBUG("mimeVerify.jsm: setManualUri: " + msgUriSpec + "\n"); - this.manualMsgUri = msgUriSpec; - }, - - getManualUri: function() { - EnigmailLog.DEBUG("mimeVerify.jsm: getManualUri\n"); - return this.manualMsgUri; - }, - - /*** - * register a PGP/MIME verify object the same way PGP/MIME encrypted mail is handled - */ - registerContentTypeHandler: function() { - EnigmailLog.DEBUG("mimeVerify.jsm: registerContentTypeHandler\n"); - let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); - - let pgpMimeClass = Components.classes["@mozilla.org/mimecth;1?type=multipart/encrypted"]; - - reg.registerFactory( - pgpMimeClass, - "Enigmail PGP/MIME verification", - "@mozilla.org/mimecth;1?type=multipart/signed", - null); - this.currentCtHandler = EnigmailConstants.MIME_HANDLER_PGPMIME; - }, - - unregisterContentTypeHandler: function() { - EnigmailLog.DEBUG("mimeVerify.jsm: unregisterContentTypeHandler\n"); - let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); - - let sMimeClass = Components.classes["@mozilla.org/nsCMSDecoder;1"]; - reg.registerFactory(sMimeClass, "S/MIME verification", "@mozilla.org/mimecth;1?type=multipart/signed", null); - this.currentCtHandler = EnigmailConstants.MIME_HANDLER_SMIME; - } - -}; - - -// MimeVerify implementation -// verify the signature of PGP/MIME signed messages -MimeVerify.prototype = { - dataCount: 0, - foundMsg: false, - startMsgStr: "", - msgWindow: null, - msgUriSpec: null, - statusDisplayed: false, - window: null, - inStream: null, - sigFile: null, - sigData: "", - mimePartNumber: "", - - QueryInterface: EnigmailCompat.generateQI([Ci.nsIStreamListener]), - - startStreaming: function(window, msgWindow, msgUriSpec) { - LOCAL_DEBUG("mimeVerify.jsm: startStreaming\n"); - - this.msgWindow = msgWindow; - this.msgUriSpec = msgUriSpec; - this.window = window; - var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger); - var msgSvc = messenger.messageServiceFromURI(this.msgUriSpec); - - msgSvc.streamMessage(this.msgUriSpec, - this, - this.msgWindow, - null, - false, - null, - false); - }, - - verifyData: function(window, msgWindow, msgUriSpec, data) { - LOCAL_DEBUG("mimeVerify.jsm: streamFromChannel\n"); - - this.msgWindow = msgWindow; - this.msgUriSpec = msgUriSpec; - this.window = window; - this.onStartRequest(); - this.onTextData(data); - this.onStopRequest(); - }, - - parseContentType: function() { - let contentTypeLine = this.mimeSvc.contentType; - - // Eat up CRLF's. - contentTypeLine = contentTypeLine.replace(/[\r\n]/g, ""); - 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(protoRx) > 0) { - - EnigmailLog.DEBUG("mimeVerify.jsm: parseContentType: found MIME signed message\n"); - this.foundMsg = true; - let hdr = EnigmailFuncs.getHeaderData(contentTypeLine); - hdr.boundary = hdr.boundary || ""; - hdr.micalg = hdr.micalg || ""; - this.boundary = hdr.boundary.replace(/['"]/g, ""); - } - }, - - onStartRequest: function(request, uri) { - EnigmailLog.DEBUG("mimeVerify.jsm: onStartRequest\n"); // always log this one - - this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - this.msgUriSpec = EnigmailVerify.lastMsgUri; - - if ("mimePart" in this.mimeSvc) { - this.mimePartNumber = this.mimeSvc.mimePart; - } else { - this.mimePartNumber = ""; - } - - if ("messageURI" in this.mimeSvc) { - this.uri = this.mimeSvc.messageURI; - } else { - if (uri) { - this.uri = uri.QueryInterface(Ci.nsIURI); - } - } - - this.dataCount = 0; - this.foundMsg = false; - this.backgroundJob = false; - this.startMsgStr = ""; - this.boundary = ""; - this.proc = null; - this.closePipe = false; - this.pipe = null; - this.readMode = 0; - this.keepData = ""; - this.last80Chars = ""; - this.signedData = ""; - this.statusStr = ""; - this.returnStatus = null; - this.statusDisplayed = false; - this.protectedHeaders = null; - this.parseContentType(); - }, - - /** - * onDataAvailable for TB <= 66 - */ - onDataAvailable60: function(req, ctxt, stream, offset, count) { - LOCAL_DEBUG("mimeVerify.jsm: onDataAvailable60: " + count + "\n"); - if (count > 0) { - this.inStream.init(stream); - var data = this.inStream.read(count); - this.onTextData(data); - } - }, - - /** - * onDataAvailable for TB >= 67 - */ - onDataAvailable68: function(req, stream, offset, count) { - LOCAL_DEBUG("mimeVerify.jsm: onDataAvailable68: " + count + "\n"); - if (count > 0) { - this.inStream.init(stream); - var data = this.inStream.read(count); - this.onTextData(data); - } - }, - - onTextData: function(data) { - LOCAL_DEBUG("mimeVerify.jsm: onTextData\n"); - - this.dataCount += data.length; - - this.keepData += data; - if (this.readMode === 0) { - // header data - let i = this.findNextMimePart(); - if (i >= 0) { - i += 2 + this.boundary.length; - if (this.keepData[i] == "\n") { - ++i; - } else if (this.keepData[i] == "\r") { - ++i; - if (this.keepData[i] == "\n") ++i; - } - - this.keepData = this.keepData.substr(i); - data = this.keepData; - this.readMode = 1; - } else { - this.keepData = data.substr(-this.boundary.length - 3); - } - } - - if (this.readMode === 1) { - // "real data" - if (data.indexOf("-") >= 0) { // only check current line for speed reasons - let i = this.findNextMimePart(); - if (i >= 0) { - // end of "read data found" - if (this.keepData[i - 2] == '\r' && this.keepData[i - 1] == '\n') { - --i; - } - - this.signedData = this.keepData.substr(0, i - 1); - this.keepData = this.keepData.substr(i); - this.readMode = 2; - } - } else - return; - } - - if (this.readMode === 2) { - let i = this.keepData.indexOf("--" + this.boundary + "--"); - if (i >= 0) { - // ensure that we keep everything until we got the "end" boundary - if (this.keepData[i - 2] == '\r' && this.keepData[i - 1] == '\n') { - --i; - } - this.keepData = this.keepData.substr(0, i - 1); - this.readMode = 3; - } - } - - if (this.readMode === 3) { - // signature data - 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 = ""; - } - - this.keepData = ""; - this.readMode = 4; // ignore any further data - } - - }, - - getBodyPart: function() { - let start = this.keepData.search(/(\n\n|\r\n\r\n)/); - if (start < 0) { - start = 0; - } - let end = this.keepData.indexOf("--" + this.boundary + "--") - 1; - if (end < 0) { - end = this.keepData.length; - } - - return { - start: start, - end: end - }; - }, - - // determine content-transfer encoding of mime part, assuming that whole - // message is in this.keepData - getContentTransferEncoding: function() { - let enc = "7bit"; - let m = this.keepData.match(/^(content-transfer-encoding:)(.*)$/mi); - if (m && m.length > 2) { - enc = m[2].trim().toLowerCase(); - } - - return enc; - }, - - - findNextMimePart: function() { - let startOk = false; - let endOk = false; - - let i = this.keepData.indexOf("--" + this.boundary); - if (i === 0) startOk = true; - if (i > 0) { - if (this.keepData[i - 1] == '\r' || this.keepData[i - 1] == '\n') startOk = true; - } - - if (!startOk) return -1; - - if (i + this.boundary.length + 2 < this.keepData.length) { - if (this.keepData[i + this.boundary.length + 2] == '\r' || - this.keepData[i + this.boundary.length + 2] == '\n' || - this.keepData.substr(i + this.boundary.length + 2, 2) == '--') endOk = true; - } - // else - // endOk = true; - - if (i >= 0 && startOk && endOk) { - return i; - } - return -1; - }, - - onStopRequest: function() { - EnigmailLog.DEBUG("mimeVerify.jsm: onStopRequest\n"); - - this.msgWindow = EnigmailVerify.lastMsgWindow; - this.msgUriSpec = EnigmailVerify.lastMsgUri; - - let url = {}; - - 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.endPos > this.protectedHeaders.startPos) { - let r = this.signedData.substr(0, this.protectedHeaders.startPos) + this.signedData.substr(this.protectedHeaders.endPos); - this.returnData(r); - } else { - this.returnData(this.signedData); - } - - // return if not verifying first mime part - if (this.mimePartNumber.length > 0 && this.mimePartNumber.search(/^1(\.1)?$/) < 0) return; - - if (this.uri) { - // return if not decrypting currently displayed message (except if - // printing, replying, etc) - - this.backgroundJob = (this.uri.spec.search(/[&?]header=(print|quotebody|enigmailConvert)/) >= 0); - - try { - var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger); - - if (!EnigmailPrefs.getPref("autoDecrypt")) { - // "decrypt manually" mode - let manUrl = {}; - - if (EnigmailVerify.getManualUri()) { - manUrl = EnigmailCompat.getUrlFromUriSpec(EnigmailVerify.getManualUri()); - } else { - manUrl = { - spec: "enigmail://invalid/message" - }; - } - - // print a message if not message explicitly decrypted - let currUrlSpec = this.uri.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2"); - let manUrlSpec = manUrl.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2"); - - - if ((!this.backgroundJob) && currUrlSpec != manUrlSpec) { - return; // this.handleManualDecrypt(); - } - } - - if (this.msgUriSpec) { - url = EnigmailCompat.getUrlFromUriSpec(this.msgUriSpec); - } - - if (this.uri.spec.search(/[&?]header=[a-zA-Z0-9]*$/) < 0 && - this.uri.spec.search(/[&?]part=[.0-9]+/) < 0 && - this.uri.spec.search(/[&?]examineEncryptedParts=true/) < 0) { - - if (this.uri.spec.search(/[&?]header=filter&.*$/) > 0) - return; - - if (this.uri && url) { - - if ("path" in url) { - // TB < 57 - if (url.host !== this.uri.host || - url.path !== this.uri.path) - return; - } else { - // TB >= 57 - if (url.host !== this.uri.host || - url.pathQueryRef !== this.uri.pathQueryRef) - return; - } - } - } - } catch (ex) { - EnigmailLog.writeException("mimeVerify.jsm", ex); - EnigmailLog.DEBUG("mimeVerify.jsm: error while processing " + this.msgUriSpec + "\n"); - } - } - - 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); - - if (!EnigmailDecryption.isReady(win)) return; - - - let sigFileName = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(this.sigFile)); - let keyserver = EnigmailPrefs.getPref("autoKeyRetrieve"); - let options = { - keyserver: keyserver, - keyserverProxy: EnigmailHttpProxy.getHttpProxy(keyserver), - fromAddr: EnigmailDecryption.getFromAddr(win), - mimeSignatureFile: sigFileName - }; - const cApi = EnigmailCryptoAPI(); - - // ensure all lines end with CRLF as specified in RFC 3156, section 5 - if (this.signedData.search(/[^\r]\n/) >= 0) { - this.signedData = this.signedData.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n"); - } - - this.returnStatus = cApi.sync(cApi.verifyMime(this.signedData, options)); - this.exitCode = this.returnStatus.exitCode; - - if (this.partiallySigned) - this.returnStatus.statusFlags |= EnigmailConstants.PARTIALLY_PGP; - - this.displayStatus(); - - if (this.sigFile) this.sigFile.remove(false); - } - }, - - // 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) { - let contentType = m[2]; - 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' + - 'Content-Disposition: inline\n\n--' + - bound + '\n' + - data + - '\n--' + bound + '--\n'; - } - } - - if ("outputDecryptedData" in this.mimeSvc) { - // TB >= 57 - this.mimeSvc.outputDecryptedData(data, data.length); - } else { - let gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - gConv.setData(data, data.length); - try { - this.mimeSvc.onStartRequest(null, null); - this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length); - this.mimeSvc.onStopRequest(null, null, 0); - } catch (ex) { - EnigmailLog.ERROR("mimeVerify.jsm: returnData(): mimeSvc.onDataAvailable failed:\n" + ex.toString()); - } - } - }, - - setMsgWindow: function(msgWindow, msgUriSpec) { - EnigmailLog.DEBUG("mimeVerify.jsm: setMsgWindow: " + msgUriSpec + "\n"); - - if (!this.msgWindow) { - this.msgWindow = msgWindow; - this.msgUriSpec = msgUriSpec; - } - }, - - displayStatus: function() { - EnigmailLog.DEBUG("mimeVerify.jsm: displayStatus\n"); - if (this.exitCode === null || this.msgWindow === null || this.statusDisplayed || this.backgroundJob) - return; - - try { - LOCAL_DEBUG("mimeVerify.jsm: displayStatus displaying result\n"); - let headerSink = EnigmailSingletons.messageReader; - - if (this.protectedHeaders) { - headerSink.processDecryptionResult(this.uri, "modifyMessageHeaders", JSON.stringify(this.protectedHeaders.newHeaders), this.mimePartNumber); - } - - if (headerSink) { - headerSink.updateSecurityStatus(this.lastMsgUri, - this.exitCode, - this.returnStatus.statusFlags, - this.returnStatus.keyId, - this.returnStatus.userId, - this.returnStatus.sigDetails, - this.returnStatus.errorMsg, - this.returnStatus.blockSeparation, - this.uri, - JSON.stringify({ - encryptedTo: this.returnStatus.encToDetails - }), - this.mimePartNumber); - } - this.statusDisplayed = true; - } catch (ex) { - EnigmailLog.writeException("mimeVerify.jsm", ex); - } - } -}; - - -//////////////////////////////////////////////////////////////////// -// General-purpose functions, not exported - -function LOCAL_DEBUG(str) { - if (gDebugLog) EnigmailLog.DEBUG(str); -} - -function initModule() { - var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - var nspr_log_modules = env.get("NSPR_LOG_MODULES"); - var matches = nspr_log_modules.match(/mimeVerify:(\d+)/); - - if (matches && (matches.length > 1)) { - if (matches[1] > 2) gDebugLog = true; - } -} - -initModule(); diff -Nru enigmail-2.1.6+ds1/package/msgRead.jsm enigmail-2.2.4/package/msgRead.jsm --- enigmail-2.1.6+ds1/package/msgRead.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/msgRead.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,309 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailMsgRead"]; - -/** - * Message-reading related functions - */ - -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailVersioning = ChromeUtils.import("chrome://enigmail/content/modules/versioning.jsm").EnigmailVersioning; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailAutocrypt = ChromeUtils.import("chrome://enigmail/content/modules/autocrypt.jsm").EnigmailAutocrypt; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const ExtraHeaders = ["autocrypt", "openpgp"]; - -var EnigmailMsgRead = { - /** - * Ensure that Thunderbird prepares certain headers during message reading - */ - ensureExtraAddonHeaders: function() { - let r = EnigmailPrefs.getPrefRoot(); - - let isPlatform60 = EnigmailVersioning.greaterThanOrEqual(EnigmailApp.getPlatformVersion(), "60.0"); - let prefName = (isPlatform60 ? "mailnews.headers.extraAddonHeaders" : "mailnews.headers.extraExpandedHeaders"); - - try { - let hdr = r.getCharPref(prefName); - - if (hdr !== "*") { // do nothing if extraAddonHeaders is "*" (all headers) - for (let h of ExtraHeaders) { - let sr = new RegExp("\\b" + h + "\\b", "i"); - if (hdr.search(h) < 0) { - if (hdr.length > 0) hdr += " "; - hdr += h; - } - } - - r.setCharPref(prefName, hdr); - } - - if (isPlatform60) { - this.cleanupOldPref(); - } - } - catch (x) {} - }, - - /** - * Clean up extraExpandedHeaders after upgrading to TB 59 and newer, or upon shutdown. - */ - cleanupOldPref: function() { - let r = EnigmailPrefs.getPrefRoot(); - - let hdr = r.getCharPref("mailnews.headers.extraExpandedHeaders"); - for (let h of ExtraHeaders) { - let sr = new RegExp("\\b" + h + "\\b", "i"); - if (hdr.search(h) >= 0) { - hdr = hdr.replace(sr, " "); - } - } - - r.setCharPref("mailnews.headers.extraExpandedHeaders", hdr.trim()); - }, - - /** - * Get a mail URL from a uriSpec - * - * @param uriSpec: String - URI of the desired message - * - * @return Object: nsIURL or nsIMsgMailNewsUrl object - */ - getUrlFromUriSpec: function(uriSpec) { - return EnigmailCompat.getUrlFromUriSpec(uriSpec); - }, - - /** - * Determine if an attachment is possibly signed - */ - checkSignedAttachment: function(attachmentObj, index, currentAttachments) { - function escapeRegex(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string - } - - var attachmentList; - if (index !== null) { - attachmentList = attachmentObj; - } - else { - attachmentList = currentAttachments; - for (let i = 0; i < attachmentList.length; i++) { - if (attachmentList[i].url == attachmentObj.url) { - index = i; - break; - } - } - if (index === null) return false; - } - - var signed = false; - var findFile; - - var attName = this.getAttachmentName(attachmentList[index]).toLowerCase().replace(/\+/g, "\\+"); - - // check if filename is a signature - if ((this.getAttachmentName(attachmentList[index]).search(/\.(sig|asc)$/i) > 0) || - (attachmentList[index].contentType.match(/^application\/pgp-signature/i))) { - findFile = new RegExp(escapeRegex(attName.replace(/\.(sig|asc)$/, ""))); - } - else if (attName.search(/\.pgp$/i) > 0) { - findFile = new RegExp(escapeRegex(attName.replace(/\.pgp$/, "")) + "(\\.pgp)?\\.(sig|asc)$"); - } - else { - findFile = new RegExp(escapeRegex(attName) + "\\.(sig|asc)$"); - } - - for (let i in attachmentList) { - if ((i != index) && - (this.getAttachmentName(attachmentList[i]).toLowerCase().search(findFile) === 0)) - signed = true; - } - - return signed; - }, - - /** - * Get the name of an attachment from the attachment object - */ - getAttachmentName: function(attachment) { - if ("name" in attachment) { - // Thunderbird - return attachment.name; - } - else - // SeaMonkey - return attachment.displayName; - }, - - - /** - * Escape text such that it can be used as HTML text - */ - escapeTextForHTML: function(text, hyperlink) { - // Escape special characters - if (text.indexOf("&") > -1) - text = text.replace(/&/g, "&"); - - if (text.indexOf("<") > -1) - text = text.replace(/") > -1) - text = text.replace(/>/g, ">"); - - if (text.indexOf("\"") > -1) - text = text.replace(/"/g, """); - - if (!hyperlink) - return text; - - // Hyperlink email addresses (we accept at most 1024 characters before and after the @) - var addrs = text.match(/\b[A-Za-z0-9_+.-]{1,1024}@[A-Za-z0-9.-]{1,1024}\b/g); - - var newText, offset, loc; - if (addrs && addrs.length) { - newText = ""; - offset = 0; - - for (var j = 0; j < addrs.length; j++) { - var addr = addrs[j]; - - loc = text.indexOf(addr, offset); - if (loc < offset) - break; - - if (loc > offset) - newText += text.substr(offset, loc - offset); - - // Strip any period off the end of address - addr = addr.replace(/[.]$/, ""); - - if (!addr.length) - continue; - - newText += "" + addr + ""; - - offset = loc + addr.length; - } - - newText += text.substr(offset, text.length - offset); - - text = newText; - } - - // Hyperlink URLs (we don't accept URLS or more than 1024 characters length) - var urls = text.match(/\b(http|https|ftp):\S{1,1024}\s/g); - - if (urls && urls.length) { - newText = ""; - offset = 0; - - for (var k = 0; k < urls.length; k++) { - var url = urls[k]; - - loc = text.indexOf(url, offset); - if (loc < offset) - break; - - if (loc > offset) - newText += text.substr(offset, loc - offset); - - // Strip delimiters off the end of URL - url = url.replace(/\s$/, ""); - url = url.replace(/([),.']|>|")$/, ""); - - if (!url.length) - continue; - - newText += "" + url + ""; - - offset = loc + url.length; - } - - newText += text.substr(offset, text.length - offset); - - text = newText; - } - - return text; - }, - - /** - * Match the key to the sender's from address - * - * @param {String} keyId: signing key ID - * @param {String} fromAddr: sender's email address - * - * @return Promise: matching email address - */ - matchUidToSender: function(keyId, fromAddr) { - if ((!fromAddr) || !keyId) { - return null; - } - - try { - fromAddr = EnigmailFuncs.stripEmail(fromAddr).toLowerCase(); - } - catch (ex) {} - - let keyObj = EnigmailKeyRing.getKeyById(keyId); - if (!keyObj) return null; - - let userIdList = keyObj.userIds; - - try { - for (let i = 0; i < userIdList.length; i++) { - if (fromAddr == EnigmailFuncs.stripEmail(userIdList[i].userId).toLowerCase()) { - return EnigmailFuncs.stripEmail(userIdList[i].userId); - } - } - - // // uid not found, try Autocrypt keystore - // let acList = await EnigmailAutocrypt.getOpenPGPKeyForEmail([fromAddr]); - // for (let i = 0; i < acList.length; i++) { - // if (acList[i].fpr == keyObj.fpr) { - // return fromAddr; - // } - // } - } - catch (ex) {} - return null; - }, - - searchQuotedPgp: function(node) { - if (node.nodeName.toLowerCase() === "blockquote" && - node.textContent.indexOf("-----BEGIN PGP ") >= 0) { - return true; - } - - if (node.firstChild && this.searchQuotedPgp(node.firstChild)) { - return true; - } - - if (node.nextSibling && this.searchQuotedPgp(node.nextSibling)) { - return true; - } - - return false; - }, - - trimAllLines: function(txt) { - return txt.replace(/^[ \t]+/mg, ""); - }, - - onStartup: function() { - this.ensureExtraAddonHeaders(); - }, - - onShutdown: function() { - this.cleanupOldPref(); - } -}; diff -Nru enigmail-2.1.6+ds1/package/openpgp.jsm enigmail-2.2.4/package/openpgp.jsm --- enigmail-2.1.6+ds1/package/openpgp.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/openpgp.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,160 +0,0 @@ -/* - * This Source Code Form is licensed under the GNU LGPL 3.0 license. - * - */ - -"use strict"; - -/** - * This code is taken from openpgp.js - * - * Do OpenPGP packet parsing - */ - -/* eslint no-invalid-this: 0 */ - -var EXPORTED_SYMBOLS = ["EnigmailOpenPGP"]; - -var crc_table = [0x00000000, 0x00864cfb, 0x018ad50d, 0x010c99f6, 0x0393e6e1, 0x0315aa1a, 0x021933ec, 0x029f7f17, 0x07a18139, 0x0727cdc2, 0x062b5434, 0x06ad18cf, 0x043267d8, 0x04b42b23, - 0x05b8b2d5, 0x053efe2e, 0x0fc54e89, 0x0f430272, 0x0e4f9b84, 0x0ec9d77f, 0x0c56a868, 0x0cd0e493, 0x0ddc7d65, 0x0d5a319e, 0x0864cfb0, 0x08e2834b, 0x09ee1abd, 0x09685646, 0x0bf72951, - 0x0b7165aa, 0x0a7dfc5c, 0x0afbb0a7, 0x1f0cd1e9, 0x1f8a9d12, 0x1e8604e4, 0x1e00481f, 0x1c9f3708, 0x1c197bf3, 0x1d15e205, 0x1d93aefe, 0x18ad50d0, 0x182b1c2b, 0x192785dd, 0x19a1c926, - 0x1b3eb631, 0x1bb8faca, 0x1ab4633c, 0x1a322fc7, 0x10c99f60, 0x104fd39b, 0x11434a6d, 0x11c50696, 0x135a7981, 0x13dc357a, 0x12d0ac8c, 0x1256e077, 0x17681e59, 0x17ee52a2, 0x16e2cb54, - 0x166487af, 0x14fbf8b8, 0x147db443, 0x15712db5, 0x15f7614e, 0x3e19a3d2, 0x3e9fef29, 0x3f9376df, 0x3f153a24, 0x3d8a4533, 0x3d0c09c8, 0x3c00903e, 0x3c86dcc5, 0x39b822eb, 0x393e6e10, - 0x3832f7e6, 0x38b4bb1d, 0x3a2bc40a, 0x3aad88f1, 0x3ba11107, 0x3b275dfc, 0x31dced5b, 0x315aa1a0, 0x30563856, 0x30d074ad, 0x324f0bba, 0x32c94741, 0x33c5deb7, 0x3343924c, 0x367d6c62, - 0x36fb2099, 0x37f7b96f, 0x3771f594, 0x35ee8a83, 0x3568c678, 0x34645f8e, 0x34e21375, 0x2115723b, 0x21933ec0, 0x209fa736, 0x2019ebcd, 0x228694da, 0x2200d821, 0x230c41d7, 0x238a0d2c, - 0x26b4f302, 0x2632bff9, 0x273e260f, 0x27b86af4, 0x252715e3, 0x25a15918, 0x24adc0ee, 0x242b8c15, 0x2ed03cb2, 0x2e567049, 0x2f5ae9bf, 0x2fdca544, 0x2d43da53, 0x2dc596a8, 0x2cc90f5e, - 0x2c4f43a5, 0x2971bd8b, 0x29f7f170, 0x28fb6886, 0x287d247d, 0x2ae25b6a, 0x2a641791, 0x2b688e67, 0x2beec29c, 0x7c3347a4, 0x7cb50b5f, 0x7db992a9, 0x7d3fde52, 0x7fa0a145, 0x7f26edbe, - 0x7e2a7448, 0x7eac38b3, 0x7b92c69d, 0x7b148a66, 0x7a181390, 0x7a9e5f6b, 0x7801207c, 0x78876c87, 0x798bf571, 0x790db98a, 0x73f6092d, 0x737045d6, 0x727cdc20, 0x72fa90db, 0x7065efcc, - 0x70e3a337, 0x71ef3ac1, 0x7169763a, 0x74578814, 0x74d1c4ef, 0x75dd5d19, 0x755b11e2, 0x77c46ef5, 0x7742220e, 0x764ebbf8, 0x76c8f703, 0x633f964d, 0x63b9dab6, 0x62b54340, 0x62330fbb, - 0x60ac70ac, 0x602a3c57, 0x6126a5a1, 0x61a0e95a, 0x649e1774, 0x64185b8f, 0x6514c279, 0x65928e82, 0x670df195, 0x678bbd6e, 0x66872498, 0x66016863, 0x6cfad8c4, 0x6c7c943f, 0x6d700dc9, - 0x6df64132, 0x6f693e25, 0x6fef72de, 0x6ee3eb28, 0x6e65a7d3, 0x6b5b59fd, 0x6bdd1506, 0x6ad18cf0, 0x6a57c00b, 0x68c8bf1c, 0x684ef3e7, 0x69426a11, 0x69c426ea, 0x422ae476, 0x42aca88d, - 0x43a0317b, 0x43267d80, 0x41b90297, 0x413f4e6c, 0x4033d79a, 0x40b59b61, 0x458b654f, 0x450d29b4, 0x4401b042, 0x4487fcb9, 0x461883ae, 0x469ecf55, 0x479256a3, 0x47141a58, 0x4defaaff, - 0x4d69e604, 0x4c657ff2, 0x4ce33309, 0x4e7c4c1e, 0x4efa00e5, 0x4ff69913, 0x4f70d5e8, 0x4a4e2bc6, 0x4ac8673d, 0x4bc4fecb, 0x4b42b230, 0x49ddcd27, 0x495b81dc, 0x4857182a, 0x48d154d1, - 0x5d26359f, 0x5da07964, 0x5cace092, 0x5c2aac69, 0x5eb5d37e, 0x5e339f85, 0x5f3f0673, 0x5fb94a88, 0x5a87b4a6, 0x5a01f85d, 0x5b0d61ab, 0x5b8b2d50, 0x59145247, 0x59921ebc, 0x589e874a, - 0x5818cbb1, 0x52e37b16, 0x526537ed, 0x5369ae1b, 0x53efe2e0, 0x51709df7, 0x51f6d10c, 0x50fa48fa, 0x507c0401, 0x5542fa2f, 0x55c4b6d4, 0x54c82f22, 0x544e63d9, 0x56d11cce, 0x56575035, - 0x575bc9c3, 0x57dd8538 -]; - -var gOpenPGPLib; - -function initialize() { - const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; - const getOpenPGPLibrary = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/openpgp-lib.jsm").getOpenPGPLibrary; - - EnigmailLog.DEBUG("openpgp.jsm: initialize()\n"); - - try { - gOpenPGPLib = getOpenPGPLibrary(); - - EnigmailLog.DEBUG(`openpgp.jsm: openpgp: ${gOpenPGPLib}\n`); - } - catch (ex) { - EnigmailLog.ERROR("openpgp.jsm: initialize: error: " + ex.toString() + "\n"); - } -} - -var EnigmailOpenPGP = { - get openpgp() { - if (!gOpenPGPLib) { - initialize(); - } - - return gOpenPGPLib; - }, - - enigmailFuncs: { - - /** - * Convert a string to an Uint8Array - * - * @param str: String with binary data - * @return Uint8Array - */ - str2Uint8Array: function(str) { - var buf = new ArrayBuffer(str.length); - var bufView = new Uint8Array(buf); - for (var i = 0, strLen = str.length; i < strLen; i++) { - bufView[i] = str.charCodeAt(i); - } - return bufView; - }, - - /** - * Create CRC24 checksum - * - * @param input: Uint8Array of input data - * - * @return Number - */ - createcrc24: function(input) { - var crc = 0xB704CE; - var index = 0; - - while (input.length - index > 16) { - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 1]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 2]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 3]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 4]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 5]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 6]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 7]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 8]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 9]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 10]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 11]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 12]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 13]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 14]) & 0xff]; - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index + 15]) & 0xff]; - index += 16; - } - - for (var j = index; j < input.length; j++) { - crc = crc << 8 ^ crc_table[(crc >> 16 ^ input[index++]) & 0xff]; - } - return crc & 0xffffff; - }, - - /** - * Create an ASCII armored string from binary data. The message data is NOT - * checked for correctness, only the CRC is added at the end. - * - * @param msgType: Number - type of OpenPGP message to create (ARMOR Enum) - * @param str: String - binary OpenPGP message - * - * @return String: ASCII armored OpenPGP message - */ - bytesToArmor: function(msgType, str) { - - const ARMOR_TYPE = EnigmailOpenPGP.openpgp.enums.armor; - - let hdr = ""; - switch (msgType) { - case ARMOR_TYPE.signed: - case ARMOR_TYPE.message: - hdr = "MESSAGE"; - break; - case ARMOR_TYPE.public_key: - hdr = "PUBLIC KEY BLOCK"; - break; - case ARMOR_TYPE.private_key: - hdr = "PRIVATE KEY BLOCK"; - break; - case ARMOR_TYPE.signature: - hdr = "SIGNATURE"; - break; - } - - let crc = EnigmailOpenPGP.enigmailFuncs.createcrc24(EnigmailOpenPGP.enigmailFuncs.str2Uint8Array(str)); - let crcAsc = String.fromCharCode(crc >> 16) + String.fromCharCode(crc >> 8 & 0xFF) + String.fromCharCode(crc & 0xFF); - - let s = "-----BEGIN PGP " + hdr + "-----\n\n" + - btoa(str).replace(/(.{72})/g, "$1\n") + "\n" + - "=" + btoa(crcAsc) + "\n" + - "-----END PGP " + hdr + "-----\n"; - - return s; - } - } -}; diff -Nru enigmail-2.1.6+ds1/package/passwordCheck.jsm enigmail-2.2.4/package/passwordCheck.jsm --- enigmail-2.1.6+ds1/package/passwordCheck.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/passwordCheck.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,200 +0,0 @@ -/*jshint -W097 */ -/* - Taken from jquery.complexify (WTFPL 2.0) -*/ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailPasswordCheck"]; - -var EnigmailPasswordCheck = { - /** - * Check password quality - * - * password: String: the password to evaluate - * - * return: object: valid: Boolean - is password valid or not - * complexity: Number - complexity of password (values between 0 and 100) - */ - checkQuality: function(password) { - return evaluateSecurity(password); - } -}; - -/********* - Helper functions and variables -*/ - - -const COMPLEXIFY_BANLIST = - '123456|password|12345678|1234|pussy|12345|dragon|qwerty|696969|mustang|letmein|baseball|master|michael|football|shadow|monkey|abc123|pass|fuckme|6969|jordan|harley|ranger|iwantu|jennifer|hunter|fuck|2000|test|batman|trustno1|thomas|tigger|robert|access|love|buster|1234567|soccer|hockey|killer|george|sexy|andrew|charlie|superman|asshole|fuckyou|dallas|jessica|panties|pepper|1111|austin|william|daniel|golfer|summer|heather|hammer|yankees|joshua|maggie|biteme|enter|ashley|thunder|cowboy|silver|richard|fucker|orange|merlin|michelle|corvette|bigdog|cheese|matthew|121212|patrick|martin|freedom|ginger|blowjob|nicole|sparky|yellow|camaro|secret|dick|falcon|taylor|111111|131313|123123|bitch|hello|scooter|please|porsche|guitar|chelsea|black|diamond|nascar|jackson|cameron|654321|computer|amanda|wizard|xxxxxxxx|money|phoenix|mickey|bailey|knight|iceman|tigers|purple|andrea|horny|dakota|aaaaaa|player|sunshine|morgan|starwars|boomer|cowboys|edward|charles|girls|booboo|coffee|xxxxxx|bulldog|ncc1701|rabbit|peanut|john|johnny|gandalf|spanky|winter|brandy|compaq|carlos|tennis|james|mike|brandon|fender|anthony|blowme|ferrari|cookie|chicken|maverick|chicago|joseph|diablo|sexsex|hardcore|666666|willie|welcome|chris|panther|yamaha|justin|banana|driver|marine|angels|fishing|david|maddog|hooters|wilson|butthead|dennis|fucking|captain|bigdick|chester|smokey|xavier|steven|viking|snoopy|blue|eagles|winner|samantha|house|miller|flower|jack|firebird|butter|united|turtle|steelers|tiffany|zxcvbn|tomcat|golf|bond007|bear|tiger|doctor|gateway|gators|angel|junior|thx1138|porno|badboy|debbie|spider|melissa|booger|1212|flyers|fish|porn|matrix|teens|scooby|jason|walter|cumshot|boston|braves|yankee|lover|barney|victor|tucker|princess|mercedes|5150|doggie|' + - 'zzzzzz|gunner|horney|bubba|2112|fred|johnson|xxxxx|tits|member|boobs|donald|bigdaddy|bronco|penis|voyager|rangers|birdie|trouble|white|topgun|bigtits|bitches|green|super|qazwsx|magic|lakers|rachel|slayer|scott|2222|asdf|video|london|7777|marlboro|srinivas|internet|action|carter|jasper|monster|teresa|jeremy|11111111|bill|crystal|peter|pussies|cock|beer|rocket|theman|oliver|prince|beach|amateur|7777777|muffin|redsox|star|testing|shannon|murphy|frank|hannah|dave|eagle1|11111|mother|nathan|raiders|steve|forever|angela|viper|ou812|jake|lovers|suckit|gregory|buddy|whatever|young|nicholas|lucky|helpme|jackie|monica|midnight|college|baby|cunt|brian|mark|startrek|sierra|leather|232323|4444|beavis|bigcock|happy|sophie|ladies|naughty|giants|booty|blonde|fucked|golden|0|fire|sandra|pookie|packers|einstein|dolphins|chevy|winston|warrior|sammy|slut|8675309|zxcvbnm|nipples|power|victoria|asdfgh|vagina|toyota|travis|hotdog|paris|rock|xxxx|extreme|redskins|erotic|dirty|ford|freddy|arsenal|access14|wolf|nipple|iloveyou|alex|florida|eric|legend|movie|success|rosebud|jaguar|great|cool|cooper|1313|scorpio|mountain|madison|987654|brazil|lauren|japan|naked|squirt|stars|apple|alexis|aaaa|bonnie|peaches|jasmine|kevin|matt|qwertyui|danielle|beaver|4321|4128|runner|swimming|dolphin|gordon|casper|stupid|shit|saturn|gemini|apples|august|3333|canada|blazer|cumming|hunting|kitty|rainbow|112233|arthur|cream|calvin|shaved|surfer|samson|kelly|paul|mine|king|racing|5555|eagle|hentai|newyork|little|redwings|smith|sticky|cocacola|animal|broncos|private|skippy|marvin|blondes|enjoy|girl|apollo|parker|qwert|time|sydney|women|voodoo|magnum|juice|abgrtyu|777777|dreams|maxwell|music|rush2112|russia|scorpion|rebecca|tester|mistress|phantom|billy|6666|albert|111111|11111111|112233|' + - '121212|123123|123456|1234567|12345678|131313|232323|654321|666666|696969|777777|7777777|8675309|987654|abcdef|password1|password12|password123|twitter'.split('|'); - -const options = { - minimumChars: 8, - strengthScaleFactor: 1, - bannedPasswords: COMPLEXIFY_BANLIST, - banMode: 'strict' // (strict|loose) -}; - -const MIN_COMPLEXITY = 30; // 8 chars with Upper, Lower and Number -//var MAX_COMPLEXITY = 120; // 25 chars, all charsets -const MAX_COMPLEXITY = 60; - -const CHARSETS = [ - // Commonly Used - //////////////////// - [0x0020, 0x0020], // Space - [0x0030, 0x0039], // Numbers - [0x0041, 0x005A], // Uppercase - [0x0061, 0x007A], // Lowercase - [0x0021, 0x002F], // Punctuation - [0x003A, 0x0040], // Punctuation - [0x005B, 0x0060], // Punctuation - [0x007B, 0x007E], // Punctuation - // Everything Else - //////////////////// - [0x0080, 0x00FF], // Latin-1 Supplement - [0x0100, 0x017F], // Latin Extended-A - [0x0180, 0x024F], // Latin Extended-B - [0x0250, 0x02AF], // IPA Extensions - [0x02B0, 0x02FF], // Spacing Modifier Letters - [0x0300, 0x036F], // Combining Diacritical Marks - [0x0370, 0x03FF], // Greek - [0x0400, 0x04FF], // Cyrillic - [0x0530, 0x058F], // Armenian - [0x0590, 0x05FF], // Hebrew - [0x0600, 0x06FF], // Arabic - [0x0700, 0x074F], // Syriac - [0x0780, 0x07BF], // Thaana - [0x0900, 0x097F], // Devanagari - [0x0980, 0x09FF], // Bengali - [0x0A00, 0x0A7F], // Gurmukhi - [0x0A80, 0x0AFF], // Gujarati - [0x0B00, 0x0B7F], // Oriya - [0x0B80, 0x0BFF], // Tamil - [0x0C00, 0x0C7F], // Telugu - [0x0C80, 0x0CFF], // Kannada - [0x0D00, 0x0D7F], // Malayalam - [0x0D80, 0x0DFF], // Sinhala - [0x0E00, 0x0E7F], // Thai - [0x0E80, 0x0EFF], // Lao - [0x0F00, 0x0FFF], // Tibetan - [0x1000, 0x109F], // Myanmar - [0x10A0, 0x10FF], // Georgian - [0x1100, 0x11FF], // Hangul Jamo - [0x1200, 0x137F], // Ethiopic - [0x13A0, 0x13FF], // Cherokee - [0x1400, 0x167F], // Unified Canadian Aboriginal Syllabics - [0x1680, 0x169F], // Ogham - [0x16A0, 0x16FF], // Runic - [0x1780, 0x17FF], // Khmer - [0x1800, 0x18AF], // Mongolian - [0x1E00, 0x1EFF], // Latin Extended Additional - [0x1F00, 0x1FFF], // Greek Extended - [0x2000, 0x206F], // General Punctuation - [0x2070, 0x209F], // Superscripts and Subscripts - [0x20A0, 0x20CF], // Currency Symbols - [0x20D0, 0x20FF], // Combining Marks for Symbols - [0x2100, 0x214F], // Letterlike Symbols - [0x2150, 0x218F], // Number Forms - [0x2190, 0x21FF], // Arrows - [0x2200, 0x22FF], // Mathematical Operators - [0x2300, 0x23FF], // Miscellaneous Technical - [0x2400, 0x243F], // Control Pictures - [0x2440, 0x245F], // Optical Character Recognition - [0x2460, 0x24FF], // Enclosed Alphanumerics - [0x2500, 0x257F], // Box Drawing - [0x2580, 0x259F], // Block Elements - [0x25A0, 0x25FF], // Geometric Shapes - [0x2600, 0x26FF], // Miscellaneous Symbols - [0x2700, 0x27BF], // Dingbats - [0x2800, 0x28FF], // Braille Patterns - [0x2E80, 0x2EFF], // CJK Radicals Supplement - [0x2F00, 0x2FDF], // Kangxi Radicals - [0x2FF0, 0x2FFF], // Ideographic Description Characters - [0x3000, 0x303F], // CJK Symbols and Punctuation - [0x3040, 0x309F], // Hiragana - [0x30A0, 0x30FF], // Katakana - [0x3100, 0x312F], // Bopomofo - [0x3130, 0x318F], // Hangul Compatibility Jamo - [0x3190, 0x319F], // Kanbun - [0x31A0, 0x31BF], // Bopomofo Extended - [0x3200, 0x32FF], // Enclosed CJK Letters and Months - [0x3300, 0x33FF], // CJK Compatibility - [0x3400, 0x4DB5], // CJK Unified Ideographs Extension A - [0x4E00, 0x9FFF], // CJK Unified Ideographs - [0xA000, 0xA48F], // Yi Syllables - [0xA490, 0xA4CF], // Yi Radicals - [0xAC00, 0xD7A3], // Hangul Syllables - [0xD800, 0xDB7F], // High Surrogates - [0xDB80, 0xDBFF], // High Private Use Surrogates - [0xDC00, 0xDFFF], // Low Surrogates - [0xE000, 0xF8FF], // Private Use - [0xF900, 0xFAFF], // CJK Compatibility Ideographs - [0xFB00, 0xFB4F], // Alphabetic Presentation Forms - [0xFB50, 0xFDFF], // Arabic Presentation Forms-A - [0xFE20, 0xFE2F], // Combining Half Marks - [0xFE30, 0xFE4F], // CJK Compatibility Forms - [0xFE50, 0xFE6F], // Small Form Variants - [0xFE70, 0xFEFE], // Arabic Presentation Forms-B - [0xFEFF, 0xFEFF], // Specials - [0xFF00, 0xFFEF], // Halfwidth and Fullwidth Forms - [0xFFF0, 0xFFFD] // Specials -]; - -function additionalComplexityForCharset(str, charset) { - for (var i = str.length - 1; i >= 0; i--) { - if (charset[0] <= str.charCodeAt(i) && str.charCodeAt(i) <= charset[1]) { - return charset[1] - charset[0] + 1; - } - } - return 0; -} - -function inBanlist(str) { - if (options.banMode === 'strict') { - for (var i = 0; i < options.bannedPasswords.length; i++) { - if (options.bannedPasswords[i].indexOf(str) !== -1) { - return true; - } - } - return false; - } - else { - return (options.bannedPasswords.indexOf(str) > -1 ? true : false); - } -} - -function evaluateSecurity(password) { - var complexity = 0, - valid = false; - - // Reset complexity to 0 when banned password is found - if (!inBanlist(password)) { - - // Add character complexity - for (var i = CHARSETS.length - 1; i >= 0; i--) { - complexity += additionalComplexityForCharset(password, CHARSETS[i]); - } - - } - else { - complexity = 1; - } - - // Use natural log to produce linear scale - complexity = Math.log(Math.pow(complexity, password.length)) * (1 / options.strengthScaleFactor); - - valid = (complexity > MIN_COMPLEXITY && password.length >= options.minimumChars); - - // Scale to percentage, so it can be used for a progress bar - complexity = (complexity / MAX_COMPLEXITY) * 100; - complexity = (complexity > 100) ? 100 : complexity; - - return { - valid: valid, - complexity: complexity - }; -} diff -Nru enigmail-2.1.6+ds1/package/passwords.jsm enigmail-2.2.4/package/passwords.jsm --- enigmail-2.1.6+ds1/package/passwords.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/passwords.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -8,15 +8,11 @@ var EXPORTED_SYMBOLS = ["EnigmailPassword"]; - - const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; +const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - -const gpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); const getLocale = EnigmailLazy.loader("enigmail/locale.jsm", "EnigmailLocale"); @@ -40,36 +36,19 @@ return 5; }, - clearPassphrase: function(win) { + clearPassphrase: async function(win) { // clear all passphrases from gpg-agent by reloading the config if (!EnigmailCore.getService()) return; - let exitCode = -1; - let isError = 0; - - const proc = { - command: gpgAgent().connGpgAgentPath, - arguments: [], - charset: null, - environment: EnigmailCore.getEnvList(), - stdin: function(pipe) { - pipe.write("RELOADAGENT\n"); - pipe.write("/bye\n"); - pipe.close(); - }, - stdout: function(data) { - if (data.search(/^ERR/m) >= 0) { - ++isError; - } - } - }; + const cApi = EnigmailCryptoAPI(); + let isSuccess = false; try { - exitCode = subprocess.call(proc).wait(); + isSuccess = await cApi.clearPassphrase(); } catch (ex) {} - if (isError === 0) { + if (isSuccess) { getDialog().alert(win, getLocale().getString("passphraseCleared")); } else { diff -Nru enigmail-2.1.6+ds1/package/pEpAdapter.jsm enigmail-2.2.4/package/pEpAdapter.jsm --- enigmail-2.1.6+ds1/package/pEpAdapter.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEpAdapter.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1199 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for interfacing to pEp (Enigmail-specific functions) - */ - -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailpEp = ChromeUtils.import("chrome://enigmail/content/modules/pEp.jsm").EnigmailpEp; -const EnigmailpEpListener = ChromeUtils.import("chrome://enigmail/content/modules/pEpListener.jsm").EnigmailpEpListener; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailAddrbook = ChromeUtils.import("chrome://enigmail/content/modules/addrbook.jsm").EnigmailAddrbook; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailPEPFilter = ChromeUtils.import("chrome://enigmail/content/modules/pEpFilter.jsm").EnigmailPEPFilter; -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const EnigmailInstallPep = ChromeUtils.import("chrome://enigmail/content/modules/installPep.jsm").EnigmailInstallPep; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailPEPKeySync = ChromeUtils.import("chrome://enigmail/content/modules/pEpKeySync.jsm").EnigmailPEPKeySync; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailFilters = ChromeUtils.import("chrome://enigmail/content/modules/filters.jsm").EnigmailFilters; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); -const getInstallGnuPG = EnigmailLazy.loader("enigmail/installGnuPG.jsm", "InstallGnuPG"); -const getGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); - -// pEp JSON Server executable name -const PEP_SERVER_EXECUTABLE = "pep-json-server"; - -var gPepVersion = null; -var gSecurityToken = null; -var gPepAvailable = null; -var gPepListenerPort = -1; -var gOwnIdentities = []; -var gJmObservers = null; -var gJmObserverId = 0; -var gAttemptedInstall = false; - -var EXPORTED_SYMBOLS = ["EnigmailPEPAdapter"]; - - -function pepCallback(dataObj) { - EnigmailLog.DEBUG("pEpAdapter.jsm: pepCallback()\n"); - - if ("method" in dataObj) { - switch (dataObj.method) { - case "messageToSend": - EnigmailLog.DEBUG("pEpAdapter.jsm: pepCallback: messageToSend\n"); - - EnigmailPEPKeySync.sendMessage(dataObj.params[0]); - return 0; - case "notifyHandshake": - EnigmailLog.DEBUG("pEpAdapter.jsm: pepCallback: notifyHandshake\n"); - - EnigmailPEPKeySync.notifyHandshake(dataObj.params); - return 0; - } - } - - return 1; -} - -function startListener() { - - EnigmailLog.DEBUG("pEpAdapter.jsm: startListener():\n"); - gSecurityToken = EnigmailRNG.generateRandomString(40); - - gPepListenerPort = EnigmailpEpListener.createListener(pepCallback, gSecurityToken); - - if (gPepListenerPort < 0) { - EnigmailLog.DEBUG("pEpAdapter.jsm: startListener: could not open socket\n"); - return; - } - - EnigmailpEp.registerTbListener(gPepListenerPort, gSecurityToken).then(function _ok(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: startListener: registration with pEp OK\n"); - - }).catch(function _fail(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: startListener: registration with pEp failed\n"); - }); -} - - -var EnigmailPEPAdapter = { - - pep: EnigmailpEp, - - filter: EnigmailPEPFilter, - - /** - * Get the pEp JSON server version numbers. - * - * @return Object: - * - null if the module is not initialized - * - Object with String members: - * api: the JSON API version number, or "" if pEp is unavailable - * package: the package version number, or null if no package - * engine: the pEp engine version number, or "" if pEp is unavailable - */ - getPepVersion: function() { - return gPepVersion; - }, - - /** - * Get the pEp package version number. - * - * @return String: - * - null if no package or the module is not initialized - * - a non-empty string if the pEp package version is configured - */ - getPepPackageVersion: function() { - let version = this.getPepVersion(); - if (version && "package" in version) return version.package; - - return null; - }, - - /** - * Determine if pEp is available - * - * @return: Boolean: true - pEp is available / false - pEp is not usable - */ - usingPep: function() { - if (EnigmailCompat.isPostbox()) return false; - if (!this.getPepJuniorMode()) return false; - - if ((gPepVersion !== null) && gPepVersion.api.length > 0) { - return true; - } - - return false; - }, - - /** - * Determine the location of the pep-json-server - * - * @return Object: nsIFile if found, null otherwise - */ - getPepMiniDesktopAdapterBinaryFile: function() { - EnigmailLog.DEBUG("pEpAdapter: getPepMiniDesktopAdapterBinaryFile()\n"); - let execFile = EnigmailFiles.resolvePathWithEnv(PEP_SERVER_EXECUTABLE); - if (!execFile || !execFile.exists() || !execFile.isExecutable()) { - let pepmda = EnigmailApp.getProfileDirectory(); - pepmda.append("pepmda"); - pepmda.append("bin"); - execFile = EnigmailFiles.resolvePath( - EnigmailFiles.potentialWindowsExecutable(PEP_SERVER_EXECUTABLE), pepmda.path, EnigmailOS.isDosLike); - if (!execFile || !execFile.exists() || !execFile.isExecutable()) { - execFile = null; - } - } - return execFile; - }, - - /** - * Reset the status of the pEp adapter, such that it may be checked again - */ - resetPepAvailability: function() { - gPepAvailable = null; - }, - - /** - * Determine if the pEp JSON adapter is available at all - * - * @param {Boolean} attemptInstall: try to install pEp if possible - * - * @return {Promise}: true if pEp is available / false otherwise - */ - isPepAvailable: async function(attemptInstall = true) { - if (EnigmailCompat.isPostbox()) { - gPepAvailable = false; - return false; - } - - if (gPepAvailable === null) { - EnigmailLog.DEBUG("pEpAdapter: isPepAvailable()\n"); - - gPepAvailable = false; - let execFile = this.getPepMiniDesktopAdapterBinaryFile(); - if (execFile && execFile.exists() && execFile.isExecutable()) { - EnigmailCore.getService(null, true); - let pepVersionStr = ""; - - let resourcesDir = execFile.parent.parent; - resourcesDir.append("share"); - resourcesDir.append("pEp"); - - let resDirPath = undefined; - - if (resourcesDir && resourcesDir.exists()) { - resDirPath = resourcesDir.path; - } - - let process = subprocess.call({ - workdir: resDirPath, - command: execFile, - arguments: ["--version"], - charset: null, - environment: EnigmailCore.getEnvList(), - mergeStderr: false, - stdin: function(stdin) { - // do nothing - }, - stdout: function(data) { - pepVersionStr += data; - }, - stderr: function(data) { - // do nothing - } - }); - - process.wait(); - EnigmailLog.DEBUG("pEpAdapter.jsm: isPepAvailable: got version '" + pepVersionStr + "'\n"); - if (pepVersionStr.search(/pEp JSON/i) >= 0) { - let m = pepVersionStr.match(/^\s+version\s+(\d+\.\d+\.\d+)/im); - gPepAvailable = true; - if (m && m.length > 1) { - EnigmailpEp.setAdapterApiVersion(m[1]); - - } - } else { - EnigmailpEp.setAdapterApiVersion("0.10.0"); - } - } else if (attemptInstall) { - return await this.installPep(); - } - } - - EnigmailLog.DEBUG("pEpAdapter.jsm: isPepAvailable() = " + gPepAvailable + "\n"); - return gPepAvailable; - }, - - /** - * try to download and install pEp (runs asynchronously!) - * - * @param {Boolean} isManual: is installation manually requested - * - * @return {Promise}: pep successfully installed - */ - installPep: function(isManual = false) { - EnigmailLog.DEBUG("pEpAdapter.jsm: installPep()\n"); - - if (EnigmailCompat.isPostbox()) { - return new Promise((resolve, reject) => { - reject(-1); - }); - } - - gAttemptedInstall = true; - let self = this; - - return new Promise((resolve, reject) => { - let progressListener = { - onError: function(err) { - EnigmailLog.DEBUG("pEpAdapter.jsm: installPep: got error " + err.type + "\n"); - gPepAvailable = false; - resolve(false); - }, - onInstalled: function() { - EnigmailLog.DEBUG("pEpAdapter.jsm: installPep: installation completed\n"); - gPepAvailable = null; - - self.initialize().then(r => { - resolve(gPepAvailable); - }); - }, - stopPep: function() { - EnigmailpEp.shutdown(); - } - }; - - EnigmailInstallPep.startInstaller(progressListener, isManual); - }); - }, - - /** - * check if an update to the pEp engine is available online. - * If yes, ask user if it should be installed. - */ - checkForPepUpdate: function() { - let updateMode = EnigmailPrefs.getPref("pEpAutoUpdate"); - - // don't try if update disabled - if (updateMode === 2) return; - - // check once a week - let now = Math.floor(Date.now() / 1000); - if (now < EnigmailPrefs.getPref("pEpLastUpdate") + 604800) return; - - let currVer = this.getPepPackageVersion(); - if (!currVer) return; - if (!this.usingPep()) return; - - currVer = currVer.replace(/ .*/, ""); - - EnigmailPrefs.setPref("pEpLastUpdate", now); - - if (!EnigmailInstallPep.isPepUpdateAvailable(false, currVer)) return; - - let update = getDialog().confirmPref(null, EnigmailLocale.getString("pep.updateAvailable"), - "pEpAutoUpdate", - EnigmailLocale.getString("dlg.button.install"), - EnigmailLocale.getString("dlg.button.ignore")); - - if (update > 0) { - this.installPep(true); - } - }, - - /** - * Determine if pEp should be used or Enigmail - * - * @return: Boolean: true - use pEp / false - use Enigmail - */ - getPepJuniorMode: function() { - - if (EnigmailCompat.isPostbox()) return false; - let mode = EnigmailPrefs.getPref("juniorMode"); - if (mode === 0) return false; - - // manual pEp or automatic mode - if (mode === 2 || (!this.isAccountCryptEnabled())) { - return EnigmailFuncs.syncPromise(this.isPepAvailable(true)); - } - - return false; - }, - - /** - * Determine if any account is enabled for crypto (S/MIME or Enigmail) - * - * @return: Boolean: true if at least one account is enabled for S/MIME or Enigmail, - * false otherwise - */ - - isAccountCryptEnabled: function() { - // automatic mode: go through all identities - let amService = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - amService.LoadAccounts(); - let ids = amService.allIdentities; - - for (let i = 0; i < ids.length; i++) { - let msgId = ids.queryElementAt(i, Ci.nsIMsgIdentity); - - if ((msgId.getUnicharAttribute("signing_cert_name") !== "") || - (msgId.getUnicharAttribute("encryption_cert_name") !== "") || - msgId.getBoolAttribute("enablePgp")) { - return true; - } - } - - return false; - }, - - /** - * Thunderbird shutdown callback (called from enigmail.js) - */ - onShutdown: function() { - EnigmailLog.DEBUG("pEpAdapter.jsm: onShutdown()\n"); - - if (gPepListenerPort > 0) { - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - EnigmailTimer.setTimeout(function _f() { - // wait at most 1 second to continue shutdown - if (gPepListenerPort > 0) { - inspector.exitNestedEventLoop(); - } - }, 1000); - - EnigmailpEp.unregisterListener().then(function _ok(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: onShutdown: de-registring from pEp OK\n"); - gPepListenerPort = -1; - inspector.exitNestedEventLoop(); - }).catch(function _fail(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: onShutdown: de-registring from pEp failed\n"); - gPepListenerPort = -1; - inspector.exitNestedEventLoop(); - }); - - // onShutdown should be synchronus in order for Thunderbird to wait - // with shutting down until we're completed - inspector.enterNestedEventLoop(0); - EnigmailpEp.registerLogHandler(null); - } - }, - - /** - * Initialize the pEpAdapter (should be called during startup of application) - * - * @return Promise - */ - initialize: function() { - EnigmailLog.DEBUG("pEpAdapter.jsm: initialize:\n"); - let self = this; - - return new Promise((resolve, reject) => { - EnigmailpEp.registerLogHandler(EnigmailLog.DEBUG); - - if (gJmObservers === null) { - gJmObservers = {}; - EnigmailPrefs.registerPrefObserver("juniorMode", self.handleJuniorModeChange); - } - - let pEpMode = EnigmailPrefs.getPref("juniorMode"); - // force using Enigmail (do not use pEp) - if (pEpMode === 0) { - resolve(true); - return; - } - - // automatic mode, with Crypto enabled (do not use pEp) - if (this.isAccountCryptEnabled() && pEpMode !== 2) { - resolve(true); - return; - } - - let execFile = this.getPepMiniDesktopAdapterBinaryFile(); - if (execFile) { - EnigmailpEp.setServerPath(execFile.path); - } else if (pEpMode === 2) { - // if force pEp mode, and pEp not found, try to install it - if (!gAttemptedInstall) this.installPep(); - resolve(true); - return; - } - - try { - EnigmailpEp.getPepVersion().then(function _success(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: initialize: success '" + JSON.stringify(data) + "'\n"); - if (data === null) { - gPepVersion = { - api: "0.10.0", - package: null, - engine: "0.9.0" - }; - } else if (typeof(data) === "object") { - if ("api_version" in data) { - gPepVersion = { - api: data.api_version, - package: data.package_version, - engine: data.engine_version - }; - } else { - gPepVersion = { - api: data.version, - package: data.version, - engine: data.version - }; - } - } - - if (gPepVersion) { - startListener(); - if (EnigmailPrefs.getPref("autoKeyRetrieve").length > 0) { - EnigmailpEp.startKeyserverLookup(); - } else { - EnigmailpEp.stopKeyserverLookup(); - } - EnigmailpEp.startKeySync(); - self.setupIncomingFilter(); - self.handleJuniorModeChange(); - } - - return EnigmailpEp.getGpgEnv(); - }).then(function _gotGpgEnv(gpgEnv) { - EnigmailLog.DEBUG("pEpAdapter.jsm: initialize: got GnuPG env '" + JSON.stringify(gpgEnv) + "'\n"); - - let envStr = ""; - if (gpgEnv && typeof gpgEnv === "object" && "gnupg_path" in gpgEnv) { - - EnigmailLog.DEBUG("pEpAdapter.jsm: initialize: got GnuPG path '" + gpgEnv.gnupg_path + "'\n"); - - if (typeof(gpgEnv.gpg_agent_info) === "string" && gpgEnv.gpg_agent_info.length > 0) { - envStr += "GPG_AGENT_INFO=" + gpgEnv.gpg_agent_info + "\n"; - } - if (typeof(gpgEnv.gnupg_home) === "string" && gpgEnv.gnupg_home.length > 0) { - envStr += "GNUPGHOME=" + gpgEnv.gnupg_home + "\n"; - } - - let gpgFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - gpgFile.initWithPath(gpgEnv.gnupg_path); - - if (!gpgFile.exists()) { - // this should not really happen ... - resolve(false); - return; - } - - let enigmailSvc = EnigmailCore.createInstance(); - enigmailSvc.perferGpgPath(gpgEnv.gnupg_path); - enigmailSvc.overwriteEnvVar(envStr); - - if (enigmailSvc.initialized) { - enigmailSvc.reinitialize(); - } else { - enigmailSvc.initialize(null, false); - } - } - - self.setOwnIdentities(0); - resolve(false); - }).catch(function failed(err) { - EnigmailLog.DEBUG("pEpAdapter.jsm: initialize: error during pEp init:\n"); - EnigmailLog.DEBUG(" " + err.code + ": " + ("exception" in err && err.exception ? err.exception.toString() : err.message) + "\n"); - - if (err.code === "GNUPG-UNAVAILABLE") { - // GnuPG not found, try to install it - installMissingGnuPG(); - } - - gPepVersion = { - api: "", - package: null, - engine: "" - }; - resolve(false); - }); - } catch (ex) { - resolve(false); - } - }); - }, - - setOwnIdentities: function(accountNum) { - let self = this; - let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - let id; - - // pEp currently only supports 1 identity per account, we therefore only set the 1st id of each accunt - if (accountManager.accounts.length > accountNum) { - let ac = accountManager.accounts.queryElementAt(accountNum, Ci.nsIMsgAccount); - try { - id = ac.identities.queryElementAt(0, Ci.nsIMsgIdentity); - } catch (ex) { - id = null; - } - - if (!id) { - self.setOwnIdentities(accountNum + 1); - return; - } - - let pepId = { - address: id.email.toLowerCase(), - user_id: "", - username: id.fullName - }; - - EnigmailLog.DEBUG("pEpAdapter.jsm: setOwnIdentities: " + id.identityName + "\n"); - self.pep.setMyself(pepId).then( - function _ok(data) { - if (data) { - let myId = self.processOwnIdentity(data); - } - - let deferred = PromiseUtils.defer(); - deferred.resolve(); - return deferred; - - }).then( - function _ok() { - self.setOwnIdentities(accountNum + 1); - }).catch( - function _err(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: setOwnIdentities: ERROR: '" + JSON.stringify(data) + "'\n"); - }); - } else { - EnigmailLog.DEBUG("pEpAdapter.jsm: setOwnIdentities: done.\n"); - } - }, - - processOwnIdentity: function(identityData) { - EnigmailLog.DEBUG("pEpAdapter.jsm: processOwnIdentity()\n"); - if ("result" in identityData) { - let id = identityData.result.outParams[0]; - - gOwnIdentities[id.address.toLowerCase()] = id; - - return id; - } - return null; - }, - - - /** - * get the pEp Identity of own emails (i.e. for those what we should have a secret key) - * for a given email address. - * - * @param emailAddress: String - my own email address - * - * @return Object: pEp Identity or null (if not found) - */ - getOwnIdentityForEmail: function(emailAddress) { - emailAddress = emailAddress.toLowerCase(); - - if (emailAddress in gOwnIdentities) { - return gOwnIdentities[emailAddress]; - } - - return null; - }, - - /** - * Get a MIME tree as String from the pEp-internal message object - * - * @param resObj: Object - result object from encryption - * - * @return String - a MIME string, or "" if no message extracted - */ - stripMsgHeadersFromEncryption: function(resObj) { - let mimeStr = ""; - if (Array.isArray(resObj) && typeof(resObj[0]) === "string") { - mimeStr = resObj[0]; - } - - let startPos = mimeStr.search(/\r?\n\r?\n/); - - if (startPos < 0) return ""; - - let headers = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - headers.initialize(mimeStr.substring(0, startPos)); - - let n = headers.headerNames; - let printHdr = ""; - - while (n.hasMore()) { - let hdr = n.getNext(); - if (hdr.search(/^(from|to|mime-version|subject|message-id)$/i) < 0) { - printHdr += hdr + ": " + EnigmailMime.formatHeaderData(headers.extractHeader(hdr, true)) + "\r\n"; - } else if (hdr.search(/^subject$/i) === 0) { - // workaround for encoding bug in jsmime - let s = headers.extractHeader(hdr, true); - if (s === "pap") { - s = "p≡p"; - } - printHdr += "Subject: " + EnigmailMime.formatHeaderData(s) + "\r\n"; - } - } - - return printHdr + "\r\n" + mimeStr.substr(startPos); - }, - - /** - * Get the encryption quality rating for a list of recipients - * - * @param sender: - Object msgIAddressObject message sender - * @param recipients: - Array of Object msgIAddressObject message recipients - * - * @return Number: quality of encryption (-3 ... 9) - */ - getOutgoingMessageRating: function(sender, recipients) { - let resultObj = null; - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let from = this.emailToPepPerson(sender); - let to = []; - - if (recipients.length === 0) { - return 0; - } - - for (let i of recipients) { - to.push(EnigmailPEPAdapter.emailToPepPerson(i)); - } - - EnigmailPEPAdapter.pep.outgoingMessageRating(from, to, "test").then(function _step2(res) { - EnigmailLog.DEBUG("pEpAdapter.jsm: outgoingMessageRating: SUCCESS\n"); - if ((typeof(res) === "object") && ("result" in res)) { - resultObj = res.result.outParams; - } else - EnigmailLog.DEBUG("pEpAdapter.jsm: outgoingMessageRating: typeof res=" + typeof(res) + "\n"); - - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - - }).catch(function _error(err) { - EnigmailLog.DEBUG("pEpAdapter.jsm: outgoingMessageRating: ERROR\n"); - EnigmailLog.DEBUG(err.code + ": " + ("exception" in err ? err.exception.toString() : err.message) + "\n"); - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - }); - - // wait here for PEP to terminate - inspector.enterNestedEventLoop(0); - - if (resultObj && Array.isArray(resultObj) && "rating" in resultObj[0]) { - return resultObj[0].rating; - } - return 3; // unencrypted - }, - - /** - * Obtain a list of supported languages for trustwords - * - * @return Promise, delivering Array of Object: - * - short: 2-Letter ISO-Codes - * - long: Language name in the language - * - desc: Describing sentence in the language - */ - getSupportedLanguages: function() { - let deferred = PromiseUtils.defer(); - EnigmailpEp.getLanguageList().then(function _success(res) { - let outArr = EnigmailpEp.processLanguageList(res); - deferred.resolve(outArr); - }).catch(function _err(err) { - deferred.resolve([]); - }); - - return deferred.promise; - }, - - getIdentityForEmail: function(emailAddress) { - let deferred = PromiseUtils.defer(); - EnigmailpEp.updateIdentity({ - address: emailAddress - }).then(function _ok(data) { - if (("result" in data) && typeof data.result === "object" && typeof data.result.outParams[0] === "object") { - if ("username" in data.result.outParams[0] && data.result.outParams[0].username) { - let u = jsmime.headerparser.parseAddressingHeader(data.result.outParams[0].username, true); - if (Array.isArray(u) && u.length > 0) { - data.result.outParams[0].username = u[0].name; - } - } - } - deferred.resolve(data); - }).catch(function _err(data) { - deferred.reject(data); - }); - - return deferred.promise; - }, - - /** - * Convert an msgIAddressObject object into a pEpPerson object - * If no name given, the name is looked up in the address book - * - * @param emailObj - Object msgIAddressObject - * - * @return pEpPerson object - */ - emailToPepPerson: function(emailObj) { - let p = { - user_id: "", - username: "unknown", - address: "" - }; - - if (!emailObj) return p; - - if ("email" in emailObj) { - p.address = emailObj.email; - } - - if ("name" in emailObj && emailObj.name.length > 0) { - p.username = emailObj.name; - } else { - let addr = EnigmailAddrbook.lookupEmailAddress(p.address); - if (addr) { - if (addr.card.displayName.length > 0) { - p.username = addr.card.displayName; - } else { - p.username = (addr.card.firstName + " " + addr.card.lastName).trim(); - } - } - } - - if (p.username.length === 0 || p.username === "unknown") { - p.username = p.address.replace(/@.*$/, ""); - } - return p; - }, - - /** - * Process PGP/MIME messages if needed - */ - processPGPMIME: function(headerData) { - EnigmailLog.DEBUG("pEpAdapter.jsm: processPGPMIME\n"); - - // placeholder for pEp-specific actions on PGP/MIME messages - }, - - /** - * Update the last sent date for inline-PGP messages. We do this to make sure - * that pEp can potentially derive information from the message (such as extracting an - * attached key). - */ - processInlinePGP: function(msgUri, headerData) { - EnigmailLog.DEBUG("pEpAdapter.jsm: processInlinePGP: " + msgUri + "\n"); - - if (!("from" in headerData) && ("date" in headerData)) return; - - let stream = EnigmailStreams.newStringStreamListener( - function analyzeData(data) { - EnigmailLog.DEBUG("pEpAdapter.jsm: processInlinePGP: got " + data.length + " bytes\n"); - - if (data.indexOf("From -") === 0) { - // remove 1st line from Mails stored in msgbox format - data = data.replace(/^From .*\r?\n/, ""); - } - - EnigmailpEp.decryptMimeString(data).then(function _ignore() {}).catch(function _ignore() {}); - } - ); - - try { - var channel = EnigmailStreams.createChannel(msgUri.spec); - channel.asyncOpen(stream, null); - } catch (e) { - EnigmailLog.DEBUG("pEpAdapter.jsm: processInlinePGP: exception " + e.toString() + "\n"); - } - }, - - /** - * prepare the relevant data for the Trustwords dialog - * - * @param emailAddress: String - the email address of the peer to verify - * @param headerData: either: Object - nsIMsgHdr object for the message - * (to identify the ideal own identity) - * or: String - email address of own identity - * @return Promise(object) - */ - prepareTrustWordsDlg: function(emailAddress, headerData) { - let deferred = PromiseUtils.defer(); - let emailId = null; - let useOwnId = null; - let emailIdRating = null; - let useLocale = "en"; - let ownIds = []; - let supportedLocale = []; - - let uiLocale = EnigmailLocale.getUILocale().substr(0, 2).toLowerCase(); - - emailAddress = emailAddress.toLowerCase(); - - let allEmails = ""; - - if (typeof(headerData) === "string") { - allEmails = headerData; - } else { - if ("from" in headerData) { - allEmails += headerData.from.headerValue + ","; - } - if ("to" in headerData) { - allEmails += headerData.to.headerValue + ","; - } - if ("cc" in headerData) { - allEmails += headerData.cc.headerValue + ","; - } - } - - let emailsInMessage = ""; - try { - emailsInMessage = EnigmailFuncs.stripEmail(allEmails.toLowerCase()).split(/,/); - } catch (ex) { - deferred.reject("pepTrustWords.generalFailure"); - return deferred.promise; - } - - EnigmailPEPAdapter.pep.getOwnIdentities().then(function _gotOwnIds(data) { - if (("result" in data) && typeof data.result.outParams[0] === "object" && Array.isArray(data.result.outParams[0])) { - ownIds = data.result.outParams[0]; - } - - for (let i = 0; i < ownIds.length; i++) { - if (ownIds[i].address.toLowerCase() === emailAddress) { - deferred.reject("cannotVerifyOwnId"); - } - - useOwnId = ownIds[0]; - for (let j = 0; j < emailsInMessage.length; j++) { - if (ownIds[i].address.toLowerCase() === emailsInMessage[j]) { - useOwnId = ownIds[i]; - break; - } - } - } - - return EnigmailPEPAdapter.getIdentityForEmail(emailAddress); - }).then(function _gotIdentityForEmail(data) { - if (("result" in data) && typeof data.result === "object" && typeof data.result.outParams[0] === "object") { - emailId = data.result.outParams[0]; - } else { - deferred.reject("cannotFindKey"); - } - - return EnigmailPEPAdapter.pep.getIdentityRating(emailId); - - }).then(function _gotIdentityRating(data) { - if ("result" in data && Array.isArray(data.result.outParams) && typeof(data.result.outParams[0]) === "object" && - "rating" in data.result.outParams[0]) { - emailIdRating = data.result.outParams[0]; - } - - return EnigmailPEPAdapter.getSupportedLanguages(); - }).then(function _gotLocale(localeList) { - supportedLocale = localeList; - - for (let i = 0; i < localeList.length; i++) { - if (localeList[i].short === uiLocale) { - useLocale = localeList[i].short; - } - } - - return EnigmailPEPAdapter.getTrustWordsForLocale(useOwnId, emailId, useLocale, false); - }).then(function _gotTrustWords(data) { - if (("result" in data) && typeof data.result === "object" && typeof data.result.outParams[1] === "string") { - let trustWords = data.result.outParams[1]; - deferred.resolve({ - ownId: useOwnId, - otherId: emailId, - userRating: emailIdRating, - locale: useLocale, - supportedLocale: supportedLocale, - trustWords: trustWords, - dialogMode: 0 - }); - } else { - deferred.reject("generalFailure"); - } - }).catch(function _err(errorMsg) { - deferred.reject(errorMsg); - }); - - return deferred.promise; - }, - - /** - * Get the trustwords for a pair of pEpPerson's and a given language - * - * @param ownId: Object - pEpPerson object of own id - * @param otherId: Object - pEpPerson object of other person's identity - * - * @return Promise(data) - */ - getTrustWordsForLocale: function(ownId, otherId, language, longWords) { - - return EnigmailPEPAdapter.pep.getTrustWords(ownId, otherId, language, longWords); - }, - - resetTrustForEmail: function(emailAddr) { - let deferred = PromiseUtils.defer(); - - EnigmailPEPAdapter.getIdentityForEmail(emailAddr).then(function _gotIdentityForEmail(data) { - if (("result" in data) && typeof data.result === "object" && typeof data.result.outParams[0] === "object") { - let emailId = data.result.outParams[0]; - EnigmailPEPAdapter.pep.resetIdentityTrust(emailId).then( - function _ok() { - deferred.resolve(); - } - ).catch(function _err() { - deferred.resolve(); - }); - } - }); - - return deferred.promise; - }, - - getRatingsForEmails: function(emailArr) { - EnigmailLog.DEBUG("pEpAdapter.getRatingsForEmails(" + emailArr.length + ")\n"); - - let deferred = PromiseUtils.defer(); - let identities = []; - - function getNextIdentity(emailNum) { - if (emailNum >= emailArr.length) { - EnigmailLog.DEBUG("pEpAdapter.getRatingsForEmails: done\n"); - deferred.resolve(identities); - return; - } - - if (emailArr[emailNum].indexOf("@") < 0) { - // skip if not an email address - getNextIdentity(emailNum + 1); - return; - } - - let identity = null; - let rating = 3; // default rating: no key available - - EnigmailPEPAdapter.getIdentityForEmail(emailArr[emailNum]).then( - function _gotIdentity(data) { - if (data && ("result" in data) && typeof data.result === "object" && typeof data.result.outParams[0] === "object") { - identity = data.result.outParams[0]; - return EnigmailPEPAdapter.pep.getIdentityRating(identity); - } else { - let deferred = PromiseUtils.defer(); - deferred.resolve({ - status: 0 - }); - return deferred.promise; - } - }).then( - function _gotRating(data) { - if ("result" in data && Array.isArray(data.result.outParams) && typeof(data.result.outParams[0]) === "object" && - "rating" in data.result.outParams[0]) { - rating = data.result.outParams[0].rating; - } - - identities.push({ - email: emailArr[emailNum], - user_id: identity, - rating: rating - }); - getNextIdentity(emailNum + 1); - }).catch( - function _err(data) { - EnigmailLog.DEBUG("pEpAdapter.getIdentitiesForEmails: ERROR: " + JSON.stringify(data) + "\n"); - deferred.reject(data); - }); - } - - getNextIdentity(0); - return deferred.promise; - }, - - calculateColorFromRating: function(rating) { - let color = "grey"; - if (rating === -2 || rating === 2) { - color = "grey"; - } else if (rating < 0) { - color = "red"; - } else if (rating < 6) { - color = "grey"; - } else if (rating >= 7) { - color = "green"; - } else { - color = "yellow"; - } - - return color; - }, - - /** - * Get CSS class for pEp rating - */ - getRatingClass: function(rating) { - let setClass = ""; - let color = this.calculateColorFromRating(rating); - - switch (color) { - case "grey": - setClass = "enigmailPepIdentityUnknown"; - break; - case "red": - setClass = "enigmailPepIdentityMistrust"; - break; - case "yellow": - setClass = "enigmailPepIdentityReliable"; - break; - case "green": - setClass = "enigmailPepIdentityTrusted"; - } - - return setClass; - }, - - getRatingLabel: function(ratingNum) { - let ratingDesc = "Undefined"; - - switch (ratingNum) { - case 1: - ratingDesc = "CannotDecrypt"; - break; - case 2: - ratingDesc = "HaveNoKey"; - break; - case 3: - ratingDesc = "Unencrypted"; - break; - case 4: - ratingDesc = "UnencryptedForSome"; - break; - case 5: - ratingDesc = "Unreliable"; - break; - case 6: - ratingDesc = "Reliable"; - break; - case 7: - case 8: - case 9: - ratingDesc = "Trusted"; - break; - case -2: - ratingDesc = "Broken"; - break; - case -1: - ratingDesc = "Mistrust"; - break; - case -3: - ratingDesc = "UnderAttack"; - break; - } - - return ratingDesc; - }, - - setupIncomingFilter: function() { - EnigmailFilters.addNewMailConsumer({ - headersOnly: false, - incomingMailOnly: true, - unreadOnly: false, - selfSentOnly: true, - consumeMessage: EnigmailPEPFilter.newMailConsumer.bind(EnigmailPEPFilter) - }); - }, - - registerJuniorModeObserver: function(observer) { - if (gJmObservers === null) { - gJmObservers = {}; - EnigmailPrefs.registerPrefObserver("juniorMode", this.handleJuniorModeChange); - } - let observerId = "O" + (gJmObserverId++); - gJmObservers[observerId] = observer; - return observerId; - }, - - unregisterJuniorModeObserver: function(observerId) { - if (observerId in gJmObservers) { - delete gJmObservers[observerId]; - } - }, - - handleJuniorModeChange: function() { - for (let i in gJmObservers) { - try { - gJmObservers[i](); - } catch (ex) {} - } - } -}; - -function installMissingGnuPG() { - if (!(EnigmailOS.isMac || EnigmailOS.isWin32)) return; - - if (getDialog().confirmDlg(null, EnigmailLocale.getString("pep.missingGnuPG"), EnigmailLocale.getString("dlg.button.install"))) { - let listener = { - onStart: function(oReq) { - this.oReq = oReq; - }, - onError: function() {}, - onProgress: function() {}, - onDownloaded: function() {}, - onLoaded: function() { - EnigmailpEp.shutdown().then(x => { - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let gpgPath = getGpgAgent().resolveGpgPath(env); - if (gpgPath) { - let p = env.get("PATH"); - if (EnigmailOS.isDosLike) { - p = p.replace(/;$/, ""); - p += ";" + gpgPath.parent.path + ";"; - } else { - p += ":" + gpgPath.parent.path; - } - env.set("PATH", p); - EnigmailCore.setEnvVariable("PATH", p); - } - - EnigmailTimer.setTimeout(function _f() { - // wait at 0.5 seconds t, then re-initialize - EnigmailPEPAdapter.initialize(); - }, 500); - - }); - }, - onWarning: function() { - return false; - }, - stopPep: function() { - EnigmailpEp.shutdown(); - } - }; - - getInstallGnuPG().startInstaller(listener); - } -} diff -Nru enigmail-2.1.6+ds1/package/pEpDecrypt.jsm enigmail-2.2.4/package/pEpDecrypt.jsm --- enigmail-2.1.6+ds1/package/pEpDecrypt.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEpDecrypt.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,623 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for interfacing to pEp (Enigmal-specific functions) - */ - - -const COLOR_UNDEF = -471142; - -const EnigmailpEp = ChromeUtils.import("chrome://enigmail/content/modules/pEp.jsm").EnigmailpEp; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPEPAdapter = ChromeUtils.import("chrome://enigmail/content/modules/pEpAdapter.jsm").EnigmailPEPAdapter; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailVerify = ChromeUtils.import("chrome://enigmail/content/modules/mimeVerify.jsm").EnigmailVerify; -const EnigmailURIs = ChromeUtils.import("chrome://enigmail/content/modules/uris.jsm").EnigmailURIs; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailMimeDecrypt = ChromeUtils.import("chrome://enigmail/content/modules/mimeDecrypt.jsm").EnigmailMimeDecrypt; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - - -var EXPORTED_SYMBOLS = ["EnigmailPEPDecrypt"]; - -const LAST_MSG = EnigmailSingletons.lastDecryptedMessage; - -var inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); - - -var EnigmailPEPDecrypt = { - /** - * create a new PEP decryption object (for PGP/MIME handling) - * - * @param contentType - String: the value of the RFC 822 Content-Type - * - * @return Object - */ - getDecryptionService: function(contentType) { - return new PEPDecryptor(contentType); - }, - - /** - * Decrypt a message using pEp - * - * @param isPgpMime: Boolean - true if PGP/MIME decryption, false for inline-PGP (or unknown) - * @param msgData: String - the message to be decrypted - * @param adr: Object - - * from: email, [to, cc, reply_to]: Array of emails - * @param contentType: String - the content-type string (only required for PGP/MIME) - * - * @return null - if decryption unsuccessful - * Object: - if decryption successful - * - longmsg - String: the decrypted message - * - shortmsg - String; message subject (if any) - * - rating: - Number: the pEp rating of how securely the message was tansmitted - * - fpr: - Array of String: the list of fingerprints used for the message - * - persons: - Object: - * - from: pEpPerson - * - to: Array of pEpPerson - * - cc: Array of pEpPerson - * - reply_to: Array of pEpPerson - */ - decryptMessageData: function(isPgpMime, msgData, adr, contentType) { - let s = msgData.search(/^-----BEGIN PGP MESSAGE-----/m); - let e = msgData.search(/^-----END PGP MESSAGE-----/m); - let pgpData = s >= 0 && e > s ? msgData.substring(s, e + 27) : msgData; - - if (!adr) adr = {}; - - if (!("from" in adr)) { - adr.from = { - email: "unknown@localhost" - }; - } - if (!("to" in adr)) adr.to = []; - if (!("cc" in adr)) adr.cc = []; - - let from = EnigmailPEPAdapter.emailToPepPerson(adr.from); - let to = []; - for (let i of adr.to) { - to.push(EnigmailPEPAdapter.emailToPepPerson(i)); - } - - let cc = []; - for (let i of adr.cc) { - cc.push(EnigmailPEPAdapter.emailToPepPerson(i)); - } - - let replyTo; - if ("replyTo" in adr) { - replyTo = []; - for (let i of adr.replyTo) { - replyTo.push(EnigmailPEPAdapter.emailToPepPerson(i)); - } - } - - if (isPgpMime) { - return decryptPgpMime(msgData, from, to, cc, replyTo); - } - else { - return decryptInlinePgp(pgpData, from, to, cc, replyTo); - } - }, - - getEmailAddrFromMessage: function(uri, mimePartNumber) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: getEmailAddrFromMessage:\n"); - let addresses = { - from: null, - to: [], - cc: [] - }; - - if (mimePartNumber === "1") { - // quick version for regular mails - let dbHdr = uri.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader; - if (dbHdr.author) addresses.from = EnigmailFuncs.parseEmails(dbHdr.author)[0]; - if (dbHdr.recipients) addresses.to = EnigmailFuncs.parseEmails(dbHdr.recipients); - if (dbHdr.ccList) addresses.cc = EnigmailFuncs.parseEmails(dbHdr.ccList); - } - else { - // slow version for mixed messages - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - let s = EnigmailStreams.newStringStreamListener( - function analyzeData(data) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: getEmailAddrFromMessage: got " + data.length + " bytes\n"); - - let i = data.search(/\n\r?\n/); - if (i < 0) i = data.length; - - let hdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - hdr.initialize(data.substr(0, i)); - - if (hdr.hasHeader("from")) { - addresses.from = hdr.getHeader("from")[0]; - } - if (hdr.hasHeader("to")) { - addresses.to = hdr.getHeader("to"); - } - if (hdr.hasHeader("cc")) { - addresses.cc = hdr.getHeader("cc"); - } - if (hdr.hasHeader("reply-to")) { - addresses.replyTo = hdr.getHeader("reply-to"); - } - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock - inspector.exitNestedEventLoop(); - } - } - ); - - try { - var channel = EnigmailStreams.createChannel(uri.spec); - channel.asyncOpen(s, null); - - // wait here for message parsing to terminate - inspector.enterNestedEventLoop(0); - } - catch (e) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: getEmailAddrFromMessage: exception " + e + "\n"); - } - } - - return addresses; - } -}; - -/** - * decryption handler for PGP/MIME messages (nsIStreamListener) - */ -function PEPDecryptor(contentType) { - this.contentType = contentType; - this.sourceData = ""; - this.uri = null; - this.backgroundJob = false; - this.decryptedData = ""; - this.decryptedHeaders = {}; - this.mimePartNumber = ""; - this.requestingSubpart = false; - this.ignoreMessage = false; - - if (EnigmailCompat.isMessageUriInPgpMime()) { - this.onDataAvailable = this.onDataAvailable68; - } else { - this.onDataAvailable = this.onDataAvailable60; - } -} - - -PEPDecryptor.prototype = { - - onStartRequest: function(request, uri) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: onStartRequest\n"); - this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - this.msgWindow = EnigmailVerify.lastMsgWindow; - if ("messageURI" in this.mimeSvc) { - this.uri = this.mimeSvc.messageURI; - } - else if (uri) { - this.uri = uri.QueryInterface(Ci.nsIURI); - } - - if (this.uri) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: onStartRequest: uri='" + this.uri.spec + "'\n"); - - this.backgroundJob = (this.uri.spec.search(/[&?]header=(filter|print|quotebody|enigmailConvert)/) >= 0); - this.requestingSubpart = (this.uri.spec.search(/[&?]part=/) >= 0); - this.ignoreMessage = (this.uri.spec.search(/[&?]header=enigmailFilter/) >= 0); - } - - if (!this.isReloadingLastMessage()) { - LAST_MSG.lastMessageData = ""; - LAST_MSG.lastMessageURI = null; - } - - if ("mimePart" in this.mimeSvc) { - this.mimePartNumber = this.mimeSvc.mimePart; - } - else { - this.mimePartNumber = ""; - } - }, - - /** - * onDataAvailable for TB <= 66 - */ - onDataAvailable60: function(req, ctxt, stream, offset, count) { - if (count > 0) { - inStream.init(stream); - this.sourceData += inStream.read(count); - } - }, - - /** - * onDataAvailable for TB >= 68 - */ - onDataAvailable68: function(req, stream, offset, count) { - if (count > 0) { - inStream.init(stream); - this.sourceData += inStream.read(count); - } - }, - - onStopRequest: function() { - // make the string a complete MIME message - - let spec = this.uri ? this.uri.spec : null; - - if (!EnigmailMime.isRegularMimeStructure(this.mimePartNumber, spec) || this.ignoreMessage) { - if (!this.isUrlEnigmailConvert()) { - this.decryptedData = EnigmailMimeDecrypt.emptyAttachment(); - } - else { - throw "pEpDecrypt.jsm: Cannot decrypt messages with mixed (encrypted/non-encrypted) content"; - } - this.returnData(); - return; - } - - if (this.isReloadingLastMessage()) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: onStopRequest: returning same data as before\n"); - - this.decryptedData = LAST_MSG.lastMessageData; - this.returnData(); - - if (!this.backgroundJob) { - // only display the decrption/verification status if not background-Job - this.decryptedHeaders = LAST_MSG.lastPepStatus.decryptedHeaders; - this.mimePartNumber = LAST_MSG.lastPepStatus.mimePartNumber; - if (!LAST_MSG.lastPepStatus.dec) { - LAST_MSG.lastPepStatus.dec = { - persons: {} - }; - } - - this.displayStatus(LAST_MSG.lastPepStatus.rating, LAST_MSG.lastPepStatus.fpr, LAST_MSG.lastPepStatus.dec.persons); - } - - return; - } - - let wrapper = EnigmailMime.createBoundary(); - this.decryptedData = 'Content-Type: multipart/mixed; boundary="' + wrapper + '"\r\n' + - 'Content-Disposition: inline\r\n\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; - - let addresses; - if (this.uri && (!this.backgroundJob) && (!this.requestingSubpart)) { - addresses = EnigmailPEPDecrypt.getEmailAddrFromMessage(this.uri, this.mimePartNumber); - } - - let dec = EnigmailPEPDecrypt.decryptMessageData(true, this.sourceData, addresses, this.contentType); - - let rating = COLOR_UNDEF; - let fpr = []; - - if (dec) { - this.decryptedData = dec.longmsg; - if (dec.shortmsg && dec.shortmsg.length > 0) { - this.decryptedHeaders.subject = dec.shortmsg; - } - rating = dec.rating; - fpr = dec.fpr; - - this.extractEncryptedHeaders(); - - // HACK: remove filename from 1st HTML part to make TB display message without attachment - this.decryptedData = this.decryptedData.replace(/^Content-Disposition: inline; filename="msg.txt"/m, "Content-Disposition: inline"); - this.decryptedData = this.decryptedData.replace(/^Content-Disposition: inline; filename="msg.html"/m, "Content-Disposition: inline"); - - if (this.mimePartNumber !== "1") { - this.addWrapperToDecryptedResult(); - } - else { - let i = this.decryptedData.search(/\n\r?\n/); - if (i > 0) { - let hdr = this.decryptedData.substr(0, i); - if (hdr.search(/^content-type:\s+text\/(plain|html)/im) >= 0) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: done: adding multipart/mixed around '" + hdr + "'\n"); - - this.addWrapperToDecryptedResult(); - } - } - } - - let prefix = EnigmailMimeDecrypt.pretendAttachment(this.mimePartNumber, this.uri); - if (prefix.length > 0) { - this.decryptedData = prefix + this.decryptedData; - } - - if (!this.backgroundJob) { - // only display the decrption/verification status if not background-Job - this.displayStatus(rating, fpr, dec.persons); - LAST_MSG.lastPepStatus = { - rating: rating, - fpr: fpr, - dec: dec, - decryptedHeaders: this.decryptedHeaders, - mimePartNumber: this.mimePartNumber - }; - } - else { - this.updateHeadersInMsgDb(); - } - } - - if (this.mimePartNumber === "1" && - this.decryptedData.search(/^Content-Type:[\t ]+multipart\/encrypted/mi) < 0) { - - LAST_MSG.lastMessageURI = EnigmailURIs.msgIdentificationFromUrl(this.uri); - LAST_MSG.lastMessageData = this.decryptedData; - } - else { - LAST_MSG.lastMessageURI = null; - LAST_MSG.lastMessageData = ""; - } - - this.returnData(); - }, - - isUrlEnigmailConvert: function() { - if (!this.uri) return false; - - return (this.uri.spec.search(/[&?]header=enigmailConvert/) >= 0); - }, - - addWrapperToDecryptedResult: function() { - if (!this.isUrlEnigmailConvert()) { - let wrapper = EnigmailMime.createBoundary(); - - let head = 'Content-Type: multipart/mixed; boundary="' + wrapper + '"\r\n' + - 'Content-Disposition: inline\r\n\r\n' + - '--' + wrapper + '\r\n'; - - this.decryptedData = head + - this.decryptedData + '\r\n' + - '--' + wrapper + '--\r\n'; - } - }, - - returnData: function() { - if ("outputDecryptedData" in this.mimeSvc) { - // TB >= 57 - this.mimeSvc.outputDecryptedData(this.decryptedData, this.decryptedData.length); - } - else { - let gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - gConv.setData(this.decryptedData, this.decryptedData.length); - this.mimeSvc.onDataAvailable(null, gConv, 0, this.decryptedData.length); - this.mimeSvc.onStopRequest(null, 0); - } - }, - - displayStatus: function(rating, fpr, persons) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: displayStatus\n"); - - if (this.msgWindow === null || this.backgroundJob || this.requestingSubpart) - return; - - let uriSpec = (this.uri ? this.uri.spec : null); - - try { - EnigmailLog.DEBUG("pEpDecrypt.jsm: displayStatus for uri " + uriSpec + "\n"); - let headerSink = EnigmailSingletons.messageReader; - - if (headerSink && this.uri) { - - let r = { - fpr: fpr.join(","), - persons: persons, - rating: rating - }; - headerSink.processDecryptionResult(this.uri, "modifyMessageHeaders", JSON.stringify(this.decryptedHeaders), this.mimePartNumber); - headerSink.processDecryptionResult(this.uri, "displayPepStatus", JSON.stringify(r), this.mimePartNumber); - } - } - catch (ex) { - EnigmailLog.writeException("pEpDecrypt.jsm", ex); - } - EnigmailLog.DEBUG("pEpDecrypt.jsm: displayStatus done\n"); - }, - - /** - * Determine if we are reloading the same message as the previous one - * - * @return Boolean - */ - isReloadingLastMessage: function() { - if (!this.uri) return false; - if (!LAST_MSG.lastMessageURI) return false; - if (("lastMessageData" in LAST_MSG) && LAST_MSG.lastMessageData === "") return false; - if (this.isUrlEnigmailConvert()) return false; - - let currMsg = EnigmailURIs.msgIdentificationFromUrl(this.uri); - - if (LAST_MSG.lastMessageURI.folder === currMsg.folder && LAST_MSG.lastMessageURI.msgNum === currMsg.msgNum) { - return true; - } - - return false; - }, - - /** - * extract protected headers from the message and modify decrypted data to not - * contain them anymore - */ - extractEncryptedHeaders: function() { - let r = EnigmailMime.extractProtectedHeaders(this.decryptedData); - if (!r) return; - - this.decryptedHeaders = r.newHeaders; - if (r.startPos >= 0 && r.endPos > r.startPos) { - this.decryptedData = this.decryptedData.substr(0, r.startPos) + this.decryptedData.substr(r.endPos); - } - }, - - updateHeadersInMsgDb: function() { - if (this.mimePartNumber !== "1") return; - if (!this.uri) return; - - if (this.decryptedHeaders && ("subject" in this.decryptedHeaders)) { - try { - let msgDbHdr = this.uri.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader; - msgDbHdr.subject = EnigmailData.convertFromUnicode(this.decryptedHeaders.subject, "utf-8"); - } - catch (x) {} - } - } -}; - - -function decryptPgpMime(msgData, from, to, cc, replyTo) { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let resultObj; - let msgStr = ""; - - let mapAddr = function _map(x) { - return x.address; - }; - - if (to) { - msgStr += to.map(mapAddr).join(", ") + ", "; - } - if (cc) { - msgStr += cc.map(mapAddr).join(", ") + ", "; - } - if (replyTo) { - msgStr += replyTo.map(mapAddr).join(", ") + ", "; - } - - msgStr = msgStr.replace(/, [, ]+/g, ", ").replace(/, $/, ""); - if (msgStr.length > 0) { - msgStr = "To: " + msgStr + "\r\n"; - } - - msgStr = "From:" + from.address + "\r\n" + msgStr + msgData; - - EnigmailpEp.decryptMimeString(msgStr).then(function _step2(res) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: decryptMessage: SUCCESS\n"); - if ((typeof(res) === "object") && ("result" in res)) { - resultObj = res.result.outParams; - } - else - EnigmailLog.DEBUG("pEpDecrypt.jsm: decryptMessage: typeof res=" + typeof(res) + "\n"); - - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - - }).catch(function _error(err) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: processPepEncryption: ERROR\n"); - try { - EnigmailLog.DEBUG(err.code + ": " + ("exception" in err ? err.exception.toString() : err.message) + "\n"); - } - catch (x) { - EnigmailLog.DEBUG(JSON.stringify(err) + "\n"); - } - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - }); - - // wait here for PEP to terminate - inspector.enterNestedEventLoop(0); - - if (resultObj && (typeof(resultObj[3]) === "string")) { - - let msgSubject = ""; - let i = resultObj[3].search(/\r?\n\r?\n/); - if (i > 0) { - let hdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - hdr.initialize(resultObj[3].substr(0, i)); - if (hdr.hasHeader("subject")) { - msgSubject = jsmime.headerparser.decodeRFC2047Words(hdr.extractHeader("subject", true)) || ""; - } - } - - return { - longmsg: resultObj[3], - shortmsg: msgSubject, - persons: { - from: from, - to: to, - cc: cc, - reply_to: replyTo - }, - rating: resultObj[1].rating, - fpr: resultObj[2] - }; - } - else return null; -} - - -function decryptInlinePgp(pgpData, from, to, cc, replyTo) { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - let resultObj; - - EnigmailpEp.decryptMessage(pgpData, from, to, cc, replyTo).then(function _step2(res) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: decryptMessage: SUCCESS\n"); - if ((typeof(res) === "object") && ("result" in res)) { - resultObj = res.result.outParams; - } - else - EnigmailLog.DEBUG("pEpDecrypt.jsm: decryptMessage: typeof res=" + typeof(res) + "\n"); - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - - }).catch(function _error(err) { - EnigmailLog.DEBUG("pEpDecrypt.jsm: processPepEncryption: ERROR\n"); - try { - EnigmailLog.DEBUG(err.code + ": " + ("exception" in err ? err.exception.toString() : err.message) + "\n"); - } - catch (x) { - EnigmailLog.DEBUG(JSON.stringify(err) + "\n"); - } - - if (inspector && inspector.eventLoopNestLevel > 0) { - // unblock the waiting lock in finishCryptoEncapsulation - inspector.exitNestedEventLoop(); - } - }); - - // wait here for PEP to terminate - inspector.enterNestedEventLoop(0); - - if (resultObj && (typeof(resultObj[3]) === "object")) { - return { - longmsg: resultObj[3].longmsg, - shortmsg: "", // resultObj[3].shortmsg, - persons: { - from: resultObj[3].from, - to: resultObj[3].to, - cc: resultObj[3].cc, - reply_to: resultObj[3].reply_to - }, - rating: resultObj[1].rating, - fpr: resultObj[2] - }; - } - else return null; -} diff -Nru enigmail-2.1.6+ds1/package/pEpFilter.jsm enigmail-2.2.4/package/pEpFilter.jsm --- enigmail-2.1.6+ds1/package/pEpFilter.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEpFilter.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,179 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for interfacing to pEp (Enigmail-specific functions) - */ - - - - - - -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; - -const getPepAdapter = EnigmailLazy.loader("enigmail/pEpAdapter.jsm", "EnigmailPEPAdapter"); - - -// pEp JSON Server executable name -const DECRYPT_FILTER_NAME = "pEp-Decrypt-on-Sending"; -const AUTOPROCESS_FILTER_NAME = "pEp-Process-Sync-Message"; -const AUTOPROCESS_HEADER = "pep-auto-consume"; - -const PEP_DECRYPT_FLAGS = { - own_private_key: 1, - consume: 2, - ignore: 4 -}; - -var EXPORTED_SYMBOLS = ["EnigmailPEPFilter"]; - - - -var EnigmailPEPFilter = { - - DECRYPT_FILTER_NAME: DECRYPT_FILTER_NAME, - AUTOPROCESS_FILTER_NAME: AUTOPROCESS_FILTER_NAME, - - /** - * Delete an existing standard pEp filter rule for storing unencrypted - * sent messages (if trusted server is disabled) - * - * @param identity - Object: nsIMsgIdentity for relevant account - */ - - deleteDecryptedCopyFilter: function(identity) { - let acct = EnigmailFuncs.getAccountForIdentity(identity); - let filters = acct.incomingServer.getFilterList(null); - - let pepFilter = filters.getFilterNamed(DECRYPT_FILTER_NAME); - if (pepFilter) { - filters.removeFilter(pepFilter); - } - }, - - /** - * Check and/or create the pEp standard filter rule for saving sent messages - * in decrypted form (if trusted server is enabled) - * - * @param identity - Object: nsIMsgIdentity for relevant account - * - * @return Object: Filter rule (nsIMsgFilter) - */ - ensureDecryptedCopyFilter: function(identity) { - let acct = EnigmailFuncs.getAccountForIdentity(identity); - let filters = acct.incomingServer.getFilterList(null); - - let pepFilter = filters.getFilterNamed(DECRYPT_FILTER_NAME); - if (pepFilter) { - let searchTerm = pepFilter.searchTerms.queryElementAt(0, Ci.nsIMsgSearchTerm); - let action = pepFilter.getActionAt(0); - if (searchTerm && action && - pepFilter.searchTerms.length === 1 && - searchTerm.matchAll && - pepFilter.actionCount === 1 && - pepFilter.filterType === Ci.nsMsgFilterType.PostOutgoing && - action.type === Ci.nsMsgFilterAction.Custom && - action.customAction.id === EnigmailConstants.FILTER_MOVE_DECRYPT) { - - // set outbox - action.strValue = identity.fccFolder; - pepFilter.enabled = true; - } - else { - filters.removeFilter(pepFilter); - pepFilter = null; - } - } - - if (!pepFilter) { - pepFilter = filters.createFilter(DECRYPT_FILTER_NAME); - - let searchTerm = pepFilter.createTerm(); - searchTerm.matchAll = true; - - let action = pepFilter.createAction(); - action.type = Ci.nsMsgFilterAction.Custom; - action.customId = EnigmailConstants.FILTER_MOVE_DECRYPT; - action.strValue = identity.fccFolder; - - pepFilter.appendTerm(searchTerm); - pepFilter.appendAction(action); - pepFilter.enabled = true; - pepFilter.filterType = Ci.nsMsgFilterType.PostOutgoing; - pepFilter.filterDesc = EnigmailLocale.getString("filter.tempPepFilterDesc"); - filters.insertFilterAt(0, pepFilter); - } - - return pepFilter; - }, - - newMailConsumer: function(messageStruct, rawMessageData, msgHdr) { - EnigmailLog.DEBUG("pEpFilter.jsm: newMailConsumer()\n"); - - let processAttempts = 0; - - function delMsg(msgHdr) { - let folderInfoObj = {}; - msgHdr.folder.getDBFolderInfoAndDB(folderInfoObj).DeleteMessage(msgHdr.messageKey, null, true); - } - - function processMailWithPep() { - EnigmailLog.DEBUG("pEpFilter.jsm: newMailConsumer: processMailWithPep(" + msgHdr.messageKey + ")\n"); - getPepAdapter().pep.decryptMimeString(rawMessageData). - then(resultObj => { - let e = msgHdr.propertyEnumerator; - if (!e.hasMore()) { - EnigmailLog.DEBUG("pEpFilter.jsm: newMailConsumer: message " + msgHdr.messageKey + " was deleted\n"); - return; - } - - if (resultObj && "result" in resultObj) { - let decryptFlag = resultObj.result.outParams[0]; - EnigmailLog.DEBUG("pEpFilter.jsm: newMailConsumer: flag for " + msgHdr.messageKey + ": " + decryptFlag + "\n"); - - if (++processAttempts > 3) { - // ignore messages after more than 3 attempts - return; - } - - switch (decryptFlag) { - case PEP_DECRYPT_FLAGS.ignore: - EnigmailLog.DEBUG("pEpFilter.jsm: newMailConsumer: next round\n"); - EnigmailTimer.setTimeout(function _f() { - processMailWithPep(); - }, 600000); // 10 minutes - break; - case PEP_DECRYPT_FLAGS.consume: - delMsg(msgHdr); - break; - default: - return; - } - } - }). - catch(err => { - - }); - } - - if (getPepAdapter().usingPep()) { - // ensure line ends are CRLF - rawMessageData.replace(/\r?\n/g, "\n").replace(/\n/g, "\r\n"); - - let c = messageStruct.headers.getRawHeader("pep-auto-consume"); - if (c && c.join("").toLowerCase() === "yes") { - processMailWithPep(); - } - } - } -}; diff -Nru enigmail-2.1.6+ds1/package/pEp.jsm enigmail-2.2.4/package/pEp.jsm --- enigmail-2.1.6+ds1/package/pEp.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEp.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1350 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/* eslint no-invalid-this: 0 */ - -/** - * This module serves to integrate pEp into Enigmail - * - * The module is still a prototype - not ready for daily use! - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailpEp"]; - -const FT_CALL_FUNCTION = "callFunction"; -const FT_CREATE_SESSION = "createSession"; - -var gPepHome = null; - -var gPepServerPath = null; -var gLogFunction = null; -var gShuttingDown = false; -var gPepAdapterApiVer = "0.0.0"; - - - - - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); -const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; - -var gRequestId = 1; -var gConnectionInfo = null; -var gRetryCount = 0; -var gTbListener = null; -var gRequestQueue = []; -var gXmlReq; - - -var EnigmailpEp = { - - /** - * In case of failures, an error object with the following structure is returned to the - * catch() method of the promise: - * code : String, one of: PEP-ERROR, PEP-unavailable - * exception: JavaScript exception object (may be null) - * message : an error message describing the failure - */ - - /* - * pEpPerson: - * - user_id - * - username - * - address - */ - - /** - * get the pEp version number - * - * @return: Promise. - * then: String - version identifier - * catch: Error object (see above) - */ - getPepVersion: function() { - DEBUG_LOG("getPepVersion()"); - let onLoad = function(responseObj) { - let version = null; - - if ("result" in responseObj) { - version = responseObj.result.return; - } - return version; - }; - - return this._callPepFunction(FT_CALL_FUNCTION, "serverVersion", [], onLoad); - }, - - getPepHomeDir: function() { - if (gPepHome) return gPepHome; - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let pepHomeDir = env.get("PEPHOME"); - if (pepHomeDir === "") { - if (EnigmailOS.isDosLike) { - pepHomeDir = (env.get("LocalAppData") + "\\pEp"); - } - else { - pepHomeDir = (env.get("HOME") + "/.pEp"); - } - } - DEBUG_LOG("pEpAdapter.jsm: getPepHomeDir() = '" + pepHomeDir + "'"); - gPepHome = pepHomeDir; - return pepHomeDir; - }, - - /** - * Provide the pEp Connection info. If necessary, load the data from file - * - * @return String - URL to connecto to pEp JSON Server - */ - getConnectionInfo: function() { - DEBUG_LOG("getConnectionInfo()"); - if (!gConnectionInfo) { - let fileHandle = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(fileHandle, this.getPepHomeDir()); - fileHandle.append("json-token"); - - if (!fileHandle.exists()) { - /* try legacy place for up to (30) Krombach */ - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let tmpDir = env.get("TEMP"); - let userName = env.get("USER"); - - fileHandle = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(fileHandle, (tmpDir !== "" ? tmpDir : "/tmp")); - fileHandle.append("pEp-json-token-" + (userName !== "" ? userName : "XXX")); - } - - let jsonData = EnigmailFiles.readBinaryFile(fileHandle); - - if (jsonData.length > 0) { - try { - // we cannot use parseJSON here, it won't work before TB has finished initialization - gConnectionInfo = this.parseJSON(jsonData); - if (gConnectionInfo.address === "0.0.0.0") { - gConnectionInfo.address = "127.0.0.1"; - } - } - catch (ex) {} - } - } - - let o = gConnectionInfo; - - if (!gConnectionInfo) { - o = { - // provide a default (that should fail) - address: "127.0.0.1", - port: 0, - path: "/none/", - pathQueryRef: "/none/", - security_token: "" - }; - } - - return "http://" + o.address + ":" + o.port + ("path" in o ? o.path : o.pathQueryRef); - }, - - - /** - * get the path to the GnuPG executable, and the env. variables GNUPGHOME and GPG_AGENT_INFO - * - * @return: Promise. - * then: String - Full path to gpg executable - * catch: Error object (see above) - */ - getGpgEnv: function() { - DEBUG_LOG("getGpgEnv()"); - let onLoad = function(responseObj) { - if ("result" in responseObj) { - return responseObj.result.return; - } - - return responseObj; - }; - - return this._callPepFunction(FT_CALL_FUNCTION, "getGpgEnvironment", [], onLoad); - - }, - - - /** - * Register a debugging log function. - * The log function must have the form f(logDataStr) - * - * @param logFunction: function - the function to register - */ - - registerLogHandler: function(logFunction) { - gLogFunction = logFunction; - DEBUG_LOG("registered log handler"); - }, - - /** - * encrypt a message using the pEp server - * - * @param fromAddr : String - sender Email address - * @param toAddrList: Array of String - array with all recipients - * @param subject : String - the message subject - * @param message : String - the message to encrypt - * @param pEpMode : optional Number - the PEP encryption mode: - * 0: none - message is not encrypted - * 1: inline PGP + PGP extensions - * 2: S/MIME (RFC5751) - * 3: PGP/MIME (RFC3156) - * 4: pEp encryption format - * - * @return: Promise. - * then: returned result (message Object) - * catch: Error object (see above) - */ - encryptMessage: function(fromAddr, toAddrList, subject, messageObj, pEpMode) { - DEBUG_LOG("encryptMessage (" + fromAddr + ")"); - - if (pEpMode === null) pEpMode = 4; - if (!toAddrList) toAddrList = []; - if (typeof(toAddrList) === "string") toAddrList = [toAddrList]; - - messageObj.from = { - "user_id": "", - "username": "anonymous", - "address": fromAddr - }; - - messageObj.to = toAddrList.reduce(function _f(p, addr) { - p.push({ - "user_id": "", - "username": "anonymous", - "address": addr - }); - return p; - }, []); - - let msgId = "enigmail-" + String(gRequestId++); - - messageObj.shortmsg = subject; - messageObj.id = msgId; - messageObj.dir = 1; - - try { - let params = [ - messageObj, // pep messge object - [], // extra - ["OP"], // dest - pEpMode, // encryption_format - 0 // encryption flags - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "encrypt_message", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - - }, - - /** - * encrypt a message using the pEp server - * - * @param mimeStr : String - complete MIME message - * @param pEpMode : optional Number - the PEP encryption mode: - * 0: none - message is not encrypted - * 1: inline PGP + PGP extensions - * 2: S/MIME (RFC5751) - * 3: PGP/MIME (RFC3156) - * 4: pEp encryption format - * @param encryptFlags: optional Number - bitmap for encryption modes - * 0x0: default - * 0x1: force encryption - * 0x2: force unsigned message - * 0x4: do not attach own key - * - * @return: Promise. - * then: returned result (message Object) - * catch: Error object (see above) - */ - encryptMimeString: function(mimeStr, pEpMode, encryptFlags = 0) { - DEBUG_LOG("encryptMimeString()"); - - if (pEpMode === null) pEpMode = 4; - - try { - let params = [ - mimeStr, // mimetext - mimeStr.length, // size - [], // extra - ["OP"], // resulting data - pEpMode, // encryption_format - encryptFlags // encryption flags - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "MIME_encrypt_message", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - - }, - - /** - * decrypt a message using the pEp server - * - * @param message : String - the message to decrypt - * @param sender : pEpPerson - sender information - * @param to : Array of pEpPerson - recipients (To) information - * @param sender : Array of pEpPerson - recipients (Cc) information - * @param replyTo : Array of pEpPerson - Reply-to information - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - decryptMessage: function(message, sender, to, cc, replyTo) { - DEBUG_LOG("decryptMessage()"); - - if (!sender) sender = "*"; - - let msgId = "enigmail-" + String(gRequestId++); - if (typeof(message) === "object") { - message.shortmsg = "pEp"; - message.longmsg = "RFC 3156 message"; - message.msgId = msgId; - message.dir = 0; - } - else { - message = { - // src message - "shortmsg": "pEp", - "longmsg": message, - msgId: msgId, - dir: 0 - }; - } - - message.from = sender; - message.to = to; - if (cc) { - message.cc = cc; - } - if (replyTo) { - message.reply_to = replyTo; - } - - - try { - let params = [ - message, // pEp Message Obj - ["OP"], // msg Output - ["OP"], // StringList Output - ["OP"], // pep rating Output - ["OP"] // flags - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "decrypt_message", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - - /** - * decrypt a complete mime string using the pEp server - * - * @param mimeStr : String - complete MIME message - * - * @return: Promise. - * then: returned result (message Object) - * catch: Error object (see above) - */ - decryptMimeString: function(mimeStr) { - DEBUG_LOG("decryptMimeString()"); - - try { - let params = [ - mimeStr, // mimetext - mimeStr.length, // size - ["OP"], // extra - ["OP"], // resulting data - ["OP"], // rating - ["OP"] // decryption flags - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "MIME_decrypt_message", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - - }, - - /** - * determine the rating (=trust level) of a pEp Identity - * - * @param userId : Object - pEp Identity to check - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - - getIdentityRating: function(userId) { - DEBUG_LOG("getIdentityRating()"); - try { - let params = [{ - "address": userId.address - }, - [""] // rating - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "identity_rating", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - - }, - - /** - * tell pEp our own user identity - * - * @param idObject - Object: - * - address: email Address - * - user_id: user ID (usually TOFU_email@address) - * - username: name of person (Firstname Lastname), - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - - setMyself: function(idObject) { - DEBUG_LOG("setMyself()"); - try { - idObject.user_id = "pEp_own_userId"; - let params = [idObject]; - - return this._callPepFunction(FT_CALL_FUNCTION, "myself", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * Update an identity - * - * @param idObject - Object: - * - address: email Address - * - user_id: user ID (usually TOFU_email@address) - * - username: name of person (Firstname Lastname) - */ - - updateIdentity: function(idObject) { - DEBUG_LOG("updateIdentity()"); - try { - let params = [idObject]; - - return this._callPepFunction(FT_CALL_FUNCTION, "update_identity", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * get all own identities from pEp - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - getOwnIdentities: function() { - DEBUG_LOG("getOwnIdentities()"); - - try { - let params = [ - ["OP"] - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "own_identities_retrieve", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * check the trustwords for a pair of keys - * - * @param id1: Object - the 1st pEp ID to check - * @param id2: Object - the 2nd pEp ID to check - * @param language: String - language (2-letter ISOCODE) - * @param longList: Boolean - if true, return complete list of trustWords, otherwise - * return short list (default = false) - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - getTrustWords: function(id1, id2, language, longList = false) { - DEBUG_LOG("getTrustWords()"); - - try { - let params = [ - id1, - id2, - language.toUpperCase(), ["OP"], // words - ["OP"], // words_size - longList - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "get_trustwords", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * set the trust level of a user identity in pEp to "trusted" - * - * @param idObject: Object - pEp Identity object - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - trustIdentity: function(idObject) { - DEBUG_LOG("trustIdentity()"); - try { - - if ("comm_type" in idObject) { - delete idObject.comm_type; - } - let params = [idObject]; - - return this._callPepFunction(FT_CALL_FUNCTION, "trust_personal_key", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * reset the trust level of a user identity in pEp - * - * @param idObject: Object - pEp Identity object - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - resetIdentityTrust: function(idObject) { - DEBUG_LOG("resetIdentityTrust()"); - try { - - if ("comm_type" in idObject) { - delete idObject.comm_type; - } - let params = [idObject]; - - return this._callPepFunction(FT_CALL_FUNCTION, "key_reset_trust", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - - /** - * reset the trust level of a user identity in pEp - * - * @param idObject: Object - pEp Identity object - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - mistrustIdentity: function(idObject) { - DEBUG_LOG("mistrustIdentity()"); - try { - let params = [idObject]; - - return this._callPepFunction(FT_CALL_FUNCTION, "key_mistrusted", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * reset the trust level of a user identity in pEp - * - * @param partnerId: Object - pEp Identity object of partner - * @param resultValue: Number - Handshake result value (from pEp sync.h): - * SYNC_HANDSHAKE_CANCEL = -1 - * SYNC_HANDSHAKE_ACCEPTED = 0 - * SYNC_HANDSHAKE_REJECTED = 1 - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - deliverHandshakeResult: function(partnerId, resultValue) { - DEBUG_LOG("deliverHandshakeResult()"); - try { - let params = [partnerId, resultValue]; - - return this._callPepFunction(FT_CALL_FUNCTION, "deliverHandshakeResult", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * get list of languaes for which pEp trustwords are available - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - getLanguageList: function() { - DEBUG_LOG("getLanguageList()"); - - try { - let params = [ - ["OP"] // list of languages - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "get_languagelist", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * Process the output from pEp for the language list and return an array of languages - * - * @param languageStr - String: string of pEp output - * - * @return Array of Object: - * - short: 2-Letter ISO-Codes - * - long: Language name in the language - * - desc: Describing sentence in the language - */ - processLanguageList: function(languageStr) { - - if ((typeof(languageStr) === "object") && ("result" in languageStr)) { - let inArr = languageStr.result.outParams[0].split(/\n/); - let outArr = inArr.reduce(function _f(p, langLine) { - let y = langLine.split(/","/); - if (langLine.length > 0) p.push({ - short: y[0].replace(/^"/, ""), - long: y[1], - desc: y[2].replace(/"$/, "") - }); - return p; - }, []); - return outArr; - } - return []; - }, - - /** - * determine the trust rating that an outgoing message would receive - * - * @param from: Object (pEpPerson) - sender - * @param to: Array of Object (pEpPerson) - array with all recipients - * @param message: String - the message to encrypt - * - * @return: Promise. - * then: returned result - * catch: Error object (see above) - */ - outgoingMessageRating: function(from, to, message) { - DEBUG_LOG("outgoingMessageRating()"); - - if (!to) to = []; - - try { - let msgId = "enigmail-" + String(gRequestId++); - let params = [{ // src message - "id": msgId, - "dir": 1, - "longmsg": message, - "from": from, - "to": to - }, - "O" - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "outgoing_message_rating", params); - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * Get list of all blaclisted keys (fpr) - */ - blacklistGetKeyList: function() { - DEBUG_LOG("blacklistGetKeyList()"); - try { - let params = [ - "O" - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "blacklist_retrieve", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - blacklistAddKey: function(fpr) { - DEBUG_LOG("blacklistAddKey()"); - try { - let params = [ - fpr - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "blacklist_add", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - blacklistDeleteKey: function(fpr) { - DEBUG_LOG("blacklistDeleteKey()"); - try { - let params = [ - fpr - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "blacklist_delete", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - - startKeyserverLookup: function() { - DEBUG_LOG("startKeyserverLookup()"); - try { - return this._callPepFunction(FT_CALL_FUNCTION, "startKeyserverLookup", []); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - stopKeyserverLookup: function() { - DEBUG_LOG("stopKeyserverLookup()"); - try { - return this._callPepFunction(FT_CALL_FUNCTION, "stopKeyserverLookup", []); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - startKeySync: function() { - DEBUG_LOG("startKeySync()"); - try { - return this._callPepFunction(FT_CALL_FUNCTION, "startKeySync", []); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - stopKeySync: function() { - DEBUG_LOG("stopKeySync()"); - try { - return this._callPepFunction(FT_CALL_FUNCTION, "stopKeySync", []); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - - /** - * Enable or disable the passive mode for pEp. - * Passive mode means that no key is attached to a message - * - * @param isPassive: Boolean - true: enable passive mode / false: disable passive mode - */ - setPassiveMode: function(isPassive) { - DEBUG_LOG("setPassiveMode()"); - try { - let params = [ - isPassive - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "config_passive_mode", params); - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * Stop the pEp adapter. - * - * @return: Promise. - */ - - shutdown: function() { - DEBUG_LOG("shutdown()"); - - let deferred = PromiseUtils.defer(); - - gShuttingDown = true; - let onLoad = function() { - dropXmlRequest(); - gConnectionInfo = null; - gShuttingDown = false; - return 0; - }; - - return this._callPepFunction(FT_CALL_FUNCTION, "shutdown", [], onLoad, onLoad). - then(x => { - onLoad(); - }). - catch(x => { - onLoad(); - }); - }, - - registerTbListener: function(port, securityToken) { - gTbListener = { - port: port, - securityToken: securityToken - }; - - return this.registerListener(); - }, - - - registerListener: function() { - DEBUG_LOG("registerListener()"); - - try { - if (gTbListener) { - let params = [ - "127.0.0.1", - gTbListener.port, - gTbListener.securityToken - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "registerEventListener", params); - } - else { - let deferred = PromiseUtils.defer(); - deferred.resolve(0); - return deferred.promise; - } - - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - unregisterListener: function(port, securityToken) { - DEBUG_LOG("unregisterListener()"); - - gShuttingDown = true; - - try { - - if (gTbListener) { - let params = [ - "127.0.0.1", - gTbListener.port, - gTbListener.securityToken - ]; - - return this._callPepFunction(FT_CALL_FUNCTION, "unregisterEventListener", params); - } - else { - let deferred = PromiseUtils.defer(); - deferred.resolve(0); - return deferred.promise; - } - } - catch (ex) { - let deferred = PromiseUtils.defer(); - deferred.reject(makeError("PEP-ERROR", ex)); - return deferred.promise; - } - }, - - /** - * parse a JSON string. Ensure that character codes < 32 are correctly escaped first - * - * @param str - String: string in JSON notation - * - * @return whatever JSON.parse returns - */ - parseJSON: function(str) { - for (let i = 0; i < str.length; i++) { - if (str.charCodeAt(i) < 32) { - let c = str.charCodeAt(i); - if (!(c == 13 || c == 10)) { - str = str.substr(0, i) + "\\u" + c.toLocaleString("en-US", { - useGrouping: false, - minimumIntegerDigits: 4 - }) + str.substr(i + 1); - } - } - } - - try { - return JSON.parse(str); - } - catch (x) { - return null; - } - - }, - - setServerPath: function(pathName) { - DEBUG_LOG("setServerPath() = " + pathName); - - gPepServerPath = pathName; - }, - - setAdapterApiVersion: function(v) { - DEBUG_LOG("setAdapterApiVersion(" + v + ")"); - - gPepAdapterApiVer = v; - }, - - /** - * Check if the pEp adapter fulfills at least a given API version. - * - * @param requiredVersion: String - min. version, e.g. 1.2.3 - * - * @return Boolean (true = yes) - */ - checkAdapterApiLevel: function(requiredVersion) { - let vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator); - return vc.compare(gPepAdapterApiVer, requiredVersion) >= 0; - }, - - /******************* internal (private) methods *********************/ - /** - * Asynchronously call a pEp function - * - * @param funcType - String: one of FT_CALL_FUNCTION and FT_CREATE_SESSION - * @param functionName - String: the pEp function name - * @param paramsArr - Array : parameter array for pEp function - * @param onLoadListener - function: if the call is successful, callback function of the form: - * funcName(responseObj) - * @param onErrorListene - function: if the call fails, callback function of the form: - * funcName(responseText) - * @param deferred - object: optional PromiseUtils.defer() object - * - * @return Object - a Promise - */ - _callPepFunction: function(funcType, functionName, paramsArr, onLoadListener, onErrorListener, deferred) { - DEBUG_LOG("_callPepFunction(" + funcType + ", " + functionName + ")"); - - if (!deferred) deferred = PromiseUtils.defer(); - let self = this; - - let conn = this.getConnectionInfo(); - - let functionCall = { - "security_token": (gConnectionInfo ? gConnectionInfo.security_token : ""), - "method": functionName, - "params": paramsArr, - "id": gRequestId++, - "jsonrpc": "2.0" - }; - - let loadListener = onLoadListener; - if (!onLoadListener) { - loadListener = function(obj) { - return obj; - }; - } - - let errorListener = onErrorListener; - if (!onErrorListener) { - errorListener = function(txt) { - return txt; - }; - } - - let onloadFunc = function _f() { - try { - DEBUG_LOG("XMLHttpRequest: onload()"); - let parsedObj = self.parseJSON(this.responseText); - - if ((typeof(parsedObj) === "object") && ("error" in parsedObj)) { - if (parsedObj.error.code === -32600) { - // wrong security token - gConnectionInfo = null; - - self.getConnectionInfo(); - ++gRetryCount; - - if (gRetryCount < 2) { - self.registerListener() - .then(function _f() { - self._callPepFunction(funcType, functionName, paramsArr, loadListener, errorListener, deferred); - }); - return; - } - } - } - else { - gRetryCount = 0; - } - - let r = loadListener(parsedObj); - - if (typeof(r) === "object" && "result" in r && "return" in r.result && "status" in r.result.return) { - if (r.result.return.status !== 0) { - DEBUG_LOG("_callPepFunction: '" + functionName + "' returned with error: " + JSON.stringify(r)); - } - } - deferred.resolve(r); - } - catch (ex) { - deferred.reject(makeError("PEP-ERROR", ex, this.responseText)); - } - }; - - let onerrorFunc = function(e) { - DEBUG_LOG("XMLHttpRequest: got error: " + e); - - dropXmlRequest(); - if (!gShuttingDown) { - self._startPepServer(funcType, deferred, functionCall, onLoadListener, function _f() { - let r = errorListener(this.responseText); - deferred.resolve(r); - }); - } - else { - deferred.resolve({ - result: -1 - }); - } - }; - - let url = conn + funcType; - let data = JSON.stringify(functionCall); - executeXmlRequest(url, data, onloadFunc, onerrorFunc); - - return deferred.promise; - }, - - /** - * internal function to start pEp server if not available - */ - - _startPepServer: function(funcType, deferred, functionCall, onLoadListener) { - DEBUG_LOG("_startPepServer:(" + funcType + ")"); - - let self = this; - - if (!gPepServerPath) { - DEBUG_LOG("_startPepServer: cannot find executable"); - deferred.reject(makeError("PEP-unavailable", null, "Cannot find JSON-PEP executable")); - } - - let exec = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - - try { - exec.initWithPath(gPepServerPath); - if ((!exec.exists()) || (!exec.isExecutable())) { - DEBUG_LOG("_startPepServer: executable not available"); - deferred.reject(makeError("PEP-unavailable", null, "Cannot find JSON-PEP executable")); - return; - } - - EnigmailCore.getService(null, true); - - let resourcesDir = exec.parent.parent; - resourcesDir.append("share"); - resourcesDir.append("pEp"); - - let resDirPath = undefined; - - if (resourcesDir && resourcesDir.exists()) { - resDirPath = resourcesDir.path; - } - - let env = []; - let envAppData = null, - envUserProfile = null; - let envHome = null, - envGnuPgHome = null; - - EnigmailCore.getEnvList().map(function(item) { - - if (item.startsWith("APPDATA=")) - envAppData = item.substr(8); - else if (item.startsWith("USERPROFILE=")) - envUserProfile = item.substr(12); - else if (item.startsWith("HOME=")) - envHome = item.substr(5); - else if (item.startsWith("GNUPGHOME=")) - envGnuPgHome = item.substr(10); - - env.push(item); - }); - if (EnigmailOS.isDosLike) { - if (envHome === null) { - envHome = (envUserProfile === null ? "\\" : envUserProfile); - env.push("HOME=" + envHome); - } - if (envGnuPgHome === null) { - envGnuPgHome = (envAppData === null ? "" : envAppData) + "\\gnupg"; - env.push("GNUPGHOME=" + envGnuPgHome); - } - } - - let isGnuPGOK = true; - - let stderrData = ""; - let process = subprocess.call({ - workdir: resDirPath, - command: exec, - charset: null, - environment: env, - mergeStderr: false, - stdin: function(stdin) { - // do nothing - }, - stdout: function(data) { - DEBUG_LOG("stdout from pep-json-server: " + data); - }, - stderr: function(data) { - if (stderrData.length < 2048) { - stderrData += data; - - if (stderrData.length > 0) { - if (stderrData.search(/PEP_INIT_(CANNOT_DETERMINE_GPG_VERSION|GPGME_INIT_FAILED|CANNOT_LOAD_GPGME)/) >= 0) { - isGnuPGOK = false; - deferred.reject(makeError("GNUPG-UNAVAILABLE", null, "gpg not found")); - } - if (stderrData.search(/PEP_INIT_UNSUPPORTED_GPG_VERSION/) >= 0) { - isGnuPGOK = false; - deferred.reject(makeError("GNUPG-INCOMPATIBLE", null, "gpg version not supported")); - } - } - } - } - }); - - if (!self.checkAdapterApiLevel("0.14.0")) { - if (!EnigmailOS.isDosLike) process.wait(); - } - else { - process.wait(); - } - - DEBUG_LOG("_startPepServer: JSON startup done"); - - if (!isGnuPGOK) { - return; - } - - DEBUG_LOG("_startPepServer: JSON server started"); - - gConnectionInfo = null; - - // wait trying to access the pEp server for 1 second such that it can open the connection - // and write the connection info file - - EnigmailTimer.setTimeout(function _f() { - self.getConnectionInfo(); - functionCall.security_token = (gConnectionInfo ? gConnectionInfo.security_token : ""); - - let url = self.getConnectionInfo() + funcType; - - let onloadFunc = function _onload() { - DEBUG_LOG("XMLHttpRequest: onload()"); - try { - let parsedObj = self.parseJSON(this.responseText); - let r = onLoadListener(parsedObj); - - deferred.resolve(r); - } - catch (ex) { - deferred.reject(makeError("PEP-ERROR", ex, this.responseText)); - } - }; - - let onerrorFunc = function(e) { - DEBUG_LOG("XMLHttpRequest: got error: " + e); - - dropXmlRequest(); - - deferred.reject(makeError("PEP-unavailable", null, "Cannot establish connection to PEP service")); - }; - - let data = JSON.stringify(functionCall); - executeXmlRequest(url, data, onloadFunc, onerrorFunc); - - }, 1000); - } - catch (ex) { - deferred.reject(makeError("PEP-unavailable", ex, "Cannot start PEP service")); - } - } -}; - -function DEBUG_LOG(logStr) { - if (gLogFunction) gLogFunction("pEp.jsm: " + logStr + "\n"); -} - - -function makeError(str, ex, msg) { - let o = { - code: str, - exception: ex, - message: (msg ? msg : (ex ? ex.toString() : "")) - }; - - return o; -} - -function dropXmlRequest() { - if (gXmlReq) { - gXmlReq.abort(); - } - gXmlReq = null; -} - -/** - * Establish connection to pEp JSON server and send request. - * The connection is kept open to allow for per-connection settings in pEp; - * All requests are queued and processed one after the other. - * - * @param url: String - the URL to call, using POST - * @param data: String - JSON object to send - * @param onloadFunc Function - onload function of XMLHttpRequest - * @param onerrorFunc Function - onerror function of XMLHttpRequest - */ -function executeXmlRequest(url, data, onloadFunc, onerrorFunc) { - DEBUG_LOG("executeXmlRequest(" + url + ")"); - - let req = { - url: url, - data: data, - onloadFunc: onloadFunc, - onerrorFunc: onerrorFunc, - reqId: gRequestId - }; - - gRequestQueue.push(req); - - if (!gXmlReq) { - gXmlReq = new XMLHttpRequest(); - gXmlReq.onloadend = function() { - DEBUG_LOG("executeXmlRequest: onloadEnd"); - processNextXmlRequest(); - }; - } - - processNextXmlRequest(); -} - -/** - * Process next request from request queue - */ -function processNextXmlRequest() { - DEBUG_LOG("processNextXmlRequest(): length = " + gRequestQueue.length); - if (gXmlReq && gRequestQueue.length > 0) { - DEBUG_LOG("processNextXmlRequest: readyState == " + gXmlReq.readyState); - if (gXmlReq.readyState === 0 || gXmlReq.readyState === 4) { - let r = gRequestQueue.shift(); - - gXmlReq.onload = r.onloadFunc.bind(gXmlReq); - gXmlReq.onerror = r.onerrorFunc.bind(gXmlReq); - gXmlReq.open("POST", r.url); - gXmlReq.send(r.data); - } - } -} diff -Nru enigmail-2.1.6+ds1/package/pEpKeySync.jsm enigmail-2.2.4/package/pEpKeySync.jsm --- enigmail-2.1.6+ds1/package/pEpKeySync.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEpKeySync.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,308 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailPEPKeySync"]; - - - - - -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailSend = ChromeUtils.import("chrome://enigmail/content/modules/send.jsm").EnigmailSend; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailpEp = ChromeUtils.import("chrome://enigmail/content/modules/pEp.jsm").EnigmailpEp; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; - - -const getWindows = EnigmailLazy.loader("enigmail/windows.jsm", "EnigmailWindows"); - - -const testMessage = { - "dir": 1, - "shortmsg": "pEp", - "longmsg": "this message was encrypted with p≡p https://pEp-project.org", - "attachments": [{ - "value": "VmVyc2lvbjogMQ==", - "size": 10, - "mime_type": "application/pgp-encrypted" - }, { - "value": "LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tCgpoUUlNQThNZGNTR0taTkJxQVEvL1NBUzZUTVlOOHZtUDFJZnoreTk4QUU1Wjc3QXZOck8vdHo5MFlNN21leldyCndhM0lYdjVXMTBrMnJ2dmZDSkpEQWlqMHE3Y3EzaUJlZ3kweGZHMVlkUzlPT3BoYTg4MjBRRy91Z3kwRGxjWk0KeCtZR3dPS2lpbUF2dWUxR2NNeUc4V3BTZ05aV25zeVBib2tUQXFVMlVKY09ReTdhRnd3cmhQZ0JJOTQzSWlqRgpyandYKzZVQnNwakpTODV5ZXVwbTVqaTR6OUg5VnBSRW5ZMkVmN0dEVHJudGVyRDZlTkhMbXh2djhhdVIyZytPCmZPVmgycytqTTVsOFZDTDBpOGhuVUZYYjZNUXZ0encrM3dwVUNDSTdoeTNhMEpocXdJWi9tWDc1VTVnS1VPVTYKZlVSWktJVWNZRS84OTZPRzh4Q0x4ZThqWW1ldnoyLzdZbEREbEd4ZHZvbUFuSkVJUThPTWY2VjBBc0ZZTHkwWQpIVSszWk9Vb1k1VTFEZE14Mlp4a3cxY1YxZFp0eE9wS1VsaTQ1WlNzOXM5bUpvVHNtaEtZSVhER1BYNXpKZHpYCm5sM05lbVJZNUZlR2ZuNktCOCtaV0RlZ3RtamtQaTI4b1VNTk5WUmd5bmVaRTRqemRiSTNobGNJa0RjZjhHbGYKSGg0S1laK294bVBYMWh6RWhHK0VSOXRIRTBsVWNmWGMvNWQ0a3pESnliZks2amt1SzZiUWh3ay95eVgyWk1tcApLQUJ4QUg2V2NiS2lDTEVlTWpJTlJCMk9ndkI1ZlJiSHVTU0s4Mk8zQWlSeW9vKzdQZWJIekwyMG04YmlPUlJ0CmhYQmFVUGVWUmRkai9XTTA5MlJXeVZ1SFNYcHBZNkJBSHFwUGNIS0o2YWtCV2RCanUrZ3lYelhhM1lmeitycUYKQWd3REs5Y2F4Uld5NFRZQkQvMFFJeW5KZnQwQjN3TTNxUXBnRnNWdFIvZ2ZDR2k2TGp1Y1NTMGRzQjZ2RVRETwp5ZGgyV3dXMzl4bTcxUHV2ck9GVk9oOTlRNUFaY2VIOURMVkxxdGc3Z0dGZ1pOWmQ2bVEyck5lWVdLNVluaW1NClEzLzRicTBIS2YvN3liNlJ1dm55UWlQdVNEUHdjUmNlaWhNN3V1blFZNzVhZ1pQVlNGWVplUk9OMHhrWHV5dVkKTk9NQWFnM3RXTCticEdScU1aTE9PRHhRZXArc0FNbENrbUdkZEtETFpkUnZndWRWaWw4dEI3ejVSUk44NVJjUAo0aWs5SkZ0SzU5YkkvdTdqbmdaaUhOSmkvcVNsd0lKMHRVZzlmMTd5OFFFNjRVc256aDhld2JFcThjcDVJd05BCm5FNFo3cjNDeEFVMTd3eXI0UytqTFd4N2tjempiNFcvUEEwVnBuTGg4bFEzRzAxR2Q5bnB6R2NSMVpPVWZkUG4KN0dSZ2dtaXFOb1Y4YUJvZ2RDaDdwOFF3MFRySFpKVzR4dytyajFaQ2poZWVSUEtMUExoVlBEMjVHVktIeDRCMAowMHF6MW4xM1YrSzRTNTF3VUNGT3Bra1oyK0J6MXF4TFNUemlvSGJSTk1aK0FRZmttM3o1WEhKM0kzMHlTMzR4CjlUTTM4MWpaK0ZhU09ybGc1eE1TRUttb1U3aFI1Nm5tU2RsL2FvaWpwMkZvZmdDM2RTZm0zN2pjWGMrTEhnd0oKaU9QejhacDVEQXZtWkdxL0Znb004eEZXSDc2TW5GK2RiUklOajJQYTdzQXZwTlNUMVM5dUl3V2JKNVhqVVdKbQo1V051Uk9Mc0VnNXFPVWdKaGdKU2RIUHBueVNka2ZieVV6c0hlK2VpM1oxeTB5L2hhbkpQbnpTMUhwVW9HdExzCkFSVjVlSUZRbnRmbWZMaTlFcVBycWZYMEMvSGxRYVp4U0lrd3o4dUMvL29acXJOZFMxRnhGUVpZcjEwdFNKalEKck8wVHl4SHlhUG5pMUd3Nkh5OThneXhsdU0wK1FnR0k4OFR6UTk5ZmU4ZmRUQW9ZLzVqcmZaRDk3V1BzQVFVNAp5eWRmQWtzOS90aUswd29ZSDJKdXgzakFKZ1VKNFBUZEQ5WE9OeWtnSXpNZWVxbHE4Zms0dExlVEVSeWRkZUpOClNwRVVwcUN4cVc2eUJzZEJla3ZQSnhpcWc4QjBJZ0dLNG01LzJ5UUY0QjZBMHp6SkRzU3JFN0V4OVY2YlBqOHEKK3NIbTZJUzZqdi9nYzlMNkhFOUhwOTBvMlNoT2ttcTVrV3VJVXU3Mzl5cmR5ejFVNDRPeUQwajJWS0VVOWZZNQp6Y2dwWkpnbHdXazU4WnU5dmlTanpuNUFLMW50MWRhTlRLYjZaUUJNUmMrWmowUU4yRW82RTBSNGRDV0Y0RUN1CmVFQXZHRGtVM3ZZdWFwa3E3cVM1ZUwwUXRXelZkRW1aUEV3UHdaWFFKUzlYSUhxU2hPcjMxSi91SXZoZ3A5VHQKRWZrWUdWclJDS3FsVkFzekE0dU1PR0NROWhxYlQyRERvbFNYSllyZVErSGZxalREMmhCR21RWFdVTnd6dEVNMQo2clFJOHJ2cW1rTkdwNDhsWnhLdVNkNnhGc1FQU2l2d09vU0NiaTZJakwvM3RPS0ZyUDNtM2tXdjVUT2JLN1l5Cmx0UFQwL013dW1LMmpiSVhVNy9PcTB4RWVNRnZPZTJPcmZRRkFCVVlwRDJwcnZpeWFUd09NemEwMW9PcUNVQlUKTUgzdVQ4OWtFMTRBaTYwYWRJaC9RUCtDSzlBSkM1WEFhakY4QmFkTEZJaGZoR0hJeTBTVGhlM3NOTnFKUEs3VApkbU9PRjFSTkIzbzVpNTFhN2xGejlkRzZTeThPWm43anBkTU9PMVd6SU04ODBKVit4RUxFY3dSUW1UczFjZGVSCjJSMm1WL0c0R09yQXJISmhBcE5STkl5dUd0NGpoT1FhUFM2bSsvWDJMSHNUTmFjc0ZWSlRaT296WldscG1XZngKK3RaUExDaC85QzJLc3pJT25PNnArRms3a2xCRkpsRE4vaVE5TlhZQnVWRThUTWdzNUxManhieGxYVk9TSnI5Rgpmd2VLeFJaa2FydlRMSXZzTmlCcnlkb1VlLzRLOTc0ekJYT1lLUDNlOXRINC95TjJWQUM4RGlMZFdTY291eHlzCmVpK2p1UU5KVVZ3M2tFUmJuc3BOdDMzdSt2cHc5R3NxZWl1dnFtUWw0NVZvUng3LzRFOFJQK2l0S3pxK3kzWSsKVHgwNDFZSUxhcVBtaHo1VzdXeEFwbjNMWUpuMHoxem01TGExOHh0RmIzT1NlT3RabTdpZTRXSUgvRERKNC9sZwpvRE5OaFZ1cTZ4Q3BFaTJydFZURk94S3JGRWZHakxPYmZkcjVRZmRZNmovUzkwWkpvTnVGNDJtOFlJbyt0Ny9tCnhNdGQ4YTM5WHFQMXp6Q25uK3RhUlo4MG5uSThhMXpDSk1lZzFPbmE3eGJDL2dhR29ialFBSlYvSVh5cTY1UlAKNVdKQVZLbkFScEl4c3IyVWZkWTZ4bGUwNWhRSnN0UUx5M01Nc2IreGFScjFxNnBnaHJLSlpWbnF6WDNJL1VBSwpmUjZkS3l0QzRuWkxoQjRGeUdRdHYwSWlEMnNOUDIwQU9Ea1lDVFphR2lsKzZQZk9YWEc5dmF0cXZvTWd0Q0R4CmdyRzZ4M21GOVVtYlJnSG5qa3BYVVIzQVo3empLNGVJU2xLVDFVR2tEQWlJdWFMMU5qcEsvWWpxbDZPUWNLUFoKR21vQmpObm5JbGJKNFhRRVdPenZyUUtVTm1ER0NZUWtLUE9JdnN6TnpjQWkvVFZ6RkNVYkFRRG95L2JEZWVjUgpGejhMdzR1STJkek15bkQ0ZUU4NDRtbVg4RTdSamduc1psTERmOHRjZVBnaHpydzI0TE1ScXpSRU9OTE5CVlFkCmw1MDJyV1hMR2ljL2pVQVFyY2toVTA1Qk1leDNreDJtb0doVzQ4OVFZWTJTU1dsaEh5RTB5N1A4eVloRTF2ZHMKZVk3SWJEbXZrQjVhWDFyeHBPQkQ5NHlKQnpUdE5NVnMzaTl0Zi9BQ2xQbGpDSCtBZEw4V2tYRzZYMVVFWWV2dAp2cHBHMG1NR0N0WEZnL2pEZkxuZGZQY3A2SlNjK0RBcGFVVndLR0kvQnd5QnBHdG5pU1NOalBVK3hhRVhvZWNmCkJSdEd3dmltcDBPS1pERndwWWgzdkpQV01GUE8rTlVWRVVxcGQ2ZWNsZng1SHhKMU1TRXVIWjEyQlpMNEdhREwKdnFDV0dFOTFoOEcxeEgxb1ZkdUZXWitzdXJIMEZjZHE2bW9nNG4vL09pVlUzWm5pb0dHWEpFWmcyUVplQ01BMgpPR3B5Uk9XVzJUYzVYZWYwL3BoN3lSVXdiQlB3VjhIbVpHVlBXUHB1M1FIbWhPR2t2RHE0SHJhWEorZ3Y4bFpQCkg3SlNISWxDRXAzNnJVanJ6UXdNd3VVQ2JOMWViMW8vQ3BRWEhEbThnV1RFMllIODYzZjV1UzhHNjdIYTQzWWQKK2dHV3lwVjA1VjUvVVVQTDlmQi9hVWk3N2VxUG1qaTJRekFRMWNIZENRYzJ0Y2dXc0tlbU85dWZCcWFmSXlpbAoyM2NFM0p4dlJTRlVPWjJnRkRpYVNaVWgzL2tLQU1aZERIWUZ3U1BOMkdhY1c5ZEI2SEhKWDZQS2YrWXJPcUJ6CjN1RDNoN0crZ2tUS1BjY29wcXBtdW5FR0hZeGZWZjBlN1RRRWVURk1FS2c3VUFMamlLVnZNdU1aV21ML3VieUIKZ0dQWW9yMDgyekhSUE9PajJ6RUNiUERZam5URUxEWUNzakVzMVlFLzMwdTBVRFd3dnBQajd0UDRDeGhYTjRoVwpSYlRDaUJKUjB0ZVZOWGFRemJwMmhSSXJ6YkdhNWZVMC91TG1PTUxhTlpZaEhrQkp6SVRHYU1YdU1tM2hJeHpuClB1anhtazlNaEhJY2t0RDVTNFVpbklyYUZUdVlrUTZOOUlUL0pmeGQ0bHU4SldjUUlsaTZiZjI4SmtYSzZ3TFMKY3kweDdDVWJkbUtsYTUzVnpNeFhQcUsray9xL2MxV3NibU91K1pRTlBHTnBKQ2IzQUlPYVM4V1NHYmljNkY1TAphVmhKb3RveUxtelY5b0J3bzIyQVA2eENlVkVUcERhaFJJTDdHTGczRUFCbTV6VDhqalc2eFZFS0FyalJEb3I3CkR1OFFPWmdhY0JBNWVORVAzY0d1ZUZrc2plSW5aUmVIbEY5M2FDUGhkNTRUTHFmTXNrQ2xKN3FuaVI5UlBKNnkKZUNBSFRGS0ZRQjFCM0lEWElmVnlkZ0UrMWVHYU1yQU5uTG1oc2F4TjFXTUtsN0U5dmRkVkxPczN4UTRrMWxsNwozZWYweTllWnJ6TGl2Y2tSRmdseVI5SWRiRXlVOXdHVktXWlVRWTRtRnZFZ1hpandQN2JsazUrRDgyMHpCemN3Ci8yakw3TGp6dzkwdkV3TFo5My91RVA4cmZQTXVZOXYvQWJIc3JCem9lMFpmNXEyalJUMG81djRxeXVJS0pIakcKZi9xcUs5bTZydmgyY0IzSVJ1QWFmSUlLZDNMYlR3UkdXWlNseFdEY2kvR1NRY3VmNWRFVVNpMFRqdGhXdEx3bApVRGErcGlIQVZmVm5td3hEbUd5QmJjNFJNbWtPa09razB4K2RMVGllb2c4RCt0eExsWWhWNU1ZbjNqU0JTQU9OCitZRTRCaFVTWG1yU0FtUXdmMS83dHl3M2JMb1VvbjRYbmhVVG1uOWtXTUo3Q1VMY0I5RWxoQzRiWG1aTytYTk8KQzVVb0o1ZUxySDRYTW9PU21WbDZ6S2lURVZRUGc1VGhDWUxpZ1V0MFhaRzJ0cUpqd0ZkNHlybW5XcSsxaisyRgpHbEVYejM0aGNiVW5xOFN5elFKVnNVL3JFMml0cDlTQWR4QUgvWVpRQmVJSlFFQ1huMjhEZTJOLzF4N29tZlBZCkcvMDNyemtXcjNxRHJkV1B1cTZoYWgxa1M1NHVDTEFCMnhUYmpyTW1mVEd2cTN4YytPTlpDUVRyU214Y25Pa3oKZStjQUFLc0JoSU1VZyttSkpLd2orUDZKalAxVnBzNmxOOThXbUdxWFB5UTgyUnR6TkZQUlRidVczSjZXd2dkdApLaW5xKy9xOHdKMVpHSWRCWW1vUlM1SUZRYkl1VnNFak9hZGhNY0JaQTExaFAzVUFUS0FlWVdrRXVaQktwSnN1CnAxVTAyTmJvbmlZSG5oRnFHYjFBQWcrNDlHVkNyYmpwVnBvNGx1NjVxYy9Ua0hjYVlIZExnY2dtK0RFbzNQSEwKMnpJclRjQ0IzcEUxU1FzR3Y2M0M5djEwT0xpNW1qNGVwbGNnQ0h0VjF2NTNrK2VXYmlpYmhRVlQ0c0JkZjFqRgpPdDhmVm51Ni9pbTRLMG1QZEJON2tjS3B5MlNRUytYRnlEaHlRK0FieEVWeHF4azIwZ3hmY0lheUNYQjErVE5FCmovMDQ3NXU4YWdwTWIzdk56aTRtR2U0K0d3aUt4ampnZjBTWXp5Tk45Z09EVjVhTVRtTkJYMFpvemZKS3hPM3IKNi9CZ0lYZmx1aFVhVUc0MnAvSUhNOEh6OFpwa2p0WmZJV2tHUi82elZPb25iVUZLa1lLYzJuTjdHaUlnY3RrNgpWSHN3N0NnNG9QbzNqYk1vamp4QUpSQVg0SlBFWEEyZFYvMTBSZkhZNkQ2K0Z2Z3VrRmVFdmdlQXEyMjhHcXNkCmh6S0hYdkc2THNiTkVPY3p2ZnlURFZwVVoxa2Z1SjVuWjlLOGJTeE1yZjhxd0d0c2UwdldzeDd6SDJIZTV2a3AKaGhuWkYzSVZnNWRQMTJ0T1U3cEtIbUZqNHBrVVRSd0JMMzBkUzBjSE1EWGx3eUQweVBmY1U3M25tMVRjN0FRSwo2b21JUWo5OUhDc2dFV3JYUjc4WmFuSTIvOFErSFlPWlcxaEdRZVBtNExtaElsK0hCeUt3dU9RN0hyZVNONDMwCnU4NmxhbWpZei9IeGV3STJ1VTdXYXVIOGs1a09yTkVCYVJkSTh4NVhGL3M5elJLc0NKdlZ2K0g1d0VVdXFSMnkKbzVLNk85dE85anloSTFublp5SXJoZHE4UTFWUTVaQk5DeVFYaE1td2N6cFFwVDJGMHAxSHBHQVFOSHg5cU9DUwpFbTIzaDFpQUROWGRBeXpoZkg0cHlIQmNSWGRrR3BBaVhWUHIzTi9iMGtJS2c3VXkyVkFjYUhMV1cvTWE1cmhwCk5RVUJJRGtUQUdLSVdGdERSbGNWR1RBcUFlaWlFYjFFckpBb0xVc29nTHJzWEZyei9lSDNNQm0rcGkxSnZUcmkKQWVXM3pLZSsxcW9qMWlkanRiems4TjZYTG1ZRjhEMlZZYlliYW5JalNLeHhTRDkvMkFXNWhtNU9pTUZCNkw3YQphQ2QzNzgzZUNKM0NPY3N3TzJtSUFLU2lmK2NtMDN5UWJieU9XMG96RXRYUC9kLzdudW5WcEVIUkpjeXhyb2svCkxnZ09WWlhuR2swOS95LzhIdFZvOUR0MmttWFFtWkIzRjdUeThpRzBhR3ZhaEhqQ0NZU2hTWmxMVGMvalBvN3YKRlp4UmVqVEtxYTZoazF4Sm9rR1IzVjgwRWRhZGhNRVA1ekJvYWl2VmF6VGI5NEtiaHhldzRUME1HaWZ2NngzUgpuSktjc09LYVdSOERyR014OWZDVkF4a1JIR2hSTEQwWm5MSm9DTXc4YjBqWUpuZTFjNXI4Q1dtRytLVk1jK3g1ClFkd3JjTnZ4VkZsbmdFdDQ3UGdMNGkzcEwwZ2o4OXQwa2lGV0c2SmdlTzJobEpCS2xuZ3hYVE52ZW5Dd1JKcUQKWDdNeTZVQllvdU1JV01EZ3BHeHFxMEtaQ2ZPOG5rMm1UU2tpbXNFdFRlKzlMYlh6eVk0QUVJRjVFZGk5NWJkVQpYL091NFhLa1FTY1NBWFpFT2NlbU9RaTRjT1hXMUNjOFd3T0JtTzlmQVBXWElPTjVhM3lucXdlcWZCZWxtVTUxCmxEczlITC8vRHVzMTYrWUR1NTM0MmJmVFpiYzF4K3lzYklzTUIwYW5hUDUvTnNiVE5yUTV5YXR6MWFMSGhiU3AKSFVXYmNXbWdoLzdrMnI0bXZUNld0WCsvLzBubnNIWlNUZ0ExblZNSW9Bei9Sb1FTU2dxNVNpZGE2T3ZrMXBscAo1c3VUdmRhNC8rSGxBME1WYWVHQW1aUFFPTS9VNnpJN25Sb2xyVGkxcm0yV1RoQ1UxalorYXB5RTcyOEhYRTVSCnd5bHVDblU0K3NDbVd2ekQ0bWF6VExIQ0g3cElWbHAySTB5akVmQWFmbWZCQTRCVXlMTUlVRmJtN05BVk5ueU4KMmZXSlJYK3JwRS81WWtrMkR5RVU4blVlcE9xbjBvaS95dTdBV0szOVN6R0R5TVRNSmR5YnpPK0Rneno2MURUYQp5ZGVvSStibzUvZklwWkNMVytKS1orai8wS0dHMENmZkNacWtVdk9wNjVrYjZmRWtBYnZENFNXdThOTWVSWHBBCms0Y0dRbW00cUducWcwYzFhL0h0d0c3VUN4NFRzU0V4SUdRMU5rRllwa3pOWUxJZUFQZ1FJaE12TkRSczROVzAKRk5BTUZEU25TcmJKMTJ5WDlEazZoZEI3c3FQQU55bTZwNXFjYmtvUHhUczZnUlV6aTk1clR3MnJ4UlhCQ3lSdQpScTI0MDBqWlRZQ2tFZWpBUDFNYjdyY2J0ZnJUbTBJTUs2TGZIaXUvZHZheUdUcUMrTkhXYkhQeERidzM3bkJsCldnblNsY0VRckhRdjUvSVpncFBJUDZacFFiWnZmNW1ZdVJTSC9rWDJjbmRPVHAzOEMvM3lJclZuRXNiN3o0VngKSGl6T2dlakttRjdMWU9HN3RsY29NT0NGODVsMyt3cWxWL2xJRlhGTGZTaHMvMzU3UmhvajJRUDVBSkJhZmVyOApiTUFtdDM2dDlmVGkzall4ZXlZSnhCSHF2blJRcU1ESTh5dVJ4emRmQlQ0WEs3L0JyckVmOUNEUGhkTk9tNS9PCldZZ25NY0x2RnJvTkFPK3dIR1JXenhsM29MV3dUVmRvblVaaENEcGJtN0hQY0xISVF6ZkRlakNlUUtZVytwcGYKQ0JhY0p6UEpSUURQQnBBZ2s4MXA4K3A4ZTJTS1QzVHUyYUt1U3BRUHhPTlN6RTk5c2Zla0J3blNFZGt0NElDbQpQK2VIV1lsczJDR0NGS2dEZ1ZOUWFiU21UWTJmalR3SklidGZNdGdLNjJBRjZDTUl4amJBVXV5c1h2V1U1VHpOCjIvdlhaWWN0aTVFSWRhTGdOOVB1ZWNYc0VUVEZqRlp2OW94UkJLVCtLQUFZS2VJVUQyZk1BcnppdDd0VWZGQXIKbzVmM2FPS2RoRVZQT3pjR1AyNnh6YTZySE5BTGYxdldPVktrcmZ4b0w2VGxMUGh6dlZCTStYYVZ3aTNvTlNkUApKd25XNFBUb1dnak94bGFuTkV1MjNrczVCYVFJUXE3MlBJTWVhRDBLTC82UFdyeUdPQlU2ZEFBb0FMZmJWbWdkCnplNFF3OEd6ZWdRQlpqemxlSWY5SFN6emFwRWFNdG1Pc0tndkxuN1RhMlhaWk45Nmt3VTdoTHR5QStGMlBlSkcKUDhUMnR0V2I5VUg5a0ZxZ0lnY1FTWUxWSjdXV0pnT3Jaa2pyaVNpU1NvSW1XbzNWSlZnLzZ5andWNVp3VmNsTAp4Uks1eE1hSHlVdUhJUHp0NjY2SUF6L3JRZ2NETHl1M2ZDTzhqRVBrckRrS1k5M05BSnFWWjJpYThZeFFCVFVYCnlXOElLdlZGbmlyc0NaYUNpWUFFY1FXZkViUURlVHJhNlprSUJlWHNtRWRWNWhza2VaUjhNUzNIeHZDYWxSdFQKa3NHZ09mU3p5cEg5U1lOMCtudWtVcVdGMFBSY2tiakcwaE0xVWdRYlVWNWlDa3hwSmlKWkpRVjBxZk9KaDFLZQpsRkdIdU5YMjd3VzYvQWY1N3ZrdDB0UnVYaGpYdnlvQWE0eVFTVDV2RmpTaHFKK29DTnhadC8ydTFaRDlKZVhvCm5ONEQ5cDJKS3J6YTlWWWREaW00NjZlbEtDS1dGeTdULzhEdERreGFWbmRTRlhoQ2VCZmFNSG5oRURpa1pWYkYKNUlYL2JDZS95SVZJWDc5aGFlYlI1TnVSMTNFUkE1WVM0QS9CSlRQbUl1Y1p0YmxXdUlSNlF5eHBMdUFZY24zUwpTNVgwZUViTXZ2QTdCUEJFQTV2OWZIRndvMzhlQXBzSVNxM2JMUzRiQXA0d05jOHpnWGIyK2FGY1U4SUc1VmkzCmM5YXBpWEF1UWg2bmxVZXJJUmNqdysvNjE1NnVEbG16NjUxZ3ZRQTlsb1hzdWlBL0xMZG9HaFNHRTZiTlFCN0cKMFBJUFlpZWorenduenppaHlYbWpMWDdFUUpWckQwcE15MEM4WXZ6RTZyOEg1UHdwQzRFcUZxSWdBZTcvaHRldQp0bTJ5Nkk5QXBrMDBiWUYzeU9JZzFkNnFORTUrVEJuMWIyRThGcFZEd1FHU1VjZy9LdE1Cc2pJcEY0UWdNMzd3CittQmtMY1c5L25vVXJPS0sya3ZyaFEraUlrZ3ltemJBdmVPZGgvY2xMUGU3TjBiQ1cwSzRNN01XblBnK3p4V2IKM3B1QWx6bGdHY2RRaVFPaDlFekd1dS9xeXd5YlNac09TdVRVbHk3cEpGT0VqM09LdDlQdTY4UTRmeGhBa3FGMQpvUWozZmxnaTNkRGhpeU82SnNPY0h1d3ExYldoaTNrbnI2cHFKbTgwMDFWZ3FhTVFQaU1MbXlwWmF3SUl6YXd3CkxoTVoxaHZaZUxxMlFDV0xuZzRVUjk4cisxUHZjYkJTQUhHQlZXRVY3cHpCSklYdmpEWlg4RG9raDZhQlFlSGIKUVduUm1jNFhqcWFoMkRFRGc5aUdRTk9JSFY0NzFmVDFEck9FRnNXMXZUTEk2VC9lenZxYWRlbkMwaGUxY2g3eApEbTBxVk9maS9NbGhoY0w1VVF5dDBkK0lsNXdDS1h2Rk0yaDNGZTFwM01sTUFwMlJxbHZzK2xUcm1GUkowMDRhCkpLOTd1Qlk2ZmVUL1NHYjVjZUIvR3lCck1mc1NBWWhTaURQY0RwemkvdFMyWksrYzhHczFBK011dXhmcWxQdkcKVzdLZk9WQUxBamNyaWZ2QlErcjEzdTRBSUVDWU5rMVJuYXNHdWU1dGd6dVlLaGpmTGJJTFRkYVBDazFoS2taSgpreVpteThndUtVRFpOMVUxdjhIWEpxdU9aNUpFYnR1SHdLNmU0Zk13Y0NQWmZMcllHUkxRY1dzRjg0akdsQ2c1CmZYdG1XT2huN084emxTS1JJdXhSdTk1bFEwakJoRXh1OFhZMkgxbktZQnlFWjBGem5NVDBsWkJLaytRRkVlVEsKUTFGY2pka1Z2NllaWTFJaU1kamo2eDJseUV5Q3F5RVFQUEYrYlZVVDY3b2RKTUpOTUlPcFRicGRCaHo2K0srMwovTmhzc01SWkhzWnlFYy9MS2JtUVhaYXhTVGpNbnc1c1JjMkVzZjZCdXkvNTRpcWYzZXRaYW9GQXhsVXc1UGZrCnk4cTVvUXFTcGRCZjdUUkpmZDU2dlhNckFqTjJQYUJPdU56cm9heG1FQXNhV3pjVDdRZ1pkTEFDbC9xNFZGN0MKL0l4Y2NkZ2N0cmhSWk1hRmsyQTlvMThJc093QlBMMkhnZUI5K3NhSWY3ZG1KWGpObHNQQjNrRytLUDFxT2VOYwpKbVdLeGtqSWRXWkRGazZIMzFYb3dScCt0ZDhzMG1SQ0QrdEpQMmsrblJVWnBjeXEvNERQaGNzaVFqdzMzKy9yCkR0Q3UwUXJ6MkRMeVVsaDdCUFpVeXluc0lZREh5NG1QakQ4enVFaFU1N25jell1eGdkelFNUHhiMHpROExuRUYKOFN5dnNnPT0KPVdvQWYKLS0tLS1FTkQgUEdQIE1FU1NBR0UtLS0tLQo=", - "size": 9170, - "mime_type": "application/octet-stream", - "filename": "msg.asc" - }], - "from": { - "address": "enigtest@brunschwig.net", - "fpr": "35639B7D397A4737F11C6160CA45EF9C1C17AB90", - "user_id": "pEp_own_userId", - "username": "anonymous", - "comm_type": 255, - "me": true, - "flags": 1 - }, - "to": [{ - "address": "enigtest@brunschwig.net", - "fpr": "F871CDB8990483FD6B305B8F319B7AE82E21E970", - "user_id": "f827eb96-2f4f-11e7-8fa4-4be0b4159ac2", - "username": "Patrick Brunschwig", - "comm_type": 56, - "lang": "en", - "me": false, - "flags": 0 - }], - "opt_fields": [{ - "key": "pEp-auto-consume", - "value": "yes" - }, { - "key": "X-pEp-Version", - "value": "1.0" - }], - "enc_format": 3 -}; - -const keySyncMsg = { - "jsonrpc": "2.0", - "id": 2002, - "security_token": "mmhqlMwmlFBwd5NO3UK7jD18FRs7wW0rm5KetnSe", - "method": "notifyHandshake", - "params": [{ - "address": "enigtest@brunschwig.net", - "fpr": "7A0D51844B9C06849E3C313F9B299A39D1CCD0BD", - "user_id": "pEp_own_userId", - "username": "anonymous", - "comm_type": 255, - "me": false, - "flags": 0 - }, { - "address": "enigtest@brunschwig.net", - "fpr": "F871CDB8990483FD6B305B8F319B7AE82E21E970", - "user_id": "fcb950d2-3931-11e7-a0bf-97c07b2bb40e", - "username": "anonymous", - "comm_type": 255, - "lang": "en", - "me": false, - "flags": 0 - }, { - "sync_handshake_signal": 1 - }] -}; - -const CRLF = "\r\n"; - -var EnigmailPEPKeySync = { - - - notifyHandshake: function(pepParams) { - EnigmailLog.DEBUG("pEpMessage.notifyHandshake()\n"); - - let myId = pepParams[0]; - let partnerId = pepParams[1]; - - let uiLocale = EnigmailLocale.getUILocale().substr(0, 2).toLowerCase(); - let useLocale = uiLocale; - let supportedLocale = []; - - EnigmailpEp.getLanguageList().then(function _success(res) { - let deferred = PromiseUtils.defer(); - EnigmailLog.DEBUG("pEpMessage.notifyHandshake: got language list 1: " + JSON.stringify(res) + "\n"); - - let localeList = EnigmailpEp.processLanguageList(res); - supportedLocale = localeList; - - for (let i = 0; i < localeList.length; i++) { - if (localeList[i].short === uiLocale) { - useLocale = localeList[i].short; - } - } - - return EnigmailpEp.getTrustWords(myId, partnerId, useLocale, false); - - }).then(function _displayDialog(data) { - // open trustwords dialog - if (("result" in data) && typeof data.result === "object" && typeof data.result.outParams[1] === "string") { - try { - let trustWords = data.result.outParams[1]; - - let win = getWindows().getBestParentWin(); - let inputObj = { - supportedLocale: supportedLocale, - locale: useLocale, - trustWords: trustWords, - dialogMode: 1, - ownId: myId, - otherId: partnerId - }; - win.openDialog("chrome://enigmail/content/ui/pepTrustWords.xul", - "", "dialog,modal,centerscreen", inputObj); - } - catch (ex) { - EnigmailLog.DEBUG("pEpMessage.notifyHandshake: caught exception: " + ex.toString() + "\n"); - } - } - - }).catch(function _err(err) { - EnigmailLog.DEBUG("pEpMessage.notifyHandshake: caught error: " + JSON.stringify(err) + "\n"); - }); - - - }, - - - /** - * Convert a pEp message into a regular MIME string - * - * @param pepMessage: Object - pEp message object - * - * @return Object: - * - data: String - message string - * - compFields: nsIMsgCompFields object - */ - mimeStringFromMessage: function(pepMessage) { - EnigmailLog.DEBUG("pEpMessage.mimeStringFromMessage()\n"); - - let boundary = EnigmailMime.createBoundary(); - let msgFormat = "plain"; - let now = new Date(); - let composeFields = Cc["@mozilla.org/messengercompose/composefields;1"].createInstance(Ci.nsIMsgCompFields); - composeFields.characterSet = "UTF-8"; - composeFields.messageId = EnigmailRNG.generateRandomString(27) + "-enigmail"; - - let mimeStr = "Message-Id: " + composeFields.messageId + CRLF; - mimeStr += "Date: " + now.toUTCString() + CRLF; - - if ("enc_format" in pepMessage && pepMessage.enc_format === 3) { - msgFormat = "pgpmime"; - } - - if ("from" in pepMessage) { - let m = this.createAddress(pepMessage.from); - let addr = jsmime.headerparser.parseAddressingHeader(m, false); - mimeStr += jsmime.headeremitter.emitStructuredHeader("From", addr, {}); - composeFields.from = pepMessage.from.address; - } - - if ("to" in pepMessage) { - let m = ""; - for (let i of pepMessage.to) { - if (m.length > 0) { - m += ", "; - } - - m += this.createAddress(i); - } - - let addr = jsmime.headerparser.parseAddressingHeader(m, false); - mimeStr += jsmime.headeremitter.emitStructuredHeader("To", addr, {}); - composeFields.to = m; - } - - if ("cc" in pepMessage) { - let m = ""; - for (let i of pepMessage.to) { - if (m.length > 0) { - m += ", "; - } - - m += this.createAddress(i); - } - let addr = jsmime.headerparser.parseAddressingHeader(m, false); - mimeStr += jsmime.headeremitter.emitStructuredHeader("Cc", addr, {}); - composeFields.cc = m; - } - - if ("shortmsg" in pepMessage) { - mimeStr += jsmime.headeremitter.emitStructuredHeader("Subject", pepMessage.shortmsg, {}); - } - - if ("opt_fields" in pepMessage) { - for (let i of pepMessage.opt_fields) { - mimeStr += i.key + ": " + i.value + CRLF; - } - } - - if (msgFormat === "pgpmime") { - mimeStr += 'Content-Type: multipart/encrypted;' + CRLF + - ' protocol="application/pgp-encrypted";' + CRLF + - ' boundary="' + boundary + '"' + CRLF; - } - else if ("attachments" in pepMessage) { - msgFormat = "multipart"; - mimeStr += 'Content-Type: multipart/mixed;' + CRLF + ' boundary="' + boundary + '"' + CRLF; - } - else { - mimeStr += 'Content-Type: text/plain; charset="UTF-8"' + CRLF; - } - - mimeStr += CRLF; - - if ("longmsg" in pepMessage && msgFormat !== "multipart") { - mimeStr += EnigmailData.convertFromUnicode(pepMessage.longmsg, "utf-8") + CRLF; - } - - if (msgFormat !== "plain") { - - if ("longmsg" in pepMessage && msgFormat === "multipart") { - mimeStr += "--" + boundary + CRLF; - mimeStr += 'Content-Type: text/plain; charset="UTF-8"' + CRLF + CRLF; - mimeStr += EnigmailData.convertFromUnicode(pepMessage.longmsg, "utf-8") + CRLF; - } - - if ("attachments" in pepMessage) { - for (let att of pepMessage.attachments) { - mimeStr += "--" + boundary + CRLF; - mimeStr += "Content-Type: " + att.mime_type; - if ("filename" in att) { - att.filename = att.filename.replace(/^file:\/\//i, ""); - mimeStr += '; name="' + att.filename + '"'; - } - mimeStr += CRLF + "Content-Transfer-Encoding: base64" + CRLF + CRLF; - - mimeStr += att.value.replace(/(.{72})/g, "$1\r\n") + CRLF; - } - } - - mimeStr += "--" + boundary + "--" + CRLF; - } - - return { - data: mimeStr, - compFields: composeFields - }; - }, - - createAddress: function(pepUserId) { - let m = ""; - if ("username" in pepUserId) { - m = pepUserId.username + " "; - } - m += "<" + pepUserId.address + ">"; - - return m; - }, - - sendMessage: function(pepMessage, listener = null) { - EnigmailLog.DEBUG("pEpMessage.sendMessage()\n"); - - let msg = this.mimeStringFromMessage(pepMessage); - - return EnigmailSend.sendMessage(msg.data, msg.compFields, listener); - }, - - - getTestMessage: function() { - return testMessage; - }, - - getTestKeySync: function() { - return keySyncMsg; - } -}; diff -Nru enigmail-2.1.6+ds1/package/pEpListener.jsm enigmail-2.2.4/package/pEpListener.jsm --- enigmail-2.1.6+ds1/package/pEpListener.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEpListener.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,225 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * This module serves to integrate pEp into Enigmail - * - * The module is still a prototype - not ready for daily use! - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailpEpListener"]; - -const MIN_PORT_NUM = 15900; -const MAX_PORT_NUM = 15991; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; - -const HTTP_OK = "200"; -const HTTP_ERR_BAD_REQUEST = "400"; -const HTTP_ERR_UNAUTHORIZED = "401"; -const HTTP_ERR_INTERNAL_ERROR = "500"; -const HTTP_ERR_NOT_IMPLEMENTED = "501"; - -function PepListener(callBackFunction, securityToken) { - this.callBackFunction = callBackFunction; - this.securityToken = securityToken; -} - -function getHttpBody(req) { - let i = req.search(/\r?\n\r?\n/); - if (i > 0) { - ++i; - return req.substr(i); - } - - return req; -} - -/** - * Create a HTTP resonse to send back - */ -function createHttpResponse(statusCode, messageData) { - let dt = new Date(); - - let retObj; - let statusMsg; - - if (statusCode === HTTP_OK) { - retObj = { - jsonrpc: "2.0", - result: { - outParams: [], - return: { - status: 0, - hex: "PEP_STATUS_OK" - } - }, - id: messageData - }; - statusMsg = "OK"; - } - else { - retObj = { - jsonrpc: "2.0", - error: { - code: -statusCode, - message: messageData - } - }; - statusMsg = messageData; - } - - let data = JSON.stringify(retObj); - - let msg = "HTTP/1.1 " + statusCode + " " + statusMsg + "\r\n" + - "Content-Type: text/plain\r\n" + - "Date: " + dt.toUTCString() + "\r\n" + - "Content-Length: " + (data.length + 2) + "\r\n\r\n" + data + "\r\n"; - - return msg; -} - - -PepListener.prototype = { - - QueryInterface: EnigmailCompat.generateQI(["nsIServerSocketListener"]), - - reader: { - self: null, - - onInputStreamReady: function(input) { - let sin = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); - sin.init(input); - let requestData = ""; - - try { - while (sin.available()) { - requestData += sin.read(512); - } - } - catch (ex) { - EnigmailLog.DEBUG("pEpListener.onInputStreamReady: input stream closed\n"); - return; - } - - EnigmailLog.DEBUG("pEpListener.onInputStreamReady: got data '" + requestData + "'\n"); - - let responseData = this.self.handleHttpRequest(requestData); - - EnigmailLog.DEBUG("pEpListener.onInputStreamReady: sending response '" + responseData + "'\n"); - - this.self.output.write(responseData, responseData.length); - this.self.output.flush(); - - let tm = Cc["@mozilla.org/thread-manager;1"].getService(); - input.asyncWait(this.self.reader, 0, 0, tm.mainThread); - } - }, - - onSocketAccepted: function(serverSocket, clientSocket) { - EnigmailLog.DEBUG("pEpListener.onSocketAccepted: New connection on " + serverSocket.port + "\n"); - this.clientSocket = clientSocket; - this.serverSocket = serverSocket; - this.input = clientSocket.openInputStream(0, 0, 0).QueryInterface(Ci.nsIAsyncInputStream); - this.output = clientSocket.openOutputStream(Ci.nsITransport.OPEN_BLOCKING, 0, 0); - this.reader.self = this; - let tm = Cc["@mozilla.org/thread-manager;1"].getService(); - this.input.asyncWait(this.reader, 0, 0, tm.mainThread); - - }, - - onStopListening: function(serverSocket, status) { - EnigmailLog.DEBUG("pEpListener.onStopListening: Closing connection on " + serverSocket.port + "\n"); - }, - - /** - * handle a HTTP request and return the HTTP response message string - * - * @param requestData - String: HTTP request - * - * @return String: HTTP response - */ - handleHttpRequest: function(requestData) { - let responseData = ""; - let obj; - - if (requestData.search(/^POST/i) === 0) { - requestData = getHttpBody(requestData); - - requestData = EnigmailData.convertToUnicode(requestData, "utf-8"); - - try { - obj = JSON.parse(requestData); - } - catch (ex) { - return createHttpResponse(HTTP_ERR_BAD_REQUEST, "Bad request: no proper JSON object."); - } - - try { - let tok = this.securityToken; - if ("security_token" in obj && obj.security_token === this.securityToken) { - let msgId = 1; - if ("id" in obj) { - msgId = obj.id; - } - - if (this.callBackFunction) { - let r = this.callBackFunction(obj); - if (r === 0) { - return createHttpResponse(HTTP_OK, msgId); - } - return createHttpResponse(HTTP_ERR_NOT_IMPLEMENTED, "Method not implemented."); - } - - return createHttpResponse(HTTP_OK, msgId); - } - else { - return createHttpResponse(HTTP_ERR_UNAUTHORIZED, "Wrong security token."); - } - } - catch (ex) { - EnigmailLog.writeException("pEpListener.handleHttpRequest", ex); - return createHttpResponse(HTTP_ERR_INTERNAL_ERROR, "Internal exception."); - } - } - - return createHttpResponse(HTTP_ERR_BAD_REQUEST, "Bad request: unsupported HTTP method."); - } -}; - -var EnigmailpEpListener = { - - /** - * returns port number or -1 in case of failure - */ - createListener: function(callBackFunction, securityToken) { - let serverSocket = Cc["@mozilla.org/network/server-socket;1"].createInstance(Ci.nsIServerSocket); - - let portNum = MIN_PORT_NUM; - while (portNum < MAX_PORT_NUM) { - try { - serverSocket.init(portNum, true, -1); - let l = new PepListener(callBackFunction, securityToken); - serverSocket.asyncListen(l); - EnigmailLog.DEBUG("pEpListener.createListener: Listening on port " + portNum + "\n"); - return portNum; - } - catch (ex) { - if (ex.name === "NS_ERROR_SOCKET_ADDRESS_IN_USE") { - ++portNum; - } - else - portNum = MAX_PORT_NUM + 1; - } - } - - return -1; - } -}; diff -Nru enigmail-2.1.6+ds1/package/pEp-nonfunc.jsm enigmail-2.2.4/package/pEp-nonfunc.jsm --- enigmail-2.1.6+ds1/package/pEp-nonfunc.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pEp-nonfunc.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,176 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * This is a dummy dummy module for pEp - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailpEp"]; - - -var EnigmailpEp = { - - getPepVersion: function() { - return null; - }, - - getPepHomeDir: function() { - return null; - }, - - getConnectionInfo: function() { - return null; - }, - - getGpgEnv: function() { - return null; - }, - - - registerLogHandler: function(logFunction) {}, - - encryptMessage: function(fromAddr, toAddrList, subject, messageObj, pEpMode) { - return null; - }, - - - encryptMimeString: function(mimeStr, pEpMode, encryptFlags = 0) { - return null; - }, - - decryptMessage: function(message, sender, to, cc, replyTo) { - return null; - }, - - - - decryptMimeString: function(mimeStr) { - return null; - }, - - getIdentityRating: function(userId) { - return null; - }, - - setMyself: function(idObject) { - return null; - }, - - updateIdentity: function(idObject) { - return null; - }, - - - getOwnIdentities: function() { - return null; - }, - - - getTrustWords: function(id1, id2, language, longList = false) { - return null; - }, - - - trustIdentity: function(idObject) { - return null; - }, - - - resetIdentityTrust: function(idObject) { - return null; - }, - - mistrustIdentity: function(idObject) { - return null; - }, - - deliverHandshakeResult: function(partnerId, resultValue) { - return null; - }, - - - getLanguageList: function() { - return null; - }, - - - processLanguageList: function(languageStr) { - return null; - }, - - - outgoingMessageRating: function(from, to, message) { - return null; - }, - - blacklistGetKeyList: function() { - return null; - }, - - blacklistAddKey: function(fpr) { - return null; - }, - - blacklistDeleteKey: function(fpr) { - return null; - }, - - - startKeyserverLookup: function() { - return null; - }, - - stopKeyserverLookup: function() { - return null; - }, - - startKeySync: function() { - return null; - }, - - stopKeySync: function() { - return null; - }, - - setPassiveMode: function(isPassive) { - return null; - }, - - shutdown: function() { - return null; - }, - - registerTbListener: function(port, securityToken) { - return null; - }, - - - registerListener: function() { - return null; - }, - - unregisterListener: function(port, securityToken) { - return null; - }, - - parseJSON: function(str) { - return null; - }, - - setServerPath: function(pathName) { - return null; - }, - - setAdapterApiVersion: function(v) { - return null; - }, - - checkAdapterApiLevel: function(requiredVersion) { - return false; - } -}; diff -Nru enigmail-2.1.6+ds1/package/persistentCrypto.jsm enigmail-2.2.4/package/persistentCrypto.jsm --- enigmail-2.1.6+ds1/package/persistentCrypto.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/persistentCrypto.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1129 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailPersistentCrypto"]; - -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailArmor = ChromeUtils.import("chrome://enigmail/content/modules/armor.jsm").EnigmailArmor; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const GlodaUtils = ChromeUtils.import("chrome://enigmail/content/modules/glodaUtils.jsm").GlodaUtils; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const jsmime = ChromeUtils.import("resource:///modules/jsmime.jsm").jsmime; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; -const EnigmailEncryption = ChromeUtils.import("chrome://enigmail/content/modules/encryption.jsm").EnigmailEncryption; - -const getFixExchangeMsg = EnigmailLazy.loader("enigmail/fixExchangeMsg.jsm", "EnigmailFixExchangeMsg"); -const getDecryption = EnigmailLazy.loader("enigmail/decryption.jsm", "EnigmailDecryption"); -const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog"); -const getGpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent"); - -const STATUS_OK = 0; -const STATUS_FAILURE = 1; -const STATUS_NOT_REQUIRED = 2; - -const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; - -/* - * Decrypt a message and copy it to a folder - * - * @param nsIMsgDBHdr hdr Header of the message - * @param String destFolder Folder URI - * @param Boolean move If true the original message will be deleted - * - * @return a Promise that we do that - */ -var EnigmailPersistentCrypto = { - - /*** - * dispatchMessages - * - * Because Thunderbird throws all messages at once at us thus we have to rate limit the dispatching - * of the message processing. Because there is only a negligible performance gain when dispatching - * several message at once we serialize to not overwhelm low power devices. - * - * If targetFolder is null the message will be copied / moved in the same folder as the original - * message. - * - * If targetKey is not null the message will be encrypted again to the targetKey. - * - * The function is implemented asynchronously. - * - * Parameters - * aMsgHdrs: Array of nsIMsgDBHdr - * targetFolder: String; target folder URI or null - * copyListener: listener for async request (nsIMsgCopyServiceListener) - * move: Boolean: type of action; true = "move" / false = "copy" - * targetKey: KeyObject of target key if encryption is requested - * - **/ - - dispatchMessages: function(aMsgHdrs, targetFolder, copyListener, move, targetKey) { - EnigmailLog.DEBUG("persistentCrypto.jsm: dispatchMessages()\n"); - - let enigmailSvc = EnigmailCore.getService(); - if (copyListener && !enigmailSvc) { - // could not initiate Enigmail - do nothing - copyListener.OnStopCopy(0); - return; - } - - if (copyListener) { - copyListener.OnStartCopy(); - } - let promise = EnigmailPersistentCrypto.cryptMessage(aMsgHdrs[0], targetFolder, move, targetKey); - - let processNext = function(data) { - aMsgHdrs.splice(0, 1); - if (aMsgHdrs.length > 0) { - EnigmailPersistentCrypto.dispatchMessages(aMsgHdrs, targetFolder, copyListener, move, targetKey); - } else { - // last message was finished processing - if (copyListener) { - copyListener.OnStopCopy(0); - } - EnigmailLog.DEBUG("persistentCrypto.jsm: dispatchMessages - DONE\n"); - } - }; - - promise.then(processNext); - - promise.catch(function(err) { - processNext(null); - }); - }, - - /*** - * cryptMessage - * - * Decrypts a message. If targetKey is not null it - * encrypts a message to the target key afterwards. - * - * Parameters - * hdr: nsIMsgDBHdr of the message to encrypt - * destFolder: String; target folder URI - * move: Boolean: type of action; true = "move" / false = "copy" - * targetKey: KeyObject of target key if encryption is requested - **/ - cryptMessage: function(hdr, destFolder, move, targetKey) { - return new Promise( - function(resolve, reject) { - let msgUriSpec = hdr.folder.getUriForMsg(hdr); - let msgUrl = EnigmailCompat.getUrlFromUriSpec(msgUriSpec); - - const crypt = new CryptMessageIntoFolder(destFolder, move, resolve, targetKey); - - try { - EnigmailMime.getMimeTreeFromUrl(msgUrl, true, - function f_(mime) { - crypt.messageParseCallback(mime, hdr); - }); - } catch (ex) { - reject("msgHdrsDeleteoMimeMessage failed: " + ex.toString()); - } - return; - } - ); - } -}; - -function CryptMessageIntoFolder(destFolder, move, resolve, targetKey) { - this.destFolder = destFolder; - this.move = move; - this.resolve = resolve; - this.targetKey = targetKey; - this.messageDecrypted = false; - - this.mimeTree = null; - this.decryptionTasks = []; - this.subject = ""; -} - -CryptMessageIntoFolder.prototype = { - messageParseCallback: async function(mimeTree, msgHdr) { - this.mimeTree = mimeTree; - this.hdr = msgHdr; - - if (mimeTree.headers.has("subject")) { - this.subject = mimeTree.headers.get("subject"); - } - - await this.decryptMimeTree(mimeTree); - - let msg = ""; - - // Encrypt the message if a target key is given. - if (this.targetKey) { - msg = this.encryptToKey(mimeTree); - if (!msg) { - // do nothing (still better than destroying the message) - this.resolve(true); - return; - } else { - this.messageDecrypted = true; - } - } else if (this.messageDecrypted) { - msg = this.mimeToString(mimeTree, true); - } - - if (this.messageDecrypted) { - this.resolve(await this.storeMessage(msg)); - } else - this.resolve(true); - }, - - encryptToKey: function(mimeTree) { - let exitCodeObj = {}; - let statusFlagsObj = {}; - let errorMsgObj = {}; - EnigmailLog.DEBUG("persistentCrypto.jsm: Encrypting message.\n"); - - - let inputMsg = this.mimeToString(mimeTree, false); - - - let encmsg = ""; - try { - encmsg = EnigmailEncryption.encryptMessage(null, - 0, - inputMsg, - "0x" + this.targetKey.fpr, - "0x" + this.targetKey.fpr, - "", - EnigmailConstants.SEND_ENCRYPTED | EnigmailConstants.SEND_ALWAYS_TRUST, - exitCodeObj, - statusFlagsObj, - errorMsgObj - ); - } catch (ex) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Encryption failed: " + ex + "\n"); - return null; - } - - // Build the pgp-encrypted mime structure - let msg = ""; - - let rfc822Headers = []; // FIXME - - // First the original headers - for (let header in rfc822Headers) { - if (header != "content-type" && - header != "content-transfer-encoding" && - header != "content-disposition") { - msg += prettyPrintHeader(header, rfc822Headers[header]) + "\n"; - } - } - // Then multipart/encrypted ct - let boundary = EnigmailMime.createBoundary(); - msg += "Content-Transfer-Encoding: 7Bit\n"; - msg += "Content-Type: multipart/encrypted; "; - msg += "boundary=\"" + boundary + "\"; protocol=\"application/pgp-encrypted\"\n\n"; - msg += "This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)\n"; - - // pgp-encrypted part - msg += "--" + boundary + "\n"; - msg += "Content-Type: application/pgp-encrypted\n"; - msg += "Content-Disposition: attachment\n"; - msg += "Content-Transfer-Encoding: 7Bit\n\n"; - msg += "Version: 1\n\n"; - - // the octet stream - msg += "--" + boundary + "\n"; - msg += "Content-Type: application/octet-stream; name=\"encrypted.asc\"\n"; - msg += "Content-Description: OpenPGP encrypted message\n"; - msg += "Content-Disposition: inline; filename=\"encrypted.asc\"\n"; - msg += "Content-Transfer-Encoding: 7Bit\n\n"; - msg += encmsg; - - // Bottom boundary - msg += "\n--" + boundary + "--\n"; - - // Fix up the line endings to be a proper dosish mail - msg = msg.replace(/\r/ig, "").replace(/\n/ig, "\r\n"); - - return msg; - }, - - /** - * Walk through the MIME message structure and decrypt the body if there is something to decrypt - */ - decryptMimeTree: async function(mimePart) { - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptMimeTree:\n"); - - if (this.isBrokenByExchange(mimePart)) { - this.fixExchangeMessage(mimePart); - } - - if (this.isPgpMime(mimePart)) { - this.decryptPGPMIME(mimePart); - } else if (isAttachment(mimePart)) { - this.decryptAttachment(mimePart); - } else { - this.decryptINLINE(mimePart); - } - - for (let i in mimePart.subParts) { - await this.decryptMimeTree(mimePart.subParts[i]); - } - }, - - /*** - * - * Detect if mime part is PGP/MIME message that got modified by MS-Exchange: - * - * - multipart/mixed Container with - * - application/pgp-encrypted Attachment with name "PGPMIME Version Identification" - * - application/octet-stream Attachment with name "encrypted.asc" having the encrypted content in base64 - * - see: - * - https://www.enigmail.net/forum/viewtopic.php?f=4&t=425 - * - https://sourceforge.net/p/enigmail/forum/support/thread/4add2b69/ - */ - - isBrokenByExchange: function(mime) { - EnigmailLog.DEBUG("persistentCrypto.jsm: isBrokenByExchange:\n"); - - try { - if (mime.subParts && mime.subParts.length === 3 && - mime.fullContentType.toLowerCase().indexOf("multipart/mixed") >= 0 && - mime.subParts[0].subParts.length === 0 && - mime.subParts[0].fullContentType.search(/multipart\/encrypted/i) < 0 && - mime.subParts[0].fullContentType.toLowerCase().indexOf("text/plain") >= 0 && - mime.subParts[1].fullContentType.toLowerCase().indexOf("application/pgp-encrypted") >= 0 && - mime.subParts[1].fullContentType.toLowerCase().search(/multipart\/encrypted/i) < 0 && - mime.subParts[1].fullContentType.toLowerCase().search(/PGPMIME Versions? Identification/i) >= 0 && - mime.subParts[2].fullContentType.toLowerCase().indexOf("application/octet-stream") >= 0 && - mime.subParts[2].fullContentType.toLowerCase().indexOf("encrypted.asc") >= 0) { - - EnigmailLog.DEBUG("persistentCrypto.jsm: isBrokenByExchange: found message broken by MS-Exchange\n"); - return true; - } - } catch (ex) {} - - return false; - }, - - isPgpMime: function(mimePart) { - EnigmailLog.DEBUG("persistentCrypto.jsm: isPgpMime()\n"); - - try { - if (mimePart.headers.has("content-type")) { - if (mimePart.headers.get("content-type").type.toLowerCase() === "multipart/encrypted" && - mimePart.headers.get("content-type").get("protocol").toLowerCase() === "application/pgp-encrypted" && - mimePart.subParts.length === 2) { - return true; - } - } - } catch (x) {} - return false; - }, - - decryptPGPMIME: async function(mimePart) { - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptPGPMIME(" + mimePart.partNum + ")\n"); - - if (!mimePart.subParts[1]) throw "Not a correct PGP/MIME message"; - - const uiFlags = EnigmailConstants.UI_INTERACTIVE | EnigmailConstants.UI_UNVERIFIED_ENC_OK | - EnigmailConstants.UI_IGNORE_MDC_ERROR; - let exitCodeObj = {}; - let statusFlagsObj = {}; - let userIdObj = {}; - let sigDetailsObj = {}; - let errorMsgObj = {}; - let keyIdObj = {}; - let blockSeparationObj = { - value: "" - }; - let encToDetailsObj = {}; - var signatureObj = {}; - signatureObj.value = ""; - - - let data = getDecryption().decryptMessage(null, uiFlags, mimePart.subParts[1].body, signatureObj, exitCodeObj, statusFlagsObj, - keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj); - - if (!data || data.length === 0) { - if (statusFlagsObj.value & EnigmailConstants.DISPLAY_MESSAGE) { - getDialog().alert(null, errorMsgObj.value); - throw "Decryption impossible"; - } - } - - EnigmailLog.DEBUG("persistentCrypto.jsm: analyzeDecryptedData: got " + data.length + " bytes\n"); - - if (EnigmailLog.getLogLevel() > 5) { - EnigmailLog.DEBUG("*** start data ***\n'" + data + "'\n***end data***\n"); - } - - if (data.length === 0) { - // fail if no data found - return; - } - - let bodyIndex = data.search(/\n\s*\r?\n/); - if (bodyIndex < 0) { - bodyIndex = 0; - } else { - ++bodyIndex; - } - - if (data.substr(bodyIndex).search(/\r?\n$/) === 0) { - return; - } - - let m = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders); - m.initialize(data.substr(0, bodyIndex)); - let ct = m.extractHeader("content-type", false) || ""; - let part = mimePart.partNum; - - if (part.length > 0 && part.search(/[^01.]/) < 0) { - if (ct.search(/protected-headers/i) >= 0) { - if (m.hasHeader("subject")) { - let subject = m.extractHeader("subject", false) || ""; - subject = subject.replace(/^(Re: )+/, "Re: "); - this.mimeTree.headers._rawHeaders.set("subject", [subject]); - } - } else if (this.mimeTree.headers.get("subject") === "p≡p") { - let subject = getPepSubject(data); - if (subject) { - subject = subject.replace(/^(Re: )+/, "Re: "); - this.mimeTree.headers._rawHeaders.set("subject", [subject]); - } - } - } - - let boundary = getBoundary(mimePart); - if (!boundary) - boundary = EnigmailMime.createBoundary(); - - // append relevant headers - mimePart.headers.get("content-type").type = "multipart/mixed"; - mimePart.headers._rawHeaders.set("content-type", ['multipart/mixed; boundary="' + boundary + '"']); - mimePart.subParts = [{ - body: data, - decryptedPgpMime: true, - partNum: mimePart.partNum + ".1", - headers: { - _rawHeaders: new Map(), - get: function() { - return null; - }, - has: function() { - return false; - } - }, - subParts: [] - }]; - - - this.messageDecrypted = true; - }, - - decryptAttachment: function(mimePart) { - - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment()\n"); - let attachmentHead = mimePart.body.substr(0, 30); - if (attachmentHead.search(/-----BEGIN PGP \w{5,10} KEY BLOCK-----/) >= 0) { - // attachment appears to be a PGP key file, we just go-a-head - return; - } - - let attachmentName = getAttachmentName(mimePart); - attachmentName = attachmentName ? attachmentName.replace(/\.(pgp|asc|gpg)$/, "") : ""; - - let args = EnigmailGpg.getStandardArgs(true); - args.push("-d"); - - let statusMsgObj = {}; - let cmdLineObj = {}; - let exitCode = -1; - let statusFlagsObj = { - value: 0 - }; - let errorMsgObj = {}; - - let listener = EnigmailExecution.newSimpleListener((pipe) => { - pipe.write(mimePart.body); - pipe.close(); - }); - - do { - // loop to allow for multiple tries of the passphrase - let proc = EnigmailExecution.execStart(getGpgAgent().agentPath, args, false, null, listener, statusFlagsObj); - if (!proc) { - return; - } - // Wait for child STDOUT to close - proc.wait(); - EnigmailExecution.execEnd(listener, statusFlagsObj, statusMsgObj, cmdLineObj, errorMsgObj); - - if ((listener.stdoutData && listener.stdoutData.length > 0) || - (statusFlagsObj.value & EnigmailConstants.DECRYPTION_OKAY)) { - 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", [attachmentName, this.subject]); - - if (!getDialog().confirmDlg(null, msg, - EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) { - return; - } - } else if (statusFlagsObj.value & EnigmailConstants.DECRYPTION_INCOMPLETE) { - // failure; message not complete - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: decryption incomplete\n"); - return; - } else { - // there is nothing to be decrypted - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: no decryption required\n"); - return; - } - - } while (exitCode !== 0); - - - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptAttachment: decrypted to " + listener.stdoutData.length + " bytes\n"); - if (statusFlagsObj.encryptedFileName && statusFlagsObj.encryptedFileName.length > 0) { - attachmentName = statusFlagsObj.encryptedFileName; - } - - this.decryptedMessage = true; - mimePart.body = listener.stdoutData; - mimePart.headers._rawHeaders.set("content-disposition", `attachment; filename="${attachmentName}"`); - mimePart.headers._rawHeaders.set("content-transfer-encoding", ["base64"]); - let origCt = mimePart.headers.get("content-type"); - let ct = origCt.type; - - - for (let i of origCt.entries()) { - if (i[0].toLowerCase() === "name") { - i[1] = i[1].replace(/\.(pgp|asc|gpg)$/, ""); - } - ct += `; ${i[0]}="${i[1]}"`; - } - - mimePart.headers._rawHeaders.set("content-type", [ct]); - }, - - - decryptINLINE: function(mimePart) { - EnigmailLog.DEBUG("persistentCrypto.jsm: decryptINLINE()\n"); - - if (("decryptedPgpMime" in mimePart) && mimePart.decryptedPgpMime) { - return 0; - } - - if ("body" in mimePart && mimePart.body.length > 0) { - let ct = getContentType(mimePart); - - if (ct === "text/html") { - mimePart.body = this.stripHTMLFromArmoredBlocks(mimePart.body); - } - - var exitCodeObj = {}; - var statusFlagsObj = {}; - var userIdObj = {}; - var sigDetailsObj = {}; - var errorMsgObj = {}; - var keyIdObj = {}; - var blockSeparationObj = { - value: "" - }; - var encToDetailsObj = {}; - var signatureObj = {}; - signatureObj.value = ""; - - const uiFlags = EnigmailConstants.UI_INTERACTIVE | EnigmailConstants.UI_UNVERIFIED_ENC_OK | - EnigmailConstants.UI_IGNORE_MDC_ERROR; - - var plaintexts = []; - var blocks = EnigmailArmor.locateArmoredBlocks(mimePart.body); - var tmp = []; - - for (let i = 0; i < blocks.length; i++) { - if (blocks[i].blocktype == "MESSAGE") { - tmp.push(blocks[i]); - } - } - - blocks = tmp; - - if (blocks.length < 1) { - return 0; - } - - let charset = "utf-8"; - - for (let i = 0; i < blocks.length; i++) { - let plaintext = null; - do { - let ciphertext = mimePart.body.substring(blocks[i].begin, blocks[i].end + 1); - - if (ciphertext.length === 0) { - break; - } - - let hdr = ciphertext.search(/(\r\r|\n\n|\r\n\r\n)/); - if (hdr > 0) { - let chset = ciphertext.substr(0, hdr).match(/^(charset:)(.*)$/mi); - if (chset && chset.length == 3) { - charset = chset[2].trim(); - } - } - plaintext = getDecryption().decryptMessage(null, uiFlags, ciphertext, signatureObj, exitCodeObj, statusFlagsObj, - keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj); - if (!plaintext || plaintext.length === 0) { - if (statusFlagsObj.value & EnigmailConstants.DISPLAY_MESSAGE) { - getDialog().alert(null, errorMsgObj.value); - this.messageDecrypted = false; - 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 (!getDialog().confirmDlg(null, msg, - EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) { - this.messageDecrypted = false; - return -1; - } - } else if (statusFlagsObj.value & EnigmailConstants.DECRYPTION_INCOMPLETE) { - this.messageDecrypted = false; - return -1; - } else { - plaintext = " "; - } - } - - if (ct === "text/html") { - plaintext = plaintext.replace(/\n/ig, "
\n"); - } - - let subject = ""; - if (this.mimeTree.headers.has("subject")) { - subject = this.mimeTree.headers.get("subject"); - } - - if (i == 0 && this.mimeTree.headers.subject === "pEp" && - mimePart.partNum.length > 0 && mimePart.partNum.search(/[^01.]/) < 0) { - - let m = EnigmailMime.extractSubjectFromBody(plaintext); - if (m) { - plaintext = m.messageBody; - this.mimeTree.headers._rawHeaders.set("subject", [m.subject]); - } - } - - if (plaintext) { - plaintexts.push(plaintext); - } - } while (!plaintext || plaintext === ""); - } - - - - var decryptedMessage = mimePart.body.substring(0, blocks[0].begin) + plaintexts[0]; - for (let i = 1; i < blocks.length; i++) { - decryptedMessage += mimePart.body.substring(blocks[i - 1].end + 1, blocks[i].begin + 1) + plaintexts[i]; - } - - decryptedMessage += mimePart.body.substring(blocks[(blocks.length - 1)].end + 1); - - // enable base64 encoding if non-ASCII character(s) found - let j = decryptedMessage.search(/[^\x01-\x7F]/); // eslint-disable-line no-control-regex - if (j >= 0) { - mimePart.headers._rawHeaders.set('content-transfer-encoding', ['base64']); - } else { - mimePart.headers._rawHeaders.set('content-transfer-encoding', ['8bit']); - } - mimePart.body = decryptedMessage; - - let origCharset = getCharset(getHeaderValue(mimePart, 'content-type')); - if (origCharset) { - mimePart.headers_rawHeaders.set('content-type', getHeaderValue(mimePart, 'content-type').replace(origCharset, charset)); - } else { - mimePart.headers._rawHeaders.set('content-type', getHeaderValue(mimePart, 'content-type') + "; charset=" + charset); - } - - this.messageDecrypted = true; - return 1; - } - - let ct = getContentType(mimePart); - EnigmailLog.DEBUG("persistentCrypto.jsm: Decryption skipped: " + ct + "\n"); - - return 0; - }, - - stripHTMLFromArmoredBlocks: function(text) { - - var index = 0; - var begin = text.indexOf("-----BEGIN PGP"); - var end = text.indexOf("-----END PGP"); - - while (begin > -1 && end > -1) { - let sub = text.substring(begin, end); - - sub = sub.replace(/(<([^>]+)>)/ig, ""); - sub = sub.replace(/&[A-z]+;/ig, ""); - - text = text.substring(0, begin) + sub + text.substring(end); - - index = end + 10; - begin = text.indexOf("-----BEGIN PGP", index); - end = text.indexOf("-----END PGP", index); - } - - return text; - }, - - - /****** - * - * We have the technology we can rebuild. - * - * Function to reassemble the message from the MIME Tree - * into a String. - * - ******/ - - mimeToString: function(mimePart, includeHeaders) { - EnigmailLog.DEBUG("persistentCrypto.jsm: mimeToString: part: '" + mimePart.partNum + "'\n"); - - let msg = ""; - let rawHdr = mimePart.headers._rawHeaders; - - if (includeHeaders && rawHdr.size > 0) { - for (let hdr of rawHdr.keys()) { - msg += formatMimeHeader(hdr, rawHdr.get(hdr)) + "\r\n"; - } - - msg += "\r\n"; - } - - if (mimePart.body.length > 0) { - let encoding = getTransferEncoding(mimePart); - if (!encoding) encoding = "8bit"; - - if (encoding === "quoted-printable") { - mimePart.headers._rawHeaders.set("content-transfer-encoding", ["base64"]); - encoding = "base64"; - } - - if (encoding === "base64") { - msg += EnigmailData.encodeBase64(mimePart.body); - } else { - msg += mimePart.body; - } - - } - - if (mimePart.subParts.length > 0) { - let boundary = EnigmailMime.getBoundary(rawHdr.get("content-type").join("")); - - for (let i in mimePart.subParts) { - msg += `--${boundary}\r\n`; - msg += this.mimeToString(mimePart.subParts[i], true); - if (msg.search(/[\r\n]$/) < 0) { - msg += "\r\n"; - } - } - - msg += `--${boundary}--\r\n`; - } - return msg; - }, - - storeMessage: function(msg) { - let self = this; - - return new Promise((resolve, reject) => { - //XXX Do we wanna use the tmp for this? - let tempFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("TmpD", Ci.nsIFile); - tempFile.append("message.eml"); - tempFile.createUnique(0, 384); // == 0600, octal is deprecated - - // ensure that file gets deleted on exit, if something goes wrong ... - let extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher); - - let foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); - foStream.init(tempFile, 2, 0x200, false); // open as "write only" - foStream.write(msg, msg.length); - foStream.close(); - - extAppLauncher.deleteTemporaryFileOnExit(tempFile); - - // - // This was taken from the HeaderToolsLite Example Addon "original by Frank DiLecce" - // - // this is interesting: nsIMsgFolder.copyFileMessage seems to have a bug on Windows, when - // the nsIFile has been already used by foStream (because of Windows lock system?), so we - // must initialize another nsIFile object, pointing to the temporary file - let fileSpec = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - fileSpec.initWithPath(tempFile.path); - - const copySvc = Cc["@mozilla.org/messenger/messagecopyservice;1"].getService(Ci.nsIMsgCopyService); - - let copyListener = { - QueryInterface: function(iid) { - if (iid.equals(Ci.nsIMsgCopyServiceListener) || iid.equals(Ci.nsISupports)) { - return this; - } - EnigmailLog.DEBUG("persistentCrypto.jsm: copyListener error\n"); - throw Components.results.NS_NOINTERFACE; - }, - GetMessageId: function(messageId) {}, - OnProgress: function(progress, progressMax) {}, - OnStartCopy: function() { - EnigmailLog.DEBUG("persistentCrypto.jsm: copyListener: OnStartCopy()\n"); - }, - SetMessageKey: function(key) { - EnigmailLog.DEBUG("persistentCrypto.jsm: copyListener: SetMessageKey(" + key + ")\n"); - }, - OnStopCopy: function(statusCode) { - EnigmailLog.DEBUG("persistentCrypto.jsm: copyListener: OnStopCopy()\n"); - if (statusCode !== 0) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Error copying message: " + statusCode + "\n"); - try { - tempFile.remove(false); - } catch (ex) { - try { - fileSpec.remove(false); - } catch (e2) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Could not delete temp file\n"); - } - } - resolve(true); - return; - } - EnigmailLog.DEBUG("persistentCrypto.jsm: Copy complete\n"); - - if (self.move) { - deleteOriginalMail(self.hdr); - } - - try { - tempFile.remove(false); - } catch (ex) { - try { - fileSpec.remove(false); - } catch (e2) { - EnigmailLog.DEBUG("persistentCrypto.jsm: Could not delete temp file\n"); - } - } - - EnigmailLog.DEBUG("persistentCrypto.jsm: Cave Johnson. We're done\n"); - resolve(true); - } - }; - - EnigmailLog.DEBUG("persistentCrypto.jsm: copySvc ready for copy\n"); - try { - if (self.mimeTree.headers.has("subject")) { - self.hdr.subject = self.mimeTree.headers.get("subject"); - } - } catch (ex) {} - - EnigmailCompat.copyFileToMailFolder(fileSpec, EnigmailCompat.getExistingFolder(self.destFolder), - 0, "", copyListener, null); - }); - }, - - fixExchangeMessage: function(mimePart) { - EnigmailLog.DEBUG("persistentCrypto.jsm: fixExchangeMessage()\n"); - - const FixEx = getFixExchangeMsg(); - - let msg = this.mimeToString(mimePart, true); - let app = FixEx.determineCreatorApp(msg); - - try { - let fixedMsg = FixEx.getRepairedMessage(msg); - let replacement = EnigmailMime.getMimeTree(fixedMsg, true); - - for (let i in replacement) { - mimePart[i] = replacement[i]; - } - } catch (ex) {} - } -}; - - -/** - * Format a mime header - * - * e.g. content-type -> Content-Type - */ - -function formatHeader(headerLabel) { - return headerLabel.replace(/^.|(-.)/g, function(match) { - return match.toUpperCase(); - }); -} - -function formatMimeHeader(headerLabel, headerValue) { - if (Array.isArray(headerValue)) { - headerValue = headerValue.join(""); - } - if (headerLabel.search(/^(sender|from|reply-to|to|cc|bcc)$/i) === 0) { - return formatHeader(headerLabel) + ": " + EnigmailMime.formatHeaderData(EnigmailMime.formatEmailAddress(headerValue)); - } else { - return formatHeader(headerLabel) + ": " + EnigmailMime.formatHeaderData(EnigmailMime.encodeHeaderValue(headerValue)); - } -} - - -function prettyPrintHeader(headerLabel, headerData) { - let hdrData = ""; - if (Array.isArray(headerData)) { - let h = []; - for (let i in headerData) { - h.push(formatMimeHeader(headerLabel, GlodaUtils.deMime(headerData[i]))); - } - return h.join("\r\n"); - } else { - return formatMimeHeader(headerLabel, GlodaUtils.deMime(String(headerData))); - } -} - -function getHeaderValue(mimeStruct, header) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getHeaderValue: '" + header + "'\n"); - - try { - if (mimeStruct.headers.has(header)) { - let hdrVal = mimeStruct.headers.get(header); - if (typeof hdrVal == "string") { - return hdrVal; - } else { - return mimeStruct.headers[header].join(" "); - } - } else { - return ""; - } - } catch (ex) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getHeaderValue: header not present\n"); - return ""; - } -} - -/*** - * get the formatted headers for MimeMessage objects - * - * @headerArr: Array of headers (key/value pairs), such as mime.headers - * @ignoreHeadersArr: Array of headers to exclude from returning - * - * @return: String containing formatted header list - */ -function getRfc822Headers(headerArr, contentType, ignoreHeadersArr) { - let hdrs = ""; - - let ignore = []; - if (contentType.indexOf("multipart/") >= 0) { - ignore = ['content-transfer-encoding', - 'content-disposition', - 'content-description' - ]; - } - - if (ignoreHeadersArr) { - ignore = ignore.concat(ignoreHeadersArr); - } - - for (let i in headerArr) { - if (ignore.indexOf(i) < 0) { - hdrs += prettyPrintHeader(i, headerArr[i]) + "\r\n"; - } - } - - return hdrs; -} - -function getContentType(mime) { - try { - if (mime && ("headers" in mime) && mime.headers.has("content-type")) { - return mime.headers.get("content-type").type.toLowerCase(); - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getContentType: " + e + "\n"); - } - return null; -} - -// return the content of the boundary parameter -function getBoundary(mime) { - try { - if (mime && ("headers" in mime) && mime.headers.has("content-type")) { - return mime.headers.get("content-type").get("boundary"); - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getBoundary: " + e + "\n"); - } - return null; -} - -function getCharset(mime) { - try { - if (mime && ("headers" in mime) && mime.headers.has("content-type")) { - let c = mime.headers.get("content-type").get("charset"); - if (c) return c.toLowerCase(); - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getCharset: " + e + "\n"); - } - return null; -} - -function getProtocol(mime) { - try { - if (mime && ("headers" in mime) && mime.headers.has("content-type")) { - let c = mime.headers.get("content-type").get("protocol"); - if (c) return c.toLowerCase(); - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getProtocol: " + e + "\n"); - } - return ""; -} - -function getTransferEncoding(mime) { - try { - if (mime && ("headers" in mime) && mime.headers._rawHeaders.has("content-transfer-encoding")) { - let c = mime.headers._rawHeaders.get("content-transfer-encoding")[0]; - if (c) return c.toLowerCase(); - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getTransferEncoding: " + e + "\n"); - } - return "8Bit"; -} - -function isAttachment(mime) { - try { - if (mime && ("headers" in mime)) { - if (mime.fullContentType.search(/^multipart\//i) === 0) return false; - if (mime.fullContentType.search(/^text\//i) < 0) return true; - - if (mime.headers.has("content-disposition")) { - let c = mime.headers.get("content-disposition")[0]; - if (c) { - if (c.search(/^attachment/i) === 0) { - return true; - } - } - } - } - } catch (x) {} - return false; -} - - -function getAttachmentName(mime) { - try { - if (mime && ("headers" in mime) && mime.headers.has("content-disposition")) { - let c = mime.headers.get("content-disposition")[0]; - if (c) { - if (c.search(/^attachment/i) === 0) { - return EnigmailMime.getParameter(c, "filename"); - } - } - } - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getAttachmentName: " + e + "\n"); - } - return null; -} - - -function getPepSubject(mimeString) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getPepSubject()\n"); - - let subject = null; - - let emitter = { - ct: "", - firstPlainText: false, - startPart: function(partNum, headers) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getPepSubject.startPart: partNum=" + partNum + "\n"); - try { - this.ct = String(headers.getRawHeader("content-type")).toLowerCase(); - if (!subject && !this.firstPlainText) { - let s = headers.getRawHeader("subject"); - if (s) { - subject = String(s); - this.firstPlainText = true; - } - } - } catch (ex) { - this.ct = ""; - } - }, - - endPart: function(partNum) {}, - - deliverPartData: function(partNum, data) { - EnigmailLog.DEBUG("persistentCrypto.jsm: getPepSubject.deliverPartData: partNum=" + partNum + " ct=" + this.ct + "\n"); - if (!this.firstPlainText && this.ct.search(/^text\/plain/) === 0) { - // check data - this.firstPlainText = true; - - let o = EnigmailMime.extractSubjectFromBody(data); - if (o) { - subject = o.subject; - } - } - } - }; - - let opt = { - strformat: "unicode", - bodyformat: "decode" - }; - - try { - let p = new jsmime.MimeParser(emitter, opt); - p.deliverData(mimeString); - } catch (ex) {} - - return subject; -} - -/** - * Lazy deletion of original messages - */ -function deleteOriginalMail(msgHdr) { - EnigmailLog.DEBUG("persistentCrypto.jsm: deleteOriginalMail(" + msgHdr.messageKey + ")\n"); - - let delMsg = function() { - try { - EnigmailLog.DEBUG("persistentCrypto.jsm: deleting original message " + msgHdr.messageKey + "\n"); - EnigmailStdlib.msgHdrsDelete([msgHdr]); - } catch (e) { - EnigmailLog.DEBUG("persistentCrypto.jsm: deletion failed. Error: " + e.toString() + "\n"); - } - }; - - EnigmailTimer.setTimeout(delMsg, 500); -} diff -Nru enigmail-2.1.6+ds1/package/pgpmimeHandler.jsm enigmail-2.2.4/package/pgpmimeHandler.jsm --- enigmail-2.1.6+ds1/package/pgpmimeHandler.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/pgpmimeHandler.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,308 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module for handling PGP/MIME encrypted and/or signed messages - * implemented as an XPCOM object - */ - -const { - manager: Cm, - results: Cr, - Constructor: CC -} = Components; -Cm.QueryInterface(Ci.nsIComponentRegistrar); - - -var EXPORTED_SYMBOLS = ["EnigmailPgpmimeHander"]; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailMimeDecrypt = ChromeUtils.import("chrome://enigmail/content/modules/mimeDecrypt.jsm").EnigmailMimeDecrypt; -const EnigmailVerify = ChromeUtils.import("chrome://enigmail/content/modules/mimeVerify.jsm").EnigmailVerify; -const EnigmailWksMimeHandler = ChromeUtils.import("chrome://enigmail/content/modules/wksMimeHandler.jsm").EnigmailWksMimeHandler; -const EnigmailMime = ChromeUtils.import("chrome://enigmail/content/modules/mime.jsm").EnigmailMime; -const EnigmailPEPDecrypt = ChromeUtils.import("chrome://enigmail/content/modules/pEpDecrypt.jsm").EnigmailPEPDecrypt; -const EnigmailPEPAdapter = ChromeUtils.import("chrome://enigmail/content/modules/pEpAdapter.jsm").EnigmailPEPAdapter; -const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; - -const PGPMIME_JS_DECRYPTOR_CONTRACTID = "@mozilla.org/mime/pgp-mime-js-decrypt;1"; -const PGPMIME_JS_DECRYPTOR_CID = Components.ID("{7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8}"); - -//////////////////////////////////////////////////////////////////// -// 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"; - }, - onStartRequest: function() { - throw "error"; - }, - onStopRequest: function() { - throw "error"; - } -}; - -/** - * 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, ctxt) { - this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - if (!("outputDecryptedData" in this.mimeSvc)) { - this.mimeSvc.onStartRequest(null, ctxt); - } - this.bound = EnigmailMime.getBoundary(this.mimeSvc.contentType); - /* - readMode: - 0: before message - 1: inside message - 2: afer message - */ - this.readMode = 0; - }, - - onDataAvailable: function(p1, p2, p3, p4) { - if (EnigmailCompat.isMessageUriInPgpMime()) { - this.processData(p1, p2, p3, p4); - } - else { - this.processData(p1, null, p2, p3, p4); - } - }, - - processData: function (req, 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"; - - if ("outputDecryptedData" in this.mimeSvc) { - // TB >= 57 - this.mimeSvc.outputDecryptedData(out, out.length); - } - else { - gConv.setData(out, out.length); - this.mimeSvc.onDataAvailable(null, null, gConv, 0, out.length); - } - } - } - } - }, - - onStopRequest: function() { - if (!("outputDecryptedData" in this.mimeSvc)) { - this.mimeSvc.onStopRequest(null, 0); - } - } -}; - -function PgpMimeHandler() { - - EnigmailLog.DEBUG("pgpmimeHandler.js: PgpMimeHandler()\n"); // always log this one - -} - -PgpMimeHandler.prototype = { - classDescription: "Enigmail JS Decryption Handler", - classID: PGPMIME_JS_DECRYPTOR_CID, - contractID: PGPMIME_JS_DECRYPTOR_CONTRACTID, - QueryInterface: EnigmailCompat.generateQI([Ci.nsIStreamListener]), - inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream), - - onStartRequest: function(request, ctxt) { - let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - let ct = mimeSvc.contentType; - - let uri = null; - if ("messageURI" in mimeSvc) { - uri = mimeSvc.messageURI; - } - else { - uri = ctxt; - } - - 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 cth = null; - - if (ct.search(/^multipart\/encrypted/i) === 0) { - if (uri) { - let u = uri.QueryInterface(Ci.nsIURI); - gLastEncryptedUri = u.spec; - } - // PGP/MIME encrypted message - - if (EnigmailPEPAdapter.usingPep()) { - cth = EnigmailPEPDecrypt.getDecryptionService(ct); - } - else - cth = EnigmailMimeDecrypt.newPgpMimeHandler(); - } - else if (ct.search(/^multipart\/signed/i) === 0) { - if (ct.search(/application\/pgp-signature/i) > 0) { - // PGP/MIME signed message - cth = EnigmailVerify.newVerifier(); - } - else if (ct.search(/application\/(x-)?pkcs7-signature/i) > 0) { - let lastUriSpec = ""; - if (uri) { - let u = uri.QueryInterface(Ci.nsIURI); - lastUriSpec = u.spec; - } - // S/MIME signed message - 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"); - } - } - } - else if (ct.search(/application\/vnd.gnupg.wks/i) === 0) { - cth = EnigmailWksMimeHandler.newHandler(); - } - - 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); - return cth.onStartRequest(request, uri); - } - - return null; - }, - - onDataAvailable: function(req, stream, offset, count) {}, - - onStopRequest: function(request, status) {}, - - handleSmime: function(uri) { - this.contentHandler = throwErrors; - - if (uri) { - uri = uri.QueryInterface(Ci.nsIURI); - } - - let headerSink = EnigmailSingletons.messageReader; - 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; - } -}; - - -class Factory { - constructor(component) { - this.component = component; - this.register(); - Object.freeze(this); - } - - createInstance(outer, iid) { - if (outer) { - throw Cr.NS_ERROR_NO_AGGREGATION; - } - return new this.component(); - } - - register() { - Cm.registerFactory(this.component.prototype.classID, - this.component.prototype.classDescription, - this.component.prototype.contractID, - this); - } - - unregister() { - Cm.unregisterFactory(this.component.prototype.classID, this); - } -} - - -var EnigmailPgpmimeHander = { - startup: function(reason) { - try { - this.factory = new Factory(PgpMimeHandler); - } - catch (ex) {} - }, - - shutdown: function(reason) { - if (this.factory) { - this.factory.unregister(); - } - } -}; diff -Nru enigmail-2.1.6+ds1/package/prefs/defaultPrefs.js enigmail-2.2.4/package/prefs/defaultPrefs.js --- enigmail-2.1.6+ds1/package/prefs/defaultPrefs.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/prefs/defaultPrefs.js 2020-10-01 13:32:58.000000000 +0000 @@ -166,6 +166,12 @@ // Show or hide the Enigmail (or pEp) column in the message list pref("extensions.enigmail.columnVisible", false); +// Type of crypto-API to use - EXPERIMENTAL & INCOMPLETE -- DON'T USE!!! +// 0: choose automatically +// 1: GnuPG +// 2: OpenPGP.js +pref("extensions.enigmail.cryptoAPI", 1); + // show "Missing Trust in own keys" message (and remember selected state) pref("extensions.enigmail.warnOnMissingOwnerTrust", true); diff -Nru enigmail-2.1.6+ds1/package/prefs/.eslintrc.js enigmail-2.2.4/package/prefs/.eslintrc.js --- enigmail-2.1.6+ds1/package/prefs/.eslintrc.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/prefs/.eslintrc.js 2020-10-01 13:32:58.000000000 +0000 @@ -1,5 +1,5 @@ module.exports = { "rules": { - "strict": 0, + "strict": 0 } -} +}; diff -Nru enigmail-2.1.6+ds1/package/protocolHandler.jsm enigmail-2.2.4/package/protocolHandler.jsm --- enigmail-2.1.6+ds1/package/protocolHandler.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/protocolHandler.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,194 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailProtocolHandler"]; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; -const EnigmailURIs = ChromeUtils.import("chrome://enigmail/content/modules/uris.jsm").EnigmailURIs; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const NetUtil = ChromeUtils.import("resource://gre/modules/NetUtil.jsm").NetUtil; - -const NS_ENIGMAILPROTOCOLHANDLER_CONTRACTID = "@mozilla.org/network/protocol;1?name=enigmail"; -const NS_ENIGMAILPROTOCOLHANDLER_CID = Components.ID("{847b3a11-7ab1-11d4-8f02-006008948af5}"); -const ASS_CONTRACTID = "@mozilla.org/appshell/appShellService;1"; -const WMEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; - -const nsIProtocolHandler = Ci.nsIProtocolHandler; - -var EC = EnigmailCore; - -const gDummyPKCS7 = - 'Content-Type: multipart/mixed;\r\n boundary="------------060503030402050102040303\r\n\r\nThis is a multi-part message in MIME format.\r\n--------------060503030402050102040303\r\nContent-Type: application/x-pkcs7-mime\r\nContent-Transfer-Encoding: 8bit\r\n\r\n\r\n--------------060503030402050102040303\r\nContent-Type: application/x-enigmail-dummy\r\nContent-Transfer-Encoding: 8bit\r\n\r\n\r\n--------------060503030402050102040303--\r\n'; - - -function EnigmailProtocolHandler() {} - -EnigmailProtocolHandler.prototype = { - classDescription: "Enigmail Protocol Handler", - classID: NS_ENIGMAILPROTOCOLHANDLER_CID, - contractID: NS_ENIGMAILPROTOCOLHANDLER_CONTRACTID, - scheme: "enigmail", - defaultPort: -1, - protocolFlags: nsIProtocolHandler.URI_INHERITS_SECURITY_CONTEXT | - nsIProtocolHandler.URI_LOADABLE_BY_ANYONE | - nsIProtocolHandler.URI_NORELATIVE | - nsIProtocolHandler.URI_NOAUTH | - nsIProtocolHandler.URI_OPENING_EXECUTES_SCRIPT, - - QueryInterface: EnigmailCompat.generateQI([nsIProtocolHandler]), - - newURI: function(aSpec, originCharset, aBaseURI) { - 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"; - - let uri; - - try { - uri = Cc["@mozilla.org/network/simple-uri;1"].createInstance(Ci.nsIURI); - } catch (x) { - uri = NetUtil.newURI("data:text/plain,enigmail"); - } - - try { - // TB <= 58 - uri.spec = aSpec; - } catch (x) { - aSpec = aSpec.substr(9); - let i = aSpec.indexOf("?"); - try { - // TB < 60 - uri.scheme = "enigmail"; - if (i >= 0) { - uri.query = aSpec.substr(i + 1); - uri.pathQueryRef = aSpec.substr(0, i); - } else { - uri.pathQueryRef = aSpec; - } - } catch (ex) { - uri = uri.mutate().setScheme("enigmail").finalize(); - if (i >= 0) { - uri = uri.mutate().setQuery(aSpec.substr(i + 1)).finalize(); - uri = uri.mutate().setPathQueryRef(aSpec.substr(0, i)).finalize(); - } else { - uri = uri.mutate().setPathQueryRef(aSpec).finalize(); - } - } - - } - - return uri; - }, - - newChannel: function(aURI, loadInfo) { - EnigmailLog.DEBUG("protocolHandler.jsm: EnigmailProtocolHandler.newChannel: URI='" + aURI.spec + "'\n"); - - var messageId = EnigmailData.extractMessageId(aURI.spec); - var mimeMessageId = EnigmailData.extractMimeMessageId(aURI.spec); - var contentType, contentCharset, contentData; - - if (messageId) { - // Handle enigmail:message/... - - if (!EC.getEnigmailService()) { - throw Components.results.NS_ERROR_FAILURE; - } - - if (EnigmailURIs.getMessageURI(messageId)) { - var messageUriObj = EnigmailURIs.getMessageURI(messageId); - - contentType = messageUriObj.contentType; - contentCharset = messageUriObj.contentCharset; - contentData = messageUriObj.contentData; - - 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). - - } else if (mimeMessageId) { - this.handleMimeMessage(mimeMessageId); - } else { - - contentType = "text/plain"; - contentCharset = ""; - contentData = "Enigmail error: invalid URI " + aURI.spec; - } - - let channel = EnigmailStreams.newStringChannel(aURI, contentType, "UTF-8", contentData, loadInfo); - - - return channel; - } - - if (aURI.spec == aURI.scheme + ":dummy") { - // Dummy PKCS7 content (to access mimeEncryptedClass) - return EnigmailStreams.newStringChannel(aURI, "message/rfc822", "", gDummyPKCS7, loadInfo); - } - - var winName, spec; - if (aURI.spec == "about:" + aURI.scheme) { - // About Enigmail - // winName = "about:"+enigmail; - winName = "about:enigmail"; - spec = "chrome://enigmail/content/ui/enigmailAbout.xul"; - - } else if (aURI.spec == aURI.scheme + ":console") { - // Display enigmail console messages - winName = "enigmail:console"; - spec = "chrome://enigmail/content/ui/enigmailConsole.xul"; - - } else if (aURI.spec == aURI.scheme + ":keygen") { - // Display enigmail key generation console - winName = "enigmail:keygen"; - spec = "chrome://enigmail/content/ui/enigmailKeygen.xul"; - - } else { - // Display Enigmail about page - winName = "about:enigmail"; - spec = "chrome://enigmail/content/ui/enigmailAbout.xul"; - } - - var windowManager = Cc[WMEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); - - var winEnum = windowManager.getEnumerator(null); - var recentWin = null; - while (winEnum.hasMoreElements() && !recentWin) { - var thisWin = winEnum.getNext(); - if (thisWin.location.href == spec) { - recentWin = thisWin; - } - } - - if (recentWin) { - recentWin.focus(); - } else { - var appShellSvc = Cc[ASS_CONTRACTID].getService(Ci.nsIAppShellService); - var domWin = appShellSvc.hiddenDOMWindow; - - domWin.open(spec, "_blank", "chrome,menubar,toolbar,resizable"); - } - - throw Components.results.NS_ERROR_FAILURE; - }, - - handleMimeMessage: function(messageId) { - // 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) { - // non-standard ports are not allowed - return false; - } -}; diff -Nru enigmail-2.1.6+ds1/package/rng.jsm enigmail-2.2.4/package/rng.jsm --- enigmail-2.1.6+ds1/package/rng.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/rng.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailRNG"]; - -Components.utils.importGlobalProperties(["crypto"]); - -/** - * Create a string of random characters of the set A-Z a-z 0-9 with numChars length, - * using the browser crypto API that gets cryptographically strong random values - * - * @param numChar: Number - the length of the string to return - * - * @return String - */ -function generateRandomString(numChars) { - - // Map of characters that are allowed to be returned - const charMap = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", - "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); - - const charMapLength = charMap.length; // 62 for the set A-Z a-z 0-9 - - let randNumArray = new Uint16Array(numChars); - crypto.getRandomValues(randNumArray); - - let randomString = ""; - - for (let i = 0; i < numChars; i++) { - // compute the modulo to get numbers between 0 and (charMapLength - 1) - // Uint16 range 65536 modulo 62 is only 2, this minimal statistical imbalance is acceptable - let modulo = randNumArray[i] % charMapLength; - - randomString += charMap[modulo]; - } - - return randomString; -} - - -/** - * Generates a random UInt32 for use in randomising key selection and wait times between refreshing keys. - * - * @return random UInt32 - */ -function generateRandomUint32() { - let randomNumber = new Uint32Array(1); - crypto.getRandomValues(randomNumber); - return randomNumber[0]; -} - -var EnigmailRNG = { - generateRandomUint32: generateRandomUint32, - generateRandomString: generateRandomString -}; diff -Nru enigmail-2.1.6+ds1/package/rules.jsm enigmail-2.2.4/package/rules.jsm --- enigmail-2.1.6+ds1/package/rules.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/rules.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,605 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailRules"]; - - -/*EnigmailFuncs: false, : false, : false, : false, : false */ -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; - -const getKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing"); - -const NS_RDONLY = 0x01; -const NS_WRONLY = 0x02; -const NS_CREATE_FILE = 0x08; -const NS_TRUNCATE = 0x20; -const DEFAULT_FILE_PERMS = 0o600; - -const rulesListHolder = { - rulesList: null -}; - -var EnigmailRules = { - - getRulesFile: function() { - EnigmailLog.DEBUG("rules.jsm: getRulesFile()\n"); - var rulesFile = EnigmailApp.getProfileDirectory(); - rulesFile.append("pgprules.xml"); - return rulesFile; - }, - - loadRulesFile: function() { - var flags = NS_RDONLY; - var rulesFile = this.getRulesFile(); - if (rulesFile.exists()) { - var fileContents = EnigmailFiles.readFile(rulesFile); - - return this.loadRulesFromString(fileContents); - } - - return false; - }, - - loadRulesFromString: function(contents) { - EnigmailLog.DEBUG("rules.jsm: loadRulesFromString()\n"); - if (contents.length === 0 || contents.search(/^\s*$/) === 0) { - return false; - } - - var domParser; - try { - domParser = new DOMParser(); - } catch (ex) { - domParser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser); - } - rulesListHolder.rulesList = domParser.parseFromString(contents, "text/xml"); - - return true; - }, - - saveRulesFile: function() { - EnigmailLog.DEBUG("rules.jsm: saveRulesFile()\n"); - - var flags = NS_WRONLY | NS_CREATE_FILE | NS_TRUNCATE; - var domSerializer; - - try { - domSerializer = new XMLSerializer(); - } catch (ex) { - domSerializer = Cc["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Ci.nsIDOMSerializer); - } - - var rulesFile = this.getRulesFile(); - if (rulesFile) { - if (rulesListHolder.rulesList) { - // the rule list is not empty -> write into file - return EnigmailFiles.writeFileContents(rulesFile.path, - domSerializer.serializeToString(rulesListHolder.rulesList.firstChild), - DEFAULT_FILE_PERMS); - } else { - // empty rule list -> delete rules file - try { - rulesFile.remove(false); - } catch (ex) {} - return true; - } - } else { - return false; - } - }, - - getRulesData: function(rulesListObj) { - EnigmailLog.DEBUG("rules.jsm: getRulesData()\n"); - - var ret = true; - - if (!rulesListHolder.rulesList) { - ret = this.loadRulesFile(); - } - - if (rulesListHolder.rulesList) { - rulesListObj.value = rulesListHolder.rulesList; - return ret; - } - - rulesListObj.value = null; - return false; - }, - - /** - * Create new rule - * - * @param appendToEnd: Boolean - true: append rule at the end of the rules list - * false: insert rule at the start of the rules list - * @param toAddress: String - Adress(es) to match. Multiple email addresses are separated by spaces. - * The matching is done on substrings, with curly brackets ({}) defining substring boundaries: - * "{" is equivalent to ^ in regexp - * "}" is equivalent to $ in regexp - * @param keyList: String - space separated list of key IDs (starting with 0x) - * If keyList === ".", use the email address - * @param sign: Number - 0/1/2 as defined below - * @param encrypt: Number - 0/1/2 as defined below - * @param pgpMime: Number - 0/1/2 as defined below - * @param flags: Number - 0: no flags / 1: negate rule - * - * sign/encrypt/pgpMime values: - * 0: Disable the action (= "Never") - * 1: Use the setting in Message Composition - * 2: Enable the action (= "Always") - */ - addRule: function(appendToEnd, toAddress, keyList, sign, encrypt, pgpMime, flags) { - EnigmailLog.DEBUG("rules.jsm: addRule()\n"); - var domParser; - if (!rulesListHolder.rulesList) { - try { - domParser = new DOMParser(); - } catch (ex) { - domParser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser); - } - - rulesListHolder.rulesList = domParser.parseFromString("", "text/xml"); - } - var negate = (flags & 1); - var rule = rulesListHolder.rulesList.createElement("pgpRule"); - rule.setAttribute("email", toAddress.toLowerCase()); - rule.setAttribute("keyId", keyList); - rule.setAttribute("sign", sign); - rule.setAttribute("encrypt", encrypt); - rule.setAttribute("pgpMime", pgpMime); - rule.setAttribute("negateRule", flags); - var origFirstChild = rulesListHolder.rulesList.firstChild.firstChild; - - if (origFirstChild && (!appendToEnd)) { - rulesListHolder.rulesList.firstChild.insertBefore(rule, origFirstChild); - rulesListHolder.rulesList.firstChild.insertBefore(rulesListHolder.rulesList.createTextNode(EnigmailOS.isDosLike ? "\r\n" : "\n"), origFirstChild); - } else { - rulesListHolder.rulesList.firstChild.appendChild(rule); - rulesListHolder.rulesList.firstChild.appendChild(rulesListHolder.rulesList.createTextNode(EnigmailOS.isDosLike ? "\r\n" : "\n")); - } - }, - - /** - * Create new rule or update existing rule if the rule already exists. - * The key to decide if the rule exists is the email address (must match 1:1) - * - * @param ruleObj: Object with attributes {keyList, sign, encrypt, pgpMime, flags} - * @return: Number: 0 - no update / 1 - rule updated / 2 - new rule created - */ - insertOrUpdateRule: function(ruleObj) { - if ((!("email" in ruleObj)) || ruleObj.email.length === 0) return 0; - - let node = this.getRuleByEmail(ruleObj.email); - - if (node) { - node.setAttribute("keyId", ruleObj.keyList); - node.setAttribute("sign", ruleObj.sign); - node.setAttribute("encrypt", ruleObj.encrypt); - node.setAttribute("pgpMime", ruleObj.pgpMime); - node.setAttribute("negateRule", ruleObj.flags); - this.saveRulesFile(); - - return 1; - } - - // no rule matched, let's add the rule at the start of the list - this.addRule(false, ruleObj.email, ruleObj.keyList, ruleObj.sign, ruleObj.encrypt, ruleObj.pgpMime, ruleObj.flags); - this.saveRulesFile(); - - return 2; - }, - - - /** - * Get a rule if it matches exactly one email address - * - * @param emailAddr: String - emailAddress to search - * - * @return Object: node object (DOM object) - */ - getRuleByEmail: function(emailAddr) { - emailAddr = emailAddr.toLowerCase(); - - if (emailAddr.search(/^\{.*\}$/) < 0) { - emailAddr = "{" + emailAddr + "}"; - } - - let rulesListObj = {}; - this.getRulesData(rulesListObj); - let rulesList = rulesListObj.value; - - if (rulesList) { - for (let node = rulesList.firstChild.firstChild; node; node = node.nextSibling) { - if (node.tagName == "pgpRule") { - try { - let nodeEmail = node.getAttribute("email"); - if (!nodeEmail) { - continue; - } - if (nodeEmail.toLowerCase() === emailAddr) { - return node; - } - } catch (ex) { - EnigmailLog.DEBUG("rules.jsm: getRuleByEmail(): ignore exception: " + ex.description + "\n"); - } - } - } - } - - return null; - }, - - clearRules: function() { - rulesListHolder.rulesList = null; - }, - - DEBUG_EmailList: function(name, list) { - EnigmailLog.DEBUG(" " + name + ":\n"); - for (let i = 0; i < list.length; i++) { - let elem = list[i]; - let str = " [" + i + "]: "; - if (elem.orig) { - str += "orig: '" + elem.orig + "' "; - } - if (elem.addr) { - str += "addr: '" + elem.addr + "' "; - } - if (elem.keys) { - str += "keys: '" + elem.keys + "' "; - } - EnigmailLog.DEBUG(str + "\n"); - } - }, - - /** - * process resulting sign/encryp/pgpMime mode for passed string of email addresses and - * use rules and interactive rule dialog to replace emailAddrsStr by known keys - * Input parameters: - * @emailAddrsStr: comma and space separated string of addresses to process - * @startDialogForMissingKeys: true: start dialog for emails without key(s) - * Output parameters: - * @matchedKeysObj.value: comma separated string of matched keys AND email addresses for which no key was found (or "") - * @matchedKeysObj.addrKeysList: all email/keys mappings (array of objects with addr as string and keys as comma separated string) - * (does NOT contain emails for which no key was found) - * @matchedKeysObj.addrNoKeyList: list of emails that don't have a key according to rules - * @flagsObj: return value for combined sign/encrype/pgpMime mode - * values might be: 0='never', 1='maybe', 2='always', 3='conflict' - * - * @return: false if error occurred or processing was canceled - */ - mapAddrsToKeys: function(emailAddrsStr, startDialogForMissingKeys, window, - matchedKeysObj, flagsObj) { - EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): emailAddrsStr=\"" + emailAddrsStr + "\" startDialogForMissingKeys=" + startDialogForMissingKeys + "\n"); - - let enigmailSvc = EnigmailCore.getService(); - if (!enigmailSvc) { - EnigmailLog.DEBUG("EnigmailCore Service is down\n"); - return false; - } - - // initialize return value and the helper variables for them: - matchedKeysObj.value = ""; - flagsObj.value = false; - let flags = {}; // object to be able to modify flags in subfunction - flags.sign = EnigmailConstants.ENIG_UNDEF; // default sign flag is: maybe - flags.encrypt = EnigmailConstants.ENIG_UNDEF; // default encrypt flag is: maybe - flags.pgpMime = EnigmailConstants.ENIG_UNDEF; // default pgpMime flag is: maybe - - // create openList: list of addresses not processed by rules yet - // - each entry has - // - orig: the original full email address - // - addr: the lowercased pure email address to check against rules and keys - // - elements will be moved - // - to addrKeysList if a matching rule with keys was found - // - to addrNoKeyList if a rule with "do not process further rules" ("." as key) applies - let emailAddrList = ("," + emailAddrsStr + ",").split(/\s*,\s*/); - - let openList = []; - for (let i = 0; i < emailAddrList.length; ++i) { - let orig = emailAddrList[i]; - if (orig) { - let addr = null; - try { - addr = EnigmailFuncs.stripEmail(orig.toLowerCase()); - } catch (ex) {} - if (addr) { - let elem = { - orig: orig, - addr: addr - }; - openList.push(elem); - } - } - } - //this.DEBUG_EmailList("openList", openList); - let addrKeysList = []; // NEW: list of found email addresses and their associated keys - let addrNoKeyList = []; // NEW: final list of email addresses that have no key according to rules - - // process recipient rules - let rulesListObj = {}; - if (this.getRulesData(rulesListObj)) { - - let rulesList = rulesListObj.value; - if (rulesList.firstChild.nodeName == "parsererror") { - EnigmailDialog.alert(window, "Invalid pgprules.xml file:\n" + rulesList.firstChild.textContent); - return false; - } - EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): rules successfully loaded; now process them\n"); - - // go through all rules to find match with email addresses - // - note: only if the key field has a value, an address is done with processing - for (let node = rulesList.firstChild.firstChild; node; node = node.nextSibling) { - if (node.tagName == "pgpRule") { - try { - let rule = {}; - rule.email = node.getAttribute("email"); - if (!rule.email) { - continue; - } - rule.negate = false; - if (node.getAttribute("negateRule")) { - rule.negate = Number(node.getAttribute("negateRule")); - } - if (!rule.negate) { - rule.keyId = node.getAttribute("keyId"); - rule.sign = node.getAttribute("sign"); - rule.encrypt = node.getAttribute("encrypt"); - rule.pgpMime = node.getAttribute("pgpMime"); - this.mapRuleToKeys(rule, - openList, flags, addrKeysList, addrNoKeyList, false); - } - // no negate rule handling (turned off in dialog) - } catch (ex) { - EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): ignore exception: " + ex.description + "\n"); - } - } - } - - // go again through the list to find autocrypt:// prefixed rules - for (let node = rulesList.firstChild.firstChild; node; node = node.nextSibling) { - if (node.tagName == "pgpRule") { - try { - let rule = {}; - rule.email = node.getAttribute("email"); - if (!rule.email) { - continue; - } - rule.negate = false; - if (node.getAttribute("negateRule")) { - rule.negate = Number(node.getAttribute("negateRule")); - } - if (!rule.negate) { - rule.keyId = node.getAttribute("keyId"); - rule.sign = node.getAttribute("sign"); - rule.encrypt = node.getAttribute("encrypt"); - rule.pgpMime = node.getAttribute("pgpMime"); - this.mapRuleToKeys(rule, - openList, flags, addrKeysList, addrNoKeyList, true); - } - // no negate rule handling (turned off in dialog) - } catch (ex) { - EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): ignore exception: " + ex.description + "\n"); - } - } - } - - } - - // NOTE: here we have - // - openList: the addresses not having any key assigned yet - // (and not marked as don't process any other rule) - // - addresses with "don't process other rules" are in addrNoKeyList - //this.DEBUG_EmailList("openList", openList); - //this.DEBUG_EmailList("addrKeysList", addrKeysList); - //this.DEBUG_EmailList("addrnoKeyList", addrnoKeyList); - - // if requested: start dialog to add new rule for each missing key - if (startDialogForMissingKeys) { - let inputObj = {}; - let resultObj = {}; - for (let i = 0; i < openList.length; i++) { - let theAddr = openList[i].addr; - // start dialog only if the email address contains a @ or no 0x at the beginning: - // - reason: newsgroups have neither @ nor 0x - if (theAddr.indexOf("@") != -1 || theAddr.indexOf("0x") !== 0) { - inputObj.toAddress = "{" + theAddr + "}"; - inputObj.options = ""; - inputObj.command = "add"; - window.openDialog("chrome://enigmail/content/ui/enigmailSingleRcptSettings.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, resultObj); - if (resultObj.cancelled === true) { - return false; - } - - if (!resultObj.negate) { - this.mapRuleToKeys(resultObj, - openList, flags, addrKeysList, addrNoKeyList, false); - } - // no negate rule handling (turned off in dialog) - } - } - } - - // return value of OLD interface: - // IFF we found keys, return keys AND unprocessed addresses in matchedKeysObj.value as comma-separated string - if (addrKeysList.length > 0) { - let tmpList = addrKeysList.concat(addrNoKeyList).concat(openList); - matchedKeysObj.value = tmpList[0].keys; - for (let idx = 1; idx < tmpList.length; ++idx) { - if (tmpList[idx].keys) { - matchedKeysObj.value += ", " + tmpList[idx].keys; - } else { - matchedKeysObj.value += ", " + tmpList[idx].addr; - } - } - // sort key list and make it unique? - } - - // return value of NEW interface: - // return - // - in matchedKeysObj.addrKeysList: found email/keys mappings (array of objects with addr and keys) - // - in matchedKeysObj.addrNoKeyList: list of unprocessed emails - matchedKeysObj.addrKeysList = addrKeysList; - if (openList.length > 0) { - matchedKeysObj.addrNoKeyList = addrNoKeyList.concat(openList); - } else { - matchedKeysObj.addrNoKeyList = addrNoKeyList; - } - - // return result from combining flags - flagsObj.sign = flags.sign; - flagsObj.encrypt = flags.encrypt; - flagsObj.pgpMime = flags.pgpMime; - flagsObj.value = true; - - EnigmailLog.DEBUG(" found keys:\n"); - for (let i = 0; i < matchedKeysObj.addrKeysList.length; i++) { - EnigmailLog.DEBUG(" " + matchedKeysObj.addrKeysList[i].addr + ": " + matchedKeysObj.addrKeysList[i].keys + "\n"); - } - EnigmailLog.DEBUG(" addresses without keys:\n"); - for (let i = 0; i < matchedKeysObj.addrNoKeyList.length; i++) { - EnigmailLog.DEBUG(" " + matchedKeysObj.addrNoKeyList[i].addr + "\n"); - } - EnigmailLog.DEBUG(" old returned value:\n"); - EnigmailLog.DEBUG(" " + matchedKeysObj.value + "\n"); - - return true; - }, - - mapRuleToKeys: function(rule, openList, flags, addrKeysList, addrNoKeyList, isAutocryptEmail = false) { - //EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys() rule.email='" + rule.email + "'\n"); - let ruleList = rule.email.toLowerCase().split(/[ ,;]+/); - for (let ruleIndex = 0; ruleIndex < ruleList.length; ++ruleIndex) { - let ruleEmailElem = ruleList[ruleIndex]; // ruleEmailElem has format such as '{name@qqq.de}' or '@qqq' or '{name' or '@qqq.de}' - //EnigmailLog.DEBUG(" process ruleElem: '" + ruleEmailElem + "'\n"); - for (let openIndex = 0; openIndex < openList.length; ++openIndex) { - let addr = openList[openIndex].addr; - // search with { and } around because these are used as start and end markers in the rules: - let idx; - - if (isAutocryptEmail) { - idx = ('{' + EnigmailConstants.AC_RULE_PREFIX + addr + '}').indexOf(ruleEmailElem); - } else { - idx = ('{' + addr + '}').indexOf(ruleEmailElem); - } - if (idx >= 0) { - if (ruleEmailElem == rule.email) { - EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys(): for '" + addr + "' ('" + openList[openIndex].orig + - "') found matching rule element '" + ruleEmailElem + "'\n"); - } else { - EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys(): for '" + addr + "' ('" + openList[openIndex].orig + - "') found matching rule element '" + ruleEmailElem + "' from '" + rule.email + "'\n"); - } - - - - // process rule: - // NOTE: rule.keyId might be: - // - keys: => assign keys to all matching emails - // and mark matching address as no longer open - // - ".": signals "Do not check further rules for the matching address" - // => mark all matching address as no longer open, but assign no keys - // (thus, add it to the addrNoKeyList) - // - empty: Either if "Continue with next rule for the matching address" - // OR: if "Use the following OpenPGP keys:" with no keys and - // warning (will turn off encryption) acknowledged - // => then we only process the flags - - if (rule.keyId) { - if (isAutocryptEmail) { - let keyObj = getKeyRing().getKeyById(rule.keyId); - if (keyObj) { - if (!(keyObj.getEncryptionValidity().keyValid)) { - keyObj = null; - deleteAutocryptRule(addr); - } - } - - if (!keyObj) continue; - } - - // move found address from openAdresses to corresponding list (with keys added) - let elem = openList.splice(openIndex, 1)[0]; - --openIndex; // IMPORTANT because we remove element in the array we iterate on - if (rule.keyId != ".") { - // keys exist: assign keys as comma-separated string - let ids = rule.keyId.replace(/[ ,;]+/g, ", "); - elem.keys = ids; - addrKeysList.push(elem); - } else { - // '.': no further rule processing and no key: addr was (finally) processed but without any key - addrNoKeyList.push(elem); - } - } - - // process sign/encrypt/ppgMime settings - flags.sign = this.combineFlagValues(flags.sign, Number(rule.sign)); - flags.encrypt = this.combineFlagValues(flags.encrypt, Number(rule.encrypt)); - flags.pgpMime = this.combineFlagValues(flags.pgpMime, Number(rule.pgpMime)); - - } - } - } - }, - - /** - * check for the attribute of type "sign"/"encrypt"/"pgpMime" of the passed node - * and combine its value with oldVal and check for conflicts - * values might be: 0='never', 1='maybe', 2='always', 3='conflict' - * @oldVal: original input value - * @newVal: new value to combine with - * @return: result value after applying the rule (0/1/2) - * and combining it with oldVal - */ - combineFlagValues: function(oldVal, newVal) { - //EnigmailLog.DEBUG("rules.jsm: combineFlagValues(): oldVal=" + oldVal + " newVal=" + newVal + "\n"); - - // conflict remains conflict - if (oldVal === EnigmailConstants.ENIG_CONFLICT) { - return EnigmailConstants.ENIG_CONFLICT; - } - - // 'never' and 'always' triggers conflict: - if ((oldVal === EnigmailConstants.ENIG_NEVER && newVal === EnigmailConstants.ENIG_ALWAYS) || (oldVal === EnigmailConstants.ENIG_ALWAYS && newVal === EnigmailConstants.ENIG_NEVER)) { - return EnigmailConstants.ENIG_CONFLICT; - } - - // if there is any 'never' return 'never' - // - thus: 'never' and 'maybe' => 'never' - if (oldVal === EnigmailConstants.ENIG_NEVER || newVal === EnigmailConstants.ENIG_NEVER) { - return EnigmailConstants.ENIG_NEVER; - } - - // if there is any 'always' return 'always' - // - thus: 'always' and 'maybe' => 'always' - if (oldVal === EnigmailConstants.ENIG_ALWAYS || newVal === EnigmailConstants.ENIG_ALWAYS) { - return EnigmailConstants.ENIG_ALWAYS; - } - - // here, both values are 'maybe', which we return then - return EnigmailConstants.ENIG_UNDEF; // maybe - } -}; - - -async function deleteAutocryptRule(emailAddr) { - const EnigmailAutocrypt = ChromeUtils.import("chrome://enigmail/content/modules/autocrypt.jsm").EnigmailAutocrypt; - - await EnigmailAutocrypt.deleteUser(emailAddr, "1"); - // make sure that gossip rule is marked as "imported" - await EnigmailAutocrypt.setKeyImported(null, emailAddr); - // try to apply gossip key - await EnigmailAutocrypt.importAutocryptKeys(emailAddr, true); -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/schema.json enigmail-2.2.4/package/schema.json --- enigmail-2.1.6+ds1/package/schema.json 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/package/schema.json 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,10 @@ +[{ + "namespace": "enigmailApi", + "functions": [{ + "name": "startEnigmail", + "description": "Enigmail Startup", + "type": "function", + "async": false, + "parameters": [] + }] +}] diff -Nru enigmail-2.1.6+ds1/package/send.jsm enigmail-2.2.4/package/send.jsm --- enigmail-2.1.6+ds1/package/send.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/send.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,146 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailSend"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -var MailServices; -try { - MailServices = ChromeUtils.import("resource:///modules/MailServices.jsm").MailServices; -} -catch (x){ - MailServices = ChromeUtils.import("resource:///modules/mailServices.js").MailServices; -} - -var EnigmailSend = { - /** - * Send out an email - * - * @param msgData - String: complete MIME string of email (including all headers etc.) - * @param compFields - Object: compose fields (nsIMsgCompFields) - * @param listener - Object: progress listener (nsIMsgSendListener) - * - * @return Boolean - true: everything was OK to send the message - */ - - sendMessage: function(msgData, compFields, listener = null) { - EnigmailLog.DEBUG("EnigmailSend.sendMessage()\n"); - let tmpFile, msgIdentity; - try { - tmpFile = EnigmailFiles.getTempDirObj(); - tmpFile.append("message.eml"); - tmpFile.createUnique(0, 0o600); - } - catch (ex) { - return false; - } - - EnigmailFiles.writeFileContents(tmpFile, msgData); - EnigmailLog.DEBUG("EnigmailSend.sendMessage: wrote file: " + tmpFile.path + "\n"); - - try { - msgIdentity = EnigmailStdlib.getIdentityForEmail(compFields.from); - } - catch (ex) { - msgIdentity = EnigmailStdlib.getDefaultIdentity(); - } - - if (!msgIdentity) { - return false; - } - - EnigmailLog.DEBUG("EnigmailSend.sendMessage: identity key: " + msgIdentity.identity.key + "\n"); - - let acct = EnigmailFuncs.getAccountForIdentity(msgIdentity.identity); - if (!acct) return false; - - EnigmailLog.DEBUG("EnigmailSend.sendMessage: account key: " + acct.key + "\n"); - - let msgSend = Cc["@mozilla.org/messengercompose/send;1"].createInstance(Ci.nsIMsgSend); - msgSend.sendMessageFile(msgIdentity.identity, - acct.key, - compFields, - tmpFile, - true, // Delete File On Completion - false, (Services.io.offline ? Ci.nsIMsgSend.nsMsgQueueForLater : Ci.nsIMsgSend.nsMsgDeliverNow), - null, - listener, - null, - ""); // password - - return true; - }, - - /** - * Send message (simplified API) - * - * @param aParams: Object - - * - identity: Object - The identity the user picked to send the message - * - to: String - The recipients. This is a comma-separated list of - * valid email addresses that must be escaped already. You probably want to use - * nsIMsgHeaderParser.MakeFullAddress to deal with names that contain commas. - * - cc (optional) Same remark. - * - bcc (optional) Same remark. - * - returnReceipt (optional) Boolean: ask for a receipt - * - receiptType (optional) Number: default: take from identity - * - requestDsn (optional) Boolean: request a Delivery Status Notification - * - composeSecure (optional) (contains securityInfo for TB < 64) - * - * @param body: complete message source - * @param callbackFunc: function(Boolean) - return true if message was sent successfully - * false otherwise - * - * @return Boolean - true: everything was OK to send the message - */ - simpleSendMessage: function(aParams, body, callbackFunc) { - EnigmailLog.DEBUG("EnigmailSend.simpleSendMessage()\n"); - let fields = Cc["@mozilla.org/messengercompose/composefields;1"] - .createInstance(Ci.nsIMsgCompFields); - let identity = aParams.identity; - - fields.from = identity.email; - fields.to = aParams.to; - if ("cc" in aParams) fields.cc = aParams.cc; - if ("bcc" in aParams) fields.bcc = aParams.bcc; - fields.returnReceipt = ("returnReceipt" in aParams) ? aParams.returnReceipt : identity.requestReturnReceipt; - fields.receiptHeaderType = ("receiptType" in aParams) ? aParams.receiptType : identity.receiptHeaderType; - fields.DSN = ("requestDsn" in aParams) ? aParams.requestDsn : identity.requestDSN; - if ("composeSecure" in aParams) { - if ("securityInfo" in fields) { - // TB < 64 - fields.securityInfo = aParams.securityInfo; - } - else - fields.composeSecure = aParams.composeSecure; - } - - fields.messageId = EnigmailRNG.generateRandomString(27) + "-enigmail"; - body = "Message-Id: " + fields.messageId + "\r\n" + body; - - let listener = { - onStartSending: function() {}, - onProgress: function() {}, - onStatus: function() {}, - onGetDraftFolderURI: function() {}, - onStopSending: function(aMsgID, aStatus, aMsg, aReturnFile) { - if (callbackFunc) callbackFunc(true); - }, - onSendNotPerformed: function(aMsgID, aStatus) { - if (callbackFunc) callbackFunc(false); - } - }; - - return this.sendMessage(body, fields, listener); - } -}; diff -Nru enigmail-2.1.6+ds1/package/singletons.jsm enigmail-2.2.4/package/singletons.jsm --- enigmail-2.1.6+ds1/package/singletons.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/singletons.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -8,19 +8,5 @@ var EnigmailSingletons = { - // handle to most recent message reader window - messageReader: null, - - // information about the last PGP/MIME decrypted message (pEp and mimeDecrypt) - lastDecryptedMessage: {}, - - clearLastDecryptedMessage: function() { - let lm = this.lastDecryptedMessage; - lm.lastMessageData = ""; - lm.lastMessageURI = null; - lm.lastStatus = {}; - lm.lastPepStatus = {}; - } + upgradeInfoDisplayed: false }; - -EnigmailSingletons.clearLastDecryptedMessage(); diff -Nru enigmail-2.1.6+ds1/package/socks5Proxy.jsm enigmail-2.2.4/package/socks5Proxy.jsm --- enigmail-2.1.6+ds1/package/socks5Proxy.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/socks5Proxy.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailSocks5Proxy"]; - -const CC = Components.Constructor; - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const getEnigmailPrefs = EnigmailLazy.loader("enigmail/prefs.jsm", "EnigmailPrefs"); - -const CHECK_TOR_URI = "https://check.torproject.org/api/ip"; -const EXPECTED_TOR_EXISTS_RESPONSE = "\"IsTor\":true"; -const TOR_IP_ADDR_PREF = "torIpAddr"; - -const CONNECTION_FLAGS = 0; -const SECONDS_TO_WAIT_FOR_CONNECTION = -1; - -function createCheckTorURIChannel() { - EnigmailLog.DEBUG("socks5proxy.jsm: createCheckTorURIChannel()\n"); - const ioservice = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - return ioservice.newChannel2(CHECK_TOR_URI, "UTF-8", null, null, null, null, null, null); -} - -function protocolProxyService() { - return Cc["@mozilla.org/network/protocol-proxy-service;1"].getService(Ci.nsIProtocolProxyService); -} - -function createScriptableInputStream(inputStream) { - return CC("@mozilla.org/scriptableinputstream;1", "nsIScriptableInputStream", "init")(inputStream); -} - -function buildListener(hasFoundTor, isDoneChecking) { - EnigmailLog.DEBUG("socks5proxy.jsm: buildListener()\n"); - let listener = { - onStartRequest: function(request) {}, - onStopRequest: function(request, statusCode) { - isDoneChecking(); - }, - QueryInterface: EnigmailCompat.generateQI(["nsIRequestObserver", "nsIStreamListener"]) - }; - - if (EnigmailCompat.isMessageUriInPgpMime()) { - // TB >= 67 - listener.onDataAvailable = function(request, inputStream, offset, count) { - const response = createScriptableInputStream(inputStream).read(count); - hasFoundTor(response.indexOf(EXPECTED_TOR_EXISTS_RESPONSE) !== -1); - }; - } else { - listener.onDataAvailable = function(request, ctxt, inputStream, offset, count) { - const response = createScriptableInputStream(inputStream).read(count); - hasFoundTor(response.indexOf(EXPECTED_TOR_EXISTS_RESPONSE) !== -1); - }; - } - - return listener; -} - -function getCurrentThread() { - return Cc["@mozilla.org/thread-manager;1"].getService(Ci.nsIThreadManager).currentThread; -} - -function filterWith(portPref) { - EnigmailLog.DEBUG("socks5proxy.jsm: filterWith()\n"); - - const port = getEnigmailPrefs().getPref(portPref); - const failoverProxy = null; - return { - applyFilter: function(proxyService, uri, proxyInfo) { - return proxyService.newProxyInfo("socks", getEnigmailPrefs().getPref(TOR_IP_ADDR_PREF), port, CONNECTION_FLAGS, SECONDS_TO_WAIT_FOR_CONNECTION, failoverProxy); - }, - QueryInterface: EnigmailCompat.generateQI(["nsIProtocolProxyFilter"]) - }; -} - -/** - * Checks if Tor is running - * - * @param portPref - string: the preferences key of either torServicePort or torBrowserBundlePort - * - * @return true if a running Tor service has been found, false otherwise - */ -function checkTorExists(portPref) { - EnigmailLog.DEBUG("socks5proxy.jsm: checkTorExists()\n"); - const pps = protocolProxyService().registerFilter(filterWith(portPref), 1); - - let doneCheckingTor = false; - let foundTor = false; - - function isDoneChecking() { - doneCheckingTor = true; - } - - function hasFoundTor(val) { - foundTor = val; - } - - const listener = buildListener(hasFoundTor, isDoneChecking); - - const sharedContext = null; - const ioservice = createCheckTorURIChannel().asyncOpen(listener, sharedContext); - const currentThread = getCurrentThread(); - - while (!doneCheckingTor) { - currentThread.processNextEvent(true); - } - - return foundTor; -} - -var EnigmailSocks5Proxy = { - checkTorExists: checkTorExists, - torIpAddr: function() { - EnigmailLog.DEBUG("socks5proxy.jsm: torIpAddr()\n"); - return getEnigmailPrefs().getPref(TOR_IP_ADDR_PREF); - } -}; diff -Nru enigmail-2.1.6+ds1/package/sqliteDb.jsm enigmail-2.2.4/package/sqliteDb.jsm --- enigmail-2.1.6+ds1/package/sqliteDb.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/sqliteDb.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,193 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Module that provides generic functions for the Enigmail SQLite database - */ - -var EXPORTED_SYMBOLS = ["EnigmailSqliteDb"]; - - - -const Cr = Components.results; - - -const Sqlite = ChromeUtils.import("resource://gre/modules/Sqlite.jsm").Sqlite; -const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; - - -var EnigmailSqliteDb = { - /** - * Provide an sqlite conection object asynchronously, retrying if needed - * - * @return {Promise}: the Sqlite database object - */ - - openDatabase: function() { - EnigmailLog.DEBUG("sqliteDb.jsm: openDatabase()\n"); - return new Promise((resolve, reject) => { - openDatabaseConn(resolve, reject, 100, Date.now() + 10000); - }); - }, - - checkDatabaseStructure: async function() { - EnigmailLog.DEBUG(`sqliteDb.jsm: checkDatabaseStructure()\n`); - let conn; - try { - conn = await this.openDatabase(); - await checkAutocryptTable(conn); - await checkWkdTable(conn); - conn.close(); - EnigmailLog.DEBUG(`sqliteDb.jsm: checkDatabaseStructure - success\n`); - } - catch (ex) { - EnigmailLog.ERROR(`sqliteDb.jsm: checkDatabaseStructure: ERROR: ${ex}\n`); - if (conn) { - conn.close(); - } - } - } -}; - - -/** - * use a promise to open the Enigmail database. - * - * it's possible that there will be an NS_ERROR_STORAGE_BUSY - * so we're willing to retry for a little while. - * - * @param {function} resolve: function to call when promise succeeds - * @param {function} reject: function to call when promise fails - * @param {Number} waitms: Integer - number of milliseconds to wait before trying again in case of NS_ERROR_STORAGE_BUSY - * @param {Number} maxtime: Integer - unix epoch (in milliseconds) of the point at which we should give up. - */ -function openDatabaseConn(resolve, reject, waitms, maxtime) { - EnigmailLog.DEBUG("sqliteDb.jsm: openDatabaseConn()\n"); - Sqlite.openConnection({ - path: "enigmail.sqlite", - sharedMemoryCache: false - }). - then(connection => { - resolve(connection); - }). - catch(error => { - let now = Date.now(); - if (now > maxtime) { - reject(error); - return; - } - EnigmailTimer.setTimeout(function() { - openDatabaseConn(resolve, reject, waitms, maxtime); - }, waitms); - }); -} - - -/** - * Ensure that the database structure matches the latest version - * (table is available) - * - * @param connection: Object - SQLite connection - * - * @return {Promise} - */ -async function checkAutocryptTable(connection) { - try { - let exists = await connection.tableExists("autocrypt_keydata"); - EnigmailLog.DEBUG("sqliteDB.jsm: checkAutocryptTable - success\n"); - if (!exists) { - await createAutocryptTable(connection); - } - else { - let hasKeyRingInserted = false; - await connection.execute("pragma table_info('autocrypt_keydata');", {}, - function _onRow(row) { - let colname = row.getResultByName("name"); - if (colname === "keyring_inserted") hasKeyRingInserted = true; - }); - if (hasKeyRingInserted) return true; - - await connection.execute("alter table autocrypt_keydata add keyring_inserted text default '0';", {}, - function _onRow(row) {}); - let EnigmailAutocrypt = ChromeUtils.import("chrome://enigmail/content/modules/autocrypt.jsm").EnigmailAutocrypt; - EnigmailAutocrypt.updateAllImportedKeys(); - } - } - catch (error) { - EnigmailLog.DEBUG(`sqliteDB.jsm: checkAutocryptTable - error ${error}\n`); - throw error; - } - - return true; -} -/** - * Create the "autocrypt_keydata" table and the corresponding index - * - * @param connection: Object - SQLite connection - * - * @return {Promise} - */ -async function createAutocryptTable(connection) { - EnigmailLog.DEBUG("sqliteDB.jsm: createAutocryptTable()\n"); - - await connection.execute("create table autocrypt_keydata (" + - "email text not null, " + // email address of correspondent - "keydata text not null, " + // base64-encoded key as received - "fpr text, " + // fingerprint of key - "type text not null, " + // key type (1==OpenPGP, regular key. 1g == OpenPGP gossip) - "last_seen_autocrypt text, " + - "last_seen text not null, " + - "state text not null," + // timestamp of last mail received for the email/type combination - "keyring_inserted text default '0');" - ); - - EnigmailLog.DEBUG("sqliteDB.jsm: createAutocryptTable - index\n"); - await connection.execute("create unique index autocrypt_keydata_i1 on autocrypt_keydata(email, type)"); - - return null; -} - - - -/** - * Ensure that the database has the wkd_lookup_timestamp table. - * - * @param connection: Object - SQLite connection - * - * @return Promise - */ -async function checkWkdTable(connection) { - EnigmailLog.DEBUG("sqliteDB.jsm: checkWkdTable()\n"); - - try { - let exists = await connection.tableExists("wkd_lookup_timestamp"); - EnigmailLog.DEBUG("sqliteDB.jsm: checkWkdTable - success\n"); - if (!exists) { - await createWkdTable(connection); - } - } - catch (error) { - EnigmailLog.DEBUG("sqliteDB.jsm: checkWkdTable - error\n"); - throw (error); - } -} - -/** - * Create the "wkd_lookup_timestamp" table. - * - * @param connection: Object - SQLite connection - * - * @return Promise - */ -function createWkdTable(connection) { - EnigmailLog.DEBUG("sqliteDB.jsm: createWkdTable()\n"); - - return connection.execute( - "create table wkd_lookup_timestamp (" + - "email text not null primary key, " + // email address of correspondent - "last_seen integer);"); // timestamp of last mail received for the email/type combination -} diff -Nru enigmail-2.1.6+ds1/package/stdlib.jsm enigmail-2.2.4/package/stdlib.jsm --- enigmail-2.1.6+ds1/package/stdlib.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/stdlib.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,131 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Wrapper library for TB-stdlib to avoid naming conflicts - */ - - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailStdlib"]; - -const { - composeInIframe, - getEditorForIframe, - citeString, - htmlToPlainText, - simpleWrap, - plainTextToHtml, - replyAllParams, - determineComposeHtml, - composeMessageTo, - getSignatureContentsForAccount -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/compose.jsm"); - -const { - gIdentities, - fillIdentities, - getIdentities, - getDefaultIdentity, - getIdentityForEmail, - hasConfiguredAccounts, - range, - MixIn, - combine, - entries, - dateAsInMessageList, - escapeHtml, - sanitize, - parseMimeLine, - encodeUrlParameters, - decodeUrlParameters, - systemCharset, - isOSX, - isWindows, - isAccel -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/misc.jsm"); - -const { - msgHdrToMessageBody, - msgHdrToNeckoURL, - msgHdrGetTags, - msgUriToMsgHdr, - msgHdrGetUri, - msgHdrFromNeckoUrl, - msgHdrSetTags, - msgHdrIsDraft, - msgHdrIsSent, - msgHdrIsArchive, - msgHdrIsInbox, - msgHdrIsRss, - msgHdrIsNntp, - msgHdrIsJunk, - msgHdrsMarkAsRead, - msgHdrsArchive, - msgHdrsDelete, - getMail3Pane, - msgHdrGetHeaders, - msgHdrsModifyRaw -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/msgHdrUtils.jsm"); - -var EnigmailStdlib = { - // compose.jsm - 'composeInIframe': composeInIframe, - 'getEditorForIframe': getEditorForIframe, - 'citeString': citeString, - 'htmlToPlainText': htmlToPlainText, - 'simpleWrap': simpleWrap, - 'plainTextToHtml': plainTextToHtml, - 'replyAllParams': replyAllParams, - 'determineComposeHtml': determineComposeHtml, - 'composeMessageTo': composeMessageTo, - 'getSignatureContentsForAccount': getSignatureContentsForAccount, - - // misc.jsm - 'gIdentities': gIdentities, - 'fillIdentities': fillIdentities, - 'getIdentities': getIdentities, - 'getDefaultIdentity': getDefaultIdentity, - 'getIdentityForEmail': getIdentityForEmail, - 'hasConfiguredAccounts': hasConfiguredAccounts, - 'range': range, - 'MixIn': MixIn, - 'combine': combine, - 'entries': entries, - 'dateAsInMessageList': dateAsInMessageList, - 'escapeHtml': escapeHtml, - 'sanitize': sanitize, - 'parseMimeLine': parseMimeLine, - 'encodeUrlParameters': encodeUrlParameters, - 'decodeUrlParameters': decodeUrlParameters, - 'systemCharset': systemCharset, - 'isOSX': isOSX, - 'isWindows': isWindows, - 'isAccel': isAccel, - - // msgHdrUtils.jsm - 'msgHdrToMessageBody': msgHdrToMessageBody, - 'msgHdrToNeckoURL': msgHdrToNeckoURL, - 'msgHdrGetTags': msgHdrGetTags, - 'msgUriToMsgHdr': msgUriToMsgHdr, - 'msgHdrGetUri': msgHdrGetUri, - 'msgHdrFromNeckoUrl': msgHdrFromNeckoUrl, - 'msgHdrSetTags': msgHdrSetTags, - 'msgHdrIsDraft': msgHdrIsDraft, - 'msgHdrIsSent': msgHdrIsSent, - 'msgHdrIsArchive': msgHdrIsArchive, - 'msgHdrIsInbox': msgHdrIsInbox, - 'msgHdrIsRss': msgHdrIsRss, - 'msgHdrIsNntp': msgHdrIsNntp, - 'msgHdrIsJunk': msgHdrIsJunk, - 'msgHdrsMarkAsRead': msgHdrsMarkAsRead, - 'msgHdrsArchive': msgHdrsArchive, - 'msgHdrsDelete': msgHdrsDelete, - 'getMail3Pane': getMail3Pane, - 'msgHdrGetHeaders': msgHdrGetHeaders, - 'msgHdrsModifyRaw': msgHdrsModifyRaw -}; \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/armor-test.js enigmail-2.2.4/package/tests/armor-test.js --- enigmail-2.1.6+ds1/package/tests/armor-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/armor-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("armor.jsm"); /*global EnigmailArmor: false, EnigmailConstants: false */ -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; - -test(function shouldLocateEnigmailArmoredBlock() { - const text = " -----BEGIN PGP SIGNATURE-----\n" + - " Version: GnuPG/MacGPG2 v2.0.22 (Darwin)\n" + - " Comment: GPGTools - https://gpgtools.org\n" + - "\n" + - " iQIcBAEBCgAGBQJVSkxrAAoJEFco/AmgID3sm68QALBa6I6r7LLopA8R+S/CpO66\n" + - " 6qQm0zidQ7bhMDNiKPD+/TG/Blvu0n10Cnt5Wk6lD7dwPKAsHVq1fGUva4rkEbi4\n" + - " R9nx7BQGBiFCpYl3K1bHJ/QrnYms5wpKseqGtW+8wq8wKx68sWi83xsKN2Ml2SGA\n" + - " 95nvbvaQ6yQlynGXhPhGhdT3L2tdPsulnSwnd3NZJ83U73aYIN5jc5+UyWduLqho\n" + - " xnD127JQYb8X2UjdXyOnA/E/VHvCWt9+Ck9s6VdwUSEBs41vJ/kyrmPE6u9sIQX7\n" + - " 9ZujMzN05+9A1Mtwp4dsDIbLMeX6FS44CqcGiUKzyx5ewiYq9lcAReM52i+4kmBM\n" + - " 4B/yLXDrWWOBiUCUQaOWC8PyBAc2cHLf62m6+oEfEMMCXli/XZuBC442qYuWNgf+\n" + - " yLLhyaA27rqMxmhdFtKSOzrRaxkTTb1oQFQwHYfeHT7kFpPjq4p1Jv+p8w0pcq0P\n" + - " j5hiLABLveEcLn4fEpqLROdi/Vz6Mp2nnbhcz+xe/w2KWmGgfl/kg2T/9YVeLox9\n" + - " kaqVqNezYPfFZ1iQgGKNBXl1SMqHtTRAvHfH1k0E8qg3t222KU2pALp0A/LSvu/T\n" + - " P3g8OIpqWRI0uBZQ/Gp/S1Fjb3DHfE+Y3IhVf5SkhjIYIvViSrbGqGUmK+jwGMia\n" + - " o29CFuiGhiz3ISDRKrtH\n" + - " =MeaY\n" + - " -----END PGP SIGNATURE-----"; - const beginIndexObj = {}; - const endIndexObj = {}; - const indentStrObj = {}; - const indentStr = ""; - const blockType = EnigmailArmor.locateArmoredBlock(text, 0, indentStr, beginIndexObj, endIndexObj, indentStrObj); - Assert.equal(0, beginIndexObj.value); - Assert.equal(" ", indentStrObj.value); - Assert.equal("SIGNATURE", blockType); -}); - -test(function shouldExtractSignaturePart() { - const signature = { - text: "Hello I'm here.\n please contact me via this email! \n", - header: "Version: GnuPG/MacGPG2 v2.0.22 (Darwin)\n" + - "Comment: GPGTools - https://gpgtools.org\n", - armor: "iQIcBAEBCgAGBQJVSkxrAAoJEFco/AmgID3sm68QALBa6I6r7LLopA8R+S/CpO66\n" + - "6qQm0zidQ7bhMDNiKPD+/TG/Blvu0n10Cnt5Wk6lD7dwPKAsHVq1fGUva4rkEbi4\n" + - "R9nx7BQGBiFCpYl3K1bHJ/QrnYms5wpKseqGtW+8wq8wKx68sWi83xsKN2Ml2SGA\n" + - "95nvbvaQ6yQlynGXhPhGhdT3L2tdPsulnSwnd3NZJ83U73aYIN5jc5+UyWduLqho\n" + - "xnD127JQYb8X2UjdXyOnA/E/VHvCWt9+Ck9s6VdwUSEBs41vJ/kyrmPE6u9sIQX7\n" + - "9ZujMzN05+9A1Mtwp4dsDIbLMeX6FS44CqcGiUKzyx5ewiYq9lcAReM52i+4kmBM\n" + - "4B/yLXDrWWOBiUCUQaOWC8PyBAc2cHLf62m6+oEfEMMCXli/XZuBC442qYuWNgf+\n" + - "yLLhyaA27rqMxmhdFtKSOzrRaxkTTb1oQFQwHYfeHT7kFpPjq4p1Jv+p8w0pcq0P\n" + - "j5hiLABLveEcLn4fEpqLROdi/Vz6Mp2nnbhcz+xe/w2KWmGgfl/kg2T/9YVeLox9\n" + - "kaqVqNezYPfFZ1iQgGKNBXl1SMqHtTRAvHfH1k0E8qg3t222KU2pALp0A/LSvu/T\n" + - "P3g8OIpqWRI0uBZQ/Gp/S1Fjb3DHfE+Y3IhVf5SkhjIYIvViSrbGqGUmK+jwGMia\n" + - "o29CFuiGhiz3ISDRKrtH\n" + - "=MeaY" - }; - const signature_block = "\n\n" + - signature.text + - "-----BEGIN PGP SIGNATURE-----\n" + - signature.header + - "\n" + - signature.armor + - "\n" + - "-----END PGP SIGNATURE-----"; - - const signature_text = EnigmailArmor.extractSignaturePart(signature_block, EnigmailConstants.SIGNATURE_TEXT); - const signature_headers = EnigmailArmor.extractSignaturePart(signature_block, EnigmailConstants.SIGNATURE_HEADERS); - const signature_armor = EnigmailArmor.extractSignaturePart(signature_block, EnigmailConstants.SIGNATURE_ARMOR); - Assert.equal(signature.text, signature_text); - Assert.equal(signature.header, signature_headers); - Assert.equal(signature.armor.replace(/\s*/g, ""), signature_armor); -}); - - -test(function shouldGetArmorHeaders() { - const text = "> -----BEGIN PGP SIGNATURE-----\n" + - "> Version: GnuPG/MacGPG2 v2.0.22 (Darwin)\n" + - "> Comment: GPGTools - https://gpgtools.org\n" + - "> \n" + - "> iQIcBAEBCgAGBQJVSkxrAAoJEFco/AmgID3sm68QALBa6I6r7LLopA8R+S/CpO66\n" + - "> 6qQm0zidQ7bhMDNiKPD+/TG/Blvu0n10Cnt5Wk6lD7dwPKAsHVq1fGUva4rkEbi4\n" + - "> R9nx7BQGBiFCpYl3K1bHJ/QrnYms5wpKseqGtW+8wq8wKx68sWi83xsKN2Ml2SGA\n" + - "> 95nvbvaQ6yQlynGXhPhGhdT3L2tdPsulnSwnd3NZJ83U73aYIN5jc5+UyWduLqho\n" + - "> xnD127JQYb8X2UjdXyOnA/E/VHvCWt9+Ck9s6VdwUSEBs41vJ/kyrmPE6u9sIQX7\n" + - "> 9ZujMzN05+9A1Mtwp4dsDIbLMeX6FS44CqcGiUKzyx5ewiYq9lcAReM52i+4kmBM\n" + - "> 4B/yLXDrWWOBiUCUQaOWC8PyBAc2cHLf62m6+oEfEMMCXli/XZuBC442qYuWNgf+\n" + - "> yLLhyaA27rqMxmhdFtKSOzrRaxkTTb1oQFQwHYfeHT7kFpPjq4p1Jv+p8w0pcq0P\n" + - "> j5hiLABLveEcLn4fEpqLROdi/Vz6Mp2nnbhcz+xe/w2KWmGgfl/kg2T/9YVeLox9\n" + - "> kaqVqNezYPfFZ1iQgGKNBXl1SMqHtTRAvHfH1k0E8qg3t222KU2pALp0A/LSvu/T\n" + - "> P3g8OIpqWRI0uBZQ/Gp/S1Fjb3DHfE+Y3IhVf5SkhjIYIvViSrbGqGUmK+jwGMia\n" + - "> o29CFuiGhiz3ISDRKrtH\n" + - "> =MeaY\n" + - "> -----END PGP SIGNATURE-----"; - - let hdr = EnigmailArmor.getArmorHeaders(text); - - Assert.ok("version" in hdr); - Assert.ok("comment" in hdr); - Assert.equal(hdr.comment, "GPGTools - https://gpgtools.org"); -}); - - -test(function shouldSplitKeys() { - const publicKey1 = do_get_file("resources/dev-strike.asc", false); - const publicKey2 = do_get_file("resources/dev-tiger.asc", false); - - const pubKeyData = EnigmailFiles.readFile(publicKey1) + "\r\n" + EnigmailFiles.readFile(publicKey2); - - - let keyBlocks = EnigmailArmor.splitArmoredBlocks(pubKeyData); - - Assert.equal(keyBlocks.length, 2); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/autocrypt-test.js enigmail-2.2.4/package/tests/autocrypt-test.js --- enigmail-2.1.6+ds1/package/tests/autocrypt-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/autocrypt-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,202 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -/* global setupTestAccounts: false, withTestGpgHome: false, withEnigmail: false, component: false, withLogFiles: false */ - -testing("autocrypt.jsm"); /*global EnigmailAutocrypt: false, EnigmailKeyRing: false, EnigmailStdlib: false, EnigmailSqliteDb: false */ -const Sqlite = ChromeUtils.import("resource://gre/modules/Sqlite.jsm").Sqlite; - -const pubkey1 = - `mQENBFdGIzkBCADKys5q0rYiTr/FYdoupmNAJ0o20XWuFp/V58qsnQAMcAY2pCB/ydx9Y7 -A80QjZPuVcE5QdROfvvkMXAA47ZxZrH79Kaqj11DS5XOgtLVtITGtWvrYqIFujxP42ICWB -h7LXUwrHfi93FX74ucXoWo/PZndbo+JBxc0ZsrHUdu24grTDuqLZQ8mRCx5U4tf+zEVIU6 -kXubFzq8aPSnjfEg6MhXxSRictjIBKM0Ez2QwZmh1vAEmvn0kr0VaJJ7xVRgIH1CgNh/WW -tbr0lrblKCkFkTFnQfslWvSEko+LqvwgBSKyKg8VtWbYftnBkn8FPbP5Brp3wYgBc/c7mr -LROqAFABEBAAG0ImRldi10aWdlciA8ZGV2LXRpZ2VyQHRlc3Qubm90cmVhbD6JATcEEwEI -ACEFAldGIzkCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQhDnhcEaXfEb3/gf/V0 -da3gXN5TNOsWZKj/fI2FhQBglJ2vlEamnppwtnWZGktdFZ1h6ymzQ9PY3IidbKctqs/QQW -KtIBVh5k02fvUe99nsFZmINcLeajdu7IqvKxtFBuEwZAA1Bw9dhM3JRQM8z+l+CtbFh6dV -ufU7q5vVEXciCkhdn172QYTMAXNYE4Tfh7eaEAOdRyFcwiAGZ826pOp7Al52frK+MtaXa9 -D2fRINlDXD9+IIR80sig2B4iBGeY+qAmE6bFuw7MtBya6uKupLjtAD/v48Z5wBYuU0jPld -4KH88IWksbQo1zW/O+1N7J1/U9ZGNwpvS+wtfyjlOpTS3YWGmY8sVturZqTrkBDQRXRiM5 -AQgAsDN5j4viE5E8H5N9cfzQ9ZO5BUk66yI2DVEeasqZWFCkRA+uFHcTF6YpCoSn4/Jsvq -vUWVh63uV5vdAiU9+4sNFT8nkP7zD0LQthFtgEXqNo11NR7yvDRT3TOAnGaa+bLyoU/SLX -zSwctZksrQjzQJVSohQNznhj95XH3UEsUydHqje7ljp7NHWAJx+Tlp2Yh6q060/gwh37zs -fdVbaVtjeaAYECX3z6L7JB4KBb9KGlmDmOMngVUuR8XWWE+LEx0m7B+kZ+vZhUOSDDomBP -+8jGJmXlcIt8+LIBq0NeXs/YINCc89saUPw/V6X/NFRkekKFzIprCzwhg0LWl8oXAwARAQ -ABiQEfBBgBCAAJBQJXRiM5AhsMAAoJEIQ54XBGl3xGUvEH/jVTBoRfJ8ohc4Ahal8TyIm8 -vdT/Ax/ddyyaLnCxkLFt0noBlA7062N1Fvv86Ts93EFrK9nF3g20gXKBKETo/vJRqtODIr -wtCMfzPbS/FkQweLtUDZXed0nq/Yaxk60H2HmWm+n9/126F3QIt7is0E3dY0e6DYJGRHnn -+lWnUs/8Ba16Zb/os3GgwEQwr4LPEty6CFQU2DNl5HmajeB1oEqmeDZ2f/y87GRpdCoTgu -dQiHMPdm2kPVbeAA6945W6Y2LSA5Hm+yS8s2dBs4+sEiW97owLz6vcak8Aw+7JFxL2JkoZ -uN28dueoVcFQw3uX0snoBXgo3LYsK71JoufrXhY=`; - -const pubkey2 = - `mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWetJfAZ/ -HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8KTzjXR3qBQ1P7 -f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772LcflipWfncWXD2rBqgR -fR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA7QipP2f0aPzsavNjFnAfC9rm -2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0bugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3 -ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrDNotvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1 -KJxuOF1jx1DibAn9sfP4gtiQFI3FWMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQ -mFQUbqqnZrc07s/aITZN36d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1 -fqlpDYigQwEr4+yJ+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm -54PtA1l0mCT8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wAR -AQABtCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BB -MBCgAnBQJVR5ubAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc -4xHEt/4P/1zf/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi7 -2Dwug6a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywMdSfTAXa+popNccD5yPCJ -VBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCqlmNQ8Z -yAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0rMD4g2ggvII3 -v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7UcjjcP8zvzDYlXAY74 -gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNYVfi/mTggNwEAuAkjp9acEGvk -67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV0FdBaRh+4CkVgSG4/eTLFcnHVB2Zzh -X7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93j -SCyqaIbKqemK8D0rbaoxJq5RLkwU6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1k -dgoWv9xZU7asdsm5cpHpy7lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYuQINBFVH -m5sBEADBX28bR5QxbrGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8 -k0A8fcLkZCSBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS -/Rwy18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim+V -D6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP6OEDzFzj -GdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhjlR5HpRxdDMfHjF -Ylk5hlOtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHoCUGens+Ul7m0UShwZdVm -MifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8LjnZjRGA/u1fweptFY0NyzO5lO -zTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNfE9a2w7Y4aFeshjEpWxE8bQIyMrBGaRai -Q2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJDuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggL -wAGnjr5HctpLgwvLVKCeDfU8nchzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQABiQIl -BBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc4xHEo+UP/02AIUR0349zGk9a4D5Jv0 -07y+d0tWKPL0V2btaq9xQzoM51CtuT0ZoqTO8A0uFmEhCkw++reQcWOz1Nn+MarPjjJwMj -hTPS/H1qiwTXmuwx92xLL0pajloq7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGD -P98RHbZQWwYN6qLzE4y/ECTHxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPr -TubjsIG+ckZK5mlivy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTd -r6WRXaQtfnRn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5 -LIUhXYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkKG8 -ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23MzTs1hhwgI -y4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3gJgH0QONrUaRY8 -4/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+wp1ovyC/fp5XjZaLHcyPA -WAXKLBn4tb400iHp7byO85tF/H0OOI1K`; - -setupTestAccounts("strike.devtest@gmail.com", "0x781617319CE311C4"); - -/* global Sqlite */ - -test(function prepareDb() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - // Drop autocrypt_keydata table (if it exists) - async function doPreparation() { - let connection = await Sqlite.openConnection({ - path: "enigmail.sqlite", - sharedMemoryCache: false - }); - try { - await connection.execute("drop table autocrypt_keydata;"); - connection.close(); - } catch (err) { - connection.close(); - } - await EnigmailSqliteDb.checkDatabaseStructure(); - inspector.exitNestedEventLoop(0); - } - - doPreparation(); - inspector.enterNestedEventLoop(0); -}); - - -// testing: extractMessageId -test(function processHeader() { - - const hdr0 = "type=1; addr=dev-tiger@test.notreal; keydata=" + pubkey1; - const hdr1 = "type=1; addr=dev-tiger@test.notreal; keydata=" + pubkey2; - - let d0 = new Date(); - d0.setTime(Date.now() - 5 * 86400 * 1000); // 5 days ago - const sentDate = d0.toUTCString(); - - let d1 = new Date(); - d1.setTime(Date.now() - 4 * 86400 * 1000); // 4 days ago - - const updateDate = d1.toUTCString(); - - do_test_pending(); - EnigmailAutocrypt.processAutocryptHeader("dev-tiger@test.notreal", [hdr0], sentDate). - then(result => { - Assert.equal(0, result); - - return EnigmailAutocrypt.getOpenPGPKeyForEmail(["dev-tiger@test.notreal"]); - }).then(result => { - Assert.equal(1, result.length); - Assert.equal(sentDate, result[0].lastAutocrypt.toUTCString()); - Assert.equal("8C140834F2D683E9A016D3098439E17046977C46", result[0].fpr); - Assert.equal(pubkey1.replace(/[\r\n ]/g, ""), result[0].keyData); - - return EnigmailAutocrypt.processAutocryptHeader("dev-tiger@test.notreal", [hdr1], updateDate); - }).then(result => { - Assert.equal(0, result); - - return EnigmailAutocrypt.getOpenPGPKeyForEmail(["dev-tiger@test.notreal"]); - }).then(result => { - Assert.equal(1, result.length); - Assert.equal(updateDate, result[0].lastAutocrypt.toUTCString()); - Assert.equal("65537E212DC19025AD38EDB2781617319CE311C4", result[0].fpr); - Assert.equal(pubkey2.replace(/[\r\n ]/g, ""), result[0].keyData); - - // this should not change anything, update in the past - return EnigmailAutocrypt.processAutocryptHeader("dev-tiger@test.notreal", [hdr0], sentDate); - }).then(result => { - Assert.equal(0, result); - - return EnigmailAutocrypt.getOpenPGPKeyForEmail(["dev-tiger@test.notreal"]); - }).then(result => { - Assert.equal(1, result.length); - Assert.equal(updateDate, result[0].lastAutocrypt.toUTCString()); - Assert.equal("65537E212DC19025AD38EDB2781617319CE311C4", result[0].fpr); - Assert.equal(pubkey2.replace(/[\r\n ]/g, ""), result[0].keyData); - - do_test_finished(); - }). - catch(err => { - Assert.equal(err, 1); - do_test_finished(); - }); - -}); - -test(withLogFiles(withTestGpgHome(withEnigmail(function shouldGetKeyFunctions() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(publicKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(secretKey, {}, {}); - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let id = EnigmailStdlib.getIdentityForEmail("strike.devtest@gmail.com").identity; - Assert.equal(id.email, "strike.devtest@gmail.com", "ID OK"); - - EnigmailAutocrypt.createSetupMessage(id).then(res => { - Assert.ok(res); - Assert.equal(res.passwd.length, 44, "password length"); - Assert.ok(res.msg.length > 5500, "message is long enough"); - Assert.equal(res.msg.substr(0, 100), "To: strike.devtest@gmail.com\r\nFrom: strike.devtest@gmail.com\r\nAutocrypt-Setup-Message: v1\r\nSubject: "); - - return EnigmailAutocrypt.handleBackupMessage(res.passwd, res.msg, "strike.devtest@gmail.com"); - }).then(res => { - Assert.ok(res); - Assert.equal(res.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.equal(err, 0, "this should not happen"); - inspector.exitNestedEventLoop(); - }); - inspector.enterNestedEventLoop(0); - -})))); diff -Nru enigmail-2.1.6+ds1/package/tests/autoSetup-test.js enigmail-2.2.4/package/tests/autoSetup-test.js --- enigmail-2.1.6+ds1/package/tests/autoSetup-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/autoSetup-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,674 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global EnigmailCore: false, EnigmailFiles: false, EnigmailLog: false, EnigmailPrefs: false */ -/*global setupTestAccounts: false, setupTestAccount: false, getCurrentTime: true */ -/* - * 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"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, addMacPaths: false, withEnigmail: false, withTestGpgHome: false*/ -TestHelper.loadDirectly("tests/mailHelper.js"); /*global MailHelper: false */ - -testing("autoSetup.jsm"); -/*global EnigmailAutoSetup: false, getMsgFolders: false, getStreamedMessage: false, getStreamedHeaders: false, checkHeaders: false, - EnigmailAutocrypt: false, EnigmailConstants: false, MailServices: false, EnigmailKeyRing: false, - EnigmailCompat: false*/ - - -const AC_HEADER = - `addr=dev-tiger@test.notreal; prefer-encrypt=mutual; keydata= -mQENBFdGIzkBCADKys5q0rYiTr/FYdoupmNAJ0o20XWuFp/V58qsnQAMcAY2pCB/ydx9Y7 -A80QjZPuVcE5QdROfvvkMXAA47ZxZrH79Kaqj11DS5XOgtLVtITGtWvrYqIFujxP42ICWB -h7LXUwrHfi93FX74ucXoWo/PZndbo+JBxc0ZsrHUdu24grTDuqLZQ8mRCx5U4tf+zEVIU6 -kXubFzq8aPSnjfEg6MhXxSRictjIBKM0Ez2QwZmh1vAEmvn0kr0VaJJ7xVRgIH1CgNh/WW -tbr0lrblKCkFkTFnQfslWvSEko+LqvwgBSKyKg8VtWbYftnBkn8FPbP5Brp3wYgBc/c7mr -LROqAFABEBAAG0ImRldi10aWdlciA8ZGV2LXRpZ2VyQHRlc3Qubm90cmVhbD6JATcEEwEI -ACEFAldGIzkCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQhDnhcEaXfEb3/gf/V0 -da3gXN5TNOsWZKj/fI2FhQBglJ2vlEamnppwtnWZGktdFZ1h6ymzQ9PY3IidbKctqs/QQW -KtIBVh5k02fvUe99nsFZmINcLeajdu7IqvKxtFBuEwZAA1Bw9dhM3JRQM8z+l+CtbFh6dV -ufU7q5vVEXciCkhdn172QYTMAXNYE4Tfh7eaEAOdRyFcwiAGZ826pOp7Al52frK+MtaXa9 -D2fRINlDXD9+IIR80sig2B4iBGeY+qAmE6bFuw7MtBya6uKupLjtAD/v48Z5wBYuU0jPld -4KH88IWksbQo1zW/O+1N7J1/U9ZGNwpvS+wtfyjlOpTS3YWGmY8sVturZqTrkBDQRXRiM5 -AQgAsDN5j4viE5E8H5N9cfzQ9ZO5BUk66yI2DVEeasqZWFCkRA+uFHcTF6YpCoSn4/Jsvq -vUWVh63uV5vdAiU9+4sNFT8nkP7zD0LQthFtgEXqNo11NR7yvDRT3TOAnGaa+bLyoU/SLX -zSwctZksrQjzQJVSohQNznhj95XH3UEsUydHqje7ljp7NHWAJx+Tlp2Yh6q060/gwh37zs -fdVbaVtjeaAYECX3z6L7JB4KBb9KGlmDmOMngVUuR8XWWE+LEx0m7B+kZ+vZhUOSDDomBP -+8jGJmXlcIt8+LIBq0NeXs/YINCc89saUPw/V6X/NFRkekKFzIprCzwhg0LWl8oXAwARAQ -ABiQEfBBgBCAAJBQJXRiM5AhsMAAoJEIQ54XBGl3xGUvEH/jVTBoRfJ8ohc4Ahal8TyIm8 -vdT/Ax/ddyyaLnCxkLFt0noBlA7062N1Fvv86Ts93EFrK9nF3g20gXKBKETo/vJRqtODIr -wtCMfzPbS/FkQweLtUDZXed0nq/Yaxk60H2HmWm+n9/126F3QIt7is0E3dY0e6DYJGRHnn -+lWnUs/8Ba16Zb/os3GgwEQwr4LPEty6CFQU2DNl5HmajeB1oEqmeDZ2f/y87GRpdCoTgu -dQiHMPdm2kPVbeAA6945W6Y2LSA5Hm+yS8s2dBs4+sEiW97owLz6vcak8Aw+7JFxL2JkoZ -uN28dueoVcFQw3uX0snoBXgo3LYsK71JoufrXhY=`; - -function createCopyListener(callback) { - return { - // nsIRequestObserver - OnStartCopy: function() {}, - OnProgress: function() {}, - SetMessageKey: function() {}, - GetMessageId: function() { - return ""; - }, - OnStopCopy: function() { - callback(); - } - }; -} - -function copyMailToFolder(emlPath, folder) { - return new Promise((resolve, reject) => { - var listener = createCopyListener(() => { - resolve(0); - }); - let emailFile = do_get_file(emlPath, false); - EnigmailCompat.copyFileToMailFolder(emailFile, folder, 0, null, listener, null); - }); -} - - -test(withTestGpgHome(withEnigmail(function determinePreviousInstallType_noAccount_Test() { - - getCurrentTime = function() { - return new Date('2018-07-22T17:00:00').getTime() / 1000; - }; - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.deleteAllAccounts(); - EnigmailAutoSetup.determinePreviousInstallType().then((returnMsgValue) => { - Assert.equal(returnMsgValue.value, EnigmailConstants.AUTOSETUP_NO_ACCOUNT); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.init(); - setupTestAccounts("user1@enigmail-test.net"); -}))); - -//testing: createAutocryptKey -test(withTestGpgHome(withEnigmail(function keyGenTest() { - - EnigmailKeyRing.clearCache(); - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - const userName = 'Test Name'; - const userEmail = 'testing@domain.invalid'; - const KEY_ID = "0x4F128BD42AEA7F1D732123954C83EE00FF0245BE"; - - EnigmailKeyRing.clearCache(); - - EnigmailKeyRing._generateKey = EnigmailKeyRing.generateKey; - - EnigmailKeyRing.generateKey = function(userName, comment, userEmail, expiry, keyLength, keyType, passphrase, generateObserver) { - let keyFile = do_get_file("resources/testing-domain.invalid.pub-sec", false); - - Assert.equal(keyType, "ECC"); - let exitCode = EnigmailKeyRing.importKeyFromFile(keyFile, {}, {}); - generateObserver.keyId = KEY_ID; - generateObserver.onStopRequest(exitCode); - }; - - EnigmailAutoSetup.createAutocryptKey(userName, userEmail).then((value) => { - let keys = EnigmailKeyRing.getAllSecretKeys(); - - EnigmailKeyRing.generateKey = EnigmailKeyRing._generateKey; - Assert.equal(value, KEY_ID); - Assert.equal(keys.length, 1); - Assert.equal(keys[0].userIds[0].userId, "Test Name "); - Assert.equal(keys[0].keySize, "4096"); - inspector.exitNestedEventLoop(); - }).catch(res => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - -//testing: createAutocryptKey_error_Test -test(withTestGpgHome(withEnigmail(function keyGen_error_Test() { - - EnigmailKeyRing.clearCache(); - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - EnigmailKeyRing.clearCache(); - EnigmailAutoSetup.createAutocryptKey(undefined, undefined).then((value) => { - Assert.equal(value, null); - inspector.exitNestedEventLoop(); - }).catch(res => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - -//testing: processAutocryptHeader -test(function processAutocryptHeaderTest() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let date = new Date(); - date.setTime(Date.now()); // now - const sentDate = date.toUTCString(); - - let headerValue = { - msgHeaders: [{ - date: sentDate, - fromAddr: 'dev-tiger@test.notreal', - msgType: 'Autocrypt', - msgData: AC_HEADER - }] - }; - - var window = JSUnit.createStubWindow(); - EnigmailKeyRing.clearCache(); - - EnigmailAutoSetup.processAutocryptHeader(headerValue, window).then((value) => { - Assert.equal(value, 0); - return EnigmailAutocrypt.getOpenPGPKeyForEmail(["dev-tiger@test.notreal"]); - }).then((keys) => { - Assert.equal(keys.length, 1); - Assert.equal(keys[0].email, "dev-tiger@test.notreal"); - Assert.equal(keys[0].lastAutocrypt.toUTCString(), sentDate); - inspector.exitNestedEventLoop(); - }).catch(res => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}); - -//testing: processAutocryptHeader for Error -test(function processAutocryptHeader_error_Test() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let date = new Date(); - date.setTime(Date.now() - 5 * 86400 * 1000); // 5 days ago - const sentDate = date.toUTCString(); - - let headerValue = { - msgHeaders: [{ - date: sentDate, - fromAddr: '', - msgType: 'Autocrypt', - msgData: AC_HEADER - }] - }; - - var window = JSUnit.createStubWindow(); - EnigmailKeyRing.clearCache(); - - EnigmailAutoSetup.processAutocryptHeader(headerValue, window).then((value) => { - Assert.equal(value, 1); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}); - -//testing: getMsgFolders -test(withTestGpgHome(withEnigmail(function getMsgFoldersTest() { - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - const sourceFolder = MailHelper.createMailFolder("source-box"); - - var database1 = []; - getMsgFolders(sourceFolder, database1); - - Assert.equal(database1.length, 0); - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - copyMailToFolder("resources/encrypted-email.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - Assert.equal(sourceFolder.getTotalMessages(false), 1); - - var database2 = []; - getMsgFolders(MailHelper.getRootFolder(), database2); - - Assert.equal(database2.length, 1); - -}))); - -//testing: getStreamedMessage -test(withTestGpgHome(withEnigmail(function getStreamedMessageTest() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/encrypted-email-with-attachment.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgheader = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - - getStreamedMessage(sourceFolder, msgheader).then((value) => { - Assert.notEqual(value, null); - Assert.equal(value.displayName, 'attachment.txt.pgp'); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - -//testing: getStreamedHeaders -test(withTestGpgHome(withEnigmail(function getStreamedHeadersTest() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/encrypted-email.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgheader = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - let msgURI = sourceFolder.getUriForMsg(msgheader); - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - - let mms = messenger.messageServiceFromURI(msgURI).QueryInterface(Ci.nsIMsgMessageService); - - getStreamedHeaders(msgURI, mms).then((value) => { - Assert.notEqual(value, null); - Assert.equal(value.subject, "Encrypted email"); - Assert.equal(value.date, "Tue, 09 Jun 2015 16:43:45 -0500"); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - -//testing: getStreamedHeaders Error -test(withTestGpgHome(withEnigmail(function getStreamedHeadersTest() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/encrypted-email.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgheader = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - let msgURI = sourceFolder.getUriForMsg(msgheader); - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - - let mms = undefined; - - getStreamedHeaders(msgURI, mms).then((value) => { - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.equal(Object.keys(err).length, 0); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - - -//testing: checkHeaders -test(withTestGpgHome(withEnigmail(function checkHeadersTest() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - let returnMsgValue = { - value: EnigmailConstants.AUTOSETUP_NO_HEADER - }; - - let msgHeaders = []; - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/encrypted-email.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgAuthor = "tester@enigmail.org"; - let msgHeader1 = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - - let msgAccountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - let accounts = msgAccountManager.accounts; - let account = accounts.queryElementAt(0, Ci.nsIMsgAccount); - - let msgURI1 = sourceFolder.getUriForMsg(msgHeader1); - let messenger1 = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - let mms1 = messenger1.messageServiceFromURI(msgURI1).QueryInterface(Ci.nsIMsgMessageService); - - - getStreamedHeaders(msgURI1, mms1).then(async(value) => { - let returnValue = await checkHeaders(value, msgHeader1, msgAuthor, account.defaultIdentity.email, sourceFolder, returnMsgValue, msgHeaders); - Assert.notEqual(returnValue, null); - Assert.equal(returnValue.returnMsgValue.value, EnigmailConstants.AUTOSETUP_NO_HEADER); - Assert.equal(returnValue.msgHeaders.length, 0); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const setupFolder = MailHelper.createMailFolder("setup-box"); - copyMailToFolder("resources/autocrypt-setup-message.eml", setupFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgHeader2 = MailHelper.fetchFirstMessageHeaderIn(setupFolder); - - let msgURI2 = setupFolder.getUriForMsg(msgHeader2); - let messenger2 = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - let mms2 = messenger2.messageServiceFromURI(msgURI2).QueryInterface(Ci.nsIMsgMessageService); - - getStreamedHeaders(msgURI2, mms2).then(async(value) => { - let returnValue = await checkHeaders(value, msgHeader2, msgAuthor, account.defaultIdentity.email, setupFolder, returnMsgValue, msgHeaders); - Assert.notEqual(returnValue, null); - Assert.equal(returnValue.returnMsgValue.value, EnigmailConstants.AUTOSETUP_AC_SETUP_MSG); - Assert.equal(returnMsgValue.acSetupMessage.author, 'nobody'); - Assert.notEqual(returnMsgValue.attachment, null); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const autocryptFolder = MailHelper.createMailFolder("autocrypt-box"); - copyMailToFolder("resources/encrypted-email-with-autocrypt.eml", autocryptFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgHeader3 = MailHelper.fetchFirstMessageHeaderIn(autocryptFolder); - - let msgURI3 = autocryptFolder.getUriForMsg(msgHeader3); - let messenger3 = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - let mms3 = messenger3.messageServiceFromURI(msgURI3).QueryInterface(Ci.nsIMsgMessageService); - - let msgAuthor2 = account.defaultIdentity.email; - - getStreamedHeaders(msgURI3, mms3).then(async(value) => { - let returnValue = await checkHeaders(value, msgHeader3, msgAuthor2, account.defaultIdentity.email, autocryptFolder, returnMsgValue, msgHeaders); - Assert.notEqual(returnValue, null); - Assert.equal(returnValue.msgHeaders.length, 1); - Assert.equal(returnValue.msgHeaders[0].fromAddr, msgAuthor2); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - -}))); - -//testing: determinePreviousInstallType -test(withTestGpgHome(withEnigmail(function determinePreviousInstallTypeTest() { - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/encrypted-email.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - EnigmailAutoSetup.determinePreviousInstallType().then((returnMsgValue) => { - Assert.equal(returnMsgValue.value, EnigmailConstants.AUTOSETUP_NO_HEADER); - inspector.exitNestedEventLoop(); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const autocryptFolder = MailHelper.createMailFolder("autocrypt-box"); - copyMailToFolder("resources/encrypted-email-with-autocrypt.eml", autocryptFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - EnigmailAutoSetup.determinePreviousInstallType().then((returnMsgValue) => { - Assert.equal(returnMsgValue.value, EnigmailConstants.AUTOSETUP_NO_HEADER); - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let acc2 = setupTestAccount("Unit Test Account 2", "dummy2", "testing@domain.invalid"); - let inbox = acc2.incomingServer.rootFolder.getFolderWithFlags(Components.interfaces.nsMsgFolderFlags.Inbox); - - copyMailToFolder("resources/email-acc2-pEp-message.eml", inbox).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - /* global do_print: false */ - do_print("determine previous intall type..."); - - EnigmailAutoSetup.determinePreviousInstallType().then((returnMsgValue) => { - Assert.equal(returnMsgValue.value, EnigmailConstants.AUTOSETUP_PEP_HEADER); - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(0); - }); - - inspector.enterNestedEventLoop(0); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - copyMailToFolder("resources/autocrypt-setup-message.eml", inbox).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - EnigmailAutoSetup.determinePreviousInstallType().then((returnMsgValue) => { - Assert.equal(returnMsgValue.value, EnigmailConstants.AUTOSETUP_AC_SETUP_MSG); - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false); - inspector.exitNestedEventLoop(0); - }); - - inspector.enterNestedEventLoop(0); - - //MailHelper.cleanMailFolder(MailHelper.getRootFolder()); -}))); - -//testing: performAutocryptSetup -test(withTestGpgHome(withEnigmail(function performAutocryptSetupTest() { - EnigmailKeyRing.clearCache(); - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/autocrypt-setup-message-2.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgheader = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - let msgURI = sourceFolder.getUriForMsg(msgheader); - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - - getStreamedMessage(sourceFolder, msgheader).then((value) => { - Assert.notEqual(value, null); - let headervalue = { - 'acSetupMessage': msgheader, - 'attachment': value - }; - - var passwordWindow = JSUnit.createStubWindow(); - var confirmWindow = JSUnit.createStubWindow(); - - var confirmWindowDocument = passwordWindow.document; - var passwordWindowDocument = confirmWindow.document; - - passwordWindow.openDialog = function(arg1, arg2, arg3, arg4) { - const pass = "6460-5183-7821-0632-0177-4451-8821-9031-7887"; - arg4.password = pass; - return arg4.password; - }; - - confirmWindow.openDialog = function() { - inspector.exitNestedEventLoop(); - return null; - }; - - EnigmailAutoSetup.performAutocryptSetup(headervalue, passwordWindow, confirmWindow); - - }).catch(err => { - Assert.ok(false, `got exception: ${err}`); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - let keys = EnigmailKeyRing.getKeyById("0xB3A85460D9D9CC47"); - Assert.notEqual(keys, null, "keys must not be null"); - Assert.equal(keys.keyId, "B3A85460D9D9CC47"); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - -}))); - -//testing: performAutocryptSetup -test(withTestGpgHome(withEnigmail(function performAutocryptSetup_wrongPassword_Test() { - EnigmailKeyRing.clearCache(); - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - - const rootFolder = MailHelper.getRootFolder(); - const sourceFolder = MailHelper.createMailFolder("source-box"); - copyMailToFolder("resources/autocrypt-setup-message-2.eml", sourceFolder).then(() => { - inspector.exitNestedEventLoop(0); - }).catch(err => { - Assert.ok(false, "Error in copyMailToFolder: " + err); - inspector.exitNestedEventLoop(0); - }); - inspector.enterNestedEventLoop(0); - - let msgheader = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - let msgURI = sourceFolder.getUriForMsg(msgheader); - let messenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - - getStreamedMessage(sourceFolder, msgheader).then((value) => { - Assert.notEqual(value, null); - let headervalue = { - 'acSetupMessage': msgheader, - 'attachment': value - }; - - var passwordWindow = JSUnit.createStubWindow(); - var confirmWindow = JSUnit.createStubWindow(); - - passwordWindow.document = JSUnit.createDOMDocument(); - confirmWindow.document = JSUnit.createDOMDocument(); - - var confirmWindowDocument = passwordWindow.document; - var passwordWindowDocument = confirmWindow.document; - - passwordWindow.openDialog = function(arg1, arg2, arg3, arg4) { - const pass = "6460-5183-7821-0632-0177-4451-8821-9031-7888"; - arg4.password = pass; - return arg4.password; - }; - - confirmWindow.openDialog = function() { - inspector.exitNestedEventLoop(); - return null; - }; - - EnigmailAutoSetup.performAutocryptSetup(headervalue, passwordWindow, confirmWindow); - - }).catch(err => { - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); - - - let keys = EnigmailKeyRing.getKeyById("B3A85460D9D9CC47"); - Assert.equal(keys, null); - - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); -}))); diff -Nru enigmail-2.1.6+ds1/package/tests/core-test.js enigmail-2.2.4/package/tests/core-test.js --- enigmail-2.1.6+ds1/package/tests/core-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/core-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, withTestGpgHome:false */ -/*global withEnigmail: false, EnigmailCore: false, Enigmail: false, component: false, withEnvironment: false, nsIEnvironment: false, Ec: false, getEnigmailPrefs: false, EnigmailOS: false, EnigmailArmor: false, withLogFiles: false, assertLogContains: false, assertLogDoesNotContain: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("core.jsm"); -const EnigmailLog = component("enigmail/log.jsm").EnigmailLog; -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; - -function newEnigmail(f) { - var oldEnigmail = EnigmailCore.getEnigmailService(); - try { - var enigmail = new Enigmail(); - EnigmailCore.setEnigmailService(enigmail); - f(enigmail); - } finally { - EnigmailCore.setEnigmailService(oldEnigmail); - } -} - -// testing: initialize -test(function initializeWillPassEnvironmentIfAskedTo() { - getEnigmailPrefs().setPref('keyRefreshOn', true); - var window = JSUnit.createStubWindow(); - withEnvironment({ - "ENIGMAIL_PASS_ENV": "STUFF:BLARG", - "STUFF": "testing" - }, function() { - newEnigmail(function(enigmail) { - enigmail.initialize(window, ""); - Assert.assertArrayContains(EnigmailCore.getEnvList(), "STUFF=testing"); - }); - }); -}); - -test(function initializeWillNotPassEnvironmentsNotAskedTo() { - getEnigmailPrefs().setPref('keyRefreshOn', true); - var window = JSUnit.createStubWindow(); - var environment = Cc["@mozilla.org/process/environment;1"].getService(nsIEnvironment); - environment.set("ENIGMAIL_PASS_ENV", "HOME"); - environment.set("STUFF", "testing"); - newEnigmail(function(enigmail) { - enigmail.initialize(window, ""); - Assert.assertArrayNotContains(EnigmailCore.getEnvList(), "STUFF=testing"); - }); -}); - -test(function initializeWillNotSetEmptyEnvironmentValue() { - getEnigmailPrefs().setPref('keyRefreshOn', true); - var window = JSUnit.createStubWindow(); - var environment = Cc["@mozilla.org/process/environment;1"].getService(nsIEnvironment); - environment.set("APPDATA", ""); - newEnigmail(function(enigmail) { - enigmail.initialize(window, ""); - Assert.assertArrayNotContains(EnigmailCore.getEnvList(), "APPDATA="); - }); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/customAssert.jsm enigmail-2.2.4/package/tests/customAssert.jsm --- enigmail-2.1.6+ds1/package/tests/customAssert.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/customAssert.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/*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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const CustomAssert = { - registerExtraAssertionsOn: function(assertModule) { - assertModule.assertContains = CustomAssert.assertContains; - assertModule.assertArrayContains = CustomAssert.assertArrayContains; - assertModule.assertArrayNotContains = CustomAssert.assertArrayNotContains; - }, - - assertContains: function(actual, expected, message) { - var msg = message || "Searching for <".concat(expected) - .concat("> to be contained within ") - .concat("<").concat(actual).concat(">"); - this.report(actual.search(expected) == -1, actual, expected, msg); - }, - - assertArrayContains: function(array, value, message) { - this.report(array.indexOf(value) == -1, array, value, message, "contains"); - }, - - assertArrayNotContains: function(array, value, message) { - this.report(array.indexOf(value) > -1, array, value, message, "not contains"); - } -}; diff -Nru enigmail-2.1.6+ds1/package/tests/data-test.js enigmail-2.2.4/package/tests/data-test.js --- enigmail-2.1.6+ds1/package/tests/data-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/data-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global EnigmailData: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("data.jsm"); - -// testing: extractMessageId -test(function extractMessageIdExtractsARegularMessageId() { - var result = EnigmailData.extractMessageId("enigmail:message/foobar"); - Assert.equal("foobar", result); -}); - -test(function extractMessageIdReturnsAnEmptyStringWhenItCantMatch() { - var result = EnigmailData.extractMessageId("enigmail:mime-message/foobar"); - Assert.equal("", result); -}); - -// testing: extractMimeMessageId -test(function extractMimeMessageIdExtractsARegularMessageId() { - var result = EnigmailData.extractMimeMessageId("enigmail:mime-message/fluff"); - Assert.equal("fluff", result); -}); - -test(function extractMimeMessageIdReturnsAnEmptyStringWhenItCantMatch() { - var result = EnigmailData.extractMimeMessageId("enigmail:message/mess"); - Assert.equal("", result); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/decryption-test.js enigmail-2.2.4/package/tests/decryption-test.js --- enigmail-2.1.6+ds1/package/tests/decryption-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/decryption-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("decryption.jsm"); -/*global EnigmailDecryption: false, EnigmailArmor: false, EnigmailConstants: false, -EnigmailKeyRing: false */ - -test(withTestGpgHome(withEnigmail(function shouldDecryptMessage() { - let secretKeyFile = do_get_file("resources", false); - secretKeyFile.append("dev-strike.sec"); - const importedKeysObj = {}; - let r = EnigmailKeyRing.importKeyFromFile(secretKeyFile, {}, importedKeysObj); - Assert.equal(0, r); - var encryptResult = "-----BEGIN PGP MESSAGE-----\n" + - "Version: GnuPG v2.0.22 (GNU/Linux)\n" + - "\n" + - "hQIMA9U1Yju2Dp5xAQ//eeoS38nAWPdJslfVaEuUhthZk4WxAua97+JNGX9vDiae\n" + - "jKJbjmQ5T2Sl2wvSqwjEIKzzjRAzr6SYuL9xaRkt3/BbMpSm/aSjc/cWNgcKtbHt\n" + - "u8u9Ha016XZke3/EpjLqMcXmK1eT9oa+UqR8u+B3ggOjz5BrjW+FMR+zfyiWv1cb\n" + - "6U4KO0YHuOq7G0lO4i3ro0ckhzZqCBLfCiQSfnF8R7p/KfQdUFBIdB41OALP0q4x\n" + - "UD+CNWhbIjyhfE0VX5KUn/5S5Se31VjKjfeo+5fN8HRUVQYu8uj2F+gPvALF5KKW\n" + - "an63O3IcUvZo6yOSoMjkMVJBHZRY6An2if+GXm330yQD3CDaonuihR+e+k6sd0kj\n" + - "hpwQs+4/uE96slRMqQMx573krc/p/WUWwG5qexOvwxzcqEdE5LYPEMKdH1fUX3tC\n" + - "kktNpSU8gJqluTk6cvtjCfMSwcEyKFmM13/RoitAw22DVOdLlcTHxbaNsIoxeRk/\n" + - "rxpsraIEs2H4uyF19K1nLioGkyubeUKPnBTB6qAwp0ZhZ1RleMwHRTFQU+jpbi51\n" + - "t87E+JI0UuLd14pDb7YJUKenHvAqa1jHAZKEfa2XFMfT/1MZzohlwjNpcPhYFWeB\n" + - "zq3cg/m/J5sb+FpdD42nfYnLsSYu7CwcTX8MU2vrSwHyHnmux6SjDXGrAaddWsrS\n" + - "RwGvjZsiFW/E82l2eMj5Zpm6HXY8kZx9TBSbWLSgU44nBhDvX1MrIGdd+rmYT2xt\n" + - "j4KAKpyV51VzmJUOqHrb7bPv70ncMx0w\n" + - "=uadZ\n" + - "-----END PGP MESSAGE-----\n\n"; - - const parentWindow = JSUnit.createStubWindow(); - const exitCodeObj = {}; - const statusFlagObj = {}; - const errorMsgObj = {}; - const decryptResult = EnigmailDecryption.decryptMessage(parentWindow, - EnigmailConstants.UI_TEST, - encryptResult, {}, - exitCodeObj, - statusFlagObj, {}, {}, {}, - errorMsgObj, {}, {}, - "STRIKEfreedom@Qu1to" - ); - Assert.equal(0, exitCodeObj.value); - Assert.equal(0, errorMsgObj.value); - Assert.equal("Hello there!", decryptResult); - Assert.equal(true, (statusFlagObj.value & (EnigmailConstants.DISPLAY_MESSAGE | EnigmailConstants.DECRYPTION_OKAY)) !== 0); - const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {}); - Assert.equal("MESSAGE", blockType); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/dns-test.js enigmail-2.2.4/package/tests/dns-test.js --- enigmail-2.1.6+ds1/package/tests/dns-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/dns-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,189 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("dns.jsm"); - -/*global EnigmailDns: false, gHandler: true, gResolverExecutable: true */ - -/*global DigHandler: false, HostHandler: false, NsLookupHandler: false, NsLookupHandler_Windows: false, GenericHandler: false */ - -test(function testDig() { - let h = new DigHandler(null); - h.recordType = "MX"; - h.hostName = "enigmail.net"; - - let a = h.getCmdArgs(); - Assert.equal(a.join(" "), "-t MX +short enigmail.net", "dig parameters don't match"); - - let stdoutData = "10 mx2.mail.hostpoint.ch.\n10 mx1.mail.hostpoint.ch.\n"; - - let srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "mx2.mail.hostpoint.ch|mx1.mail.hostpoint.ch"); - - h.recordType = "SRV"; - stdoutData = "10 100 4711 t1.enigmail.net.\n10 100 4712 t2.enigmail.net.\n"; - - srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "t1.enigmail.net:4711|t2.enigmail.net:4712"); -}); - -test(function testHost() { - let h = new HostHandler(null); - h.recordType = "MX"; - h.hostName = "enigmail.net"; - - let a = h.getCmdArgs(); - Assert.equal(a.join(" "), "-t MX enigmail.net", "host parameters don't match"); - - let stdoutData = "enigmail.net mail is handled by 10 mx2.mail.hostpoint.ch.\nenigmail.net mail is handled by 10 mx1.mail.hostpoint.ch.\n"; - - let srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "mx2.mail.hostpoint.ch|mx1.mail.hostpoint.ch"); - - h.recordType = "SRV"; - stdoutData = "enigmail.net has SRV record 10 100 4711 t1.enigmail.net.\nenigmail.net has SRV record 10 100 4712 t2.enigmail.net.\n"; - - srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "t1.enigmail.net:4711|t2.enigmail.net:4712"); - -}); - -test(function testNsLookup() { - let h = new NsLookupHandler(null); - h.recordType = "MX"; - h.hostName = "enigmail.net"; - - let a = h.getCmdArgs(); - Assert.equal(a.join(" "), "-type=MX enigmail.net", "nslookup parameters don't match"); - - let stdoutData = - `Server: 172.17.28.1 -Address: 172.17.28.1#53 - -Non-authoritative answer: -enigmail.net\tmail exchanger = 10 mx2.mail.hostpoint.ch. -enigmail.net\tmail exchanger = 10 mx1.mail.hostpoint.ch. - -Authoritative answers can be found from: -. nameserver = h.root-servers.net. -. nameserver = g.root-servers.net. -. nameserver = d.root-servers.net. -`; - - let srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "mx2.mail.hostpoint.ch|mx1.mail.hostpoint.ch"); - - h.recordType = "SRV"; - stdoutData = - `Server: 172.17.28.1 -Address: 172.17.28.1#53 - -Non-authoritative answer: -_http._tcp.enigmail.net service = 10 100 4711 t1.enigmail.net. -_http._tcp.enigmail.net service = 10 100 4712 t2.enigmail.net. - -Authoritative answers can be found from: -enigmail.net nameserver = example1.invalid. -enigmail.net nameserver = example1.invalid. -`; - - srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "t1.enigmail.net:4711|t2.enigmail.net:4712"); -}); - - -test(function testNsLookupWin() { - let h = new NsLookupHandler_Windows(null); - h.recordType = "MX"; - h.hostName = "enigmail.net"; - - let a = h.getCmdArgs(); - Assert.equal(a.join(" "), "-type=MX enigmail.net", "nslookup parameters don't match"); - - let stdoutData = - `Server: UnKnown -Address: 172.17.28.1 - -enigmail.net\tMX preference = 10, mail exchanger = mx2.mail.hostpoint.ch -enigmail.net\tMX preference = 10, mail exchanger = mx1.mail.hostpoint.ch - -(root) nameserver = c.root-servers.net -(root) nameserver = a.root-servers.net -`; - - let srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "mx2.mail.hostpoint.ch|mx1.mail.hostpoint.ch"); - - h.recordType = "SRV"; - stdoutData = - `Server: UnKnown -Address: 172.17.28.1 - -wkd.enigmail.org SRV service location: -\tpriority = 100 -\tweight = 100 -\tport = 4711 -\tsvr hostname = t1.enigmail.net -wkd.enigmail.org SRV service location: -\tpriority = 100 -\tweight = 100 -\tport = 4712 -\tsvr hostname = t2.enigmail.net - -(root) nameserver = i.root-servers.net -(root) nameserver = h.root-servers.net -(root) nameserver = k.root-servers.net -`; - - srv = h.parseResult(stdoutData); - Assert.equal(srv.join("|"), "t1.enigmail.net:4711|t2.enigmail.net:4712"); -}); -test(function testExecute() { - class TestHandler extends GenericHandler { - constructor() { - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - - let plPath = env.get("PL_PATH"); - Assert.ok(plPath.length > 0, "PL_PATH length is > 0"); - if (plPath.length === 0) throw "perl path undefined"; - - var pl = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - pl.initWithPath(plPath); - if (!pl.exists()) - throw "Could not locate the perl executable"; - - super(plPath); - this.handlerType = "test"; - } - - getCmdArgs() { - let tinyPl = do_get_file("resources/tiny.pl", false); - return [tinyPl.path]; - } - - parseResult(stdoutData) { - Assert.equal(stdoutData.search(/^OK/), 0); - return 0; - } - } - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - gHandler = TestHandler; - EnigmailDns.lookup("mx", "enigmail.net").then(x => { - inspector.exitNestedEventLoop(); - }).catch(x => { - Assert.ok(false, `Got exception ${x}`); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/encryption-test.js enigmail-2.2.4/package/tests/encryption-test.js --- enigmail-2.1.6+ds1/package/tests/encryption-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/encryption-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("encryption.jsm"); /*global EnigmailEncryption: false, EnigmailLocale: false, EnigmailKeyRing: false, EnigmailConstants: false */ -const EnigmailArmor = component("enigmail/armor.jsm").EnigmailArmor; - -test(withTestGpgHome(withEnigmail(function shouldSignMessage() { - const secretKey = do_get_file("resources/dev-strike.sec", false); - const revocationCert = do_get_file("resources/dev-strike.rev", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - const parentWindow = JSUnit.createStubWindow(); - const plainText = "Hello there!"; - const strikeAccount = "strike.devtest@gmail.com"; - const exitCodeObj = {}; - const statusFlagObj = {}; - const encryptResult = EnigmailEncryption.encryptMessage(parentWindow, - EnigmailConstants.UI_TEST, - plainText, - strikeAccount, - strikeAccount, - "", - EnigmailConstants.SEND_TEST | EnigmailConstants.SEND_SIGNED, - exitCodeObj, - statusFlagObj, - errorMsgObj - ); - Assert.equal(0, exitCodeObj.value); - Assert.equal(0, errorMsgObj.value); - Assert.equal(true, (statusFlagObj.value == EnigmailConstants.SIG_CREATED)); - const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {}); - Assert.equal("SIGNED MESSAGE", blockType); - - let r = EnigmailEncryption.determineOwnKeyUsability(EnigmailConstants.SEND_SIGNED, "strike.devtest@gmail.com"); - Assert.ok(r.keyId === "A3EC002971E33E6A7DAC481B7A1F45055AAFFACB" ||   - r.keyId === "65537E212DC19025AD38EDB2781617319CE311C4"); - - EnigmailKeyRing.importKeyFromFile(revocationCert, errorMsgObj, importedKeysObj); - r = EnigmailEncryption.determineOwnKeyUsability(EnigmailConstants.SEND_SIGNED, "0x65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(r.errorMsg, EnigmailLocale.getString("keyRing.pubKeyRevoked", ["anonymous strike ", "0x781617319CE311C4"])); -}))); - -test(withTestGpgHome(withEnigmail(function shouldEncryptMessage() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - const parentWindow = JSUnit.createStubWindow(); - const plainText = "Hello there!"; - const strikeAccount = "strike.devtest@gmail.com"; - const exitCodeObj = {}; - const statusFlagObj = {}; - const encryptResult = EnigmailEncryption.encryptMessage(parentWindow, - EnigmailConstants.UI_TEST, - plainText, - strikeAccount, - strikeAccount, - "", - EnigmailConstants.SEND_TEST | EnigmailConstants.SEND_ENCRYPTED | EnigmailConstants.SEND_ALWAYS_TRUST, - exitCodeObj, - statusFlagObj, - errorMsgObj - ); - Assert.equal(0, exitCodeObj.value); - Assert.equal("", errorMsgObj.value); - Assert.equal(true, (statusFlagObj.value & EnigmailConstants.END_ENCRYPTION) !== 0); - const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {}); - Assert.equal("MESSAGE", blockType); - - let r = EnigmailEncryption.determineOwnKeyUsability(EnigmailConstants.SEND_ENCRYPTED, "strike.devtest@gmail.com"); - Assert.equal(r.keyId, "65537E212DC19025AD38EDB2781617319CE311C4"); -}))); - -test(withTestGpgHome(withEnigmail(function shouldGetErrorReason() { - let r = EnigmailEncryption.determineOwnKeyUsability(EnigmailConstants.SEND_SIGNED | EnigmailConstants.SEND_ENCRYPTED, "nobody@notfound.net"); - let expected = EnigmailLocale.getString("errorOwnKeyUnusable", "nobody@notfound.net"); - Assert.equal(r.errorMsg, expected); - -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/errorHandling-test.js enigmail-2.2.4/package/tests/errorHandling-test.js --- enigmail-2.1.6+ds1/package/tests/errorHandling-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/errorHandling-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,204 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global decryptionFailed: false, newContext: false, detectForgedInsets: false */ -/*global component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withTestGpgHome: false */ - -testing("errorHandling.jsm"); /*global EnigmailErrorHandling: false, EnigmailConstants: false, EnigmailLocale: false */ - -test(function decryptionFailedWillSetDecryptionFailedFlag() { - var context = {}; - decryptionFailed(context); - Assert.equal(context.inDecryptionFailed, true, "expected decryption failing to set the correct flag in the context"); -}); - -test(function shouldExtractSingleBlockSeparation() { - var testStatusArray = [ - "BEGIN_DECRYPTION", - "DECRYPTION_INFO 2 9", - "PLAINTEXT 62 1431644287 text.txt", - "PLAINTEXT_LENGTH 15", - "DECRYPTION_FAILED", - "END_DECRYPTION" - ]; - - var context = newContext({}, {}, {}, {}); - context.statusArray = testStatusArray; - detectForgedInsets(context); - Assert.equal(context.retStatusObj.blockSeparation, "1:15 "); -}); - -test(function shouldExtractMultipleBlockSeparation() { - var testStatusArray = [ - "FILE_START 3 file1.gpg", - "ENC_TO D535623BB60E9E71 1 0", - "USERID_HINT D535623BB60E9E71 anonymous strike ", - "NEED_PASSPHRASE D535623BB60E9E71 781617319CE311C4 1 0", - "GOOD_PASSPHRASE", - "BEGIN_DECRYPTION", - "DECRYPTION_INFO 2 9", - "PLAINTEXT 62 1432677982 test", - "PLAINTEXT_LENGTH 14", - "DECRYPTION_OKAY", - "GOODMDC", - "END_DECRYPTION", - "FILE_DONE", - "FILE_START 3 file0.gpg", - "ENC_TO D535623BB60E9E71 1 0", - "GOOD_PASSPHRASE", - "BEGIN_DECRYPTION", - "DECRYPTION_INFO 2 9", - "PLAINTEXT 62 1432677982 test", - "PLAINTEXT_LENGTH 14", - "DECRYPTION_OKAY", - "GOODMDC", - "END_DECRYPTION", - "FILE_DONE", - "PLAINTEXT 62 1432677982 test", - "PLAINTEXT_LENGTH 15" - ]; - - var context = newContext({}, {}, {}, {}); - context.statusArray = testStatusArray; - detectForgedInsets(context); - Assert.equal(context.retStatusObj.blockSeparation, "1:14 1:14 0:15 "); -}); - -test(function shouldHandleNoDataErrors() { - const errorOutput = "gpg: no valid OpenPGP data found.\n" + - "[GNUPG:] NODATA 1\n" + - "[GNUPG:] NODATA 2\n" + - "gpg: decrypt_message failed: Unknown system error\n"; - - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {}); - - Assert.assertContains(result, "no valid OpenPGP data found"); -}); - -test(function shouldHandleErrorOutput() { - const errorOutput = "[GNUPG:] USERID_HINT 781617319CE311C4 anonymous strike \n" + - "[GNUPG:] NEED_PASSPHRASE 781617319CE311C4 781617319CE311C4 1 0\n" + - "gpg-agent[14654]: command get_passphrase failed: Operation cancelled\n" + - "gpg: cancelled by user\n" + - "[GNUPG:] MISSING_PASSPHRASE\n" + - "gpg: skipped \"\": Operation cancelled\n" + - "[GNUPG:] INV_SGNR 0 \n" + - "gpg: [stdin]: clearsign failed: Operation cancelled\n"; - const retStatusObj = {}; - EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj); - Assert.assertContains(retStatusObj.statusMsg, EnigmailLocale.getString("missingPassphrase")); - Assert.equal(retStatusObj.extendedStatus, ""); -}); - -test(function shouldHandleFailedEncryption() { - const errorOutput = "gpg: encrypted with 4096-bit RSA key, ID B60E9E71, created 2015-05-04\n" + - "\"anonymous strike \"\n" + - "[GNUPG:] BEGIN_DECRYPTION\n" + - "[GNUPG:] DECRYPTION_INFO 2 9\n" + - "[GNUPG:] PLAINTEXT 62 1431644287 text.txt\n" + - "[GNUPG:] PLAINTEXT_LENGTH 15\n" + - "File `textd.txt' exists. Overwrite? (y/N) y\n" + - "gpg: mdc_packet with invalid encoding\n" + - "[GNUPG:] DECRYPTION_FAILED\n" + - "gpg: decryption failed: Invalid packet\n" + - "[GNUPG:] END_DECRYPTION"; - - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {}); - Assert.assertContains(result, "decryption failed: Invalid packet"); -}); - -test(withTestGpgHome(function shouldHandleSuccessfulImport() { - const errorOutput = "gpg: key 9CE311C4: public key \"anonymous strike \" imported\n" + - "[GNUPG:] IMPORTED 781617319CE311C4 anonymous strike \n" + - "[GNUPG:] IMPORT_OK 1 65537E212DC19025AD38EDB2781617319CE311C4\n" + - "gpg: key 9CE311C4: secret key imported\n" + - "[GNUPG:] IMPORT_OK 17 65537E212DC19025AD38EDB2781617319CE311C4\n" + - "[GNUPG:] IMPORT_OK 0 65537E212DC19025AD38EDB2781617319CE311C4\n" + - "gpg: key 9CE311C4: \"anonymous strike \" not changed\n" + - "gpg: Total number processed: 2\n" + - "gpg: imported: 1 (RSA: 1)\n" + - "gpg: unchanged: 1\n" + - "gpg: secret keys read: 1\n" + - "gpg: secret keys imported: 1\n" + - "[GNUPG:] IMPORT_RES 2 0 1 1 1 0 0 0 0 1 1 0 0 0"; - - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {}); - Assert.assertContains(result, "secret key imported"); -})); - -test(function shouldHandleUnverifiedSignature() { - const errorOutput = "gpg: B60E9E71: There is no assurance this key belongs to the named user\n" + - "\n" + - "pub 4096R/B60E9E71 2015-05-04 anonymous strike \n" + - " Primary key fingerprint: 6553 7E21 2DC1 9025 AD38 EDB2 7816 1731 9CE3 11C4\n" + - " Subkey fingerprint: D093 CD82 3BE1 3BD3 81EE FF7A D535 623B B60E 9E71\n" + - "\n" + - "It is NOT certain that the key belongs to the person named\n" + - "in the user ID. If you *really* know what you are doing,\n" + - "you may answer the next question with yes.\n" + - "\n" + - "[GNUPG:] USERID_HINT D535623BB60E9E71 anonymous strike \n" + - "Use this key anyway? (y/N) y"; - - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {}); - - Assert.assertContains(result, "Use this key anyway"); -}); - -test(function shouldHandleEncryptionFailedNoPublicKey() { - const errorOutput = "gpg: iapazmino@thoughtworks.com: skipped: No public key\n" + - "[GNUPG:] INV_RECP 0 iapazmino@thoughtworks.com\n" + - "gpg: salida3.xtxt: encryption failed: No public key"; - - const o = {}; - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, o); - - Assert.assertContains(result, "No public key"); - Assert.equal(o.errorMsg, EnigmailLocale.getString("keyError.keySpecNotFound", "iapazmino@thoughtworks.com")); -}); - -test(function shouldHandleErrors() { - const errorOutput = "gpg: problem with the agent: Invalid IPC response \n" + - "gpg: /dev/fd/5:0: key generation canceled\n" + - "\n" + - "Status text: [GNUPG:] NEED_PASSPHRASE_SYM 3 3 2 \n" + - "[GNUPG:] ERROR get_passphrase 260 \n" + - "[GNUPG:] MISSING_PASSPHRASE \n" + - "[GNUPG:] KEY_NOT_CREATED"; - - const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {}); - - Assert.assertContains(result, "Invalid IPC response"); -}); - -test(function shouldHandleInvalidSender() { - const errorOutput = "gpg: skipped \"0x12345678\": No secret key\n" + - "[GNUPG:] INV_SGNR 9 0x12345678\n" + - "[GNUPG:] FAILURE sign 17\n" + - "gpg: signing failed: No secret key\n"; - - const retStatusObj = {}; - EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj); - - Assert.assertContains(retStatusObj.errorMsg, EnigmailLocale.getString("keyError.keyIdNotFound", "0x12345678")); -}); - -test(function shouldHandleFailures() { - const errorOutput = "[GNUPG:] BEGIN_SIGNING H2\n" + - "[gpg: signing failed: No pinentry\n" + - "[GNUPG:] FAILURE sign 67108949\n" + - "gpg: [stdin]: clearsign failed: No pinentry\n"; - - const retStatusObj = {}; - EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj); - - Assert.ok((retStatusObj.statusFlags & EnigmailConstants.DISPLAY_MESSAGE) !== 0); - Assert.assertContains(retStatusObj.statusMsg, EnigmailLocale.getString("errorHandling.pinentryError")); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/.eslintrc.js enigmail-2.2.4/package/tests/.eslintrc.js --- enigmail-2.1.6+ds1/package/tests/.eslintrc.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/.eslintrc.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -module.exports = { - "rules": { - "strict": 0, - } -} diff -Nru enigmail-2.1.6+ds1/package/tests/execution-test.js enigmail-2.2.4/package/tests/execution-test.js --- enigmail-2.1.6+ds1/package/tests/execution-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/execution-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("execution.jsm"); /*global EnigmailExecution: false */ -const EnigmailGpgAgent = component("enigmail/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailGpg = component("enigmail/gpg.jsm").EnigmailGpg; - -test(withTestGpgHome(withEnigmail(function shouldExecCmd() { - const command = EnigmailGpgAgent.agentPath; - - const args = EnigmailGpg.getStandardArgs(false). - concat(["--no-tty", "--status-fd", "1", "--logger-fd", "1", "--command-fd", "0"]). - concat(["--list-packets", "resources/dev-strike.asc"]); - let output = ""; - EnigmailExecution.execCmd2(command, args, - function(pipe) { - //Assert.equal(stdin, 0); - }, - function(stdout) { - output += stdout; - }, - function(result) { - Assert.deepEqual(result, { - "exitCode": 0, - "stdout": "", - "stderr": "" - }); - } - ); - Assert.assertContains(output, ":public key packet:"); - Assert.assertContains(output, ":user ID packet:"); - Assert.assertContains(output, ":signature packet:"); - Assert.assertContains(output, ":public sub key packet:"); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/expiry-test.js enigmail-2.2.4/package/tests/expiry-test.js --- enigmail-2.1.6+ds1/package/tests/expiry-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/expiry-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,155 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false */ -/*global do_test_finished: false, component: false, setupTestAccounts: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("keyUsability.jsm"); /*global EnigmailKeyUsability: false, EnigmailLocale: false, EnigmailPrefs: false */ -const EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - -/*global uniqueKeyList: false, DAY: false */ - -setupTestAccounts(); - -test(withTestGpgHome(withEnigmail(function shouldCheckKeyExpiry() { - - EnigmailKeyRing.clearCache(); - let keyListObj = EnigmailKeyRing.getAllKeys(); - - let now = Math.floor(Date.now() / 1000); - - let a = [{ - keyId: "123" - }, { - keyId: "456" - }, { - keyId: "123" - }, { - keyId: "763" - }, { - keyId: "456" - }]; - let b = uniqueKeyList(a); - Assert.equal(b.length, 3); - - keyListObj.keySortList.push(1); // ensure that key list is not reloaded - keyListObj.keyList = []; - keyListObj.keyList.push(createKeyObj("ABCDEF0123456789", "user1@enigmail-test.net", now + DAY * 5, true)); - keyListObj.keyList.push(createKeyObj("DBCDEF0123456789", "user2@enigmail-test.net", now - DAY * 5, true)); - keyListObj.keyList.push(createKeyObj("EBCDEF0123456789", "user2@enigmail-test.net", now + DAY * 100, true)); - keyListObj.keyList.push(createKeyObj("CBCDEF0123456789", "user3@enigmail-test.net", 0, true)); - keyListObj.keyList.push(createKeyObj("BBCDEF0123456789", "user4@enigmail-test.net", now - DAY * 5, true)); - keyListObj.keyList.push(createKeyObj("FBCDEF0123456789", "user5@enigmail-test.net", now - DAY * 5, true)); - keyListObj.keyList.push(createKeyObj("ACCDEF0123456789", "user5@enigmail-test.net", now + DAY * 5, true)); - - EnigmailKeyRing.rebuildKeyIndex(); - - let k = EnigmailKeyUsability.getExpiryForKeySpec([], 10); - Assert.equal(k.length, 0); - - k = EnigmailKeyUsability.getExpiryForKeySpec(["0xABCDEF0123456789", "BBCDEF0123456789", "CBCDEF0123456789"], 10); - Assert.equal(k.map(getKeyId).join(" "), "ABCDEF0123456789"); - - k = EnigmailKeyUsability.getExpiryForKeySpec(["user1@enigmail-test.net", "user2@enigmail-test.net", "user5@enigmail-test.net"], 10); - Assert.equal(k.map(getKeyId).join(" "), "ABCDEF0123456789 ACCDEF0123456789"); -}))); - -test(function shouldCheckKeySpecs() { - let a = EnigmailKeyUsability.getKeysSpecForIdentities(); - Assert.equal(a.length, 3); - Assert.equal(a.join(" "), "ABCDEF0123456789 user2@enigmail-test.net user4@enigmail-test.net"); -}); - -test(withTestGpgHome(withEnigmail(function shouldGetNewlyExpiredKeys() { - EnigmailPrefs.setPref("keyCheckResult", ""); - EnigmailPrefs.setPref("warnKeyExpiryNumDays", 10); - let a = EnigmailKeyUsability.getNewlyExpiredKeys(); - Assert.equal(a.map(getKeyId).join(" "), "ABCDEF0123456789"); - - EnigmailPrefs.setPref("warnKeyExpiryNumDays", 101); - a = EnigmailKeyUsability.getNewlyExpiredKeys(); - Assert.equal(a, null); - - let keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", "")); - keyCheckResult.lastCheck = Date.now() - 86401000; - EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult)); - - a = EnigmailKeyUsability.getNewlyExpiredKeys(); - Assert.equal(a.map(getKeyId).join(" "), "EBCDEF0123456789"); - - keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", "")); - keyCheckResult.lastCheck = Date.now() - 86401000; - EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult)); - - a = EnigmailKeyUsability.getNewlyExpiredKeys(); - Assert.equal(a.length, 0); -}))); - -test(withTestGpgHome(withEnigmail(function shouldDoKeyExpiryCheck() { - - EnigmailPrefs.setPref("keyCheckResult", ""); - EnigmailPrefs.setPref("warnKeyExpiryNumDays", 101); - - let str = EnigmailKeyUsability.keyExpiryCheck(); - Assert.equal(str, EnigmailLocale.getString("expiry.keysExpireSoon", [101, '- "user1@enigmail-test.net" (key ID 123456781234567812345678ABCDEF0123456789)\n' + - '- "user2@enigmail-test.net" (key ID 123456781234567812345678EBCDEF0123456789)\n' - ])); - - - let keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", "")); - keyCheckResult.lastCheck = Date.now() - 86401000; - EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult)); - - EnigmailPrefs.setPref("warnKeyExpiryNumDays", 10); - str = EnigmailKeyUsability.keyExpiryCheck(); - Assert.equal(str, ""); -}))); - -function getKeyId(key) { - return key.keyId; -} - -function createKeyObj(keyId, userId, expiryDate, hasSecretKey) { - return { - keyId: keyId, - userId: userId, - fpr: "123456781234567812345678" + keyId, - expiryTime: expiryDate, - keyUseFor: "escESC", - secretAvailable: hasSecretKey, - keyTrust: "u", - type: "pub", - userIds: [{ - userId: userId, - type: "uid", - keyTrust: "u" - }], - subKeys: [], - signatures: [], - getEncryptionValidity: function() { - return { - keyValid: true, - reason: "" - }; - }, - getSigningValidity: function() { - return { - keyValid: true, - reason: "" - }; - }, - getKeyExpiry: function() { - if (this.expiryTime === 0) return Number.MAX_VALUE; - return this.expiryTime; - }, - get fprFormatted() { - return this.fpr; - } - }; -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/files-test.js enigmail-2.2.4/package/tests/files-test.js --- enigmail-2.1.6+ds1/package/tests/files-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/files-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global EnigmailCore: false, EnigmailFiles: false, EnigmailLog: false, EnigmailPrefs: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, addMacPaths: false */ - -testing("files.jsm"); /* global EnigmailOS: false */ - -// testing: readFile -test(function readFileReturnsContentOfExistingFile() { - var md = do_get_cwd().clone(); - md = md.parent.parent; - md.append("uuid_enig.txt"); - var result = EnigmailFiles.readFile(md); - Assert.assertContains(result, "847b3a00-7ab1-11d4-8f02-006008948af5"); -}); - -test(function readFileReturnsEmptyStringForNonExistingFile() { - var md = do_get_cwd().clone(); - md = md.parent.parent; - md.append("THIS_FILE_DOESNT_EXIST"); - var result = EnigmailFiles.readFile(md); - Assert.equal("", result); -}); - -test(function shouldFormatCmdLine() { - var md = do_get_cwd(); - - Assert.equal(EnigmailFiles.formatCmdLine(md, ["1", "2", "3"]), do_get_cwd().path + " 1 2 3"); -}); - -test(function shouldNotAppendExeInDosLikeEnvironment() { - TestHelper.resetting(EnigmailOS, "isDosLike", true, function() { - const expectedPath = "C:\\Program Files\\GnuPG\\bin\\gpg.exe"; - - const actualPath = EnigmailFiles.resolvePath(expectedPath, "C:\\Program Files\\GnuPG\\bin", true); - - Assert.equal(actualPath, expectedPath); - }); -}); - -test(function checkDirectory() { - let md = do_get_cwd(); - - Assert.equal(0, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - - md.append("should-exist"); - Assert.equal(0, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - - try { - md.permissions = 0x1C0; - Assert.equal(0, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - } catch (x) { - // don't try if permissions cannot be modified - } - - md.remove(true); - md.create(Ci.nsIFile.FILE_TYPE, 0x1C0); - Assert.equal(3, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - - md.remove(false); - - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - - if (env.get("USER") !== "root" && (!EnigmailOS.isDosLike)) { - // these two test cases don't work as expected if the test is run with root permissions - - md.initWithPath("/does/not/exist"); - Assert.equal(1, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - - if (EnigmailOS.isDosLike) { - let envS = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let sysRoot = envS.get("SystemRoot"); - md.initWithPath(sysRoot); - } else - md.initWithPath("/"); - - Assert.equal(2, EnigmailFiles.ensureWritableDirectory(md, 0x1C0)); - } -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/filters-test.js enigmail-2.2.4/package/tests/filters-test.js --- enigmail-2.1.6+ds1/package/tests/filters-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/filters-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,106 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global EnigmailCore: false, EnigmailFiles: false, EnigmailLog: false, EnigmailPrefs: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, addMacPaths: false */ - -testing("filters.jsm"); /* global JsmimeEmitter: false, EnigmailFilters: false, processIncomingMail: false */ -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; - -// testing: JsmimeEmitter -test(function mimeEmitterBasicTest() { - - let msgPart = 0; - let msgStruct = [ - ["1", "multipart/mixed"], - ["1.1", "text/plain; part=1"], - ["1.2", "multipart/mixed; part=2"], - ["1.2.1", "text/plain; part=2.1"], - ["1.3", "text/plain; part=3"] - ]; - - function walkMimeTree(node) { - Assert.equal(msgStruct[msgPart][0], node.partNum); - Assert.equal(msgStruct[msgPart][1], node.headers["content-type"]); - ++msgPart; - - for (let i of node.subParts) { - walkMimeTree(i); - } - } - - let p = new JsmimeEmitter(false); - - p.startMessage(); - p.startPart("1", { - "content-type": "multipart/mixed" - }); - p.deliverPartData("1", ""); - p.startPart("1.1", { - "content-type": "text/plain; part=1" - }); - p.deliverPartData("1.1", "test1"); - p.endPart("1.1"); - p.startPart("1.2", { - "content-type": "multipart/mixed; part=2" - }); - p.deliverPartData("1.2", "test2"); - p.startPart("1.2.1", { - "content-type": "text/plain; part=2.1" - }); - p.deliverPartData("1.2.1", "test2.1"); - p.endPart("1.2.1"); - p.endPart("1.2"); - p.startPart("1.3", { - "content-type": "text/plain; part=3" - }); - p.deliverPartData("1.3", "test3"); - p.endPart("1.3"); - p.endPart("1"); - p.endMessage(); - - let t = p.getMimeTree(); - walkMimeTree(t); -}); - - -// testing: processIncomingMail -test(function processIncomingMailTest() { - - var testString = "Subject: Test\r\nContent-Type: text/plain\r\n\r\nThis is a test\r\n"; - - EnigmailFilters.addNewMailConsumer({ - consumeMessage: function(msg, rawMessageData) { - try { - Assert.equal(rawMessageData, testString); - let ct = msg.headers.contentType.type; - Assert.equal(ct, "text/plain"); - } catch (ex) { - Assert.equal(ex.toString(), ""); - } - do_test_finished(); - } - }); - var md = do_get_cwd().clone(); - md.append("test-message.txt"); - - var ioService = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); - - EnigmailFiles.writeFileContents(md, testString, null); - - do_test_pending(); - - try { - processIncomingMail(md, true); - } catch (ex) { - Assert.ok(false, "processIncomingMail: exception " + ex.toString()); - do_test_finished(); - } -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/funcs-test.js enigmail-2.2.4/package/tests/funcs-test.js --- enigmail-2.1.6+ds1/package/tests/funcs-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/funcs-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, EnigmailApp: false */ -/*global EnigmailFuncs: false, rulesListHolder: false, EC: false, setupTestAccounts: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("funcs.jsm"); - -var EnigmailFuncsTests = { - testStripEmail(str, res) { - let addr; - addr = EnigmailFuncs.stripEmail(str); - Assert.equal(addr, res); - } -}; - -setupTestAccounts("tester@enigmail.org"); - -test(function stripEmail() { - EnigmailFuncsTests.testStripEmail("some stuff ", - "a@b.de"); - - EnigmailFuncsTests.testStripEmail("\"some stuff\" a@b.de", - "a@b.de"); - - EnigmailFuncsTests.testStripEmail("\"some, stuff\" a@b.de", - "a@b.de"); - - EnigmailFuncsTests.testStripEmail("some stuff , xyz", - "a@b.de,xy@a.xx"); - - EnigmailFuncsTests.testStripEmail(" a@b.de , ", - "a@b.de,aa@bb.de"); - - EnigmailFuncsTests.testStripEmail(" ,,,,;;;; , ; , ;", - ""); - - EnigmailFuncsTests.testStripEmail(";", - ""); - - - EnigmailFuncsTests.testStripEmail(" ,,oneRule,;;; , ;", - "oneRule"); - - EnigmailFuncsTests.testStripEmail(" ,,,nokey,;;;; , nokey2 ; , ;", - "nokey,nokey2"); - - EnigmailFuncsTests.testStripEmail(",,,newsgroupa ", - "newsgroupa"); - - // test invalid email addresses: - Assert.throws( - function() { - EnigmailFuncs.stripEmail(" a@b.de , "); - } - ); - Assert.throws( - function() { - EnigmailFuncs.stripEmail("\"some stuff a@b.de"); - } - ); - Assert.throws( - function() { - EnigmailFuncs.stripEmail(""); - } - ); - -}); - -test(function compareMimePartLevel() { - Assert.throws( - function() { - EnigmailFuncs.compareMimePartLevel("1.2.e", "1.2"); - } - ); - - let e = EnigmailFuncs.compareMimePartLevel("1.1", "1.1.2"); - Assert.equal(e, -2); - - e = EnigmailFuncs.compareMimePartLevel("1.1", "1.2.2"); - Assert.equal(e, -1); - - e = EnigmailFuncs.compareMimePartLevel("1", "2"); - Assert.equal(e, -1); - - e = EnigmailFuncs.compareMimePartLevel("1.2", "1.1.2"); - Assert.equal(e, 1); - - e = EnigmailFuncs.compareMimePartLevel("1.2.2", "1.2"); - Assert.equal(e, 2); - - e = EnigmailFuncs.compareMimePartLevel("1.2.2", "1.2.2"); - Assert.equal(e, 0); - -}); - -test(function testGetOwnEmailAddresses() { - let r = EnigmailFuncs.getOwnEmailAddresses(); - - const expectedResult = [ - "tester@enigmail.org", - "user2@enigmail-test.net", - "user3@enigmail-test.net", - "user4@enigmail-test.net" - ]; - - for (let i of expectedResult) { - Assert.ok(i in r, `${i} is not in own emails`); - } -}); - -test(function testGetNumberOfRecipients() { - - let compFields = { - to: "tester@enigmail.org, another.tester@enigmail.org", - cc: "user4@enigmail-test.net, Peter " - }; - - let n = EnigmailFuncs.getNumberOfRecipients(compFields); - Assert.equal(n, 2, "number of recipients"); - -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/gnupg-keylist-test.js enigmail-2.2.4/package/tests/gnupg-keylist-test.js --- enigmail-2.1.6+ds1/package/tests/gnupg-keylist-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/gnupg-keylist-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, */ -/*global resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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/. - */ - -/* eslint no-useless-concat: 0*/ -"use strict"; - -/*global EnigmailFiles: false */ -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -/*createAndSortKeyList: false, Number: false */ - -testing("cryptoAPI/gnupg-keylist.jsm"); /*global appendKeyItems: false, EnigmailTrust: false, EnigmailLocale: false */ - -test(function shouldCreateKeyListObject() { - // from: gpg2 --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --with-fingerprint --fixed-list-mode --with-colons --list-keys - let pubKeyInfo = [ - // user with trust level "o" (unknown) - "tru::1:1443339321:1451577200:3:1:5", - // Key 1 - "pub:o:4096:1:DEF9FC808A3FF001:1388513885:1546188604::u:::scaESCA:", - "fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:", - "uid:o::::1389038412::44F73158EF0F47E4595B1FD8EC740519DE24B994::A User ID with CAPITAL letters :", - "uid:-::::1389038405::3FC8999BDFF08EF4210026D3F1C064C072517376::A second User ID with CAPITAL letters :", - "sub:o:4096:1:E2DEDFFB80C14584:1388513885:1546188604:::::e:", - "sub:o:3072:1:AB908C90BED8AC3E:1388513886:1746188604:::::c:", - // Key 2 - "pub:-:2048:1:8439E17046977C46:1464214329:::-:::scESC::::::23::0:", - "fpr:::::::::8C140834F2D683E9A016D3098439E17046977C46:", - "uid:-::::1464214329::6D3876B55C560A589EDF6CC109B4A9DCB50614D6::dev-tiger ::::::::::0:", - "sub:-:2048:1:55927D0F0E5A9DF5:1464214329::::::e::::::23:", - "fpr:::::::::BB5227C62D575DC0857AFC2755927D0F0E5A9DF5:" - ]; - - // from: gpg2 --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --with-fingerprint --fixed-list-mode --with-colons --list-secret-keys - let secKeyInfo = [ - // Key 3 (does not exist on pubkey list) - "sec:u:3072:1:D59E3B46243D2AA4:1530205118:::u:::cESC:::+:::23::0:", - "fpr:::::::::09933176C72A34576C1EB444D59E3B46243D2AA4:", - "grp:::::::::AFF4F764AF0A9B1A5A1EC6C2DB5749C848252033:", - "uid:u::::1530205118::18B030504D1756B186D2EF8642F53EFA63B14148::Something ::::::::::0:", - "ssb:u:3072:1:BA3C01011F0EECD2:1530205137::::::s:::+:::23:", - "fpr:::::::::0A82F10C8E14AE909176F8DABA3C01011F0EECD2:", - "grp:::::::::EDA4C757CE3587DC8CE677A032397F21F9930319:", - "ssb:u:3072:1:3AB1459E2DABC99A:1530205155::::::e:::+:::23:", - "fpr:::::::::0EF326B8FFA4A6564650E4763AB1459E2DABC99A:", - "grp:::::::::7EA9BAC4F20EB5CA23DD3D55A55377D2307035AC:", - // Key 1 (exists on pubkey list) - "sec::4096:1:DEF9FC808A3FF001:1388513885:1546188604:::::::::", - "fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:", - "uid:::::::44F73158EF0F47E4595B1FD8EC740519DE24B994::a user id with no capital letters :", - "uid:::::::3FC8999BDFF08EF4210026D3F1C064C072517376::A second User ID with CAPITAL letters :", - "ssb::4096:1:E2DEDFFB80C14584:1388513885::::::::::" - ]; - - let keyListObj = { - keys: [], - index: [] - }; - appendKeyItems(pubKeyInfo, keyListObj); - appendKeyItems(secKeyInfo, keyListObj); - - Assert.notEqual(keyListObj.keys.length, 0); - Assert.equal(keyListObj.keys[0].userId, "A User ID with CAPITAL letters "); - Assert.equal(keyListObj.keys[0].keyId, "DEF9FC808A3FF001"); - Assert.equal(keyListObj.keys[0].fpr, "EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001"); - Assert.ok(keyListObj.keys[0].secretAvailable); - Assert.equal(keyListObj.keys[0].subKeys.length, 2); - Assert.equal(keyListObj.keys[0].subKeys[1].keyUseFor, "c"); - Assert.equal(keyListObj.keys[0].userIds.length, 2); - Assert.equal(keyListObj.keys[0].userIds[1].keyTrust, "-"); - Assert.equal(keyListObj.index.DEF9FC808A3FF001.userId, "A User ID with CAPITAL letters "); - Assert.equal(keyListObj.keys[1].keyId, "8439E17046977C46"); - Assert.equal(keyListObj.index["8439E17046977C46"].userId, "dev-tiger "); - Assert.equal(keyListObj.keys[1].secretAvailable, undefined); - Assert.equal(keyListObj.keys[2].fpr, "09933176C72A34576C1EB444D59E3B46243D2AA4"); - Assert.ok(keyListObj.keys[2].secretAvailable); - Assert.equal(keyListObj.keys[2].userId, "Something "); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/gpgAgent-test.js enigmail-2.2.4/package/tests/gpgAgent-test.js --- enigmail-2.1.6+ds1/package/tests/gpgAgent-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/gpgAgent-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global TestHelper: false, withEnvironment: false, nsIWindowsRegKey: true */ -/* - * 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -/*global withEnigmail: false, component: false, withTestGpgHome: false, osUtils: false, EnigmailFiles */ - -testing("gpgAgent.jsm"); /*global EnigmailGpgAgent: false, EnigmailOS: false, getHomedirFromParam: false, EnigmailPrefs: false */ -const EnigmailGpg = component("enigmail/gpg.jsm").EnigmailGpg; - -// testing: determineGpgHomeDir -// environment: GNUPGHOME -// isWin32: -// registry Software\GNU\GNUPG\HomeDir -// environment: USERPROFILE + \Application Data\GnuPG -// environment: SystemRoot + \Application Data\GnuPG -// c:\gnupg -// environment: HOME + .gnupg - -test(function determineGpgHomeDirReturnsGNUPGHOMEIfExists() { - withEnvironment({ - "GNUPGHOME": "stuffResult1" - }, function(e) { - var enigmail = { - environment: e - }; - Assert.equal("stuffResult1", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); -}); - -// this test cannot be reliably performed on Windows -if (JSUnit.getOS() != "WINNT") { - test(function determineGpgHomeDirReturnsHomePlusGnupgForNonWindowsIfNoGNUPGHOMESpecificed() { - withEnvironment({ - "HOME": "/my/little/home" - }, function(e) { - e.set("GNUPGHOME", null); - var enigmail = { - environment: e - }; - Assert.equal("/my/little/home/.gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); - }); -} - -test(function determineGpgHomeDirReturnsRegistryValueForWindowsIfExists() { - withEnvironment({}, function(e) { - e.set("GNUPGHOME", null); - resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) { - if (a === "Software\\GNU\\GNUPG" && b === "HomeDir" && c === "foo bar") { - return "\\foo\\bar\\gnupg"; - } else { - return "\\somewhere\\else"; - } - }, function() { - resetting(EnigmailOS, 'isWin32', true, function() { - var enigmail = { - environment: e - }; - nsIWindowsRegKey = { - ROOT_KEY_CURRENT_USER: "foo bar" - }; - Assert.equal("\\foo\\bar\\gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); - }); - }); -}); - -test(function determineGpgHomeDirReturnsUserprofileIfItExists() { - withEnvironment({ - "USERPROFILE": "\\bahamas" - }, function(e) { - e.set("GNUPGHOME", null); - resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() { - resetting(EnigmailOS, 'isWin32', true, function() { - var enigmail = { - environment: e - }; - nsIWindowsRegKey = { - ROOT_KEY_CURRENT_USER: "foo bar" - }; - Assert.equal("\\bahamas\\Application Data\\GnuPG", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); - }); - }); -}); - -test(function determineGpgHomeDirReturnsSystemrootIfItExists() { - withEnvironment({ - "SystemRoot": "\\tahiti", - "USERPROFILE": null - }, function(e) { - e.set("GNUPGHOME", null); - resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() { - resetting(EnigmailOS, 'isWin32', true, function() { - var enigmail = { - environment: e - }; - nsIWindowsRegKey = { - ROOT_KEY_CURRENT_USER: "foo bar" - }; - Assert.equal("\\tahiti\\Application Data\\GnuPG", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); - }); - }); -}); - -test(function determineGpgHomeDirReturnsDefaultForWin32() { - withEnvironment({ - "SystemRoot": null, - "USERPROFILE": null - }, function(e) { - e.set("GNUPGHOME", null); - resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() { - resetting(EnigmailOS, 'isWin32', true, function() { - var enigmail = { - environment: e - }; - nsIWindowsRegKey = { - ROOT_KEY_CURRENT_USER: "foo bar" - }; - Assert.equal("C:\\gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail)); - }); - }); - }); -}); - -function withGpgFeatures(features, f) { - resetting(EnigmailGpg, 'getGpgFeature', function(feature) { - return features.indexOf(feature) != -1; - }, f); -} - - -// // setAgentPath - -test(withEnigmail(function setAgentPathDefaultValues(enigmail) { - withEnvironment({}, function(e) { - enigmail.environment = e; - EnigmailGpgAgent.setAgentPath(JSUnit.createStubWindow(), enigmail); - Assert.equal("gpg", EnigmailGpgAgent.agentType); - Assert.equal("gpg", EnigmailGpgAgent.agentPath.leafName.substr(0, 3)); - Assert.equal("gpgconf", EnigmailGpgAgent.gpgconfPath.leafName.substr(0, 7)); - Assert.equal("gpg-connect-agent", EnigmailGpgAgent.connGpgAgentPath.leafName.substr(0, 17)); - // Basic check to test if GnuPG version was properly extracted - Assert.ok(EnigmailGpg.agentVersion.search(/^[2-9]\.[0-9]+(\.[0-9]+)?/) === 0); - }); -})); - -// // resolveToolPath - -test(withEnigmail(function resolveToolPathDefaultValues(enigmail) { - withEnvironment({}, function(e) { - resetting(EnigmailGpgAgent, 'agentPath', "/usr/bin/gpg-agent", function() { - enigmail.environment = e; - var result = EnigmailGpgAgent.resolveToolPath("sort"); - Assert.equal("sort", result.leafName.substr(0, 4)); - }); - }); -})); - -// route cannot be tested reliably on non-Unix systems -// test(withEnigmail(function resolveToolPathFromPATH(enigmail) { -// withEnvironment({PATH: "/sbin"}, function(e) { -// resetting(EnigmailGpgAgent, 'agentPath', "/usr/bin/gpg-agent", function() { -// enigmail.environment = e; -// var result = EnigmailGpgAgent.resolveToolPath("route"); -// Assert.equal("/sbin/route", result.path); -// }); -// }); -// })); - -// detectGpgAgent -test(withEnigmail(function detectGpgAgentSetsAgentInfoFromEnvironmentVariable(enigmail) { - withEnvironment({ - GPG_AGENT_INFO: "a happy agent" - }, function(e) { - enigmail.environment = e; - EnigmailGpgAgent.detectGpgAgent(JSUnit.createStubWindow(), enigmail); - - Assert.ok(EnigmailGpgAgent.gpgAgentInfo.preStarted); - Assert.equal("a happy agent", EnigmailGpgAgent.gpgAgentInfo.envStr); - Assert.ok(!EnigmailGpgAgent.gpgAgentIsOptional); - }); -})); - - -test(withEnigmail(function detectGpgAgentWithNoAgentInfoInEnvironment(enigmail) { - withEnvironment({}, function(e) { - enigmail.environment = e; - EnigmailGpgAgent.detectGpgAgent(JSUnit.createStubWindow(), enigmail); - - Assert.ok(!EnigmailGpgAgent.gpgAgentInfo.preStarted); - Assert.ok(!EnigmailGpgAgent.gpgAgentIsOptional); - Assert.equal("none", EnigmailGpgAgent.gpgAgentInfo.envStr); - }); -})); - - -//getGpgHomeDir -test(withTestGpgHome(withEnigmail(function shouldGetGpgHomeDir() { - let homedirExpected = osUtils.OS.Path.join(EnigmailFiles.getTempDir(), ".gnupgTest"); - - let homeDir = EnigmailGpgAgent.getGpgHomeDir(); - Assert.equal(homedirExpected, homeDir.substr(0, homedirExpected.length)); -}))); - -// getHomedirFromParam -test(function shouldGetHomedirFromParam() { - let hd = getHomedirFromParam('--homedir /some1/path'); - Assert.equal(hd, "/some1/path"); - - hd = getHomedirFromParam('--opt1 --homedir /some2/path --opt2'); - Assert.equal(hd, "/some2/path"); - - hd = getHomedirFromParam('--opt1 --homedir "C:\\My Path\\is\\Very \\"long 1\\"" --opt2'); - Assert.equal(hd, 'C:\\My Path\\is\\Very \\"long 1\\"'); - - hd = getHomedirFromParam('--opt1 --homedir "C:\\My Path\\is\\Very \\"long 2\\"" --opt2 "Some \\"more\\" fun"'); - Assert.equal(hd, 'C:\\My Path\\is\\Very \\"long 2\\"'); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/gpg-test.js enigmail-2.2.4/package/tests/gpg-test.js --- enigmail-2.1.6+ds1/package/tests/gpg-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/gpg-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,250 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global TestHelper: false, withEnvironment: false, nsIWindowsRegKey: true */ -/* - * 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -/*global withEnigmail: false, component: false, withTestGpgHome: false, osUtils: false */ -/*global MINIMUM_GPG_VERSION: false */ - -testing("gpg.jsm"); /*global EnigmailGpg: false, getGpgFeature: false, lazyEnv: true, usesDirmngr: false, dirmngrConfiguredWithTor: false */ -const EnigmailExecution = component("enigmail/execution.jsm").EnigmailExecution; -const subprocess = component("enigmail/subprocess.jsm").subprocess; -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; -const EnigmailOS = component("enigmail/os.jsm").EnigmailOS; -const EnigmailGpgAgent = component("enigmail/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailVersioning = component("enigmail/versioning.jsm").EnigmailVersioning; - -function withStubFormatCmdLine(f) { - return function() { - TestHelper.resetting(EnigmailFiles, "formatCmdLine", function(executable) { - return ""; - }, function() { - f(); - }); - }; -} - -test(withStubFormatCmdLine(function shouldUseResolveToolPathWhenCheckingDirmngrConfiguration() { - TestHelper.resetting(EnigmailGpgAgent, "resolveToolPath", function(executable) { - Assert.equal(executable, "gpg-connect-agent"); - return; - }, function() { - TestHelper.resetting(subprocess, "call", function(subprocObj) { - return { - wait: function() {} - }; - }, function() { - dirmngrConfiguredWithTor(); - }); - }); -})); - -test(withStubFormatCmdLine(function returnsFalseWhenNotConfiguredToUseTor() { - TestHelper.resetting(EnigmailGpg, "getGpgFeature", function(feature) { - return false; - }, function() { - Assert.equal(dirmngrConfiguredWithTor(), false); - }); -})); - -test(withStubFormatCmdLine(function returnsTrueWhenConfiguredToUseTor() { - TestHelper.resetting(EnigmailGpg, "getGpgFeature", function(feature) { - return true; - }, function() { - TestHelper.resetting(EnigmailGpgAgent, "resolveToolPath", function(executable) { - return { - path: "/usr/bin/gpg-connect-agent" - }; - }, function() { - TestHelper.resetting(subprocess, "call", function(subprocObj) { - subprocObj.stdout("OK - Tor mode is enabled\n OK closing connection\n"); - - if (typeof subprocObj.done === "function") { - subprocObj.done({ - exitCode: 0 - }); - } - return { - wait: function() { - return 0; - } - }; - }, function() { - - Assert.equal(dirmngrConfiguredWithTor(), true); - }); - }); - }); -})); - -test(withStubFormatCmdLine(function returnsFalseWhenNotConfiguredToUseTor() { - TestHelper.resetting(EnigmailGpg, "getGpgFeature", function(feature) { - return true; - }, function() { - TestHelper.resetting(EnigmailGpgAgent, "resolveToolPath", function(executable) { - return { - path: "/usr/bin/gpg-connect-agent" - }; - }, function() { - TestHelper.resetting(subprocess, "call", function(subprocObj) { - subprocObj.stdout("OK - Tor mode is NOT enabled\n OK closing connection\n"); - - if (typeof subprocObj.done === "function") { - subprocObj.done({ - exitCode: 0 - }); - } - - return { - wait: function() { - return 0; - } - }; - }, function() { - - Assert.equal(dirmngrConfiguredWithTor(), false); - }); - }); - }); -})); - -test(withStubFormatCmdLine(function returnsFalseWhenGpgConnectAgentPathIsNotFound() { - TestHelper.resetting(EnigmailGpgAgent, "resolveToolPath", function(executable) { - return null; - }, function() { - - Assert.equal(dirmngrConfiguredWithTor(), false); - }); -})); - -test(withStubFormatCmdLine(function returnsFalseWhenExitCodeIndicatesErrorInExecution() { - TestHelper.resetting(EnigmailGpgAgent, "resolveToolPath", function(executable) { - return { - path: "/usr/bin/gpg-connect-agent" - }; - }, function() { - TestHelper.resetting(subprocess, "call", function(subprocObj) { - subprocObj.stdout(""); - subprocObj.done(); - return { - wait: function() {} - }; - }, function() { - - Assert.equal(dirmngrConfiguredWithTor(), false); - }); - }); -})); - - -test(function testGetGpgFeatureForWhenVersionIsSupported() { - TestHelper.resetting(EnigmailGpg, "agentVersion", MINIMUM_GPG_VERSION, function() { - const output = EnigmailGpg.getGpgFeature("version-supported"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForWhenVersionIsSupported() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0.0", function() { - const output = EnigmailGpg.getGpgFeature("version-supported"); - Assert.equal(output, false); - }); -}); - -test(function testGetGpgFeatureForWhenVersionSupportsGpgAgent() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0.0", function() { - const output = EnigmailGpg.getGpgFeature("supports-gpg-agent"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForWhenVersionDoesNotSupportGpgAgent() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "1.4", function() { - const output = EnigmailGpg.getGpgFeature("supports-gpg-agent"); - Assert.equal(output, false); - }); -}); - - -test(function testGetGpgFeatureForWhenVersionDoesNotSupportKeygenPassPhrase() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.1", function() { - const output = EnigmailGpg.getGpgFeature("keygen-passphrase"); - Assert.equal(output, false); - }); -}); - -test(function testGetGpgFeatureForWhenVersionSupportsKeygenPassPhrase() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.1.2", function() { - const output = EnigmailGpg.getGpgFeature("keygen-passphrase"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForWhenVersionSupportsGenKeyNoProtection() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.1.2", function() { - const output = EnigmailGpg.getGpgFeature("genkey-no-protection"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForWhenVersionDoesNotSupportSender() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.1.14", function() { - const output = EnigmailGpg.getGpgFeature("supports-sender"); - Assert.equal(output, false); - }); -}); - -test(function testGetGpgFeatureForWhenVersionDoesSupportSender() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.1.15", function() { - const output = EnigmailGpg.getGpgFeature("supports-sender"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForWhenVersionDoesNotSupportGenKeyNoProtection() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0", function() { - const output = EnigmailGpg.getGpgFeature("genkey-no-protection"); - Assert.equal(output, false); - }); -}); - -test(function testGetGpgFeatureForWhenVersionSupportsWindowsPhotoidBug() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0.16", function() { - const output = EnigmailGpg.getGpgFeature("windows-photoid-bug"); - Assert.equal(output, false); - }); -}); - -test(function testGetGpgFeatureForWhenVersionDoesNotSupportWindowsPhotoidBug() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0.15", function() { - const output = EnigmailGpg.getGpgFeature("windows-photoid-bug"); - Assert.equal(output, true); - }); -}); - -test(function testGetGpgFeatureForUnkownFeature() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "2.0.15", function() { - const output = EnigmailGpg.getGpgFeature("I_am_unsupported"); - Assert.equal(output, undefined); - }); -}); - -test(function testGetGpgFeatureForNullAgentVersion() { - TestHelper.resetting(EnigmailGpg, "agentVersion", null, function() { - const output = EnigmailGpg.getGpgFeature("version-supported"); - Assert.equal(output, undefined); - }); -}); - -test(function testGetGpgFeatureForInvalidAgentVersion() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "not a digit", function() { - const output = EnigmailGpg.getGpgFeature("version-supported"); - Assert.equal(output, undefined); - }); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/gpg-wks-client enigmail-2.2.4/package/tests/gpg-wks-client --- enigmail-2.1.6+ds1/package/tests/gpg-wks-client 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/gpg-wks-client 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -#!/bin/sh - -echo "I don't do anything" diff -Nru enigmail-2.1.6+ds1/package/tests/gpg-wks-client.c enigmail-2.2.4/package/tests/gpg-wks-client.c --- enigmail-2.1.6+ds1/package/tests/gpg-wks-client.c 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/gpg-wks-client.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -#include -#include -#include - -int main( ) { - printf("I don't do anything\n"); - return 0; -} diff -Nru enigmail-2.1.6+ds1/package/tests/initialize.js enigmail-2.2.4/package/tests/initialize.js --- enigmail-2.1.6+ds1/package/tests/initialize.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/initialize.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global EnigmailCore: false, EnigmailFiles: false, EnigmailLog: false, EnigmailPrefs: false */ -/*global setupTestAccounts: false, setupTestAccount: false, getCurrentTime: true */ -/* - * 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"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, addMacPaths: false, withEnigmail: false, withTestGpgHome: false*/ -TestHelper.loadDirectly("tests/mailHelper.js"); /*global MailHelper: false */ - -MailHelper.deleteAllAccounts(); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/installGnuPG-test.js enigmail-2.2.4/package/tests/installGnuPG-test.js --- enigmail-2.1.6+ds1/package/tests/installGnuPG-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/installGnuPG-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false */ -/*global do_test_finished: false, component: false, setupTestAccounts: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("installGnuPG.jsm"); /*global EnigmailInstallGnuPG: false, Installer: false */ - - -test(function shouldCheckHashSum() { - let inst = new Installer(null); - inst.installerFile = do_get_file("resources/dev-strike.asc", false); - inst.hash = "918f29289544d619fde087c98c35c7b39ca46616f00578fd90574cb78f15a85b"; // SHA256 sum of installerFile - - Assert.ok(inst.checkHashSum()); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyEditor-test.js enigmail-2.2.4/package/tests/keyEditor-test.js --- enigmail-2.1.6+ds1/package/tests/keyEditor-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyEditor-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, withTestGpgHome:false */ -/*global Ec: false, do_print: false, EnigmailCore: false, EnigmailKeyEditor: false, component: false, EnigmailPrefs: false, EnigmailExecution: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false */ - -testing("keyEditor.jsm"); /*global editKey: false, EnigmailKeyRing: false */ -var EnigmailTime = component("enigmail/time.jsm").EnigmailTime; - -test(withTestGpgHome(withEnigmail(function shouldEditKey() { - importKeys(); - do_test_pending(); - var window = JSUnit.createStubWindow(); - editKey( - window, - false, - null, - "781617319CE311C4", - "trust", { - trustLevel: 5 - }, - function(inputData, keyEdit, ret) { - ret.writeTxt = ""; - ret.errorMsg = ""; - ret.quitNow = true; - ret.exitCode = 0; - }, - null, - function(exitCode, errorMsg) { - Assert.equal(exitCode, 0); - Assert.equal("", errorMsg); - do_test_finished(); - } - ); -}))); - -test(withTestGpgHome(withEnigmail(function shouldSetTrust() { - importKeys(); - do_test_pending(); - var window = JSUnit.createStubWindow(); - EnigmailKeyEditor.setKeyTrust(window, - "781617319CE311C4", - 5, - function(exitCode, errorMsg) { - Assert.equal(exitCode, 0); - Assert.equal("", errorMsg); - do_test_finished(); - } - ); -}))); - -test(withTestGpgHome(withEnigmail(function shouldSignKey() { - importKeys(); - do_test_pending(); - var window = JSUnit.createStubWindow(); - EnigmailKeyEditor.signKey(window, - "anonymous strike ", - "781617319CE311C4", - false, - 5, - function(exitCode, errorMsg) { - Assert.equal(exitCode, -1); - Assert.equal("The key is already signed, you cannot sign it twice.", errorMsg); - do_test_finished(); - } - ); -}))); - -test(withTestGpgHome(function importKeyForEdit() { - const result = importKeys(); - Assert.equal(result[0], 0); - Assert.equal(result[1], 0); -})); - - -test(withTestGpgHome(withEnigmail(function shouldGetSecretKeys() { - const secretKey = do_get_file("resources/dev-strike.sec", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - const window = JSUnit.createStubWindow(); - const importResult = EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - - const createDate = EnigmailTime.getDateTime(1430756251, true, false); - - const expectedKey = [{ - userId: "anonymous strike ", - keyId: "781617319CE311C4", - created: createDate, - keyTrust: "u" - }]; - do_test_pending(); - EnigmailKeyEditor.setKeyTrust(window, - "781617319CE311C4", - 5, - function() { - let result = EnigmailKeyRing.getAllSecretKeys(); - Assert.equal(result.length, 1); - Assert.equal(result[0].userId, expectedKey[0].userId); - Assert.equal(result[0].keyId, expectedKey[0].keyId); - Assert.equal(result[0].created, expectedKey[0].created); - Assert.equal(result[0].keyTrust, expectedKey[0].keyTrust); - do_test_finished(); - } - ); -}))); - -test(function shouldDoErrorHandling() { - let nextCmd = ""; - - /* global GpgEditorInterface: false */ - let editor = new GpgEditorInterface(null, null, ""); - editor._stdin = { - write: function processStdin(data) { - nextCmd = data; - } - }; - - editor.gotData("[GNUPG:] FAILURE sign 85\n"); - Assert.ok(editor.errorMsg.length > 0); - Assert.equal("save\n", nextCmd); - -}); - -function importKeys() { - var publicKey = do_get_file("resources/dev-strike.asc", false); - var secretKey = do_get_file("resources/dev-strike.sec", false); - var errorMsgObj = {}; - var importedKeysObj = {}; - var publicImportResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - var secretImportResult = EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - return [publicImportResult, secretImportResult]; -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyObj-test.js enigmail-2.2.4/package/tests/keyObj-test.js --- enigmail-2.1.6+ds1/package/tests/keyObj-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyObj-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, */ -/*global resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -/* eslint no-useless-concat: 0*/ -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false, gKeyListObj: true */ - -/*global createAndSortKeyList: false */ -const EnigmailGpg = component("enigmail/gpg.jsm").EnigmailGpg; -const EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - -testing("keyObj.jsm"); /*global EnigmailKeyObj: false */ - -test(withTestGpgHome(withEnigmail(function shouldExportMinimalSubkey() { - const publicKey = do_get_file("resources/multi-uid.asc", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - const importResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - - Assert.assertContains(importedKeysObj.value, "ADC49530CB6B132412D856107F1568CB8997F7BA"); - Assert.equal(importResult, 0, errorMsgObj); - - const keyObj = EnigmailKeyRing.getKeyById("0x7F1568CB8997F7BA"); - Assert.assertContains(keyObj.userId, "alice@example.invalid"); - - if (EnigmailGpg.getGpgFeature("export-specific-uid")) { - // only perform test if GnuPG 2.2.9+ is available - let minKey = keyObj.getMinimalPubKey("bob@somewhere.invalid"); - Assert.equal(minKey.exitCode, 0); - - Assert.equal(minKey.keyData.substr(0, 50), "mQGNBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5E"); - Assert.equal(minKey.keyData.substr(-50, 50), "p9TFNKjguUrrGrVnmnmy/YoGTJWuGqrZy8kcC3LCjg0k2mV0M="); - } - - EnigmailGpg.agentVersion = "2.2.1"; - Assert.ok(!EnigmailGpg.getGpgFeature("export-specific-uid")); - - let minKey = keyObj.getMinimalPubKey("bob@somewhere.invalid"); - Assert.equal(minKey.exitCode, 0); - Assert.equal(minKey.keyData.substr(3, 50), "NBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5ElIc"); - Assert.ok(minKey.keyData.substr(-50, 50) == "1MU0qOC5SusatWeaebL9igZMla4aqtnLyRwLcsKODSTaZXQw==" || - minKey.keyData.substr(-50, 50) == "p9TFNKjguUrrGrVnmnmy/YoGTJWuGqrZy8kcC3LCjg0k2mV0M=", "min key matches"); - - minKey = keyObj.getMinimalPubKey("does@not.exist"); - Assert.equal(minKey.exitCode, 0); - - Assert.equal(minKey.keyData.substr(0, 50), "xsDNBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5E"); - Assert.equal(minKey.keyData.substr(-50, 50), "1MU0qOC5SusatWeaebL9igZMla4aqtnLyRwLcsKODSTaZXQw=="); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyRefreshService-test.js enigmail-2.2.4/package/tests/keyRefreshService-test.js --- enigmail-2.1.6+ds1/package/tests/keyRefreshService-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyRefreshService-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,239 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, test: false, Assert: false, resetting: false */ -/*global testing: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, withEnigmail: false, withTestGpgHome: false, withLogFiles: false, assertLogContains: false, assertLogDoesNotContain: false, withPreferences: false */ - -testing("keyRefreshService.jsm"); -/*global EnigmailKeyRefreshService: false, calculateMaxTimeForRefreshInMilliseconds, HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, calculateWaitTimeInMilliseconds, startWith, ONE_HOUR_IN_MILLISEC, refreshWith, refreshKey: false, getRandomKeyId: false, setupNextRefresh: false, -EnigmailKeyRing: false, EnigmailPrefs: false, EnigmailRNG: false, EnigmailKeyserverURIs: false */ - -function withKeys(f) { - return function() { - try { - EnigmailKeyRing.clearCache(); - f(); - } finally { - EnigmailKeyRing.clearCache(); - } - }; -} - -const emptyFunction = function() {}; -const HOURS_PER_WEEK_ENIGMAIL_IS_ON = 40; - -test(function calculateMaxTimeForRefreshForFortyHoursAWeek() { - let totalKeys = 3; - let millisecondsAvailableForRefresh = HOURS_PER_WEEK_ENIGMAIL_IS_ON * 60 * 60 * 1000; - let maxTimeForRefresh = millisecondsAvailableForRefresh / totalKeys; - EnigmailPrefs.setPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, 40); - - Assert.ok(calculateMaxTimeForRefreshInMilliseconds(totalKeys) == maxTimeForRefresh); -}); - -test(function calculateMaxTimeForRefreshForTenHoursAWeek() { - let totalKeys = 2; - let millisecondsAvailableForRefresh = HOURS_PER_WEEK_ENIGMAIL_IS_ON * 60 * 60 * 1000; - let maxTimeForRefresh = millisecondsAvailableForRefresh / totalKeys; - EnigmailPrefs.setPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, 40); - - Assert.ok(calculateMaxTimeForRefreshInMilliseconds(totalKeys) == maxTimeForRefresh); -}); - -test(function waitTimeShouldBeLessThanMax() { - let totalKeys = 4; - let millisecondsAvailableForRefresh = HOURS_PER_WEEK_ENIGMAIL_IS_ON * 60 * 60 * 1000; - let maxTimeForRefresh = millisecondsAvailableForRefresh / totalKeys; - EnigmailPrefs.setPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, 40); - - Assert.ok(calculateWaitTimeInMilliseconds(totalKeys) <= maxTimeForRefresh); -}); - -test(function calculateNewTimeEachCall() { - let totalKeys = 3; - let firstTime = calculateWaitTimeInMilliseconds(totalKeys); - let secondTime = calculateWaitTimeInMilliseconds(totalKeys); - EnigmailPrefs.setPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, 40); - - Assert.ok(firstTime != secondTime); -}); - -test(function calculateWaitTimeReturnsWholeNumber() { - const totalKeys = 11; - EnigmailPrefs.setPref(HOURS_PER_WEEK_ENIGMAIL_IS_ON_PREF, 40); - - const number = calculateWaitTimeInMilliseconds(totalKeys); - - Assert.equal(number % 1, 0); -}); - -function importKeys() { - const publicKey = do_get_file("resources/dev-tiger.asc", false); - const anotherKey = do_get_file("resources/notaperson.asc", false); - const strikeKey = do_get_file("resources/dev-strike.asc", false); - EnigmailKeyRing.importKeyFromFile(publicKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(anotherKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(strikeKey, {}, {}); -} - -function importAndReturnOneKey() { - EnigmailKeyRing.importKeyFromFile(do_get_file("resources/dev-strike.asc", false), {}, {}); - return EnigmailKeyRing.getAllKeys().keyList[0].keyId; -} - -test(withTestGpgHome(withEnigmail(withKeys(function shouldBeAbleToGetAllKeyIdsFromKeyList() { - importKeys(); - - const publicKeyId = "8439E17046977C46"; - const anotherKeyId = "8A411E28A056E2A3"; - const strikeKeyId = "781617319CE311C4"; - - Assert.equal(getRandomKeyId(0), publicKeyId); - Assert.equal(getRandomKeyId(1), anotherKeyId); - Assert.equal(getRandomKeyId(2), strikeKeyId); - Assert.equal(getRandomKeyId(3), publicKeyId); - Assert.equal(getRandomKeyId(4), anotherKeyId); - -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function shouldReturnNullIfNoKeysAvailable() { - Assert.equal(getRandomKeyId(100), null); -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function shouldGetDifferentRandomKeys() { - importKeys(); - - Assert.notEqual(getRandomKeyId(4), getRandomKeyId(5)); -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function ifOnlyOneKey_shouldGetOnlyKey() { - const expectedKeyId = importAndReturnOneKey(); - - Assert.equal(getRandomKeyId(100), expectedKeyId); -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function refreshesKeyOnlyIfWaitTimeHasBeenSetup_AndRefreshIsReady() { - TestHelper.resetting(EnigmailKeyserverURIs, "validKeyserversExist", function() { - return true; - }, function() { - EnigmailPrefs.setPref("keyserver", "keyserver.1"); - const expectedKeyId = importAndReturnOneKey(); - const timer = { - initWithCallbackWasCalled: false, - initWithCallback: function(f, timeUntilNextRefresh, timerType) { - timer.initWithCallbackWasCalled = true; - } - }; - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - const keyserver = { - refreshWasCalled: false, - download: function(keyId) { - Assert.equal(keyId, expectedKeyId); - keyserver.refreshWasCalled = true; - } - }; - - refreshWith(keyserver, timer, false).then(res => { - Assert.equal(keyserver.refreshWasCalled, false, "keyserver.refresh was called and shouldn't have been"); - Assert.equal(timer.initWithCallbackWasCalled, true, "timer.initWithCallback was not called"); - inspector.exitNestedEventLoop(); - }); - inspector.enterNestedEventLoop(0); - - refreshWith(keyserver, timer, true).then(res => { - Assert.equal(keyserver.refreshWasCalled, true, "keyserver.refresh was not called"); - Assert.equal(timer.initWithCallbackWasCalled, true, "timer.initWithCallback was not called"); - inspector.exitNestedEventLoop(); - }); - inspector.enterNestedEventLoop(0); - - }); -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function setUpRefreshTimer_withWaitTime() { - const expectedRandomTime = EnigmailRNG.generateRandomUint32(); - const timer = { - initWithCallbackWasCalled: false, - initWithCallback: function(f, time, timerType) { - Assert.equal(time, expectedRandomTime); - Assert.equal(timerType, Ci.nsITimer.TYPE_ONE_SHOT); - timer.initWithCallbackWasCalled = true; - } - }; - - setupNextRefresh(timer, expectedRandomTime); - - Assert.equal(timer.initWithCallbackWasCalled, true, "timer.initWithCallback was not called"); -})))); - -test(withTestGpgHome(withEnigmail(withKeys(function whenNoKeysExist_retryInOneHour() { - TestHelper.resetting(EnigmailKeyserverURIs, "validKeyserversExist", function() { - return true; - }, function() { - const timer = { - initWithCallbackWasCalled: false, - initWithCallback: function(f, time, timerType) { - Assert.equal(time, ONE_HOUR_IN_MILLISEC); - Assert.equal(timerType, Ci.nsITimer.TYPE_ONE_SHOT); - timer.initWithCallbackWasCalled = true; - } - }; - - const keyserver = {}; - - refreshWith(keyserver, timer, false); - - Assert.equal(timer.initWithCallbackWasCalled, true, "timer.initWithCallback was not called"); - assertLogContains("keyRefreshService.jsm: No keys available to refresh yet. Will recheck in an hour."); - }); -})))); - -test(withPreferences(function ifKeyserverListIsInvalid_checkAgainInAnHour() { - TestHelper.resetting(EnigmailKeyserverURIs, "validKeyserversExist", function() { - return false; - }, function() { - const timer = { - initWithCallbackWasCalled: false, - initWithCallback: function(f, time, timerType) { - Assert.equal(time, ONE_HOUR_IN_MILLISEC); - Assert.equal(timerType, Ci.nsITimer.TYPE_ONE_SHOT); - timer.initWithCallbackWasCalled = true; - } - }; - const keyserver = {}; - - refreshWith(keyserver, timer, false); - - assertLogContains("keyRefreshService.jsm: Either no keyservers exist or the protocols specified are invalid. Will recheck in an hour."); - Assert.equal(timer.initWithCallbackWasCalled, true, "timer.initWithCallback was not called"); - }); -})); - -test(withLogFiles(withPreferences(function keyRefreshServiceIsTurnedOnByDefault() { - const keyRefreshStartMessage = "keyRefreshService.jsm: Started"; - const keyserver = {}; - - EnigmailKeyRefreshService.start(keyserver); - assertLogContains(keyRefreshStartMessage); -}))); - -test(withLogFiles(withPreferences(function keyRefreshServiceStartsWhenPreferenceIsOn() { - TestHelper.resetting(EnigmailKeyserverURIs, "validKeyserversExist", function() { - return false; - }, function() { - const keyRefreshStartMessage = "keyRefreshService.jsm: Started"; - const keyserver = {}; - - EnigmailPrefs.setPref("keyRefreshOn", true); - EnigmailKeyRefreshService.start(keyserver); - assertLogContains(keyRefreshStartMessage); - }); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyRing-test.js enigmail-2.2.4/package/tests/keyRing-test.js --- enigmail-2.1.6+ds1/package/tests/keyRing-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyRing-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,596 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, */ -/*global resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -/* eslint no-useless-concat: 0*/ -"use strict"; - -/*global EnigmailFiles: false */ -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false, gKeyListObj: true */ - -let GnuPGKeyList = {}; -do_load_module("chrome://enigmail/content/modules/cryptoAPI/gnupg-keylist.jsm", GnuPGKeyList); /*global appendKeyItems: false */ -/*global createAndSortKeyList: false */ - -testing("keyRing.jsm"); /*global EnigmailKeyRing: false, EnigmailTrust: false, EnigmailLocale: false */ - -test(withTestGpgHome(withEnigmail(function shouldImportFromFileAndGetKeyDetails() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - const importResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - Assert.assertContains(importedKeysObj.value, "65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(importResult, 0, errorMsgObj); - const keyDetails = EnigmailKeyRing.getValidUids("0xD535623BB60E9E71").join("\n"); - Assert.assertContains(keyDetails, "strike.devtest@gmail.com"); -}))); - - -test(withTestGpgHome(withEnigmail(function shouldGetKeyFunctions() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(publicKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(secretKey, {}, {}); - - // search for key ID - let k = EnigmailKeyRing.getKeyById("0x9CE311C4"); - Assert.equal(k.subKeys[0].keyId, "D535623BB60E9E71"); - - // search for subkey ID - k = EnigmailKeyRing.getKeyById("0xD535623BB60E9E71"); - Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - - Assert.equal(gKeyListObj.keySortList.length, 1); - EnigmailKeyRing.clearCache(); - Assert.equal(gKeyListObj.keySortList.length, 0); - - // search for fingerprint - k = EnigmailKeyRing.getKeyById("65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(k._sigList, null); - - let s = k.signatures; - - let fpr = "DB54FB278F6AE719DE0DE881B17D4C762F5752A9"; - Assert.equal(fpr in s, true); - if (fpr in s) { - Assert.equal(s[fpr].sigList[0].signerKeyId, "781617319CE311C4"); - } - - let ka = EnigmailKeyRing.getKeysByUserId("devtest@gmail.com>$"); - Assert.equal(ka.length, 1); - - ka = EnigmailKeyRing.getAllSecretKeys(); - Assert.equal(ka.length, 1); - - ka = EnigmailKeyRing.getKeyListById("0x9CE311C4 D535623BB60E9E71"); // the space is on purpose(!) - Assert.equal(ka.length, 2); -}))); - -test(withTestGpgHome(withEnigmail(function shouldCleanupClearCache() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(publicKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(secretKey, {}, {}); - EnigmailKeyRing.getAllKeys(); - Assert.notEqual(gKeyListObj.keyList.length, 0); - EnigmailKeyRing.clearCache(); - Assert.equal(gKeyListObj.keyList.length, 0); -}))); - -test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails() { - EnigmailKeyRing.importKey( - JSUnit.createStubWindow(), - false, - "-----BEGIN PGP PUBLIC KEY BLOCK-----" + - "\n" + - "\n" + "mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + - "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + - "\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + - "\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + - "\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + - "\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + - "\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + - "\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + - "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + - "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + - "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + - "\n" + "tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQJO" + - "\n" + "BBMBCAA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEZVN+IS3BkCWtOO2y" + - "\n" + "eBYXMZzjEcQFAltV+f8ACgkQeBYXMZzjEcRWcQ/7Bihjn7jidt7pw4iv9ognHsX/" + - "\n" + "PfDPQtfaa4wK3NHSDq/LMbI5xR+PtV0j4aIjZxj5C4F3/6pvhCthV9KWiMcxlrL1" + - "\n" + "rv92r5JJAqt1T4m/CqYGGcKt+eIiDpuzGj7Ry5VJKyrHL1oFXDo6Sde4L5H87ltH" + - "\n" + "+lvyy9LS8TPgknWV8RsR2vn/IWr9HNLhKAdHEIXFGGfYRaS7RRRYHmP05TFFdFwy" + - "\n" + "hq2VTWW8OgqYILkSEonLgDo12QEAOu5Q9wCK0TV2in+yxBA/Hh5G/Uwm+u4SrW+v" + - "\n" + "SW2pdbYlgk/8Op5ItDQ1n6Q09Jzuyn9CzN+77MJdreAIP9YlnU7eUc7h3iLthHYm" + - "\n" + "flYyXOlO51M7Apnvu4SfFi/jq/9MlN9XJ9t4lo1tkGveAqBh88XZHviymRGYDf2F" + - "\n" + "DkTw/AhdIv8bVeObIoiXuyaoD8lb7fg16Sa7msUj+0+Z+edJBr1YMgdloetyzcHm" + - "\n" + "GFFbqLLiD5GvTRfD6yMdkC/IcfRXtjMITbZxpPMA2NruYqgVXjFzaW76OiTkvjEV" + - "\n" + "4Lt+dAiLpLNh9n5S/1KuB4QK2pH2iyJSFMdxIcJsIfHTkZuOHYs746DWqqdxvsQy" + - "\n" + "MCXkbUtUa2gHz/2mCgxDyma3piWpRkAtMxV+6YRZuBDsGXd7VNXYRVlm8+mCBikL" + - "\n" + "YNyRRnhM4LdkXx7iaaa5Ag0EVUebmwEQAMFfbxtHlDFusY1U9PeMzrQhP6b8ZMsf" + - "\n" + "qWbg5xmiYB6P9esE5xf/QFi06qo/sO6vyTQDx9wuRkJIGx7Wbp+98AKjxVt66e/g" + - "\n" + "itJPkWBeHttg9mx4jLlTtefR0uqlVclGoy3dQtL9HDLXxfHyP2xckkMAoipngwfC" + - "\n" + "AGSc954GcPhobpskC4EQjpFbmWFsbxYUl8KeIW5GeKb5UPq5x/3fHc2QvRNZjSXQ" + - "\n" + "9tR1b3awt+IqnWebP7V1GgFyRPvTWwyzamTjw7lj+8/o4QPMXOMZ0DWv1iRuVeM3" + - "\n" + "1XGFI3TRaWZyrUOoRTfr4yqLhghCy4Xc19LXf5TaWGOVHkelHF0Mx8eMViWTmGU6" + - "\n" + "26+imx5hOUzKQWXwPvLSpIUgCKpWXql2VIFTzhs4segJQZ6ez5SXubRRKHBl1WYy" + - "\n" + "J8XD98nAhJkjwPm8aQzesTtPGscBD87V8mcZk0FGCfwuOdmNEYD+7V/B6m0VjQ3L" + - "\n" + "M7mU7NNYjocEmXWExq97aXS+3AE8utFttGHLpnvsE18T1rbDtjhoV6yGMSlbETxt" + - "\n" + "AjIysEZpFqJDaWleYDpdhnFDzE5R+y2wBHVMz4luhckO5PD5iFpVrZbtn9HN202d" + - "\n" + "qFYIKOm0WrrQO6CAvAAaeOvkdy2kuDC8tUoJ4N9TydyHMKQvseKSHYsLvJJRH9XM" + - "\n" + "5FqD9OSPFhFHABEBAAGJAjYEGAEIACACGwwWIQRlU34hLcGQJa047bJ4FhcxnOMR" + - "\n" + "xAUCW1X6FAAKCRB4FhcxnOMRxECYEACaDw6JFqgdHI5pH7pkRae9Vif63Ot7XEmS" + - "\n" + "xUGpoj/qbzZy+cm9lEfcOHC9cihFa0EwG1WpFUyuzl8z8f6nulJ2vi5unC007D8y" + - "\n" + "T5kwL7vaQ+gd1JtcPny3J6qRaNxY2KhlkkLFYFLSnpt/ye0S/HuCH7RjG1lYHga9" + - "\n" + "KULqYB+pdpFmfmPy6ogpHHaKQuYf/y9yRyylml/rjdRTWOzCa8L6y2y63y8mkcEZ" + - "\n" + "vUJ/WWAzCmka/w43uv3fPrui7wzMLDeCkSEomboax9bgTqqt9/ZNP9H0ja7XUNIj" + - "\n" + "HT8zn+h8YkjCHAupHRIltx7ZPaisZiz6RA/iwIE+rtkrYEOyCLsaHT+iXMsPFXLY" + - "\n" + "PMgR1usJqg2M3CzVdGmjXl0/ZZzo4a+wKzkRCnA1K4ZsJ/Py24QfqNIw8Jysab86" + - "\n" + "SVSpGq3YbDIuKI/6I5CSL36WlfDcsvypr6MvE7X59otGj+1qzmlHuscL95EchJAN" + - "\n" + "RJbTW1/IHw2VMqQhRMTBKftrMediC/xP9xtl4U3D8Wybk+ghQdwuW9x3SW9H8Dol" + - "\n" + "gzBI3fdHTevZCuJJFdXhmEyEa2eEcRioc/3zaAHGThE+8SnsA8IuuqALT43w3b14" + - "\n" + "LizcmRWQcBnH5+PlhXYf3/nAlEnXD6TCZrOGlNCzLTWQTBLg1kw97xS/PQyCg24X" + - "\n" + "snHSt1DRJA==" + - "\n" + "=I9l9" + - "\n" + "-----END PGP PUBLIC KEY BLOCK-----" + - "\n" + "-----BEGIN PGP PRIVATE KEY BLOCK-----" + - "\n" + - "\n" + "lQdGBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + - "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + - "\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + - "\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + - "\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + - "\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + - "\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + - "\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + - "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + - "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + - "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + - "\n" + "/gcDArJ7Wicddqbq5aBonxpLZfUlRnCZfugyu7OPqno7mwK39Y/i2Fdr+Aqo4ISr" + - "\n" + "mba7JnGd6J7XDpas78yqrFcbs7RBawKTML5SS0v1nSwco06wzf8ymFh8bP87dRmI" + - "\n" + "7A/BaPMd+YL/UDrw0QFAZN+PEBcCg0A20rc8KKYpf8wv3PHhA+zPRULQVFpF1B0t" + - "\n" + "cPUYXj5WpKO1dDPVxA+nhGIJQwvHqntH7lNThC1Lvo66j5LXQO+52RVoww+lIv96" + - "\n" + "Qs1Y2LeQfdqq92Eq8JjlZ4N01eN3duPep+/cLqKytqjxvqu+JGYJTJ+JGv3cYH7k" + - "\n" + "w5FTQpQvI0ftKINkTomBkLrcKLkJTGOnZOaBLtIcyeEE+/O+NtNdU6IftA1c9s/A" + - "\n" + "BPwzjFmMrvrIf+eK1eUwbTOpMaQVsfP8CmfExtsld8JpMhMUxcjbhJKkYNEV5/I+" + - "\n" + "XmMgKYnzrQU6hZKQQZ5qwa9P8Nv3CLXyjkxVy0gyrtFZLKdjjZE/KsiTxVe0Wk/a" + - "\n" + "CXtd5JzZjJh8AO70qZpqEJQPfSSlnJS6R7q8CLAVYXsj2J/vfBM2/sBswL1czLdS" + - "\n" + "sXVFEm6UhGPswUPOPgSq/tgxj5CRTBbY9krrPLkEJ5eTzG0Dj9VDmnhUY8Lf0Xer" + - "\n" + "B4Gf48mh3M14KFAzrEB2Yd51b6HJ4wnBgd4k6S8s7qtn/yprEW5kZs+TWCi/I8dG" + - "\n" + "M5NsowBReQP0P2MUJOhjlEYuuGNPhibya+ViK02bI/JsfDoRQuo2CQXjx7BODq5O" + - "\n" + "BGCpKOcQbJvoqBkBkacKCG1vpkclzs7Lv6R3EF+tcePPzcEslfqIf6XHACg0AWA7" + - "\n" + "IYult3eCChsi3PnAhHwqfMOanZKwT+XuyUiShd7hHy6A1DdM43GMbOnMNRjKiadO" + - "\n" + "ekKsfWXOk6FNFVuR+Ew0Tp+CpQ5WVfVRGkRwuVZfc709jdlp7/MvbjCLVvS+2q1E" + - "\n" + "R7i9BphqJYuGkHqvGS5lrXxctvd+IWIPh8Fe/Z6o2d+KiBsfxeoj5gOtgRZGZg2t" + - "\n" + "FkECC5Cwo4aMj+oeJ6scTAYguaIwjtNBJfXVkaOAfaZKD1fR8ZZ+GXWmzevS4F0g" + - "\n" + "0vvVznondT6GKvywcSyKRWI08kGiNVESQYWlhr9cQfOlet1cRm9oUyNFqReGXi4L" + - "\n" + "pHA5Qn5moNwkxqXbvuwdu1WE9IpYsAEU65aCViQAvCQ2nP0cQXQEoH7pcnbyGff9" + - "\n" + "1aoYn79pusi0jcM0u/WLFFrcH4WqhxrMRvr8aikiI25h9XdK5g/ojJygIebvFrwm" + - "\n" + "/v8fMnpII7L/FZs9+kJL7lwUTeWEdRI79YmyBnPH+oJUIy562RG2cRAnu6/1Tr7u" + - "\n" + "pWttOAU/bOh9jkEVX4Mc6dUzF1Y61H0M4wyxccmdpUfSSWLcWrZaVEmwiGa2wE65" + - "\n" + "c7aItdfMExz/H+j22eDdCjTFaU0+UbpX8bxdX3Gye3LvDiLaZffFKhQLhJv+aK/j" + - "\n" + "HAPPf0MyMmE/NBFPD8BRTVoJO5eif7IWa5LTBbkrRSg/57gH0BjNzm8dYrtS05cp" + - "\n" + "haFCjyPWFBcNH/6/n12Ik07Uhtr8ssmo09MxYvQoEHTIDR8ZaPmB/tRX9nAVkZDj" + - "\n" + "WTW1wRI0PSqvq6XYPQnHXVJLjn3kBZv3qSpPvCCgD6azFU1y5HzTURMDURQHwGmq" + - "\n" + "SEVzD5NBgVYyVjUYbe72XiY+ovmgx/TcktKrqNmxZZATyIrheVIfQPtfNhIbn8rI" + - "\n" + "o3K9/Oy+Il6IHbtlpoSRSJGB8veH9bQDwpzBbiiU6oeN1CuvsYLrCNe0K2Fub255" + - "\n" + "bW91cyBzdHJpa2UgPHN0cmlrZS5kZXZ0ZXN0QGdtYWlsLmNvbT6JAk4EEwEIADgC" + - "\n" + "GwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AWIQRlU34hLcGQJa047bJ4FhcxnOMR" + - "\n" + "xAUCW1X5/wAKCRB4FhcxnOMRxFZxD/sGKGOfuOJ23unDiK/2iCcexf898M9C19pr" + - "\n" + "jArc0dIOr8sxsjnFH4+1XSPhoiNnGPkLgXf/qm+EK2FX0paIxzGWsvWu/3avkkkC" + - "\n" + "q3VPib8KpgYZwq354iIOm7MaPtHLlUkrKscvWgVcOjpJ17gvkfzuW0f6W/LL0tLx" + - "\n" + "M+CSdZXxGxHa+f8hav0c0uEoB0cQhcUYZ9hFpLtFFFgeY/TlMUV0XDKGrZVNZbw6" + - "\n" + "CpgguRISicuAOjXZAQA67lD3AIrRNXaKf7LEED8eHkb9TCb67hKtb69Jbal1tiWC" + - "\n" + "T/w6nki0NDWfpDT0nO7Kf0LM37vswl2t4Ag/1iWdTt5RzuHeIu2EdiZ+VjJc6U7n" + - "\n" + "UzsCme+7hJ8WL+Or/0yU31cn23iWjW2Qa94CoGHzxdke+LKZEZgN/YUORPD8CF0i" + - "\n" + "/xtV45siiJe7JqgPyVvt+DXpJruaxSP7T5n550kGvVgyB2Wh63LNweYYUVuosuIP" + - "\n" + "ka9NF8PrIx2QL8hx9Fe2MwhNtnGk8wDY2u5iqBVeMXNpbvo6JOS+MRXgu350CIuk" + - "\n" + "s2H2flL/Uq4HhArakfaLIlIUx3Ehwmwh8dORm44dizvjoNaqp3G+xDIwJeRtS1Rr" + - "\n" + "aAfP/aYKDEPKZremJalGQC0zFX7phFm4EOwZd3tU1dhFWWbz6YIGKQtg3JFGeEzg" + - "\n" + "t2RfHuJppp0HRgRVR5ubARAAwV9vG0eUMW6xjVT094zOtCE/pvxkyx+pZuDnGaJg" + - "\n" + "Ho/16wTnF/9AWLTqqj+w7q/JNAPH3C5GQkgbHtZun73wAqPFW3rp7+CK0k+RYF4e" + - "\n" + "22D2bHiMuVO159HS6qVVyUajLd1C0v0cMtfF8fI/bFySQwCiKmeDB8IAZJz3ngZw" + - "\n" + "+GhumyQLgRCOkVuZYWxvFhSXwp4hbkZ4pvlQ+rnH/d8dzZC9E1mNJdD21HVvdrC3" + - "\n" + "4iqdZ5s/tXUaAXJE+9NbDLNqZOPDuWP7z+jhA8xc4xnQNa/WJG5V4zfVcYUjdNFp" + - "\n" + "ZnKtQ6hFN+vjKouGCELLhdzX0td/lNpYY5UeR6UcXQzHx4xWJZOYZTrbr6KbHmE5" + - "\n" + "TMpBZfA+8tKkhSAIqlZeqXZUgVPOGzix6AlBnp7PlJe5tFEocGXVZjInxcP3ycCE" + - "\n" + "mSPA+bxpDN6xO08axwEPztXyZxmTQUYJ/C452Y0RgP7tX8HqbRWNDcszuZTs01iO" + - "\n" + "hwSZdYTGr3tpdL7cATy60W20Ycume+wTXxPWtsO2OGhXrIYxKVsRPG0CMjKwRmkW" + - "\n" + "okNpaV5gOl2GcUPMTlH7LbAEdUzPiW6FyQ7k8PmIWlWtlu2f0c3bTZ2oVggo6bRa" + - "\n" + "utA7oIC8ABp46+R3LaS4MLy1Sgng31PJ3IcwpC+x4pIdiwu8klEf1czkWoP05I8W" + - "\n" + "EUcAEQEAAf4HAwKe83Kjr65hhOUJ+PV1tRHQu+AktfnJ1tOJqmYJ4KG0w8X6hc7G" + - "\n" + "8iAX1cMZj5afeT057lhzRO7WaPhZZTs7k63zZxCgqoGYLVcMvGhXyosggvH6V+GB" + - "\n" + "GilxPebohrRJFhyMoOURHGSVnCXseMNRB4XXqTEY2t9F5qForW+cNUYEfcdmENlc" + - "\n" + "6PoqxyqYJAwLs2LKmqYjfNcF+GJZDiXM48gXKfjMTz9vR2rm7UtasujKD9XuZST7" + - "\n" + "HKdXY1rYGhGaEvVTs8lVG+9BUgaR27l7FErK9Zi6RB7QbIV4K8b73bdstQjsdD8C" + - "\n" + "OeTE/xF8Hqp9vT1ZJoAbjbKt8CXZsMYvS5d9LsKZLu6DVrDBEGunTUlCV/aMhTaT" + - "\n" + "YrirAj1GcpIvumHAoIiTEKJ9Yy/6MjduQHoh5Zoe5vi80gW9CJsfG23YOPkOdSoo" + - "\n" + "A2h2AakkiGcIasCasL0kwVyxeA2DVTW4Uep8vhQhVXM1Cefg8iCCeUbpTNYFmmMU" + - "\n" + "/Hm6YbAGXrOVYpBVm91HDXu1dIigKwMEgabySHbcBDzUtO5K9B3T03mtd8mYpckl" + - "\n" + "JKIL7T0ZrDx/VLZoQLz0HWlcP7tYXSGwmPUH3KPg8yvBo5ie2zDGaZnioSucFo6P" + - "\n" + "9d3x+Ha8Qub1O/ukwERN6sxXglL0YurC+xho5utk+Qu71au5xH5ErbyVRTKiyFfY" + - "\n" + "oJbShvYQGYFmaFXgh+oX8c27ji2Kw1I+dDxLxD+p5gm2UiSgJdr6M6suknFxGabl" + - "\n" + "Ai5np/BwY390dX2Lo3lFBTMKCTaWbEahU+g1kS5p8i8lVwbp9YNPZxgQMVGaPVRa" + - "\n" + "t7Wn1tcxO2vIHK3Nrb/g52/h75WfqqeznWQXXt882EE92WOq92YoYxOp6B3j5eHS" + - "\n" + "erxpZywfQr+Ozb5/2SNpGYvcqKkXA4heCcweEbsWC0YZKMWvmZH/29atsgGz73Mt" + - "\n" + "YrZrm1D/1XDPl/PN4yEqV8cIdYCJlvuE4Aw39AK760JctC8VjCm4PP4QvMe3Cq6g" + - "\n" + "/U2XzlSTYg7a9ScsHYybPgOPaWYPFP0BLqJAwv6dNlJESaYzzPdLNndMIVuJjnRv" + - "\n" + "ENCUA9x9hrAHkX5m3vTuOUHRIi3G9Vz8Tu8jbOAN99B923E4YAFiIIORDx+mFgsr" + - "\n" + "j7jlqnWGb8Kb9wSezUtBCYAIBA1l59kfyzn4BqZ4jMvdxeTsLJLEwhyBN3Ii3PiB" + - "\n" + "YzjyHPSL6dnhgBPJbS8vu9sZ+3GUBRcOetNuxai00OgcVi2Y40p0bxEiX5CsZvoh" + - "\n" + "ixTjXvvLNDetyC42FgEScY/T9ziHgMem1AWzBHQd6AvUlPe28Onbxv5KCHJPJ3Ab" + - "\n" + "89FY8uPcfaGth/c+145DrSn7UW1DOAo5wwq2GABNNj0xmt+UiAXB3z2xF7GU0nwc" + - "\n" + "LtXNNfyBzC3yqIb/3KtxsdLhga3qwd4Y2yt3qk8Bywxv81dPnG7Tz1Ixh/NXxZT6" + - "\n" + "pOJPIBDE7FjsTxqhTzZJwfDsOEoCktMIh5uRppWs+7keYrNomSCYj+xK84qEq1vS" + - "\n" + "Cx5P9mvLIhmQclMzU4XMHqMviKPCQdir09hCz+CesHpngRNRTt+qkd+lZZR6qbRF" + - "\n" + "Jcnv3hMnveKY5wpSFZAx+LDLgNLBzR/Syv8vk+11+oeqBFHnhkaA9tc6dNoRg6ZI" + - "\n" + "mqdHA5/CcI2ho8eiK4/AbvN+VkmpkXAA5nc3vzS4N9Gwyh/VJlGnJ7parVCs9e/9" + - "\n" + "jt3j8t8ggP9GkfcBnq1Zny1INaQeH5S/PIfFjczCVnTKtq3JrRswILvCImo5fvLI" + - "\n" + "iQI2BBgBCAAgAhsMFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAltV+hQACgkQeBYX" + - "\n" + "MZzjEcRAmBAAmg8OiRaoHRyOaR+6ZEWnvVYn+tzre1xJksVBqaI/6m82cvnJvZRH" + - "\n" + "3DhwvXIoRWtBMBtVqRVMrs5fM/H+p7pSdr4ubpwtNOw/Mk+ZMC+72kPoHdSbXD58" + - "\n" + "tyeqkWjcWNioZZJCxWBS0p6bf8ntEvx7gh+0YxtZWB4GvSlC6mAfqXaRZn5j8uqI" + - "\n" + "KRx2ikLmH/8vckcspZpf643UU1jswmvC+stsut8vJpHBGb1Cf1lgMwppGv8ON7r9" + - "\n" + "3z67ou8MzCw3gpEhKJm6GsfW4E6qrff2TT/R9I2u11DSIx0/M5/ofGJIwhwLqR0S" + - "\n" + "Jbce2T2orGYs+kQP4sCBPq7ZK2BDsgi7Gh0/olzLDxVy2DzIEdbrCaoNjNws1XRp" + - "\n" + "o15dP2Wc6OGvsCs5EQpwNSuGbCfz8tuEH6jSMPCcrGm/OklUqRqt2GwyLiiP+iOQ" + - "\n" + "ki9+lpXw3LL8qa+jLxO1+faLRo/tas5pR7rHC/eRHISQDUSW01tfyB8NlTKkIUTE" + - "\n" + "wSn7azHnYgv8T/cbZeFNw/Fsm5PoIUHcLlvcd0lvR/A6JYMwSN33R03r2QriSRXV" + - "\n" + "4ZhMhGtnhHEYqHP982gBxk4RPvEp7APCLrqgC0+N8N29eC4s3JkVkHAZx+fj5YV2" + - "\n" + "H9/5wJRJ1w+kwmazhpTQsy01kEwS4NZMPe8Uvz0MgoNuF7Jx0rdQ0SQ=" + - "\n" + "=oVjy" + - "\n" + "-----END PGP PRIVATE KEY BLOCK-----", - null, {}); - const keyDetails = EnigmailKeyRing.getValidUids("0xD535623BB60E9E71").join("\n"); - Assert.assertContains(keyDetails, "strike.devtest@gmail.com"); - EnigmailKeyRing.getAllKeys(); - Assert.notEqual(gKeyListObj.keyList.length, 0); - - // uses the key listing from shouldGetKeyValidityErrors - let key = EnigmailKeyRing.getKeyById("D535623BB60E9E71"); - - // this test is crucial as it depends on openpgp.js internal functions - let pubKey = key.getMinimalPubKey(); - - Assert.equal(pubKey.exitCode, 0); - - Assert.equal(pubKey.keyData.substr(3, 126), - "NBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWetJ" + - "fAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8KT"); - - if (pubKey.keyData.length === 3020) { - Assert.equal(pubKey.keyData.substr(-52), - "lEnXD6TCZrOGlNCzLTWQTBLg1kw97xS/PQyCg24XsnHSt1DRJA=="); - } else if (pubKey.keyData.length === 3080) { - Assert.equal(pubKey.keyData.substr(-52), - "wJRJ1w+kwmazhpTQsy01kEwS4NZMPe8Uvz0MgoNuF7Jx0rdQ0SQ="); - } else { - Assert.ok(false, "pubkey.keyData.length neither 3020 nor 3080"); - } -}))); - - -test(withTestGpgHome(withEnigmail(function shouldExportKey() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(publicKey, {}, {}); - EnigmailKeyRing.importKeyFromFile(secretKey, {}, {}); - EnigmailKeyRing.getAllKeys(); - - let pub = EnigmailKeyRing.extractKey(false, "0x781617319CE311C4", null, {}, {}).replace(/\r\n/g, "\n"); - Assert.equal(pub.substr(-50), "t1DRJA==\n=I9l9\n-----END PGP PUBLIC KEY BLOCK-----\n"); - - let pubAndSec = EnigmailKeyRing.extractKey(true, "strike.devtest@gmail.com", null, {}, {}).replace(/\r\n/g, "\n"); - Assert.equal(pubAndSec.substr(-37), "\n-----END PGP PRIVATE KEY BLOCK-----\n"); - Assert.equal(pubAndSec.split(/\n/).length, 161); -}))); - - -const KeyRingHelper = { - loadTestKeyList: function() { - const pkFile = do_get_file("resources/pub-keys.asc", false); - let publicKeys = EnigmailFiles.readFile(pkFile); - let rows = publicKeys.split("\n"); - let testKeyList = []; - for (let i = 0; i < rows.length; ++i) { - let row = rows[i]; - if (row !== "" && row[0] != "#") { - testKeyList.push(row); - } - } - - let keyList = { - keys: [], - index: [] - }; - GnuPGKeyList.appendKeyItems(testKeyList, keyList); - - createAndSortKeyList(keyList.keys, - "validity", // sorted acc. to key validity - -1); // descending - - let keyListObj = gKeyListObj; - Assert.notEqual(keyListObj, null); - Assert.notEqual(keyListObj.keySortList, null); - Assert.notEqual(keyListObj.keySortList.length, null); - } -}; - -test(function testGetValidKeyForOneRecipient() { - KeyRingHelper.loadTestKeyList(); - - const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted(); - let minTrustLevelIndex = null; - let details = null; - let key = null; - - // unknown key: - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("unknown@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, null); - Assert.equal(details.msg, null); - //Assert.equal(details.msg, "undefined"); - - // ordinary full trusted key: - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("full@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0003AAAA00010001"); - Assert.equal(details.msg, null); - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("full@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0003AAAA00010001"); - Assert.equal(details.msg, null); - - // key not valid for encryption: - // - no details because it would take time to check details of such a key - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("no-encrypt@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, null); - Assert.equal(details.msg, null); - - // disabled key: - // - no details because it would take time to check details of such a key - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = { - all: "" - }; - key = EnigmailKeyRing.getValidKeyForRecipient("disabled@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, null); - Assert.equal(details.msg, null); - - // multiple non-trusted and one full trusted keys - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onefull@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0030AAAA00020001"); - Assert.equal(details.msg, null); - - // multiple non-trusted and two full trusted keys (first taken) - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("multiple-twofull@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0034AAAA00020001"); - Assert.equal(details.msg, null); - - // multiple non-trusted and one marginal trusted keys - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onemarginal@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, null); - Assert.equal(details.msg, "ProblemNoKey"); - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onemarginal@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0031AAAA00020001"); - Assert.equal(details.msg, null); - - // multiple non-trusted keys with same trust level - // (faked keys case if no special trust given) - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("multiple-nofull@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, null); - Assert.equal(details.msg, "ProblemMultipleKeys"); - - // some key with subkey that encrypts: - // we return first main key - minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?"); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("withsubkey-uid1@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0040EEEE00010001"); - Assert.equal(details.msg, null); - details = {}; - key = EnigmailKeyRing.getValidKeyForRecipient("withsubkey-uid2@enigmail-test.de", minTrustLevelIndex, details); - Assert.equal(key, "0040EEEE00010001"); - Assert.equal(details.msg, null); -}); - -test(function testGetValidKeysForMultipleRecipients() { - KeyRingHelper.loadTestKeyList(); - - const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted(); - let minTrustLevel = null; - let details = null; - let addrs = null; - let keys = null; - let keyMissing = null; - - // some matching keys: - minTrustLevel = "?"; - addrs = ["full@enigmail-test.de", - "multiple-onefull@enigmail-test.de", - "multiple-twofull@enigmail-test.de", - "multiple-onemarginal@enigmail-test.de", - "withsubkey-uid1@enigmail-test.de", - "withsubkey-uid2@enigmail-test.de" - ]; - details = {}; - keys = []; - keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys); - Assert.equal(keyMissing, false); - Assert.notEqual(keys, null); - Assert.equal(keys.length, 6); - Assert.equal(keys[0], "0x0003AAAA00010001"); - Assert.equal(keys[1], "0x0030AAAA00020001"); - Assert.equal(keys[2], "0x0034AAAA00020001"); - Assert.equal(keys[3], "0x0031AAAA00020001"); - Assert.equal(keys[4], "0x0040EEEE00010001"); - Assert.equal(keys[5], "0x0040EEEE00010001"); - Assert.equal(details.errArray.length, 0); - - // some non-matching keys: - minTrustLevel = "?"; - addrs = ["no-encrypt@enigmail-test.de", - "disabled@enigmail-test.de", - "multiple-nofull@enigmail-test.de" - ]; - details = {}; - keys = []; - keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys); - Assert.equal(keyMissing, true); - Assert.equal(keys.length, 0); - Assert.notEqual(details, null); - Assert.equal(details.errArray.length, 3); - Assert.equal(details.errArray[0].msg, "ProblemNoKey"); - Assert.equal(details.errArray[1].msg, "ProblemNoKey"); - Assert.equal(details.errArray[2].msg, "ProblemMultipleKeys"); - - // just two keys: - minTrustLevel = "?"; - addrs = ["0x0040EEEE00010001", - "0x0003AAAA00010001", - "0003AAAA00010001" - ]; - details = {}; - keys = []; - keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys); - Assert.equal(keyMissing, false); - Assert.notEqual(keys, null); - Assert.equal(keys.length, 3); - Assert.equal(keys[0], "0x0040EEEE00010001"); - Assert.equal(keys[1], "0x0003AAAA00010001"); - Assert.equal(keys[2], "0x0003AAAA00010001"); - Assert.equal(details.errArray.length, 0); - - // disabled key: - // - this BEHAVIOR is PROBABLY WRONG: - minTrustLevel = "?"; - addrs = ["0005AAAA00010001"]; - details = {}; - keys = []; - keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys); - Assert.equal(keyMissing, false); - Assert.notEqual(keys, null); - Assert.equal(keys.length, 1); - Assert.equal(keys[0], "0x0005AAAA00010001"); - Assert.equal(details.errArray.length, 0); -}); - -test(function shouldGetKeyValidityErrors() { - // from: gpg2 --with-fingerprint --fixed-list-mode --with-colons --list-keys - let keyInfo = [ - // Key 1: Revoked key - "tru::1:1443339321:1451577200:3:1:5", - "pub:r:4096:1:DEF9FC808A3FF001:1388513885:1546188604::u:::sca:", - "fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:", - "uid:r::::1389038412::44F73158EF0F47E4595B1FD8EC740519DE24B994::User ID 1 :", - "sub:r:4096:1:E2DEDFFB80C14584:1388513885:1546188603:::::e:", - - // Key 2: valid public key, usable for signing, with expired subkeys for encryption - "pub:u:1024:17:F05B29A5CEFE4B70:1136219252:::u:::scaSCA:::::::", - "fpr:::::::::6D67E7817D588BEA263F41B9F05B29A5CEFE4B70:", - "uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 2 :::::::::", - "sub:e:2048:1:B2417304FFC57041:1136219469:1199291469:::::e::::::", - "sub:e:2048:1:770EA47A1DB0E8B0:1136221524:1293901524:::::s::::::", - "sub:e:2048:1:805B29A5CEFB2B70:1199298291:1262370291:::::e::::::", - "sub:e:2048:1:0F6B6901667E633C:1262537932:1325437132:::::e::::::", - - // Key 3: valid public key, usable subkey for encryption, no secret key - "pub:u:1024:17:86345DFA372ADB32:1136219252:::u:::scESC:::::::", - "fpr:::::::::9876E7817D588BEA263F41B986345DFA372ADB32:", - "uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 3 :::::::::", - "sub:u:2048:1:B2417304FFC57041:1136219469::::::s::::::", - "sub:u:2048:1:770EA47A1DB0E8B0:1136221524::::::e::::::" - ]; - - // from: gpg2 --with-fingerprint --fixed-list-mode --with-colons --list-secret-keys - let secKeyInfo = [ - // Key 1 - "sec::4096:1:DEF9FC808A3FF001:1388513885:1546188604:::::::::", - "fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:", - "uid:::::::44F73158EF0F47E4595B1FD8EC740519DE24B994::User ID 1 :", - "ssb::4096:1:E2DEDFFB80C14584:1388513885::::::::::", - // Key 2 - "sec:u:1024:17:F05B29A5CEFE4B70:1136219252:1507997328::u:::scaSCA:::::::", - "fpr:::::::::6D67E7817D588BEA263F41B9F05B29A5CEFE4B70:", - "uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 2 :::::::::", - "ssb:e:2048:1:B2417304FFC57041:1136219469:1199291469:::::e::::::", - "ssb:e:2048:1:770EA47A1DB0E8B0:1136221524:1293901524:::::s::::::", - "ssb:e:2048:1:805B29A5CEFB2B70:1199298291:1262370291:::::e::::::", - "ssb:e:2048:1:0F6B6901667E633C:1262537932:1325437132:::::e::::::" - // NO Key 3 - ]; - - let keyList = { - keys: [], - index: [] - }; - - GnuPGKeyList.appendKeyItems(keyInfo, keyList); - GnuPGKeyList.appendKeyItems(secKeyInfo, keyList); - - createAndSortKeyList(keyList.keys, - "validity", // sorted acc. to key validity - -1); // descending - - let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001"); - let result = key.getSigningValidity(); - Assert.equal(result.reason, EnigmailLocale.getString("keyRing.pubKeyRevoked", [key.userId, "0x" + key.keyId])); - - key = EnigmailKeyRing.getKeyById("F05B29A5CEFE4B70"); - result = key.getEncryptionValidity(); - Assert.equal(result.keyValid, false); - Assert.equal(result.reason, EnigmailLocale.getString("keyRing.encSubKeysExpired", [key.userId, "0x" + key.keyId])); - - result = key.getSigningValidity(); - Assert.equal(result.keyValid, true); - - key = EnigmailKeyRing.getKeyById("86345DFA372ADB32"); - result = key.getSigningValidity(); - Assert.equal(result.keyValid, false); - Assert.equal(result.reason, EnigmailLocale.getString("keyRing.noSecretKey", [key.userId, "0x" + key.keyId])); - - result = key.getEncryptionValidity(); - Assert.equal(result.keyValid, true); -}); - -test(function shouldGetKeyExpiry() { - // uses the key listing from shouldGetKeyValidityErrors - let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001"); - Assert.equal(key.getKeyExpiry(), 1546188603); - - key = EnigmailKeyRing.getKeyById("F05B29A5CEFE4B70"); - Assert.equal(key.getKeyExpiry(), 1325437132); - - key = EnigmailKeyRing.getKeyById("86345DFA372ADB32"); - Assert.equal(key.getKeyExpiry(), Number.MAX_VALUE); -}); - -test(function shouldClone() { - // uses the key listing from shouldGetKeyValidityErrors - let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001"); - - let cp = key.clone(); - - Assert.equal(cp.fprFormatted, "EA25 EF48 BF20 01E4 1FAB 0C1C DEF9 FC80 8A3F F001"); - Assert.equal(cp.getEncryptionValidity().keyValid, false); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyserver-test.js enigmail-2.2.4/package/tests/keyserver-test.js --- enigmail-2.1.6+ds1/package/tests/keyserver-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyserver-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,311 +0,0 @@ -/*global test:false, component: false, testing: false, Assert: false, do_load_module: false, do_get_cwd: false, do_get_file: false - do_test_finished: false: do_test_pending: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withPreferences: false, resetting: false, withEnvironment: false, withEnigmail: false, withTestGpgHome: false, gKeyListObj: true */ - -testing("keyserver.jsm"); -/*global false parseKeyserverUrl: false, accessHkpInternal: false, accessKeyBase: false, accessGnuPG: false -EnigmailPrefs: false, EnigmailKeyRing: false, EnigmailConstants: false, EnigmailLocale: false */ - -function setupKeyserverPrefs(keyservers, autoOn) { - EnigmailPrefs.setPref("keyserver", keyservers); - EnigmailPrefs.setPref("autoKeyServerSelection", autoOn); -} - -function isGpgExecutable(fullPath) { - let path = fullPath.replace(/^(.*\/)([^/]+)$/, "$2"); - return (path.search(/^gpg/i) === 0); -} - -test(function testParseUrl() { - let srv = "abc.de.fg"; - const HKP = "hkp"; - const HKP_PORT = "11371"; - let r = parseKeyserverUrl(srv); - - Assert.equal(r.host, srv); - Assert.equal(r.protocol, HKP); - Assert.equal(r.port, HKP_PORT); - - r = parseKeyserverUrl("hkps://" + srv); - Assert.equal(r.host, srv); - Assert.equal(r.protocol, "hkps"); - Assert.equal(r.port, "443"); - - r = parseKeyserverUrl("ldap://" + srv + ":765"); - Assert.equal(r.host, srv); - Assert.equal(r.protocol, "ldap"); - Assert.equal(r.port, "765"); -}); - -test(function testHkpCreateRequestUrl() { - let r = accessHkpInternal.createRequestUrl("hkps://example.com", EnigmailConstants.DOWNLOAD_KEY, "12345678"); - Assert.equal(r.method, "GET"); - Assert.equal(r.url, "https://example.com:443/pks/lookup?search=0x12345678&op=get&options=mr"); - - r = accessHkpInternal.createRequestUrl("example.com", EnigmailConstants.SEARCH_KEY, "abc"); - Assert.equal(r.method, "GET"); - Assert.equal(r.url, "http://example.com:11371/pks/lookup?search=abc&fingerprint=on&op=index&options=mr"); - - r = accessHkpInternal.createRequestUrl("example.com", EnigmailConstants.UPLOAD_KEY, "abc"); - Assert.equal(r.method, "POST"); - Assert.equal(r.url, "http://example.com:11371/pks/add"); -}); - -test(withTestGpgHome(withEnigmail(function testAccessKeyServer() { - // overwrite createRequestUrl to get local files - accessHkpInternal.createRequestUrl = function(keyserver, actionFlag, searchTerm) { - let fn = ""; - let method = "GET"; - let allowNonExist = false; - - switch (actionFlag) { - case EnigmailConstants.DOWNLOAD_KEY: - fn = "dev-strike.asc"; - break; - case EnigmailConstants.SEARCH_KEY: - fn = "hkp-listing.txt"; - break; - case EnigmailConstants.UPLOAD_KEY: - fn = "test-upload.txt"; - method = "PUT"; - allowNonExist = true; - break; - } - - let file = do_get_file("resources/" + fn, allowNonExist); - let ioServ = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - let fileUri = ioServ.newFileURI(file); - - return { - url: fileUri.spec, - method: method - }; - }; - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - accessHkpInternal.download("781617319CE311C4", "dummy").then(res => { - Assert.equal(res.keyList.length, 1); - Assert.equal(res.result, 0); - Assert.equal(res.keyList[0], "65537E212DC19025AD38EDB2781617319CE311C4"); - - let o = EnigmailKeyRing.getKeyById("0x781617319CE311C4"); - Assert.notEqual(o, null); - Assert.equal(o.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - - let data = accessHkpInternal.buildHkpPayload(EnigmailConstants.UPLOAD_KEY, "0x781617319CE311C4"); - Assert.equal(data.replace(/%0D%0A/g, "%0A").substr(0, 75), "keytext=-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A%0AmQINBFVHm5sBEACs9"); - - return accessHkpInternal.search("anything", "dummy"); - }).then(res => { - Assert.equal(res.result, 0); - Assert.equal(res.pubKeys.length, 3); - Assert.equal(res.pubKeys[0].keyId, "CCCCCCCCCCCCCCCCCCCCCCCC0003AAAA00010001"); - Assert.equal(res.pubKeys[1].keyId, "CCCCCCCCCCCCCCCCCCCCCCCC0004AAAA00010001"); - Assert.equal(res.pubKeys[1].created, "2017-12-30"); - Assert.equal(res.pubKeys[1].uid[1], "User Three "); - Assert.equal(res.pubKeys[2].keyId, "CCCCCCCCCCCCCCCCCCCCCCCC0005AAAA00010001"); - Assert.equal(res.pubKeys[2].status, "r"); - - return accessHkpInternal.upload("0x781617319CE311C4", "dummy"); - }).then(res => { - Assert.ok(false); - - inspector.exitNestedEventLoop(); - }).catch(res => { - Assert.equal(res.result, EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE); // this is bound to fail ;-) - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - - -test(function testKeybaseCreateRequestUrl() { - let r = accessKeyBase.createRequestUrl(EnigmailConstants.DOWNLOAD_KEY, "Dev Test"); - Assert.equal(r.method, "GET"); - Assert.equal(r.url, "https://keybase.io/_/api/1.0/user/lookup.json?key_fingerprint=" + escape("Dev Test") + "&fields=public_keys"); - - r = accessKeyBase.createRequestUrl(EnigmailConstants.SEARCH_KEY, "abc"); - Assert.equal(r.method, "GET"); - Assert.equal(r.url, "https://keybase.io/_/api/1.0/user/autocomplete.json?q=abc"); - - try { - accessKeyBase.createRequestUrl(EnigmailConstants.UPLOAD_KEY, "abc"); - Assert.ok(false); - } catch (ex) { - Assert.ok(true); - } -}); - - -test(withTestGpgHome(withEnigmail(function testAccessKeybase() { - // overwrite createRequestUrl to get local files - accessKeyBase.createRequestUrl = function(actionFlag, searchTerm) { - let fn = ""; - let method = "GET"; - let allowNonExist = false; - - switch (actionFlag) { - case EnigmailConstants.DOWNLOAD_KEY: - fn = "keybase-download.txt"; - break; - case EnigmailConstants.SEARCH_KEY: - fn = "keybase-search.txt"; - break; - } - - let file = do_get_file("resources/" + fn, allowNonExist); - let ioServ = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - let fileUri = ioServ.newFileURI(file); - - return { - url: fileUri.spec, - method: method - }; - }; - - let o = EnigmailKeyRing.getKeyById("0x8439E17046977C46"); - Assert.equal(o, null); - - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - accessKeyBase.search("anything", "dummy").then(res => { - Assert.equal(res.result, 0); - Assert.equal(res.pubKeys.length, 3); - Assert.equal(res.pubKeys[0].keyId, "1234567890ABCDEF1234567890ABCDEF12345678"); - Assert.equal(res.pubKeys[1].keyId, "ABCDEF0123456780000000000000000012345678"); - Assert.equal(res.pubKeys[1].created, ""); - Assert.equal(res.pubKeys[1].uid[0], "devtiger (Dev Tiger)"); - Assert.equal(res.pubKeys[2].keyId, "9876543210111111111BBBBBBBBCCCCCCCAAAAAA"); - Assert.equal(res.pubKeys[2].status, ""); - - return accessKeyBase.download("0x8439E17046977C46", "dummy"); - }).then(res => { - Assert.equal(res.keyList.length, 1); - Assert.equal(res.result, 0); - - let o = EnigmailKeyRing.getKeyById("0x8439E17046977C46"); - Assert.notEqual(o, null); - Assert.equal(o.fpr, "8C140834F2D683E9A016D3098439E17046977C46"); - - inspector.exitNestedEventLoop(); - }).catch(res => { - Assert.ok(false); - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); -}))); - - -test(withTestGpgHome(withEnigmail(function testAccessGnuPG() { - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - - // overwrite accessKeyServer to mock it - accessGnuPG.accessKeyServer = function(actionFlag, keyserver, keyId, listener) { - return new Promise((resolve) => { - let retObj = { - exitCode: 0, - stdoutData: "", - stderrData: "", - errorMsg: "", - statusFlags: 0, - statusMsg: "", - blockSeparation: "", - isKilled: 0 - }; - - switch (actionFlag) { - case EnigmailConstants.DOWNLOAD_KEY: - if (keyId == "ok") { - retObj.stderrData = - `[GNUPG:] KEY_CONSIDERED 8C140834F2D683E9A016D3098439E17046977C46 0 -[GNUPG:] KEY_CONSIDERED 8C140834F2D683E9A016D3098439E17046977C46 0 -[GNUPG:] IMPORT_OK 0 8C140834F2D683E9A016D3098439E17046977C46 -[GNUPG:] IMPORT_OK 0 ABCDEF0123456780000000000000000012345678 -[GNUPG:] KEY_CONSIDERED 8C140834F2D683E9A016D3098439E17046977C46 0 -[GNUPG:] IMPORT_RES 2 0 0 0 2 0 0 0 0 0 0 0 0 0 0`; - retObj.statusMsg = retObj.stderrData.replace(/^\[GNUPG: \] /mg, ""); - } - break; - case EnigmailConstants.SEARCH_KEY: - if (keyId == "ok") { - retObj.stdoutData = - `info:1:3 -pub:CCCCCCCCCCCCCCCCCCCCCCCC0003AAAA00010001:1:2048:1516625442:: -uid:Test User :1516625444:: -pub:CCCCCCCCCCCCCCCCCCCCCCCC0004AAAA00010001:1:4096:1514659468:: -uid:User Two :1514659471:: -uid:User Three :1514679471:: -pub:CCCCCCCCCCCCCCCCCCCCCCCC0005AAAA00010001:1:4096:1510762768:1668442768:r -uid:Revoked User :1510762768:: -uat:::: -uat::::`; - } else { - retObj.stderrData = "[GNUPG:] FAILURE search-keys 167772380\n"; - } - break; - case EnigmailConstants.UPLOAD_KEY: - if (keyId == "ok") { - retObj.stderrData = "[GNUPG:] EXPORTED ABCDEF0123456780000000000000000012345678\n"; - } else { - retObj.stderrData = "[GNUPG:] ERROR keyserver_send 167804953\n[GNUPG:] FAILURE send-keys 167804953\n"; - } - - } - - resolve(retObj); - }); - }; - - async function doTest() { - try { - let res = await accessGnuPG.download("ok", null, null); - Assert.equal(res.keyList.length, 2); - Assert.equal(res.keyList[1], "ABCDEF0123456780000000000000000012345678"); - Assert.equal(res.result, 0); - - res = await accessGnuPG.search("ok", null, null); - Assert.equal(res.pubKeys.length, 3); - } catch (ex) { - Assert.ok(false); - } - - try { - let res = await accessGnuPG.search("error", null, null); - Assert.ok(false); - } catch (ex) { - Assert.equal(ex.result, EnigmailConstants.KEYSERVER_ERR_SERVER_UNAVAILABLE); - Assert.equal(ex.errorDetails, EnigmailLocale.getString("keyserver.error.unavailable")); - } - - try { - let res = await accessGnuPG.upload("ok", null, null); - Assert.equal(res.keyList.length, 1); - Assert.equal(res.result, 0); - - res = await accessGnuPG.search("ok", null, null); - Assert.equal(res.pubKeys.length, 3); - - res = await accessGnuPG.search("error", null, null); - Assert.ok(false); - } catch (ex) { - Assert.equal(ex.result, 5); - } - - inspector.exitNestedEventLoop(); - } - - doTest(); - inspector.enterNestedEventLoop(0); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/keyserverUris-test.js enigmail-2.2.4/package/tests/keyserverUris-test.js --- enigmail-2.1.6+ds1/package/tests/keyserverUris-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/keyserverUris-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,159 +0,0 @@ -/*global test:false, component: false, testing: false, Assert: false, do_load_module: false, do_get_cwd: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper:false, resetting, withEnvironment, gKeyListObj: true, withPreferences: false */ - -testing("keyserverUris.jsm"); -/*global isValidProtocol: false, validKeyserversExist: false, buildKeyserverUris: false, -EnigmailPrefs: false, EnigmailOS: false */ - -function setupKeyserverPrefs(keyservers, autoOn) { - EnigmailPrefs.setPref("keyserver", keyservers); - EnigmailPrefs.setPref("autoKeyServerSelection", autoOn); -} - -test(withPreferences(function organizeProtocols_withOneHkpsServer() { - setupKeyserverPrefs("keyserver.1", true); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris[0], "hkps://keyserver.1:443"); - Assert.equal(keyserverUris[1], "hkp://keyserver.1:11371"); - Assert.equal(keyserverUris.length, 2); -})); - -test(withPreferences(function buildUrisFromKeyservers_withoutSpecifiedProtocols() { - setupKeyserverPrefs("keyserver.1, keyserver.2, keyserver.3", false); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris[0], "hkps://keyserver.1:443"); - Assert.equal(keyserverUris[1], "hkp://keyserver.1:11371"); - Assert.equal(keyserverUris[2], "hkps://keyserver.2:443"); - Assert.equal(keyserverUris[3], "hkp://keyserver.2:11371"); - Assert.equal(keyserverUris[4], "hkps://keyserver.3:443"); - Assert.equal(keyserverUris[5], "hkp://keyserver.3:11371"); - Assert.equal(keyserverUris.length, 6); -})); - -test(withPreferences(function buildUrisFromKeyservers_withMixOfProtocols() { - setupKeyserverPrefs("hkp://keyserver.1, hkps://keyserver.2, keyserver.3, hkps://keyserver.4, ldap://keyserver.5", false); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris[0], "hkp://keyserver.1:11371"); - Assert.equal(keyserverUris[1], "hkps://keyserver.2:443"); - Assert.equal(keyserverUris[2], "hkps://keyserver.3:443"); - Assert.equal(keyserverUris[3], "hkp://keyserver.3:11371"); - Assert.equal(keyserverUris[4], "hkps://keyserver.4:443"); - Assert.equal(keyserverUris[5], "ldap://keyserver.5:389"); - -})); - -test(withPreferences(function should_UseCorrectCorrespondingHkpsAddressForHkpPoolServers_IfNonDos() { - TestHelper.resetting(EnigmailOS, "isDosLike", false, function() { - setupKeyserverPrefs("pool.sks-keyservers.net, keys.gnupg.net, pgp.mit.edu", true); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris.length, 2); - Assert.equal(keyserverUris[0], "hkps://hkps.pool.sks-keyservers.net:443"); - Assert.equal(keyserverUris[1], "hkp://pool.sks-keyservers.net:11371"); - }); -})); - -test(withPreferences(function should_UseCorrectCorrespondingHkpsAddressForHkpPoolServers_IfDos() { - TestHelper.resetting(EnigmailOS, "isDosLike", true, function() { - setupKeyserverPrefs("pool.sks-keyservers.net, keys.gnupg.net, pgp.mit.edu", true); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris.length, 2); - Assert.equal(keyserverUris[0], "hkps://hkps.pool.sks-keyservers.net:443"); - Assert.equal(keyserverUris[1], "hkp://pool.sks-keyservers.net:11371"); - }); -})); - -test(withPreferences(function should_AddProtocolAndPortForHkpsPoolServers_IfNotDos() { - TestHelper.resetting(EnigmailOS, "isDosLike", false, function() { - setupKeyserverPrefs("hkps.pool.sks-keyservers.net", false); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris.length, 1); - Assert.equal(keyserverUris[0], "hkps://hkps.pool.sks-keyservers.net:443"); - }); -})); - -test(withPreferences(function shouldNot_AddProtocolAndPortForForHkpsPoolServers_IfDos() { - TestHelper.resetting(EnigmailOS, "isDosLike", true, function() { - setupKeyserverPrefs("hkps.pool.sks-keyservers.net", false); - - const keyserverUris = buildKeyserverUris(); - - Assert.equal(keyserverUris.length, 1); - Assert.equal(keyserverUris[0], "hkps://hkps.pool.sks-keyservers.net:443"); - }); -})); - -test(withPreferences(function validKeyserversExistWithDefaultPreferences() { - setupKeyserverPrefs("pool.sks-keyservers.net, keys.gnupg.net, pgp.mit.edu", true); - - Assert.equal(validKeyserversExist(), true); -})); - -test(withPreferences(function noValidKeyserversExistWithEmptyKeyserverList() { - setupKeyserverPrefs(" ", true); - - Assert.equal(validKeyserversExist(), false); -})); - -test(withPreferences(function noValidKeyserversExistWhenAllProtocolsAreInvalid() { - setupKeyserverPrefs("xyz://pool.sks-keyservers.net, abc://keys.gnupg.net, def://pgp.mit.edu", true); - - Assert.equal(validKeyserversExist(), false); -})); - -test(withPreferences(function validKeyserversExistWhenOneProtocolIsValid() { - setupKeyserverPrefs("hkps://pool.sks-keyservers.net, abc://keys.gnupg.net, def://pgp.mit.edu", true); - - Assert.equal(validKeyserversExist(), true); -})); - -test(withPreferences(function buildUrisFromKeyservers_oneValidProtocol() { - setupKeyserverPrefs("hkp://keys.gnupg.net, abc://pgp.mit.edu", true); - - const keyserverUris = buildKeyserverUris(); - - Assert.deepEqual(keyserverUris, ["hkp://keys.gnupg.net:11371"]); -})); - -test(withPreferences(function considerPoolHkpsServerValidWithProtocolAndPortSpecified() { - Assert.equal(isValidProtocol("hkps://hkps.pool.sks-keyservers.net:443"), true); -})); - -test(withPreferences(function detectInvalidKeyserverWhenProtocolIsMadeOfTwoValidProtocols() { - Assert.equal(isValidProtocol("hkpsldap://domain"), false); -})); - -test(withPreferences(function detectInvalidKeyserverWhenProtocolIsMadeOfTwoValidProtocols() { - setupKeyserverPrefs("HKPS://domain", true); - - const keyserverUris = buildKeyserverUris(); - - Assert.deepEqual(keyserverUris, ["hkps://domain:443"]); -})); - -test(withPreferences(function considerCapitalSchemesLegitimate() { - Assert.equal(isValidProtocol("HKPS://domain"), true); -})); - -test(withPreferences(function considerLowerCaseAndCapitalSchemesLegitimate() { - Assert.equal(isValidProtocol("HkP://domain"), true); -})); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/key-test.js enigmail-2.2.4/package/tests/key-test.js --- enigmail-2.1.6+ds1/package/tests/key-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/key-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,251 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, */ -/*global resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -/* eslint no-useless-concat: 0*/ -"use strict"; - -/*global EnigmailFiles: false */ -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false, gKeyListObj: true */ - -testing("key.jsm"); /*global EnigmailKey: false, EnigmailOpenPGP: false */ -//EnigmailOpenPGP.initialize(); // make sure OpenPGP is initialized and available - -test(withTestGpgHome(function shouldGetKeyDetails() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - - const pubKeyData = EnigmailFiles.readFile(publicKey); - let keyList = EnigmailKey.getKeyListFromKeyBlock(pubKeyData, {}); - - Assert.ok(keyList.length === 1); - let k = keyList[0]; - - Assert.equal(k.id, "781617319CE311C4"); - Assert.equal(k.name, "anonymous strike "); - Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(k.isSecret, false); - - const secKeyData = EnigmailFiles.readFile(secretKey); - keyList = EnigmailKey.getKeyListFromKeyBlock(secKeyData, {}); - - Assert.ok(keyList.length === 1); - k = keyList[0]; - - Assert.equal(k.name, "anonymous strike "); - Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(k.isSecret, true); - -})); - -test(withTestGpgHome(function shouldSplitKeys() { - const publicKey1 = do_get_file("resources/dev-strike.asc", false); - const publicKey2 = do_get_file("resources/dev-tiger.asc", false); - - const pubKeyData = EnigmailFiles.readFile(publicKey1) + "\r\n" + EnigmailFiles.readFile(publicKey2); - - let keyList = EnigmailKey.getKeyListFromKeyBlock(pubKeyData, {}); - - Assert.equal(keyList.length, 2); - let k = keyList[1]; - - Assert.equal(k.name, "dev-tiger "); - Assert.equal(k.fpr, "8C140834F2D683E9A016D3098439E17046977C46"); - Assert.equal(k.isSecret, false); - -})); - - -test(withTestGpgHome(function shouldMergePubAndSec() { - const keyList = EnigmailKey.getKeyListFromKeyBlock( - "-----BEGIN PGP PUBLIC KEY BLOCK-----" + - "\n" + "Comment: GPGTools - https://gpgtools.org" + - "\n" + - "\n" + "mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + - "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + - "\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + - "\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + - "\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + - "\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + - "\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + - "\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + - "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + - "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + - "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + - "\n" + "tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9" + - "\n" + "BBMBCgAnBQJVR5ubAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ" + - "\n" + "EHgWFzGc4xHEt/4P/1zf/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrW" + - "\n" + "LDPqxSbotXTXi72Dwug6a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywM" + - "\n" + "dSfTAXa+popNccD5yPCJVBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy" + - "\n" + "+m2bXb1pTbg6OpqDIPCqlmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ" + - "\n" + "+E8Khyha2tfz1WFPmoy0rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6Gc" + - "\n" + "NcZnuvnZVBbjCpqXtDJ7UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB" + - "\n" + "8Z75FACi7d65Kp8Q6sNYVfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu" + - "\n" + "5TmYriLyAvfyoyeMhRjV0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+ca" + - "\n" + "P75XoVUyXmIpC/UZTrF4IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbK" + - "\n" + "qemK8D0rbaoxJq5RLkwU6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdg" + - "\n" + "oWv9xZU7asdsm5cpHpy7lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYuQIN" + - "\n" + "BFVHm5sBEADBX28bR5QxbrGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BY" + - "\n" + "tOqqP7Dur8k0A8fcLkZCSBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn" + - "\n" + "0dLqpVXJRqMt3ULS/Rwy18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6R" + - "\n" + "W5lhbG8WFJfCniFuRnim+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoB" + - "\n" + "ckT701sMs2pk48O5Y/vP6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mq" + - "\n" + "i4YIQsuF3NfS13+U2lhjlR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSF" + - "\n" + "IAiqVl6pdlSBU84bOLHoCUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7" + - "\n" + "TxrHAQ/O1fJnGZNBRgn8LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0" + - "\n" + "vtwBPLrRbbRhy6Z77BNfE9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZx" + - "\n" + "Q8xOUfstsAR1TM+JboXJDuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr" + - "\n" + "5HctpLgwvLVKCeDfU8nchzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQABiQIl" + - "\n" + "BBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc4xHEo+UP/02AIUR0349zGk9a" + - "\n" + "4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0ZoqTO8A0uFmEhCkw++reQcWOz1N" + - "\n" + "n+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq7oWYwlxsgVGCMDYE0TOMN8p/" + - "\n" + "Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/ECTHxqi9UKc68qHNVH9ZgtTXnm" + - "\n" + "gLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mlivy+UW6XN0WBE0oetKjT8/Cb1" + - "\n" + "dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfnRn9JG1aSXNYB/xZWzCBdykZp" + - "\n" + "+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUhXYoYc7232RkNSiiKndeJNryv" + - "\n" + "TowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkKG8ydHKFEFObtsTLaut4lHTtx" + - "\n" + "n+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23MzTs1hhwgIy4+UejU/Yeny6VkB" + - "\n" + "odA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3gJgH0QONrUaRY84/hil05T4E" + - "\n" + "nUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+wp1ovyC/fp5XjZaLHcyPAWAXK" + - "\n" + "LBn4tb400iHp7byO85tF/H0OOI1K" + - "\n" + "=CVNK" + - "\n" + "-----END PGP PUBLIC KEY BLOCK-----" + - "\n" + "-----BEGIN PGP PRIVATE KEY BLOCK-----" + - "\n" + "Comment: GPGTools - https://gpgtools.org" + - "\n" + - "\n" + "lQc+BFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + - "\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + - "\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + - "\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + - "\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + - "\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + - "\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + - "\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + - "\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + - "\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + - "\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + - "\n" + "/gMDAtfSz5hVoDvp4Vugj4T3VQk8mJ3uYDZmPbNL8SK18VTIVpd3xgrjTP+JEtB+" + - "\n" + "aw1WQK4Qik0BdKAu9Lv6wz4u/QNC8q4x3lBcoYleD6iXRL2Tpnh7RcEakIoxIeFH" + - "\n" + "joBTZOI+v0HUlyVvSkIaEhE60UvdX+If9p9sx5+uHdYRRfOkM3SZMxLxCUVHMp1e" + - "\n" + "ZBcmW+x9UiyA07wXyvAhlS2/iTijDtQFRqK8xs9w7zn0A12afksGtPEL7J5MRqQs" + - "\n" + "BuxUrWSKVQ3DkgWXd56qEtbKuklKXe9t93eMPvcFQ2ZVhgic436dygtpNgkGliVq" + - "\n" + "Di83wUjorTZFMeC0uhvQ2akfQxvj5TgYoI0rFABvn/6He1LBSWyiu6ZK1nC1PKUc" + - "\n" + "KLGQGfq+kbHwJg3q0wIJ5+e1v6hZ9HClhaRsR4ADnTDnp3mGqPxDWvQox1S2+ESx" + - "\n" + "8N6AcZ+q47D78IE4EzF4LyQ0g9FdDiNsPwqN4oS2/ZkXb/IbFoVoottU7915KqZO" + - "\n" + "6kiJvpMcZrs4TJ4zR++CGBEvJDfUE4RoQHQe/XLA1RJXIwXr3kWPvB2Tc16vdhkh" + - "\n" + "LZ9z/HOrPW6SI/UwVYFHpmJIYj3nHdjGcyWwz0KmQ3H5+AYe36afwJws6TFx/QLi" + - "\n" + "fqlOkcaBaiQwpcpuSX2y4rTgcjDEaVdPGmvs2m5vKv66a8yybIl2P0veVTutGtC8" + - "\n" + "DfQaggqZWQYHmXXvGUnBM+H9YSBJ2g3W3w51fKcN2FtX42OsVxXqZkqlGR2zBE00" + - "\n" + "ilVZmiv6ajV9mmO7W8EV9TPqjrYuEDf2M57LllQ7OB1p1v6CtqIyVSL/Jak6ckMT" + - "\n" + "5VdqMoup6ib5j4CR+C4i7Btu+gkXhW775l/jbFlUXKE5Vn+LAAIOpxiVZ2Z7azL6" + - "\n" + "sNwxtfmpaTAgIvHGSysgPeXeEN3fgTsfZ0PYaqlEHggsYDDU4XvXIOKcUmrr6zEI" + - "\n" + "KXeeS0+V3nxSIb9kQHYZyUFvNv98gCCj0wgNl+LoVJ9NvMkaOrCS0jkRaxJicQfa" + - "\n" + "bu4XL9XbUBESuHvG6jiK6DNlhT1j3qFFcRBO7COI3OQ0JD7Y1XPYYR48EP69Fwe0" + - "\n" + "82LZH5dq9kslpn8VsuygTum9jYFnE5UVLfmjbroFu9YlLE54T0CdZ4UQEWTrZiuz" + - "\n" + "TXYf13FaVEgfAim+hjdUUVSCptsX2crC7Vrsk/xMjT2ETU1w/yZb5BVoCvbK/eaf" + - "\n" + "sqQAPGElSp0YlI/mgpbc5rRQzcSXghenjOol/gJM0MbFJuyQ93sLW0Gi7zEeBxQi" + - "\n" + "aO/Ua4F4VhPilPf+T66fNMM0bG29X5j41eRrN0m1ly4M+jOOIyocLcUamgFsRDTe" + - "\n" + "XG9kHZUylAJqNMwQvDzbVSTbHKjhOTa3PyinrTwauYiQP6fIbd4JWkIW88cBynbR" + - "\n" + "IHHCYYGxZoDUDd366QyNHKTd5wxw1MicK54tUDcUVDq8NKC+yGuGi6WLYt4WdNEg" + - "\n" + "pYb/MzxGRzbhVEHNbfFEr5e706VcQlglpPcMTUctzRVF18wWHzPVbHdZiTBXdr0t" + - "\n" + "hJkRNaAvnmQMvP0bXk+QDGW24Z66Yz0X2YzFo4Rdp/MAm/1KwagIu0hIGbwk8egq" + - "\n" + "tq6Q5zyyiSp7dVvcNAPaEzEKZXRSrSjyNwQw0CHI940SRgK5JDkAMHZWK8vg8Ih4" + - "\n" + "DR7m69XmYXwvTScrQqkFa+8XIb5QqeH7W3Qe4aKiC6QOJav/ptYLZ+s1TTzeIOA8" + - "\n" + "5zxhWPj81YgifDtWPc4MG+Y0QuSzMdMue+/oJUt6lyQmtCthbm9ueW1vdXMgc3Ry" + - "\n" + "aWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BBMBCgAnBQJVR5ubAhsD" + - "\n" + "BQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc4xHEt/4P/1zf" + - "\n" + "/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi72Dwug6" + - "\n" + "a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywMdSfTAXa+popNccD5yPCJ" + - "\n" + "VBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCq" + - "\n" + "lmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0" + - "\n" + "rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7" + - "\n" + "UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNY" + - "\n" + "Vfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV" + - "\n" + "0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4" + - "\n" + "IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbKqemK8D0rbaoxJq5RLkwU" + - "\n" + "6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdgoWv9xZU7asdsm5cpHpy7" + - "\n" + "lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYnQc+BFVHm5sBEADBX28bR5Qx" + - "\n" + "brGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8k0A8fcLkZC" + - "\n" + "SBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS/Rwy" + - "\n" + "18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim" + - "\n" + "+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP" + - "\n" + "6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhj" + - "\n" + "lR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHo" + - "\n" + "CUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8" + - "\n" + "LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNf" + - "\n" + "E9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJ" + - "\n" + "DuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr5HctpLgwvLVKCeDfU8nc" + - "\n" + "hzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQAB/gMDAtfSz5hVoDvp4ZpoCdrR" + - "\n" + "S4An9JABiMWCTG4IUYuShVQKJJR3KtZ0C5D4gH4BUlEGDsUtY3/6deakvzedbVxv" + - "\n" + "mb59QoU8GuHZ/iWAlsY+37YIBu9kbywIFDDGJeD9th9cXPpuQ31kEvwE37gsNn5p" + - "\n" + "IB38oB3mgWoLi2nH4AAVNZXPNBTJ7rS1pi69v4BepUTbglb805ypmWJllzhyRUvm" + - "\n" + "DAU/8cu0cPWaaBU4s8Mi7SLv2s+i9EPYNzDkBEy7RYvZApP7G8x447iYPRvmaFnB" + - "\n" + "Fd3Ctpd3xkZhZatDV6MJCEfssIdy5yARV4zwCcZ5JDGXGlxoiPH6A3b11SwPOEMv" + - "\n" + "QJ0PRZ334XLK93hwzxjYKBJ8hBrR2oPvRUOAVs2/J8JSASYrufyqkXnYJ1EBnP3H" + - "\n" + "5TwbjRQ9Qmg1ScFCzTfYgu5emiIF5LFAfTasZGSJvjrXFVeocCswHUvHztzJmpbt" + - "\n" + "BAov3Lw6lBkxdvhZomyx74CGOnyz/eFD/khvIV/oms5lR8NNrkpkRGZ/xCN8Kmau" + - "\n" + "KhRBebGVEITzOWJQHz0QMhuTloVvtDbDDgqW8gH8eVQJkQCDw8Wd79uj0kw1Xaln" + - "\n" + "nseFPLCRNRN0js7cCGW95fVtawRNBCNYambNCLthkBfzT0+1/ULRC2JrP1rutr6D" + - "\n" + "sye0S44kNyXKhM72Hamu4XygYlzRsYQflv2PgypjVmkdcZ2rwomMVdqQll3Q7jde" + - "\n" + "kWKDpKdx7lR2pnDoXmn43VR1X4uD1PHab56tYE0JUrKDgqZJqzCwJXc3FcPV7LgD" + - "\n" + "8pISoMZJ5+84UiRBvNN7N24kpLd9k97Iz29qY6u86Uy/f7/X77qur58r6K04vTfH" + - "\n" + "8nA/ybc/9Ube6oyQ44A2NEwBrP3NUA6lHNPeaYBO2RGxTJJU2Edxuy3bJMpEkBhU" + - "\n" + "CeWWIZnuxojF+pGjiPLArVZg6Mahc0GlYoiA66cxTuoGHM/wO5Xl0f33L0jny3Kv" + - "\n" + "I9OWvUJbKs+J8G6q0zorl5nNmPpTwGYLJkUKhLtMhjS+jf5XA7b5jN1079/oToXu" + - "\n" + "Xsfl6J7vnwJt7gglLRpK8iw3xlF4X4AWodBLj36HEyOgTimJXLt2fdpIrkiutUFF" + - "\n" + "qdWdZeK+sII8ZAyrfgvwxvmairFK3ylbPwA340jsRQeA8boOOSiDV0cPOszQi1Rt" + - "\n" + "Ygnae9or6faA3lqe+fRQi5JsmnJ1jLMe0mxw1mMOR4YLCMjgBc0CTMkY5kmCykA7" + - "\n" + "NCQBec2Fueu9cxsu7LJO4+OAUF+i+G/BWPzvWqyJrLk52tME2TxyVL5PRZvqAcrK" + - "\n" + "CV+d9IKxH4Ng40qPXL1gM27wWrrFa6RGq12oGvTqkVcomImzqK1ASSPWU3bSYiOy" + - "\n" + "2JOQvjLxjQw6emNYG09SlKrzNmXlbrZ4BfolL4eI8H2+3+UG4l/cXxPnLEeQzkvu" + - "\n" + "XuW5yajWoNBocEICcopmv8QgpwgiTUstmOTMFXD1EbVasonaH5R+wxBMB4Y1K+ot" + - "\n" + "eRawIyFA75FO8HCPoTBe5+Qb6G8+5i7nsgDtHG337G8JFz3hE3U++90zbYxxtjYx" + - "\n" + "Y2PYHfOwsDE8IDu1ZqzuB7lgrNADzOzelhSrcaW/jNHPGlxcsPTXl7S2QazgIPqk" + - "\n" + "kZ9g4ceXSsZOV9Yl4Bu2ODeUiVeYGGEXwJ7WAKNvaR3bMbhl+iwIQFy3A12/fz0w" + - "\n" + "B16C9qp7P9+5FEFWjlqi/28dSfECiDD4X4iyEe+sWTS86Cv0VsL300dIUQPIs65d" + - "\n" + "ddkrIkcpM4jyabKTZcltiQIlBBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc" + - "\n" + "4xHEo+UP/02AIUR0349zGk9a4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0Zoq" + - "\n" + "TO8A0uFmEhCkw++reQcWOz1Nn+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq" + - "\n" + "7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/EC" + - "\n" + "THxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mli" + - "\n" + "vy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfn" + - "\n" + "Rn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUh" + - "\n" + "XYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkK" + - "\n" + "G8ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23Mz" + - "\n" + "Ts1hhwgIy4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3" + - "\n" + "gJgH0QONrUaRY84/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+w" + - "\n" + "p1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K" + - "\n" + "=h0dN" + - "\n" + "-----END PGP PRIVATE KEY BLOCK-----", {}); - - Assert.equal(keyList.length, 1); - - let k = keyList[0]; - Assert.ok(k.isSecret); - Assert.equal(k.name, "anonymous strike "); - -})); - -test(withTestGpgHome(function testBinary() { - let data = atob( - "mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWetJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8KTzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772LcflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0bugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrDNotvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3FWMV9w3YrrqidoWSZBqyBO0Toqt" + - "5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mCT8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQABtCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BBMBCgAnBQJVR5ubAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc4xHEt/4P/1zf/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi72Dwug6a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2Hfq" + - "UyDhaiuASywMdSfTAXa+popNccD5yPCJVBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCqlmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNYVfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbKqemK8D0rbaoxJq" + - "5RLkwU6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdgoWv9xZU7asdsm5cpHpy7lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYuQINBFVHm5sBEADBX28bR5QxbrGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8k0A8fcLkZCSBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS/Rwy18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhjlR5HpRxdDMfHjFYlk5hl" + - "OtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHoCUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNfE9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJDuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr5HctpLgwvLVKCeDfU8nchzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQABiQIlBBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc4xHEo+UP/02AIUR0349zGk9a4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0ZoqTO8A0uFmEhCkw++reQcWOz1Nn+" + - "MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/ECTHxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mlivy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfnRn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUhXYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkKG8ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23MzTs1hhwgIy4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qA" + - "N4Qq+ollo8K3gJgH0QONrUaRY84/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+wp1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K"); - - let keyList = EnigmailKey.getKeyListFromKeyBlock(data, {}); - - Assert.equal(keyList.length, 1); - - let k = keyList[0]; - Assert.equal(k.id, "781617319CE311C4"); - Assert.ok(!k.isSecret); - Assert.equal(k.name, "anonymous strike "); -})); diff -Nru enigmail-2.1.6+ds1/package/tests/locale-test.js enigmail-2.2.4/package/tests/locale-test.js --- enigmail-2.1.6+ds1/package/tests/locale-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/locale-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("locale.jsm"); /*global EnigmailLocale: false */ - -test(function shouldReadProperty() { - const importBtnValue = EnigmailLocale.getString("enigHeader"); - Assert.equal("Enigmail:", importBtnValue); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/log-test.js enigmail-2.2.4/package/tests/log-test.js --- enigmail-2.1.6+ds1/package/tests/log-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/log-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("log.jsm"); /*global EnigmailLog: false, EnigmailFiles: false */ - -test(function shouldCreateLogFile() { - EnigmailLog.setLogDirectory(do_get_cwd().path); - EnigmailLog.setLogLevel(5); - EnigmailLog.createLogFiles(); - const filePath = EnigmailLog.directory + "enigdbug.txt"; - const localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - EnigmailFiles.initPath(localFile, filePath); - try { - Assert.equal(localFile.exists(), true); - } finally { - EnigmailLog.onShutdown(); - if (localFile.exists()) { - localFile.remove(false); - } - EnigmailLog.createLogFiles(); - } -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/mailHelper.js enigmail-2.2.4/package/tests/mailHelper.js --- enigmail-2.1.6+ds1/package/tests/mailHelper.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/mailHelper.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -/*global do_load_module: false, do_get_cwd: false, component: false, do_get_file: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var MailServices; -try { - MailServices = component("/modules/MailServices.jsm").MailServices; -} -catch (x){ - MailServices = component("/modules/MailServices.js").MailServices; -} - -var EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; -//component("/modules/iteratorUtils.jsm"); - -const MailHelper = { - init: function() { - if (!MailHelper.initialized) { - try { - MailServices.accounts.createLocalMailAccount(); - } catch (ex) { - // This will fail if someone already called this. - } - - let localAccount = MailServices.accounts.FindAccountForServer(MailServices.accounts.localFoldersServer); - let identity = MailServices.accounts.createIdentity(); - identity.email = "tester@enigmail.org"; - localAccount.addIdentity(identity); - localAccount.defaultIdentity = identity; - MailHelper.incomingServer = MailServices.accounts.localFoldersServer; - MailHelper.rootFolder = MailHelper.incomingServer.rootMsgFolder; - if (!MailHelper.rootFolder.containsChildNamed("EngimailTestInbox")) { - MailHelper.rootFolder.createSubfolder("EngimailTestInbox", null); - MailHelper.inboxFolder = MailHelper.rootFolder.getChildNamed("EngimailTestInbox"); - MailHelper.inboxFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Mail); - MailHelper.inboxFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Inbox); - } - MailHelper.initialized = true; - } - }, - - deleteAllAccounts: function() { - let ac = MailServices.accounts.accounts; - for (let i = 0; i < ac.length; i++) { - let aAccount = ac.queryElementAt(i, Components.interfaces.nsIMsgAccount); - MailServices.accounts.removeAccount(aAccount, true); - } - - MailHelper.initialized = false; - }, - - getRootFolder: function() { - MailHelper.init(); - return MailHelper.rootFolder; - }, - - createMailFolder: function(name) { - MailHelper.init(); - let localRoot = MailHelper.rootFolder.QueryInterface(Components.interfaces.nsIMsgLocalMailFolder); - let mailFolder = localRoot.createLocalSubfolder(name); - mailFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Mail); - return mailFolder; - }, - - cleanMailFolder: function(mailFolder) { - MailHelper.init(); - let it = mailFolder.subFolders; - while (it.hasMoreElements()) { - mailFolder.propagateDelete(it.getNext(), true, null); - } - }, - - loadEmailToMailFolder: function(emailFilePath, mailFolder) { - let emailFile = do_get_file(emailFilePath, false); - MailServices.copy.CopyFileMessage(emailFile, mailFolder, null, false, 0, null, null, null); - }, - - fetchFirstMessageHeaderIn: function(mailFolder) { - let folderInfo = {}; - let msgDb = mailFolder.getDBFolderInfoAndDB(folderInfo); - let enumerator = msgDb.EnumerateMessages(); - if (enumerator.hasMoreElements()) { - return enumerator.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr); - } else - return null; - } -}; diff -Nru enigmail-2.1.6+ds1/package/tests/main.js enigmail-2.2.4/package/tests/main.js --- enigmail-2.1.6+ds1/package/tests/main.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/main.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/*global do_subtest: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -function execTest(filename) { - - - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - - let testcases = env.get("JS_TEST"); - - if (testcases && testcases.length > 0) { - if (testcases.search(filename) >= 0) do_subtest(filename); - } else - do_subtest(filename); -} - -execTest("initialize.js"); -execTest("funcs-test.js"); -execTest("gpgAgent-test.js"); -execTest("autocrypt-test.js"); -execTest("armor-test.js"); -execTest("data-test.js"); -execTest("system-test.js"); -execTest("decryption-test.js"); -execTest("verify-test.js"); -execTest("errorHandling-test.js"); -execTest("encryption-test.js"); -execTest("core-test.js"); -execTest("files-test.js"); -execTest("streams-test.js"); -execTest("gnupg-keylist-test.js"); -execTest("key-test.js"); -execTest("keyObj-test.js"); -execTest("keyRing-test.js"); -execTest("keyEditor-test.js"); -execTest("keyserver-test.js"); -execTest("keyserverUris-test.js"); -execTest("locale-test.js"); -execTest("log-test.js"); -execTest("mime-test.js"); -execTest("os-test.js"); -execTest("prefs-test.js"); -execTest("rules-test.js"); -execTest("mimeDecrypt-test.js"); -execTest("expiry-test.js"); -execTest("installGnuPG-test.js"); -execTest("keyRefreshService-test.js"); -execTest("tor-test.js"); -execTest("versioning-test.js"); -execTest("rng-test.js"); -execTest("dns-test.js"); -execTest("filters-test.js"); -execTest("webKey-test.js"); -execTest("openpgpjs-test.js"); -execTest("autoSetup-test.js"); -execTest("persistentCrypto-test.js"); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/Makefile enigmail-2.2.4/package/tests/Makefile --- enigmail-2.1.6+ds1/package/tests/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,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 -# file, You can obtain one at https://mozilla.org/MPL/2.0/. - -DEPTH = ../.. - -include $(DEPTH)/config/autoconf.mk - -UNITTEST = - -ifneq ($(TB_PATH),"") - -UNITTEST = $(JSUNIT) - -endif - -all: - $(UNITTEST) diff -Nru enigmail-2.1.6+ds1/package/tests/mimeDecrypt-test.js enigmail-2.2.4/package/tests/mimeDecrypt-test.js --- enigmail-2.1.6+ds1/package/tests/mimeDecrypt-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/mimeDecrypt-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */ -/*global component: false, withEnigmail: false withTestGpgHome: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -/*global EnigmailMime: true, EnigmailVerify: true */ -var overwriteEnigmailMime = { - extractProtectedHeaders: function(str) { - return { - startPos: 10, - endPos: 22, - newHeaders: { - subject: "The hidden subject" - } - }; - } -}; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("mimeDecrypt.jsm"); /* global EnigmailMimeDecrypt: false, EnigmailSingletons: false, EnigmailCompat: false */ -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; -const EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - -test(withTestGpgHome(withEnigmail(function processPgpMimeMsg() { - const secKey = do_get_file("resources/dev-strike.sec", false); - const importedKeysObj = {}; - const importResult = EnigmailKeyRing.importKeyFromFile(secKey, {}, importedKeysObj); - - let k = EnigmailKeyRing.getKeyById("0x781617319CE311C4"); - Assert.ok(k !== null); - - let msgFile = do_get_file("resources/pgpMime-msg.eml", false); - let msgTxt = EnigmailFiles.readFile(msgFile); - - let i = msgTxt.search(/\n\n/); - Assert.ok(i > 0); - msgTxt = msgTxt.substr(i + 2); - - let dataArr = msgTxt.split(/\n/); - - let dec = EnigmailMimeDecrypt.newPgpMimeHandler(); - EnigmailVerify.lastMsgWindow = 1; - EnigmailVerify.lastMsgUri = null; - - - EnigmailSingletons.messageReader = { - processDecryptionResult: function(uri, funcName, jsonString, mimePartNumber) { - Assert.equal(uri.spec, "test"); - Assert.equal(funcName, "modifyMessageHeaders"); - Assert.equal(jsonString, "{}"); - Assert.equal(mimePartNumber, "1"); - }, - updateSecurityStatus: function(msgUriSpec, exitCode, statusFlags, keyId, userId, sigDetails, - errorMsg, blockSeparation, uri, jsonStr, mimePartNumber) { - Assert.equal(msgUriSpec, null); - Assert.equal(keyId, "65537E212DC19025AD38EDB2781617319CE311C4"); - Assert.equal(userId, "anonymous strike "); - let s = JSON.parse(jsonStr); - Assert.ok("encryptedTo" in s); - Assert.equal(mimePartNumber, "1"); - } - }; - - let pgpMimeProxy = { - QueryInterface: EnigmailCompat.generateQI(["nsIPgpMimeProxy"]), - mimePart: "1", - contentType: 'multipart/encrypted; protocol="application/pgp-encrypted"; boundary="DELIMITER"', - outputDecryptedData: function(data, dataLen) { - Assert.equal(dataLen, 15, "data length matches"); - Assert.equal(data, "This is a test\n", "data matches"); - } - }; - - let inputStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - - let testUri = { - QueryInterface: EnigmailCompat.generateQI(["nsIURI"]), - schemeIs: function() { - return true; - }, - pathQueryRef: "test", - spec: "test" - }; - - dec.onStartRequest(pgpMimeProxy, testUri); - for (i = 0; i < dataArr.length; i++) { - let s = dataArr[i] + "\r\n"; - inputStream.setData(s, s.length); - if (EnigmailCompat.isMessageUriInPgpMime()) { - // TB >= 67 - dec.onDataAvailable(null, inputStream, 0, s.length); - } else - dec.onDataAvailable(null, null, inputStream, 0, s.length); - } - - dec.onStopRequest(null, null); -}))); - - -test(function extractEncryptedHeadersTest() { - EnigmailMime = overwriteEnigmailMime; - var dec = EnigmailMimeDecrypt.newPgpMimeHandler(); - dec.decryptedData = 'This is a Hello World example'; - - dec.extractEncryptedHeaders(); - - var expected = 'This is a example'; - - var got = dec.decryptedData; - Assert.equal(got, expected, "removed rfc822 header"); - - got = dec.decryptedHeaders.subject; - expected = "The hidden subject"; - Assert.equal(got, expected, "subject"); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/mimeEncrypt-test.js enigmail-2.2.4/package/tests/mimeEncrypt-test.js --- enigmail-2.1.6+ds1/package/tests/mimeEncrypt-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/mimeEncrypt-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,177 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */ -/*global component: false, withEnigmail: false withTestGpgHome: false, JSUnit: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("mimeEncrypt.jsm"); -/* global EnigmailMimeEncrypt: false, PgpMimeEncrypt: false - EnigmailConstants: false, EnigmailKeyRing: false, - EnigmailPrefs: false, - MIME_SIGNED: false, MIME_ENCRYPTED: false */ - -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; - -test(function testSignedMessage() { - const e = new PgpMimeEncrypt(null); - e.msgCompFields = []; - e.hashAlgorithm = "SHA256"; - e.cryptoMode = MIME_SIGNED; - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED; - e.startCryptoHeaders(); - - Assert.equal(e.pipeQueue.search(/Content-Type: multipart\/mixed; boundary=\"[a-zA-Z0-9]+\"\r\n\r\n--[a-zA-Z0-9]+\r\n/), 0); - Assert.equal(e.outQueue.search(/Content-Type: multipart\/signed; micalg=pgp-sha256;\r\n protocol=\"application\/pgp-signature\";\r\n boundary=\"[a-zA-Z0-9]+\"/), 0); -}); - - -test(withTestGpgHome(withEnigmail(function testFinishCryptoEncapsulation() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const secretKey = do_get_file("resources/dev-strike.sec", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - const strikeAccount = "strike.devtest@gmail.com"; - - const e = new PgpMimeEncrypt(null); - e.msgCompFields = []; - e.hashAlgorithm = "SHA256"; - e.useSmime = false; - e.cryptoMode = MIME_ENCRYPTED; - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_ENCRYPTED | EnigmailConstants.SEND_ALWAYS_TRUST; - e.senderEmailAddr = strikeAccount; - e.recipients = strikeAccount; - e.bccRecipients = ""; - e.pipeQueue = "Hello World"; - e.win = JSUnit.createStubWindow(); - e.checkSMime = false; - e.encapsulate = false; - e.encHeader = null; - e.flushOutput = function() {}; - - e.finishCryptoEncapsulation(false, false); - Assert.equal(e.encryptedData.substr(0, 27), "-----BEGIN PGP MESSAGE-----"); - - Assert.ok(e.encryptedData.split(/[\r\n]+/).length >= 14); - - // test if we get an exception if encryption fails - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_ENCRYPTED; - try { - e.finishCryptoEncapsulation(false, false); - Assert.ok(false); // should not succeed because "always trust" is off - } - catch (ex) { - Assert.ok(true); - } - - // test signed message - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED; - e.finishCryptoEncapsulation(false, false); - Assert.equal(e.encryptedData.substr(0, 29), "-----BEGIN PGP SIGNATURE-----"); -}))); - - -test(withTestGpgHome(withEnigmail(function testBeginCryptoEncapsulation() { - const secretKey = do_get_file("resources/dev-strike.sec", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - const strikeAccount = "strike.devtest@gmail.com"; - - // force GnuPG to use SHA512 - EnigmailPrefs.setPref("agentAdditionalParam", "--digest-algo SHA512"); - - const e = new PgpMimeEncrypt(null); - e.msgCompFields = []; - e.hashAlgorithm = ""; - e.useSmime = false; - e.cryptoMode = MIME_ENCRYPTED; - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED; - e.senderEmailAddr = strikeAccount; - e.recipients = strikeAccount; - e.bccRecipients = ""; - e.pipeQueue = "Hello World"; - e.win = JSUnit.createStubWindow(); - e.checkSMime = false; - e.encapsulate = false; - e.encHeader = null; - - e.beginCryptoEncapsulation({}, strikeAccount, {}, {}, false, false); - - Assert.equal(e.hashAlgorithm, "sha512"); - EnigmailPrefs.setPref("agentAdditionalParam", ""); -}))); - -test(function testWriteSecureHeaders() { - const e = new PgpMimeEncrypt(null); - const SUBJECT = "Some subject with umlauts like ä and é"; - e.msgCompFields = { - from: "Sender ", - to: "Recipient " - }; - e.getAutocryptGossip = function() { - return ""; - }; - e.encHeader = null; - e.cryptoMode = MIME_ENCRYPTED; - e.originalSubject = SUBJECT; - - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED; - EnigmailPrefs.setPref("protectedHeadersLegacyPart", false); - e.pipeQueue = ""; - e.writeSecureHeaders(); - Assert.equal(e.pipeQueue, `Content-Type: multipart/mixed; boundary="${e.encHeader}"\r\n\r\n--${e.encHeader}\r\n`); - - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED; - EnigmailPrefs.setPref("protectedHeadersLegacyPart", true); - e.pipeQueue = ""; - e.writeSecureHeaders(); - Assert.equal(e.pipeQueue, `Content-Type: multipart/mixed; boundary="${e.encHeader}"\r\n\r\n--${e.encHeader}\r\n`); - - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED | EnigmailConstants.ENCRYPT_HEADERS; - EnigmailPrefs.setPref("protectedHeadersLegacyPart", false); - e.pipeQueue = ""; - e.writeSecureHeaders(); - let expected = `Content-Type: multipart/mixed; boundary="${e.encHeader}";\r\n protected-headers="v1"\r\n` + - `From: ${e.msgCompFields.from}\r\n` + - `To: ${e.msgCompFields.to}\r\n` + - `Subject: =?UTF-8?Q?Some_subject_with_umlauts_like_=c3=a4_and_=c3=a9?=\r\n\r\n` + - `--${e.encHeader}\r\n`; - Assert.equal(e.pipeQueue, expected); - - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED | EnigmailConstants.ENCRYPT_HEADERS; - EnigmailPrefs.setPref("protectedHeadersLegacyPart", true); - e.pipeQueue = ""; - e.writeSecureHeaders(); - expected = `Content-Type: multipart/mixed; boundary="${e.encHeader}";\r\n protected-headers="v1"\r\n` + - `From: ${e.msgCompFields.from}\r\n` + - `To: ${e.msgCompFields.to}\r\n` + - `Subject: =?UTF-8?Q?Some_subject_with_umlauts_like_=c3=a4_and_=c3=a9?=\r\n\r\n` + - `--${e.encHeader}\r\n` + - 'Content-Type: text/plain; charset=utf-8; protected-headers="v1"\r\n' + - 'Content-Disposition: inline\r\n\r\n' + - `Subject: Some subject with umlauts like ä and é\r\n\r\n` + - `--${e.encHeader}\r\n`; - Assert.equal(e.pipeQueue, expected); - - e.originalSubject = null; - e.sendFlags = EnigmailConstants.SEND_PGP_MIME | EnigmailConstants.SEND_SIGNED | EnigmailConstants.ENCRYPT_HEADERS; - EnigmailPrefs.setPref("protectedHeadersLegacyPart", true); - e.pipeQueue = ""; - e.writeSecureHeaders(); - expected = `Content-Type: multipart/mixed; boundary="${e.encHeader}";\r\n protected-headers="v1"\r\n` + - `From: ${e.msgCompFields.from}\r\n` + - `To: ${e.msgCompFields.to}\r\n\r\n` + - `--${e.encHeader}\r\n`; - Assert.equal(e.pipeQueue, expected); - - EnigmailPrefs.setPref("protectedHeadersLegacyPart", false); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/mime-test.js enigmail-2.2.4/package/tests/mime-test.js --- enigmail-2.1.6+ds1/package/tests/mime-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/mime-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */ -/*global do_test_pending: false, do_test_finished: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("mime.jsm"); /*global EnigmailMime: false */ - -test(function getBoundaryTest() { - var got = EnigmailMime.getBoundary("application/pgp-encrypted;\n boundary='abc'; procol='any'\n"); - Assert.equal(got, "'abc'", "get boundary 1"); - got = EnigmailMime.getBoundary("application/pgp-encrypted; boundary='abc'; protocol='any'"); - Assert.equal(got, "'abc'", "get boundary 2"); - got = EnigmailMime.getBoundary('content-type: application/pgp-encrypted; boundary="abc"; protocol="any"'); - Assert.equal(got, "abc", "get boundary 3"); - got = EnigmailMime.getProtocol('content-type: application/pgp-encrypted; boundary="abc"; protocol="SHA123"'); - Assert.equal(got, "SHA123", "get protocol 1"); - got = EnigmailMime.getParameter('application/pgp-encrypted; boundary="abc"; protocol="any"', "BOUNDARY"); - Assert.equal(got, "abc", "getParameter 1"); - got = EnigmailMime.getParameter('parameter1=abc; Param2=\r\n abc\r\n\t\t\tdef', "param2"); - Assert.equal(got, "abcdef", "getParameter 2"); - got = EnigmailMime.getParameter('parameter1=abc; Param2=\r\n abc\r\n def', "notexist"); - Assert.equal(got, "", "getParameter 3"); - -}); - -const msg1 = 'Content-Type: multipart/mixed; boundary="OuterBoundary";\r\n' + - ' protected-headers="v1"\r\n' + - 'References: \r\n' + - 'Subject: The hidden subject\r\n' + - 'From: Starworks \r\n' + - 'To: Alan , Bingo \r\n' + - 'Cc: Alan , Bingo \r\n' + - 'Reply-To: Starworks alternative \r\n' + - 'Date: Sun, 21 Jun 2015 15:19:32 +0200\r\n' + - '\r\n' + - '--OuterBoundary\r\n' + - 'Content-Type: text/plain; charset="us-ascii"; protected-headers="v1"\r\n' + - 'Content-Disposition: inline\r\n' + - '\r\n' + - 'Subject: The hidden subject\r\n' + - '\r\n' + - '--OuterBoundary\r\n' + - 'Content-Type: multipart/mixed; boundary="innerContent"\r\n' + - '\r\n' + - '--innerContent\r\n' + - 'Content-Type: text/html; charset="us-ascii"\r\n' + - '\r\n' + - '

Hello World!

\r\n' + - '\r\n' + - '--innerContent--\r\n' + - '--OuterBoundary--\r\n\r\n'; - -const msg2 = 'Content-Type: multipart/mixed; boundary="OuterBoundary"\r\n' + - 'References: \r\n' + - 'Subject: Outer hidden subject\r\n' + - '\r\n' + - '--OuterBoundary\r\n' + - 'Content-Type: multipart/mixed; boundary="innerContent"\r\n' + - '\r\n' + - '--innerContent\r\n' + - 'Content-Type: text/plain; charset="us-ascii"\r\n' + - '\r\n' + - 'Hello World!\r\n' + - '\r\n' + - '--innerContent--\r\n' + - '--OuterBoundary--\r\n\r\n'; - -test(function extractProtectedHeadersTest() { - - var r = EnigmailMime.extractProtectedHeaders(msg1); - //Assert.equal(r, 0); - - var expected = msg2; - - var got = r.startPos; - Assert.equal(got, 429, "startPos of removed data"); - - got = r.endPos; - Assert.equal(got, 578, "endPos of removed data"); - - got = r.newHeaders.subject; - expected = "The hidden subject"; - Assert.equal(got, expected, "subject"); - - got = r.newHeaders.from; - expected = "Starworks "; - Assert.equal(got, expected, "from"); - - got = r.newHeaders.to; - expected = "Alan , Bingo "; - Assert.equal(got, expected, "to"); - - got = r.newHeaders.cc; - expected = "Alan , Bingo "; - Assert.equal(got, expected, "cc"); - - got = r.newHeaders["reply-to"]; - expected = "Starworks alternative "; - Assert.equal(got, expected, "reply-to"); - - got = r.newHeaders.date; - expected = "Sun, 21 Jun 2015 15:19:32 +0200"; - Assert.equal(got, expected, "date"); - - got = r.newHeaders.references; - expected = ""; - Assert.equal(got, expected, "references"); -}); - -test(function getMimeTreeTest() { - - let tree = EnigmailMime.getMimeTree(msg1); - - Assert.ok(tree.headers.contentType.type, "multipart/mixed"); - Assert.equal(tree.subParts[0].headers.contentType.type, "text/plain"); - Assert.equal(tree.subParts[0].headers.charset, "us-ascii"); - Assert.equal(tree.subParts[1].subParts[0].headers.contentType.type, "text/html"); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/openpgpjs-test.js enigmail-2.2.4/package/tests/openpgpjs-test.js --- enigmail-2.1.6+ds1/package/tests/openpgpjs-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/openpgpjs-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */ -/*global do_test_pending: false, do_test_finished: 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"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("cryptoAPI/openpgp-js.js"); /*global getOpenPGPjsAPI: false */ - -test(function testGetStrippedKey() { - const cApi = getOpenPGPjsAPI(); - - const pubKey = "-----BEGIN PGP PUBLIC KEY BLOCK-----" + - "\n" + - "\nmQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" + - "\ntJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" + - "\nTzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" + - "\ncflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" + - "\n7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" + - "\nugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" + - "\nNotvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" + - "\nWMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" + - "\nd9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" + - "\n+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" + - "\nT8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" + - "\ntCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQJO" + - "\nBBMBCAA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEZVN+IS3BkCWtOO2y" + - "\neBYXMZzjEcQFAltV+f8ACgkQeBYXMZzjEcRWcQ/7Bihjn7jidt7pw4iv9ognHsX/" + - "\nPfDPQtfaa4wK3NHSDq/LMbI5xR+PtV0j4aIjZxj5C4F3/6pvhCthV9KWiMcxlrL1" + - "\nrv92r5JJAqt1T4m/CqYGGcKt+eIiDpuzGj7Ry5VJKyrHL1oFXDo6Sde4L5H87ltH" + - "\n+lvyy9LS8TPgknWV8RsR2vn/IWr9HNLhKAdHEIXFGGfYRaS7RRRYHmP05TFFdFwy" + - "\nhq2VTWW8OgqYILkSEonLgDo12QEAOu5Q9wCK0TV2in+yxBA/Hh5G/Uwm+u4SrW+v" + - "\nSW2pdbYlgk/8Op5ItDQ1n6Q09Jzuyn9CzN+77MJdreAIP9YlnU7eUc7h3iLthHYm" + - "\nflYyXOlO51M7Apnvu4SfFi/jq/9MlN9XJ9t4lo1tkGveAqBh88XZHviymRGYDf2F" + - "\nDkTw/AhdIv8bVeObIoiXuyaoD8lb7fg16Sa7msUj+0+Z+edJBr1YMgdloetyzcHm" + - "\nGFFbqLLiD5GvTRfD6yMdkC/IcfRXtjMITbZxpPMA2NruYqgVXjFzaW76OiTkvjEV" + - "\n4Lt+dAiLpLNh9n5S/1KuB4QK2pH2iyJSFMdxIcJsIfHTkZuOHYs746DWqqdxvsQy" + - "\nMCXkbUtUa2gHz/2mCgxDyma3piWpRkAtMxV+6YRZuBDsGXd7VNXYRVlm8+mCBikL" + - "\nYNyRRnhM4LdkXx7iaaa5Ag0EVUebmwEQAMFfbxtHlDFusY1U9PeMzrQhP6b8ZMsf" + - "\nqWbg5xmiYB6P9esE5xf/QFi06qo/sO6vyTQDx9wuRkJIGx7Wbp+98AKjxVt66e/g" + - "\nitJPkWBeHttg9mx4jLlTtefR0uqlVclGoy3dQtL9HDLXxfHyP2xckkMAoipngwfC" + - "\nAGSc954GcPhobpskC4EQjpFbmWFsbxYUl8KeIW5GeKb5UPq5x/3fHc2QvRNZjSXQ" + - "\n9tR1b3awt+IqnWebP7V1GgFyRPvTWwyzamTjw7lj+8/o4QPMXOMZ0DWv1iRuVeM3" + - "\n1XGFI3TRaWZyrUOoRTfr4yqLhghCy4Xc19LXf5TaWGOVHkelHF0Mx8eMViWTmGU6" + - "\n26+imx5hOUzKQWXwPvLSpIUgCKpWXql2VIFTzhs4segJQZ6ez5SXubRRKHBl1WYy" + - "\nJ8XD98nAhJkjwPm8aQzesTtPGscBD87V8mcZk0FGCfwuOdmNEYD+7V/B6m0VjQ3L" + - "\nM7mU7NNYjocEmXWExq97aXS+3AE8utFttGHLpnvsE18T1rbDtjhoV6yGMSlbETxt" + - "\nAjIysEZpFqJDaWleYDpdhnFDzE5R+y2wBHVMz4luhckO5PD5iFpVrZbtn9HN202d" + - "\nqFYIKOm0WrrQO6CAvAAaeOvkdy2kuDC8tUoJ4N9TydyHMKQvseKSHYsLvJJRH9XM" + - "\n5FqD9OSPFhFHABEBAAGJAjYEGAEIACACGwwWIQRlU34hLcGQJa047bJ4FhcxnOMR" + - "\nxAUCW1X6FAAKCRB4FhcxnOMRxECYEACaDw6JFqgdHI5pH7pkRae9Vif63Ot7XEmS" + - "\nxUGpoj/qbzZy+cm9lEfcOHC9cihFa0EwG1WpFUyuzl8z8f6nulJ2vi5unC007D8y" + - "\nT5kwL7vaQ+gd1JtcPny3J6qRaNxY2KhlkkLFYFLSnpt/ye0S/HuCH7RjG1lYHga9" + - "\nKULqYB+pdpFmfmPy6ogpHHaKQuYf/y9yRyylml/rjdRTWOzCa8L6y2y63y8mkcEZ" + - "\nvUJ/WWAzCmka/w43uv3fPrui7wzMLDeCkSEomboax9bgTqqt9/ZNP9H0ja7XUNIj" + - "\nHT8zn+h8YkjCHAupHRIltx7ZPaisZiz6RA/iwIE+rtkrYEOyCLsaHT+iXMsPFXLY" + - "\nPMgR1usJqg2M3CzVdGmjXl0/ZZzo4a+wKzkRCnA1K4ZsJ/Py24QfqNIw8Jysab86" + - "\nSVSpGq3YbDIuKI/6I5CSL36WlfDcsvypr6MvE7X59otGj+1qzmlHuscL95EchJAN" + - "\nRJbTW1/IHw2VMqQhRMTBKftrMediC/xP9xtl4U3D8Wybk+ghQdwuW9x3SW9H8Dol" + - "\ngzBI3fdHTevZCuJJFdXhmEyEa2eEcRioc/3zaAHGThE+8SnsA8IuuqALT43w3b14" + - "\nLizcmRWQcBnH5+PlhXYf3/nAlEnXD6TCZrOGlNCzLTWQTBLg1kw97xS/PQyCg24X" + - "\nsnHSt1DRJA==" + - "\n=I9l9" + - "\n-----END PGP PUBLIC KEY BLOCK-----"; - - let minKey = cApi.sync(cApi.getStrippedKey(pubKey)); - let got = btoa(String.fromCharCode.apply(null, minKey)); - Assert.equal(got.substr(0, 127), "xsFNBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWetJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8"); - Assert.equal(got.substr(-127), "QriSRXV4ZhMhGtnhHEYqHP982gBxk4RPvEp7APCLrqgC0+N8N29eC4s3JkVkHAZx+fj5YV2H9/5wJRJ1w+kwmazhpTQsy01kEwS4NZMPe8Uvz0MgoNuF7Jx0rdQ0SQ="); - Assert.equal(got.length, 3080); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/os-test.js enigmail-2.2.4/package/tests/os-test.js --- enigmail-2.1.6+ds1/package/tests/os-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/os-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global TestHelper: false, withEnvironment: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, component: false, withTestGpgHome: false, osUtils: false */ - -testing("os.jsm"); /*global EnigmailOS: false, operatingSystem: true, isMac: false, isDosLike: false, isWin32: false */ - -var EnigmailExecution = component("enigmail/execution.jsm").EnigmailExecution; - -function withOS(os, f) { - return function() { - const oldOs = operatingSystem; - operatingSystem = os; - try { - f(); - } finally { - operatingSystem = oldOs; - } - }; -} - -test(withOS("Darwin", function shouldReturnTrueWhenSystemIsMac() { - Assert.equal(isMac(), true); -})); - -test(withOS("Linux", function shouldReturnFalseWhenSystemIsLinux() { - Assert.equal(isMac(), false); -})); - -test(withOS("Linux", function shouldReturnFalseWhenSystemIsLinux() { - Assert.equal(isWin32(), false); -})); - -test(withOS("WINNT", function shouldReturnTrueWhenSystemIsWin32() { - Assert.equal(isWin32(), true); -})); - -test(withOS("OS2", function shouldBeDosLikeWhenSystemIsWindows() { - Assert.equal(isDosLike(), true); -})); - -test(withOS("WINNT", function shouldBeDosLikeWhenSystemIsWindows32() { - Assert.equal(isDosLike(), true); -})); - -test(withOS("Darwin", function shouldNotBeDosLikeWhenSystemIsMac() { - Assert.equal(isDosLike(), false); -})); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/pEp-test.js enigmail-2.2.4/package/tests/pEp-test.js --- enigmail-2.1.6+ds1/package/tests/pEp-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/pEp-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global dump: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("pEp.jsm"); /*global EnigmailpEp: false */ -var EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - - -test(withTestGpgHome(withEnigmail(function shouldEncryptMessage() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - const errorMsgObj = {}; - const importedKeysObj = {}; - EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - - do_test_pending(); - //EnigmailpEp.encryptMessage("strike.devtest@gmail.com", ["strike.devtest@gmail.com"], "Hello", "Test message", 1). - EnigmailpEp.encryptMessage("strike.devtest@gmail.com", ["strike.devtest@gmail.com"], "Hello", { - "longmsg": "Test message" - }, 1). - then(function _encryptedMessage(a) { - let txt = a.result[0].longmsg; - Assert.equal("-----BEGIN PGP MESSAGE-----", txt.substr(0, 27)); - - return EnigmailpEp.decryptMessage(txt, "strike.devtest@gmail.com"); - }). - then(function _decryptedMessage(b) { - let txt = b.result[3].longmsg; - Assert.equal("Subject: Hello\n\nTest message", txt.replace(/\r\n/g, "\n")); - - return EnigmailpEp.getPepVersion(); - }). - then(function _f(a) { - Assert.ok(a && a.length > 0); - - return EnigmailpEp.setIdentity("strike.devtest@gmail.com", "Enigmail-UnitTest-User", "anonymous strike", "65537E212DC19025AD38EDB2781617319CE311C4"); - }). - then(function _f(a) { - Assert.equal(0, a.result[0].status); - - return EnigmailpEp.getIdentity({ - address: "strike.devtest@gmail.com" - }); - }). - then(function _f(a) { - Assert.equal("65537E212DC19025AD38EDB2781617319CE311C4", a.result[0].fpr); - - return EnigmailpEp.getIdentityRating("strike.devtest@gmail.com", "Enigmail-UnitTest-User"); - }). - then(function _f(a) { - - Assert.equal(6, a.result[0].color); - return EnigmailpEp.getTrustWords("65537E212DC19025AD38EDB2781617319CE311C4", "en", 6); - }). - then(function _f(a) { - Assert.equal("KATINKA NETTLE CULTIVATION PREFACE STANDARDIZE CHIMERA ", a.result[1]); - do_test_finished(); - }). - catch(function _f(t) { - Assert.equal("", "Error: " + t.code); - do_test_finished(); - }); -}))); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/persistentCrypto-test.js enigmail-2.2.4/package/tests/persistentCrypto-test.js --- enigmail-2.1.6+ds1/package/tests/persistentCrypto-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/persistentCrypto-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,236 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, component: false, withTestGpgHome: false, withEnigmail: false */ -TestHelper.loadDirectly("tests/mailHelper.js"); /*global MailHelper: false */ - -testing("persistentCrypto.jsm"); /*global EnigmailPersistentCrypto: false, EnigmailMime: false */ -var EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; -/*global MsgHdrToMimeMessage: false, MimeMessage: false, MimeContainer: false, EnigmailStreams: false, - EnigmailCompat: false */ - -const inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - -const copyListener = { - QueryInterface: function(iid) { - if (iid.equals(Ci.nsIMsgCopyServiceListener) || iid.equals(Ci.nsISupports)) { - return this; - } - throw Components.results.NS_NOINTERFACE; - }, - GetMessageId: function(messageId) {}, - OnProgress: function(progress, progressMax) {}, - OnStartCopy: function() {}, - SetMessageKey: function(key) {} -}; - - -test(withTestGpgHome(withEnigmail(function messageIsCopiedToNewDir() { - loadSecretKey(); - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - const sourceFolder = MailHelper.createMailFolder("source-box"); - MailHelper.loadEmailToMailFolder("resources/encrypted-email.eml", sourceFolder); - - const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - const targetFolder = MailHelper.createMailFolder("target-box"); - const move = false; - - copyListener.OnStopCopy = function(statusCode) { - Assert.equal(targetFolder.getTotalMessages(false), 1); - Assert.equal(sourceFolder.getTotalMessages(false), 1); - inspector.exitNestedEventLoop(); - }; - EnigmailPersistentCrypto.dispatchMessages([header], targetFolder.URI, copyListener, move); - inspector.enterNestedEventLoop(0); - -}))); - -test(withTestGpgHome(withEnigmail(function messageIsMovedToNewDir() { - loadSecretKey(); - MailHelper.cleanMailFolder(MailHelper.rootFolder); - const sourceFolder = MailHelper.createMailFolder("source-box"); - MailHelper.loadEmailToMailFolder("resources/encrypted-email.eml", sourceFolder); - - const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - const targetFolder = MailHelper.createMailFolder("target-box"); - const move = true; - EnigmailPersistentCrypto.dispatchMessages([header], targetFolder.URI, copyListener, move); - inspector.enterNestedEventLoop(0); - -}))); - -test(withTestGpgHome(withEnigmail(function messageIsMovedAndDecrypted() { - loadSecretKey(); - MailHelper.cleanMailFolder(MailHelper.rootFolder); - const sourceFolder = MailHelper.createMailFolder("source-box"); - MailHelper.loadEmailToMailFolder("resources/encrypted-pgpmime-email.eml", sourceFolder); - - const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - const targetFolder = MailHelper.createMailFolder("target-box"); - const move = true; - copyListener.OnStopCopy = function(statusCode) { - Assert.equal(targetFolder.getTotalMessages(false), 1); - inspector.exitNestedEventLoop(); - }; - - EnigmailPersistentCrypto.dispatchMessages([header], targetFolder.URI, copyListener, move); - inspector.enterNestedEventLoop(0); - - const dispatchedHeader = MailHelper.fetchFirstMessageHeaderIn(targetFolder); - Assert.ok(dispatchedHeader !== null); - - let msgUriSpec = dispatchedHeader.folder.getUriForMsg(dispatchedHeader); - let urlObj = EnigmailCompat.getUrlFromUriSpec(msgUriSpec); - - do_test_pending(); - EnigmailMime.getMimeTreeFromUrl( - urlObj.spec, - true, - function(mimeTree) { - Assert.equal(mimeTree.subParts.length, 1); - if (mimeTree.subParts.length > 0) { - Assert.assertContains(mimeTree.subParts[0].body, "This message is encrypted"); - } - do_test_finished(); - }, - false - ); -}))); - - -test(withTestGpgHome(withEnigmail(function messageWithAttachemntIsMovedAndDecrypted() { - loadSecretKey(); - loadPublicKey(); - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - const sourceFolder = MailHelper.createMailFolder("source-box"); - MailHelper.loadEmailToMailFolder("resources/encrypted-email-with-attachment.eml", sourceFolder); - - const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - const targetFolder = MailHelper.createMailFolder("target-box"); - const move = true; - copyListener.OnStopCopy = function(statusCode) { - inspector.exitNestedEventLoop(); - }; - EnigmailPersistentCrypto.dispatchMessages([header], targetFolder.URI, copyListener, move); - inspector.enterNestedEventLoop(0); - - const dispatchedHeader = MailHelper.fetchFirstMessageHeaderIn(targetFolder); - Assert.ok(dispatchedHeader !== null); - - let msgUriSpec = dispatchedHeader.folder.getUriForMsg(dispatchedHeader); - let urlObj = EnigmailCompat.getUrlFromUriSpec(msgUriSpec); - - do_test_pending(); - EnigmailMime.getMimeTreeFromUrl( - urlObj.spec, - true, - function(mimeTree) { - Assert.assertContains(mimeTree.subParts[0].body, "This is encrypted"); - Assert.equal(mimeTree.subParts.length, 2); - if (mimeTree.subParts.length >= 2) { - Assert.assertContains(mimeTree.subParts[1].body, "This is an attachment."); - } - do_test_finished(); - }, - false - ); -}))); - -test(withTestGpgHome(withEnigmail(function messageWithAttachemntIsMovedAndReEncrypted() { - loadSecretKey(); - loadPublicKey(); - MailHelper.cleanMailFolder(MailHelper.getRootFolder()); - const sourceFolder = MailHelper.createMailFolder("source-box"); - MailHelper.loadEmailToMailFolder("resources/encrypted-email-with-attachment.eml", sourceFolder); - - const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder); - const targetFolder = MailHelper.createMailFolder("target-box"); - const move = true; - copyListener.OnStopCopy = function(statusCode) { - inspector.exitNestedEventLoop(); - }; - - let keyObj = EnigmailKeyRing.getKeyById("0x65537E212DC19025AD38EDB2781617319CE311C4"); - EnigmailPersistentCrypto.dispatchMessages([header], targetFolder.URI, copyListener, move, keyObj); - inspector.enterNestedEventLoop(0); - - const dispatchedHeader = MailHelper.fetchFirstMessageHeaderIn(targetFolder); - Assert.ok(dispatchedHeader !== null); - - let msgUriSpec = dispatchedHeader.folder.getUriForMsg(dispatchedHeader); - let urlObj = EnigmailCompat.getUrlFromUriSpec(msgUriSpec); - - do_test_pending(); - EnigmailMime.getMimeTreeFromUrl( - urlObj.spec, - true, - function(mimeTree) { - Assert.assertContains(mimeTree.headers._rawHeaders.get("content-type")[0], "multipart/encrypted"); - Assert.assertContains(mimeTree.subParts[0].body, "Version: 1"); - Assert.equal(mimeTree.subParts.length, 2); - if (mimeTree.subParts.length >= 2) { - Assert.assertContains(mimeTree.subParts[1].body, "---BEGIN PGP MESSAGE---"); - } - do_test_finished(); - }, - false - ); -}))); - -var loadSecretKey = function() { - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(secretKey, [], {}); -}; - -var loadPublicKey = function() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - EnigmailKeyRing.importKeyFromFile(publicKey, [], {}); -}; - -function stringFromUrl(url) { - const inspector = Cc["@mozilla.org/jsinspector;1"].getService(Ci.nsIJSInspector); - let result = null; - const p = new Promise(function(resolve, reject) { - const iOService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - const uri = iOService.newURI(url, null, null); - const attChannel = EnigmailStreams.createChannel(uri); - const listener = EnigmailStreams.newStringStreamListener(function(data) { - result = data; - inspector.exitNestedEventLoop(); - resolve(); - }); - attChannel.asyncOpen(listener, uri); - }); - - if (!result) { - inspector.enterNestedEventLoop({ - value: 0 - }); - } - return result; -} - -function extractAttachment(att) { - const name = att.name; - const body = stringFromUrl(att.url); - const isEncrypted = att.isEncrypted; - return { - name: name, - body: body, - isEncrypted: isEncrypted - }; -} - -function extractAttachments(msg) { - const result = []; - for (let i = 0; i < msg.allAttachments.length; i++) { - result.push(extractAttachment(msg.allAttachments[i])); - } - return result; -} diff -Nru enigmail-2.1.6+ds1/package/tests/pinentry-auto enigmail-2.2.4/package/tests/pinentry-auto --- enigmail-2.1.6+ds1/package/tests/pinentry-auto 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/pinentry-auto 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -#!/bin/bash - -# 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 https://mozilla.org/MPL/2.0/. - -# Emulates pinentry programs, with a static PIN -# This can be used to bypass PIN requirement while using GnuPG/scdaemon -# and automation. Another solution is to use PSCS/OpenSC. - -# Obviously, this is a hack, even if it's pretty damn clean. -# This means, do not use this if you do not know what you are doing. - -# If you don't know what to put here, -# you probably shouldn't be using this. -# 123456 is the default for OpenPGP smartcards -USER_PIN=STRIKEfreedom@Qu1to - - -function tolower() -{ - echo $1 | tr '[A-Z]' '[a-z]' -} - -function reply_ok() -{ - echo "OK $*" -} - -function reply_d() -{ - echo "D $*" - echo "OK" -} - -function error() -{ - echo "ERR 83886355 unknown command" -} - -function main() -{ - echo "OK Your orders please" - while read reply; do - reply=$(tolower "$reply") - case $reply in - "getpin") - reply_d $USER_PIN - ;; - "bye") - reply_ok "closing connection" - break - ;; - "getinfo pid") - reply_d $BASHPID - ;; - *) - # This generally includes OPTION, SETDESC, SETPROMPT - # i.e. things we don't care for if we're not displaying - # a prompt - reply_ok - ;; - esac - done -} - -main - -exit 0 diff -Nru enigmail-2.1.6+ds1/package/tests/pinentry-auto.c enigmail-2.2.4/package/tests/pinentry-auto.c --- enigmail-2.1.6+ds1/package/tests/pinentry-auto.c 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/pinentry-auto.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,164 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -// Emulates pinentry programs, with a static PIN -// This can be used to bypass PIN requirement while using GnuPG/scdaemon -// and automation. Another solution is to use PSCS/OpenSC. - -// Obviously, this is a hack, even if it's pretty damn clean. -// This means, do not use this if you do not know what you are doing. - -// This version of pinentry-auto is adapted for use on Windows, where -// shell scripts can't be used as replacement for pinentry - -#include -#include -#include - -#define USER_PIN "STRIKEfreedom@Qu1to" - -size_t getline(char **lineptr, size_t *n, FILE *stream) { - char *bufptr = NULL; - char *p = bufptr; - size_t size; - int c; - - if (lineptr == NULL) { - return -1; - } - if (stream == NULL) { - return -1; - } - if (n == NULL) { - return -1; - } - bufptr = *lineptr; - size = *n; - - c = fgetc(stream); - if (c == EOF) { - return -1; - } - if (bufptr == NULL) { - bufptr = malloc(128); - if (bufptr == NULL) { - return -1; - } - size = 128; - } - p = bufptr; - while(c != EOF) { - if ((p - bufptr) > (size - 1)) { - size = size + 128; - bufptr = realloc(bufptr, size); - if (bufptr == NULL) { - return -1; - } - } - *p++ = c; - if (c == '\n') { - break; - } - c = fgetc(stream); - } - - *p++ = '\0'; - *lineptr = bufptr; - *n = size; - - return p - bufptr - 1; -} - -void toLowerCase(char* str) { - int i; - - for (i = 0; i < strlen(str); i++) { - if (str[i] >= 'A' && str[i] <= 'Z') { - str[i] = str[i] + 32; - } - } -} - -// remove trailing \r and \n from a string -void chomp(char* str) { - int i; - for (i = strlen(str) - 1; i >= 0; i-- ) { - if (str[i] == '\n' || str[i] == '\r') { - str[i] = 0; - } - else { - return; - } - } - -} - -void reply_d(char* str) -{ - printf("D %s\n", str); - printf("OK\n"); - fflush(stdout); -} - -void reply_pid() -{ - printf("D %d\n", getpid()); - printf("OK\n"); - fflush(stdout); -} - - -void reply_ok(char* str) -{ - printf("OK %s\n", str); - fflush(stdout); -} - -void error() -{ - printf("ERR 83886355 unknown command\n"); - fflush(stdout); - -} - - -int main( ) { - - printf("OK Your orders please\n"); - fflush(stdout); - - char *line = NULL; - size_t size; - - int l = getline(&line, &size, stdin); - - while ( l != -1) { - - chomp(line); - toLowerCase(line); - - if (strcmp(line, "getpin") == 0) { - reply_d(USER_PIN); - } - else if (strcmp(line, "bye") == 0) { - reply_ok("closing connection"); - break; - } - else if (strcmp(line, "getinfo pid") == 0) { - reply_pid(); - } - else { - // This generally includes OPTION, SETDESC, SETPROMPT - // i.e. things we don't care for if we're not displaying - // a prompt - reply_ok(""); - } - - l = getline(&line, &size, stdin); - } - - return 0; -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/prefs-test.js enigmail-2.2.4/package/tests/prefs-test.js --- enigmail-2.1.6+ds1/package/tests/prefs-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/prefs-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("prefs.jsm"); /*global EnigmailPrefs: false */ - -test(function shouldSetGetPreference() { - const prefName = "mypref"; - EnigmailPrefs.setPref(prefName, "yourpref"); - Assert.equal("yourpref", EnigmailPrefs.getPref(prefName)); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/resources/attachment.txt enigmail-2.2.4/package/tests/resources/attachment.txt --- enigmail-2.1.6+ds1/package/tests/resources/attachment.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/attachment.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -This is an attachment. diff -Nru enigmail-2.1.6+ds1/package/tests/resources/attachment.txt.asc enigmail-2.2.4/package/tests/resources/attachment.txt.asc --- enigmail-2.1.6+ds1/package/tests/resources/attachment.txt.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/attachment.txt.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAlt7sCoACgkQeBYXMZzj -EcSvCw/+LqstZ5wpMhhkxAf0EQQYGrpcp4xWqfBZ4plfJaDcaQjMGQkAtGFN6taS -aW5ePfVNwOm4baBUqNT14gEWEDJUFGLpjmaj4iUd2IRxKp4cxIWzjG+OKsZTiY3R -KNG3q6VeoOfUnl6odLwyCVjkcipyb9InSXKR9oLzDMVoAk9J8EgXF6VKH9wpcPOl -E5mZk6XvNGgqD/qJ3auvptPA5pkcB+9zYVNqpb9cSSdh39i3wdrUNEnuWE4ES6O7 -RCsZNd9rc7522B60Z+prtRQBK1AKA3xxcVh72Ln9bem9jRjx5vp/VoNlB7z7QvWR -rX+EHyqtU8BcUdWizgSavGBhhK+C2OnpCZ8HtpgG8lqrtnZZuouuCK2NvnT5Hxrt -xMBbSWI+t9I4RDPUE7drGSO7OE2hHlW3tuQ40XkDjc5voKLNBFCnldko7C5Bq1Ky -0Qx7UM/XgFvQe6OAKgDtDCTcdp7Rj3TyoVshx+BwVhIqWQaxw8TxKgkxYJEpxC3T -+Vd0EZIMJWl7+vMn+XPbv2iSrbWLtv5w8p9rhGSenCUO9K940GwOG9tigA20STRf -vbIg2aPsE2VMnQoaeBoTm9QyL7VGbM9vP+rEd0O3ofyAggsZtuRQvtAVncXbJ/c5 -I2/7gi2rOy6XhB/ih7GPSpJVKer57dfEt5DXornEHp5RojAViZI= -=8FVl ------END PGP SIGNATURE----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/autocrypt-setup-message-2.eml enigmail-2.2.4/package/tests/resources/autocrypt-setup-message-2.eml --- enigmail-2.1.6+ds1/package/tests/resources/autocrypt-setup-message-2.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/autocrypt-setup-message-2.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,185 +0,0 @@ -Message-ID: -Date: Mon, 25 Jun 2018 06:39:40 -0700 (PDT) -To: user1@enigmail-test.net -From: user1@enigmail-test.net -Autocrypt-Setup-Message: v1 -Subject: Autocrypt Setup Message -Content-type: multipart/mixed; boundary="jivYSmTJInVZOk5Hp5lVtlLRapB6zmr13" - ---jivYSmTJInVZOk5Hp5lVtlLRapB6zmr13 -Content-Type: text/plain - -This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. - -To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. - -You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. ---jivYSmTJInVZOk5Hp5lVtlLRapB6zmr13 -Content-Type: application/autocrypt-setup -Content-Disposition: attachment; filename="autocrypt-setup-message.html" - - -

This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code presented on your old device, and then import the key from it onto your keyring.

-
------BEGIN PGP MESSAGE-----
-Passphrase-Format: numeric9x4
-Passphrase-Begin: 64
-
-wy4ECQMI6ej4ugNbBjdgkTH0mD4mcZFuDaVSQtx5QbpVtDB/Je3DPlolhzt0
-jX5H0toCAVAP1o+J4Yzj+RyaqeGk/COsQSVB1/BkCQ0nqtYiwZJH9m7UTIat
-bpAgC7PKoAOaNS42nZy7I3a3JZ+10Q57Pmk1H7whGT1RkLykUVTQyXiNTt4Y
-gkW2i7Trfy0DQv3Xm80AFIZV15qRm0fJ6UPLy+0nAeUyas7FaxeuTi/BduM8
-TQznD6ZkeIKwn4XIz1N/nSHFDjDDixV5xrDxPImVe9ushxxl43YnLj8toO5m
-hQtIKE7pBLeiR4Qt/yBSKLIZ0vXrjSOZ5kNHRp32HjVwYcaHNle1DYuR4La9
-IDwRw84d5R1U5JLSd9luBES+pMvGsn16GtiICMVOWsBl+0WQxd+xlxBxtTj1
-eOvttmY10PB8MYbhLAg5p4JjRgOg2oM4p6PdSX7iYMlAYu2w2XHhL80VjJqP
-4jbNOGgriGLDFuRBBxaRVTdyZdPxdyZSAfzmopCo/wv/s9vvSJL2kGWyyRJP
-VB4i5+5528WsjpynzUBpOk4i8G6pzoGIlPlR5f+03f2+SCeVoDGCOfOeAc9r
-2DS4oTQAZABKdPWVLEFmLbemUvbwQfvNEYwd+3tXtQ37WBiEGuHfOR3DIsFe
-lg0GM2jaENnGB9meaAfC7p551uL+NdPEs1OGXINUWFKHe5yCwEbGFuyN4enb
-V75vqzOgp2WOy+9TJvlYI0gpqUz2qWP2rwELzxjerhCwtbHYhq40grc1BpGa
-OwPZTFiHrSeiK/yo39DzTGl9UmG4C/I6T3oZh8Quedtr2w3xrPyYp96lcCja
-ntG3sAS7pwa4I9G00J3yA5wB57rNg1dCqSTH8e4s8uhEs2Bbm3V0qwnmw480
-w1V1pNXaERL+igcn3Ka/wb+lwONu0YVAcUo8UhnU8RDyaWNvzU2kchQeGlwr
-nSu2dKk1W/W4lvLeyCrL9pJl8KR7QOdgN77J0YyyFq8JC0OTq+18J/4ryE+j
-Pxm2tqPu2M3DET+W/+GOb1vt+VgzGF5Tp6WHOhg0d5uXyyBp8DWSbVKcKW8U
-G+PikB8hykupRVYEJXlXbUPNNyFsVk+nyK/0fj+WwYYvwLE6jnEwJjzjWXEe
-ls0CQK36ecCcUr6FocANXNR1LiPFjkZjefA/PCz/HrbtT1Hl6n5Rmtyt0Ziv
-hAqOcVWl9mCUMO4+ECahDsGkDEutuAXTnRzNl9WIrNtke+GpyvAKTh3zV01F
-IZVvORx9/9gjAQgn5EnqzMuKRA8NZazjBJDxluF0gfsG7Ghp71Ik8g8T7idz
-ukghxPDeEZIP8Ct5iH2JyX8i7W5PmMgQAOYFqceJ+QSK+VPM5JMHZIdQa4Aj
-V8LuyVP7V/V8gtxqR2b4ikkwY1xBBBw0cMB9CdR2QbybU27Yd3euAZiUM7UH
-bJvWju4xLbf9wDUNvbdp00FFBYnKwCAz4XNITjbzaC8FuITbndJDr9t2fITZ
-dpKH+kYxACfm+DMIueGSm+lN0navZ8wpIhLIkcIoZCWUdRLi6V1pKxigda7b
-6JBhm9lk7n6BvqamK7ySv/R7FbYGfZmVYH4zgzgtqA1YEpRb2lSzWq12226L
-87xTt6y81oSiiA405mcgV9RD8D0IX7X8TNDHmSEAydMGo+PokX7HNPh3vK2o
-EVcgIL9ewwJZy7mIy13DZcGSKOoxILbkLrZy8NO2VuismJ5U6p2I9QC8FNM1
-6IfZpGpRSNRo3vdOVr4Qtx47MaY9jGEfzO0wr+WGNElrI7MtMBh3UbJfXUa5
-7DluEbQxV5fCNd/IsK9yTXd78La3scn9kS3gFNkGfyCgxLeeFhCUGCNVAGtG
-fkfdvE32Xa/IeHhhdESAEb5TYkxGp1Mf8HDc68SYfGEIY7epcK4II2frrgi5
-6duRJqUlPBwkhi2W0g5F4sFr/5u2FnjeBHVKY/sxt826nCY7ddAsQZP2ajMe
-8xRcQGAOpWd6BE00wQIpJcPM06GT1gl/BZgbVOlJ0rT/QZlxNsyJumYcjJ1Y
-1bT79faHwzSE6Dtp2DyDPEPKxRytMRsLT57EPjYwWJVvy3tT4e4xlorSM6tm
-o6+oHZhP3LYpYpIMGkC22YIRllISHECo6/KkTG8CJOGfcRjyclBvM7ovDYtE
-sBr//nZul5NrxJUKn6l2X1d4AN7nS87Tik+bbMlU1Y/m0LOpEYELbLQx7HbM
-qatrC3ZTQH8t1Ps1h1dzw6+NIdqNwrn6RsFkiXMvW6PucIPvtX/LtCmsjNHK
-skfKlGOu/4eHUpPupXFNfijHpWc8Yz84Xf/PqYdiyQjHjiIhLVxMMkHz7xsf
-ZVr4VoNK0qxgaMG33f8y4x/fjhxorMJrheZ/tuc4q4OyCwBbF1MqaQp5je7P
-c8YrIYSN7u050rrE/LEFN07cITmgk0MU1CkRaraud1umf2tTxgOcnoneQzfu
-9j8rx9lOeRjXCGD/XlhnaZBkpxWeZ9ZiZBBxxHysdE7GBcbf7kTx1vX/aejc
-3bRS1nUdOVAZ5MpATP+0DmnO1Xp1+cR1MSgo5NkN3yndKpjmK5qzgxdw3mg+
-uuwiOvC4f7k8p7ZVJqj4nJjZDoO9X+2cDmVMB9n/V30wTfmFeiykVNSR830T
-uYJwK94eqnCVyw5jDPPu3m0d65dkMPcRNhkY7sIARV0LEqWHs08pAdkElnMw
-z2RzuXK657Nn+vBxZktSG8iiRH6e+jWk9t3VSmee6Ac9+6xDH/o1oMlSGnto
-bMGu56P83DcRVkS89PdbTPie7UaTTgQm5vFpSNXObEwt3q+NX3H81HwGE5N5
-+Ava9YevRsoHoy23X+xv1IBskDkJ3qXubhNOTYwD7TccEuetqd/hBvaen94J
-5FnzR3BXxGC88YyMBq0uS0ADt7zR/Z4TXRFPApECt9nQGmNgyF7TPf5YGD0U
-e5S2w92ASPg7T78Q+hCF2yqgsF6NSmfCcVNma3KBFSB8FqPnNfyVRbkdssA/
-Z6wJeiRJdZRztB3EphAGTMvS7lMJr4d1ALWRCsWVFI+rM6AExdkic7/M2XMG
-dasBpczN7DLCIavJDL0JryGv9hqAyV/znShkmNqYr6urTUjP2Gx5PknS2lk6
-hwGRNR3JzV/JJ2gSm5UMMR70GdT2z1Hv1h/2zZEBJGfVeHsBRV/ocRBTA7su
-rphcsOJC2GvH8a+vrJJzL60z/JLbBqLekh3NSllhJlXrW7bo6eODWRH6ooMP
-SvW9Po1bC6ovzANbIdjaXg4pGQLr/APpipmToOiSdqqjMZuRdxlQ0y508bvK
-sO+2MGNgNh59HbUkJ5Js+sem1yThd/opDtg6sEqOWElBvHhDMKIaQVGEskWw
-kyBVsc3LUK2gT2+SX9NbOzq91ZoCVfSfMKlJHt1635OBT8fG4UeuQyfbHMVo
-4Ad3taqK0l4PO1CLkFbZKx1n+GZIOtTrXcFI9oDZaZS7yq26wtuRbHXyo2ch
-EUveLCwUccw3kfZFcnWRPynnBVg+gDzVJxAeQurmwgYuldOQQWBZ964aaWIP
-sPrvTmTRDdbf5iWgDukW4v+qYNvVpWSuAXDBiC3Xfgg4J7F+QVGzrBXctSNn
-rjg3VguxkGm1O1p3WLsxr1HOW3FqLHHs4DZ6JCunmr/oaOanNtl06cKZZRpE
-5OQyKiWzEqyhbYG8XJ1dgn6O649WcCMRZ548aUfIvEMcNI46rP1Ot51rFp6x
-oDeFTLnFf4Uzk6P2RyV5q2kh+JL4OFYOKn0T1GTjb0zUG5NhuYVfMfVTwF1J
-zkYsYlw9F5AH/NvWgioR0HoJ/cIxsa+E1JVdU2skFOriUUxspGg5zJFHR/ne
-Ps8g6dxb95p33Ojr8DPu6KLMo0gRfJvZv1CvHhk08Smfwhbvx9AtULr1WNeX
-e/mBooSUssLyxoQrF85XyPVbvT2zPN0ZtrKSCauIDPv/gYcxMn5ppnD7ckqi
-ik1EJH2CRAjmGKhyvFxFrxtXHVb8wVZUawsHnBeuZ+ZqGeO10SvH9OHnttCO
-nKKmvRYAeKSbjnzK4GyRawUkUtw7F31fjFvNw8rkxY76uXajscJoguqKRi/Q
-W+cvOP8BiskIpoh9oUNf82kp+K5wanEkdWE8wmG3C5KzqTtjTCXH1uFWHBKM
-lg63Q8dnP1qdKfmckZotjFfM4DOrEC4j4baGFKLbko4Er1t5D5gzeSni7xRU
-hbhEH+H5gWt0LMbBQf1dpki1bJcrqJT5G7HMxwpcPtbOeuRiv5vRr2d4yAyV
-+2PaHBNZlJKCMW1xm3IJ7xB3oZBK29njM9hdf+MJhMrYOpgIwvp99BCXWfX8
-zlFBi+sx2drGtVL9ZN8m3hVR2hqjiw6b/0t+v1P5SZoh0B4vi1cPmSq2y/xK
-8J7dwH0TVy4eHd1U5lKX4mu3n7rt9tr2wf6PG6Bl5AdgYJZJduMunprI+5Ht
-SMvpl50GJb3Ol4Wdr1E0jktXON6f9mZEnvfJSkbKtexGq4ShmzggHuRxE9s3
-HTEjhLW25N0R6RcemMih+wW0Gqo3lGp4P1YvSW4JAVHiRB02K4SocAHJgdnJ
-/MQNi7AnowZmKUFQYG7OWZB8whAUp7YOUeyElaHofZcMKDI6e//7L4WrZ+eg
-txgyCj3HD2uE3ePx1Uf/Xr2DQsi1iuFBcCAPlkIpGmnUVdca+X9++NcBfz6V
-R2BabBF4uAZK6EEa7jIq0PauMYmf8tuUl+5ZGKsil4NuqJeUJqSPVSh4IwVI
-kXCZWys8+ZMy6wQWanzSt+drHgMRymXZZImAj8vYyrmOcPn2I5Bv1W0jA/It
-+mj6FlfA0CIwjeWwjexCPXKb7V1/DYcDWAF8iY60vMlErlDfwN7BqJIhwtgT
-ZzrI46getMc4Ntnqt07FfPCxCFasBzRI2mnWC5wENthRfGmPh9UdOvwv/Eo6
-bEHewq/64JZVK7jucm7PzhMd/2fua0CVghpEb54Ec3pKkdfyhJbXxjNhrHQU
-xf0iE1syyJgE/7z229iFNAa+fl6/R4j8PJpsq+6cSzm8SZDijp8ua14JN7db
-+Zv9ySMlmlAQmXnj55mqUO0eh3zfwW7B9YgUfFfhr/YRL+9sdqZAxaq5eLlV
-D4baZW5B7Bu7QiPjUW/gnKOxSBvTajrhq01TwhhyaWAdMRcz+8V1dVX5DRTY
-EEr331NKlMWfVFtUYdZOaTPG/3yY7PMAPneBHaKqxyaSn4RMByYfUNooz2TW
-OGAH8rlHQeLLX8pBTfRrdBnHxKjZw0SCBkVTbzqK0ucgmLz2rhjNUKrDCy8L
-XY1Pb6GJv2Di/dXulSzML5GqOPrRcyid9iVoXSlK7PT3kDnzhdK/iBLl70aP
-qSvZhrzYGAeYS3I37anDhP3exwNFcQYbnXmpgZ4xVBLeiRDQMTeltN+pWpkI
-FmkuNYhPqjpBmoR2RzDjN6lLqLUHKlwNBgUA0068ei+SL6stD2/E6zbwr3lB
-FmJNDpnSUkwzCnZzn0brah3F6spqyMzpBPdtATJzUMqdFF8bYJLsMItTQP6d
-MHMKg/35Mxn5rt1yg/wIzXz6K/XiSxPWI/jGh7FkYLgxGf5tMnubhngjWajT
-QiDKAKa2p5+TK81OPr04LkketS1GrQYWsEjsBcMEFKAdDCZW14naWbV00AKd
-RXHIywUaSqSPh7y8mbU5Nd6mhJPJnmr+Irfs5yQ5RkVAVYBvdsx8VzsK7E8s
-HbP70c2KOOSkvH0sLkNtWke3YB4fyDZ29R4zBSxkRLb18NQkFEw4zXHBfRYL
-d/EIPN2E3m4PGw8acqMZi0JF2893oA1Sqh4yaIBRqjikffx6s4i8KIuIZiXr
-G1kXgU4nqf7u0CqqEOcuioJP6KpIgek/R1cG9dBocK/zg5QjucPpje+8KQ+l
-XHSbx0bw3ViEYg6v8/fPLXar+oAwkAvWsOytOTQ7UcZ8WKK8PSGqD6EOPbHZ
-fOqvKv/aF+ErHEmRHHBBzF8sAStFa4NE9J+p6/+7b96FS3VtIZdZaFM8J8dm
-MZNbpOHKzL3BCeV0bYPGd/seFCNxXdb4E3O/O9CoITAKk25YWG7RouRPz5H4
-CPcEiEJAuXugCcsEGFVCGK8OVPGo0Bh6pKKMC2fgC1fUusLAU4usH5TxqslT
-53WnOYd1nuo7wbBEqQM3/B465450SqCRGj0XJwWwJIzaU/je8kOtw9GE29M/
-BRdrVLczi0H+m7e2jjPGSuAzKiCUcZ8e18nv1VhguvARAeABA5zk3ezdXHz3
-aBQS6jYOLWYn2zQxhyDhVSo3wB7R551MzbPasNDSRoI+gxHGrOlMAh6QX2g3
-J3ib5Kb4Pp0lpxyvoHlOKMqKp6+iJZQbuzVgNh7cqnJsUe6N68AUm1k5CAZU
-4jWKxLOJk/7jLab0UM0zCZl6KpuKkFBd3+iFkOpO4+gEnGm7gvPR8VXdMkbH
-wVXXD02og23KgppVw3CxAxPm9+2zEyncgldBiNYQjk2KeWgjXL6dhPGHdJEu
-CUwPwXAfh1KMLCGzkg3m+hU2rkpxiZfxioQHRtm1USViq+fWjs1OX+RYNccp
-2e87li2F3x1m6UjFLlvA9btSe38E92zumshvkRPSRGT8u1frqVjD2CCyFSvT
-0K/fwIX5Y4wJ9fCL2+XMtS06bx721Vq4rtVx9qbQjrdpZEfeAxuolqsfrQ3t
-fFDaBsMKsAwfv2bHGz54mI4w4vg0UjMnSe0ZUkO8K+FO0xlwdzzOLiZ0zVVi
-U3Svdm9TufzHpHv5hASHWPPH9+ugxnVzjIy+rec3BkI5RSCI/HMMyFkMWpli
-YuLUXQTv/3v0fsBdhVs2b35Kyp9gKRF79IyDF7HLivfu1DzMNyQ7AzvxcLIC
-V+dk3hU2ffrfm21YC305kX3r6aN3QAsYT1UbR9ZqxP3IOfHCVf3raKXV6k2t
-kCgIPxvLq/t895gBsc3XZH6Ub+0P0eoc9xAP0XehIqrpzk0/fv3m5ekvRpSQ
-py5p9rZGybFWWT28vI0NDeM+AzkYss5zOrK9MeIXuCVNViwzQkx+avf4x/3t
-YQ3siO2nzJs/+J+FrNBJ74x2GCpmL0M3+8qW8B9nCARXCnQzWjx3zfqbDp6g
-Fh5JY4DT9T32DADsNxYGR978cqbihEPU/MfylIlRVOiR35yt70lFDX31zxrF
-amHf9lyIX15cmR3H5girL/tjQy0SL0niufaTGAUYiApmNUG1fDWvYAqZ9fQi
-YpoA4FozrRb3JC46v/lDJ/IVtGVhQWuWvFFEIDvVRwE0t1YT+YxgZs1Z8LoQ
-nxwv7fZqt3FvWtyjzzzk21H1i0htEltj9bcDOjQEGGQWIsah6UBCMZZ2SFn4
-ncLftv09Ff3iyM0AmaJLkX3pYN9lJXz30/nslJiMnPIirYd2qdsHLE/fGdsm
-yYwhCvXKQYsdadpYW9PJiQKfU6jVPIR21HupQBU/8cKQBbjIOldaEoZELR1a
-Q/0ywxWLDFO7B+zdEo1xRycf/O1wfkZ+1f20dr07c+s428Sqe27dHFkhW8Kg
-FeS45/LROx6Zn1ispqRRE9ZZXlVWpCC7L3XWSzzbMj/A/TyvUAkWzdGx5C8P
-R9qvg3ZpOF9rNxaPQ0V6G7zlG3J7ISjLwgXwP4gfwixY3kK3Vleg9MMW2xo0
-kVWuNqzm8n6Sstx1r/aTaGg4hnpuF/ZbuHuieVG2bP0aNcB46jmwaHMJ4Dmt
-vuDTrlKywt+l0NaRwx7NPvx9RlV2gVa0BlCKWVqXnkxYrXonPJWxOieK7ekd
-E2Y05GnbRd9f4zP0mKfWltJw9wWWiipPBQBDvNLrbSSsKOPuTpjMaazj71f8
-t682Hy1RC03qJH3geJpfewqd5zJFeRL6uO2gIR8cCkxZAJQ5F7N9wfinb+9P
-vvQ8k/Nxj4U4o+TS7+XH7FTc283TJEZP8/bcl1JrdHB4BalTu0kCWC/KaMmX
-mp6xVlvAvi+t1+VmQwY5nNnecJURflUEZdqrpAZ9IOe60zqs6Z94V9uoRz1X
-wx7JXBXBw9D81gpKJyUb1MIiNJl3aFi0CSeDNEQcWBaSFwjfZkxTvVhMsz7v
-ogWyCLgVkvEXQMGVg2IPKYQHEmnKWBCkh+BNUkJ9SUgtxoc3kckdUT9MljGm
-OS979uwkFe+079x/s1ahF3QRIqcjBs86DDsp+rdSWS2pkrEwnB41CjZNpMYg
-ATZbC7FpV0D5MUD478TnU9c4ku4SxicwHxxDUZtv8bHtQuPGUVrFvp9/e3Ri
-cAvhZGBvoaBR/7by+eiSpQK4oU9LGf40t98f5tX7x1m+QVlJTNDxC9w2rVUz
-MaXbe7NV89i7ZHm6KFrETYMR3t7iNaA6Cd/Qv3CVTP1nsigSsZ7X/j7UejXS
-faB6nf6pAT8cKoCznA8Ppjs19f8WvtnE1OdMDYHpUuIm/eQ8JwBWjHSff6qC
-73pPTQnEbD25Y8xkccn91BO1XRZZwTXGEtqoz/S090HLu0dXTTjkcYcrw0bB
-nW8JBcjBOoIjyXNWRiD3i9pnx0168yFAJjHR0aC+2e5LpdOAyS84x5e9GbFY
-f9wHhwClyYsZeKXEDUl4+5TLITTe6WCcN2lLV/BTbUtNzLpmbQ38oFk+lJN5
-0K+mSLwRa4DmXeGc7+EX9dn/kYMMRV5u/ENmNaQnZkChhgRuVytR184qotQz
-1kPpa28Xwo5FokToYbvE26yJ3PEOpiyOMLpET5XW/7Gsqr/PZDsLH1w+zBm7
-1uaXrZmWvwVJ0YQ/bBL+mcGFZIf6HxQBit2NixVEGVfE7P0m7qGuV4GblRkJ
-/ZEvP+3rq6biFe54z5gNJ4+4DN0UrZlsKcgUqPADkFFkWcFpgW+Rh9wUwXU0
-IosE3ckoAJ3lffaBD+L8g49NgGaktUvF3E+PWkLoj+2sJV4j4PYVHL69M1VF
-vpKSK/9duAGezRp6LVO4oUXoxnc4WIK5qg3/cIsWgrbMw6jcCqjLe9MdxV3N
-ZodU1AK0AQR7LYtSJv4GqN5zv88M54GPrLgXDZH11L6rX0joKixghh6eHb5P
-KabuXL0unv/y0y7BaYzg+7P2M/42WQDs5puH6k7iybxPYuoni/6uyOeQ+29h
-ozfQW/v3TtvizQ9BSwmqYih6lV3RphpG1Ttl/OE0aSXdDlDfVb3efZoWLelx
-V04cQhZ0gWZfwMb8qomtYZcXLsCuMicrpUoed2o1b2A/YlT06klDiCuh1Tsy
-LMlQmXEhaTCXdDoAVNcLWw==
-=gH+1
------END PGP MESSAGE-----
-
---jivYSmTJInVZOk5Hp5lVtlLRapB6zmr13-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/autocrypt-setup-message.eml enigmail-2.2.4/package/tests/resources/autocrypt-setup-message.eml --- enigmail-2.1.6+ds1/package/tests/resources/autocrypt-setup-message.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/autocrypt-setup-message.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,189 +0,0 @@ -Return-Path: -Message-ID: -Date: Tue, 27 Mar 2018 12:13:40 -0700 (PDT) -To: nobody -From: nobody -Autocrypt-Setup-Message: v1 -Subject: Autocrypt Setup Message -Content-type: multipart/mixed; boundary="xyBPK0qmIew1Vw0cI32MOjAWBvzPwm7cK" - ---xyBPK0qmIew1Vw0cI32MOjAWBvzPwm7cK -Content-Type: text/plain - -This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. - -To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. - -You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. ---xyBPK0qmIew1Vw0cI32MOjAWBvzPwm7cK -Content-Type: application/autocrypt-setup -Content-Disposition: attachment; filename="autocrypt-setup-message.html" - - -

This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code presented on your old device, and then import the contained key into your keyring.

-
------BEGIN PGP MESSAGE-----
-Passphrase-Format: numeric9x4
-Passphrase-Begin: 64
-
-wy4ECQMIMmGEhpwGAFFgG5qdJltFXOzrbsmEqRnQEouWptJZJPUeTdgSi8cf
-5vrJ0tqGAdRmDMrQHnMOZdGVCMEYvHXzzjwgARAYMwF6jFi55Mi8f56EdQeK
-WpVUKRAE3jTaHXVz85Dq3NebYrVPtGKH/FwJm5qiNqbw+BNM+7X16sQGQmPB
-OkyEjidSvRMuXA0R4jV8SfcNuipp4LdPjAuswcqzNfAvVJvFDxe6TcwASh/i
-8Mu9aiQwNkgV//K72utObqxZbCgTNoGZzEhYO9u13UDV4bEqEqeLF8QuqElW
-nFYmzpLO1cMOZwnFic43RxIeZVFGCraaqioA1mcA6Uu8N2SCKLSkLF0GdaFC
-rWmhIXBcVjjjy+tRaUzUGHHoyhwPrX0KNXJdc81lSmvETthYzZ7FWJEA+P8q
-uvHk/VvWkjZo3W+DI0vTsuCL8ZWWPueNPq33nXOA2uzKTtIrKJ5PRLNcbZn+
-JxsAa4dgofMo0NjaqkPSj3Ftj2rpAZubPiLwzoiH4QRMsOLaX5ZgGxH/VHUn
-gbqdp1nDcGcUALyvOHuEhNO+T3TRLlgu9BcaS484/B9FUetn6PU04lUYAA/K
-x0ve907RpJWBgdqzVD0XeMQjlBW4lmIT4vWwNK7d8gXiypv7fKmaRcrVYrrI
-o5sIDMof1YaB3ikXt4KdCkicVWwBaOkGzY5qU74szo/pMudYceYKHa1uKga4
-AOzyP5NRluBAy7GXTXPwO713neT2BZV/XbzdZcxXM5bpcNHSZDHeG5RlC8xO
-1bEhxXAGrir9g43DBUClO4Si8bDSa+6EsDJe0gIp02x89oJhWvjJDsnNigUQ
-tNzWxYZOc55iErM94OVYzQZt8r+8vlBozYJaIYg2g4Mcxqzn3PHDyGfhAzy0
-HgyMlURXdEABccczAJ+bWmAY1b25LDgDiKNo2Y6jClHrQ0jVjo9YzZP03JdJ
-E4of8kjN4vM2Sth4IaBFbJen/2VaE3RCpNvUb+HbF+1L75c4WRMulGFw+lMI
-mgxxxKCtOnxcHRR9cKXcU0O5sVMxkdSqEIsmtY4b3vG0RzNceNk7RiPQidp+
-EL8XtmuaFdGfT/TJ+Ueymju/bVmYDN0WlZzMy6vlHbsNbTAz5ZNb4b5t+TaY
-AWWE8qfPzgrGBapyfuX/7VtN4lUUJ0Cv8Ok2zMviAGhXnwEkstUUHUTMu8GQ
-gQ3lQ1nJ0WQZfaOF90S1KCxm0nI+GU7aoxKHiisanR9l1H7UnA2lXabZh98L
-eHX5/SbsT/kp3E5b2vitlomXWH0Aa6aEXTpZqJ0TD/tUPYYXSCkmx2YDUnrc
-qu22wDKTKHBDl7Xlz5Sqw0cHusMoZTa61lXU6+nJXYLUiGE4TazMYjV0QRaQ
-qOrqUVn78lRGnYg3n/3fAg4cVZhyLHSns25UZlIY/g4KBqGEKaMJzzWix/xC
-UXADHR3ya5fZw20zIHnOxYg077goH/lpp1uHF/z4Y8rTdWY+In3J4n4ysFBm
-w2DK2DMNwTirGv9NIWV7PYvclvaxkG7sN1MPvnbItqrTUjgj32K+g5fHoAfY
-7t3YwLCIxQ5VSK+OncOv8W2xRDyjIhBCz6fnQHkV3tOvw8+0tUbb0tkX8ELt
-lmE4WuSeiGmfQn7n/Oq6wN4O6ASet5nB6DEp57oC7HkEnm3ve/fwBSohoiZo
-RHZZceser5z1irw62q474Jz54ASZcZmshHqLiDWoewfeUQMBukVrult0h1z+
-jfrmPezHrkGFw8t7M9dum/RbpPAbnsJ1q3sXNqfXOmQOKxxEvVA+UodPNgTx
-0JPVfIPTWb1g5CwPVgpw4c0k0EphALwKaQRzzcLcZRh4kNowa6r8g88nh6r2
-298/gKMKoAaZgrMJ4f/eAO5j5s6rcpeFl5/rO0epuJZXa2MD+TEjAehH+Bq7
-1aAEqSIYxP2/JrTNQEet9Xc0lTYUqpgJ4Q5+kKGwzxtidb3TTRLa6F/xhqaT
-omnm5dKynA801Nw3c+wY+4XHTukTkYfcGPc08jRQFRvMwL0AoCKBeMqGZb25
-ZIwxLeX0SA2x+dhE+xLeW3mase+aDMnUp6oBwHGno/pcJOpFXrR9YOf2Sl4H
-UnCsDMvDuyGRr/+AT/8OwTycXohR1iArLqujl4neLK+MkZ3g6R4j3k17RbFB
-3or4Gl5iwBfE87GhWjDrcD7r5PSaKaMGxKtO0ClC0pgzq44rmkXypNAsQ6YT
-To5D4tB3W007BDSuF3US5ZrfZcZXJfK1mtq8d2WyASfIj79a3EH8CHKyFgJO
-YuU/O/UL1nVgXpb1CnNNWf684CbfK+gzngY8rd3+tbf/JN+Vt1/QEH+rg2Wr
-+Bdp+4UCn8HefCY1DLCzf7z5A0Z+AoCDnAR7V4+FOgG6ignnjQMB1D0yvCWE
-8T6SWKU/tzP5rBX9F4nBSKj7ialLk1HF9I4/Rq/jgx1cgua4PnOVw3qhUSxl
-/Kr8NrCN/zZyrZW6Wxg7daG9d1ZxjRq7iSLbi6jMCvgP+NKXcd0khrbj3qZR
-VNJRsfOcxj8kNy48zNXyTn5hlSETmjypOeZ/eO1rx1dvB1Sr8ZnG4x2mQjSn
-63KHTsldyXCCRONTozDtnMwZJOcLmXLvzJHQoZuB+zo5eQXEKOBXyA7nNI+j
-HY0hW5C1KydpD1l7dpXkwjZC9KNgmkTga5KJWLJnP+5Xv3O/SjwzFsYyKVOs
-KzTWpvaLyzNzSBj+hGYiX3W0eelcSKT7gjoCkGpoY5a2WkURpTF3IQyjXU8I
-bt1bnktneS4vBs+/Ou2lpT2rB74lpHB+erTCO+zne5inn8+b8uog4EQYo5tn
-gbT14VG6morsm7eqztYv2EHZyXObbllx0urt5bx0F/MrEkCknq9+qTWK9nwy
-mv8IaXS6itT++JtQ2SEbrr55HfKDpALnv/+nHE+ysDUvv9H4UhlaJ/oqr7dK
-jmeHZUpAJSMGUuzfbypoCRRo26eSapQL2bzZiY3RMfO/Sqm2lvBj8C/0/ba5
-XGvT4DkK8Ae2/5tWuQFP6hXL+27blbmsKpnvrhAnl7IDyLOKacD6rtS9v+1S
-Mv6Cd+BIrEkF3FPOrs9ZAHtYpjtWwzZrcs69v6Pmk7AUOG11ocxuhHwYIKJ7
-UEz3zwy6Lys4okbIQc8QBH9jbtAcaNN5ji2Auz/YAKk0s89IAKjZbfc/yL9Q
-Q+EAAEOT37P1UUaXtT2UIobRCU1zqMdFNwd9w7m7Zc9k081Zj/RL7VBfgmQ9
-mzzr8vBCmSkExCJoY4DlJSThvxMYvYa1IpznZPZGjSc0rKH2LHL+LiPdFZEO
-wRKurDTgtpaxncjvcfQocsMbnRflNWYmvwxuQ7mQWzD7T9FUX4xJTJIKZpq7
-4F3df9aiOU6vUs0++5hdoKXIpnxiuj9tF4LwKlgtDdcMn+tUGfgvFlcAo1B0
-/v77aULVZ+D6Z4uc2I1iEl3m1giqSaqv/QPZ8AfqMbobWNKD0xie5MM4MNM1
-Xy132eon/Jxw2zPoGHWtO4H8/pB1LMkkdwglF8P6+fbeHIB8QK7OFx98zZih
-ObR4NTfT4kVBiXMmfla8m0WB/ibMZXgiPdM0bD8O9vxMSTDaiB7t4fYy7bMl
-zYbg03ZKbi0Zt6A3HGng5tjF2LqqrDK3xOCJFXK43nshsqgG5VzaYNkaUTHz
-lZiBd1YvoKx8A9yjXcs7cPLCyPITIokvLUEzPE7hmH66ofK+MiLyvPlFslVu
-PDvdcj7WyKWh42+2cMEOv/VnPi/uJMIgYUf3gM7J7qixux582pGCJnJt2B0h
-K6tt5T1/SmDTZ/BtXm45JHj4PahMgclhZbBRQOxRD+DAVaulSokee5CYT5e+
-ODuasRyqfoRpJcEpm0R7wA/nwb4bF2dObNvG/LNQlH/rhZ4JjoINiTNab/wt
-XT8atEtrjULWSRFT2u0vc954dgap3cZVKWutwDrpd02c3tvV9P9lmcmgePqG
-dTVutWuZXI/0EACM8OsO3DOBZI0g/mTpLm8KtqQL1ShVMWdh1Rx4XOJiDD8f
-XLkhmzg98Ew2RO4lG7u9q80K9dbbQCyZe/Zw/YjED9sw/fkaFLyrKMrtZvFb
-HCWJ4ONKjX47L7Q2RfMIqZ36Rv2L0lujH7FxIw2i6ZpkHTw2NWrdNoY7ri6D
-HRYMAa+Zo15ylQq+A76kfEq0yGvfcnREWADMCO4AFMXtLdCzdX2LqetSMD1b
-p2v8YM7U0/K60lbR19grZwgw6Sw/tnQzD1IARHixGc/fQlwcK0AhDQctBxuT
-hpHuvKOmIZueMGId//WeZT6qVgrDQ71P0/1ljjGWnHPfFcSKT124b3Qn/77P
-Y8ceVJXHlwKj/qOyBN/fsD028gZ0DZduHsPsApUsrC1385uaYfNVhOELhFUP
-CTlZanOzqNnyzNpFtrg9VkW7Qw8wyG6x9mGNynZLhA0AiErGIid/YzqKxxVI
-WquM/Owcw7SExVTkxPvWKh5I5fmn8PxnZj4R35AQdQ67SAXtGooRioEH/RXF
-s72UxEJN2/O+CDp50hCOXLxvVuNmEJCNyVGXLY//DiNcGoYWeR+eaqGl+1ab
-5c5p3bW4H7xwILtSYOZm4zB6P0Zf5BtVLDYPTJGtcz5m3YrNjVBlN0kYB4eW
-yeA50ZXUoXmpiIcXyD3fhYhPthZZFJziiCU3MYu2OwZtrA/g+DJeCccdQJ4P
-opEOSocZuu5MxZFTMyfrJTqmVhNCO3EY6/gaGahBsG0k2rUZU0qtFuOxSDS4
-XtqT/s7LqW9VwEgJb+OjUNbHoDyV0c00HxfukOYXuFzFso7P+8dxd5bCXgdh
-hTd7sULjxMyFHPKV921MtfooMdpwbonHXZ8h+pxXRD5eNd9SJ6nRjkRyMA6f
-qux854Vqw7RH85rDA78kfw9bfDPlGOTSf3P1ncwtcTm5aEpbzptWtjo1wjek
-sVbiHAgLPX5B8K1gVnvuR7naGbAlNf/3IYD2+JqjOAQ5Z4O1D87+JbZI7KjN
-N6vOn6iH8HX48j1ORAV0kb8ZkKfxB7y8fJNWkYxgjwEX98DNHthSLY9KPbN3
-fTLk9dgPLbmPuStru47xKhGYH+FEiRVbmoPQv7JjZt3l546RZebXlgLNljcQ
-a/2PYtWaXDXFqM92BSo2UHwxUkrVnMwcWbBZHQONA24IfnRMLR0QrxGIE8tQ
-UYBhnPFHWXkHbukl8zZRMXmmF4xAr/b7Nh8vccIfofPjn9orSY6pHs7WMg0P
-03VVO212V/BQNo/YOGzCSFbK1QX1dBMONxDqnZCpAWanI8lE5FVUKgs7tNbB
-oA88jSbRTlMFsf4wb4YEcAqb9lywoxeKhOM6GpNPAS675XgDqkplxc6VZWWR
-gNgRv31BYZGyiW36tQRbIMVt+UiKhVv0mnioikSli1L1ttC8WjMRP3sOuuMD
-MleZcsTcdFwzaNXF+Dv4ZzM1F5K1mMTtXX9PsmLEIE/YSrlZa9x/NryDiOop
-L9AyulggkY3KA9MLutAmbE7RqUe6CcVbVvZ5GhEKkbzGZkRDzJmhx9zi4MKP
-UaaEri/3iEKkaTwcukuTjqs0ZfNfLIpyuZiW2SDvSh0WCvI/Vs3NVTiDPDAE
-2qxRAn9Hf8CxGD/I0YkDqL2WzCrVJdWNapRpTCIukk7XT3V4Lx12ecHyoe72
-sQ9IFdzuHinMarEriECexf2OSM8LPyfWCoZhEqLvLE2jrFF0K+37nvx9Q2n7
-YGcBSPplSYskU3gp5f6CE4GaOWzxp1dsVIWqNpjTv/MBYtlH5ylSP9jvYWOZ
-4D1iWY3NpgqTkHxoTw2iVVzgscKUdk+Os9/vxknkMrIK2uHuwYrOUPd31KwF
-OJxuzRyOYZbMJ+2rdmB8o0UH2q3ol/oYzFDx+laljkQIzLKH3HP7JNhMKhnc
-HPzYeOd+VIoQBGbyl8YVH5EqopfpJ8P2ann25DVorOnQmZy5Yrb307uVG6hL
-tuyFaehGlVBWdxuAfvkiYHcemWbS85xaspVtfZt6cBxlSDTmj6F8zjGxPjyA
-MC2GBCgzHeMPbDA4cVwuOg/HIuCRlSNuG2W629Np6s13GB6cBdPdgTFH51EA
-+4H+8Y0VNBvsSGuNKz9cq3zmFTE3VHkvXkEgfpJdrWkCfvPrh+C3otuoaz4K
-sAfjiEkFxvTqZ6NgJdebwyaZGbRQjX08X6EsKxv5Whpr4DcwoqoLeUR/+KTc
-IYud8FuKDYog4NUV4Cy09Q/ZfZMEBiq1usbWnmGDN8FwQUccocmkTCm8WUC7
-JnIEDwDf3AxVTnff/e/Lg/Q8ueiArB+4c/S8Y6iMT+IPvPEFSfdl5siYMoub
-GNPjbqgRiL7PfIRcixy9KD3yx331cVg8ZI4xlaIDdDaPjtRSIYOslPhXaO0U
-xaLcCIR71Nuh9C36LVltsW1fnVOQlGASNrDiSw3h380wXZuGhXsHxlfV186r
-dkKlI2ZEkuZWWZdV5RJxNb4Avh7ps3TYnN9bI8zNvfmpgMj+2FRyiSG01khC
-r8lcvXGrMAX7nZoPhgVt+xEBBDkIbnW7ctN8QY/o7r5oy/iP63nNWIIeQD5G
-0Q5w7KhHwIQoz1+On7etJcETM1TWuttF90R3+b0bev88HwxXUVorgMm3Dqes
-Y3lAir6PEa2t+62cUIWMx1d7BIYv5Zcs1KK1LCFpuPPsRs4qV4onL64KVds8
-s3wEskWR408A1oejDR2Ll6XLjlkUTM4n2YsOfIiQBY4oNB1V/xDqPHzZR6Ep
-egA/CSBpmoIj0Zqyi/luZ6INnyCpD1z++N8lx9y4B4K/VvmBbo/OKO1CuwNA
-q6DislWDQ/yA1oHagPfs+GjIG1zm0DywL7qrbXJSMOcsiYT6sRW1oJVfS2g/
-bjZOfODCPLCfITWKVH2DKe46YX8V2JOhxXH6a6tPnrrPZpV9Sg1yUwoQSzaL
-+EoNRRJFr7A6KBOVewqa3bvhneI64YOG1+DVw9280ueQo6FEAGQbG8GF4mB0
-AeAS0bt7g3WAYIumzeuasbT46UwzbSJiqyNrOO50kcYCE9LAYUiwnjSccv8x
-b9Qt/LRnrXnPlP2zOlEEhBasDTnXeSVJMXXDNGwcMcLNjZGOGIxpP1QeurtX
-058iC3N3fHES6MGY/z6VzuJ2NQ2e3uvDQOD/cgSu2ZnpPx5HBjGpWHCWOwuI
-RdUumeUllTO+DVXxhPwqXai0yUYXqeWOuwSsIZoHauPZyOthAXzEM2HWCKw+
-hvqQTUOZWzAmoEV+w+XuZoxLjqTtRM3fFb6D9fmOI87EKi9Fb7x+K7g9dMtK
-3KxA21spUTd+sL7PvCceb3NN0hD2t3xreTiDedx6jlQilbbMEwRcjSqdFKk4
-fs/RiHBxxQQwddkfdEdUAAjUgu9SHlX0A7a/yihJ784lGOTrLab4QdAr/LSp
-jGsppoTn/4oZIf8dV4ErtRQ3EoDIRKQYIXgndkFz+lTcxBFu2K1hT1+KT6Bb
-FIQdZfemXQV/xG0psULF18wpY53h4cqBfRaZ/yCpGGOkY3U7V2UEEWD78bZf
-3+L9p+SWxSLEg6nDSnORk+w1K7CKboQoUQ9AyKX3vy+TwLzj8BPQqmTdr749
-8sO04wFp1xrSFehLJ6uZaDESa6Oyt6sfsr97v7amUV6OD5C6aS1SUbReyuH5
-k6U007woxe+2ETZXeHQau2JMGDyLGzEv3Q1RJcaZcVq6IPeQpAKiq4PyYnCl
-pwTxAi1dvsm8pt+fsZXuC7o8VPu5e8oOWncRMhXq9X6WzS3nc8cRGMiIr4iR
-FEgS+q5myrqpCUjVKvm2V6SWxzzpvfgwgMO414fk/Nkp++MkXTZEMDP+oiIN
-tbqQky1f4DQYMk4HT332qSJZXsNARmhCNu5jA+ifTeDUdvKQsToSCMhW5pVv
-Gi9qaXsFbVeimEio29FcAqES9T0Vg8umKgKtjq1uSsR2EvX2XiaF2ZzA20kn
-z/QBf8qR4V0Wz/vHNeOfz0b2/f1Dw5QxWzNzyiHuGosgTuUGBrv+c1hWT+9Q
-sQQxrs7lxzzIOksul80UOPI9F2htdWraOOIGiVR8hSfuTPm5wpBXFSXhhvfk
-8R4UurNl6NzDaIIIpUj9WrgGW3MSp+Tgr2BSMAa0UBX3MaIR2NUVfnNr4iw6
-f9ZiSYKTShdmp4UkVAchi0Gwf7g0FzFW0z+OA7GtPF0unMTNIgblrWIjFhxZ
-A4Ul1mNzT1tiIVnolzwYFUuiMYh/8ITiyKmgGhuMCrs1mS5MmJ5pn7k8i4kV
-5DnB6tu6aqEVG71QW+lrAsT/gTeRs8ENJjFmP7TidA8cpKpG0ln3ohJogKp3
-jgsMviLZC/OmRJcMckym4oKedKc8R72MLJk+YiA5kweZ+vpqHWEqWWZB29Bh
-DYvRF3XKzPemcW0T2vyVoQJXvEMORHOz0LVJRURIOJl5U77NXpRIn0SPbUPg
-RJ85Np4YIK/F9K8hKQYmMmxNYoxoX7pA2CkBzI2byfrS34N2l/3W+NlI1rmR
-envgZb1LVUiBUUIymesf0XcpzfNU/lYF/P7ZjJa7LkkrQfhsKuAN9Y3JpMej
-Ga43rOwMF2o+dcFSnmXafHmQU36vp/99rg2JU0qdIhKPdtElYCIHrtIiFDkN
-WGWzJpJsUciZv2WgDLF/IY4718NEBBAvF5ra7m/sCFppFJZBQOxynYVhEx9U
-SPWT22O/PjDgZT+pbIO4EhEmx3SJus0aZSM7yL73q5a58mFMJFsx7jKTt96L
-01pRu1Stp0KjUXHfUv3yxs0dDKyUTW8h6JtXUKlElM36YobPKp6rEBHUS2yC
-MJvi4juH75bxo8q5p0qMTPwkLvkBJDyfuqjds+kRKC1BuOsNxTzx60c+oXhB
-65lA/wLw2W7V6prjP2qYRqdz4v93dz40d5ulwQ8bJk8BId4o4Wt61NG1kvIY
-Coqw22ft7syXzHQMdEFoyl2wrZfmdhuRNhjonZuJmn1CSV4O37QRmFqGav0x
-/C04axr9jDAEyBXVTwx9f6Ia7Z13nhUIS9K/aMU8z7mUHDrBgmkZUMbiScBo
-YVW0Q5E3dYfILWNXnKlvojdpDNa309q1Ur+kW24airMngy9YM3CzMlSAGJBF
-nr6U7WGu030xxBAUWfqy8U63s27KcwDj9WMYT0JU14tDRD7dRHYKzyHIQ++T
-WlUEPL1PvRyC9HSBn7zp2wMZi1fS1Xwwk+tEz4fVAoAEY1JhQuwb/0cne8QY
-w6Asf7ElJgb7mQueJJtVsETRqpbi4rN6v3M7T6OkEhLHjCVrc0iMU0CMrAAS
-mJd61jf9khwRamGQo54ZiEESmuOTTQNqwHLSMybdPcm14kAjCTYpURF64Ag7
-hmKhl3e4TABEAUwl93wwfRG2BEYmi4VKIu6AA13ex59b+8CzBhmVBqB/isaf
-7hnQX5wwmjY6/ci9QQ==
-=DXsW
------END PGP MESSAGE-----
-
---xyBPK0qmIew1Vw0cI32MOjAWBvzPwm7cK-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/dev-strike.asc enigmail-2.2.4/package/tests/resources/dev-strike.asc --- enigmail-2.1.6+ds1/package/tests/resources/dev-strike.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/dev-strike.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe -tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K -TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L -cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA -7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b -ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD -Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F -WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36 -d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ -+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC -T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB -tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQJO -BBMBCAA4AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEEZVN+IS3BkCWtOO2y -eBYXMZzjEcQFAltV+f8ACgkQeBYXMZzjEcRWcQ/7Bihjn7jidt7pw4iv9ognHsX/ -PfDPQtfaa4wK3NHSDq/LMbI5xR+PtV0j4aIjZxj5C4F3/6pvhCthV9KWiMcxlrL1 -rv92r5JJAqt1T4m/CqYGGcKt+eIiDpuzGj7Ry5VJKyrHL1oFXDo6Sde4L5H87ltH -+lvyy9LS8TPgknWV8RsR2vn/IWr9HNLhKAdHEIXFGGfYRaS7RRRYHmP05TFFdFwy -hq2VTWW8OgqYILkSEonLgDo12QEAOu5Q9wCK0TV2in+yxBA/Hh5G/Uwm+u4SrW+v -SW2pdbYlgk/8Op5ItDQ1n6Q09Jzuyn9CzN+77MJdreAIP9YlnU7eUc7h3iLthHYm -flYyXOlO51M7Apnvu4SfFi/jq/9MlN9XJ9t4lo1tkGveAqBh88XZHviymRGYDf2F -DkTw/AhdIv8bVeObIoiXuyaoD8lb7fg16Sa7msUj+0+Z+edJBr1YMgdloetyzcHm -GFFbqLLiD5GvTRfD6yMdkC/IcfRXtjMITbZxpPMA2NruYqgVXjFzaW76OiTkvjEV -4Lt+dAiLpLNh9n5S/1KuB4QK2pH2iyJSFMdxIcJsIfHTkZuOHYs746DWqqdxvsQy -MCXkbUtUa2gHz/2mCgxDyma3piWpRkAtMxV+6YRZuBDsGXd7VNXYRVlm8+mCBikL -YNyRRnhM4LdkXx7iaaa5Ag0EVUebmwEQAMFfbxtHlDFusY1U9PeMzrQhP6b8ZMsf -qWbg5xmiYB6P9esE5xf/QFi06qo/sO6vyTQDx9wuRkJIGx7Wbp+98AKjxVt66e/g -itJPkWBeHttg9mx4jLlTtefR0uqlVclGoy3dQtL9HDLXxfHyP2xckkMAoipngwfC -AGSc954GcPhobpskC4EQjpFbmWFsbxYUl8KeIW5GeKb5UPq5x/3fHc2QvRNZjSXQ -9tR1b3awt+IqnWebP7V1GgFyRPvTWwyzamTjw7lj+8/o4QPMXOMZ0DWv1iRuVeM3 -1XGFI3TRaWZyrUOoRTfr4yqLhghCy4Xc19LXf5TaWGOVHkelHF0Mx8eMViWTmGU6 -26+imx5hOUzKQWXwPvLSpIUgCKpWXql2VIFTzhs4segJQZ6ez5SXubRRKHBl1WYy -J8XD98nAhJkjwPm8aQzesTtPGscBD87V8mcZk0FGCfwuOdmNEYD+7V/B6m0VjQ3L -M7mU7NNYjocEmXWExq97aXS+3AE8utFttGHLpnvsE18T1rbDtjhoV6yGMSlbETxt -AjIysEZpFqJDaWleYDpdhnFDzE5R+y2wBHVMz4luhckO5PD5iFpVrZbtn9HN202d -qFYIKOm0WrrQO6CAvAAaeOvkdy2kuDC8tUoJ4N9TydyHMKQvseKSHYsLvJJRH9XM -5FqD9OSPFhFHABEBAAGJAjYEGAEIACACGwwWIQRlU34hLcGQJa047bJ4FhcxnOMR -xAUCW1X6FAAKCRB4FhcxnOMRxECYEACaDw6JFqgdHI5pH7pkRae9Vif63Ot7XEmS -xUGpoj/qbzZy+cm9lEfcOHC9cihFa0EwG1WpFUyuzl8z8f6nulJ2vi5unC007D8y -T5kwL7vaQ+gd1JtcPny3J6qRaNxY2KhlkkLFYFLSnpt/ye0S/HuCH7RjG1lYHga9 -KULqYB+pdpFmfmPy6ogpHHaKQuYf/y9yRyylml/rjdRTWOzCa8L6y2y63y8mkcEZ -vUJ/WWAzCmka/w43uv3fPrui7wzMLDeCkSEomboax9bgTqqt9/ZNP9H0ja7XUNIj -HT8zn+h8YkjCHAupHRIltx7ZPaisZiz6RA/iwIE+rtkrYEOyCLsaHT+iXMsPFXLY -PMgR1usJqg2M3CzVdGmjXl0/ZZzo4a+wKzkRCnA1K4ZsJ/Py24QfqNIw8Jysab86 -SVSpGq3YbDIuKI/6I5CSL36WlfDcsvypr6MvE7X59otGj+1qzmlHuscL95EchJAN -RJbTW1/IHw2VMqQhRMTBKftrMediC/xP9xtl4U3D8Wybk+ghQdwuW9x3SW9H8Dol -gzBI3fdHTevZCuJJFdXhmEyEa2eEcRioc/3zaAHGThE+8SnsA8IuuqALT43w3b14 -LizcmRWQcBnH5+PlhXYf3/nAlEnXD6TCZrOGlNCzLTWQTBLg1kw97xS/PQyCg24X -snHSt1DRJA== -=I9l9 ------END PGP PUBLIC KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/dev-strike.rev enigmail-2.2.4/package/tests/resources/dev-strike.rev --- enigmail-2.1.6+ds1/package/tests/resources/dev-strike.rev 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/dev-strike.rev 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 -Comment: This is a revocation certificate - -iQIfBCABCAAJBQJWgkGuAh0AAAoJEHgWFzGc4xHEXlMP/1G7Ldp8fuKZc8rQ3UEf -PKnL5jYmdjQdwhh/aX2Bf/a0J1IUryqQe8YdhtIQtKA9ikyVstaXCX/2BhmrIpr3 -f5th6mOPUW38RWfCGWEa/fg+RmYyoU7NnCLG3zvHMQpOKOSYqx4l04JWMSdcV4fu -DEkBRInijG1QaBUk+5mR0kI2igBGvuoGGZyA5bILeLM1Ua/Tso+r/t3x0rnY0Us+ -AN+GNo0Y8zWQjx/9ShEEiMS4MxbL6s3vNcw3u19qBixtd63vBi4zmIj6WTw8Rrxr -BozwZ/RX6+SFDkn2oXVpou/F+TVL4wv8bo1k7ZmdbeozwHLd44hXMWB1HaFAZEHZ -Y9+geedO1XH/JaRhFNeuVUxrI6qKQFllxuMm1EiSriT9eLcYFxeY3WxtnvusL5fp -cgl9sAOzbZQUUNNSYTTad5y8n5/Rzft3YiQQBhO1E5Wtz4wnPseWq/I7DGJ62jGO -amhHRKqvdqlk4+Rst+aQ5ok7BXmZuh60VmkUAh4dmRkPNLBA5J8Ts6stDF0PS4oh -ZDTEtA0cXDS2S9c/xQihWaadilrbJ/lVDNZ+CQiZNJ3Me0ChXcjUvJL7yZyyXVfH -bdYhpv05fhaBZcqvWb50UWD+Hp95isYRYehw/RQpRrnS+mKvkvS+RO1QV0UkR+yY -68onQta97hWM9iZ1WzS+pcmH -=3cc8 ------END PGP PUBLIC KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/dev-strike.sec enigmail-2.2.4/package/tests/resources/dev-strike.sec --- enigmail-2.1.6+ds1/package/tests/resources/dev-strike.sec 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/dev-strike.sec 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ ------BEGIN PGP PRIVATE KEY BLOCK----- - -lQdGBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe -tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K -TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L -cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA -7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b -ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD -Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F -WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36 -d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ -+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC -T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB -/gcDArJ7Wicddqbq5aBonxpLZfUlRnCZfugyu7OPqno7mwK39Y/i2Fdr+Aqo4ISr -mba7JnGd6J7XDpas78yqrFcbs7RBawKTML5SS0v1nSwco06wzf8ymFh8bP87dRmI -7A/BaPMd+YL/UDrw0QFAZN+PEBcCg0A20rc8KKYpf8wv3PHhA+zPRULQVFpF1B0t -cPUYXj5WpKO1dDPVxA+nhGIJQwvHqntH7lNThC1Lvo66j5LXQO+52RVoww+lIv96 -Qs1Y2LeQfdqq92Eq8JjlZ4N01eN3duPep+/cLqKytqjxvqu+JGYJTJ+JGv3cYH7k -w5FTQpQvI0ftKINkTomBkLrcKLkJTGOnZOaBLtIcyeEE+/O+NtNdU6IftA1c9s/A -BPwzjFmMrvrIf+eK1eUwbTOpMaQVsfP8CmfExtsld8JpMhMUxcjbhJKkYNEV5/I+ -XmMgKYnzrQU6hZKQQZ5qwa9P8Nv3CLXyjkxVy0gyrtFZLKdjjZE/KsiTxVe0Wk/a -CXtd5JzZjJh8AO70qZpqEJQPfSSlnJS6R7q8CLAVYXsj2J/vfBM2/sBswL1czLdS -sXVFEm6UhGPswUPOPgSq/tgxj5CRTBbY9krrPLkEJ5eTzG0Dj9VDmnhUY8Lf0Xer -B4Gf48mh3M14KFAzrEB2Yd51b6HJ4wnBgd4k6S8s7qtn/yprEW5kZs+TWCi/I8dG -M5NsowBReQP0P2MUJOhjlEYuuGNPhibya+ViK02bI/JsfDoRQuo2CQXjx7BODq5O -BGCpKOcQbJvoqBkBkacKCG1vpkclzs7Lv6R3EF+tcePPzcEslfqIf6XHACg0AWA7 -IYult3eCChsi3PnAhHwqfMOanZKwT+XuyUiShd7hHy6A1DdM43GMbOnMNRjKiadO -ekKsfWXOk6FNFVuR+Ew0Tp+CpQ5WVfVRGkRwuVZfc709jdlp7/MvbjCLVvS+2q1E -R7i9BphqJYuGkHqvGS5lrXxctvd+IWIPh8Fe/Z6o2d+KiBsfxeoj5gOtgRZGZg2t -FkECC5Cwo4aMj+oeJ6scTAYguaIwjtNBJfXVkaOAfaZKD1fR8ZZ+GXWmzevS4F0g -0vvVznondT6GKvywcSyKRWI08kGiNVESQYWlhr9cQfOlet1cRm9oUyNFqReGXi4L -pHA5Qn5moNwkxqXbvuwdu1WE9IpYsAEU65aCViQAvCQ2nP0cQXQEoH7pcnbyGff9 -1aoYn79pusi0jcM0u/WLFFrcH4WqhxrMRvr8aikiI25h9XdK5g/ojJygIebvFrwm -/v8fMnpII7L/FZs9+kJL7lwUTeWEdRI79YmyBnPH+oJUIy562RG2cRAnu6/1Tr7u -pWttOAU/bOh9jkEVX4Mc6dUzF1Y61H0M4wyxccmdpUfSSWLcWrZaVEmwiGa2wE65 -c7aItdfMExz/H+j22eDdCjTFaU0+UbpX8bxdX3Gye3LvDiLaZffFKhQLhJv+aK/j -HAPPf0MyMmE/NBFPD8BRTVoJO5eif7IWa5LTBbkrRSg/57gH0BjNzm8dYrtS05cp -haFCjyPWFBcNH/6/n12Ik07Uhtr8ssmo09MxYvQoEHTIDR8ZaPmB/tRX9nAVkZDj -WTW1wRI0PSqvq6XYPQnHXVJLjn3kBZv3qSpPvCCgD6azFU1y5HzTURMDURQHwGmq -SEVzD5NBgVYyVjUYbe72XiY+ovmgx/TcktKrqNmxZZATyIrheVIfQPtfNhIbn8rI -o3K9/Oy+Il6IHbtlpoSRSJGB8veH9bQDwpzBbiiU6oeN1CuvsYLrCNe0K2Fub255 -bW91cyBzdHJpa2UgPHN0cmlrZS5kZXZ0ZXN0QGdtYWlsLmNvbT6JAk4EEwEIADgC -GwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AWIQRlU34hLcGQJa047bJ4FhcxnOMR -xAUCW1X5/wAKCRB4FhcxnOMRxFZxD/sGKGOfuOJ23unDiK/2iCcexf898M9C19pr -jArc0dIOr8sxsjnFH4+1XSPhoiNnGPkLgXf/qm+EK2FX0paIxzGWsvWu/3avkkkC -q3VPib8KpgYZwq354iIOm7MaPtHLlUkrKscvWgVcOjpJ17gvkfzuW0f6W/LL0tLx -M+CSdZXxGxHa+f8hav0c0uEoB0cQhcUYZ9hFpLtFFFgeY/TlMUV0XDKGrZVNZbw6 -CpgguRISicuAOjXZAQA67lD3AIrRNXaKf7LEED8eHkb9TCb67hKtb69Jbal1tiWC -T/w6nki0NDWfpDT0nO7Kf0LM37vswl2t4Ag/1iWdTt5RzuHeIu2EdiZ+VjJc6U7n -UzsCme+7hJ8WL+Or/0yU31cn23iWjW2Qa94CoGHzxdke+LKZEZgN/YUORPD8CF0i -/xtV45siiJe7JqgPyVvt+DXpJruaxSP7T5n550kGvVgyB2Wh63LNweYYUVuosuIP -ka9NF8PrIx2QL8hx9Fe2MwhNtnGk8wDY2u5iqBVeMXNpbvo6JOS+MRXgu350CIuk -s2H2flL/Uq4HhArakfaLIlIUx3Ehwmwh8dORm44dizvjoNaqp3G+xDIwJeRtS1Rr -aAfP/aYKDEPKZremJalGQC0zFX7phFm4EOwZd3tU1dhFWWbz6YIGKQtg3JFGeEzg -t2RfHuJppp0HRgRVR5ubARAAwV9vG0eUMW6xjVT094zOtCE/pvxkyx+pZuDnGaJg -Ho/16wTnF/9AWLTqqj+w7q/JNAPH3C5GQkgbHtZun73wAqPFW3rp7+CK0k+RYF4e -22D2bHiMuVO159HS6qVVyUajLd1C0v0cMtfF8fI/bFySQwCiKmeDB8IAZJz3ngZw -+GhumyQLgRCOkVuZYWxvFhSXwp4hbkZ4pvlQ+rnH/d8dzZC9E1mNJdD21HVvdrC3 -4iqdZ5s/tXUaAXJE+9NbDLNqZOPDuWP7z+jhA8xc4xnQNa/WJG5V4zfVcYUjdNFp -ZnKtQ6hFN+vjKouGCELLhdzX0td/lNpYY5UeR6UcXQzHx4xWJZOYZTrbr6KbHmE5 -TMpBZfA+8tKkhSAIqlZeqXZUgVPOGzix6AlBnp7PlJe5tFEocGXVZjInxcP3ycCE -mSPA+bxpDN6xO08axwEPztXyZxmTQUYJ/C452Y0RgP7tX8HqbRWNDcszuZTs01iO -hwSZdYTGr3tpdL7cATy60W20Ycume+wTXxPWtsO2OGhXrIYxKVsRPG0CMjKwRmkW -okNpaV5gOl2GcUPMTlH7LbAEdUzPiW6FyQ7k8PmIWlWtlu2f0c3bTZ2oVggo6bRa -utA7oIC8ABp46+R3LaS4MLy1Sgng31PJ3IcwpC+x4pIdiwu8klEf1czkWoP05I8W -EUcAEQEAAf4HAwKe83Kjr65hhOUJ+PV1tRHQu+AktfnJ1tOJqmYJ4KG0w8X6hc7G -8iAX1cMZj5afeT057lhzRO7WaPhZZTs7k63zZxCgqoGYLVcMvGhXyosggvH6V+GB -GilxPebohrRJFhyMoOURHGSVnCXseMNRB4XXqTEY2t9F5qForW+cNUYEfcdmENlc -6PoqxyqYJAwLs2LKmqYjfNcF+GJZDiXM48gXKfjMTz9vR2rm7UtasujKD9XuZST7 -HKdXY1rYGhGaEvVTs8lVG+9BUgaR27l7FErK9Zi6RB7QbIV4K8b73bdstQjsdD8C -OeTE/xF8Hqp9vT1ZJoAbjbKt8CXZsMYvS5d9LsKZLu6DVrDBEGunTUlCV/aMhTaT -YrirAj1GcpIvumHAoIiTEKJ9Yy/6MjduQHoh5Zoe5vi80gW9CJsfG23YOPkOdSoo -A2h2AakkiGcIasCasL0kwVyxeA2DVTW4Uep8vhQhVXM1Cefg8iCCeUbpTNYFmmMU -/Hm6YbAGXrOVYpBVm91HDXu1dIigKwMEgabySHbcBDzUtO5K9B3T03mtd8mYpckl -JKIL7T0ZrDx/VLZoQLz0HWlcP7tYXSGwmPUH3KPg8yvBo5ie2zDGaZnioSucFo6P -9d3x+Ha8Qub1O/ukwERN6sxXglL0YurC+xho5utk+Qu71au5xH5ErbyVRTKiyFfY -oJbShvYQGYFmaFXgh+oX8c27ji2Kw1I+dDxLxD+p5gm2UiSgJdr6M6suknFxGabl -Ai5np/BwY390dX2Lo3lFBTMKCTaWbEahU+g1kS5p8i8lVwbp9YNPZxgQMVGaPVRa -t7Wn1tcxO2vIHK3Nrb/g52/h75WfqqeznWQXXt882EE92WOq92YoYxOp6B3j5eHS -erxpZywfQr+Ozb5/2SNpGYvcqKkXA4heCcweEbsWC0YZKMWvmZH/29atsgGz73Mt -YrZrm1D/1XDPl/PN4yEqV8cIdYCJlvuE4Aw39AK760JctC8VjCm4PP4QvMe3Cq6g -/U2XzlSTYg7a9ScsHYybPgOPaWYPFP0BLqJAwv6dNlJESaYzzPdLNndMIVuJjnRv -ENCUA9x9hrAHkX5m3vTuOUHRIi3G9Vz8Tu8jbOAN99B923E4YAFiIIORDx+mFgsr -j7jlqnWGb8Kb9wSezUtBCYAIBA1l59kfyzn4BqZ4jMvdxeTsLJLEwhyBN3Ii3PiB -YzjyHPSL6dnhgBPJbS8vu9sZ+3GUBRcOetNuxai00OgcVi2Y40p0bxEiX5CsZvoh -ixTjXvvLNDetyC42FgEScY/T9ziHgMem1AWzBHQd6AvUlPe28Onbxv5KCHJPJ3Ab -89FY8uPcfaGth/c+145DrSn7UW1DOAo5wwq2GABNNj0xmt+UiAXB3z2xF7GU0nwc -LtXNNfyBzC3yqIb/3KtxsdLhga3qwd4Y2yt3qk8Bywxv81dPnG7Tz1Ixh/NXxZT6 -pOJPIBDE7FjsTxqhTzZJwfDsOEoCktMIh5uRppWs+7keYrNomSCYj+xK84qEq1vS -Cx5P9mvLIhmQclMzU4XMHqMviKPCQdir09hCz+CesHpngRNRTt+qkd+lZZR6qbRF -Jcnv3hMnveKY5wpSFZAx+LDLgNLBzR/Syv8vk+11+oeqBFHnhkaA9tc6dNoRg6ZI -mqdHA5/CcI2ho8eiK4/AbvN+VkmpkXAA5nc3vzS4N9Gwyh/VJlGnJ7parVCs9e/9 -jt3j8t8ggP9GkfcBnq1Zny1INaQeH5S/PIfFjczCVnTKtq3JrRswILvCImo5fvLI -iQI2BBgBCAAgAhsMFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAltV+hQACgkQeBYX -MZzjEcRAmBAAmg8OiRaoHRyOaR+6ZEWnvVYn+tzre1xJksVBqaI/6m82cvnJvZRH -3DhwvXIoRWtBMBtVqRVMrs5fM/H+p7pSdr4ubpwtNOw/Mk+ZMC+72kPoHdSbXD58 -tyeqkWjcWNioZZJCxWBS0p6bf8ntEvx7gh+0YxtZWB4GvSlC6mAfqXaRZn5j8uqI -KRx2ikLmH/8vckcspZpf643UU1jswmvC+stsut8vJpHBGb1Cf1lgMwppGv8ON7r9 -3z67ou8MzCw3gpEhKJm6GsfW4E6qrff2TT/R9I2u11DSIx0/M5/ofGJIwhwLqR0S -Jbce2T2orGYs+kQP4sCBPq7ZK2BDsgi7Gh0/olzLDxVy2DzIEdbrCaoNjNws1XRp -o15dP2Wc6OGvsCs5EQpwNSuGbCfz8tuEH6jSMPCcrGm/OklUqRqt2GwyLiiP+iOQ -ki9+lpXw3LL8qa+jLxO1+faLRo/tas5pR7rHC/eRHISQDUSW01tfyB8NlTKkIUTE -wSn7azHnYgv8T/cbZeFNw/Fsm5PoIUHcLlvcd0lvR/A6JYMwSN33R03r2QriSRXV -4ZhMhGtnhHEYqHP982gBxk4RPvEp7APCLrqgC0+N8N29eC4s3JkVkHAZx+fj5YV2 -H9/5wJRJ1w+kwmazhpTQsy01kEwS4NZMPe8Uvz0MgoNuF7Jx0rdQ0SQ= -=oVjy ------END PGP PRIVATE KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/dev-tiger.asc enigmail-2.2.4/package/tests/resources/dev-tiger.asc --- enigmail-2.1.6+ds1/package/tests/resources/dev-tiger.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/dev-tiger.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQENBFdGIzkBCADKys5q0rYiTr/FYdoupmNAJ0o20XWuFp/V58qsnQAMcAY2pCB/ -ydx9Y7A80QjZPuVcE5QdROfvvkMXAA47ZxZrH79Kaqj11DS5XOgtLVtITGtWvrYq -IFujxP42ICWBh7LXUwrHfi93FX74ucXoWo/PZndbo+JBxc0ZsrHUdu24grTDuqLZ -Q8mRCx5U4tf+zEVIU6kXubFzq8aPSnjfEg6MhXxSRictjIBKM0Ez2QwZmh1vAEmv -n0kr0VaJJ7xVRgIH1CgNh/WWtbr0lrblKCkFkTFnQfslWvSEko+LqvwgBSKyKg8V -tWbYftnBkn8FPbP5Brp3wYgBc/c7mrLROqAFABEBAAG0ImRldi10aWdlciA8ZGV2 -LXRpZ2VyQHRlc3Qubm90cmVhbD6JATcEEwEIACEFAldGIzkCGwMFCwkIBwIGFQgJ -CgsCBBYCAwECHgECF4AACgkQhDnhcEaXfEb3/gf/V0da3gXN5TNOsWZKj/fI2FhQ -BglJ2vlEamnppwtnWZGktdFZ1h6ymzQ9PY3IidbKctqs/QQWKtIBVh5k02fvUe99 -nsFZmINcLeajdu7IqvKxtFBuEwZAA1Bw9dhM3JRQM8z+l+CtbFh6dVufU7q5vVEX -ciCkhdn172QYTMAXNYE4Tfh7eaEAOdRyFcwiAGZ826pOp7Al52frK+MtaXa9D2fR -INlDXD9+IIR80sig2B4iBGeY+qAmE6bFuw7MtBya6uKupLjtAD/v48Z5wBYuU0jP -ld4KH88IWksbQo1zW/O+1N7J1/U9ZGNwpvS+wtfyjlOpTS3YWGmY8sVturZqTrkB -DQRXRiM5AQgAsDN5j4viE5E8H5N9cfzQ9ZO5BUk66yI2DVEeasqZWFCkRA+uFHcT -F6YpCoSn4/JsvqvUWVh63uV5vdAiU9+4sNFT8nkP7zD0LQthFtgEXqNo11NR7yvD -RT3TOAnGaa+bLyoU/SLXzSwctZksrQjzQJVSohQNznhj95XH3UEsUydHqje7ljp7 -NHWAJx+Tlp2Yh6q060/gwh37zsfdVbaVtjeaAYECX3z6L7JB4KBb9KGlmDmOMngV -UuR8XWWE+LEx0m7B+kZ+vZhUOSDDomBP+8jGJmXlcIt8+LIBq0NeXs/YINCc89sa -UPw/V6X/NFRkekKFzIprCzwhg0LWl8oXAwARAQABiQEfBBgBCAAJBQJXRiM5AhsM -AAoJEIQ54XBGl3xGUvEH/jVTBoRfJ8ohc4Ahal8TyIm8vdT/Ax/ddyyaLnCxkLFt -0noBlA7062N1Fvv86Ts93EFrK9nF3g20gXKBKETo/vJRqtODIrwtCMfzPbS/FkQw -eLtUDZXed0nq/Yaxk60H2HmWm+n9/126F3QIt7is0E3dY0e6DYJGRHnn+lWnUs/8 -Ba16Zb/os3GgwEQwr4LPEty6CFQU2DNl5HmajeB1oEqmeDZ2f/y87GRpdCoTgudQ -iHMPdm2kPVbeAA6945W6Y2LSA5Hm+yS8s2dBs4+sEiW97owLz6vcak8Aw+7JFxL2 -JkoZuN28dueoVcFQw3uX0snoBXgo3LYsK71JoufrXhY= -=Yrbk ------END PGP PUBLIC KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/email-acc2-pEp-message.eml enigmail-2.2.4/package/tests/resources/email-acc2-pEp-message.eml --- enigmail-2.1.6+ds1/package/tests/resources/email-acc2-pEp-message.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/email-acc2-pEp-message.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -To: Someone -From: Tester2 -X-PEP-Version: 2.0 -Message-ID: -Date: Tue, 21 Jul 2018 09:32:41 +0200 -MIME-Version: 1.0 -Subject: Test Message -Content-Type: text/plain - -This is a test message diff -Nru enigmail-2.1.6+ds1/package/tests/resources/encrypted-email.eml enigmail-2.2.4/package/tests/resources/encrypted-email.eml --- enigmail-2.1.6+ds1/package/tests/resources/encrypted-email.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/encrypted-email.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -Delivered-To: strike.devtest@gmail.com -Received: by 10.31.65.206 with SMTP id o197csp1210819vka; - Tue, 9 Jun 2015 14:43:46 -0700 (PDT) -X-Received: by 10.170.150.7 with SMTP id r7mr28138075ykc.48.1433886226901; - Tue, 09 Jun 2015 14:43:46 -0700 (PDT) -Return-Path: -Received: from mail-yh0-f51.google.com (mail-yh0-f51.google.com. [209.85.213.51]) - by mx.google.com with ESMTPS id w5si3065379yhn.169.2015.06.09.14.43.46 - for - (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); - Tue, 09 Jun 2015 14:43:46 -0700 (PDT) -Received-SPF: pass (google.com: domain of ipazmino@thoughtworks.com designates 209.85.213.51 as permitted sender) client-ip=209.85.213.51; -Authentication-Results: mx.google.com; - spf=pass (google.com: domain of ipazmino@thoughtworks.com designates 209.85.213.51 as permitted sender) smtp.mail=ipazmino@thoughtworks.com -Received: by mail-yh0-f51.google.com with SMTP id n67so11377426yha.3 - for ; Tue, 09 Jun 2015 14:43:46 -0700 (PDT) -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20130820; - h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to - :subject:content-type:content-transfer-encoding; - bh=AermomlQzalDA9CuGKCBD4p7rP2ZQS2Zg0e1SUiY8qQ=; - b=fOYbw+EF4vbNqfBSvvtC5s7bEd0kYimeTSKt+i8BkbbX4yxAvuZ1wTDXaSCgRd5qOm - Kselu97ROnTLQbfOzrIgeUrKejArqfLQAAtITjkRtnSV8GMG5/WEVymno5pwEggxpwXb - Ay306n+XOYYxYhAmdHi2tsk1FinFrwLOkDzskn0+iMdU5gwhVUQ7ev2OK0zQkr5E6yt5 - RiVOIm2Jv7dOnkjB8weTIHwU9gDtcwHzCfzESZzdIHG6KeMIymaVFAjXRDH3WQjJjIye - kjALl6ZB9Hg9xRIi8elzOMdKVQxzisGZAt0fyj0EOhTUSWc0CBVGwVSGMdXlX3KulUM3 - bQKw== -X-Gm-Message-State: ALoCoQlV/pZ0hMv+z935EHT9GOjCBMSyqOygMtRxMQ6lfoWHj45+E00QbbOWqX1xjoDKy8vlz2Ah -X-Received: by 10.129.138.2 with SMTP id a2mr25624689ywg.149.1433886226643; - Tue, 09 Jun 2015 14:43:46 -0700 (PDT) -Return-Path: -Received: from iapazmino.local ([181.198.81.194]) - by mx.google.com with ESMTPSA id x185sm5097578ywf.44.2015.06.09.14.43.45 - for - (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); - Tue, 09 Jun 2015 14:43:46 -0700 (PDT) -Message-ID: <55775E11.6090701@thoughtworks.com> -Date: Tue, 09 Jun 2015 16:43:45 -0500 -From: =?UTF-8?B?SXbDoW4gUGF6bWnDsW8=?= -User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 -MIME-Version: 1.0 -To: Fan Jiang -Subject: Encrypted email -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit - ------BEGIN PGP MESSAGE----- -Charset: utf-8 -Version: GnuPG/MacGPG2 v2.0.22 (Darwin) -Comment: GPGTools - https://gpgtools.org - -hQIMA9U1Yju2Dp5xAQ//ZKsVVDPBo/3swHQ5+97Rx9ASldxUTG8acN8gPYEGJ15s -Jxmigu9Xy4aVad9T4GoGm7r8hfOGjeLu98RfSMt03X0nQCTqjo8epp/Lpx8TTCDS -5VexXsucQkJu55DtzI/ZM0GDb5JW19ONBt8+mYjgPputgOaqG8yETsYblDLlbZjo -SE650TvcUmjCm+DRnymzvTJlM8WWRLNs2WwzHdaam/IDPoKggwBUK8mbvI5/+w1Y -qFOlet+Feou/4VuN11e+IXT5cJnT8Gwb1hyYij+/CAAfyNeYAf2i8BaMh0LXG7ds -9pFz34whDOjAl4PK6AskTpmrhMcVviesVxa8ayvydxc5IkGvtypGY1M4SITvJLop -3Bdv0Chp8fy1RRGQCBwbIa+t67rL9Nl2LZvwo5Fpvj86iI6EqEG9BsJ8wsNgWbNN -v85Iju3DEcz/pqhsr0gzw+xaUv3KDVMW8gGPDkRpHfWik1alL+Lcevu66C9ZodsO -OOIJVCqXIsftagVjvPq3LFZCIEdF2Mm5wagD11ByZIrL/xlaeV+3Myengfbyg4O9 -Oq8kmr7itGA3TmtVyeGsr81G1q9f2ZtlRiYIHzZOl0rgOLKq0gWm9nP1o65C3qyG -Q3kixhkEYcfsLrUA8jbC0f92d7IrwfbQgv7i0+KexvlAHhMuOzkwE6WvFb7vtD2F -AgwD4vk09TV2dzQBEADBVjJlctRTRryzoTMiZUFjKXXz1QuTdhgtxITdctQzh/MZ -FLoUEBxyhVgRyLygRNIipy1g4jYWzB4ZkUa6Bn+HXxHBakmkMbWa4XnsXOdCDzU3 -TYzKo8bnxBnod06A39F0S4CQ1EfEWKe+gcac2GoEVf0+eOSPxs2LEs6/pqLCOL3y -XWkVeQPYaqlFMEst9D+7MDZwmpLarNpsHeV5xgrxWootaC99i3uUDcuuxzMEJfuq -0jvLPvTnSe1DJsL+de+bWRd+CC46blY9GOsMEPDU95+yMT66IW5CriBaszq9/0vT -88GV42KyZ/pzJ6n7sn4FYq5XHdkZDnbVpXJT36REt7QRiEDZExVdu5ofFrh7wf3b -M9gxSqB6Y/XuLfUx4TadCmXpbEH1iypakOf8ltGcSWf/CC059jB7NX0v5Nhh2wK9 -MnSMP6qOWvrnLxU8RR7S8ZjrisZYUKkKBrB9W0lq3cBjgjcwIhTnHITQEkNojVjB -dYGmzlTUYM/y17Qi+m75ADVD2ZdHZ5/XjmM/c5kWTbO9WzMIFBexAEoPlroTweQU -iM31j5iPWZWeBl+d26h+/6sYYnCZS50o32fLhmYIBv4lSs/AUex4V/VVeGdTyruW -iwJkzC1Ztm0GD0RptqIraiEgQ8VzDecoS0VSLs2i2cOEhMhrXBHGXPf/HHiQc9Lp -ASgrin2gjG15X0YgCBbfdVau9AJbab8Vx2q9H39qfC8kfj0hq2yzykVLphkbmDH8 -K2qwPC/EKScKAp41O7duUnkEPKZDQl0Zg3Z4trupQX3ddTserb8osQm5iH+H7Y28 -HO2bLb6tzApT8UyLSb45cTjceLRItsQpPHckWsJ0U7PzZrKob5mOEkj3M7bUCxg5 -2JeHUNIahLQPMoXxdYQyB0o7I30/N315509A0cU6+M07VuoWmtGpFFY4qf1GAfLu -je+IpUDOWm7Jr703JxXRqkaGvi7oHlDYOLKMQao7Pd4ExHlpRUErzBsduWLllO3j -DHi0EYUxwkiCA5pqsSaspNJMTbUwAfNx7Badm6sW7KAfdvfwyFpBZUQy/g2GwCKm -32w9q3Gyrn3fSY5rpLRE63gQDcQxowE4jlNB0nu8VCsEdV1PRVo4pRQZWhOgezEf -lNx2Cx6X9fvvQGlS88pQEig14sC2foO7BGyNdR931EZbeBbEO88OYu0MKaQt0kPj -qAiZCAdrMedYFpeBjOYr8VwTuxXjtxdeCBUy5X4oHiz6AGAVxve1UP0pJfRy57Q/ -CEnd8avVxfS5oQuUhjddx/duBTWzJ6HwynMqzIPXDVeMzAtc193WxFxm5oPXhbVV -LzGa866hHbtBBsDUEnNxe/fPU8ZDQAcKqKmqdlK3pyjAGgumP4kuje+kjZCHeqzY -V6cPJ9MblBHRzc0ruIy2tKOXkCx2XyGt2c7slatLSdsoE9aATN60d0/HoVL5RxUn -YXC0rz/+VTBq+tYe6y7VbXnD9eJZznvBqaLbF3i7RD5thgJeevQTL2L3OqkozfQB -35YgnjdPRqCihuBLOMyplB/efy8KYDxmkUEyROgOIncmr/gxMiEz8SLU0OCXCwMg -eO+ITTSXWeBMiSxrxeKHeR/OShe6OpRGbntWU1VXo/Gt9CBL3RFv9Ey6Ys1s9w9h -TR5bLU7vrpRAmRve -=YK4P ------END PGP MESSAGE----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/encrypted-email-with-attachment.eml enigmail-2.2.4/package/tests/resources/encrypted-email-with-attachment.eml --- enigmail-2.1.6+ds1/package/tests/resources/encrypted-email-with-attachment.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/encrypted-email-with-attachment.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -Delivered-To: strike.devtest@gmail.com -Received: by 10.31.65.206 with SMTP id o197csp6107vka; - Thu, 11 Jun 2015 10:04:06 -0700 (PDT) -X-Received: by 10.13.254.69 with SMTP id o66mr13216940ywf.152.1434042246087; - Thu, 11 Jun 2015 10:04:06 -0700 (PDT) -Return-Path: -Received: from mail-yh0-f45.google.com (mail-yh0-f45.google.com. [209.85.213.45]) - by mx.google.com with ESMTPS id r184si124165yke.167.2015.06.11.10.04.05 - for - (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); - Thu, 11 Jun 2015 10:04:06 -0700 (PDT) -Received-SPF: pass (google.com: domain of ipazmino@thoughtworks.com designates 209.85.213.45 as permitted sender) client-ip=209.85.213.45; -Authentication-Results: mx.google.com; - spf=pass (google.com: domain of ipazmino@thoughtworks.com designates 209.85.213.45 as permitted sender) smtp.mail=ipazmino@thoughtworks.com -Received: by mail-yh0-f45.google.com with SMTP id d80so1649421yhi.1 - for ; Thu, 11 Jun 2015 10:04:05 -0700 (PDT) -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20130820; - h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to - :subject:content-type; - bh=GzgNMIbACo0qviXHTaTVeIJQ4iy/1HFPSyLGwM6Gutk=; - b=RyNzxW4V5tq5wR+kX53P0C0ovcfCSIxpCqS/UFmupa5n1n1nnXgv1TEtAezexFBD08 - VN4s7POnOIYENchLovB9iMhAynB0lIJJ2klU7SoCqJb8MQyC/Q9IT0pubLFRXifGHiY1 - Oe1d348SShgxIKkDhZ/mtDDPFMS+/Rbw+Hw5CgIIfkbuSK7U+HmnhaW9WHzbNie01DAV - mCQyiMh6lcnHP1AGg5VOzzABzIQo6J1CTgOCtrXyGKGb8vfda5rBH/hMcL2VEKTOP/N0 - fBqj1UxvslPe4ideOYJfOsMGrAShln1yPis7WpbXf0SMCxrkdC8x752dYY1buDfM9jGk - HtjQ== -X-Gm-Message-State: ALoCoQl4o5R+0YzTR2jnS7qaqQ/rMEZNBLVGE2lLmVdqLWLpgWWodO5KHbJts7CsZC6Thm2kj6TN -X-Received: by 10.129.76.79 with SMTP id z76mr13237331ywa.17.1434042245687; - Thu, 11 Jun 2015 10:04:05 -0700 (PDT) -Return-Path: -Received: from iapazmino.local ([181.198.81.194]) - by mx.google.com with ESMTPSA id u10sm819002ywu.3.2015.06.11.10.04.04 - for - (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); - Thu, 11 Jun 2015 10:04:04 -0700 (PDT) -Message-ID: <5579BF87.1040804@thoughtworks.com> -Date: Thu, 11 Jun 2015 12:04:07 -0500 -From: =?UTF-8?B?SXbDoW4gUGF6bWnDsW8=?= -User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 -MIME-Version: 1.0 -To: Fan Jiang -Subject: Email with attachment -Content-Type: multipart/mixed; - boundary="------------030301020907070004050005" - -This is a multi-part message in MIME format. ---------------030301020907070004050005 -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit - ------BEGIN PGP MESSAGE----- -Charset: utf-8 -Version: GnuPG/MacGPG2 v2.0.22 (Darwin) -Comment: GPGTools - https://gpgtools.org - -hQIMA9U1Yju2Dp5xARAAipOGZCn+zFA4L1muc1y+ixqJqqNHXkBXoba6K0WS8bLO -9U6Nw5HBblT8+Lcj9uhY3MFEsFi/6ziu5Cebm+eWoUDyUrSY32XI8dc7QtrgGbb1 -+Y/uGezuwr8BfQP53heWk5p/EICPi/3gHTa4HG2ajW8C+ttSltUehVfknraPjIZM -pKws9AXs1lGZxoQc62Lnj2npqZafsjYZGKfAP9IE7ESPrPfBHKqS+E9wKQzU/Wy3 -Zfqf6Y1CiwMOl7dLDzbCgcMvKKpdCgk03f8BfLv4qPBNy8HrvwZt9kPo9an/gaMY -ToyaZYYUY9a7MYNI9MaTX7IzEWFdkuyjfJzk5u+WKaAVL6x8xdbZpnEWjP/jm4Zd -c4YpTWclkriAhc69vucag22JtsvBkvd9IJklvr/wO/Oych8fGZd/ClkfAfKdPw5t -1IrQmYaBiPGpSTFuPrci1oXN5SXGu54IJ4r88hxMdOZKKDPHLfLVOkjDp6RHoJQd -/KkaFheyQnM0tcX3ya/moKeJDDpyMtdZPznudqtMGjEnWb1RawmUsrpcP4rj1Dfm -Pav7iYeLZMM1yYD/vb+DxpD7jQ9ALE9n1aIakzp9BS6NVvtTv0ojENesQVFT5zW/ -x1P6Mwcp58CV6HdQqwhPZQ8sjPqimNM0AMIGo9C9I/pxyry935BX8l4rQ1AzYomF -AgwD4vk09TV2dzQBD/91P00WN30F0m7i9dWCKZ7/Jr1q8LaQA35lbqF8uh+vSqmI -OPbr9cCjn2SNIeKTD+NsmgZADPrGtBcJy5+sU2LK58laicS+nfzYIovjnyhddetG -ahyoQrFmf8w3z67GElYv3EAIIPwqdr5HI7Sk2Xfx1n4t/8PhwREikXAM/iWnsI6m -NQBlx+hH3Q1LkhATGgb1lnwswgDXSVmbI5zsFglR9UVmt1ENZrvGiQMN2hJPGgbP -MVxV/UggcruDqIin8BlGEZR8USOY2y8FkiX1WNNP9VumJ9N9b02gHDPozPDH0DgK -ulpGJKvCjYvgcFqbXRbTZ8kGGudxLYbWASl5s8wobo28J2VhlDJAhrL63wCmEP6g -Nt1/pM8ePieCl9Jtb83Wis7K1wYoFA8hK/nqRV+v1RmLk9sDYLc1v3eFeLBaZCC6 -6mOh9mZldqmL02+UCKHpS+BTdX5LaxMoQpFdh5kx8Blssf3dCS4pezS48rCEBEfU -sfKCjL7Ii4WhhEw28e+Lc+QQo1xy/r/WzKFYulvqmUvyH6djKmDsMrSXXuwr4BJq -9/96aeNaJ6109sa66luMz8ru2h68fv0ozslJTA3CRCi/dq1blSegnFb/PA9M/xAp -75VjROvurfhTc+0fwV3r3cLiNOEj86Ih8VuoalQWKcRV0OHzXN6HJDwu481dxNLp -AboMPK6dBDyYJEFuOB/kL377OPGU56jk6isMw7U5yODPR24+rwqSadFJNgMquyz5 -1ivj7MsE+jBl7PgPTgXJQKLfS2QJi2j1oOsdA9KpAQ5I0CLmc4S1c8pTWihMUwaS -VtoUm9wUS6WbwbLTg+v/HTPlN+7v0ngpYWI151m45cEF0mAfH9dH4dZ53DuNhv+0 -HQFkcEIKW6Gr/V6qk/7N/wTtMk1WWAgyOlT/mhbocpV2/coxE0dAnGIgEGN7mik4 -FUijTzdkSbhka/e1ckb5+ZxkWZeVXpEtBUW68PDOICotubA43p/+hicjxfK//aaZ -90bomYAXgCIUFp321ZVM6OS7wzbdRiRL+NTcPu6mMT2F8SnvaRFyORNJoE/QM284 -pKMJL2DDzTuwaBUGzbKOzeVbEBOG9Y8e2hsKP5Pz/r+lw4Uq0P5zsrfLgxuVhrEb -I5hGLyoGcdtIERJyJ46zttkRMNd1D0yu7ICg++BJ6Og6qCHgKfLWsiqOAw9TezjE -CzKimQXAJzFpUsn4cnOuxF2qtdXHakYu70yCnWXHkgMgKqDeBcDA+v5yfF2Z1dCi -YnW4p5TKyOliexjf3XxBZNsDO+xNuSh3HpnkHhuxzIQEEin/K+Hq8Swfd20vDLsi -xXJQXo0Mph3v5TD6RA/tx59dioci0V2XfZMtdTlFgyTAE2K1PDGlLYmyDdvYYCAT -7LsYac6hcSTGHqaEeOVcaD5IYqwL6ngc6fTchcDKerLYSjfNcOUhIQUo7oNTKC5i -LFMttrYdxZOP8IvkrP8dUCrK2cbPk+qnH1Ft6VYNJJ4t4ayKVLrRucY1oblvnTxl -bGUleZ9nK46o1pkmBmdq6ka/PTN/XXdSsw41CL8+PeMHuohujmpWtQU90cBtC/SG -57E8LQ9ngDtSM0A6IJweIoGmk6Owu6wSwoHIJ/+WHZcDKQXhGh5r0c3q76BqIv4U -9sayYTw= -=J17h ------END PGP MESSAGE----- - ---------------030301020907070004050005 -Content-Type: application/octet-stream; - name="attachment.txt.pgp" -Content-Transfer-Encoding: base64 -Content-Disposition: attachment; - filename="attachment.txt.pgp" - -hQIMA9U1Yju2Dp5xAQ/+PGGcKOhJ4CzNeAiZVkYOwJcNFW9gLGG0R0rKPqiRED/BxL9B1Oyi -rKhAQ2cYTPLo/ba94K6PXzrjh+8pbNpLFzXgEm4Ps/YQLLf/G+37+yxGtUa1URQtGMwQFKD6 -sOVBNSBjnSTzddHIsTha37J5XBbePVzKzRdJIr9DepxZSoB/39AJmudxSWMn9vdZS36T7Hri -dNim6Rq7fFFAEftPcI9clh+nLtNJiLzMbyRN6IN9jlQGaL2qxU2LcuOBw4MtC9Zjrl37Sqir -54qfGZIZhuXAeO+HinbQKLppdwu/tnF6JATU2QwmlOffFOoOjze+0fs5unlML5xMZJF12cgP -/l7MJuma1h102OHoqjILCTLOzw+sddFKIvKi8X8IjGFG3oh1iUM5UnkbMrcvtz2ULhJWxXOQ -+51oKB1rhZPYk1heK2mKcFY2IkyBMGuvdPYj94CB95hS/VwxZWALqpIkc5C1xMkInak20I54 -SjxiMnMGqUWYCHRJxmwA826AGo9yUA1acOnTDfANhHm96jzP+KW/bTvCTlUsXJCPqq/3Aqx6 -0ok878zF+6y4S8S+M+RpVvgJhGQvROlqG3b0Ig+NKN0QrZIHyNCVpW3O6JZEefpKJeQxd921 -cb/yPb6jjzcS671nvbXuTqJkh+NqCz1qleFRgU0KmqbLwkg9e3lqyj6FAgwD4vk09TV2dzQB -D/0UItnL67tfoiQ16ZzmBvmA1Zb9ZPfmXvJu0VfUuhoUmeBPEiB2T3rOHg3p87axzl+sUYSw -8vxCzxJFopmfm+ffvBeBMjlz4zVHR1gJTqjClacN3KYanjjDivn4cWWbEzd4rozwJEYNFAl+ -rBrFWVdVriIBDdocjiWI8XWK38VzqakcJ0s4l4Rk9+tVvtF/Gvb4pqe2dLa3qAMjRlWVQLEE -uYMwSuIHvjCf84D2n230j7RmXDWHR0E3Ynz+nnOZ2MpqBWLeeTYRjzDl08eqnvWS9a4W7Il8 -ktpVUMFEC0N0dvEK/Jy6Vq5pu8GBgMNyEU+CK5nFS/h85a42YTI883oRcTOKUuS354bFv44h -sSro3C8qpiyb+K605slYqr5DCmt2MTtlE9ICDAIWahPsObB0dFgGHA20TjaIgpJ4SFYjGfu7 -VkbppxzFKON+LV8dlxHq1tJz2bPR3KkioiY9xee5BuUkSV5DlpDXLiXChOAdsbbOQUDQTYWo -KM2dHl2mUyr8rQlWWRP2UB8rCyiGc+wSwCmFoVJ2+aFwob/WlNfUXOqQg5v2wppypdq3d0Ei -n9X6cVfny9Z0GtpjnfApf8Z3FJuBYbFlKoa4PKm5slHIcFy4fAGBCr/yn46I4CTSY344K41T -Aef5/qfEu7mEUh80ce7fviTctBHCuNVl/02WK9LpAaRfFxf3gyD5/KsR4mGlYHrx7SWJC8QC -leD/ueJMZZnT/fxRoufJczZmxy5q377TGMqzb0YLk03U2q2YUzOQvrjcgOUplgwdwzTic3sL -zKz/AzLfDRGqm4sotQ8mqEn7h8V0yKjHYQ8/m9qyDA4oXmxOpJmvXdwgqPtOvflbO8+cI3tH -svzeQmFLrGPW0Xc9bRm2i8IwZUYeCpBEF2EvivLh3AmrEklv8tkkzVPOWD4Ylm+cAmFgxOoQ -p7OmQkearaUs9q3CwGUhJusYCvyzQxJtm3sN2FeFhp93uFDtyZUcZqlFdAuvpZdDtDtYgwIg -qrzooq5tXa6KxuJd+UdGeKG9I8HmzlmqxzZl2DAl1gdw2ZIVCYSy1aW/qUD/1I3ggISA0egZ -ehObQpbZd4Dor9o+fJAAuEgvCKAab5b7FxWEE3YdGPcMPC57BZUzJGzwcQ1giA7CJaBAmLGG -B6v3LQnoRXP9jDatgxw9qvaW6r6IIzTBMJD932S0prHNzvHFD/KQmtw1cKmClU6yLVktFMSP -5rJSjw6txNSDOtzg8cKqhOxZr/LhdKTn0So/mJdLfUOB7zy1Tyyh8rqS7bB+toTitXGJ4YRL -mCPO+bbNAC3B7c2+j+FscKCrQV0LTC0L2xrMJBmSi2uA25rf2DiT9y4lSVYxT834jsZRl0eH -2uKoiVuW/sY0/50hsLL/b7yngHxRVKv4W3CJ98FUlVJpBfDLPCWGAP3UWqrbdmVlHCIQRTyc -zWtCnX080iBX7wu9yEOY+6hBEz7Xh2eyQ0oWhyGQRqGOAaYH+wVmiTybsqBtWjoxDQcTN3sR -UnCsgwInlYiSNdeIUsqHwD2NImBhVscyutyzQOnmTP0DJkJKW3BPBb/AxXdKBR7chJpKlxvH -vCYPnCJwaZB1 ---------------030301020907070004050005-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/encrypted-email-with-autocrypt.eml enigmail-2.2.4/package/tests/resources/encrypted-email-with-autocrypt.eml --- enigmail-2.1.6+ds1/package/tests/resources/encrypted-email-with-autocrypt.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/encrypted-email-with-autocrypt.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -To: Tester 2 -From: Tester 1 -Autocrypt: addr=tester@enigmail.org; prefer-encrypt=mutual; keydata= - xsFNBFsVNFgBEACusSjzvbO6ykIg1MPfBehTgi0kfZiyItK0xyp0K5HhBKuAPGBviGuwxIcb - 959bSic1q9b4JLWeD3qe7J8wGFWSDHPgCtlcNz7ke+luYETC5FIT2jSHT3qPVc+gRUV920kN - RSvdAxJtYlwKjAFbukwJa7IDUHG0YZxP0O68pOC7EE7mNemKhf6IK8GU10+v5uaZShjXtEPJ - KCP5wRWoz2K7QZxIGPVaLjmtH+w0hHfh3Izji0h2IJsmEY+ipRXH3dyC2erf010lp71+5S4k - RtZKfUgPPLh+S/PA3n0Ojv3PbL56QCzlEsi48TG7zdb4dL2q6f3Ttdq+BqyxS5UudFdafL4N - PhM7XTYJut9ZJFJ04RA7mUQtbvuf8S8TkWLHRPYff/wm+G5q2G78Fz5+rkfKIGkYXboi7Vae - H3fZWMWl2gKWxeo28LJ9KkKEGNtnCO9+obQbPdAUmU7lHhn8ImDQddP6bxPGZIuTaTY8LG0e - XEZYv0boahY4fJm+zGl67Iwith+lfJSoikqu2Czqd8Rj9PxEB59uYZlfix7tFPBP7Mo8W4TZ - qwG/wwQRu+7oxwuh5qmDEvl+5tzH5dQCaPBUyVU7kuKPEkfD1JA+5CLx0Ig6oTot6bb4qE9s - gKHq+GdyZhZraypPn38LgykFltVKui1qSOzv4CxcgS4S6x8XgQARAQABzSVLaHVzaGlsIE1p - c3RyeSA8a2h1c2hpbDMyNEBnbWFpbC5jb20+wsGUBBMBCAA+FiEE4yiMfbZn/LYaJBR8s6hU - YNnZzEcFAlsVNFgCGyMFCQlmAYAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQs6hUYNnZ - zEdHjQ//YHjpFIZR2j1AusxzMvW+cq+VK28Xkj9aCo9h0uGYQHQQxaY8RWnh8L8AwAMKD06B - WMgiS9iG4xfaAIMX5cZQehuh+QiC1PYp4/yBWYbdjwBNzRC3bPdkvcNMH1NDs9IB2lheiJCd - Ra+RPp5TajaESv5kk4ZMqUdzc7KB7APiPgh/9q5cHeBtd9VyuFj0tJeQA8KhrMrvrcLti0J1 - 5bG0UstynPqIaw6YN0cd5s1fIdoIg0Xz0Q5UtWX+z7UOGPmtoygvGZTIZqRFB/z8sZAnm7Hu - YFidF55hhA46jMCvTfOEaumAsHgxFbR5shh4L+DTRUUrW5dnwy4M92Na6bZOeOpEGtfEIYfc - NlyOgXJoHKAopOfqBh5SLLmoqkBkQI0SzMYrSNDcZvoc/JX951zdsPqsfaDz0yRptwVmFzJR - i7DeE6Tt6bRU4pjq/LFuO1viA4aII7Scg4NUjlFAr1PEfZQXATg7NCYJasX4pHhRjGZVsdwm - D97/S0d4XTSJ0TnAZypSkqiVYFQfP8fEZh+PypNRqsZKpuHaANIO80ar16ExsvK5GDdCpYL9 - fVjwUFd6KKn1eY1/kHFj5BGzpS6fcyGe4AnJi4RSQl5ODVCIxsTCALM3fur/JdrLXS0EkZsY - xmVhnVm6meDUbzfz0XBN3zSbVsqXdAjjkNFXnDtCLSrOwU0EWxU0WAEQALxfFJmVRitfuqNO - Zds8lgFvum9RE8/6oWwpYtKmc9gk5yTssBaxopT+MI99SdNnte7ndUIL56F6d1bZwa51UJ8R - MGK1abF9gL9jsnUvE93FgybkdLLVx5Qh6lQN4jioh3R6sajLfoCUctok1E+fJec+yD0YufVd - 3hOJqBnq6Xj4TfaglTfL3RjCodWwQCtTkPlqVB8NSRLqwWFk5D/x+YeHV6rsxxyT9NQP+Obl - 1UIAOvo6avP7Ob4zm4kh7cObJBLg5mzcq/Etp/fN9nt5urECmcWS5YlcgRqNAD2gUg4Zjd07 - kTmPDOZRnHPbxGeEFPWsW5jgn5BL7hvCXQv6EOjXw0nlJKwtTP4Xj+QfOCXb9ddXMA0rcjpt - IIu5htfV6qy/vIY1NFbdqteYcUnhVwWZEyRu/T4DFRFczphDMT/MgohUvK0zIJ60s4+ZPNWa - BEgFvt4nPnMYMkCG0xPIZGZWIBrAbuVqLW9+yIsMK7F3N44sUCFifOptSxONfkHSrEGmWCPA - 0rPUA7NBdr1YyURsARKpF1YDZRNUMGi/YxNmpWob9/gPMlrGyad6D5g5lB9On/hlo/1VD2Zz - 8vEQlUAw20h1/CDR1Zp9vUijbdD1iXCKRPAIWEJDtPChNUHyuFD3H5JqjdlBIyyKgASjIzQX - glVMyhY/Qy1INc40hDAhABEBAAHCwXwEGAEIACYWIQTjKIx9tmf8thokFHyzqFRg2dnMRwUC - WxU0WAIbDAUJCWYBgAAKCRCzqFRg2dnMRxmhD/9aAgZEEAbLjhThzoGbHuX2DDwGZie4kdDr - jy4RDSv8eyCNvVTUipfZTZ8/jZTb+qXpPjmY9rXKSc3qOGPS/41pTEAQpSl3epIKD7RxRuNw - TP163+fleXtbc0HAQkBTL0VJLqi6iAHMnVB5TXd30s17GK0cmzapxUX7A+ghwEkp8lCNWZ+G - VZLibarImaAkega6EaGBUnohrLwRMoctHA/Paown4pLYo3WBtoz84dHhlW2nYZ/6vc6HjAfG - AEhxn0fPf5RKfojSndVrDRMthyCHFPP/9IZA6kKQrFVz1fG+H1fzHzqWKMVgpek0YgEm60VO - D3J0I2Fj3agsmZdDoQBq20gTpmi+D0TaqbMnQrPLBLbTGRB7dMFoai42PW2blUHaMD61fxzJ - sIw0gGYMUC3qAK+/I6Hey5Bn4idmyNgpgnx3jKJPDGf0WyFWzKIiCbmXr7XhzJJAYYGsTXcD - GcuHkO5hgNndUJPsNYIJn00TRLN6yPLgKdP46F9irYS6ymRo1n22Q8h0mmnbsIqsPeDXVi8z - PBOijCfHJEdURb160pW+kH2dfUw07KiqaAlG7sVtsqJ2n51JC1bu6JEKPhAZmIvWwAv+vwaV - GR8quyC+pQ34X2xgcK4u9e2mbOz34daC7aaBUcGtzdBLGJa4d/TRl2Dj4K+Rx4I1H7yNNVkb 5A== -Message-ID: <3299853e-ad1b-236e-e4c1-ecbb266c26cb@gmail.com> -Date: Tue, 19 Jun 2018 23:39:32 +0530 -User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) - Gecko/20100101 Thunderbird/52.8.0 -MIME-Version: 1.0 -Subject: Encrypted Message -Content-Type: multipart/encrypted; - protocol="application/pgp-encrypted"; - boundary="UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4" - -This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4 -Content-Type: application/pgp-encrypted -Content-Description: PGP/MIME version identification - -Version: 1 - ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4 -Content-Type: application/octet-stream; name="encrypted.asc" -Content-Description: OpenPGP encrypted message -Content-Disposition: inline; filename="encrypted.asc" - ------BEGIN PGP MESSAGE----- - -hQIMA19f30AGFqnPAQ/+MTkiOdhM0D3/TN7RLzd+AmmkbOEJUxvmNhXz0SAeO/2f -9/bcGduQw2eeJBe/K8qAwxK/1BdMcUKW3XWfrbP7TpdJZBInHs51X8Qg0RRePYg3 -m0txQ8f0jFZvrSN7Xyx6gnesdVJUeejzaSAJogSNVNcOD1RyA8XHGyfj6fhAuDkH -D2n4+b7S7BNHlV/HsPbcGpV6WBocREJPZKGe8jG+br9RNDEghRQLQ3JzdadKInYh -6tOac6Sbe+ykZOmOE+zZHKoU0kJ5vnuiuGeEMit3V17F3d05NoDqt6IOh3iz4a1z -abDuKWcBSXfMSnthBWzCBsGG+nv8eSm/7hzOfWBgVCjUXU5VFPzdvUwADQkkzKRe -Hs6IPJ1VB69Ty31SniXy7E5JkAdruL1oAHuzhmzPJQuGed1G39W+llRK1nvd5ZJR -SxKClFrMy+vLogey09sAXFfAfij/iEgYskJHM/mm6gxMnJ4Q27VPYB5LreirhlYp -DeicXpDPKIvkuMHlrrAQG1I5rgnGVNfU7UzwMaC9OIX4uUX3dZeldunCY0Yxt3CW -O1dm1hnYS2gPdtksL7L75UAqZvpTLIeYO6GdYOGBZ4fUUileFKMMfU/8gf2KCW53 -/hcSseor/U1QWJ7viOH59zUplKY9IQKZCBTkAjXGWyl0ctV+hHCUCIaTfCCn4yOF -AgwDstfXiZKlwTIBD/4gm2E95V2hEPm814Mg3uwW0Ra1HDVcJyosGFtMQd8zb4yL -+Hf3K5gtRIpI5l9CHWOL5PQkl2RmKSwcsgAYUzM5OQ3FzBXflFP4VY54gSFBdcUx -ugohdq4Lj142z9Sp0Jr5pkisXe9mLRv8Q+Z+dCrEj7GkDr2BVU+lVv+Iow//Smg3 -30EEaeZyoP6tiliOalhUuyKbwoGY/4wktrE89BkVcH+YcujtQ//+YwIiUwjFLwbI -NdrB6v3/+TdiymMvNeUuFOX6uTeb8iYVCrOjb4sMn2PqXVyb9Vx6sxbjVJi5PVgg -qaBT292WjTU4W5PjsjQMBOZbJv/f1SssmYm7qs2iF9xiZi2QbiOtzFC9qlaK2an1 -RhfV0gZWOklZn4VnDUHUQri+5aOgpuTK0ew1rLnmfIC6V6uIBmVgdp38sLe+gbBp -Wa13yxj5HHLTegxoqruh8UnEXFr5U+v12wVKuflRcVMVanybdLbswqkAwddLK01h -QYScnNnDUO6w2t6K3jMvt0bzbeumGlk2f9V3HjZmBEdhd1Yo4odlBf/QAGOUUSUy -J3I6kOHQcfgqPNkvB8z9i8tP5EQLUSxHfAMWXXXio36NV+q08HeA4M0Pup6tXiuE -HogkyPxcH1F/GYZbQ8YH04FEpkz7JcrKh/QbPOKuSChosIkfpDG8lT0ID48emNLq -AQJwNWQoKbGhCVdRM6z/IFuK/EwOkdx97MamyJA8lrlxaRagu9Ls+EGnUjWeWdJ/ -H4wWWK/yyqrIeyf6C12edxaXRc4uEZYdWPjWXsMqgDHStOxdOcPDuqNTXfxbaO9/ -KDMlgqGPQYBJbGxNTeBrAITQ5508ikns1flavAOsi1WlPQ8Aq25oaQzG1M1R2m0/ -iiYaqWVZWX5iC/KU+QjbQzgMbE/bMzpDimioSjD7oDRIX2sCcRoix+Vp/VAoXDrg -H+G2Yt8+MjfGODwZ/oWJorFVL1lCpEePHseA1R724Pe/c7c4XQM+MekQi9SSA7fm -4101kfwAg/3xGmzQXoLUfyrk6YIwm5UhBA4Uw9d4Q7OgCPG3aNyhjb7pp12WAO7h -tJQv+wY9fRPfL3VEkuq83MiT4GQLR0JjyOsJb9KOCgTXs1Ql+5g50pJtec6/8xQy -Tr2EUFY5wD+W1YQkVOY4Raqk7Y1XuNQwARkrlzSgCQvjGymKxBtqvPO0Y4CNuKSi -pJGgbFbnif/pSQCHMIi/Cmc5jUkcvpYfPJyN6fYiUoZh0BjReR8ShUO47hVAjDuH -vPAyTkUvPJFJW1bNsuYm83ILHGqI8SrghKDAn053uJ/8ADRa78+aUzGiqKzaHlf1 -1KBDnCsyTijvnus4IxHKEPIHBL4nHA+tGRWzMfYof372hlwfH5cnmx85c9J7SOcx -vlYm13hBLIwE17Jw/H4G7i4nYzgN7t+V+SVzobebHMK54+Dndi9baLQOYHnV8K7F -aeL4Mg7pp4j8kYE9HJ1Gq6skAQDOUtmmsWylKJiIKoicl/rYpzo8Xk2Z5sRHDPID -BtAgETL1zkP71hKG6P90tnLyrKvL1D3Hfkw6tNFz5+8m9UfEWINVbEqPAdUzmHUZ -GoBGXIpzQZnSBcfgk7viLsgzuc3JQsltYslCL0KCGnKaNEPlJFMEszeXy4kc2Ult -q2o4uQ6x7/xCRFRmIcg5f9hd/I4KKtd5KGh211B66drkb/5/r+35lQn9UccakByL -qSu2YsD7NugoII5Th9vE2AJxC7hS6DJTYS3DCaE+crdtpxGP0HVTu81xBbbLNzk6 -wyWTcShMvIv1arbqR1f2E7Uc8lglTQ4jgq5roEt9IQLBvRCL7s8FNi8GbTrLltS8 -qDBbtlM/6+bCsaPeESfHwVtjU3M4NgHkxqnXcI/XPhJd/nbRE1OiQsFrVFtxM5P4 -/PhHKoZOeO126tAyh650ut1qvT5LYxdHgQ5oI5Z8hgqu0NP8MDzqrRSkJ9U6h1gb -F0l3BtgZpSSJQPWpy3grFtgNl2XvXo6/plK/26SxmbJ3eNwK3pvYvcsPt2Cih5s8 -xWQwyjR2MwnvSSidMC0m4qT6zlEba807SCAfQeS3O85Bt0PuybUqe5OhnEMScX78 -sqHmw0lk82mA6I0dRIXmXcd9rAgdBni9YAtAt773SETHm6qfO8pslNjjkyDt6GEV -maFOhSw7tn3RFfd4PklMUyK7v9tEaOteoM5nQXiHQ2wqjEXyYLiOiH3xy9M+G8fZ -tyixytusKUw2pxsgrzS4FHvQwZ6D2AwIfovHhTswKLkdRUtHCA== -=4FG6 ------END PGP MESSAGE----- - ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/encrypted-pgpmime-email.eml enigmail-2.2.4/package/tests/resources/encrypted-pgpmime-email.eml --- enigmail-2.1.6+ds1/package/tests/resources/encrypted-pgpmime-email.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/encrypted-pgpmime-email.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -To: Tester 2 -From: Tester 1 -Message-ID: <3299853e-ad1b-236e-e4c1-ecbb266c26cb@gmail.com> -Date: Tue, 19 Jun 2018 23:39:32 +0530 -User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) - Gecko/20100101 Thunderbird/52.8.0 -MIME-Version: 1.0 -Subject: Encrypted Message -Content-Type: multipart/encrypted; - protocol="application/pgp-encrypted"; - boundary="UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4" - -This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4 -Content-Type: application/pgp-encrypted -Content-Description: PGP/MIME version identification - -Version: 1 - ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4 -Content-Type: application/octet-stream; name="encrypted.asc" -Content-Description: OpenPGP encrypted message -Content-Disposition: inline; filename="encrypted.asc" - ------BEGIN PGP MESSAGE----- - -hQIMA9U1Yju2Dp5xAQ/6AnDaC/oxD65YSD6I1e5JX3vAzOgB0TL4eTPabl/KZJ6K -8eAWiZubWF7i/EWlEXOYZbWycZC0Vo0mUlSiye4EXB/dnY369r/2UIF6kAEW0d7J -LwMbmg0WMcL+liZSa7HyxajYn8Zb7CohNI4l41KjjYGAbKiJNaK442eEvAQ3fuNp -5/KvV10jwS6fGV3caouTa8aCT8r2U5FdxowuYGGvazLCfPI9aTnz84JgeTutZfW5 -B/yBBNDeRxmUEa9c3k+8aH9c5DKYBH4Chp5EMfvlTE/pZdhRd2RcTZsR637FQVgO -FpTHKvOqQNJla4WqGeH9iHOLJh9OAhHkRaiMbbo+072KfwNHqDD4iwjQ04jFIph1 -zImMJg79PTgSsjcTRTdvkQiHaIx7pVW1m212JEl4km1lmT/C6NCHxTYfNLooEAs1 -6YPbaARnbFTTWjJXfEto7s2PZoX1pZ7GG1MNVpAL6J/puUnmVktj+87bJLkxHQVu -wf3Qq+vcFqB5t63quPMbGbXnHh4P9V+ceWhUhNFSutKWcCmeQL4vxCtL9eOphHEb -1YDHb4FpSlpVJyVUmLh7g/1X3IMCS1HKpiIqJHAUu4FfouAprL5CAfFmCeCRMkqs -/4iR3KtpnwRPwNDgY8Gfy7CL0IdvWZdpyLFaFOPr604Kz2JsJwyxbu1opM3acILS -bgFYYz3p3HwqnGdbnch3+5H3XEToOaeXsH51zSUkR/oq/wNXDWKMKiU5hIUkHYq1 -NsC04Y4EHsbpDPo/GqkcdXEx7Dg0sgohqYqoU+iyq+jjyOEZxNEUdboMadxIm879 -nu672xjC+wg8rBvFr8jh -=q7pm ------END PGP MESSAGE----- - ---UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/hkp-listing.txt enigmail-2.2.4/package/tests/resources/hkp-listing.txt --- enigmail-2.1.6+ds1/package/tests/resources/hkp-listing.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/hkp-listing.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -info:1:3 -pub:CCCCCCCCCCCCCCCCCCCCCCCC0003AAAA00010001:1:2048:1516625442:: -uid:Test User :1516625444:: -pub:CCCCCCCCCCCCCCCCCCCCCCCC0004AAAA00010001:1:4096:1514659468:: -uid:User Two :1514659471:: -uid:User Three :1514679471:: -pub:CCCCCCCCCCCCCCCCCCCCCCCC0005AAAA00010001:1:4096:1510762768:1668442768:r -uid:Revoked User :1510762768:: diff -Nru enigmail-2.1.6+ds1/package/tests/resources/keybase-download.txt enigmail-2.2.4/package/tests/resources/keybase-download.txt --- enigmail-2.1.6+ds1/package/tests/resources/keybase-download.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/keybase-download.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -{ - "status": { - "code": 0, - "name": "OK" - }, - "them": [{ - "id": "aa46f804a5329395a0d4812c79052119", - "public_keys": { - "primary": { - "kid": "010150b4b0ec7c1674bd01ab3002101dabe0abfffdd4564adb5d3b345f87248528be0a", - "key_type": 1, - "bundle": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v2\n\nmQENBFdGIzkBCADKys5q0rYiTr/FYdoupmNAJ0o20XWuFp/V58qsnQAMcAY2pCB/\nydx9Y7A80QjZPuVcE5QdROfvvkMXAA47ZxZrH79Kaqj11DS5XOgtLVtITGtWvrYq\nIFujxP42ICWBh7LXUwrHfi93FX74ucXoWo/PZndbo+JBxc0ZsrHUdu24grTDuqLZ\nQ8mRCx5U4tf+zEVIU6kXubFzq8aPSnjfEg6MhXxSRictjIBKM0Ez2QwZmh1vAEmv\nn0kr0VaJJ7xVRgIH1CgNh/WWtbr0lrblKCkFkTFnQfslWvSEko+LqvwgBSKyKg8V\ntWbYftnBkn8FPbP5Brp3wYgBc/c7mrLROqAFABEBAAG0ImRldi10aWdlciA8ZGV2\nLXRpZ2VyQHRlc3Qubm90cmVhbD6JATcEEwEIACEFAldGIzkCGwMFCwkIBwIGFQgJ\nCgsCBBYCAwECHgECF4AACgkQhDnhcEaXfEb3/gf/V0da3gXN5TNOsWZKj/fI2FhQ\nBglJ2vlEamnppwtnWZGktdFZ1h6ymzQ9PY3IidbKctqs/QQWKtIBVh5k02fvUe99\nnsFZmINcLeajdu7IqvKxtFBuEwZAA1Bw9dhM3JRQM8z+l+CtbFh6dVufU7q5vVEX\nciCkhdn172QYTMAXNYE4Tfh7eaEAOdRyFcwiAGZ826pOp7Al52frK+MtaXa9D2fR\nINlDXD9+IIR80sig2B4iBGeY+qAmE6bFuw7MtBya6uKupLjtAD/v48Z5wBYuU0jP\nld4KH88IWksbQo1zW/O+1N7J1/U9ZGNwpvS+wtfyjlOpTS3YWGmY8sVturZqTrkB\nDQRXRiM5AQgAsDN5j4viE5E8H5N9cfzQ9ZO5BUk66yI2DVEeasqZWFCkRA+uFHcT\nF6YpCoSn4/JsvqvUWVh63uV5vdAiU9+4sNFT8nkP7zD0LQthFtgEXqNo11NR7yvD\nRT3TOAnGaa+bLyoU/SLXzSwctZksrQjzQJVSohQNznhj95XH3UEsUydHqje7ljp7\nNHWAJx+Tlp2Yh6q060/gwh37zsfdVbaVtjeaAYECX3z6L7JB4KBb9KGlmDmOMngV\nUuR8XWWE+LEx0m7B+kZ+vZhUOSDDomBP+8jGJmXlcIt8+LIBq0NeXs/YINCc89sa\nUPw/V6X/NFRkekKFzIprCzwhg0LWl8oXAwARAQABiQEfBBgBCAAJBQJXRiM5AhsM\nAAoJEIQ54XBGl3xGUvEH/jVTBoRfJ8ohc4Ahal8TyIm8vdT/Ax/ddyyaLnCxkLFt\n0noBlA7062N1Fvv86Ts93EFrK9nF3g20gXKBKETo/vJRqtODIrwtCMfzPbS/FkQw\neLtUDZXed0nq/Yaxk60H2HmWm+n9/126F3QIt7is0E3dY0e6DYJGRHnn+lWnUs/8\nBa16Zb/os3GgwEQwr4LPEty6CFQU2DNl5HmajeB1oEqmeDZ2f/y87GRpdCoTgudQ\niHMPdm2kPVbeAA6945W6Y2LSA5Hm+yS8s2dBs4+sEiW97owLz6vcak8Aw+7JFxL2\nJkoZuN28dueoVcFQw3uX0snoBXgo3LYsK71JoufrXhY=\n=Yrbk\n-----END PGP PUBLIC KEY BLOCK-----\n" - } - } - }] -} diff -Nru enigmail-2.1.6+ds1/package/tests/resources/keybase-search.txt enigmail-2.2.4/package/tests/resources/keybase-search.txt --- enigmail-2.1.6+ds1/package/tests/resources/keybase-search.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/keybase-search.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -{ - "status": { - "code": 0, - "name": "OK" - }, - "completions": [{ - "total_score": 0.05982905982905983, - "components": { - "username": { - "val": "devstrike", - "score": 0.022222222222222223 - }, - "key_fingerprint": { - "val": "1234567890abcdef1234567890abcdef12345678", - "algo": 1, - "nbits": 4096, - "score": 0 - }, - "twitter": { - "val": "devstrike", - "score": 0.011111111111111112 - }, - "github": { - "val": "devstrike", - "score": 0.011111111111111112 - } - }, - "uid": "cdef1234567890abcdcdef1234567890", - "thumbnail": "https://example.com/uploads/12345678.jpg", - "is_followee": false - }, { - "total_score": 0.029090909090909098, - "components": { - "username": { - "val": "devtiger", - "score": 0.020000000000000004 - }, - "key_fingerprint": { - "val": "abcdef0123456780000000000000000012345678", - "algo": 1, - "nbits": 4096, - "score": 0 - }, - "full_name": { - "val": "Dev Tiger", - "score": 0.009090909090909092 - }, - "github": { - "val": "devtiger.enigmail", - "score": 0 - } - }, - "uid": "abcdef01234567800000000000000000", - "is_followee": false - }, { - "total_score": 0.02361111111111111, - "components": { - "username": { - "val": "dev_enig", - "score": 0 - }, - "key_fingerprint": { - "val": "9876543210111111111bbbbbbbbcccccccaaaaaa", - "algo": 1, - "nbits": 4096, - "score": 0 - }, - "full_name": { - "val": "Enigmail Test", - "score": 0 - }, - "twitter": { - "val": "_enigmail_na", - "score": 0.0125 - }, - "github": { - "val": "na_enigmail", - "score": 0.011111111111111112 - } - }, - "uid": "9876543210111111111bbbbbbbbccccc", - "is_followee": false - }, { - "total_score": 0.022222222222222223, - "components": { - "username": { - "val": "dummy1", - "score": 0.022222222222222223 - } - }, - "uid": "9876543210111111111bbbbbbbbcccc1", - "thumbnail": null, - "is_followee": false - }, { - "total_score": 0.005000000000000001, - "components": { - "username": { - "val": "dummy2", - "score": 0 - }, - "full_name": { - "val": "Test Dummy", - "score": 0.005000000000000001 - } - }, - "uid": "9876543210111111111bbbbbbbbcccc2", - "thumbnail": null, - "is_followee": false - }] -} diff -Nru enigmail-2.1.6+ds1/package/tests/resources/multi-uid.asc enigmail-2.2.4/package/tests/resources/multi-uid.asc --- enigmail-2.1.6+ds1/package/tests/resources/multi-uid.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/multi-uid.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,256 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQGNBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5ElIcVj6bTL2gYJ7 -oADBaX9Xx8tON0ypEf8KtmmX7hFJ3rH3JWxAA6t/9oAtDZEMMCU3TwbW4/m8Y8rL -TAa5MEcPnB3ij1s/65GKFfGdsz+3yANL8raocRsUnF6JzwQAaMRrzzKz+HhW0qs9 -QpVbju7HiRAQSkh1mgkia0pT2EdJjlRWla4Kphuuqfu8leKqYIfk2vKsIBbvN5r2 -b6yvTEKbzvD0+noV5GmolFNxHm1kKO8DXFYVpgXbXJKcB4vJ6gg/L7K86nzzUIO0 -iWgczLeKT0kpArrmQdwuAl1QeoohEo/DmOUjvv1h64KcV5F78844YdBZujgTUtWo -YpQwF0YAyUf38+8h7fK909RziVDv7Rxh808uBT9y9kjVKbxVxSp8rcrR1l5Z9LNQ -2R+l71ZEzDuVDq4Gd+0ZwJGMZ+hnsj7uI4TXGUy/HWtNWZDwtt54tXFBGijyAkeG -/w0g8KoyhkaMrv8AEQEAAbQhVW5pdCBUZXN0IDxhbGljZUBleGFtcGxlLmludmFs -aWQ+iQHRBBMBCAA7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEErcSVMMtr -EyQS2FYQfxVoy4mX97oFAlub2kcCGQEACgkQfxVoy4mX97qm4Av/QryjGGGBfsmN -JHjrO+6JdJmNPcYcuysyH+XUbrka8BkCsaNh3SNyQ+SLxm69pd23uHAC3kVR+ZD4 -nkqEvVtwoilg8wgX63zFzjx6xJI1vgw+iyudhokdhLvk7KWGm2RjxPt9tH+O1ONm -JpahmrfkQvPWg3QRj4iRUs8Csc2J9LqG+teGxMV8KOg1Av5IKyBKQDnmpXSLWq5g -Bq8PfCJIP+0xxfW7zZkrlBaOTqWs8VHzjhlXndfoPGziEftI/hGANsaBBUYBxKWG -RdKem0OgLSzvNXiaoPgoHdKXpyHV1Q7iukbLu7Y3F589FQj+eymRRhmngYtmZPJM -m/G7DiXzL/dExV95RlNNmEd1C+cD0ji5ZRMZlsq7fRP6dgOXHAYpgS/zpkJqH3tW -goFitfnQ8R8Hd61HV3fGvblo0WvJaMA92reidfuPqVTGeyg7RE2YbgHWoqg34cYT -NWdPQEnuBobTMuyoWoYgEmkIP82KZx+KymvKi+tw0Ifo58uD7WZ0iQIzBBABCAAd -FiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAlub2QcACgkQeBYXMZzjEcRggg/7BLvs -vsdvzRo1nHsb6QBsRqdCU3rDRdIEhjiRzSmoZPUr8Oakb0PT+F5krKJLbI945N5D -tcj9iW+UvlNW2IG78BWm/ZsvxOUSMvL2hyrRIU2SuhwXqTuIUKI57RWpjte2NiHV -e8mNy5AWKAZ+z76+WsjslAuXhlrZsM351yn3JWdJZ4zQZFaNm7P71MKrVlK9bmSz -4vSvc1Qyqko3v3cXjaBbscrND1eT73Ue0YQgW7HSbk7Wh+cj/O+Mt18CO0hxkyXJ -B9n2yC03/PV97ny35uFPZc2aobrUL/V3HZxp5AKVouNKM8DBCA8yftpfrcY5zVEk -rEUCBYGWjqieNsEfgxpP5Yv+oaQNj68AS2lZVy7vDzfaDikWRAInxteepzv2/ScL -rYssCoNQScMa1wXerI5ci50KZH4Whtd+qamPcgfqnuSLMVwSHM3khEBArAldlq9A -7Y/iBwrfx4X8dhr+QKm68ohsVDFyUbgZ7ypme4bxiNKpl8HYUtnk5IDNiWC2ROjc -TWV8YmjcAS/B+UKysSUFpsxAY2b31mNwP297SDxbRRyhzCPOnKBoIWKIFTwp3BVP -KaaNhrzr+vgh1CzUBbdKFYPG1dj/pmB5uvWUNnQUxVQdLy2QCH0bbze+yGzUr0R7 -gkyDCXEiGvsqtk7g+aXm0/XpfKP0YVBlbRGcCZC0GnRlc3QuYm9iQHNvbWV3aGVy -ZS5pbnZhbGlkiQHOBBMBCAA4FiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlub1GcC -GwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQfxVoy4mX97ri6gv9E9I/bd5E -s3hz/X/oJcZIn2iOMkeax7zYqycBykVgvkyeK/kMZ2MFAdBv3i6tWuIIu/dp/0Du -PP7cyzEnZs+JPZyRnUTHDVeSP51jjfRJTbpl+Id3NeXFG0yqn6DYtRaalFD9kq23 -arpCrJLQToREVqXHYZeVPiUh0/zseUUg/pgk6tao4t7qXea2aAB/39lyv0wb+rvu -h3MFedeWCTb2WK0rEgo8KTm+8OHD73lgoPbWyI0zsHfd0tDloN9pS386caLXIcSM -1ZD4n5jm9lHpN1FQwqAc1IhpSkOfS7+wATKIGtcY4g7+hy6PuxH9RETXV4au4OpS -C8R5qnlVr8fs+joEZ5KcYCOy2HKSS0GufZot7GJFaKtm/Gjr933UPUqUtHYiSyNR -ovfpSlHn5pIPFDkR7d4Qc8ZpRzU9H4D0GLt5JeDr2LeTuWylQI74/i/wq9ESCPj7 -vOaHDT/RCrAAeojBA5o8TBYHjQ6PaLH4G4Pbp/BU8sMUrHlMjBSxsqXtiQIzBBAB -CAAdFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQFAlub2LgACgkQeBYXMZzjEcSoPQ// -U/yHZiq41Zn3SuI0isxDGLqpNqF+lGzs+KI2VHBBCKgn97GW6o43JPDIaWXOFtcI -JOux2Y13EID8XfS0EiCQLCf4vBRPfJ9TKyneHULBc9un+1QvmeK0/mWxUodWPpwp -cO/D9r+HzAnAuVCizOofojD33aDnAYgjh0nzjKuoQzatdVgT/RNY/O60sUhb5DDX -3X/aQRKQ4zrUktEAn4C4rFF366LDuYvMLiikesdcrgI/rFAtnTn+Bcn0GJsP6Qh7 -X3j5W0W/rj8sSwrksjtjykXFdcWCv7bXwjye/pQ1lVGX0qLZq6wJKGl+0+xwkSA0 -mjaT25TeSuxze74a6CDHlEKxE8qHFtVBpk+3K8Q2pmNH/SKIVfzP11t0O+06P1qg -9lkWxZR7K5eXWIe0Nke/EBjyDVsCNX88WxTzp9P1WwYggVCRNslFzGl0YSqlxTax -yyQoHTl78e31bFLCXHVvgFc4n+85uOHx4wyNqEeuy/07CF6sGo5uQKPEoHexnpi3 -ReQBmoms8hzkGdwMlhfrMY+6T1OX9XcVTdygCDrEXw9IY8UIcNtVmt3xCAlFpyW5 -fSQZ1+DpCR5xY3x6+ecbi3P5E2/Yze0yXjp7a9ULqOkb7VVrcN3LiixCTScUi+Os -Zuf/HMDGAS0ZAt6tznJ7BLfuQ6e8jJSLYaJdOm09rHS0IVVuaXQgVGVzdCA8Ym9i -QHNvbWV3aGVyZS5pbnZhbGlkPokBzgQTAQgAOBYhBK3ElTDLaxMkEthWEH8VaMuJ -l/e6BQJbm9QCAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH8VaMuJl/e6 -h4kL/2TAzcbEgOUnvipkoXOeJo4TZ4lo/fSB5OPXIruuAM7yBPaS/iFRAk2w9spp -Ut608E4TKAbFspwIywztsBuib6P5LV4+gGCsn1BIB0qPh3z1nWQzCVehcSwAxKF1 -M3lKdoNG0Fq5eyDQWSnOLPaNfbcq9p3VW8+dKwPyYwL8fYIRLvlgNcGgL4hheYHE -xQueY0saXUXKhSZyBshIIfHyhx9YAym87Cs2lbSZwEtXWpVmi8Xu3Th1upGdlXxu -iZ08JE7T/AbRBd0Uwzzgjx1xDwPwZIJWnNMwnrrrpKq5qdbgUvHtJOHRZAsH6A6e -e+WHYNCdDvCvuOxQ1laeN0srPzfD+tbyYRp7cair99uq3fYZB9U4odxT18g0Ggab -3Zz+tMm1KDgh0OFTvqzvIn7jeXuJQgpZQ7PYD6w0OInI/LjmkfLyZ2tGhbaGKX3N -Nnt7ELiTn3Q/I/97dPZo+FeIZwiDT1DTO++iRBRsYo5TqJg6aklNUyboDUXgFEDz -7ycAQ4kCMwQQAQgAHRYhBGVTfiEtwZAlrTjtsngWFzGc4xHEBQJbm9kHAAoJEHgW -FzGc4xHEeG4P/0g9Rg3uK5//oK7MDf3sU5q3uJuQpzVPGw/UKMw5liMAyFW/szhN -yKNYWJJvi6gVOmgN5Y+bxtYfUT83z60A0/E4yIpA5iFXuRfNuUMQa0RinYC+3KpI -6m4RPnM5Wc4TeTIXMTEQc2as2a38IF09R0RLJHbPMHBDxRiUXLDK9ve81Bqp0Rwc -NA5/PUX4pdDdjiAg8ZmgUYwBG3UvvPc5OQBqZELRgzkZZTb5LlrH0isjnMSHcDka -oucJFMl88VepXuOJliT0Whl8HTMEt/UpYH3I/4tjdgR7yaR1um3AXc0jNfuS8Tb2 -6Q0HX6Pisb/e/olWhDQ0Klt3cwGuNQmG8tGTcxx5XNmKRBp5z5Y+Wh2JWUW1Y8L7 -Y5xEFfVcRWSq0DKFPHNmFzwJZV7vhdj9USb2JoHs5+xNzDHtp3jvPxlEl2c4V9L+ -44fQwJDdSdPY3Jczb1rBmYHLBztXGX+5jIRrp/OkfC+XHx5/JNkVyXHZNoLyjIcY -92gZu6FHO9I3b+Bna3y48j81TMNp47n3vQEx5mmu7nXLWKz4x3axaetHv7D+5fXx -kX2rNzrqp7o7cTR4pafQz7Mi+rjdqeDN5mStDr7objT5FQ4frae8W2ih2WeZAWPh -dpvTJNmTNGGsJgKk/026iaGxkRNiRWaGsTZcqxfY9aVM713X+/HiohB0tBtFcnJv -ciA8cmV2b2tlZEBleGFtcGxlLm9yZz6JAbYEMAEIACAWIQStxJUwy2sTJBLYVhB/ -FWjLiZf3ugUCW5vULAIdIAAKCRB/FWjLiZf3uoOTC/9t4d7/cNwMs+dZDoMNTvuq -H4C7nPERdzA7mNH9sqwzMNChkNpdX+a4yYiAfJ+QgcZwARRS/qyrgIOXFpSVGiGN -/grSMTN970prpWD2lU1h8z5eIdhTOBNFLzgGbzAO0/tfbMc3p88Wzgmx4ugWxas2 -AviiQOIDsufA5biFzFsEV2ujp+BJxwKdVTOrT+Wb+I+EUw0rHs/jojbn9dZjPSnB -AI0GIAPbMyeSBEFgcRnlcKvlxA7Oywt5S3+p9cCXzs2petCk78evHAJoyeC/8/PC -9VvfduqZ5DFuQSxFWRv+FNfr3oQ1qidm2tA0djnOmQEN6zH9g9k/VqiLd7/k+hV4 -w40dKh7GFX+nkh55NV9UuuUDPOpS3udhIhQoEoI+pdmbuZKRi76zeGTiuMRQyhWi -WnSQIbYSaHkS69DDif1WvwumfLhYQxYgTLTmrYBDfTW628XO6rIa7+mRH5RMV6gi -GD+0YAepWJc1qWA5LGVw56kD6hrATIOLjiAY6bsbE4WJAc4EEwEIADgWIQStxJUw -y2sTJBLYVhB/FWjLiZf3ugUCW5vUGwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIX -gAAKCRB/FWjLiZf3uhxWC/0b2Sfnr2ObP5NWqOK14Pe9fmCVPiuurjVeiZQ6iiAe -VWgEXdpagKLxMGjfDe/aPLTMGpUdDSFHADMy/QyxM/OWMP4v/Sl8nV7hzY/T3pgV -YEgdA0HKNnGQb6A7DobLMZyEgSzcc31nGHZdzwXqf6pp/Wi3VCJYAJVscrUNOGhG -Qye0//IyrnJf91oYRyfRKZa8DD9N4mH6cwikJnpAB1ykEvJnLMWelwNMMLl4+zPc -EB5sNla0yVyiasth6ihXuHbxX6ERKfT6MnrMtmKZxjxhYgmwK9WQGGZVDsiH/WF5 -cF3QRgnpOCuZXPDMeCKsBNFEXA2ihkgMgC0zIE61+oScf/9PGxNoL1Edu83flvQU -aTimD3OF4mOIV2TweJ6yhgkXXYbEvpCPArOiy3YXeqjRCQaKk4qDJCfBUp4YBYvc -QeNs6SLYFPVOm2lGpReB+jIPFm6bcomLILqmdXclJ3D+DhdJGtmap2c2trr4ZRdA -OMpTPN4QuL5L2/HnXKZLcZfRwVnBVwEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJ -RgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK -CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkU -DQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU -FBQUFBT/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAACP/E -ABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAVSf/8QAFBABAAAAAAAA -AAAAAAAAAAAAAP/aAAgBAQABBQJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgB -AwEBPwF//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPwF//8QAFBABAAAA -AAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/a -AAgBAQABPyF//9oADAMBAAIAAwAAABCf/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/a -AAgBAwEBPxB//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAFBAB -AAAAAAAAAAAAAAAAAAAAAP/aAAgBAQABPxB//9mJAc4EEwEIADgWIQStxJUwy2sT -JBLYVhB/FWjLiZf3ugUCW5vUPwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK -CRB/FWjLiZf3upE0C/sHxV/UOQ4ynrtnU07rvhWMITFYABjHu6dS2zsrq3dT0JsQ -tbIs685rzLjawSAeMfU0V+5V7uu2dQmvcT8IJiMLfeKnHluP0AfF8PYJemeW2M1K -vsT4UwTznJ+SZLxFAhhu3WMlE9E1Li/dHeXXHgIJLN8iO+CLiq/M9a80RYEcSEyn -H9s+ZAoHYwPImu8uAVz02qcN3NGDb9gcnoP+SQ8D6SR0qNaW3DWaiwbLc2Ju6STU -danLZEiFa+5uCMl5YQVjxvt+qVCPMKRv+9G/qkZeGf+30M1b4Z3np0GjOaMRS9Vr -LY6vNIsu63NkFF9E4JN7tvt6NlVADW3fwojR/czO/FQ6ck/drRHqVCgHLT69PEYF -8nEyW7UuhDrSQGi8Dv0ZScFrce5uauk2q6dJLFmhUTdHKEsbEsXHrKzC4TfEn6GV -2go9oF9rZ2hULMFydKevZvgNNluIZxUCfNn/14vrA2FUEUvCEONU1vrIM2JhaG6I -/JyznJQcKUrOLGlt8SKJAjMEEAEIAB0WIQRlU34hLcGQJa047bJ4FhcxnOMRxAUC -W5vZBwAKCRB4FhcxnOMRxGpmEACoURCIb7MWy2zPCJrBQgPaCqLItsAwx1amejFL -PUhQV9t7L6sWuGeJwke/GC8NbVWh9jouuBi+pvuNxqMFtyg7QJ6/XV0H6s2hehmr -lktRzG/X2q2BBZFiq9gl9NT1LOx5hhShdBDW28726+arDRUq3HU3ssbhBZ9XjPe9 -IInEeysVH9L/Tbzo54I68rUUY6Y/tX3dPoFqUptUWQmKLiXa8E1VVki11wfc7+bH -krYy/+F+FdK9Kmlf90RBWKcQc2YPgxtxYlxEpMFJIERUjst4xJR4YLo4tZ95XQMv -3CRI29tylR15lmFxxVjkWDdWyR+iM0o9Vu5A7YeDoIFiAyIbE0yuuarQp4iHXk2L -5gbYc8WTG9KnvEDQrZ37bzl6gW5QFxFGNV0vpu18m9lkVVP21AUdAteE0M5wkw8l -V+rBModax+fUn4gMqfmSMEHyX7oWwor1capClEUvvcBdmL92dDT7mCvJbuiRU/c6 -TMjuBtMMu708dWvzE5QYFk3A3UBUT7us+BO79QWbeWnWYZYfPfmv7DzqMJLhlndv -f+QOOe1LOfVWT/U9N6OOX1dxS8l3d+gVM3GrCS/Aq33L/WY9bCNg79I4JGvEr8x2 -1sBcSMXUrNGHC3xlNO8+w67SxaIEME7tzIq4DG4I93gcxP9PHGGYNTNnqHS800Sd -RrTsE7kBjQRbm9PKAQwAw/0Ad2hDgUjKd6FMeb9MP6Mhe1+eG5XT+R65VUGJI8pL -65lGZwXotGC29Nu3jTSeH1o4xEx/zO8QoMt7cJYbLLWrOn/E3S23vdhbS/5p6cga -esiyeKYf9UBeKZiMihjoAX8i4yJs+I3oPbinRoPf26IG9j1JBpkZmiMv3DYinSGw -lnZvPfwGxcNlZ5JyMXs/5pNNspqN+KH6WqP9QjGUbpaDegX7QRy1ct4dKJCn4ntJ -YKLCx27NfEs1DD9OhwFNrhUaL57mRpCf3EJCKyKlifzU2cxsC0gzQL3BstlEwBXK -Y3UFxzXV1dBSudc6G0T7W80/QoRUCdJAm3cnGcbGJLkynkBDsjYF0RPlLkScNatZ -RZ16hbJiF76eT27GXcSDiUleTrnK5bOuEyDuTEZrzmIq8Wbux51rvotvoG3zf8v7 -zDrluNqiIUhmEYtnwpSZJWaIhgbBCco3ziWSqx9THXf4WJFXdg9NP6F68ZZhqvT4 -oBdpPZSshC2PaFFjJ/m3ABEBAAGJAbYEGAEIACAWIQStxJUwy2sTJBLYVhB/FWjL -iZf3ugUCW5vTygIbDAAKCRB/FWjLiZf3ujaTC/9WYbdFKb3mUkSi0VFOMKnuybex -wNJrzf9lJLo5MTWI1i8+DSlR+PMxzDBtPKe+tYFM0tgKB7rkjKz9nK7W8oscrpKR -mBN7qJVRtkLnqvnXeutW1qEc1ekk/r5S+ags0ioNWG66u2XSiv+TOQj81dql0Bec -xVo4xpnp/RhJuYzoQR7xp8e+z2ImGimQbLFd2GleLBb4Gt5i4HUfuTJQT+1wWGuS -nRfVSoVhF5hnlL43DmArGIMZbnptNWyIC7UKPtZBwytU33WjcctDDVRIAln0Kwlw -TBvW4XizcowbTwEchEL1AtSjrYzUL7CSE9HMce4flKhOUKG9sjLHgtd+uT8yskRm -p4RfXVBed94j1Ldiv7T7J0hCQzz1HmdrGtVD4H0ZcijGafObo5OzJ4qHniV3+Fxm -OmoMALxcQPpYx2YiORRLfI/1niKmWQXhaYAcAeH8V/UmLK2yRc12EFUVkHJL9Eii -/wo0++Ed5o7eHTwVrB4qFsm7t+RuY0LH7By9Vmq5AY0EW5vUkAEMAK/antaX5Fk5 -y9LkdorSxY0F9JiU/5YnijwB++S6l+0Try5psm0jQHGPxDSnBOAdgVoTSDIxQCjD -3Z+X7lFjiv1Dc/IhtySoFNEpj044IzEC2lCsXgEJ9OC7Kbu86s45lEXHfEXIuI5f -nYsbA9IgcbfurQPgp9lAgRjPDUrKXaott0I814grWx2zn2WHiGvCqJoo24IUWWRe -7tobcG9PkIeIghIyYJo2+EGgjf1EnrGm4oo3XGohHGWs1qKMN3MJt3/eqpdU04mf -KXkLCKm1/5NbfwpDDcDjel4cbHItf5Vmi8aFZrhvyQT3tPS4DocFMFyiDBodiP+6 -UHwup/f/9SgiKyMKu3plfw81Zp7h8PD1BdAJYRWsbFUKsStMLc2Z+UIIpGNCHgi2 -7GrRVyQYW8Bgc0ztt9mK4f07TRz8Ltc5C+A0MTEc9A0xWU7swDSzW8RWvEhvPguh -Go+xq0aevZVzgU+b4yVNrTtmjpA3Z4iy2frMFfPDgYQTF5wAOYPimwARAQABiQG2 -BCgBCAAgFiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlub1n8CHQEACgkQfxVoy4mX -97puIgwAny1rLO9upjdBkqToSrRgqPwbDc1X5chPzvpmWrPVwpHAjCQyiEZXSVxF -eAjW4Ws1QtNmCZAp+wMuynr5kxq0fuxV2S8lUeNOGaY5VU28QPiaQm7fDmT3zBlJ -wN50+ai+kA+9er9kQ/IIsJjlkvLtQiDeTp0R8sDgqM6oIwkMneuH1zXLMkoLVTUg -qoYT9FICaYgDo5Dvirolcw0QOdtb50B3AjvvEePzNdRMvYNbxpykB90Loakl+ikt -jonOCArcrcQ81x9xG/EVYOa0pMGqZnTclxta64XDJddH8rngsoPxQvJRA4zmyPLW -yPiAAipnqO0YxCzm4/G+NUHyUjRYFtfS6g/2bsvqo0UEOQHfnrwoO+tA55cpcAYs -kC2tW5++Xge3L685lpQ14r9/LLRmbPeqY5b2QXoaD+7KZMGRKIQtHoBhGJ+svdz7 -6uPIX4+EZZezAlKIyTz+2fIXfQSdLU/sz5u1NTcn2hWTpL8uUlicWG85X+Ogo1lI -aydpwmQTiQNsBBgBCAAgAhsCFiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlub1msB -wMD0IAQZAQgAHRYhBMc6nAnKRKiHmUhA44sgkypwQZ6mBQJbm9SQAAoJEIsgkypw -QZ6mgCcL/RZ4mNWb0Yf9PMpnO16GAmJC2uDjVb2BpV9eDcFT7WIWvt+IdagmaLip -LRHcOZaxoKjEhy9RX69bnca9itMq7o2N7Mr+Zc2gHZe2zF1K9sFiG41diDZmGb9l -HYNq6Kgyy7hajowuUbOejjHXAwbab4tdgDZYl4QJtJ7TAMTywMHGvTQ6URlj1L3B -sag2vapMIf76CP+F9S1XPWXF/GsGA4y+9OITGdeRqS/S1tP4aXrQkvWLgfkcbEBy -d8nftnG1yQ/q5e9HysHtdR/6J8go/j+s66SA76K2WORZzH/mvvSv9JLHL45LsWd6 -obRNHoLX7JXj6zCo7zfjmUZo0Uzq9pgJl2Cig/QMDEp2ZmAcUoWhr7VyjNCQLBiX -ByT9u9uNP8SdapN3oTiKnGLKy+YJE9Gya82CuWxXGDIG5IYd6oCpWt7KJcEznmxH -F9Bf2fcWYXkuI6s2NFE6U/SIhsfODT4rSDcsLsT++0zneACVbCgktZOA9UnCv5HJ -OpdNq6eqrAkQfxVoy4mX97pUKQv/VYRQyB7+1PG5lCXyvphysEtJno940LrCy7mZ -3Ema5l063O1exK6K1VjEa+OU9dxy11AjIljqShhkhHwdGXHzJECd9Eg3m0vwufMv -mB2LVMjAvfSYGk0HUYhbNvLwhFOqybntDdQJMs4g9/6yDR040YIz8OdRWB0DrVmJ -TIpsy6nrbyIo+HWRowa1MHnPr8/I111ivtVmf6Rj/3FKKExZ/o3D3+L/D0b+wQMW -otBEG+UzEOsyK667jq69I4XtcboQ/mNrDyb0n2DUmgoGLlQ+ztijbyEqaD8Qam2l -sZtGX93NmxjGAO07gE+Bih7vDrkgRJugw9QA23gfrJL0iAzxZCAjA82MkQC2BsDg -K/bwjjGAh75kVuYPesY1+VVugTwgZs81j3p9CUySWm39ftd68S08mkxb9+/aoETD -SyIS+TiQmejxFBM3MyhoFB1GVzkk1djxKTsbPePuHzbYfnJBP8Ugk95t1tlvpOo2 -TaClz4ggnv78fnMIN1yxYtvOj/fpuQGNBFub1LcBDADBQ92N2pPoaZ5xik09ebo3 -UZt5bU1YHgiByqbIA6fGc+RnN4GVKj+Q0vZRrHDPjP73BwpIdI5rSWNrCfD94vJb -BMcIjSH6HXlBXN8ujiXmywxqM83nAEGBH04BfIGR6avXuw1/++6fWfYvyNaJvsc2 -y0w9wr3enRWYA/sb9YMuYveST2VpX6os/7nBXIcZ6R3XLQoU0civjKgdHfHJly1d -oSQ2fUYyvRBh5MS/175neqeaAe26/HodozR6m+ywJdQJsfRlChz7dtiikLaZUA4O -alQE/PTFR+xaml3LXQMzaZr5MdP60aiO/XV+RQT0aelZPNByhUZSKWzdnM8tAmDg -XCGpHpDkYO4s/jIzrkxq3XmEBVOk28ln000czXiXRYPd8/psXd235bl89FCwfbvM -XHdsKGLwR/nJdUPx4y8k2ycBhf91Y3sjaBG5fjFME2LjhFnmxRN4+MV2CWppJFjt -KkF5QVODqDxfdAog4pIVBNmSOgkqsIZ7luGaJJiJi5MAEQEAAYkBtgQoAQgAIBYh -BK3ElTDLaxMkEthWEH8VaMuJl/e6BQJbm9Z/Ah0BAAoJEH8VaMuJl/e6VsgL/2k7 -BfRSWQRuQNBzuNamiTKSRlM6RzrLbcj2lmLs/ObaBywE5xWwdnZnB3HgYLspSD/T -GbDH9rknp4F5WsUY7DKY01mbMYEdSIkl3u1tWw7lcYUe1pWXpoVz7UIh2m/kfoF+ -ep1ZzMdLbGJhS7prP07gGnFXQ6mt7LRNGMJBq53ghKUn58T7ZxifudKMf0pWe/ww -zj19OyKqqAS9YYNv/paqQOK3ESUNnup1bbtDAxEjpmJ37v6hIRH8hyV6lTRRXgoL -mexcMNzQps+d9+0fWrGWZSu3Ji7rQ0X/iW0l1wNzjrxrnuiaMGAJpnelgVgnu9IY -6SCsAbCtIRmrMI5tFd96pxkRPcUQrsuN13rD6OJUcdLRXM6mb5mGegS4Vbn7qwzQ -MM27tf0rtyi1fm//rn3H3O2YVyGmL/g6X/6RSSDi4HZbGzijgcdUxGUu3ZeWsVfE -FYBjTXjLyIRs1PVPb4s5ynM4qOz3FFXkzt9rXUi5K1sjjioueJHbdRDCQYd/wYkB -tgQYAQgAIAIbDBYhBK3ElTDLaxMkEthWEH8VaMuJl/e6BQJbm9ZrAAoJEH8VaMuJ -l/e6WWML/iUBt93DjoC+Lbnf6m1w3IQQr+5JPB3UxRIMJIfCke8R4eAKUW3s5RnJ -jSfMVIbjRB5YbLqfzGoeksZps1siUm/bVSItRGNNYsQdIl3rEUDIqmjachgh17kq -8/Fl1qgMdv8MtUE4xUWnhmy9HDaBSTcBzXAzE83XNtnisWXTbi5rKWoDrkcUS+9a -6qD4Q5IKtxNjMdTn/T5V4pCxYjqRv+cL03Cxs7jTPsrmz6Geajto8iEBP5XkPxrM -rBSVs9C3cnOZz3h/8zGyWbhtjMmioGlYqvhw6agZg+QbBZaeJN9kWaH0y5vFLIb2 -PnAYJ3FlxwwezCxR/2vNXPI9HuHO9Umuh0Mv1uY4f/59GdQVU47h4Cy80Mq7VWF+ -IQU1aTNPT7qWRTDS692IuWaXVVMLTTaZwjJAuDiNtoZom/IwUy6PhqQENC77XcfJ -uerRcIEyXouQfCIzI8fe23+ZswPC9sRfhM54gsArK3/Y0BqCr91n2b+eu++XvGTR -XDZfhX0/77kBjQRbnMXgAQwA2KC5LRSDHuLTXipB/w5yEDgV0lDfrjHz9/sm74XZ -pq1Ax1VMsMshKsHBs9kWYsnmdrCxBl/vRvTWYuSEIMs1ofIrd7MKbJdOg1G3/DqG -yIFmUfNllt8UnJ0ZzE330/jaSxooAqJ5zIIbdJoGNMrSgugfXVT2aWVzTCI1HO6w -5U3GW8P6frQVRPDLf/OePcNPebX9M1uPnJpMilQ7VuJVgeyU0rmQUbD3GcET2pEv -GY5J8367EqqJ4QoLEBcDTU3AhhzZryfdpprTjWhNzyy2lmtMIeYc8dG2InIAoFMM -7+Y0zuP4m5z2eqpJNp7DNzZ0mhcC7LMFROMgrUwU70Hdyeb0dd0qE/6qkJJy+f7l -pFniYM71UUyq1OhdEh0DKk70IOVoOVFNeYnKpT6YhAY4fum58k5xLryuBbH0oMBE -m+GdcmoR83Cr/t7T3g4K/A7dnHJRllD1Fh5RXAh5KUTtcF9kLSCJlOMyvD83LUmk -J31FSihZgSpFKBmBlZN2wTxjABEBAAGJA2wEGAEIACAWIQStxJUwy2sTJBLYVhB/ -FWjLiZf3ugUCW5zF4AIbAgHACRB/FWjLiZf3usD0IAQZAQgAHRYhBKbNBCvJUC0u -adGFBSRi/BgwdNQWBQJbnMXgAAoJECRi/BgwdNQW5DsMAJJeGnVDmR1Bz6aNdwCh -z6alAglljaQaWT5IzL8d3bgjdob/DOjNJslmXw0aHvvYJJK/+wKol10FU7s8ikUv -L7c/OEliaaIaA10/QgVa6QScmqBWRUdJJMLvzNgMYa033eV6zn2ayR2b6GVvcoNx -i4w4rYgs4TbVklpxMmM3P12IRheceXA51I9gQOcwv86BTjP2vlHWyDaaPODDzwFW -2uhRlnaERB2Qt2vj9BXnUiOatz/NiUQ+NUiKLCeK5Cuk6xCdv433EWfTZp9PEDxJ -zTOIAgD7tdjzyO6/z812nLbX50Bx/0ToPm0U1k7QwzLHj9FxmK9yBFeyG5we3s61 -apQunHcCL1dqA5rIXwMwB4jIWDm5Qsaz1XgdSZGsN0LpOxkdcpnDZ9tYJ5OAwOHH -E5stz2zDjKLbl89cAcFAKqPVKIjZANJyUR+vtfBrF5ruuQ0UazWjDZScu27t9BBJ -Vzr3/9pWyJWVfidyX0TzxqzFjA/TtRoK/FiiFL6oxM2E4UmZC/9X0jNtk3iO1W97 -HRmtucyoblnv8SPfZgsA9nrCzosZnfNfsRwAX25HOhB7nQt6opwIE7kwANNyPvYK -FSPVxVk6CHHb1gcOL4wNjO/QtSXO/y5omI5jn0x5dWi9cLVPeUDaRLSmEuojQE8W -LL2oxCT4C2vdqc5Seohchs7r/PMCUBJcun8u6CBS3H/Cyu46ZginQh6FxCVC/Bt6 -OvLrn5/csZrlCT3x2EkYMs9iajcpYmYjXRdLLg9MsSEmVfelhSTOXpI2aIv0KsM8 -hTmemngs1T5B8pVtnFPu/UpFlOyLlnEG0iwapoiNkirRgnIMzKQNbXlXwusznqgU -ZtSFb75qXoi6iRIR7sqvonQLzdlb8uwM4GQGFkexahtKGh0DZk4OnJcqKgOg+FhN -e1Pu+9K67n1EhmdMLNYsj4tTMbqQUrwixJNVYVPOVrXdcWEYMJyajdpHnnZV15O/ -wKhCm9QTxCcLmfyMtAwEtudCV/HANROPYqS6iSugsPO3FWeYnQS5AY0EW5zF8AEM -AMLFZpixCDHZZ09QGmjC6AIvuDacKvcGRN9Xj/i4hEUZagRmLLooLRZlyEdbkK3H -TWB9nhdm9881FGQqHAsxO5ewooaXeqAcXHLdzSqjB5ft5MqYV8SpIYEP2cdx13HK -M4v+4usts7lk/qzMnE7iAbJq/JjMO7K5e36EK3n5vGuZa6E29UTbEBXYZKv9Hwg1 -uWTW6RdwqsTCzjC8U/38y4z8Xss44k3OFNnci5105vP7WXxgJbR7Dx5w+1I3Q9fl -LwGU6awrdrDVtp+s7/TqP8NgDy0JAKrjJIDsg2y3EfvnYUqbMtMl0HmFXjcPvO/s -SPrnmUBUNF0TUXuA/pYyNgfF3xjSH9BLDPfch7HqCNV8TsBnDkHsi4fyXy4n9qNt -JqJZTTIhGRNvRE79m0RnAPn7F1XBriSEOMGRcO8h4TgvLmde1UE2dLfts+z1hS9O -YKP7i7dcIPFnQzsR1IjwZXrEgVY/HSx1mt/3gZ7AgjLwKAGBVU1Dg6b/9bncFwC8 -eQARAQABiQG2BBgBCAAgFiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlucxfACGwwA -CgkQfxVoy4mX97pq/Qv+IEH1cMOtECeQ73hjdAB1NdkgLV0ksWZnH03heFPhQHYK -dWJeOoq6Y2i5FgWjnra6Xur4zGUl1xa0NluqODZOc6FIDoLKvSQHAcKxDqogjp9X -gj73Qd3v2Q/qPY32HKuRVcO/yPpxSvrX9jV3TeWQkIKHYYgpLpiYaxs0zIe0audX -2MvJbCy4lOqY4MM7bzbKo44j+TY+wQLz/Ei+mFJgUEx6YJA5eHBqEzGABlgEiMjz -h72roHqqdo11Sw/yWPDg21P2W10rrtlzIChwdjwWEyhNq0NrD5DeTq0RdCQwIGiS -XqMSJVVCtARawunebpENxNBS54kn60YY+zNS3U09cnlaGrP5g0UkpU91LoNd7t9r -C6vGAgeWeu3vMFhMI7fASofxGs8MJDAP5dNOs7hc5WGNPJwE8eSNsZvYJTC3qtUq -ZMCkP0RPjQwxXREQJYc//bG3H/4kFxnHii26fUxTSo4LlK6xq1Z5p5sv2KBkyVrh -qq2cvJHAtywo4NJNpldD -=CCK2 ------END PGP PUBLIC KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/multi-uid.sec enigmail-2.2.4/package/tests/resources/multi-uid.sec --- enigmail-2.1.6+ds1/package/tests/resources/multi-uid.sec 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/multi-uid.sec 1970-01-01 00:00:00.000000000 +0000 @@ -1,377 +0,0 @@ ------BEGIN PGP PRIVATE KEY BLOCK----- - -lQVYBFub08oBDACmb04i4u8xUV1ADbnbN5l83mpr70OyWVJb5ElIcVj6bTL2gYJ7 -oADBaX9Xx8tON0ypEf8KtmmX7hFJ3rH3JWxAA6t/9oAtDZEMMCU3TwbW4/m8Y8rL -TAa5MEcPnB3ij1s/65GKFfGdsz+3yANL8raocRsUnF6JzwQAaMRrzzKz+HhW0qs9 -QpVbju7HiRAQSkh1mgkia0pT2EdJjlRWla4Kphuuqfu8leKqYIfk2vKsIBbvN5r2 -b6yvTEKbzvD0+noV5GmolFNxHm1kKO8DXFYVpgXbXJKcB4vJ6gg/L7K86nzzUIO0 -iWgczLeKT0kpArrmQdwuAl1QeoohEo/DmOUjvv1h64KcV5F78844YdBZujgTUtWo -YpQwF0YAyUf38+8h7fK909RziVDv7Rxh808uBT9y9kjVKbxVxSp8rcrR1l5Z9LNQ -2R+l71ZEzDuVDq4Gd+0ZwJGMZ+hnsj7uI4TXGUy/HWtNWZDwtt54tXFBGijyAkeG -/w0g8KoyhkaMrv8AEQEAAQAL/RGnPgXGmvxY1v0+TM0LFAVXSg5yGHTIXfX6kX3/ -l80oMVRNibDh2HKrZU3C7AuQeK8jhjEgBrSOFINd/Z5rTRS/zucJwbAFqlw9Qb/2 -FTxMfhFqEaPdR9vzWkuLkZfrALts7x5TFDJX8EA8FNgaFx8SsClQKgQ6qFVVciVv -8BQqx14zhjo/NRG7Er9TXcLR6Ob1vwD0RF6pqBYN5LWHttLQ/6ACeP3DICxWL35/ -bWdYbVZTnY+Ev4TwdSLgS6qQY/WMyGAq2CYEpzAIajBKP0uY/YyKOFSisa69OAv6 -9lJUKjYxfO38F4A7Z0Oh5jF57nfq11FRjxlmAxUPX+ioaEQxvn8JmYaWsbrYJO/j -tu+VcySfkc13lQgr9sCo3eIRG+K5kvnyo9fkUyuKbWTZm+GEr1EFWXL9xURqcXkj -nYlFzcYq92TEKaGRRZnGmNbGV2w9RNTYMYlPMoGN9BMckNS/iX6aTu2S85e6xBq+ -8mrAkDhaeezzxVzUZl/UQedn0QYAy29QaRBzQghnVR2o0pQEPt6x8uHGIng5oTmj -hgHeHFRGv9aFyl4Kbw6kL1Ws1mjI1/H9lCWnqaH1bVZr1K0DmN42/JY8eOm5DBMq -w/nlYdFeAOd2UicL+rB2hWryPa5W0fODztqmHt1c7KVl4AJ2VEyUwDKhFMB1+mdG -O0qwAAzQ3eLrscCmAzF2rZFHBv8ve9CkjJN0GuUSV17L5UD2yjLPSiCk+WScYSuV -VrPQINLC1t0dUETEFPYZapFrsHDVBgDRcIjmB1BHjx34quacDqBWF8pWh1ZNAo38 -1MZL6V6VpLOr3UMMCaBZWYfW3nA58mg6gX31ugb7CrKXT9T5WB6naBpPIoePxHOx -rjer94O64nEP1v26/ZgtHZaGD/7BgKsAmR8iOg3amD+J4xclGUG32ANXL8m38fG+ -vOkbg1DynNSDezh+xwXPnQeFsXGFeRuzKamNBAatg0jwEp9DGQ/IMPiHe2ei9+6k -q3qfVA44Wj5GKJeDonVp/up7/rXAKoMGAJHhOpNs4vlwITL9sZSv4WR8XpGgua5f -e9AmnypP1qO4AemWHty/NQ0KOnc/ZRFsTQSqO3ct2MNJYVULAPGS7JD2S2BZPVGh -FMZgItwKkzzayqoV2aUnodHPYu/120c/4wVE09EqlCnyLftIBvhu3qDB2UH4i21I -+LLPbGYAJ6VfUP5rXelteQwmUwSvmLHMM6CRrFQ04AaEWBoY4JpwlXt+sCqssV2w -fJOeUDJ5MfCLtF/dy0FhN53h1jkCU/OKceMTtCFVbml0IFRlc3QgPGFsaWNlQGV4 -YW1wbGUuaW52YWxpZD6JAdEEEwEIADsCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC -F4AWIQStxJUwy2sTJBLYVhB/FWjLiZf3ugUCW5vaRwIZAQAKCRB/FWjLiZf3uqbg -C/9CvKMYYYF+yY0keOs77ol0mY09xhy7KzIf5dRuuRrwGQKxo2HdI3JD5IvGbr2l -3be4cALeRVH5kPieSoS9W3CiKWDzCBfrfMXOPHrEkjW+DD6LK52GiR2Eu+TspYab -ZGPE+320f47U42YmlqGat+RC89aDdBGPiJFSzwKxzYn0uob614bExXwo6DUC/kgr -IEpAOealdItarmAGrw98Ikg/7THF9bvNmSuUFo5OpazxUfOOGVed1+g8bOIR+0j+ -EYA2xoEFRgHEpYZF0p6bQ6AtLO81eJqg+Cgd0penIdXVDuK6Rsu7tjcXnz0VCP57 -KZFGGaeBi2Zk8kyb8bsOJfMv90TFX3lGU02YR3UL5wPSOLllExmWyrt9E/p2A5cc -BimBL/OmQmofe1aCgWK1+dDxHwd3rUdXd8a9uWjRa8lowD3at6J1+4+pVMZ7KDtE -TZhuAdaiqDfhxhM1Z09ASe4GhtMy7KhahiASaQg/zYpnH4rKa8qL63DQh+jny4Pt -ZnSJAjMEEAEIAB0WIQRlU34hLcGQJa047bJ4FhcxnOMRxAUCW5vZBwAKCRB4Fhcx -nOMRxGCCD/sEu+y+x2/NGjWcexvpAGxGp0JTesNF0gSGOJHNKahk9Svw5qRvQ9P4 -XmSsoktsj3jk3kO1yP2Jb5S+U1bYgbvwFab9my/E5RIy8vaHKtEhTZK6HBepO4hQ -ojntFamO17Y2IdV7yY3LkBYoBn7Pvr5ayOyUC5eGWtmwzfnXKfclZ0lnjNBkVo2b -s/vUwqtWUr1uZLPi9K9zVDKqSje/dxeNoFuxys0PV5PvdR7RhCBbsdJuTtaH5yP8 -74y3XwI7SHGTJckH2fbILTf89X3ufLfm4U9lzZqhutQv9XcdnGnkApWi40ozwMEI -DzJ+2l+txjnNUSSsRQIFgZaOqJ42wR+DGk/li/6hpA2PrwBLaVlXLu8PN9oOKRZE -AifG156nO/b9JwutiywKg1BJwxrXBd6sjlyLnQpkfhaG136pqY9yB+qe5IsxXBIc -zeSEQECsCV2Wr0Dtj+IHCt/Hhfx2Gv5AqbryiGxUMXJRuBnvKmZ7hvGI0qmXwdhS -2eTkgM2JYLZE6NxNZXxiaNwBL8H5QrKxJQWmzEBjZvfWY3A/b3tIPFtFHKHMI86c -oGghYogVPCncFU8ppo2GvOv6+CHULNQFt0oVg8bV2P+mYHm69ZQ2dBTFVB0vLZAI -fRtvN77IbNSvRHuCTIMJcSIa+yq2TuD5pebT9el8o/RhUGVtEZwJkLQadGVzdC5i -b2JAc29tZXdoZXJlLmludmFsaWSJAc4EEwEIADgWIQStxJUwy2sTJBLYVhB/FWjL -iZf3ugUCW5vUZwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRB/FWjLiZf3 -uuLqC/0T0j9t3kSzeHP9f+glxkifaI4yR5rHvNirJwHKRWC+TJ4r+QxnYwUB0G/e -Lq1a4gi792n/QO48/tzLMSdmz4k9nJGdRMcNV5I/nWON9ElNumX4h3c15cUbTKqf -oNi1FpqUUP2SrbdqukKsktBOhERWpcdhl5U+JSHT/Ox5RSD+mCTq1qji3upd5rZo -AH/f2XK/TBv6u+6HcwV515YJNvZYrSsSCjwpOb7w4cPveWCg9tbIjTOwd93S0OWg -32lLfzpxotchxIzVkPifmOb2Uek3UVDCoBzUiGlKQ59Lv7ABMoga1xjiDv6HLo+7 -Ef1ERNdXhq7g6lILxHmqeVWvx+z6OgRnkpxgI7LYcpJLQa59mi3sYkVoq2b8aOv3 -fdQ9SpS0diJLI1Gi9+lKUefmkg8UORHt3hBzxmlHNT0fgPQYu3kl4OvYt5O5bKVA -jvj+L/Cr0RII+Pu85ocNP9EKsAB6iMEDmjxMFgeNDo9osfgbg9un8FTywxSseUyM -FLGype2JAjMEEAEIAB0WIQRlU34hLcGQJa047bJ4FhcxnOMRxAUCW5vYuAAKCRB4 -FhcxnOMRxKg9D/9T/IdmKrjVmfdK4jSKzEMYuqk2oX6UbOz4ojZUcEEIqCf3sZbq -jjck8MhpZc4W1wgk67HZjXcQgPxd9LQSIJAsJ/i8FE98n1MrKd4dQsFz26f7VC+Z -4rT+ZbFSh1Y+nClw78P2v4fMCcC5UKLM6h+iMPfdoOcBiCOHSfOMq6hDNq11WBP9 -E1j87rSxSFvkMNfdf9pBEpDjOtSS0QCfgLisUXfrosO5i8wuKKR6x1yuAj+sUC2d -Of4FyfQYmw/pCHtfePlbRb+uPyxLCuSyO2PKRcV1xYK/ttfCPJ7+lDWVUZfSotmr -rAkoaX7T7HCRIDSaNpPblN5K7HN7vhroIMeUQrETyocW1UGmT7crxDamY0f9IohV -/M/XW3Q77To/WqD2WRbFlHsrl5dYh7Q2R78QGPINWwI1fzxbFPOn0/VbBiCBUJE2 -yUXMaXRhKqXFNrHLJCgdOXvx7fVsUsJcdW+AVzif7zm44fHjDI2oR67L/TsIXqwa -jm5Ao8Sgd7GemLdF5AGaiazyHOQZ3AyWF+sxj7pPU5f1dxVN3KAIOsRfD0hjxQhw -21Wa3fEICUWnJbl9JBnX4OkJHnFjfHr55xuLc/kTb9jN7TJeOntr1Quo6RvtVWtw -3cuKLEJNJxSL46xm5/8cwMYBLRkC3q3OcnsEt+5Dp7yMlIthol06bT2sdLQhVW5p -dCBUZXN0IDxib2JAc29tZXdoZXJlLmludmFsaWQ+iQHOBBMBCAA4FiEErcSVMMtr -EyQS2FYQfxVoy4mX97oFAlub1AICGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AA -CgkQfxVoy4mX97qHiQv/ZMDNxsSA5Se+KmShc54mjhNniWj99IHk49ciu64AzvIE -9pL+IVECTbD2ymlS3rTwThMoBsWynAjLDO2wG6Jvo/ktXj6AYKyfUEgHSo+HfPWd -ZDMJV6FxLADEoXUzeUp2g0bQWrl7INBZKc4s9o19tyr2ndVbz50rA/JjAvx9ghEu -+WA1waAviGF5gcTFC55jSxpdRcqFJnIGyEgh8fKHH1gDKbzsKzaVtJnAS1dalWaL -xe7dOHW6kZ2VfG6JnTwkTtP8BtEF3RTDPOCPHXEPA/Bkglac0zCeuuukqrmp1uBS -8e0k4dFkCwfoDp575Ydg0J0O8K+47FDWVp43Sys/N8P61vJhGntxqKv326rd9hkH -1Tih3FPXyDQaBpvdnP60ybUoOCHQ4VO+rO8ifuN5e4lCCllDs9gPrDQ4icj8uOaR -8vJna0aFtoYpfc02e3sQuJOfdD8j/3t09mj4V4hnCINPUNM776JEFGxijlOomDpq -SU1TJugNReAUQPPvJwBDiQIzBBABCAAdFiEEZVN+IS3BkCWtOO2yeBYXMZzjEcQF -Alub2QcACgkQeBYXMZzjEcR4bg//SD1GDe4rn/+grswN/exTmre4m5CnNU8bD9Qo -zDmWIwDIVb+zOE3Io1hYkm+LqBU6aA3lj5vG1h9RPzfPrQDT8TjIikDmIVe5F825 -QxBrRGKdgL7cqkjqbhE+czlZzhN5MhcxMRBzZqzZrfwgXT1HREskds8wcEPFGJRc -sMr297zUGqnRHBw0Dn89Rfil0N2OICDxmaBRjAEbdS+89zk5AGpkQtGDORllNvku -WsfSKyOcxIdwORqi5wkUyXzxV6le44mWJPRaGXwdMwS39Slgfcj/i2N2BHvJpHW6 -bcBdzSM1+5LxNvbpDQdfo+Kxv97+iVaENDQqW3dzAa41CYby0ZNzHHlc2YpEGnnP -lj5aHYlZRbVjwvtjnEQV9VxFZKrQMoU8c2YXPAllXu+F2P1RJvYmgezn7E3MMe2n -eO8/GUSXZzhX0v7jh9DAkN1J09jclzNvWsGZgcsHO1cZf7mMhGun86R8L5cfHn8k -2RXJcdk2gvKMhxj3aBm7oUc70jdv4GdrfLjyPzVMw2njufe9ATHmaa7udctYrPjH -drFp60e/sP7l9fGRfas3OuqnujtxNHilp9DPsyL6uN2p4M3mZK0OvuhuNPkVDh+t -p7xbaKHZZ5kBY+F2m9Mk2ZM0YawmAqT/TbqJobGRE2JFZoaxNlyrF9j1pUzvXdf7 -8eKiEHS0G0Vycm9yIDxyZXZva2VkQGV4YW1wbGUub3JnPokBtgQwAQgAIBYhBK3E -lTDLaxMkEthWEH8VaMuJl/e6BQJbm9QsAh0gAAoJEH8VaMuJl/e6g5ML/23h3v9w -3Ayz51kOgw1O+6ofgLuc8RF3MDuY0f2yrDMw0KGQ2l1f5rjJiIB8n5CBxnABFFL+ -rKuAg5cWlJUaIY3+CtIxM33vSmulYPaVTWHzPl4h2FM4E0UvOAZvMA7T+19sxzen -zxbOCbHi6BbFqzYC+KJA4gOy58DluIXMWwRXa6On4EnHAp1VM6tP5Zv4j4RTDSse -z+OiNuf11mM9KcEAjQYgA9szJ5IEQWBxGeVwq+XEDs7LC3lLf6n1wJfOzal60KTv -x68cAmjJ4L/z88L1W9926pnkMW5BLEVZG/4U1+vehDWqJ2ba0DR2Oc6ZAQ3rMf2D -2T9WqIt3v+T6FXjDjR0qHsYVf6eSHnk1X1S65QM86lLe52EiFCgSgj6l2Zu5kpGL -vrN4ZOK4xFDKFaJadJAhthJoeRLr0MOJ/Va/C6Z8uFhDFiBMtOatgEN9Nbrbxc7q -shrv6ZEflExXqCIYP7RgB6lYlzWpYDksZXDnqQPqGsBMg4uOIBjpuxsThYkBzgQT -AQgAOBYhBK3ElTDLaxMkEthWEH8VaMuJl/e6BQJbm9QbAhsDBQsJCAcCBhUKCQgL -AgQWAgMBAh4BAheAAAoJEH8VaMuJl/e6HFYL/RvZJ+evY5s/k1ao4rXg971+YJU+ -K66uNV6JlDqKIB5VaARd2lqAovEwaN8N79o8tMwalR0NIUcAMzL9DLEz85Yw/i/9 -KXydXuHNj9PemBVgSB0DQco2cZBvoDsOhssxnISBLNxzfWcYdl3PBep/qmn9aLdU -IlgAlWxytQ04aEZDJ7T/8jKucl/3WhhHJ9EplrwMP03iYfpzCKQmekAHXKQS8mcs -xZ6XA0wwuXj7M9wQHmw2VrTJXKJqy2HqKFe4dvFfoREp9Poyesy2YpnGPGFiCbAr -1ZAYZlUOyIf9YXlwXdBGCek4K5lc8Mx4IqwE0URcDaKGSAyALTMgTrX6hJx//08b -E2gvUR27zd+W9BRpOKYPc4XiY4hXZPB4nrKGCRddhsS+kI8Cs6LLdhd6qNEJBoqT -ioMkJ8FSnhgFi9xB42zpItgU9U6baUalF4H6Mg8WbptyiYsguqZ1dyUncP4OF0ka -2ZqnZza2uvhlF0A4ylM83hC4vkvb8edcpktxl9HBWcFXARAAAQEAAAAAAAAAAAAA -AAD/2P/gABBKRklGAAEBAQBIAEgAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQF -CgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMB -AwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU -FBQUFBQUFBQUFBQUFBQUFP/CABEIAAEAAQMBEQACEQEDEQH/xAAUAAEAAAAAAAAA -AAAAAAAAAAAI/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABVJ// -xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAEFAn//xAAUEQEAAAAAAAAAAAAA -AAAAAAAA/9oACAEDAQE/AX//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAECAQE/ -AX//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAY/An//xAAUEAEAAAAAAAAA -AAAAAAAAAAAA/9oACAEBAAE/IX//2gAMAwEAAgADAAAAEJ//xAAUEQEAAAAAAAAA -AAAAAAAAAAAA/9oACAEDAQE/EH//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAEC -AQE/EH//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAE/EH//2YkBzgQTAQgA -OBYhBK3ElTDLaxMkEthWEH8VaMuJl/e6BQJbm9Q/AhsDBQsJCAcCBhUKCQgLAgQW -AgMBAh4BAheAAAoJEH8VaMuJl/e6kTQL+wfFX9Q5DjKeu2dTTuu+FYwhMVgAGMe7 -p1LbOyurd1PQmxC1sizrzmvMuNrBIB4x9TRX7lXu67Z1Ca9xPwgmIwt94qceW4/Q -B8Xw9gl6Z5bYzUq+xPhTBPOcn5JkvEUCGG7dYyUT0TUuL90d5dceAgks3yI74IuK -r8z1rzRFgRxITKcf2z5kCgdjA8ia7y4BXPTapw3c0YNv2Byeg/5JDwPpJHSo1pbc -NZqLBstzYm7pJNR1qctkSIVr7m4IyXlhBWPG+36pUI8wpG/70b+qRl4Z/7fQzVvh -neenQaM5oxFL1Wstjq80iy7rc2QUX0Tgk3u2+3o2VUANbd/CiNH9zM78VDpyT92t -EepUKActPr08RgXycTJbtS6EOtJAaLwO/RlJwWtx7m5q6Tarp0ksWaFRN0coSxsS -xcesrMLhN8SfoZXaCj2gX2tnaFQswXJ0p69m+A02W4hnFQJ82f/Xi+sDYVQRS8IQ -41TW+sgzYmFoboj8nLOclBwpSs4saW3xIokCMwQQAQgAHRYhBGVTfiEtwZAlrTjt -sngWFzGc4xHEBQJbm9kHAAoJEHgWFzGc4xHEamYQAKhREIhvsxbLbM8ImsFCA9oK -osi2wDDHVqZ6MUs9SFBX23svqxa4Z4nCR78YLw1tVaH2Oi64GL6m+43GowW3KDtA -nr9dXQfqzaF6GauWS1HMb9farYEFkWKr2CX01PUs7HmGFKF0ENbbzvbr5qsNFSrc -dTeyxuEFn1eM970gicR7KxUf0v9NvOjngjrytRRjpj+1fd0+gWpSm1RZCYouJdrw -TVVWSLXXB9zv5seStjL/4X4V0r0qaV/3REFYpxBzZg+DG3FiXESkwUkgRFSOy3jE -lHhguji1n3ldAy/cJEjb23KVHXmWYXHFWORYN1bJH6IzSj1W7kDth4OggWIDIhsT -TK65qtCniIdeTYvmBthzxZMb0qe8QNCtnftvOXqBblAXEUY1XS+m7Xyb2WRVU/bU -BR0C14TQznCTDyVX6sEyh1rH59SfiAyp+ZIwQfJfuhbCivVxqkKURS+9wF2Yv3Z0 -NPuYK8lu6JFT9zpMyO4G0wy7vTx1a/MTlBgWTcDdQFRPu6z4E7v1BZt5adZhlh89 -+a/sPOowkuGWd29/5A457Us59VZP9T03o45fV3FLyXd36BUzcasJL8Crfcv9Zj1s -I2Dv0jgka8SvzHbWwFxIxdSs0YcLfGU07z7DrtLFogQwTu3MirgMbgj3eBzE/08c -YZg1M2eodLzTRJ1GtOwTnQVYBFub08oBDADD/QB3aEOBSMp3oUx5v0w/oyF7X54b -ldP5HrlVQYkjykvrmUZnBei0YLb027eNNJ4fWjjETH/M7xCgy3twlhsstas6f8Td -Lbe92FtL/mnpyBp6yLJ4ph/1QF4pmIyKGOgBfyLjImz4jeg9uKdGg9/bogb2PUkG -mRmaIy/cNiKdIbCWdm89/AbFw2VnknIxez/mk02ymo34ofpao/1CMZRuloN6BftB -HLVy3h0okKfie0lgosLHbs18SzUMP06HAU2uFRovnuZGkJ/cQkIrIqWJ/NTZzGwL -SDNAvcGy2UTAFcpjdQXHNdXV0FK51zobRPtbzT9ChFQJ0kCbdycZxsYkuTKeQEOy -NgXRE+UuRJw1q1lFnXqFsmIXvp5PbsZdxIOJSV5Oucrls64TIO5MRmvOYirxZu7H -nWu+i2+gbfN/y/vMOuW42qIhSGYRi2fClJklZoiGBsEJyjfOJZKrH1Mdd/hYkVd2 -D00/oXrxlmGq9PigF2k9lKyELY9oUWMn+bcAEQEAAQAL/ROlx2gxEaNiUrnPd8U0 -wkYW6oJdwZHuYUO2Kso7Oa5W12mVAhPN6dg7YdwGMs57Geb2un4jVSSMStRz0bol -si+3PqUsreWmcacci3qA1MlVACKTACFMNiP2AfqVinFFseyEfFDc4KPCRif53Psa -uVRhV+VTm4CH1KM5J9EhtDKgb/2Fff1uyJcG0aGicsQ3IN7SoZVoHRdx1ZFEo10B -b2nuuNuAwgFzCVWsoquwZMQ1q9N+PZyUpRDy0SybJBowrRX+V4trh1+2Dl4yEMhP -Le7E5xkgKXgQ76EBJUMA7nPsJv2KAkD9C4XYRvQ+P/Kokx2r6QfMUhWQtikeCm2D -hA4/EM2x1llwcTkhxwuldx1HO6wF2uMn6Yxhy313Eshj/N0puk3YaBLLKNABnTU9 -/M0XjYRitDETh5e0744lNQNy1kFKWZhcjdlnwWfMXGtIoH3tXDuIv91T/i+Amoqi -WyEPRrPv8hj/+AaJ9WVbNIkguIdtsXR4pP/ly7aFwBrvsQYA3PJlqHi92NQBQkEj -SpO8LE5HPCIwe+IqH2pvTDZyhWqv7zcvbqx11tyI52V+9cpOzjy/M7vS6R0JIOBU -R6wMFL5DzI7bAzYf2up25fEVQzAY4gasnsXviRV7jFJzuEMfUQezREgsdq9hm3gZ -RBHWNR3AECSoUUWZNwvaFOp9rDjbvAh7gtsOcEusS66WdfZaxRO1RKoppH2pzoqG -K3XtCraCRsLRbUzU+IuNbFUtOBmuGnbsqSoqxLOOHZYLF6EDBgDjFO34uqlavnyd -QrMV3STUGlXlE+HuiQnBhPPxp9R0s9+09mIw+brn0JxeXA8emdrVdC8tg06iMk4V -0V3dfAANhUuumXuSInkwGk4ypE+WgrIeLAE38Izi2cTipnuol7Vgwc5IIv2eCdja -EYXSYxtcx6C7YFVu81g1ftVnyriWP+hWnz+iKMst2LDAGtdkRKIG8Y/3hhLVciLJ -VexX4eg9NjWm8H/rOLpDvDuiELyUUUpcPMeesuylkqVmavlGND0F+gKvThKgEYYL -3+CYAbjxKwtsKUCbQ+gqIiQmgNjP8PfJCldXbMjhTl7Y0WJZ3MHyUV1gw7iMD6H9 -P7wf0+pvacQdgrGm73vlDbuwAAr+pXdaL006Ryc6w3huQNcGrvsmamRccLeBZt16 -5SfFhSgCqQQsK420deoUM3DGf8mdnGDBUHL1Dgrl02dAaPF0pcsTJypvTnaEBbH2 -wlU25Lju3IUDqq/4kClrcpL8CHMIxvkxwW/7ih4Hq9q9LLUf9eDahNxAiQG2BBgB -CAAgFiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlub08oCGwwACgkQfxVoy4mX97o2 -kwv/VmG3RSm95lJEotFRTjCp7sm3scDSa83/ZSS6OTE1iNYvPg0pUfjzMcwwbTyn -vrWBTNLYCge65Iys/Zyu1vKLHK6SkZgTe6iVUbZC56r513rrVtahHNXpJP6+Uvmo -LNIqDVhuurtl0or/kzkI/NXapdAXnMVaOMaZ6f0YSbmM6EEe8afHvs9iJhopkGyx -XdhpXiwW+BreYuB1H7kyUE/tcFhrkp0X1UqFYReYZ5S+Nw5gKxiDGW56bTVsiAu1 -Cj7WQcMrVN91o3HLQw1USAJZ9CsJcEwb1uF4s3KMG08BHIRC9QLUo62M1C+wkhPR -zHHuH5SoTlChvbIyx4LXfrk/MrJEZqeEX11QXnfeI9S3Yr+0+ydIQkM89R5naxrV -Q+B9GXIoxmnzm6OTsyeKh54ld/hcZjpqDAC8XED6WMdmIjkUS3yP9Z4iplkF4WmA -HAHh/Ff1JiytskXNdhBVFZByS/RIov8KNPvhHeaO3h08FaweKhbJu7fkbmNCx+wc -vVZqnQVYBFub1JABDACv2p7Wl+RZOcvS5HaK0sWNBfSYlP+WJ4o8AfvkupftE68u -abJtI0Bxj8Q0pwTgHYFaE0gyMUAow92fl+5RY4r9Q3PyIbckqBTRKY9OOCMxAtpQ -rF4BCfTguym7vOrOOZRFx3xFyLiOX52LGwPSIHG37q0D4KfZQIEYzw1Kyl2qLbdC -PNeIK1sds59lh4hrwqiaKNuCFFlkXu7aG3BvT5CHiIISMmCaNvhBoI39RJ6xpuKK -N1xqIRxlrNaijDdzCbd/3qqXVNOJnyl5Cwiptf+TW38KQw3A43peHGxyLX+VZovG -hWa4b8kE97T0uA6HBTBcogwaHYj/ulB8Lqf3//UoIisjCrt6ZX8PNWae4fDw9QXQ -CWEVrGxVCrErTC3NmflCCKRjQh4Ituxq0VckGFvAYHNM7bfZiuH9O00c/C7XOQvg -NDExHPQNMVlO7MA0s1vEVrxIbz4LoRqPsatGnr2Vc4FPm+MlTa07Zo6QN2eIstn6 -zBXzw4GEExecADmD4psAEQEAAQAL/RyjQla5aasg1GabD2BQLse70+ISnFom75tn -dKQCbGy5VeqoX9w8xL6O+77aAYXrMtN+bGAa0SinrQHTy4W0QOrkVI92miKoFKvI -qYPCyfMDVJZABmxY42jC/MA2uxkBG3pkStf6dhkJd9iIJQ56e3Ues0z8Wu6a/esS -XPHJvt3QkBWDXv4tQVYMQxr/qrcR05nh/s1SObSKGTpVBEcRnVHVEzREwU1Gl8CS -6vdMeM4phUmeS7h6J+u5l+06CcBRhoF2hXlamY81AR4mfPbENBxG9Mv99bZT/SFs -PBgOHp3+G4cGZmZ2WsvaPO9+imQj4oC4rV8+3J3iqaEgJ2Q9k2D5NimvLIf4r+1P -yBHYQXHluaLjDRm2u6Tm/e2MujtfudO9acFbmIl6QjCLobfQ3sQYgalCq3N+PV2a -PSuf7PDBiwR+jl5UHPcOQV7UcTWp1CK+MzXB22mHYxiG4z62PWSZ1tCBMwqrRllr -Ieg+u8ONdkEh9iHWUuyIDn58WnLp0QYAz2OzbYIrTPd1S6qVjczqIOO9YulgUG/H -7oTEhkvkYTYBjVyL4dKbEitIY/dzr55sQFf3Z4lTQfJjx+pbkbyRcLnva7bQ0RP3 -YCQFI1udn4R/GJeeA/irQr+ou+dAXZFfMIY+F/6ZjHNztPndbFeUH+Odukj7W6fL -YHOTKJFDY2vvzMSE+GD9x02eG5IJFFAQMlbGO0FctznJi0BQH+HCC0i51Ym8VOaf -jNIZqtjnMx1sn02SdgiwCclh2qQl1M9FBgDZEqZQ2usp9s20A7UChU+UMwBZAhoT -Q3cTTruJEVbbCdI8T8I9TlySv2uk9ilWQF9J5j8r6b/GFOKOEclT5fqsoYy8r0i5 -mZ6x58FLKPys2RpEUxuHbpOV9rl1ZCIX9MayNIkWgkz8ouHAfvmUQUDpWBe/y042 -wCCcT1fy+/HRAE1kK0ZGEz3qqeGuUE3jHg8YOGT/g2dt03sLNRdoM6Y5ORrs90gY -Mc+arvxi/r84VrcPyaACB0TdP6zNpwUymF8GANje/Wd9aXoS4IbA4DdmRpyK6+NH -LACIHhB2psC9YooDaJYCZN0EftKcc3qzeLgt8mXNdEKceWP56cm/TIwGSfgaCybd -MzGHEhz8RuegtNyBDKq8a1fhQjLq2wxOEb14cMHBSikXCy4hqAN4jYajFVGAh5pS -ETKRNbBhFVGSDJrKCzo2TdKmw5UMGOvyhMFS1OjQlZOFH1ob6xtkYYZutIOz2IDG -CPAkwDjR45YSiEGScfwoPjrgvgYl6+6nJMzAmN/ziQG2BCgBCAAgFiEErcSVMMtr -EyQS2FYQfxVoy4mX97oFAlub1n8CHQEACgkQfxVoy4mX97puIgwAny1rLO9upjdB -kqToSrRgqPwbDc1X5chPzvpmWrPVwpHAjCQyiEZXSVxFeAjW4Ws1QtNmCZAp+wMu -ynr5kxq0fuxV2S8lUeNOGaY5VU28QPiaQm7fDmT3zBlJwN50+ai+kA+9er9kQ/II -sJjlkvLtQiDeTp0R8sDgqM6oIwkMneuH1zXLMkoLVTUgqoYT9FICaYgDo5Dvirol -cw0QOdtb50B3AjvvEePzNdRMvYNbxpykB90Loakl+iktjonOCArcrcQ81x9xG/EV -YOa0pMGqZnTclxta64XDJddH8rngsoPxQvJRA4zmyPLWyPiAAipnqO0YxCzm4/G+ -NUHyUjRYFtfS6g/2bsvqo0UEOQHfnrwoO+tA55cpcAYskC2tW5++Xge3L685lpQ1 -4r9/LLRmbPeqY5b2QXoaD+7KZMGRKIQtHoBhGJ+svdz76uPIX4+EZZezAlKIyTz+ -2fIXfQSdLU/sz5u1NTcn2hWTpL8uUlicWG85X+Ogo1lIaydpwmQTiQNsBBgBCAAg -AhsCFiEErcSVMMtrEyQS2FYQfxVoy4mX97oFAlub1msBwMD0IAQZAQgAHRYhBMc6 -nAnKRKiHmUhA44sgkypwQZ6mBQJbm9SQAAoJEIsgkypwQZ6mgCcL/RZ4mNWb0Yf9 -PMpnO16GAmJC2uDjVb2BpV9eDcFT7WIWvt+IdagmaLipLRHcOZaxoKjEhy9RX69b -nca9itMq7o2N7Mr+Zc2gHZe2zF1K9sFiG41diDZmGb9lHYNq6Kgyy7hajowuUbOe -jjHXAwbab4tdgDZYl4QJtJ7TAMTywMHGvTQ6URlj1L3Bsag2vapMIf76CP+F9S1X -PWXF/GsGA4y+9OITGdeRqS/S1tP4aXrQkvWLgfkcbEByd8nftnG1yQ/q5e9HysHt -dR/6J8go/j+s66SA76K2WORZzH/mvvSv9JLHL45LsWd6obRNHoLX7JXj6zCo7zfj -mUZo0Uzq9pgJl2Cig/QMDEp2ZmAcUoWhr7VyjNCQLBiXByT9u9uNP8SdapN3oTiK -nGLKy+YJE9Gya82CuWxXGDIG5IYd6oCpWt7KJcEznmxHF9Bf2fcWYXkuI6s2NFE6 -U/SIhsfODT4rSDcsLsT++0zneACVbCgktZOA9UnCv5HJOpdNq6eqrAkQfxVoy4mX -97pUKQv/VYRQyB7+1PG5lCXyvphysEtJno940LrCy7mZ3Ema5l063O1exK6K1VjE -a+OU9dxy11AjIljqShhkhHwdGXHzJECd9Eg3m0vwufMvmB2LVMjAvfSYGk0HUYhb -NvLwhFOqybntDdQJMs4g9/6yDR040YIz8OdRWB0DrVmJTIpsy6nrbyIo+HWRowa1 -MHnPr8/I111ivtVmf6Rj/3FKKExZ/o3D3+L/D0b+wQMWotBEG+UzEOsyK667jq69 -I4XtcboQ/mNrDyb0n2DUmgoGLlQ+ztijbyEqaD8Qam2lsZtGX93NmxjGAO07gE+B -ih7vDrkgRJugw9QA23gfrJL0iAzxZCAjA82MkQC2BsDgK/bwjjGAh75kVuYPesY1 -+VVugTwgZs81j3p9CUySWm39ftd68S08mkxb9+/aoETDSyIS+TiQmejxFBM3Myho -FB1GVzkk1djxKTsbPePuHzbYfnJBP8Ugk95t1tlvpOo2TaClz4ggnv78fnMIN1yx -YtvOj/fpnQVXBFub1LcBDADBQ92N2pPoaZ5xik09ebo3UZt5bU1YHgiByqbIA6fG -c+RnN4GVKj+Q0vZRrHDPjP73BwpIdI5rSWNrCfD94vJbBMcIjSH6HXlBXN8ujiXm -ywxqM83nAEGBH04BfIGR6avXuw1/++6fWfYvyNaJvsc2y0w9wr3enRWYA/sb9YMu -YveST2VpX6os/7nBXIcZ6R3XLQoU0civjKgdHfHJly1doSQ2fUYyvRBh5MS/175n -eqeaAe26/HodozR6m+ywJdQJsfRlChz7dtiikLaZUA4OalQE/PTFR+xaml3LXQMz -aZr5MdP60aiO/XV+RQT0aelZPNByhUZSKWzdnM8tAmDgXCGpHpDkYO4s/jIzrkxq -3XmEBVOk28ln000czXiXRYPd8/psXd235bl89FCwfbvMXHdsKGLwR/nJdUPx4y8k -2ycBhf91Y3sjaBG5fjFME2LjhFnmxRN4+MV2CWppJFjtKkF5QVODqDxfdAog4pIV -BNmSOgkqsIZ7luGaJJiJi5MAEQEAAQAL90vYZ2+7nFAzANknwuQIA6YYccloxnpF -15lcZdNMJHqbRPaSOFmWB8KbCA/SNlFfv8DL4F9bxREid66KJyueGCk5x9FgGkrJ -rLtgcuCOG8ky93kcuVxD35NEYHq9YfnydfV4DLIcX96QCS+mf76gIDjpS3ngWZIl -z1Ol+AhFL2laOlb9wJuI3oRj+aRgNBxugiVWQ1pOtbfIv8qtfkcnYnMo/WKHHLAi -LSmTN6OJoR6UrstKXN98ek30FAq0wB1x7Ywq/xsb/GKxF7B9j0qSsguZQojSKVAT -XBv0s6J6Ljg2ThHCy9TalhAAHkD4Q10iqcO8NIcRBdRI0GwkfDksolbBhtMBWVmY -QrlErut/fqvwSSIfgF0Tp5DJIqsb2OQ+SQh+CMDDLsp01u6gnSFPzruCsSAt4P7A -iZxWRSQBKQAg6YHBBOJ6F49lxIc5LCXocF81ETN36DBsV2axktYYRBRiEJx6rDxw -m2wCWuu7h0MOc2zN9I9jrsihdG9DSMyBBgDC7PsU2UGixiD0sdH90MJ8dW0lOB/N -ggvzR+qJRFUnIRQK/hCrqTGE4HMr2P3E+Jm+5Skw6t1iiKALt7Dwy8VZ6qWwbXw8 -R+rYZpjrROxN7vBgrJO/1ruIav3VOIywkt0StoAWU5cEWWQdym/204yVNgpfBtNL -vyMvPGc9M8uMeCzpaE2LTcgE2J73otpW/FcEV7gOoGl7MpaIW/0CBS9Mqsp5IeLR -ujCZhn+hKUiEYemR13vJs1taxnmG6XP89UEGAP3Rr+jOxozQSPgmHWRKKIeGNzmY -lyH6LsEPffv9+Iu1GVLwft6S7lWSRXQsMoClZMCRfMw1HyL/I7FjvVL+kpKzDvZ8 -qGQfGfYnS1c9ADYoZs9oHqIlHTkrEU7GD2dmxuAFlmtz7nxowJdkHMyKaC4viX9x -5lgDJjK/tMHqP5G0kbONUi1Hs7RUr5dpRIOURsjNkrRLSjSmw4GMXch0hL6cUJ+b -Z2XhBoT+ljqIEYVLKjsFK/Yb+e7r/2+usY6n0wX/QAekY/r5jsxCw4r8Wmug9s46 -y3Ym3c9gG6gxWo0AJW43iiFIcbckkivfDELMChy8D12sorijnc9QxDQ3t7rUVgcP -HqWBEqyEOZC8lgoxE+zioKZ2jW2XQUycNVJv8VXXes/uvm/HYrO+i/uwW7ASRssP -DIbNCflmV1Zhs9nIX2hFgEO4meozECB9NnxJVPzS8XjOgozPjpqJ0/MWfA8O9MCK -TeeMzzONSc3IqtgNgZ8YY8DammOPhknNmdUaE0pp2d2JAbYEKAEIACAWIQStxJUw -y2sTJBLYVhB/FWjLiZf3ugUCW5vWfwIdAQAKCRB/FWjLiZf3ulbIC/9pOwX0UlkE -bkDQc7jWpokykkZTOkc6y23I9pZi7Pzm2gcsBOcVsHZ2Zwdx4GC7KUg/0xmwx/a5 -J6eBeVrFGOwymNNZmzGBHUiJJd7tbVsO5XGFHtaVl6aFc+1CIdpv5H6BfnqdWczH -S2xiYUu6az9O4BpxV0Oprey0TRjCQaud4ISlJ+fE+2cYn7nSjH9KVnv8MM49fTsi -qqgEvWGDb/6WqkDitxElDZ7qdW27QwMRI6Zid+7+oSER/IclepU0UV4KC5nsXDDc -0KbPnfftH1qxlmUrtyYu60NF/4ltJdcDc468a57omjBgCaZ3pYFYJ7vSGOkgrAGw -rSEZqzCObRXfeqcZET3FEK7Ljdd6w+jiVHHS0VzOpm+ZhnoEuFW5+6sM0DDNu7X9 -K7cotX5v/659x9ztmFchpi/4Ol/+kUkg4uB2Wxs4o4HHVMRlLt2XlrFXxBWAY014 -y8iEbNT1T2+LOcpzOKjs9xRV5M7fa11IuStbI44qLniR23UQwkGHf8GJAbYEGAEI -ACACGwwWIQStxJUwy2sTJBLYVhB/FWjLiZf3ugUCW5vWawAKCRB/FWjLiZf3ullj -C/4lAbfdw46Avi253+ptcNyEEK/uSTwd1MUSDCSHwpHvEeHgClFt7OUZyY0nzFSG -40QeWGy6n8xqHpLGabNbIlJv21UiLURjTWLEHSJd6xFAyKpo2nIYIde5KvPxZdao -DHb/DLVBOMVFp4ZsvRw2gUk3Ac1wMxPN1zbZ4rFl024uaylqA65HFEvvWuqg+EOS -CrcTYzHU5/0+VeKQsWI6kb/nC9NwsbO40z7K5s+hnmo7aPIhAT+V5D8azKwUlbPQ -t3Jzmc94f/Mxslm4bYzJoqBpWKr4cOmoGYPkGwWWniTfZFmh9MubxSyG9j5wGCdx -ZccMHswsUf9rzVzyPR7hzvVJrodDL9bmOH/+fRnUFVOO4eAsvNDKu1VhfiEFNWkz -T0+6lkUw0uvdiLlml1VTC002mcIyQLg4jbaGaJvyMFMuj4akBDQu+13Hybnq0XCB -Ml6LkHwiMyPH3tt/mbMDwvbEX4TOeILAKyt/2NAagq/dZ9m/nrvvl7xk0Vw2X4V9 -P++dBVgEW5zF4AEMANiguS0Ugx7i014qQf8OchA4FdJQ364x8/f7Ju+F2aatQMdV -TLDLISrBwbPZFmLJ5nawsQZf70b01mLkhCDLNaHyK3ezCmyXToNRt/w6hsiBZlHz -ZZbfFJydGcxN99P42ksaKAKiecyCG3SaBjTK0oLoH11U9mllc0wiNRzusOVNxlvD -+n60FUTwy3/znj3DT3m1/TNbj5yaTIpUO1biVYHslNK5kFGw9xnBE9qRLxmOSfN+ -uxKqieEKCxAXA01NwIYc2a8n3aaa041oTc8stpZrTCHmHPHRtiJyAKBTDO/mNM7j -+Juc9nqqSTaewzc2dJoXAuyzBUTjIK1MFO9B3cnm9HXdKhP+qpCScvn+5aRZ4mDO -9VFMqtToXRIdAypO9CDlaDlRTXmJyqU+mIQGOH7pufJOcS68rgWx9KDARJvhnXJq -EfNwq/7e094OCvwO3ZxyUZZQ9RYeUVwIeSlE7XBfZC0giZTjMrw/Ny1JpCd9RUoo -WYEqRSgZgZWTdsE8YwARAQABAAv5AQWBwkCDR8ZQ1Kf3TZGjlfnbyJeieFYE6aVa -Vu7/xUYn9NB13+q83dQBgVtZPGRDlV5EA1QuucrBo1iHI1qqm1ywnjBosLO5W/Yd -KVsmii4Tb3UW3mZNXD4Gwm10uMKPh+E2fj/SkMCZOw8VawewybTxq9Z/f4/smMnk -WBcjByO7MgJCPI4Yz/Ug1fCjwuofXLmNapvWuFM8DRVDOOlu/ezkSAJftD0TMHcv -Rx7UtjQEceCYLaS4XTZlP9nxxHXq61CJyTOWKxMQu4fsH6tM/u6iSHXxJgEpmRCb -azTba3DP04R5AscLBK/fWPuMEErmp+YUN1/maDF5zIH4gXByw72QbodRY4WQnJ5e -WWo6lfPYB7Pq6KNk+JksL4JLBI5q0rvx6UdTPMOwhyAcnPP4GzQ6MDvnkBMLBbYF -2PHBOfLBPcQv9I8FcttP4YLORsdf2ACoG+Tr93SINte9CAmlDwzxy49IfihSCH95 -2VCreE3Bj0/52mcZ57N10kGF+QsNBgDo29IeZ1V/Q78dYY9cYNq8T5UXGVHPQ/io -OsvJvWby8PL0WdIMhxs/7rdxF5zx4BvdWgY7hkniA7oAvx4yncIf9179+Wbnqaoa -Nci2g65e5cDrUPWkCdrL/4mQEbn2t1Uxl3LFnGelJ65YS7sQLbqTbwKvolii2IWe -dG8bvNvIKlaoTc1dvUbJ6lTGh3Cdit9dHFoJ39uDxFyM9bE9ED18YVEkhayrulF+ -QPbXadVAoepDXevMFo/TaSScVfDS1EUGAO4n+NY3haWm9vka8cmdJ3/rzgBe8ao3 -SsXAjODVc5dp/jm2GRNJ93BDpqVMKZ3KHWrNwA7aJJza3N1kN5S/4UC6qRq8y/WH -s55xOMnNiZPWc9fXyNW+2r4Rt+6Lcs/fSP6hkidEZONMaMDiHHpnjKGOc2ZTvZPX -S0DF8+YsLs6mOjwDtuuDL+Ol/C1KFYwV121X9Ouq8ZCYUCgM6zDWRiEaMuZl031Y -rYTJ8dA2F403gdvAw+FDxHj1LYKe+wjchwYA7dp+2mMBPPs4ZNdrmUD4qQkB074L -QnEfMBu1hmNobbdD7kdsxcjVliueTP07fNnE0cF+ue6gUkkCgR4tmDX+VijpVVRr -X53/c3xHHsxdI0u1nJzmdSqua989QrnbA/65+lYvqjiutibEjdwWKZ9F1J48CbAW -A89DfzIpxaAuK5yhOnMBzJl3u+FxuDKuvQVD59LdblzvRepQPFk4WDthxafUGQaC -AHY7qanif6R3hGA6XHU/kPYT2SAvD+/uRvyg8DWJA2wEGAEIACAWIQStxJUwy2sT -JBLYVhB/FWjLiZf3ugUCW5zF4AIbAgHACRB/FWjLiZf3usD0IAQZAQgAHRYhBKbN -BCvJUC0uadGFBSRi/BgwdNQWBQJbnMXgAAoJECRi/BgwdNQW5DsMAJJeGnVDmR1B -z6aNdwChz6alAglljaQaWT5IzL8d3bgjdob/DOjNJslmXw0aHvvYJJK/+wKol10F -U7s8ikUvL7c/OEliaaIaA10/QgVa6QScmqBWRUdJJMLvzNgMYa033eV6zn2ayR2b -6GVvcoNxi4w4rYgs4TbVklpxMmM3P12IRheceXA51I9gQOcwv86BTjP2vlHWyDaa -PODDzwFW2uhRlnaERB2Qt2vj9BXnUiOatz/NiUQ+NUiKLCeK5Cuk6xCdv433EWfT -Zp9PEDxJzTOIAgD7tdjzyO6/z812nLbX50Bx/0ToPm0U1k7QwzLHj9FxmK9yBFey -G5we3s61apQunHcCL1dqA5rIXwMwB4jIWDm5Qsaz1XgdSZGsN0LpOxkdcpnDZ9tY -J5OAwOHHE5stz2zDjKLbl89cAcFAKqPVKIjZANJyUR+vtfBrF5ruuQ0UazWjDZSc -u27t9BBJVzr3/9pWyJWVfidyX0TzxqzFjA/TtRoK/FiiFL6oxM2E4UmZC/9X0jNt -k3iO1W97HRmtucyoblnv8SPfZgsA9nrCzosZnfNfsRwAX25HOhB7nQt6opwIE7kw -ANNyPvYKFSPVxVk6CHHb1gcOL4wNjO/QtSXO/y5omI5jn0x5dWi9cLVPeUDaRLSm -EuojQE8WLL2oxCT4C2vdqc5Seohchs7r/PMCUBJcun8u6CBS3H/Cyu46ZginQh6F -xCVC/Bt6OvLrn5/csZrlCT3x2EkYMs9iajcpYmYjXRdLLg9MsSEmVfelhSTOXpI2 -aIv0KsM8hTmemngs1T5B8pVtnFPu/UpFlOyLlnEG0iwapoiNkirRgnIMzKQNbXlX -wusznqgUZtSFb75qXoi6iRIR7sqvonQLzdlb8uwM4GQGFkexahtKGh0DZk4OnJcq -KgOg+FhNe1Pu+9K67n1EhmdMLNYsj4tTMbqQUrwixJNVYVPOVrXdcWEYMJyajdpH -nnZV15O/wKhCm9QTxCcLmfyMtAwEtudCV/HANROPYqS6iSugsPO3FWeYnQSdBVgE -W5zF8AEMAMLFZpixCDHZZ09QGmjC6AIvuDacKvcGRN9Xj/i4hEUZagRmLLooLRZl -yEdbkK3HTWB9nhdm9881FGQqHAsxO5ewooaXeqAcXHLdzSqjB5ft5MqYV8SpIYEP -2cdx13HKM4v+4usts7lk/qzMnE7iAbJq/JjMO7K5e36EK3n5vGuZa6E29UTbEBXY -ZKv9Hwg1uWTW6RdwqsTCzjC8U/38y4z8Xss44k3OFNnci5105vP7WXxgJbR7Dx5w -+1I3Q9flLwGU6awrdrDVtp+s7/TqP8NgDy0JAKrjJIDsg2y3EfvnYUqbMtMl0HmF -XjcPvO/sSPrnmUBUNF0TUXuA/pYyNgfF3xjSH9BLDPfch7HqCNV8TsBnDkHsi4fy -Xy4n9qNtJqJZTTIhGRNvRE79m0RnAPn7F1XBriSEOMGRcO8h4TgvLmde1UE2dLft -s+z1hS9OYKP7i7dcIPFnQzsR1IjwZXrEgVY/HSx1mt/3gZ7AgjLwKAGBVU1Dg6b/ -9bncFwC8eQARAQABAAv+OegPhzEG8y8kMGfr2h6sdM30MkQ+3998xXwWgUd2h8a1 -BubLwHLmaMTNBS4bdxcMkbX3NRT3cyLgU6FTYh56jbBFucc6fXTBJaN89oKu5MQl -I/ikC4OPQvxP7qSRfbK0nZgjpfEaAHIe54gTpr456+4z+EesLghIR4aLGIIfu0vL -PIyG4jhQ8XW7BIlGWx4B5xGgDkiAdOxH+iRbwmUQrXNwyXG5kpFFELqpxZ/2dC5T -3g8F1sFJbu7/QWPN51erGx0/xTCtuStiQNSC2ldb7UOiJKTM18mMg50FvkuN1o24 -pfa4JgdVsCmrSKUHFmhvTs6i1WteDonaBMaU7Jbzrd34lmi5iKPV9COWljhpli3X -NAYGJsZ/xcCk7gSrqjgQVv/aabg939ETEbDbthYNIklUnEBcBEm+wUj3g4/eiAUi -xsvZ4DHi14I4q1ZPd/KzXmd0B3+s4xEIMGcr5MlJsq20zb1ybaKs6lTffcRr6wRg -II9skp6sb5qrTvpRWwzrBgDKXn90sdUIGrIORGvx/xvh0QkUZI+2k9rxwBLeKBxV -fHLlMERkefKO/o6qr6+fTu9DpUWTMVrHZlovccQikWNAvRSDDAZgDE7vun9CzJKe -YHyuhWWIf1I1abZTKGNGKtFsPzQ1lCFQu9+MIEfnpX1klvco+zvqvRmlE4seScDA -ReUdU47eLj/8QW293ezEtwYLIGg/7NweEQUYdZu5qvTxLBXe81ikQm9hDqO9JFS6 -OD5S6Lvo007UXBKctuMwp9cGAPZjbEEFYcE02NOd9GhsyEHRdepofw659MD0mIHg -MAEDtG0PP5fSYvOYGhYagz3fQEa4gdTneFp0UxUAKzcUk/ANHVPH5m3vNM40Pyi2 -LnAIZzi5EJ7uO09Bv3cGaXJnG27sj2koxXBSdUk/YyEixso1fczCIhkDXkS0zoii -waRD4UPO3iTqaDSDzFeIf5MJTR2PBvgtdXfcMBjvekYFxRkn9bLMMHBMoBg208Tt -9plKtYQPHVfcg5k3Yf3pwI/0LwYA3uf6vq/AcdmzDcPVVXcF0RUC00FBzMT3NUKk -hPg9Uw6ksWbkhAN48B8gtWbSi9xHOfVwxSRrAfiFl8aN85rDGkvjW2WmFeLnJe/0 -uT01B/k1unpWf2CUhhtkmvZsJnti7KGMol1j6Uz177I53J0xLTn6llV6YM5Gzft5 -mjNUlSYppJzNmkl6hruAElLlpOEWwtC0jEunjoxVBYShIueA+z+0a35DUJcUrAiH -1IPxpJYXViwCLjfdjI+KeQp9Lpv53PeJAbYEGAEIACAWIQStxJUwy2sTJBLYVhB/ -FWjLiZf3ugUCW5zF8AIbDAAKCRB/FWjLiZf3umr9C/4gQfVww60QJ5DveGN0AHU1 -2SAtXSSxZmcfTeF4U+FAdgp1Yl46irpjaLkWBaOetrpe6vjMZSXXFrQ2W6o4Nk5z -oUgOgsq9JAcBwrEOqiCOn1eCPvdB3e/ZD+o9jfYcq5FVw7/I+nFK+tf2NXdN5ZCQ -godhiCkumJhrGzTMh7Rq51fYy8lsLLiU6pjgwztvNsqjjiP5Nj7BAvP8SL6YUmBQ -THpgkDl4cGoTMYAGWASIyPOHvaugeqp2jXVLD/JY8ODbU/ZbXSuu2XMgKHB2PBYT -KE2rQ2sPkN5OrRF0JDAgaJJeoxIlVUK0BFrC6d5ukQ3E0FLniSfrRhj7M1LdTT1y -eVoas/mDRSSlT3Uug13u32sLq8YCB5Z67e8wWEwjt8BKh/EazwwkMA/l006zuFzl -YY08nATx5I2xm9glMLeq1SpkwKQ/RE+NDDFdERAlhz/9sbcf/iQXGceKLbp9TFNK -jguUrrGrVnmnmy/YoGTJWuGqrZy8kcC3LCjg0k2mV0M= -=qe9t ------END PGP PRIVATE KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/notaperson.asc enigmail-2.2.4/package/tests/resources/notaperson.asc --- enigmail-2.1.6+ds1/package/tests/resources/notaperson.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/notaperson.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQENBFdGI98BCACpdg8THYnpcUzCSDnRb3VryidfSge/OXMIdp4gfoout3/Bwpyq -UGJsHklUVnvg6augYXXyBOkcJrmbxNKYt5Nba5wcnwmryTwxzsJEfTlY9OJJ3g/y -U4y7xvFKTPdUGOCdxYaQ9nQI9ENpDAQ5vbPPhEhpt2ZerrqPmHd2qbN/VDcESuK4 -TRYetcIj9517dzrhD/OuVkpV9tAN0kNgO0FXitDHO0ECmy8m1ZdDIJLERPW24Xjt -hT4tmvvwDXp/TbIjKunxbrjvGrp2Ku9da+/un+EuYwh8Nz65c1H6ZEy6+MYkfxlr -CLiVyR3w13hAAIJo4BHVsJ/I1EWGXhd6EzSHABEBAAG0JW5vdCBhIHBlcnNvbiA8 -bm90YXBlcnNvbkBub3QuYXBlcnNvbj6JATcEEwEIACEFAldGI98CGwMFCwkIBwIG -FQgJCgsCBBYCAwECHgECF4AACgkQikEeKKBW4qMeZAf/f618aVSaZrx3OM502ikg -3B4IsVnZcr4YJqYr15uIZ8edtFfU1cdevKMcRLCw5xx7AkUoTUYn04icisFVsw2s -0n+/AdR0VLSCT6HweD+C50W7LLHpwqbniC0dy0qzb5JpqvMJZgceRqnay1J4+97v -1u/mtGsniwV4ow7DT5kBQNZhUR68qjl/4XW/ONALvdUTPihgARDqulB37frXT8ig -tD8T3eN+FloI/xykSdoNQ9szaJzjj9dsXlA531ZLjAB7Kr1rxhbQehNg3qrzlXlX -GMI4nwcxH6pU7DSykstoe2GLeV+Iint7wHt54eu8rbKooygVEKz3+1Cp6DNGKJ97 -f7kBDQRXRiPfAQgAzgXa86ciIVVGj1IsfWQvSZ2Z5EWbKu3mijPOivrOKyG0EbaW -hL5moj09JSoIweR4ZE8eixWNL9vnNpzVo65NrJXyKBBXBU6nwaLUT5pTnIqe1Vl5 -wbu1MPY+smTI9LybJFPKd5McA2kusN1EMhoovhFj797LY+48JF6c3dDH7KDQNL0s -S17k8ggvYPhHqMxYh/29ec24tySL1RN6ZIAe1qckBSQbJ75qXOXBzNSXsPgtgCwZ -B0aSXMsQy7vQwVmz3cB2NwDS7PLfb64dABrc+XMTp7gn9PNrYh98+/Xp7famQkrX -4SPPCYYXQvdv+D/3frxnwx+5AjtTlqqk/H9wzQARAQABiQEfBBgBCAAJBQJXRiPf -AhsMAAoJEIpBHiigVuKjSn0H/19Wd5IQRXV2jCQWoC/JhIqYExNNgXZldWceElrz -s80O9BYEZqzPGUFlFZ7JiWH2uZ8Z4xCbjQIa0LnyWradobl+1YWsE4faPJQNZ609 -sopyclZlIHuQAdJsld0XML564gNYY/Cac6jyrgtwgB860+2hOyiD8oGU5bQKU0v6 -+ADT6upPPWLlFHgcJbaSUm3OJ6bYUCM0A82FhQbuhS+BE9kL54yguRkAjdz7212T -9OIfHrBoZ4dx+WqYISYWeSZy94qd+WSUjtzIB2Piv3DyNlBB7hkMxXBUwui0vqsI -93ISStzk9gHm4dmjrMfDwtNYKSPAE7mVJyokghsLa8hgAqM= -=yT8r ------END PGP PUBLIC KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/pgpMime-msg.eml enigmail-2.2.4/package/tests/resources/pgpMime-msg.eml --- enigmail-2.1.6+ds1/package/tests/resources/pgpMime-msg.eml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/pgpMime-msg.eml 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -Message-ID: -Date: Tue, 17 Jul 2018 23:39:32 +0200 -From: test@nowhere.invalid -To: test@nowhere.invalid -Subject: Encrypted Message -Content-Type: multipart/encrypted; - protocol="application/pgp-encrypted"; - boundary="UxEMgGKKbt9SDjSozkXfqI0l07sqCV5I4" - -This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) ---DELIMITER -Content-Type: application/pgp-encrypted -Content-Description: PGP/MIME version identification - -Version: 1 - ---DELIMITER -Content-Type: application/octet-stream; name="encrypted.asc" -Content-Description: OpenPGP encrypted message -Content-Disposition: inline; filename="encrypted.asc" - ------BEGIN PGP MESSAGE----- - -hQIMA9U1Yju2Dp5xAQ//V7Qww8lFyDqa7oos8eVgEN7Oan2LWB5kl7hgDr272LDv -/oiWw39xRMWwwRr19QOcyszpOvJqEzKiJ+FrsBUptnjfclJjgPFHuZEeXeuKu+3y -ddyknseC0lxbWiFmUFxMKPREQSb5GqpVbLfKXfN8cd+lIHdW0V4TBlE93KyP9jmh -mMo/a2aFfYnLlpPQfcJu/YIMHy5R/fpLyBUddyz/wFuiQoxkSodo79Xmw8RF2j4L -s7G4AlIrV5uAgZrQpwYVLWYK3jSxDbgJIePrhnm2L/ohawNim7AlUhQJzi2//uKF -d4GeXTWuTsBCrM2VCDL1WvvmgH7DBylGI0cAX5un67wpH25cVzxjubRNRuQf2oko -2xPbnu9fTue9Ghj4tuEF4EP+uhRafce6F4Tj7LG4nA2ZlhMx3nO23BmVa2cfHrv9 -MK0g+ojpt4VuDwKL8Pr72Z0jIm0Wq46OkEZ7C2XoGG7LseGr/BxbaXWgx5ZzedBT -vUfFtPLflyBBrSOrcMYtUgP6N4diw42mO4itRUc7lfyaedm32d1gGUhhV4KLVknB -qOU1uwjyk4giMT5XR4KIKs7dKlByFoIqLdFrrNPmc0dd07Jb++lHxVpVKeDXQiJ0 -F0nCSceX2MKLAu7QxL2XsB5rhemNA0PzSl8X9rjqGHM8jdGrKW/C0boz/bomIPzS -6QHU67J3HeNAemgggBhWlFJo+VVrr0TwFmJUO+3U27z5JdkNFP1xwqZ3s3mgSQID -q50D2qu4OLgdwelt9VSRqZZ1ADBjvzXbdHk5At5uA+NvQ1uZRXWD+nLcP/MBEP9T -NE0ePvZOa82tzlxm52BIVRMSk3JaZ+H3GSNSC+A7XY9nMdFhj20PTCeXmzBby7dd -9KSkTAtolo4pQCNaBhpKrTN9W7NZmQLnjpvB59zPUqgQ4YVWvTmKyrYvkRy8yOMB -GZ4o5FJMyLmLIVSQBO6rFzkn/H2ezJgRop6GW6gVmr8eOyYRVzw2E+nOT0Ao2emv -sYo9zOhdH6cA3Xdi1eb8KrZU0eRMwkxBbLp6G1kC667T+lRjRtctIcOiKirKz14g -qJxHAQcys+sz8SGEg6jlCccpcDTtNqYQSPsGtxZIUcC7n7vp5ZVXIti9eQBEYmcb -fziLkn/IDJrxGItW9UGnIWVq3rbmv35pAL4eqBlX5QlgIEv/zF9OeCIM82xh9hrE -79UiyfxoTp/G8sGZFNg+V9tjM4nF2pHszocj08vQls54RzGlaMAjy5lvjfnpdDSr -o8aCibs6xpYtOIJic+sldT+YXdRJYwGxlYQkwaorK6hFheDjuEng/4BznDOLAkUz -xCQ0shYPFl8pcbvbMPw2SS+hGlO/SZgbaFlfWTOj0a/skoJsG2Zp+HGD9OmYOJYT -SIhjC5+DBme3GYr3RslO5IZ7ZWJRuSDIT1Iz7C1jenL5zjpj/dLUMmXuSjiEfVEJ -4Nx+WgLTulJOL3TPEhthocFNtU/mqgCsjQ7AbDkvT7LVIStsA1xoaOOQ28t96hXV -1s1rMojXvZUy7wY5d90z2e3OwY2zmv/7u0pvSuqNXdVpGnJ1 -=2qXE ------END PGP MESSAGE----- - ---DELIMITER-- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/pub-keys.asc enigmail-2.2.4/package/tests/resources/pub-keys.asc --- enigmail-2.1.6+ds1/package/tests/resources/pub-keys.asc 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/pub-keys.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -# test keylist as it could be returned from GPG -# - Rows starting with # and empty rows are ignored -# - Rows: Validity: q, Key ...0001, creation date, no expiratuon date, owner trust, user id, -# -# standard trust db entry: -tru::1:1443339321:1451577200:3:1:5 - -# Key with full validity: -pub:f:4096:1:0003AAAA00010001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0003AAAA00010001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0003AAAA00010002::Validity full Key : - -# Key without encryption ability (no 'E'): -pub:f:4096:1:0004AAAA00010001:1347189683:1473420083:::::scaSCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0004AAAA00010001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0004AAAA00010002::No encryption Key : - -# Disabled Key (key with 'D'): -pub:f:4096:1:0005AAAA00010001:1347189683:1473420083:::::scaESCAD: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0005AAAA00010001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0005AAAA00010002::No encryption Key : - -# User with multiple keys (one fully trusted: 0030AAAA00020001): -# Validity: o -pub:o:4096:1:0030AAAA00010001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00010001: -uid:o::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00010002::Multiple validity onefull Key1 : -# Validity: f -pub:f:4096:1:0030AAAA00020001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00020001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00020002::Multiple validity onefull Key2 : -# Validity: q -pub:q:4096:1:0030AAAA00030001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00030001: -uid:q::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0030AAAA00030002::Multiple validity onefull Key3 : - -# User with multiple keys (multiple fully trusted: 0030AAAA00020001): -# Validity: o -pub:o:4096:1:0034AAAA00010001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00010001: -uid:o::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00010002::Multiple validity twofull Key1 : -# Validity: f -pub:f:4096:1:0034AAAA00020001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00020001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00020002::Multiple validity twofull Key2 : -# Validity: f -pub:f:4096:1:0034AAAA00030001:1347189683:1473420083:::::escaESCA: -fpr:::::::::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00030001: -uid:f::::1347189683::CCCCCCCCCCCCCCCCCCCCCCCC0034AAAA00030002::Multiple validity twofull Key3 : - -# User with multiple keys (one marginal trusted): -# Validity: o -pub:o:4096:1:0031AAAA00010001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00010001: -uid:o::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00010002::Multiple validity nofull Key1 : -# Validity: m -pub:m:4096:1:0031AAAA00020001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00020001: -uid:m::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00020002::Multiple validity nofull Key2 : -# Validity: q -pub:q:4096:1:0031AAAA00030001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00030001: -uid:q::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0031AAAA00030002::Multiple validity nofull Key3 : - -# User with multiple keys (all have same trust kevel): -# Validity: - -pub:-:4096:1:0032AAAA00010001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00010001: -uid:-::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00010002::Multiple validity sametrust Key1 : -# Validity: - -pub:-:4096:1:0032AAAA00020001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00020001: -uid:-::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00020002::Multiple validity sametrust Key2 : -# Validity: - -pub:-:4096:1:0032AAAA00030001:1388513885:1546188604:::::escaESCA: -fpr:::::::::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00030001: -uid:-::::1389038412::AAAAAAAAAAAAAAAAAAAAAAAA0032AAAA00030002::Multiple validity sametrust Key3 : - -# some key with subkey that encrypts: -pub:q:4096:1:0040EEEE00010001:1421506625:1736866738::-:::scESC: -fpr:::::::::EEEEEEEEEEEEEEEEEEEEEEEE0040EEEE00010001: -uid:q::::1421507378::EEEEEEEEEEEEEEEEEEEEEEEE0040EEEE00010002::Some key with subkey UID1 : -uid:q::::1421507365::EEEEEEEEEEEEEEEEEEEEEEEE0040EEEE00010003::Some key with subkey UID2 : -uat:q::::1421507304::EEEEEEEEEEEEEEEEEEEEEEEE0040EEEE00010004::1 13273: -sub:q:4096:1:0040EEEE00010005:1421506625:1516114625:::::e: - diff -Nru enigmail-2.1.6+ds1/package/tests/resources/rules2.xml enigmail-2.2.4/package/tests/resources/rules2.xml --- enigmail-2.1.6+ds1/package/tests/resources/rules2.xml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/rules2.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/package/tests/resources/rules.xml enigmail-2.2.4/package/tests/resources/rules.xml --- enigmail-2.1.6+ds1/package/tests/resources/rules.xml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/rules.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ - - - - - diff -Nru enigmail-2.1.6+ds1/package/tests/resources/testing-domain.invalid.pub-sec enigmail-2.2.4/package/tests/resources/testing-domain.invalid.pub-sec --- enigmail-2.1.6+ds1/package/tests/resources/testing-domain.invalid.pub-sec 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/testing-domain.invalid.pub-sec 1970-01-01 00:00:00.000000000 +0000 @@ -1,157 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFtYHvUBEADCDUFdVI3upEt/G4mNT8tCeJFmj/vaUr9JOaxmHfKeCCJkmQPJ -tUpIIK3PDGzzWVY4RORH9fVE+okkMbXOLFCXIrQ3PyMrlI7W8H2EHT5IJs58/7rk -TeJ8PJtxxh3EPkjdK+ocmfGGl049dHIotn9pfwqFkt8kcFcjpPXhYrseq1/46v7e -jKnDuxemikfaStVIp322kEcbSM6wCeAV1lv0gfW1drZADFsZmcOeGd1Pbu6YZAOw -u+7XvcESUqOGlxv02in3ID7zfCBrtuCpZI8lNtWOBAWCt9LIv2ryFb8a7kox+cxe -P2SU/YFHGPMupXQ/fl9Ngj0843i34vAFGVbXmXotT1IUQ63bZ3sDqzup3KiE1HSm -sZOGTl27mh2e1x4FiNXyVp9MKWPG+NfTslPZW8ZDM050aYbM6PCweX8kt7worgIc -9BHXhKgOcYb//WnD1+njPL+r/sQdbg7+nDpBbgan5VX7QX392LxI6VaskmSgC3rn -pm5L4smZKKwDyeuXtHne1UGFl7TH0Qin97Ec6I8kQsHcfViOYbXFXcARaNO1XW1L -18XJ14baeU+fx9QOQznzP/xF+1HI1JAHUyx30zdfSH0ikeMiAATavB1cx3hRPVNB -zUdHgQlH6i7XtZjZbzknmxilf10lTYTCfFYHkgoopGzcvvFVqDoE44k2rQARAQAB -tCJUZXN0IE5hbWUgPHRlc3RpbmdAZG9tYWluLmludmFsaWQ+iQJRBBMBCAA7AhsD -BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEETxKL1Crqfx1zISOVTIPuAP8CRb4F -AltYIXUCGQEACgkQTIPuAP8CRb7hwA//ffj6NG4X7xa3WGUwEXt57u+kANhkaOeW -MpCQ2kLZhK3ZEaFI1rRG0RD0hVFffD1whQoQNGh5ZekiOWuu/XeLR9QrkLC6B2Tl -iVI8GTzpKFiHuh3BChq/QoOIeF2f+nPl5ZWjYm/3npSaLvwSxPV2B73EfTWwSJSw -Vv8hSWTPHjd7XyGJbAOxiCtXyZtId+QxltuZksQJJuunXZWlBJRXUgB/PrbSjGMA -+BBQF3DwdfEXb6QEQIEGmJ59WxwXynz9umPMF2aTRr01MJ3D4HXXC8+J5rLBifD8 -xoNtMfl3rAbHlbkB6DtWmtiKcoD7KrbqzmXxciKsBthSFeKV+cpNU55io5iiH5F2 -7MOk+Htio5LwL/arUkPyhGl37UVyPrijoz9aOzwFE5jA2w7PFm9iTMKwLdyI0lcx -QSRs2AChWuJg14iBkCzFKGndU9hUSpw4msMXhGtq1xjD2rbguFbEcrIzCG2NRAj3 -3Z5w/assPyjlobMtGKtkH5z2KrfCWoo00NxOg1ohLsz372tbYJWaQRYqH6Y5yikW -/mb7XY0PA431YL5OjycSU8CH8htP3348gE7EuiGu0qGdcPG53Na5t7K65g9t2ASC -OcnRLU38QWNtoPkqUu4eJ9dSIxbL6bZdEkCWFFHaimOuEG02HPG5m3VmEXSoZtlZ -bROoL39SK6K5Ag0EW1ge9QEQAN3oNq4LcjmY9TP1K9ZqFJ71Viy6rq6IM+WYS1yf -/x1uZyO1F/nWqIRI79sx6Ww9uS5kwoitVsVrYyGAOsmaoCpyU9A3E+cnY+fOdE2y -P7YNeMfVAKlF5dRCHZADzf9bNll2bCMaoLl/JSybEXco+NaAwSmjt3YXG0/CuvQh -zVMUZ3sNeONL6SWRIw6T2xQsMCGWo+dNlGNGxbuWWJ5QE74zoP/uGi5X8Mnt1rTD -n0SvBRSkRNPdo9pKXe3RdTl0njHuYhRhYzKa0L1Vp/IwOM44C78/S3clWvMNuJu5 -x4y6HeisT8ZI1romuinNpagp0iy1PLoFkfP3T+2Mt9GZGztxkOFFPvsh/E3T6evo -ebCqpsIaAGbltNEMgCZ8htP2udkZYSHHSxyrMNfiCQCWxV92ZZ1NUoMAadiIfW+T -v6Ei7Fy9d9FJ0q3GIaNh4O5LNpb36FNh7L45Lo2LbQLgdrUT7Suz6PkfYK2Srrtc -NgM8l6V08xB5QtEwFza03vPwkCn0l0j4/g4/38xjlu91sIttMy4qpLT3oYBiPqGi -bU+zSrVx/D55Q7YEHsNgs5jXSZlDyEShxFThX7VgqWiVqoQrLhjWPZkhSZyAg2tl -b6uZeLzGZQ1GcFpcWOl+11jzmwfwsw6GpTQTGxxzpsAreOdD/bhON/p7uhKPh7nj -zR6tABEBAAGJAjYEGAEIACAWIQRPEovUKup/HXMhI5VMg+4A/wJFvgUCW1ge9QIb -DAAKCRBMg+4A/wJFvmZhD/94UUt9c2eYytaqJXPTdRaX/S/t0nlQOfxLQDQ/kIY+ -WjVmtof3U5Bf8ozhczA7a+7Kq4jYB2XW3x+r2k/m79OlgGvxGHO1IvK2EsuoY1ul -tHfiomlIUh8Tz5VN8cqMMn7kFCULb0zTJcLxmg6M+RiwXjJxREaHGMzC9wmDZm7P -gpXpMWvLR1/SgY8gDxl0sf8SL2Pa2YidUvUtcGGxNIvsMMzYjLXsUaKksEry9A1b -k3DHjnqUCalp3HZaWHxk1G6VS+Ja3BTEiquLSAxfcrSphZ3W7J+BbXghnQujbsym -o4AidNEgUv7F1XKAhIQ7wH0qbgaeiBsBvj3FE4H2atzSO2cx7jp01ZkpBm5XBnSE -QYdqVqPniLQsqQeDO7JgQ+aAYDAyAcLVI9lGxFraV3ntS/HTR5+L1L73adTiAzf4 -YuFIK6JN8msg4//l/Rfdj6YczAffvx+8/DGYpfAgiWHd57Fi9d1vDhWRP2Gao1Dj -+OjrArhv6uif7Xu0JDkRTmYxZ5dvmfiy+LnZBEvMhZEdV9lYyhO4J6llRtTloJye -IOQ/27/WZsR2GHB7sw8bSjbAGx9Ve0Gx0fLFBYCZ0vRqMOvsB8feFiTGpdjryfwe -ByqCVA6OX5gTsM4QsN6Pj8G1GG1KdZ1/prW3d4aAZX35die+S+DnJsg9Krz/Azba -TA== -=IAR0 ------END PGP PUBLIC KEY BLOCK----- ------BEGIN PGP PRIVATE KEY BLOCK----- - -lQcYBFtYHvUBEADCDUFdVI3upEt/G4mNT8tCeJFmj/vaUr9JOaxmHfKeCCJkmQPJ -tUpIIK3PDGzzWVY4RORH9fVE+okkMbXOLFCXIrQ3PyMrlI7W8H2EHT5IJs58/7rk -TeJ8PJtxxh3EPkjdK+ocmfGGl049dHIotn9pfwqFkt8kcFcjpPXhYrseq1/46v7e -jKnDuxemikfaStVIp322kEcbSM6wCeAV1lv0gfW1drZADFsZmcOeGd1Pbu6YZAOw -u+7XvcESUqOGlxv02in3ID7zfCBrtuCpZI8lNtWOBAWCt9LIv2ryFb8a7kox+cxe -P2SU/YFHGPMupXQ/fl9Ngj0843i34vAFGVbXmXotT1IUQ63bZ3sDqzup3KiE1HSm -sZOGTl27mh2e1x4FiNXyVp9MKWPG+NfTslPZW8ZDM050aYbM6PCweX8kt7worgIc -9BHXhKgOcYb//WnD1+njPL+r/sQdbg7+nDpBbgan5VX7QX392LxI6VaskmSgC3rn -pm5L4smZKKwDyeuXtHne1UGFl7TH0Qin97Ec6I8kQsHcfViOYbXFXcARaNO1XW1L -18XJ14baeU+fx9QOQznzP/xF+1HI1JAHUyx30zdfSH0ikeMiAATavB1cx3hRPVNB -zUdHgQlH6i7XtZjZbzknmxilf10lTYTCfFYHkgoopGzcvvFVqDoE44k2rQARAQAB -AA//RTQM94fMBis5cV8Usvyd9FqjH/yBSN7xsN+Mh+5uM8Wa3l1jaG/qycY9tfUs -dayKfw6yiqdAjRT8C5heyeQr6XpK4tj1ZflY53ZkjNUQ/RI52YIp2HmeJ8hFd1G8 -E9xSh+29U+3ioKkdEfWRMMvErI7N5cz3HzuhF+kgdvyK1ukvFMpZkmx/rnnueUof -Tc4aOgrhXlYdxbE1ZLpg2+jSamReiBSJ8lV1t6+Kf7uhnU5mcJpaZpDfILlfPXWT -M9B3+95B0QwC5zqBJWjWvhJKqm7fwgHVJUUBOu5o6WSv/p60fxYiuAnLiQbPL9fK -AfyndG1Q94dW53wH9SxNhMQAn8vvo9ssVG7QxAqs2W4j0GiwEkYMmuaiT/PXtCdK -ghFlx6mV0epg1SBQeBOElC02P+pgGnbMbWJn8zMtWrhho3T+3Jk9EtIxHnCZ2YHh -mfTLt5HV5+gWe9ODkD1aopQ0mzZ/FOikd2TYIiucDrnq/X6w9ReAp+WRuKQmpYJd -SUddcVbADfQap6HoWPay87n6lRXYQgVbXmUamXDuSKBz2Mexp/KLAKPk0298116t -H865I98w2KmjsjB+97IPzMqWLQfj0vTfFCrEVEkK8EcZWQHzhBD+g0Gwg5jlAT0Y -9af7y20x25x8uXyNPcQz2h1HFMlXsWItBZyk3GuLCyVQidEIANqwzzLALz/CJC8Z -8uzPpQZMl7uDthBXYDG6Hh6Twyzq7+WTmRRbPS1tdt0XXUGOQf4pBnOO2MbBooSF -igz5cEpUDFQl66O7Tu2OgRzXD9LtUZZdhDRaMr+oFg3NXavzQ6dGHOpC02NkNyjL -jH4N7lCo6MmxAbBRX7XPyONu+VFQey+jPChN9Y07nERvjofOlkKPc90Z7tWBZxI4 -S3zRcPYTMlhz5E81SVJO0HmhG4tW9PdJQL2C/BNYo6J4PKHHvjpFJFXcWsdjZHzO -HP5fyZ9aQI4OeuCdxsJvf9QPGPKY8TBeOaNaEO7n5BVqcFcNjIKR/6uP5QXzaF0C -FAZ6FXcIAOMoW1IQTLr1dGlPA2RUHOKfGmCAESXBnnyX9f7+FFD0M3s912UF+xSc -iRwB7Dv+iTULBhUQkpRMF6ZZ6Sd4CXCUY2ovIVSAPJl2aat9pHl2e9WIaLGTkOI7 -fURcF69Pt2wfGR0PCXJpyia8tErBith3ofVydDK7i63AF/AI/q2iPsdU2nKsXoaj -0Ai4tLNU7qf0pk1pf1Q78IycyRAR4f9owhB2+1PA7EDeDzfBz5i0cz3H3XaNfQiw -Xp+WYWJHPjJ1Pn0vxmmfbXNzGebRxYFyVulWKwkC/75JlIoHh7jc6DDdX8/1XnDt -MI3qO4aUNgGegq5PipDgNcGbf6WB7fsIAMPgniaOkWGR0KWDrsds7oThoLa7kxIj -KqTF+a/HsxonbkS52I5Zsrs4rSGAqfW5NhxN1gkcTlErCXJvlvLWGj6DHs6zEYty -YMTJX6pUlhsTjKSnekha8jGsgpM61v9VWwAw6Q0JShvE/91dCWYdtrlaIdCZZW1A -sVT7VilDWHGfcEL5qrndZHKCbnjQzTMsbuWkMkmI/gIOjEdbVR7tYsfZXwA4ZmCh -Qr9FsEtP00IfLb8fjS8fmtuRsLnQbhF8Cpw0/onJTBYSb2rs5sOYFfcpRNxK4foV -PKkud19A8tbUk+I7RCIbGnzzvG8n17GoKSymtIVt3Hlh7fQejIFTzXKEZbQiVGVz -dCBOYW1lIDx0ZXN0aW5nQGRvbWFpbi5pbnZhbGlkPokCUQQTAQgAOwIbAwULCQgH -AgYVCgkICwIEFgIDAQIeAQIXgBYhBE8Si9Qq6n8dcyEjlUyD7gD/AkW+BQJbWCF1 -AhkBAAoJEEyD7gD/AkW+4cAP/334+jRuF+8Wt1hlMBF7ee7vpADYZGjnljKQkNpC -2YSt2RGhSNa0RtEQ9IVRX3w9cIUKEDRoeWXpIjlrrv13i0fUK5Cwugdk5YlSPBk8 -6ShYh7odwQoav0KDiHhdn/pz5eWVo2Jv956Umi78EsT1dge9xH01sEiUsFb/IUlk -zx43e18hiWwDsYgrV8mbSHfkMZbbmZLECSbrp12VpQSUV1IAfz620oxjAPgQUBdw -8HXxF2+kBECBBpiefVscF8p8/bpjzBdmk0a9NTCdw+B11wvPieaywYnw/MaDbTH5 -d6wGx5W5Aeg7VprYinKA+yq26s5l8XIirAbYUhXilfnKTVOeYqOYoh+RduzDpPh7 -YqOS8C/2q1JD8oRpd+1Fcj64o6M/Wjs8BROYwNsOzxZvYkzCsC3ciNJXMUEkbNgA -oVriYNeIgZAsxShp3VPYVEqcOJrDF4RratcYw9q24LhWxHKyMwhtjUQI992ecP2r -LD8o5aGzLRirZB+c9iq3wlqKNNDcToNaIS7M9+9rW2CVmkEWKh+mOcopFv5m+12N -DwON9WC+To8nElPAh/IbT99+PIBOxLohrtKhnXDxudzWubeyuuYPbdgEgjnJ0S1N -/EFjbaD5KlLuHifXUiMWy+m2XRJAlhRR2opjrhBtNhzxuZt1ZhF0qGbZWW0TqC9/ -UiuinQcYBFtYHvUBEADd6DauC3I5mPUz9SvWahSe9VYsuq6uiDPlmEtcn/8dbmcj -tRf51qiESO/bMelsPbkuZMKIrVbFa2MhgDrJmqAqclPQNxPnJ2PnznRNsj+2DXjH -1QCpReXUQh2QA83/WzZZdmwjGqC5fyUsmxF3KPjWgMEpo7d2FxtPwrr0Ic1TFGd7 -DXjjS+klkSMOk9sULDAhlqPnTZRjRsW7llieUBO+M6D/7houV/DJ7da0w59ErwUU -pETT3aPaSl3t0XU5dJ4x7mIUYWMymtC9VafyMDjOOAu/P0t3JVrzDbibuceMuh3o -rE/GSNa6JropzaWoKdIstTy6BZHz90/tjLfRmRs7cZDhRT77IfxN0+nr6HmwqqbC -GgBm5bTRDIAmfIbT9rnZGWEhx0scqzDX4gkAlsVfdmWdTVKDAGnYiH1vk7+hIuxc -vXfRSdKtxiGjYeDuSzaW9+hTYey+OS6Ni20C4Ha1E+0rs+j5H2Ctkq67XDYDPJel -dPMQeULRMBc2tN7z8JAp9JdI+P4OP9/MY5bvdbCLbTMuKqS096GAYj6hom1Ps0q1 -cfw+eUO2BB7DYLOY10mZQ8hEocRU4V+1YKlolaqEKy4Y1j2ZIUmcgINrZW+rmXi8 -xmUNRnBaXFjpftdY85sH8LMOhqU0Exscc6bAK3jnQ/24Tjf6e7oSj4e5480erQAR -AQABAA//XioF2gEdbXeMxYmKGqhVK8br1Hs7WPCPJSRlBl8WgMSym6JjFC+Uvt28 -eoVJihb/F8LGEf2MTqXtIPArAhXNVXXCPx7AIVzDtkATdkznYDeDQzkN2MbCajnM -FaqnpW5tN7Va2eKYxV5AxhbfaHNIdK2aSjMgzMmtW0FE2Afn+xMzfjIPVFSIENrv -x2XSl1LQ8c/cqXBwQVhs29dGr5dHaXS7Ix9EmNnUYbu9WmOQmDK0szepxUXOG/lm -tl4lokXsQz/m+sMAtx6e6VkJtWnlEQ0TXwpa2apOV8lAx0Qke4EW4/8KsxeBluiM -IuUTILLubu5RYJawgpg1oJYQAq83sE2D40rIfr9gWvNofFCAWANlv0mM6kf/nbh/ -LY6/2S1axQ9O5sp+Rt+uxg9nZWzpObIRtKcylNJAxOSqsy2zL7oIOsKGxBuqYH1L -s1ISG5pIhaMz+nJVg+pt3NjehQf94fc0Ra3ktpHvGq0kkyTIHG19qbDi6qkFvpPS -5Qf3PWkLjEYJL69iWsvTfNaytI6O/HDKL2WmipMF5jFVSo0sM86WbhxAcGV7vCad -attHLPA5KpClv2BIVut8+va94sqVFe1gKYkJB9Evyi8b1GcbHGzGjzLgu7ntpuJb -CjnMXyLNwYGbZ9Uuz16ioF1MX9Ls5fQg9KuEafNMzLPhzlAykjkIAOmNppidCsn6 -auoEVV6p7mvHLqT5vFntQPfLX5YdIEx+/DX9n+yDdnQZqglunLJUeJ4Fo/TJR6s7 -vdwjpr7bHGR1IwvkdznOzBRVrbyv2YEvC97s006/lBEiMRkTF2EpwAjgPKCxSJgF -fW5c4JkpGm6M5nfH19/4bNkCy8b8f483SbCLbWYF1j9a67LGid+xL/zEM+jD/LDD -vJHv27LReQYPCIaGwRq3t5cFSZN9fGqDrgVwzrYHRrvnI3n3L0Kzu48ZxGIjyVzE -cn49Pe5r7eOhqeR3eph41+MHfMRZZHq/PpuSloluBIx4layDUOBgzoVhgI2ofeTX -uNcVTJQLmT8IAPM8BMMFmZgQ9jEYkdWjkYiOENcPlBhTzJ0xxC0KpfmLISLCLIIo -3QFx9t7LR/9VPk1hSv0dqIALOVBR1SBRVKmgEkBH5i6XPS4V0T/iGkDn5Ww4cVfw -xoS/d24RQQdF8XFuD3CAKwJAEEVRifapje7/BqgRuf1Gaz+E3K5BQbreiyhAT+yS -50BT5jZQVtiE9DsvJWnUWIbuUsLRRNYVq9PuGuFYsIPKVe3BzyWedef550AIVNrl -N1nZpSSRCKkSW6tu3XRadkDLrsJ/4YyYq0hE8t8hVpAOJbPdVxtO3s90OUZtPwoi -SNPGh0tIgOHHUjHaPGMnQCGoHhm+F8tIgRMH/1AYjhSogyBElD9gwhfv9ND01wLa -ILLIlYKuOUA+xyKVdVRxQ0LTLw+ff4D3UHDLHl9jDXZk2Pq/Y2qKYlu3IEe49vaB -eNDvg0yaGZWqq3YJ5y7jtO3HyHDntq7e/5TG+yNLGb7pYPbYsDciHCX7qX1zbTXR -Bw4TzNQn87BE/ERSTHLsK2Paq/tv851WhiRR5FIERpHQndSsbdCYsGwMmg9n+3ST -qXs4srteAkbHUkJv4XSt8KZf8df2oz6pODBJt2QqYlz8dNPyx1C3WOhSU6Xe3VaF -bi8Hx+H0GUo5xPj1A6pJoic+rkRwp+hEdxNuvgIH9JbEc65ZL2ovXcHGgAmHXIkC -NgQYAQgAIBYhBE8Si9Qq6n8dcyEjlUyD7gD/AkW+BQJbWB71AhsMAAoJEEyD7gD/ -AkW+ZmEP/3hRS31zZ5jK1qolc9N1Fpf9L+3SeVA5/EtAND+Qhj5aNWa2h/dTkF/y -jOFzMDtr7sqriNgHZdbfH6vaT+bv06WAa/EYc7Ui8rYSy6hjW6W0d+KiaUhSHxPP -lU3xyowyfuQUJQtvTNMlwvGaDoz5GLBeMnFERocYzML3CYNmbs+Clekxa8tHX9KB -jyAPGXSx/xIvY9rZiJ1S9S1wYbE0i+wwzNiMtexRoqSwSvL0DVuTcMeOepQJqWnc -dlpYfGTUbpVL4lrcFMSKq4tIDF9ytKmFndbsn4FteCGdC6NuzKajgCJ00SBS/sXV -coCEhDvAfSpuBp6IGwG+PcUTgfZq3NI7ZzHuOnTVmSkGblcGdIRBh2pWo+eItCyp -B4M7smBD5oBgMDIBwtUj2UbEWtpXee1L8dNHn4vUvvdp1OIDN/hi4Ugrok3yayDj -/+X9F92PphzMB9+/H7z8MZil8CCJYd3nsWL13W8OFZE/YZqjUOP46OsCuG/q6J/t -e7QkORFOZjFnl2+Z+LL4udkES8yFkR1X2VjKE7gnqWVG1OWgnJ4g5D/bv9ZmxHYY -cHuzDxtKNsAbH1V7QbHR8sUFgJnS9Gow6+wHx94WJMal2OvJ/B4HKoJUDo5fmBOw -zhCw3o+PwbUYbUp1nX+mtbd3hoBlffl2J75L4OcmyD0qvP8DNtpM -=zka0 ------END PGP PRIVATE KEY BLOCK----- diff -Nru enigmail-2.1.6+ds1/package/tests/resources/tiny.pl enigmail-2.2.4/package/tests/resources/tiny.pl --- enigmail-2.1.6+ds1/package/tests/resources/tiny.pl 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/resources/tiny.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -#!/usr/bin/perl - -printf("OK\n"); diff -Nru enigmail-2.1.6+ds1/package/tests/rng-test.js enigmail-2.2.4/package/tests/rng-test.js --- enigmail-2.1.6+ds1/package/tests/rng-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/rng-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* global test: false, do_load_module: false, do_get_cwd: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("rng.jsm"); /*global EnigmailRNG: false, testing: false, Assert: false, bytesToUInt: false */ - -test(function getDifferentUint32() { - Assert.notEqual(EnigmailRNG.generateRandomUint32(), EnigmailRNG.generateRandomUint32()); - Assert.notEqual(EnigmailRNG.generateRandomString(15), EnigmailRNG.generateRandomString(15)); - Assert.equal(EnigmailRNG.generateRandomString(15).length, 15); -}); diff -Nru enigmail-2.1.6+ds1/package/tests/rules-test.js enigmail-2.2.4/package/tests/rules-test.js --- enigmail-2.1.6+ds1/package/tests/rules-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/rules-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,559 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, EnigmailApp: false */ -/*global component: false, withTestGpgHome: false, withEnigmail: false */ -/*global EnigmailRules: false, rulesListHolder: false, EC: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("rules.jsm"); /* global EnigmailFiles: false */ -const EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - -Components.utils.importGlobalProperties(["XMLHttpRequest"]); - -/* - we create our own DOMParser because the Mozill DOM parser is not ready -*/ - -function DOMParser() {} - -DOMParser.prototype = { - parseFromString: function(xmlString) { - - let f = EnigmailFiles.getTempDirObj(); - f.append("xmlFile.xml"); - EnigmailFiles.writeFileContents(f, xmlString); - - let xmlReq = new XMLHttpRequest(); - let response = null; - let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - - xmlReq.onload = function() { - response = xmlReq.responseXML; - inspector.exitNestedEventLoop(); - }; - - xmlReq.onerror = function() { - Assert.ok(false, "should not fail"); - inspector.exitNestedEventLoop(); - }; - - xmlReq.open("GET", "file://" + f.path); - xmlReq.send(); - inspector.enterNestedEventLoop(0); - - try { - f.remove(false); - } catch (x) {} - - return response; - } -}; - - -// getRulesFile -test(function getRulesFileReturnsTheFile() { - EnigmailRules.clearRules(); - let profD = EnigmailApp.getProfileDirectory().clone(); - profD.append("pgprules.xml"); - Assert.equal(profD.path, EnigmailRules.getRulesFile().path); -}); - -// loadRulesFile -test(function loadRulesFileReturnsFalseIfNoRulesFileExists() { - EnigmailRules.clearRules(); - var result = EnigmailRules.loadRulesFile(); - Assert.ok(!result); -}); - -test(function loadRulesFileReturnsFalseIfTheFileExistsButIsEmpty() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/emptyRules.xml", false); - }, function() { - var result = EnigmailRules.loadRulesFile(); - Assert.ok(!result); - }); -}); - -test(function loadRulesFileReturnsTrueIfTheFileExists() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules.xml", false); - }, function() { - var result = EnigmailRules.loadRulesFile(); - Assert.ok(result); - }); -}); - -function xmlToData(x) { - var result = []; - var node = x.firstChild.firstChild; - while (node) { - let name = node.tagName; - let res = { - tagName: name - }; - if (name) { - let attrs = node.attributes; - for (let i = 0; i < attrs.length; i++) { - res[attrs[i].name] = attrs[i].value; - } - result.push(res); - } - node = node.nextSibling; - } - return result; -} - -test(function loadRulesFileSetsRulesBasedOnTheFile() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - var d = xmlToData(rulesListHolder.rulesList); - var expected = [{ - tagName: "pgpRule", - email: "{user1@some.domain}", - keyId: "0x1234ABCD", - sign: "1", - encrypt: "1", - pgpMime: "1" - }, { - tagName: "pgpRule", - email: "user2@some.domain", - keyId: "0x1234ABCE", - sign: "2", - encrypt: "1", - pgpMime: "0" - }]; - Assert.deepEqual(expected, d); - }); -}); - -// getRulesData -test(function getRulesDataReturnsFalseAndNullIfNoRulesExist() { - EnigmailRules.clearRules(); - var res = {}; - var ret = EnigmailRules.getRulesData(res); - Assert.ok(!ret); - Assert.equal(null, res.value); -}); - -test(function getRulesDataReturnsTrueAndTheRulesListIfExist() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules.xml", false); - }, function() { - var res = {}; - var ret = EnigmailRules.getRulesData(res); - Assert.ok(ret); - Assert.equal(rulesListHolder.rulesList, res.value); - }); -}); - - -// ***************************************************** -// test mapAddrsToKeys(): -// ***************************************************** - -var EnigmailRulesTests = { - testSingleEmailToKeys(addr, arg2, arg3) { - // second argument is optional (extracted addr from initial addr) - let expVal; - let expAddr; - if (typeof(arg3) === 'undefined') { - expAddr = addr; - expVal = arg2; - } else { - expAddr = arg2; - expVal = arg3; - } - // perform test: - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(addr, - false, null, matchedKeysRet, flagsRet); - Assert.ok(ret); - let expKL = [{ - orig: addr, - addr: expAddr, - keys: expVal - }]; - Assert.deepEqual(matchedKeysRet.addrKeysList, expKL); - Assert.equal(matchedKeysRet.value, expVal); - } -}; - -test(withTestGpgHome(withEnigmail(function mapAddrsToKeys_simpleFlags() { - importKeys(); - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let matchedKeysRet = {}; - let flagsRet = {}; - - EnigmailRules.mapAddrsToKeys("sign@some.domain", false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "2", - encrypt: "1", - pgpMime: "1" - }; - Assert.deepEqual(expectedFlags, flagsRet); - - EnigmailRules.mapAddrsToKeys("nosign@some.domain", false, null, matchedKeysRet, flagsRet); - expectedFlags = { - value: true, - sign: "0", - encrypt: "1", - pgpMime: "1" - }; - Assert.deepEqual(expectedFlags, flagsRet); - - EnigmailRules.mapAddrsToKeys("encrypt@some.domain", false, null, matchedKeysRet, flagsRet); - expectedFlags = { - value: true, - sign: "1", - encrypt: "2", - pgpMime: "1" - }; - Assert.deepEqual(expectedFlags, flagsRet); - - EnigmailRules.mapAddrsToKeys("noencrypt@some.domain", false, null, matchedKeysRet, flagsRet); - expectedFlags = { - value: true, - sign: "1", - encrypt: "0", - pgpMime: "1" - }; - Assert.deepEqual(expectedFlags, flagsRet); - }); -}))); - -test(withEnigmail(function mapAddrsToKeys_signAndEncrypt() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "sign@some.domain, encrypt@some.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "2", - encrypt: "2", - pgpMime: "1" - }; - let expectedKeys = { - value: "", // no matching key means no value - addrKeysList: [], - addrNoKeyList: [{ - orig: "sign@some.domain", - addr: "sign@some.domain" - }, { - orig: "encrypt@some.domain", - addr: "encrypt@some.domain" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_conflict() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "sign@some.domain, noencrypt@some.domain, nosign@some.domain, encrypt@some.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "99", - encrypt: "99", - pgpMime: "1" - }; - let expectedKeys = { - value: "", // no matching key means no value - addrKeysList: [], - addrNoKeyList: [{ - orig: "sign@some.domain", - addr: "sign@some.domain" - }, { - orig: "noencrypt@some.domain", - addr: "noencrypt@some.domain" - }, { - orig: "nosign@some.domain", - addr: "nosign@some.domain" - }, { - orig: "encrypt@some.domain", - addr: "encrypt@some.domain" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_twoKeysAndNoKey() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "two@some.domain, nokey@qqq.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "1", - encrypt: "1", - pgpMime: "1" - }; - let expectedKeys = { - value: "0x2222aaaa, 0x2222bbbb, nokey@qqq.domain", - addrKeysList: [{ - orig: "two@some.domain", - addr: "two@some.domain", - keys: "0x2222aaaa, 0x2222bbbb" - }], - addrNoKeyList: [{ - orig: "nokey@qqq.domain", - addr: "nokey@qqq.domain" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_noKeyAndSomeKeysReverse() { // important to test reverse order than in rules - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "nokey@qqq.domain, two@some.domain, one@some.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "1", - encrypt: "1", - pgpMime: "1" - }; - let expectedKeys = { - value: "0x11111111, 0x2222aaaa, 0x2222bbbb, nokey@qqq.domain", - addrKeysList: [{ - orig: "one@some.domain", - addr: "one@some.domain", - keys: "0x11111111" - }, { - orig: "two@some.domain", - addr: "two@some.domain", - keys: "0x2222aaaa, 0x2222bbbb" - }], - addrNoKeyList: [{ - orig: "nokey@qqq.domain", - addr: "nokey@qqq.domain" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_spaces() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = " ,,oneRule,;;; , ;"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "1", - encrypt: "1", - pgpMime: "1" - }; - let expectedKeys = { - value: "", - addrKeysList: [], - addrNoKeyList: [{ - orig: "oneRule", - addr: "onerule" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_manyKeys() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "one@some.domain, two@some.domain, nokey@qqq.domain, nosign@some.domain, nofurtherrules@some.domain, nofurtherrules2@some.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "0", - encrypt: "1", - pgpMime: "99" - }; - let expectedKeys = { - value: "0x11111111, 0x2222aaaa, 0x2222bbbb, nofurtherrules@some.domain, nofurtherrules2@some.domain, nokey@qqq.domain, nosign@some.domain", - addrKeysList: [{ - orig: "one@some.domain", - addr: "one@some.domain", - keys: "0x11111111" - }, { - orig: "two@some.domain", - addr: "two@some.domain", - keys: "0x2222aaaa, 0x2222bbbb" - }], - addrNoKeyList: [{ - orig: "nofurtherrules@some.domain", - addr: "nofurtherrules@some.domain" - }, { - orig: "nofurtherrules2@some.domain", - addr: "nofurtherrules2@some.domain" - }, { - orig: "nokey@qqq.domain", - addr: "nokey@qqq.domain" - }, { - orig: "nosign@some.domain", - addr: "nosign@some.domain" - }] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - Assert.deepEqual(expectedKeys.value, matchedKeysRet.value); - Assert.deepEqual(expectedKeys.addrKeysList, matchedKeysRet.addrKeysList); - Assert.deepEqual(expectedKeys.addrNoKeyList, matchedKeysRet.addrNoKeyList); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_multipleMatches() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - let emailAddrs = "one@some.domain, nico@xx.com, patrick@xx.com, one@some.domain"; - let matchedKeysRet = {}; - let flagsRet = {}; - let ret = EnigmailRules.mapAddrsToKeys(emailAddrs, false, null, matchedKeysRet, flagsRet); - let expectedFlags = { - value: true, - sign: "1", - encrypt: "1", - pgpMime: "1" - }; - let expectedKeys = { - value: "0x11111111, 0x11111111, 0xDOTCOMORDOTDE, 0xDOTCOMORDOTDE", - addrKeysList: [{ - orig: "one@some.domain", - addr: "one@some.domain", - keys: "0x11111111" - }, { - orig: "one@some.domain", - addr: "one@some.domain", - keys: "0x11111111" - }, { - orig: "nico@xx.com", - addr: "nico@xx.com", - keys: "0xDOTCOMORDOTDE" - }, { - orig: "patrick@xx.com", - addr: "patrick@xx.com", - keys: "0xDOTCOMORDOTDE" - }], - addrNoKeyList: [] - }; - Assert.ok(ret); - Assert.deepEqual(expectedFlags, flagsRet); - Assert.deepEqual(expectedKeys, matchedKeysRet); - //Assert.deepEqual(expectedKeys.value, matchedKeysRet.value); - //Assert.deepEqual(expectedKeys.addrNoKeyList, matchedKeysRet.addrNoKeyList); - //Assert.deepEqual(expectedKeys.addrKeysList, matchedKeysRet.addrKeysList); - //Assert.deepEqual(expectedKeys.addrKeysList[0], matchedKeysRet.addrKeysList[0]); - //Assert.deepEqual(expectedKeys.addrKeysList[1], matchedKeysRet.addrKeysList[1]); - //Assert.deepEqual(expectedKeys.addrKeysList[2], matchedKeysRet.addrKeysList[2]); - //Assert.deepEqual(expectedKeys.addrKeysList[3], matchedKeysRet.addrKeysList[3]); - }); -})); - -test(withEnigmail(function mapAddrsToKeys_infix() { - EnigmailRules.clearRules(); - resetting(EnigmailRules, 'getRulesFile', function() { - return do_get_file("resources/rules2.xml", false); - }, function() { - EnigmailRules.loadRulesFile(); - EnigmailRulesTests.testSingleEmailToKeys("company@suffix.qqq", - "0xCOMPREFIX"); - EnigmailRulesTests.testSingleEmailToKeys("hello@computer.qqq", - "0xCOMINFIX"); - EnigmailRulesTests.testSingleEmailToKeys("hello@komputer.dcom", - "0xCOMSUFFIX"); - EnigmailRulesTests.testSingleEmailToKeys("company@postfix.dcom", - "0xCOMSUFFIX"); - EnigmailRulesTests.testSingleEmailToKeys("company@postfix.com", - "0xDOTCOMORDOTDE"); - EnigmailRulesTests.testSingleEmailToKeys("hello@komputer.de", - "0xDOTCOMORDOTDE"); - EnigmailRulesTests.testSingleEmailToKeys("aa@qqq.domain", - "0xAAAAAAAA, 0xBBBBBBBB"); - EnigmailRulesTests.testSingleEmailToKeys("xx@qqq.bb", - "0xAAAAAAAA, 0xBBBBBBBB"); - EnigmailRulesTests.testSingleEmailToKeys("aa@qqq.bb", - "0xAAAAAAAA, 0xBBBBBBBB"); - EnigmailRulesTests.testSingleEmailToKeys("hello@komputer.DE", - "hello@komputer.de", - "0xDOTCOMORDOTDE"); - EnigmailRulesTests.testSingleEmailToKeys("xx@qqq.BB", - "xx@qqq.bb", - "0xAAAAAAAA, 0xBBBBBBBB"); - }); -})); - - -function importKeys() { - var publicKey = do_get_file("resources/dev-strike.asc", false); - //var secretKey = do_get_file("resources/dev-strike.sec", false); - var errorMsgObj = {}; - var importedKeysObj = {}; - var publicImportResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj); - // var secretImportResult = EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj); - return [publicImportResult /*, secretImportResult */ ]; -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/streams-test.js enigmail-2.2.4/package/tests/streams-test.js --- enigmail-2.1.6+ds1/package/tests/streams-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/streams-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */ -/*global EnigmailCore: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -testing("streams.jsm"); /*global EnigmailStreams: false, EnigmailLog: false, EnigmailPrefs: false, NetUtil: false */ -const EnigmailFiles = component("enigmail/files.jsm").EnigmailFiles; - -let inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector); - -function makeURI(aURL, aOriginCharset, aBaseURI) { - var ioService = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); - return ioService.newURI(aURL, aOriginCharset, aBaseURI); -} - -// testing: newStringChannel -test(function stringChannelTest() { - var testString = "Hello world"; - - let c = NetUtil.newChannel({ - uri: "chrome://enigmail/content/", - loadUsingSystemPrincipal: true - }); - - var ch = EnigmailStreams.newStringChannel(c.originalURI, "text/plain", "UTF-8", testString); - var stringListener = EnigmailStreams.newStringStreamListener( - function compareResults(gotData) { - Assert.equal(testString, gotData); - inspector.exitNestedEventLoop(); - } - ); - ch.asyncOpen(stringListener, null); - inspector.enterNestedEventLoop(0); -}); - - -// testing: newFileChannel -test(function readFileChannel() { - var md = do_get_cwd().clone(); - md.append("file-test.txt"); - - var testString = "Hello world\n \x00what's next"; - - var f = EnigmailFiles.writeFileContents(md, testString, null); - Assert.ok(f, "file written"); - - let uri = makeURI("dummy:none"); - var ch = EnigmailStreams.newFileChannel(uri, md, "application/octet-stream", true); - var stringListener = EnigmailStreams.newStringStreamListener( - function compareResults(gotData) { - Assert.equal(testString, gotData); - Assert.ok(md.exists(), false, "file was deleted:"); - inspector.exitNestedEventLoop(); - } - ); - ch.asyncOpen(stringListener, null); - inspector.enterNestedEventLoop(0); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/system-test.js enigmail-2.2.4/package/tests/system-test.js --- enigmail-2.1.6+ds1/package/tests/system-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/system-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global TestHelper: false, withEnvironment: false, nsIWindowsRegKey: true */ -/* - * 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -/*global withEnigmail: false, component: false, withTestGpgHome: false, osUtils: false */ - -testing("system.jsm"); /*global EnigmailSystem: false, EnigmailOS: false */ - - -function testEncoding(charset, from, to) { - from = unescape(from); - to = unescape(to); - let result = EnigmailSystem.convertNativeToUnicode(from, charset); - Assert.equal(result, to, "Charset=" + charset); -} - -// Test functions simulating a Windows environment -test(function shouldTestWindowsCharsetConversion() { - EnigmailOS.isWin32 = true; - - testEncoding("65001", "%E3%82%B5%E3%83%9D%E3%83%BC%E3", "%u30B5%u30DD%u30FC"); - testEncoding("20932", "%A7%B1%A7%E0%A7%D5%A7%D5%A7%D6", "%u041F%u043E%u0434%u0434%u0435"); -}); - -// Test functions simulating a Unix environment -test(function shouldTestUnixCharsetConversion() { - EnigmailOS.isWin32 = false; - - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - let lc = env.set("LC_ALL", "ru_RU.UTF-8"); - let cs = EnigmailSystem.determineSystemCharset(); - Assert.equal(cs, "UTF-8"); - testEncoding(cs, "%E3%82%B5%E3%83%9D%E3%83%BC%E3", "%u30B5%u30DD%u30FC"); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/testHelper.js enigmail-2.2.4/package/tests/testHelper.js --- enigmail-2.1.6+ds1/package/tests/testHelper.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/testHelper.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,384 +0,0 @@ -/*global do_load_module: false, do_get_cwd: false, Assert: false, CustomAssert: false, JSUnit: false*/ -/*global dump: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const osUtils = {}; -osUtils.OS = ChromeUtils.import("resource://gre/modules/osfile.jsm").OS; -osUtils.FileUtils = ChromeUtils.import("resource://gre/modules/FileUtils.jsm").FileUtils; -const TestEnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const TestEnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const TestEnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; - -var TestHelper = { - getMyPath: function() { - let isWin = (Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).OS === "WINNT"); - let fn = Components.stack.filename.replace(/^.* -> file:\/\//, ""); - - if (isWin) { - fn = fn.replace(/\//g, "\\").replace(/^\\/, ""); - } - fn = fn.replace(/^file:\/\//, ""); - let file = osUtils.FileUtils.File(fn); - return file.parent; - }, - - loadDirectly: function(name) { - do_load_module("file://" + TestHelper.getMyPath().parent.path + "/" + name); - }, - - loadModule: function(name) { - let modName = ""; - if (name.search(/^enigmail\//) === 0) { - modName = "chrome://enigmail/content/modules/" + name.replace(/^enigmail\//, ""); - } else { - modName = "resource://" + name; - } - - try { - return ChromeUtils.import(modName); - } catch (ex) { - dump("Error importing module: '" + modName + "'\n"); - dump(ex.message + "\n" + ex.stack); - throw ex; - } - }, - - testing: function(name) { - TestHelper.currentlyTesting = name; - }, - - registerTest: function(fn) { - TestHelper.allTests = TestHelper.allTests || []; - TestHelper.allTests.push(fn); - }, - - resetting: function(on, prop, val, f) { - let orgVal = on[prop]; - on[prop] = val; - try { - return f(); - } finally { - on[prop] = orgVal; - } - }, - - runTests: function() { - if (TestHelper.currentlyTesting) { - TestHelper.loadDirectly(TestHelper.currentlyTesting); - } - if (TestHelper.allTests) { - for (var i = 0; i < TestHelper.allTests.length; i++) { - TestHelper.allTests[i](); - } - } - }, - - initalizeGpgHome: function() { - component("enigmail/files.jsm"); - var homedir = osUtils.OS.Path.join(TestEnigmailFiles.getTempDir(), ".gnupgTest" + TestEnigmailRNG.generateRandomString(8)); - var workingDirectory = new osUtils.FileUtils.File(homedir); - if (!workingDirectory.exists()) { - workingDirectory.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 448); - } - - var file = workingDirectory.clone(); - file.append("gpg-agent.conf"); - if (!file.exists()) { - file.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 384); - } - - var s = "pinentry-program " + TestHelper.getMyPath().path.replace(/\\/g, "/") + "/pinentry-auto"; - if (JSUnit.getOS() == "WINNT") { - s += ".exe"; - } - s += "\n"; - - let encoder = new TextEncoder(); - let array = encoder.encode(s); - - let inspector = Components.classes["@mozilla.org/jsinspector;1"].createInstance(Components.interfaces.nsIJSInspector); - - osUtils.OS.File.writeAtomic(file.path, array, {}).then(x => { - inspector.exitNestedEventLoop(); - }).catch(err => { - inspector.exitNestedEventLoop(); - }); - - inspector.enterNestedEventLoop(0); // wait for async process to terminate - - var environment = Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment); - - environment.set("GNUPGHOME", workingDirectory.path); - if (TestEnigmailCore.getEnvList() !== null) - TestEnigmailCore.setEnvVariable("GNUPGHOME", workingDirectory.path); - return homedir; - }, - - removeGpgHome: function(homedir) { - var workingDirectory = new osUtils.FileUtils.File(homedir); - - try { - if (workingDirectory.exists()) { - workingDirectory.remove(true); - } - } catch (ex) { - // print a warning if GpgHome cannot be removed - Assert.ok(true, "Could not remove GpgHome"); - } - } -}; - -TestHelper.loadDirectly("tests/customAssert.jsm"); - -var testing = TestHelper.testing; -var component = TestHelper.loadModule; -var run_test = TestHelper.runTests; -var test = TestHelper.registerTest; -var resetting = TestHelper.resetting; -var initalizeGpgHome = TestHelper.initalizeGpgHome; -var removeGpgHome = TestHelper.removeGpgHome; - -function withEnvironment(vals, f) { - var environment = Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment); - var oldVals = {}; - for (let key in vals) { - oldVals[key] = environment.get(key); - environment.set(key, vals[key]); - } - try { - return f(environment); - } finally { - for (let key in oldVals) { - environment.set(key, oldVals[key]); - } - } -} - -function withTestGpgHome(f) { - return function() { - const homedir = initalizeGpgHome(); - try { - f(); - } finally { - removeGpgHome(homedir); - } - }; -} - - -/** - * Overwrite functions for the scope of a test, and re-set the original function - * after the test has completed - * - * @param {Array} overwriteArr: - * - obj {Object}: target Object - * - fn {String}: function name - * - new {Function}: new function - */ -function withOverwriteFuncs(overwriteArr, func) { - return function() { - let origFuncs = []; - for (let f in overwriteArr) { - origFuncs.push({ - obj: overwriteArr[f].obj, - fn: overwriteArr[f].fn, - origFunc: overwriteArr[f].obj[overwriteArr[f].fn] - }); - overwriteArr[f].obj[overwriteArr[f].fn] = overwriteArr[f].new; - } - - try { - func(); - } finally { - for (let i in origFuncs) { - origFuncs[i].obj[origFuncs[i].fn] = origFuncs[i].origFunc; - } - } - }; -} - - -function withPreferences(func) { - return function() { - const keyRefreshPrefs = TestEnigmailPrefs.getPref("keyRefreshOn"); - const keyserverPrefs = TestEnigmailPrefs.getPref("keyserver"); - try { - func(); - } finally { - TestEnigmailPrefs.setPref("keyRefreshOn", keyRefreshPrefs); - TestEnigmailPrefs.setPref("keyserver", keyserverPrefs); - } - }; -} - -/** - * Create a test account called Enigmail Unit Test with 3 identities: - * - user1@enigmail-test.net - uses a specific key ID - * - user2@enigmail-test.net - determine key be Email addresses - * - user3@enigmail-test.net - Enigmail disabled - * - user4@enigmail-test.net - determine key be Email addresses - */ - -function setupTestAccounts(primaryEmail = null, primaryKeyId = null) { - - const UNITTEST_ACCT_NAME = "Enigmail Unit Test"; - setupTestAccount(UNITTEST_ACCT_NAME, "dummy", primaryEmail, primaryKeyId); -} - -function setupTestAccount(accountName, incomingServerUserName, primaryEmail = null, primaryKeyId = null) { - - - - // sanity check - let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - - - function reportError() { - return "Your profile is not set up correctly for Enigmail Unit Tests\n" + - "Please ensure that your profile contains only one Accounts of type POP3.\n"; - } - - function setIdentityData(ac, idNumber, idName, fullName, email, useEnigmail, keyId) { - - let id; - - if (ac.identities.length < idNumber - 1) { - throw "error - cannot add Identity with gaps"; - } else if (ac.identities.length === idNumber - 1) { - id = accountManager.createIdentity(); - ac.addIdentity(id); - } else { - id = ac.identities.queryElementAt(idNumber - 1, Ci.nsIMsgIdentity); - } - - id.fullName = fullName; - id.email = email; - id.composeHtml = true; - id.setBoolAttribute("enablePgp", useEnigmail); - - if (keyId) { - id.setIntAttribute("pgpKeyMode", 1); - id.setCharAttribute("pgpkeyId", keyId); - } - } - - function setupAccount(ac) { - let is = ac.incomingServer; - is.downloadOnBiff = false; - is.doBiff = false; - is.performingBiff = false; - is.loginAtStartUp = false; - - if (primaryKeyId === null) { - primaryKeyId = "ABCDEF0123456789"; - } - if (primaryEmail === null) { - primaryEmail = "user1@enigmail-test.net"; - } - - setIdentityData(ac, 1, "Enigmail Unit Test 1", "John Doe I.", primaryEmail, true, primaryKeyId); - setIdentityData(ac, 2, "Enigmail Unit Test 2", "John Doe II.", "user2@enigmail-test.net", true); - setIdentityData(ac, 3, "Enigmail Unit Test 3", "John Doe III.", "user3@enigmail-test.net", false); - setIdentityData(ac, 4, "Enigmail Unit Test 4", "John Doe IV.", "user4@enigmail-test.net", true); - } - - for (let acct = 0; acct < accountManager.accounts.length; acct++) { - let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount); - if (ac.incomingServer.type !== "none" && ac.incomingServer.type !== "pop3") { - throw reportError(); - } - } - - let configured = 0; - let gotAc = null; - - // try to configure existing account - for (let acct = 0; acct < accountManager.accounts.length; acct++) { - let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount); - if (ac.incomingServer.type === "pop3" && ac.incomingServer.prettyName === accountName) { - setupAccount(ac); - gotAc = ac; - ++configured; - } - } - - // if no account existed, create new account - if (configured === 0) { - let ac = accountManager.createAccount(); - let is = accountManager.createIncomingServer(incomingServerUserName, "localhost", "pop3"); - is.prettyName = accountName; - ac.incomingServer = is; - gotAc = ac; - setupAccount(ac); - } - - return gotAc; -} - -function withEnigmail(f) { - return function() { - try { - const enigmail = TestEnigmailCore.createInstance(); - const window = JSUnit.createStubWindow(); - enigmail.initialize(window, ""); - return f(TestEnigmailCore.getEnigmailService(), window); - } finally { - shutdownGpgAgent(); - TestEnigmailCore.setEnigmailService(null); - } - }; -} - -function shutdownGpgAgent() { - const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; - const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; - - if (EnigmailGpgAgent.gpgconfPath) { - const proc = { - command: EnigmailGpgAgent.gpgconfPath, - arguments: ["--kill", "gpg-agent"], - environment: TestEnigmailCore.getEnvList(), - charset: null, - mergeStderr: false - }; - - try { - subprocess.call(proc).wait(); - } catch (ex) { - Assert.ok(false, "Could not kill gpg-agent"); - } - } -} - - -CustomAssert.registerExtraAssertionsOn(Assert); - -const TestEnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const TestEnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; - -function withLogFiles(f) { - return function() { - try { - TestEnigmailLog.setLogLevel(5); - f(); - } finally { - TestEnigmailLog.onShutdown(); - TestEnigmailLog.createLogFiles(); - } - }; -} - -function assertLogContains(expected) { - let failureMessage = "Expected log to contain: " + expected; - Assert.ok(TestEnigmailLog.getLogData(TestEnigmailCore.version, TestEnigmailPrefs).indexOf(expected) !== -1, failureMessage); -} - -function assertLogDoesNotContain(expected) { - Assert.equal(TestEnigmailLog.getLogData(TestEnigmailCore.version, TestEnigmailPrefs).indexOf(expected), -1); -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/tor-test.js enigmail-2.2.4/package/tests/tor-test.js --- enigmail-2.1.6+ds1/package/tests/tor-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/tor-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,349 +0,0 @@ -/*global do_load_module: false, do_get_cwd: false, testing: false, test: false, Assert:false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, assertContains: false, withEnigmail: false, withTestGpgHome: false, withEnvironment: false, resetting: false */ - -testing("tor.jsm"); -/*global createRandomCredential, EnigmailTor, torProperties, meetsOSConstraints, MINIMUM_CURL_SOCKS5H_VERSION, MINIMUM_CURL_SOCKS5_PROXY_VERSION, createHelperArgs, gpgProxyArgs, findTorExecutableHelper: false -EnigmailRNG: false, EnigmailGpg: false, EnigmailFiles: false, EnigmailOS: false, EnigmailVersioning: false */ - -let self = this; // eslint-disable-line no-invalid-this - -function withStandardGpg(f) { - return function() { - EnigmailGpg.dirmngrConfiguredWithTor = function() { - return false; - }; - try { - f(); - } finally {} - }; -} - -test(function evaluateGpgVersionWhenOsIsWindows() { - TestHelper.resetting(EnigmailOS, "isDosLike", true, function() { - TestHelper.resetting(EnigmailGpg, "agentVersion", "1.4.0", function() { - TestHelper.resetting(EnigmailVersioning, "greaterThanOrEqual", function(version, minimumVersion) { - Assert.equal(version, "1.4.0"); - return false; - }, function() { - Assert.equal(meetsOSConstraints(), false); - }); - }); - }); -}); - -test(function evaluateMeetsMinimumCurlSocksVersion() { - TestHelper.resetting(EnigmailOS, "isDosLike", false, function() { - TestHelper.resetting(EnigmailVersioning, "versionFoundMeetsMinimumVersionRequired", function(executable, minimumVersion) { - Assert.equal(executable, "curl"); - Assert.deepEqual(minimumVersion, MINIMUM_CURL_SOCKS5_PROXY_VERSION); - return true; - }, function() { - Assert.equal(meetsOSConstraints(), true); - }); - }); -}); - -test(withEnigmail(function createHelperArgsForTorsocks1(enigmail) { - EnigmailGpg.setAgentPath("/usr/bin/gpg2"); - const firstSet = createHelperArgs("torsocks", false); - Assert.deepEqual(firstSet[0], "/usr/bin/gpg2"); -})); - -test(function createHelperArgsForTorsocks2() { - EnigmailGpg.setAgentPath("/usr/bin/gpg"); - const args = createHelperArgs("torsocks2", true); - - Assert.deepEqual(args[0], "--user"); - Assert.deepEqual(args[2], "--pass"); - Assert.deepEqual(args[4], "/usr/bin/gpg"); -}); - -test(function createHelperArgsAlwaysReturnsRandomUserAndPass() { - const firstSet = createHelperArgs("torsocks2", true); - const secondSet = createHelperArgs("torsocks2", true); - - Assert.notEqual(firstSet[1], secondSet[1]); - Assert.notEqual(firstSet[3], secondSet[3]); -}); - -test(function createGpgProxyArgs_forWindows() { - TestHelper.resetting(EnigmailOS, "isDosLike", true, function() { - TestHelper.resetting(EnigmailRNG, "generateRandomUint32", function() { - return "dummyData"; - }, function() { - const tor = { - ip: "127.0.0.1", - port: 9050 - }; - const versioning = { - versionFoundMeetsMinimumVersionRequired: function(executable, minimum) { - Assert.equal(executable, "curl"); - Assert.deepEqual(minimum, MINIMUM_CURL_SOCKS5H_VERSION); - return false; - } - }; - - const args = gpgProxyArgs(tor, versioning); - Assert.deepEqual(args, "socks5-hostname://dummyData:dummyData@127.0.0.1:9050"); - }); - }); -}); - -test(function createGpgProxyArgs_forLinux() { - TestHelper.resetting(EnigmailOS, "isDosLike", false, function() { - TestHelper.resetting(EnigmailRNG, "generateRandomUint32", function() { - return "dummyData"; - }, function() { - const tor = { - ip: "192.8.8.4", - port: 9150 - }; - const versioning = { - versionFoundMeetsMinimumVersionRequired: function(executable, minimum) { - Assert.equal(executable, "curl"); - Assert.deepEqual(minimum, MINIMUM_CURL_SOCKS5H_VERSION); - return true; - } - }; - - const args = gpgProxyArgs(tor, versioning); - Assert.equal(args, "socks5h://dummyData:dummyData@192.8.8.4:9150"); - }); - }); -}); - -test(withStandardGpg(function testTorPropertiesSearchesForTor() { - TestHelper.resetting(EnigmailVersioning, "versionFoundMeetsMinimumVersionRequired", function() { - return true; - }, function() { - TestHelper.resetting(self, "usesDirmngr", function() { - return false; - }, function() { - const system = { - findTorWasCalled: false, - findTor: function() { - system.findTorWasCalled = true; - return torOn9150; - }, - findTorExecutableHelperWasCalled: false, - findTorExecutableHelper: function() { - system.findTorExecutableHelperWasCalled = true; - return { - command: "torsocks", - args: ["--user", "12345", "--pass", "12345", "/usr/bin/gpg2"] - }; - } - }; - - torProperties(system); - Assert.equal(system.findTorWasCalled, true); - Assert.equal(system.findTorExecutableHelperWasCalled, true); - }); - }); -})); - -test(function createGpgProxyArgs_forLinux_whenSystemDOESNTMeetSocks5hVersion() { - TestHelper.resetting(EnigmailOS, "isDosLike", false, function() { - TestHelper.resetting(EnigmailRNG, "generateRandomUint32", function() { - return "dummyData"; - }, function() { - const tor = { - ip: "192.8.8.4", - port: 9150 - }; - const versioning = { - versionFoundMeetsMinimumVersionRequiredWasCalled: false, - versionFoundMeetsMinimumVersionRequired: function(executable, minimum) { - Assert.equal(executable, "curl"); - Assert.deepEqual(minimum, MINIMUM_CURL_SOCKS5H_VERSION); - versioning.versionFoundMeetsMinimumVersionRequiredWasCalled = true; - return false; - } - }; - - const args = gpgProxyArgs(tor, versioning); - - Assert.equal(args, "socks5-hostname://dummyData:dummyData@192.8.8.4:9150"); - Assert.equal(versioning.versionFoundMeetsMinimumVersionRequiredWasCalled, true, "versionFoundMeetsMinimumVersionRequired was not called"); - }); - }); -}); - - -test(function returnsFailure_whenSystemCannotFindTor() { - TestHelper.resetting(EnigmailVersioning, "versionFoundMeetsMinimumVersionRequired", function() { - return true; - }, function() { - const system = { - findTor: function() { - return null; - } - }; - - const properties = torProperties(system); - - Assert.equal(properties.socks, null); - Assert.equal(properties.helper, null); - Assert.equal(properties.useTorMode, false); - }); -}); - -test(withStandardGpg(function returnsSuccessWithArgs_whenAbleToFindTorAndTorsocks() { - TestHelper.resetting(EnigmailVersioning, "versionFoundMeetsMinimumVersionRequired", function() { - return true; - }, function() { - TestHelper.resetting(self, "usesDirmngr", function() { - return false; - }, function() { - TestHelper.resetting(EnigmailRNG, "generateRandomUint32", function() { - return "dummyData"; - }, function() { - const torArgs = ["--user", "dummyUsername", "--pass", "dummyPassword", "/usr/bin/gpg2"]; - const gpgArgs = "socks5h://dummyData:dummyData@127.0.0.1:9050"; - const system = { - findTor: function() { - return { - ip: "127.0.0.1", - port: 9050 - }; - }, - findTorExecutableHelper: function() { - return { - command: "torsocks", - args: torArgs - }; - } - }; - - const properties = torProperties(system); - Assert.equal(properties.useTorMode, false); - - const socksProperties = properties.socks; - const helperProperties = properties.helper; - - Assert.equal(helperProperties.command, "torsocks"); - Assert.equal(helperProperties.args, torArgs); - - Assert.equal(socksProperties.command, "gpg"); - Assert.equal(socksProperties.args.replace(/socks5-hostname/, "socks5h"), gpgArgs); - }); - }); - }); -})); - -const torOn9150 = { - ip: "127.0.0.1", - port: 9150 -}; - -test(function testThatTorModeIsTrueWhenUserHasEnabledTorMode() { - TestHelper.resetting(EnigmailVersioning, "versionFoundMeetsMinimumVersionRequired", function() { - return true; - }, function() { - TestHelper.resetting(self, "usesDirmngr", function() { - return true; - }, function() { - let dirmngrConfiguredWithTorFunctionWasCalled = false; - TestHelper.resetting(EnigmailGpg, "dirmngrConfiguredWithTor", function() { - return true; - }, function() { - dirmngrConfiguredWithTorFunctionWasCalled = true; - const system = { - findTor: function() { - return torOn9150; - }, - findTorExecutableHelper: function() { - return null; - } - }; - - const properties = torProperties(system); - Assert.equal(properties.useTorMode, true); - Assert.equal(properties.socks, null); - Assert.equal(dirmngrConfiguredWithTorFunctionWasCalled, true, "dirmngrConfiguredWithTor() was not called"); - }); - }); - }); -}); - -function contains(string, substring) { - return string.indexOf(substring) > -1; -} - -test(function testUsingTorsocksWithEnvironmentVariables() { - const versioning = { - versionFoundMeetsMinimumVersionRequired: function() { - return false; - } - }; - - TestHelper.resetting(EnigmailFiles, "resolvePathWithEnv", function(exe) { - if (exe === "torsocks") { - return { - path: "/usr/bin/torsocks" - }; - } else { - return null; - } - }, function() { - const result = findTorExecutableHelper(versioning); - Assert.equal(result.command.path, "/usr/bin/torsocks"); - Assert.ok(contains(result.envVars[0], "TORSOCKS_USERNAME")); - Assert.ok(contains(result.envVars[1], "TORSOCKS_PASSWORD")); - Assert.equal(result.args.length, 1); - }); -}); - -test(function testUsingTorsocksWithCommandArguments() { - const versioning = { - versionFoundMeetsMinimumVersionRequired: function() { - return true; - } - }; - - TestHelper.resetting(EnigmailFiles, "resolvePathWithEnv", function(exe) { - if (exe === "torsocks") { - return { - path: "/usr/bin/torsocks" - }; - } else { - return null; - } - }, function() { - const result = findTorExecutableHelper(versioning); - - Assert.equal(result.command.path, "/usr/bin/torsocks"); - Assert.equal(result.args.length, 5); - Assert.equal(result.args[0], "--user"); - Assert.equal(result.args[2], "--pass"); - Assert.equal(result.args[4], "/usr/bin/gpg"); - }); -}); - -test(function testUseNothingIfNoTorHelpersAreAvailable() { - const versioning = { - findExecutable: function() { - return null; - } - }; - - TestHelper.resetting(EnigmailFiles, "resolvePathWithEnv", function(exe) { - return null; - }, function() { - const result = findTorExecutableHelper(versioning); - Assert.equal(findTorExecutableHelper(versioning), null); - }); -}); - -test(function creatingRandomCredential() { - Assert.equal(typeof createRandomCredential(), "string"); - - Assert.notEqual(createRandomCredential(), createRandomCredential()); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/verify-test.js enigmail-2.2.4/package/tests/verify-test.js --- enigmail-2.1.6+ds1/package/tests/verify-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/verify-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */ - -testing("verify.jsm"); /*global EnigmailVerifyAttachment: false */ -const EnigmailKeyRing = component("enigmail/keyRing.jsm").EnigmailKeyRing; - -/* TODO: write higher level test based on actual message */ - -test(withTestGpgHome(withEnigmail(function shouldVerifyAttachment() { - loadSecretKey(); - loadPublicKey(); - - const attachment = do_get_file("resources/attachment.txt", false); - const signature = do_get_file("resources/attachment.txt.asc", false); - do_test_pending(); - let promise = EnigmailVerifyAttachment.attachment(attachment, signature); - promise.then(function(result) { - Assert.assertContains(result, 'Good signature from anonymous strike'); - Assert.assertContains(result, 'Key ID: 0x0x65537E212DC19025AD38EDB2781617319CE311C'); - do_test_finished(); - }); -}))); - - -var loadSecretKey = function() { - const secretKey = do_get_file("resources/dev-strike.sec", false); - EnigmailKeyRing.importKeyFromFile(secretKey, [], {}); -}; - -var loadPublicKey = function() { - const publicKey = do_get_file("resources/dev-strike.asc", false); - EnigmailKeyRing.importKeyFromFile(publicKey, [], {}); -}; \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/versioning-test.js enigmail-2.2.4/package/tests/versioning-test.js --- enigmail-2.1.6+ds1/package/tests/versioning-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/versioning-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -/*global testing: false, do_load_module: false, do_get_cwd: false, test: false, Assert:false, component: 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, withEnigmail: false, withTestGpgHome: false */ - -testing("versioning.jsm"); -/*global EnigmailVersioning: false, greaterThanOrEqual: false, createVersionRequest:false, versionFoundMeetsMinimumVersionRequired:false, greaterThan: false, lessThan: false, -EnigmailExecution: false */ - -test(function checkCurlVersionIsOver() { - const curl749 = "curl 7.49.1 (x86_64-pc-linux-gnu) libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 libssh2/1.7.0\n" + - "Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp\n" + - "Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets\n"; - - TestHelper.resetting(EnigmailExecution, "resolveAndSimpleExec", function() { - return curl749; - }, function() { - const minimumCurlVersion = "7.21.7"; - Assert.equal(versionFoundMeetsMinimumVersionRequired("curl", minimumCurlVersion), true); - }); -}); - -test(function checkCurlVersionIsLess() { - const curl749 = "curl 7.49.1 (x86_64-pc-linux-gnu) libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 libssh2/1.7.0\n" + - "Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp\n" + - "Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets\n"; - - TestHelper.resetting(EnigmailExecution, "resolveAndSimpleExec", function() { - return curl749; - }, function() { - const absurdlyHighCurlRequirement = "100.100.100"; - Assert.equal(versionFoundMeetsMinimumVersionRequired("curl", absurdlyHighCurlRequirement), false); - }); -}); - -test(function versionIsGreaterOrEqual() { - Assert.equal(greaterThanOrEqual("7.12", "7.30"), false); - Assert.equal(greaterThanOrEqual("7.12", "7.12"), true); - Assert.equal(greaterThanOrEqual("7.12", "7.1"), true); -}); - -test(function versionIsGreater() { - Assert.equal(greaterThan("1.1", "1.0"), true); - Assert.equal(greaterThan("1.0", "1.0"), false); - Assert.equal(greaterThan("1.0", "1.1"), false); -}); - -test(function versionIsLessThan() { - Assert.equal(lessThan("1.1", "1.0"), false); - Assert.equal(lessThan("1.0", "1.0"), false); - Assert.equal(lessThan("1.0", "1.1"), true); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tests/webKey-test.js enigmail-2.2.4/package/tests/webKey-test.js --- enigmail-2.1.6+ds1/package/tests/webKey-test.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tests/webKey-test.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,254 +0,0 @@ -/*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */ -/*global TestHelper: false, withEnvironment: false, nsIWindowsRegKey: true */ -/* - * 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 https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); -/*global withEnigmail: false, component: false, withTestGpgHome: false, osUtils: false */ - -testing("webKey.jsm"); -/*global EnigmailWks: false, GPG_WKS_CLIENT: false, - EnigmailExecution: false, EnigmailFiles: false, EnigmailGpgAgent: false, EnigmailSend: false, - EnigmailLog: false */ -const subprocess = component("enigmail/subprocess.jsm").subprocess; -const EnigmailOS = component("enigmail/os.jsm").EnigmailOS; - -function getWksPath() { - var wksClient = GPG_WKS_CLIENT; - if (EnigmailOS.isDosLike) { - wksClient += ".exe"; - } - - return wksClient; -} - -test(function getWksPathInBinDir() { - TestHelper.resetting(EnigmailGpgAgent, "gpgconfPath", "TEST_PATH", function() { - TestHelper.resetting(EnigmailWks, "wksClientPath", null, function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "TEST_PATH"); - - if (EnigmailOS.isDosLike) { - listener.stdout("bindir:" + do_get_cwd().path + "\r\nlibexecdir:C:\\GnuPG\\lib\\exec\\dir\\test\r\n"); - } else { - listener.stdout("bindir:" + do_get_cwd().path + "\nlibexecdir:/lib/exec/dir/test\n"); - } - listener.done(0); - - return { - 'wait': function() {} - }; - }, function() { - let win = JSUnit.createStubWindow(); - let handle = EnigmailWks.getWksClientPathAsync(win, function(ret) { - let p = do_get_cwd().clone(); - p.append(getWksPath()); - Assert.equal(p.path, ret.path); - }); - - if (handle) { - handle.wait(); - } - }); - }); - }); -}); - -test(function getWksPathInLibexecDir() { - TestHelper.resetting(EnigmailGpgAgent, "gpgconfPath", "TEST_PATH", function() { - TestHelper.resetting(EnigmailWks, "wksClientPath", null, function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "TEST_PATH"); - - if (EnigmailOS.isDosLike) { - listener.stdout("libexecdir:" + do_get_cwd().path + "\r\nbindir:C:\\GnuPG\\bin\\dir\\test\r\n"); - } else { - listener.stdout("libexecdir:" + do_get_cwd().path + "\nbindir:/bin/dir/test\n"); - } - listener.done(0); - - return { - 'wait': function() {} - }; - }, function() { - let win = JSUnit.createStubWindow(); - let handle = EnigmailWks.getWksClientPathAsync(win, function(ret) { - let p = do_get_cwd().clone(); - p.append(getWksPath()); - Assert.equal(p.path, ret.path); - }); - - if (handle) { - handle.wait(); - } - }); - }); - }); -}); - -test(function wksSubmitKey() { - TestHelper.resetting(EnigmailWks, "wksClientPath", "WKS_CLIENT_DUMMY", function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "WKS_CLIENT_DUMMY"); - - listener.stdout( - ` -From: test1@example.com -To: key-submit@example.com -Subject: Key publishing request -Wks-Draft-Version: 3 -MIME-Version: 1.0 -Content-Type: multipart/encrypted; protocol="application/pgp-encrypted"; - boundary="=-=01-uhb5j5etxykdj5cqrpky=-=" -Date: Thu, 27 Jul 2017 14:21:21 +0000 - - ---=-=01-uhb5j5etxykdj5cqrpky=-= -Content-Type: application/pgp-encrypted - -Version: 1 - ---=-=01-uhb5j5etxykdj5cqrpky=-= -Content-Type: application/octet-stream - ------BEGIN PGP MESSAGE----- -lalala ------END PGP MESSAGE----- - ---=-=01-uhb5j5etxykdj5cqrpky=-=--` - ); - listener.done(0); - - return { - 'wait': function() {} - }; - }, function() { - TestHelper.resetting(EnigmailSend, "simpleSendMessage", function(op1, op2, op3, op4, op5) { - Assert.equal(op1.identity.email, "test2@example.com"); - Assert.equal(op1.to, "key-submit@example.com"); - Assert.equal(op1.subject, "Key publishing request"); - return true; - }, function() { - let win = JSUnit.createStubWindow(); - let handle = EnigmailWks.submitKey({ - 'email': 'test2@example.com' - }, { - 'fpr': '123' - }, win, function(ret) { - Assert.equal(true, ret); - }); - - if (handle) { - handle.wait(); - } - }); - }); - }); -}); - -test(function wksConfirmKey() { - TestHelper.resetting(EnigmailWks, "wksClientPath", "WKS_CLIENT_DUMMY", function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "WKS_CLIENT_DUMMY"); - listener.done(0); - - return { - 'wait': function() {} - }; - }, function() { - TestHelper.resetting(EnigmailSend, "simpleSendMessage", function(op1, op2, op3, op4, op5) { - Assert.equal(op1.identity.email, "test2@example.com"); - Assert.equal(op1.to, "key-submit@example.com"); - Assert.equal(op1.subject, "Key publishing confirmation"); - return true; - }, function() { - let win = JSUnit.createStubWindow(); - let mail = - ` -From: test1@example.com -To: key-submit@example.com -Subject: Key publishing confirmation -Wks-Draft-Version: 3 -MIME-Version: 1.0 -Content-Type: multipart/encrypted; protocol="application/pgp-encrypted"; - boundary="=-=01-uhb5j5etxykdj5cqrpky=-=" -Date: Thu, 27 Jul 2017 14:21:21 +0000 - - ---=-=01-uhb5j5etxykdj5cqrpky=-= -Content-Type: application/pgp-encrypted - -Version: 1 - ---=-=01-uhb5j5etxykdj5cqrpky=-= -Content-Type: application/octet-stream - ------BEGIN PGP MESSAGE----- -lalala ------END PGP MESSAGE----- - ---=-=01-uhb5j5etxykdj5cqrpky=-=--`; - let handle = EnigmailWks.confirmKey({ - 'email': 'test2@example.com' - }, mail, win, function(ret) { - Assert.equal(true, ret); - }); - - if (handle) { - handle.wait(); - } - }); - }); - }); -}); - -test(function positiveWksSupportCheck() { - TestHelper.resetting(EnigmailWks, "wksClientPath", "WKS_CLIENT_DUMMY", function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "WKS_CLIENT_DUMMY"); - Assert.equal(args[0], "--supported"); - Assert.equal(args[1], "test2@example.com"); - listener.done(0); - return { - 'wait': function() {} - }; - }, function() { - let win = JSUnit.createStubWindow(); - let handle = EnigmailWks.isWksSupportedAsync('test2@example.com', win, function(ret) { - Assert.equal(true, ret); - }); - - if (handle) { - handle.wait(); - } - }); - }); -}); - -test(function negativeWksSupportCheck() { - TestHelper.resetting(EnigmailWks, "wksClientPath", "WKS_CLIENT_DUMMY", function() { - TestHelper.resetting(EnigmailExecution, "execStart", function(path, args, wat, win, listener, ops) { - Assert.equal(path, "WKS_CLIENT_DUMMY"); - Assert.equal(args[0], "--supported"); - Assert.equal(args[1], "test2@example.com"); - listener.done(1); - return { - 'wait': function() {} - }; - }, function() { - let win = JSUnit.createStubWindow(); - let handle = EnigmailWks.isWksSupportedAsync('test2@example.com', win, function(ret) { - Assert.equal(false, ret); - }); - - if (handle) { - handle.wait(); - } - }); - }); -}); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/package/tor.jsm enigmail-2.2.4/package/tor.jsm --- enigmail-2.1.6+ds1/package/tor.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/tor.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailRNG = ChromeUtils.import("chrome://enigmail/content/modules/rng.jsm").EnigmailRNG; -const EnigmailVersioning = ChromeUtils.import("chrome://enigmail/content/modules/versioning.jsm").EnigmailVersioning; -const EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -const EnigmailSocks5Proxy = ChromeUtils.import("chrome://enigmail/content/modules/socks5Proxy.jsm").EnigmailSocks5Proxy; -const EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - -const EXPORTED_SYMBOLS = ["EnigmailTor"]; - -// Minimum for using socks5h:// prefix -const MINIMUM_CURL_SOCKS5H_VERSION = "7.21.7"; - -// Minimum for using socks5 proxies with curl -const MINIMUM_CURL_SOCKS5_PROXY_VERSION = "7.18.0"; - -const TORSOCKS_VERSION_2 = "2.0.0"; - -const TOR_SERVICE_PORT_PREF = "torServicePort"; -const TOR_BROWSER_BUNDLE_PORT_PREF = "torBrowserBundlePort"; -const NEW_CURL_PROTOCOL = "socks5h://"; -const OLD_CURL_PROTOCOL = "socks5-hostname://"; - -const TOR_USER_PREFERENCES = { - DOWNLOAD: { - requires: "downloadKeyRequireTor", - uses: "downloadKeyWithTor", - constant: EnigmailConstants.DOWNLOAD_KEY - }, - SEARCH: { - requires: "searchKeyRequireTor", - uses: "searchKeyWithTor", - constant: EnigmailConstants.SEARCH_KEY - }, - UPLOAD: { - requires: "uploadKeyRequireTor", - uses: "uploadKeyWithTor", - constant: EnigmailConstants.UPLOAD_KEY - }, - REFRESH: { - requires: "refreshAllKeysRequireTor", - uses: "refreshAllKeysWithTor", - constant: EnigmailConstants.REFRESH_KEY - } -}; - -function getAction(actionFlags) { - for (let key in TOR_USER_PREFERENCES) { - if (TOR_USER_PREFERENCES[key].constant & actionFlags) { - return TOR_USER_PREFERENCES[key]; - } - } - return null; -} - -/** - * Sets user preference about requiring requests only to be made over Tor - * - * @param actionFlags - long: A Keyserver action flag - * - * @return true if user has requested gpg requests to be attempted over Tor, false otherwise - */ -function isPreferred(actionFlags) { - const action = getAction(actionFlags); - return EnigmailPrefs.getPref(action.requires) || EnigmailPrefs.getPref(action.uses); -} - -/** - * Sets user preference about requiring requests only to be made over Tor - * - * @param actionFlags - long: A Keyserver action flag - * - * @return true if user has requested gpg requests ONLY to be attempted over Tor, false otherwise - */ -function isRequired(actionFlags) { - return EnigmailPrefs.getPref(getAction(actionFlags).requires); -} - -function combineIntoProxyhostURI(protocol, tor) { - EnigmailLog.DEBUG("tor.jsm: combineIntoProxyhostURI()\n"); - return protocol + createRandomCredential() + ":" + createRandomCredential() + "@" + tor.ip + ":" + tor.port; -} - -function gpgProxyArgs(tor, versioning) { - EnigmailLog.DEBUG("tor.jsm: gpgProxyArgs()\n"); - if (EnigmailOS.isDosLike || !versioning.versionFoundMeetsMinimumVersionRequired("curl", MINIMUM_CURL_SOCKS5H_VERSION)) { - return combineIntoProxyhostURI(OLD_CURL_PROTOCOL, tor); - } - else { - return combineIntoProxyhostURI(NEW_CURL_PROTOCOL, tor); - } -} - -function createHelperArgs(helper, addAuth) { - EnigmailLog.DEBUG("tor.jsm: createHelperArgs()\n"); - let args = []; - if (addAuth) { - args = ["--user", createRandomCredential(), "--pass", createRandomCredential()]; - } - args.push(EnigmailGpg.agentPath); - return args; -} - -function buildEnvVars() { - return [ - "TORSOCKS_USERNAME=" + createRandomCredential(), - "TORSOCKS_PASSWORD=" + createRandomCredential() - ]; -} - -function createRandomCredential() { - return EnigmailRNG.generateRandomUint32().toString(); -} - -function torOn(portPref) { - EnigmailLog.DEBUG("tor.jsm: torOn()\n"); - if (EnigmailSocks5Proxy.checkTorExists(portPref)) { - const port = EnigmailPrefs.getPref(portPref); - - EnigmailLog.CONSOLE("Tor found on IP: " + EnigmailSocks5Proxy.torIpAddr() + ", port: " + port + "\n\n"); - - return { - ip: EnigmailSocks5Proxy.torIpAddr(), - port: port - }; - } - return null; -} - -function meetsOSConstraints() { - if (EnigmailOS.isDosLike) { - return EnigmailGpg.getGpgFeature("socks-on-windows"); - } - else { - return EnigmailVersioning.versionFoundMeetsMinimumVersionRequired("curl", MINIMUM_CURL_SOCKS5_PROXY_VERSION); - } -} - -function useAuthOverArgs(helper, versioning) { - if (helper === "torsocks2") { - return versioning.versionFoundMeetsMinimumVersionRequired("torsocks2", TORSOCKS_VERSION_2); - } - return versioning.versionFoundMeetsMinimumVersionRequired("torsocks", TORSOCKS_VERSION_2); -} - -function usesDirmngr() { - return EnigmailGpg.getGpgFeature("supports-dirmngr"); -} - -function findTorExecutableHelper(versioning) { - EnigmailLog.DEBUG("tor.jsm: findTorExecutableHelper()\n"); - const helper = EnigmailFiles.resolvePathWithEnv("torsocks2") || EnigmailFiles.resolvePathWithEnv("torsocks"); - if (helper !== null) { - const authOverArgs = useAuthOverArgs(helper, versioning); - return { - envVars: (authOverArgs ? [] : buildEnvVars()), - command: helper, - args: createHelperArgs(helper, authOverArgs) - }; - } - else { - return null; - } -} - -/** - * Checks if Tor is running on specified ports in preferences for Tor browser bundle and Tor service - * - * @return true if Tor is running on either port, false if Tor is not running on either - */ -function findTor() { - EnigmailLog.DEBUG("tor.jsm: findTor()\n"); - const torOnBrowser = torOn(TOR_BROWSER_BUNDLE_PORT_PREF); - if (torOnBrowser !== null) { - return torOnBrowser; - } - return torOn(TOR_SERVICE_PORT_PREF); -} - -const systemCaller = { - findTor: findTor, - findTorExecutableHelper: findTorExecutableHelper -}; - -function buildSocksProperties(tor) { - EnigmailLog.DEBUG("tor.jsm: buildSocksProperties()\n"); - return { - command: "gpg", - args: gpgProxyArgs(tor, EnigmailVersioning), - envVars: [] - }; -} - -function torNotAvailableProperties() { - EnigmailLog.DEBUG("tor.jsm: torNotAvailableProperties()\n"); - return { - isAvailable: false, - useTorMode: false, - socks: null, - helper: null - }; -} - -/** - * Constructs object with properites about how we will use tor for key refreshes - * - * @param system - object with functions to locate Tor and Tor helpers - * - * @return object with - * isAvailable - boolean, true if Tor is available, false otherwise - * useTorMode - boolean, true if dirManager is available and configured to use Tor, false otherwise - * socks - object with - * command - the name of the gpg executable - * args - proxy host URI - * envVars - an empty array - - null if Tor is not available - - * helper - object with - * envVars - environment variables, if we need them for the helper - * command - the path to the helper executable - * args - flags used with the helper, if we do not use environment variables - - If no helper is found, return null - */ - -function torProperties(system) { - EnigmailLog.DEBUG("tor.jsm: torProperties()\n"); - - const tor = system.findTor(); - - if (!meetsOSConstraints()) { - EnigmailLog.DEBUG("tor.jsm: this version of curl does not support socks5 proxies \n"); - return torNotAvailableProperties(); - } - - if (tor === null) { - return torNotAvailableProperties(); - } - - const helper = system.findTorExecutableHelper(EnigmailVersioning); - let socks = null; - let useTorMode = false; - - if (usesDirmngr()) { - useTorMode = EnigmailGpg.dirmngrConfiguredWithTor(); - } - else { - socks = buildSocksProperties(tor); - } - - return { - isAvailable: true, - useTorMode: useTorMode, - socks: socks, - helper: helper - }; -} - -var EnigmailTor = { - torProperties: function() { - return torProperties(systemCaller); - }, - getTorNotAvailableProperties: torNotAvailableProperties, - isPreferred: isPreferred, - isRequired: isRequired -}; diff -Nru enigmail-2.1.6+ds1/package/trust.jsm enigmail-2.2.4/package/trust.jsm --- enigmail-2.1.6+ds1/package/trust.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/trust.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -9,6 +9,7 @@ var EXPORTED_SYMBOLS = ["EnigmailTrust"]; const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; +const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; // trust flags according to GPG documentation: // - https://www.gnupg.org/documentation/manuals/gnupg.pdf @@ -70,45 +71,8 @@ }, getTrustLabel: function(trustCode) { - let keyTrust; - switch (trustCode) { - case 'q': - keyTrust = EnigmailLocale.getString("keyValid.unknown"); - break; - case 'i': - keyTrust = EnigmailLocale.getString("keyValid.invalid"); - break; - case 'd': - case 'D': - keyTrust = EnigmailLocale.getString("keyValid.disabled"); - break; - case 'r': - keyTrust = EnigmailLocale.getString("keyValid.revoked"); - break; - case 'e': - keyTrust = EnigmailLocale.getString("keyValid.expired"); - break; - case 'n': - keyTrust = EnigmailLocale.getString("keyTrust.untrusted"); - break; - case 'm': - keyTrust = EnigmailLocale.getString("keyTrust.marginal"); - break; - case 'f': - keyTrust = EnigmailLocale.getString("keyTrust.full"); - break; - case 'u': - keyTrust = EnigmailLocale.getString("keyTrust.ultimate"); - break; - case 'g': - keyTrust = EnigmailLocale.getString("keyTrust.group"); - break; - case '-': - keyTrust = "-"; - break; - default: - keyTrust = ""; - } - return keyTrust; + const cApi = EnigmailCryptoAPI(); + + return cApi.getTrustLabel(trustCode); } }; diff -Nru enigmail-2.1.6+ds1/package/uris.jsm enigmail-2.2.4/package/uris.jsm --- enigmail-2.1.6+ds1/package/uris.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/uris.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailURIs"]; - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; - -const messageIdList = {}; -const encryptedUris = []; - -var EnigmailURIs = { - createMessageURI: function(originalUrl, contentType, contentCharset, contentData, persist) { - EnigmailLog.DEBUG("enigmail.js: Enigmail.createMessageURI: " + originalUrl + - ", " + contentType + ", " + contentCharset + "\n"); - - const messageId = "msg" + Math.floor(Math.random() * 1.0e9); - - messageIdList[messageId] = { - originalUrl: originalUrl, - contentType: contentType, - contentCharset: contentCharset, - contentData: contentData, - persist: persist - }; - - return "enigmail:message/" + messageId; - }, - - deleteMessageURI: function(uri) { - EnigmailLog.DEBUG("enigmail.js: Enigmail.deleteMessageURI: " + uri + "\n"); - - const messageId = EnigmailData.extractMessageId(uri); - - if (!messageId) { - return false; - } - else { - return (delete messageIdList[messageId]); - } - }, - - getMessageURI: function(messageId) { - return messageIdList[messageId]; - }, - - /* - * remember the fact a URI is encrypted - * - * @param String msgUri - * - * @return null - */ - rememberEncryptedUri: function(uri) { - EnigmailLog.DEBUG("uris.jsm: rememberEncryptedUri: uri=" + uri + "\n"); - if (encryptedUris.indexOf(uri) < 0) { - encryptedUris.push(uri); - } - }, - - /* - * unremember the fact a URI is encrypted - * - * @param String msgUri - * - * @return null - */ - forgetEncryptedUri: function(uri) { - EnigmailLog.DEBUG("uris.jsm: forgetEncryptedUri: uri=" + uri + "\n"); - const pos = encryptedUris.indexOf(uri); - if (pos >= 0) { - encryptedUris.splice(pos, 1); - } - }, - - /* - * determine if a URI was remebered as encrypted - * - * @param String msgUri - * - * @return: Boolean true if yes, false otherwise - */ - isEncryptedUri: function(uri) { - EnigmailLog.DEBUG("uris.jsm: isEncryptedUri: uri=" + uri + "\n"); - return encryptedUris.indexOf(uri) >= 0; - }, - - - /** - * Determine message number and folder from mailnews URI - * - * @param url - nsIURI object - * - * @return Object: - * - msgNum: String - the message number, or "" if no URI Scheme fits - * - folder: String - the folder (or newsgroup) name - */ - msgIdentificationFromUrl: function(url) { - - // sample URLs in Thunderbird - // Local folder: mailbox:///some/path/to/folder?number=359360 - // IMAP: imap://user@host:port/fetch>some>path>111 - // NNTP: news://some.host/some.service.com?group=some.group.name&key=3510 - // also seen: e.g. mailbox:///som/path/to/folder?number=4455522&part=1.1.2&filename=test.eml - // mailbox:///...?number=4455522&part=1.1.2&filename=test.eml&type=application/x-message-display&filename=test.eml - // imap://user@host:port>UID>some>path>10?header=filter&emitter=js&examineEncryptedParts=true - - if (!url) return null; - - EnigmailLog.DEBUG("uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=" + ("path" in url ? url.path : url.pathQueryRef) + "\n"); - - let msgNum = ""; - let msgFolder = ""; - - let pathQueryRef = ("path" in url ? url.path : url.pathQueryRef); - - if (url.schemeIs("mailbox")) { - msgNum = pathQueryRef.replace(/(.*[?&]number=)([0-9]+)([^0-9].*)?/, "$2"); - msgFolder = pathQueryRef.replace(/\?.*/, ""); - } - else if (url.schemeIs("imap")) { - let p = unescape(pathQueryRef); - msgNum = p.replace(/(.*>)([0-9]+)([^0-9].*)?/, "$2"); - msgFolder = p.replace(/\?.*$/, "").replace(/>[^>]+$/, ""); - } - else if (url.schemeIs("news")) { - msgNum = pathQueryRef.replace(/(.*[?&]key=)([0-9]+)([^0-9].*)?/, "$2"); - msgFolder = pathQueryRef.replace(/(.*[?&]group=)([^&]+)(&.*)?/, "$2"); - } - - EnigmailLog.DEBUG("uris.jsm: msgIdentificationFromUrl: msgNum=" + msgNum + " / folder=" + msgFolder + "\n"); - - return { - msgNum: msgNum, - folder: msgFolder.toLowerCase() - }; - } -}; diff -Nru enigmail-2.1.6+ds1/package/verify.jsm enigmail-2.2.4/package/verify.jsm --- enigmail-2.1.6+ds1/package/verify.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/verify.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailVerifyAttachment"]; - - - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailCryptoAPI = ChromeUtils.import("chrome://enigmail/content/modules/cryptoAPI.jsm").EnigmailCryptoAPI; - - - -var EnigmailVerifyAttachment = { - attachment: function(verifyFile, sigFile) { - EnigmailLog.DEBUG("verify.jsm: EnigmailVerifyAttachment.attachment:\n"); - - const verifyFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(verifyFile.QueryInterface(Ci.nsIFile))); - const sigFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(sigFile.QueryInterface(Ci.nsIFile))); - const cApi = EnigmailCryptoAPI(); - return cApi.verifyAttachment(verifyFilePath, sigFilePath); - - } -}; diff -Nru enigmail-2.1.6+ds1/package/webextension.js enigmail-2.2.4/package/webextension.js --- enigmail-2.1.6+ds1/package/webextension.js 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/package/webextension.js 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,200 @@ +"use strict"; + +/* global ExtensionCommon: false */ +var Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; +var ExtensionSupport = ChromeUtils.import("resource:///modules/ExtensionSupport.jsm").ExtensionSupport; + +Components.utils.importGlobalProperties(["XMLHttpRequest"]); + +const EXTENSION_NAME = "{847b3a00-7ab1-11d4-8f02-006008948af5}"; // Enigmail GUID +var gAllModules = []; + +var enigmailApi = class extends ExtensionCommon.ExtensionAPI { + + onStartup() { + const aomStartup = Cc["@mozilla.org/addons/addon-manager-startup;1"].getService(Ci.amIAddonManagerStartup); + const manifestURI = Services.io.newURI("manifest.json", null, this.extension.rootURI); + this.chromeHandle = aomStartup.registerChrome(manifestURI, [ + ["content", "enigmail", "chrome/content/"], + ["locale", "enigmail", "en-US", "chrome/locale/en-US/"], + ["locale", "enigmail", "ar", "chrome/locale/ar/"], + ["locale", "enigmail", "bg", "chrome/locale/bg/"], + ["locale", "enigmail", "ca", "chrome/locale/ca/"], + ["locale", "enigmail", "cs", "chrome/locale/cs/"], + ["locale", "enigmail", "da", "chrome/locale/da/"], + ["locale", "enigmail", "de", "chrome/locale/de/"], + ["locale", "enigmail", "el", "chrome/locale/el/"], + ["locale", "enigmail", "es-ES", "chrome/locale/es-ES/"], + ["locale", "enigmail", "fa", "chrome/locale/fa/"], + ["locale", "enigmail", "fi", "chrome/locale/fi/"], + ["locale", "enigmail", "fr", "chrome/locale/fr/"], + ["locale", "enigmail", "gd", "chrome/locale/gd/"], + ["locale", "enigmail", "gl", "chrome/locale/gl/"], + ["locale", "enigmail", "hr", "chrome/locale/hr/"], + ["locale", "enigmail", "hu", "chrome/locale/hu/"], + ["locale", "enigmail", "it", "chrome/locale/it/"], + ["locale", "enigmail", "ja", "chrome/locale/ja/"], + ["locale", "enigmail", "ko", "chrome/locale/ko/"], + ["locale", "enigmail", "lt", "chrome/locale/lt/"], + ["locale", "enigmail", "nb", "chrome/locale/nb/"], + ["locale", "enigmail", "nl", "chrome/locale/nl/"], + ["locale", "enigmail", "pl", "chrome/locale/pl/"], + ["locale", "enigmail", "pt-BR", "chrome/locale/pt-BR/"], + ["locale", "enigmail", "pt-PT", "chrome/locale/pt-PT/"], + ["locale", "enigmail", "ro", "chrome/locale/ro/"], + ["locale", "enigmail", "ru", "chrome/locale/ru/"], + ["locale", "enigmail", "sk", "chrome/locale/sk/"], + ["locale", "enigmail", "sl", "chrome/locale/sl/"], + ["locale", "enigmail", "sq", "chrome/locale/sq/"], + ["locale", "enigmail", "sv", "chrome/locale/sv/"], + ["locale", "enigmail", "tr", "chrome/locale/tr/"], + ["locale", "enigmail", "vi", "chrome/locale/vi/"], + ["locale", "enigmail", "zh-CN", "chrome/locale/zh-CN/"], + ["locale", "enigmail", "zh-TW", "chrome/locale/zh-TW/"] + ]); + + performStartup({ + version: this.extension.version, + id: this.extension.id, + installPath: this.extension.rootURI.file + }, startupReason.ADDON_ENABLE); + Services.console.logStringMessage("Enigmail startup completed"); + } + + onShutdown(isAppShutdown) { + if (isAppShutdown) return; + + // invalidate the startup cache, such that after updating the addon the old + // version is no longer cached + Services.obs.notifyObservers(null, "startupcache-invalidate"); + performShutdown(null, startupReason.ADDON_DISABLE); + this.chromeHandle.destruct(); + this.chromeHandle = null; + + console.debug("webextension.js: Enigmail shutdown"); + } + + getAPI(context) { + return { + enigmailApi: { + startEnigmail() { + // nothing done here + } + } + }; + } + + close() { + console.debug("webextension.js: close"); + ExtensionSupport.unregisterWindowListener(EXTENSION_NAME); + } +}; + +const startupReason = { + APP_STARTUP: 1, // The application is starting up. + APP_SHUTDOWN: 2, // The application is shutting down. + ADDON_ENABLE: 3, // Addon was enabled + ADDON_DISABLE: 4 // The add-on is being disabled. (Also sent during uninstallation) +}; + +function performStartup(data, reason) { + try { + const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; + const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; + const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; + + loadListOfModules(); + + EnigmailApp.initAddon(data); + EnigmailCore.startup(reason); + + Services.console.logStringMessage("Enigmail bootstrap completed"); + } + catch (ex) { + logException(ex); + } +} + +function performShutdown(data, reason) { + try { + const subprocess = ChromeUtils.import("chrome://enigmail/content/modules/subprocess.jsm").subprocess; + subprocess.onShutdown(); + + const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; + const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; + const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; + + shutdownModule(EnigmailWindows, reason); + shutdownModule(EnigmailCore, reason); + unloadModules(); + + // HACK WARNING: The Addon Manager does not properly clear all addon related caches on update; + // in order to fully update images and locales, their caches need clearing here + Services.obs.notifyObservers(null, "chrome-flush-caches", null); + + } + catch (ex) { + logException(ex); + } +} + +/** + * Perform shutdown of a module + */ +function shutdownModule(module, reason) { + try { + module.shutdown(reason); + } + catch (ex) {} +} + +/** + * Load list of all Enigmail modules that can be potentially loaded + */ +function loadListOfModules() { + let request = new XMLHttpRequest(); + request.open("GET", "chrome://enigmail/content/modules/all-modules.txt", true); // async=true + request.responseType = "text"; + request.onerror = function(event) {}; + request.onload = function(event) { + if (request.response) { + gAllModules = []; + let modules = request.response.split(/[\r\n]/); + for (let mod of modules) { + mod = mod.replace(/^chrome/, ""); + gAllModules.push(mod); + } + } + else + request.onerror(event); + }; + request.send(); +} + + +/** + * Unload all Enigmail modules that were potentially loaded + */ +function unloadModules() { + for (let mod of gAllModules) { + try { + // cannot unload filtersWrapper as you can't unregister filters in TB + if (mod.search(/filtersWrapper\.jsm$/) < 0) { + Components.utils.unload("chrome://enigmail" + mod); + } + } + catch (ex) { + logException(ex); + } + } +} + +function logException(exc) { + try { + const { + Services + } = ChromeUtils.import("resource://gre/modules/Services.jsm"); + Services.console.logStringMessage(exc.toString() + "\n" + exc.stack); + } + catch (x) {} +} diff -Nru enigmail-2.1.6+ds1/package/webKey.jsm enigmail-2.2.4/package/webKey.jsm --- enigmail-2.1.6+ds1/package/webKey.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/webKey.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,437 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/* eslint no-invalid-this: 0 */ - -/** - * This module serves to integrate WKS (Webkey service) into Enigmail - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailWks"]; - - - - - -const EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailExecution = ChromeUtils.import("chrome://enigmail/content/modules/execution.jsm").EnigmailExecution; -const EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; -const EnigmailSend = ChromeUtils.import("chrome://enigmail/content/modules/send.jsm").EnigmailSend; -const EnigmailMimeEncrypt = ChromeUtils.import("chrome://enigmail/content/modules/mimeEncrypt.jsm").EnigmailMimeEncrypt; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; - -const GPG_WKS_CLIENT = "gpg-wks-client"; - -var EnigmailWks = { - wksClientPath: null, - - /** - * Get WKS Client path (gpg-wks-client) - * - * @param window : Object - parent window for dialog display - * @param cb : Function(retValue) - callback function. - * retValue: nsIFile Object to gpg-wks-client executable or NULL - * @return : Object - NULL or a process handle - */ - getWksClientPathAsync: function(window, cb) { - EnigmailLog.DEBUG("webKey.jsm: getWksClientPathAsync\n"); - - if (EnigmailWks.wksClientPath === null) { - let listener = EnigmailExecution.newSimpleListener(null, function(ret) { - if (ret === 0) { - try { - let stdout = listener.stdoutData; - - let libexecdir = /^libexecdir:(.+?)$/m.exec(stdout)[1]; - if (libexecdir) { - libexecdir = libexecdir.replace(/%3a/gi, ":"); - } - else { - libexecdir = ""; - } - - let wks_client = checkIfExists(libexecdir, GPG_WKS_CLIENT); - if (!wks_client) { - let bindir = /^bindir:(.+?)$/m.exec(stdout)[1]; - if (bindir) { - bindir = bindir.replace(/%3a/gi, ":"); - } - else { - bindir = ""; - } - wks_client = checkIfExists(bindir, GPG_WKS_CLIENT); - - if (!wks_client) { - cb(null); - return; - } - } - - EnigmailWks.wksClientPath = wks_client; - cb(wks_client); - } - catch (e) { - EnigmailLog.DEBUG("webKey.jsm: getWksClientPathAsync: " + e.toString() + "\n"); - cb(null); - } - } - else { - cb(null); - } - }); - - return EnigmailExecution.execStart(EnigmailGpgAgent.gpgconfPath, ["--list-dirs"], false, window, listener, { - value: null - }); - } - else { - cb(EnigmailWks.wksClientPath); - return null; - } - }, - - /** - * Determine if WKS is supported by email provider - * - * @param email : String - user's email address - * @param window: Object - parent window of dialog display - * @param cb : Function(retValue) - callback function. - * retValue: Boolean: true if WKS is supported / false otherwise - * @return : Object - process handle - */ - isWksSupportedAsync: function(email, window, cb) { - EnigmailLog.DEBUG("webKey.jsm: isWksSupportedAsync: email = " + email + "\n"); - return EnigmailWks.getWksClientPathAsync(window, function(wks_client) { - if (wks_client === null) { - cb(false); - } - let listener = EnigmailExecution.newSimpleListener(null, function(ret) { - cb(ret === 0); - }); - let proc = EnigmailExecution.execStart(wks_client, ["--supported", email], false, window, listener, { - value: null - }); - if (proc === null) { - cb(false); - } - }); - }, - - - /** - * Submit a set of keys to the Web Key Server (WKD) - * - * @param keys: Array of KeyObj - * @param win: parent Window for displaying dialogs - * @param observer: Object (KeySrvListener API) - * Object implementing: - * - onProgress: function(percentComplete) [only implemented for download()] - * - onCancel: function() - the body will be set by the callee - * - * @return Promise<...> - */ - wksUpload: function(keys, win, observer = null) { - EnigmailLog.DEBUG(`webKey.jsm: wksUpload(): keys = ${keys.length}\n`); - let ids = getWkdIdentities(keys); - - if (observer === null) { - observer = { - onProgress: function() {} - }; - } - - observer.isCanceled = false; - observer.onCancel = function() { - this.isCanceled = true; - }; - - if (!ids) throw "error"; - - if (ids.senderIdentities.length === 0) { - return new Promise(resolve => { - resolve([]); - }); - } - - return performWkdUpload(ids.senderIdentities, win, observer); - }, - - /** - * Submit a key to the email provider (= send publication request) - * - * @param ident : nsIMsgIdentity - user's ID - * @param key : Enigmail KeyObject of user's key - * @param window: Object - parent window of dialog display - * @param cb : Function(retValue) - callback function. - * retValue: Boolean: true if submit was successful / false otherwise - * @return : Object - process handle - */ - - submitKey: function(ident, key, window, cb) { - EnigmailLog.DEBUG("webKey.jsm: submitKey(): email = " + ident.email + "\n"); - return EnigmailWks.getWksClientPathAsync(window, function(wks_client) { - if (wks_client === null) { - cb(false); - return null; - } - let listener = EnigmailExecution.newSimpleListener(null, function(ret) { - if (ret !== 0) { - cb(false); - return; - } - EnigmailLog.DEBUG("webKey.jsm: submitKey: send " + listener.stdoutData + "\n"); - let si = EnigmailMimeEncrypt.createMimeEncrypt(null); - let subject = listener.stdoutData.match(/^Subject:[ \t]*(.+)$/im); - let to = listener.stdoutData.match(/^To:[ \t]*(.+)$/im); - - if (subject !== null && to !== null) { - si.sendFlags = EnigmailConstants.SEND_VERBATIM; - - if (!EnigmailSend.simpleSendMessage({ - urls: [], - identity: ident, - to: to[1], - subject: subject[1], - composeSecure: si - }, - listener.stdoutData, - cb - )) { - cb(false); - } - } - else { - cb(false); - } - }); - return EnigmailExecution.execStart(wks_client, ["--create", key.fpr, ident.email], false, window, listener, { - value: null - }); - }); - }, - - /** - * Submit a key to the email provider (= send publication request) - * - * @param ident : nsIMsgIdentity - user's ID - * @param body : String - complete message source of the confirmation-request email obtained - * from the email provider - * @param window: Object - parent window of dialog display - * @param cb : Function(retValue) - callback function. - * retValue: Boolean: true if submit was successful / false otherwise - * @return : Object - process handle - */ - - confirmKey: function(ident, body, window, cb) { - EnigmailLog.DEBUG("webKey.jsm: confirmKey: ident=" + ident.email + "\n"); - - var sanitized = body.replace(/\r?\n/g, "\r\n"); - return EnigmailWks.getWksClientPathAsync(window, function(wks_client) { - if (wks_client === null) { - if (cb) { - cb(false); - } - return; - } - let listener = EnigmailExecution.newSimpleListener(function(pipe) { - try { - pipe.write(sanitized); - pipe.close(); - } - catch (e) { - if (cb) { - cb(false); - } - EnigmailLog.DEBUG(e + "\n"); - } - }, function(ret) { - try { - let si = EnigmailMimeEncrypt.createMimeEncrypt(null); - let subject = listener.stdoutData.match(/^Subject:[ \t]*(.+)$/im); - let to = listener.stdoutData.match(/^To:[ \t]*(.+)$/im); - - if (subject !== null && to !== null) { - si.sendFlags = EnigmailConstants.SEND_VERBATIM; - - if (!EnigmailSend.simpleSendMessage({ - urls: [], - identity: ident, - to: to[1], - subject: subject[1], - composeSecure: si - }, - listener.stdoutData, - cb - )) { - cb(false); - } - } - } - catch (e) { - if (cb) { - cb(false); - } - EnigmailLog.DEBUG(e + "\n"); - } - }); - EnigmailExecution.execStart(wks_client, ["--receive"], false, window, listener, { - value: null - }); - }); - } -}; - -/** - * Check if a file exists and is executable - * - * @param path: String - directory name - * @param execFileName: String - executable name - * - * @return Object - nsIFile if file exists; NULL otherwise - */ - -function checkIfExists(path, execFileName) { - EnigmailLog.DEBUG("webKey.jsm checkIfExists() path=" + path + " execFileName=" + execFileName + "\n"); - - let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); - - execFileName = EnigmailFiles.potentialWindowsExecutable(execFileName); - EnigmailFiles.initPath(file, path); - file.append(execFileName); - if (file.exists() && file.isExecutable()) { - return file; - } - else { - return null; - } -} - - -function getWkdIdentities(keys) { - EnigmailLog.DEBUG(`webKey.jsm: getWkdIdentities(): keys = ${keys.length}\n`); - let senderIdentities = [], - notFound = []; - - for (let key of keys) { - try { - let found = false; - for (let uid of key.userIds) { - let email = EnigmailFuncs.stripEmail(uid.userId); - let maybeIdent = EnigmailStdlib.getIdentityForEmail(email); - - if (maybeIdent && maybeIdent.identity) { - senderIdentities.push({ - identity: maybeIdent.identity, - fpr: key.fpr - }); - } - } - if (!found) { - notFound.push(key); - } - } - catch (ex) { - EnigmailLog.DEBUG(ex + "\n"); - return null; - } - } - - return { - senderIdentities: senderIdentities, - notFound - }; -} - -/** - * Do the WKD upload and interact with a progress receiver - * - * @param keyList: Object: - * - fprList (String - fingerprint) - * - senderIdentities (nsIMsgIdentity) - * @param win: nsIWindow - parent window - * @param observer: Object: - * - onProgress: function(percentComplete [0 .. 100]) - * called after processing of every key (indpendent of status) - * - onUpload: function(fpr) - * called after successful uploading of a key - * - onFinished: function(completionStatus, errorMessage, displayError) - * - isCanceled: Boolean - used to determine if process is canceled - */ -function performWkdUpload(keyList, win, observer) { - EnigmailLog.DEBUG(`webKey.jsm: performWkdUpload: keyList.length=${keyList.length}\n`); - - let uploads = []; - - let numKeys = keyList.length; - - // For each key fpr/sender identity pair, check whenever WKS is supported - // Result is an array of booleans - for (let i = 0; i < numKeys; i++) { - let keyFpr = keyList[i].fpr; - let senderIdent = keyList[i].identity; - - let was_uploaded = new Promise(function _isSupported(resolve, reject) { - EnigmailLog.DEBUG("webKey.jsm: performWkdUpload: _isSupported(): ident=" + senderIdent.email + ", key=" + keyFpr + "\n"); - EnigmailWks.isWksSupportedAsync(senderIdent.email, win, function(is_supported) { - if (observer.isCanceled) { - EnigmailLog.DEBUG("webKey.jsm: performWkdUpload: canceled by user\n"); - reject("canceled"); - } - - EnigmailLog.DEBUG("webKey.jsm: performWkdUpload: ident=" + senderIdent.email + ", supported=" + is_supported + "\n"); - resolve(is_supported); - }); - }).then(function _submitKey(is_supported) { - EnigmailLog.DEBUG(`webKey.jsm: performWkdUpload: _submitKey ${is_supported}\n`); - if (is_supported) { - - return new Promise(function(resolve, reject) { - EnigmailWks.submitKey(senderIdent, { - 'fpr': keyFpr - }, win, function(success) { - observer.onProgress((i + 1) / numKeys * 100); - if (success) { - resolve(senderIdent); - } - else { - reject("submitFailed"); - } - }); - }); - } - else { - observer.onProgress((i + 1) / numKeys * 100); - return Promise.resolve(null); - } - }); - - uploads.push(was_uploaded); - } - - return Promise.all(uploads).catch(function(reason) { - //let errorMsg = EnigmailLocale.getString("keyserverProgress.wksUploadFailed"); - return []; - }).then(function(senders) { - let uploaded_uids = []; - if (senders) { - senders.forEach(function(val) { - if (val !== null) { - uploaded_uids.push(val.email); - } - }); - } - observer.onProgress(100); - - return uploaded_uids; - }); -} diff -Nru enigmail-2.1.6+ds1/package/windows.jsm enigmail-2.2.4/package/windows.jsm --- enigmail-2.1.6+ds1/package/windows.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/windows.jsm 2020-10-01 13:32:58.000000000 +0000 @@ -9,14 +9,8 @@ var EXPORTED_SYMBOLS = ["EnigmailWindows"]; const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailRules = ChromeUtils.import("chrome://enigmail/content/modules/rules.jsm").EnigmailRules; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const EnigmailPEPAdapter = ChromeUtils.import("chrome://enigmail/content/modules/pEpAdapter.jsm").EnigmailPEPAdapter; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailStdlib = ChromeUtils.import("chrome://enigmail/content/modules/stdlib.jsm").EnigmailStdlib; +const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; +const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; const APPSHSVC_CONTRACTID = "@mozilla.org/appshell/appShellService;1"; @@ -26,26 +20,6 @@ var EnigmailWindows = { /** - * Display the OpenPGP setup wizard window - * - * win : nsIWindow - the parent window - * skipIntro: Boolean - optional, if true, skip the introduction page - * - * no return value - */ - openSetupWizard: function(win, setupType) { - EnigmailLog.DEBUG("windows.jsm: openSetupWizard()\n"); - - if (!EnigmailStdlib.hasConfiguredAccounts()) { - EnigmailLog.DEBUG("windows.jsm: openSetupWizard: no configured accounts\n"); - return; - } - - win.open("chrome://enigmail/content/ui/setupWizard2.xul", - "", "chrome,centerscreen,resizable"); - }, - - /** * Open a window, or focus it if it is already open * * @winName : String - name of the window; used to identify if it is already open @@ -101,10 +75,10 @@ while (winEnum.hasMoreElements()) { var thisWin = winEnum.getNext(); - if (thisWin.location.href.search(/\/messenger.xul$/) > 0) { + if (thisWin.location.href.search(/\/messenger.xhtml$/) > 0) { bestFit = thisWin; } - if (!bestFit && thisWin.location.href.search(/\/messengercompose.xul$/) > 0) { + if (!bestFit && thisWin.location.href.search(/\/messengercompose.xhtml$/) > 0) { bestFit = thisWin; } } @@ -117,45 +91,12 @@ return bestFit; }, - /** - * Iterate through the frames of a window and return the first frame with a - * matching name. - * - * @win: nsIWindow - XUL window to search - * @frameName: String - name of the frame to seach - * - * @return: the frame object or null if not found - */ - getFrame: function(win, frameName) { - EnigmailLog.DEBUG("windows.jsm: getFrame: name=" + frameName + "\n"); - for (var j = 0; j < win.frames.length; j++) { - if (win.frames[j].name == frameName) { - return win.frames[j]; - } - } - return null; - }, getMostRecentWindow: function() { var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); return windowManager.getMostRecentWindow(null); }, - - /** - * Display the key help window - * - * @source - |string| containing the name of the file to display - * - * no return value - */ - - openHelpWindow: function(source) { - EnigmailWindows.openWin("enigmail:help", - "chrome://enigmail/content/ui/enigmailHelp.xul?src=" + source, - "centerscreen,resizable"); - }, - /** * Display the "About Enigmail" window * @@ -168,554 +109,161 @@ /** * Display the "About Enigmail" window * - * no return value - */ - openGnuPGUpdate: function() { - EnigmailWindows.openMailTab("chrome://enigmail/content/ui/updateGnuPG.html"); - }, - - /** - * Open the Enigmail Documentation page in a new window + * @param {Boolean} displayWizard: display the Migration wizard, regardless of pEp settings * * no return value */ - openEnigmailDocu: function(parent) { - if (!parent) { - parent = this.getMostRecentWindow(); - } - - parent.open("https://enigmail.net/faq/docu.php", "", "chrome,width=600,height=500,resizable"); - }, - - /** - * Display the Per-Recipient Rules editor window - * - * no return value - */ - openRulesEditor: function() { - EnigmailWindows.openWin("enigmail:rulesEditor", - "chrome://enigmail/content/ui/enigmailRulesEditor.xul", - "dialog,centerscreen,resizable"); - }, - - /** - * Display the OpenPGP key manager window - * - * no return value - */ - openKeyManager: function(win) { - EnigmailCore.getService(win); - - EnigmailWindows.openWin("enigmail:KeyManager", - "chrome://enigmail/content/ui/enigmailKeyManager.xul", - "resizable"); - }, - - /** - * Display the OpenPGP key manager window - * - * no return value - */ - openImportSettings: function(win) { - EnigmailCore.getService(win); - - EnigmailWindows.openWin("", - "chrome://enigmail/content/ui/importSettings.xul", - "chrome,dialog,centerscreen,resizable,modal"); - }, - - /** - * 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); - const winName = "enigmail:KeyManager"; - const spec = "chrome://enigmail/content/ui/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 (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 - */ - openKeyGen: function() { - EnigmailWindows.openWin("enigmail:generateKey", - "chrome://enigmail/content/ui/enigmailKeygen.xul", - "chrome,resizable=yes"); - }, - - /** - * Display the card details window - * - * no return value - */ - openCardDetails: function() { - EnigmailWindows.openWin("enigmail:cardDetails", - "chrome://enigmail/content/ui/enigmailCardDetails.xul", - "centerscreen"); - }, - - - /** - * Display the console log window - * - * @win - |object| holding the parent window for the dialog - * - * no return value - */ - openConsoleWindow: function() { - EnigmailWindows.openWin("enigmail:console", - "chrome://enigmail/content/ui/enigmailConsole.xul", - "resizable,centerscreen"); - }, - - /** - * Display the window for the debug log file - * - * @win - |object| holding the parent window for the dialog - * - * no return value - */ - openDebugLog: function(win) { - EnigmailWindows.openWin("enigmail:logFile", - "chrome://enigmail/content/ui/enigmailViewFile.xul?viewLog=1&title=" + escape(EnigmailLocale.getString("debugLog.title")), - "centerscreen"); - }, - - /** - * Display the preferences dialog - * - * @win - |object| holding the parent window for the dialog - * @showBasic - |boolean| true if only the 1st page of the preferences window - * should be displayed / false otherwise - * @selectTab - |string| ID of the tab element (in XUL) to display when opening - * - * no return value - */ - openPrefWindow: function(win, showBasic, selectTab) { - EnigmailLog.DEBUG("windows.js: openPrefWindow\n"); - - EnigmailCore.getService(win, true); // true: starting preferences dialog - - let url; - - if (EnigmailPEPAdapter.usingPep()) { - url = "chrome://enigmail/content/ui/pref-pep.xul"; + openUpdateInfo: function(displayWizard = false) { + let appShellSvc = Cc["@mozilla.org/appshell/appShellService;1"].getService(Ci.nsIAppShellService); + let platform = appShellSvc.hiddenDOMWindow.navigator.platform.replace(/[ \t].*$/, ""); + let locale = Cc["@mozilla.org/intl/localeservice;1"].getService(Ci.mozILocaleService).appLocalesAsBCP47; + if (locale && locale.length > 0) { + locale = locale[0].substr(0, 2); } else { - url = "chrome://enigmail/content/ui/pref-enigmail.xul"; + locale = "en"; } - win.openDialog(url, - "_blank", "chrome,resizable=yes", { - 'showBasic': showBasic, - 'clientType': 'thunderbird', - 'selectTab': selectTab - }); - }, - /** - * Display the dialog for creating a new per-recipient rule - * - * @win - |object| holding the parent window for the dialog - * @emailAddress - |string| containing the email address for the rule - * - * @return - always true - */ - createNewRule: function(win, emailAddress) { - // make sure the rules database is loaded - const enigmailSvc = EnigmailCore.getService(win); - if (!enigmailSvc) { - return false; - } - - // open rule dialog - EnigmailRules.getRulesData({}); - - const inputObj = { - toAddress: "{" + emailAddress + "}", - options: "", - command: "add" - }; - win.openDialog("chrome://enigmail/content/ui/enigmailSingleRcptSettings.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, {}); - return true; - }, + if ((!displayWizard) && (EnigmailPrefs.getPref("juniorMode") === 2)) { + const URL="https://pep.software/thunderbird/%p?lang=%l"; - /** - * Display the dialog for changing the expiry date of one or several keys - * - * @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 - * - * @return Boolean - true if expiry date was changed; false otherwise - */ - editKeyExpiry: function(win, userIdArr, keyIdArr) { - const inputObj = { - keyId: keyIdArr, - userId: userIdArr - }; - const resultObj = { - refresh: false - }; - win.openDialog("chrome://enigmail/content/ui/enigmailEditKeyExpiryDlg.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, resultObj); - return resultObj.refresh; - }, - - /** - * Display the dialog for changing key trust of one or several keys - * - * @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 - * - * @return Boolean - true if key trust was changed; false otherwise - */ - editKeyTrust: function(win, userIdArr, keyIdArr) { - const inputObj = { - keyId: keyIdArr, - userId: userIdArr - }; - const resultObj = { - refresh: false - }; - win.openDialog("chrome://enigmail/content/ui/enigmailEditKeyTrustDlg.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, resultObj); - return resultObj.refresh; + let url = URL.replace("%p", platform).replace("%l", locale); + openExternalUrl(url); + } + else + EnigmailWindows.openMailTab("chrome://enigmail/content/ui/upgradeInfo.html"); }, - /** - * Display the dialog for signing a key - * - * @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") - * - * @return Boolean - true if key was signed; false otherwise - */ - signKey: function(win, userId, keyId) { - const inputObj = { - keyId: keyId, - userId: userId - }; - const resultObj = { - refresh: false - }; - win.openDialog("chrome://enigmail/content/ui/enigmailSignKeyDlg.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, resultObj); - return resultObj.refresh; + closeUpdateInfo: function() { + EnigmailWindows.closeMailTab("chrome://enigmail/content/ui/upgradeInfo.html"); }, /** - * Display the photo ID associated with a key + * Open a URL in a tab on the main window. The URL can either be a web page + * (e.g. https://enigmail.net/ or a chrome document (e.g. chrome://enigmail/content/ui/x.xul)) * - * @win - |object| holding the parent window for the dialog - * @keyId - |string| containing the key ID (eg. "0x12345678") - * @userId - |string| containing the User ID (for displaing in the dialog only) - * @photoNumber - |number| UAT entry in the squence of appearance in the key listing, starting with 0 - * no return value + * @param aURL: String - the URL to open */ - showPhoto: function(win, keyId, userId, photoNumber) { - const enigmailSvc = EnigmailCore.getService(win); - if (enigmailSvc) { - if (!photoNumber) photoNumber = 0; - let keyObj = EnigmailKeyRing.getKeyById(keyId); - if (!keyObj) { - EnigmailWindows.alert(win, EnigmailLocale.getString("noPhotoAvailable")); - } + openMailTab: function(aURL) { + let tabs = getMail3Pane().document.getElementById("tabmail"); - let photoFile = keyObj.getPhotoFile(photoNumber); - - if (photoFile) { - if (!(photoFile.isFile() && photoFile.isReadable())) { - EnigmailWindows.alert(win, EnigmailLocale.getString("error.photoPathNotReadable", photoFile.path)); - } - else { - const photoUri = Cc[IOSERVICE_CONTRACTID].getService(Ci.nsIIOService). - newFileURI(photoFile).spec; - const argsObj = { - photoUri: photoUri, - userId: userId, - keyId: keyId - }; - - win.openDialog("chrome://enigmail/content/ui/enigmailDispPhoto.xul", - photoUri, - "chrome,modal,resizable,dialog,centerscreen", - argsObj); - try { - // delete the photo file - photoFile.remove(false); - } - catch (ex) {} - } - } - else { - EnigmailWindows.alert(win, EnigmailLocale.getString("noPhotoAvailable")); + for (let i = 0; i < tabs.tabInfo.length; i++) { + if ("openedUrl" in tabs.tabInfo[i] && tabs.tabInfo[i].openedUrl.startsWith(aURL)) { + tabs.switchToTab(i); + return; } } - }, - - /** - * Display the OpenPGP Key Details window - * - * @win - |object| holding the parent window for the dialog - * @keyId - |string| containing the key ID (eg. "0x12345678") - * @refresh - |boolean| if true, cache is cleared and the key data is loaded from GnuPG - * - * @return Boolean - true: keylist needs to be refreshed - * - false: no need to refresh keylist - */ - openKeyDetails: function(win, keyId, refresh) { - const keyListObj = {}; - - if (!win) { - win = this.getBestParentWin(); - } - keyId = keyId.replace(/^0x/, ""); - - if (refresh) { - EnigmailKeyRing.clearCache(); - } - - const inputObj = { - keyId: keyId - }; - const resultObj = { - refresh: false - }; - win.openDialog("chrome://enigmail/content/ui/keyDetailsDlg.xul", "", - "dialog,modal,centerscreen,resizable", inputObj, resultObj); - if (resultObj.refresh) { - EnigmailKeyRing.clearCache(); - } - - return resultObj.refresh; + let gotTab = tabs.openTab("chromeTab", { + chromePage: aURL + }); + gotTab.openedUrl = aURL; }, - /** - * Display the dialog to search and/or download key(s) from a keyserver - * - * @win - |object| holding the parent window for the dialog - * @inputObj - |object| with member searchList (|string| containing the keys to search) - * @resultObj - |object| with member importedKeys (|number| containing the number of imporeted keys) - * - * no return value - */ - downloadKeys: function(win, inputObj, resultObj) { - EnigmailLog.DEBUG("windows.jsm: downloadKeys: searchList=" + inputObj.searchList + "\n"); - - resultObj.importedKeys = 0; - - const ioService = Cc[IOSERVICE_CONTRACTID].getService(Ci.nsIIOService); - if (ioService && ioService.offline) { - EnigmailWindows.alert(win, EnigmailLocale.getString("needOnline")); - return; - } - - let valueObj = {}; - if (inputObj.searchList) { - valueObj = { - keyId: "<" + inputObj.searchList.join("> <") + ">" - }; - } - - const keysrvObj = {}; - - if (inputObj.searchList && inputObj.autoKeyServer) { - keysrvObj.value = inputObj.autoKeyServer; - } - else { - win.openDialog("chrome://enigmail/content/ui/enigmailKeyserverDlg.xul", - "", "dialog,modal,centerscreen", valueObj, keysrvObj); - } - - if (!keysrvObj.value) { - return; - } - - inputObj.keyserver = keysrvObj.value; - - if (!inputObj.searchList) { - const searchval = keysrvObj.email. - replace(/^(\s*)(.*)/, "$2"). - replace(/\s+$/, ""); // trim spaces - // special handling to convert fingerprints with spaces into fingerprint without spaces - if (searchval.length == 49 && searchval.match(/^[0-9a-fA-F ]*$/) && - searchval[4] == ' ' && searchval[9] == ' ' && searchval[14] == ' ' && - searchval[19] == ' ' && searchval[24] == ' ' && searchval[29] == ' ' && - searchval[34] == ' ' && searchval[39] == ' ' && searchval[44] == ' ') { - inputObj.searchList = ["0x" + searchval.replace(/ /g, "")]; - } - else if (searchval.length == 40 && searchval.match(/^[0-9a-fA-F ]*$/)) { - inputObj.searchList = ["0x" + searchval]; - } - else if (searchval.length == 8 && searchval.match(/^[0-9a-fA-F]*$/)) { - // special handling to add the required leading 0x when searching for keys - inputObj.searchList = ["0x" + searchval]; - } - else if (searchval.length == 16 && searchval.match(/^[0-9a-fA-F]*$/)) { - inputObj.searchList = ["0x" + searchval]; - } - else { - inputObj.searchList = searchval.split(/[,; ]+/); + closeMailTab: function(aURL) { + let tabs = getMail3Pane().document.getElementById("tabmail"); + for (let i = 0; i < tabs.tabInfo.length; i++) { + if ("openedUrl" in tabs.tabInfo[i] && tabs.tabInfo[i].openedUrl.startsWith(aURL)) { + tabs.closeTab(i); + return; } } - - win.openDialog("chrome://enigmail/content/ui/enigmailSearchKey.xul", - "", "dialog,modal,centerscreen", inputObj, resultObj); - }, - - /** - * Open the Trustwords dialog for a specific pair of keys - * - * @param win: Object - nsIWindow - * @param emailAddress: String - Email address of peer to verify - * @param headerData: either: Object - nsIMsgHdr object for the message (to identify the ideal own identity) - * or: String - own email address to compare with - * - * @return: Promise (resolve() case of success; rejection otherwise). - */ - verifyPepTrustWords: function(win, emailAddress, headerData) { - return new Promise((resolve, reject) => { - EnigmailPEPAdapter.prepareTrustWordsDlg(emailAddress, headerData). - then(function _ok(inputObj) { - win.openDialog("chrome://enigmail/content/ui/pepTrustWords.xul", - "", "dialog,modal,centerscreen", inputObj); - resolve(); - }). - catch(function _err(errorMsg) { - switch (errorMsg) { - case "cannotVerifyOwnId": - EnigmailWindows.alert(win, EnigmailLocale.getString("pepTrustWords.cannotVerifyOwnId")); - break; - case "cannotFindKey": - EnigmailWindows.alert(win, EnigmailLocale.getString("pepTrustWords.cannotFindKey", emailAddress)); - break; - default: - EnigmailWindows.alert(win, EnigmailLocale.getString("pepTrustWords.generalFailure", emailAddress)); - break; - } - reject(); - }); - }); }, - pepHandshake: function(window, direction, myself, peers) { - let inputObj = { - myself: myself, - peers: peers, - direction: direction - }; - - window.openDialog("chrome://enigmail/content/ui/pepHandshake.xul", - "", "dialog,modal,centerscreen", inputObj); - - }, + shutdown: function(reason) { + EnigmailLog.DEBUG("windows.jsm: shutdown()\n"); + let tabs = getMail3Pane().document.getElementById("tabmail"); - /** - * Display Autocrypt Setup Passwd dialog. - * - * @param dlgMode: String - dialog mode: "input" / "display" - * @param passwdType: String - type of password ("numeric9x4" / "generic") - * @param password: String - password or initial two digits of password - * - * @return String entered password (in input mode) or NULL - */ - autocryptSetupPasswd: function(window, dlgMode, passwdType = "numeric9x4", password) { - if (!window) { - window = this.getBestParentWin(); + for (let i = tabs.tabInfo.length - 1; i >= 0; i--) { + if ("openedUrl" in tabs.tabInfo[i] && tabs.tabInfo[i].openedUrl.startsWith("chrome://enigmail/")) { + tabs.closeTab(tabs.tabInfo[i]); + } } + } +}; - let inputObj = { - password: null, - passwdType: passwdType, - dlgMode: dlgMode - }; - if (password) inputObj.initialPasswd = password; +function getMail3Pane() { + return Cc["@mozilla.org/appshell/window-mediator;1"] + .getService(Ci.nsIWindowMediator) + .getMostRecentWindow("mail:3pane"); +} - window.openDialog("chrome://enigmail/content/ui/autocryptSetupPasswd.xul", - "", "dialog,modal,centerscreen", inputObj); - return inputObj.password; - }, +function openExternalUrl(href) { + if (!href) { + return; + } - /** - * Display dialog to initiate the Autocrypt Setup Message. - * - */ - inititateAcSetupMessage: function(window) { - if (!window) { - window = this.getBestParentWin(); + let uri = null; + try { + const nsISSM = Ci.nsIScriptSecurityManager; + const secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService( + nsISSM + ); + + uri = Services.io.newURI(href); + + let principal = secMan.createNullPrincipal({}); + try { + secMan.checkLoadURIWithPrincipal( + principal, + uri, + nsISSM.DISALLOW_INHERIT_PRINCIPAL + ); + } + catch (ex) { + var msg = + "Error: Cannot open a " + + uri.scheme + + ": link using the text-link binding."; + Cu.reportError(msg); + return; } - window.openDialog("chrome://enigmail/content/ui/autocryptInitiateBackup.xul", - "", "dialog,centerscreen"); - }, - - /** - * Open a URL in a tab on the main window. The URL can either be a web page - * (e.g. https://enigmail.net/ or a chrome document (e.g. chrome://enigmail/content/ui/x.xul)) - * - * @param aURL: String - the URL to open - * @param winName: String - name of the window; used to identify if it is already open - */ - openMailTab: function(aURL, windowName) { - if (!EnigmailCompat.isPostbox()) { - let tabs = EnigmailStdlib.getMail3Pane().document.getElementById("tabmail"); - - for (let i = 0; i < tabs.tabInfo.length; i++) { - if ("openedUrl" in tabs.tabInfo[i] && tabs.tabInfo[i].openedUrl.startsWith(aURL)) { - tabs.switchToTab(i); - return; - } - } - - let gotTab = tabs.openTab("chromeTab", { - chromePage: aURL - }); - gotTab.openedUrl = aURL; - } - else { - EnigmailWindows.openWin(windowName, - aURL, "resizable,centerscreen"); + const cID = "@mozilla.org/uriloader/external-protocol-service;1"; + const nsIEPS = Ci.nsIExternalProtocolService; + var protocolSvc = Cc[cID].getService(nsIEPS); + + // if the scheme is not an exposed protocol, then opening this link + // should be deferred to the system's external protocol handler + if (!protocolSvc.isExposedProtocol(uri.scheme)) { + protocolSvc.loadURI(uri); + return; } - }, + } + catch (ex) { + Cu.reportError(ex); + } - shutdown: function(reason) { - EnigmailLog.DEBUG("windows.jsm: shutdown()\n"); + href = uri ? uri.spec : href; - let tabs = EnigmailStdlib.getMail3Pane().document.getElementById("tabmail"); + // Try handing off the link to the host application, e.g. for + // opening it in a tabbed browser. + var linkHandled = Cc["@mozilla.org/supports-PRBool;1"].createInstance( + Ci.nsISupportsPRBool + ); + linkHandled.data = false; + let data = { + href + }; + Services.obs.notifyObservers( + linkHandled, + "handle-xul-text-link", + JSON.stringify(data) + ); + if (linkHandled.data) { + return; + } - for (let i = tabs.tabInfo.length - 1; i >= 0; i--) { - if ("openedUrl" in tabs.tabInfo[i] && tabs.tabInfo[i].openedUrl.startsWith("chrome://enigmail/")) { - tabs.closeTab(tabs.tabInfo[i]); - } + // otherwise, fall back to opening the anchor directly + let win = window; + if (window.isChromeWindow) { + while (win.opener && !win.opener.closed) { + win = win.opener; } } -}; + win.open(href, "_blank", "noopener"); +} diff -Nru enigmail-2.1.6+ds1/package/wkdLookup.jsm enigmail-2.2.4/package/wkdLookup.jsm --- enigmail-2.1.6+ds1/package/wkdLookup.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/wkdLookup.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,417 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -/** - * Lookup keys by email addresses using WKD. A an email address is lookep up at most - * once a day. (see https://tools.ietf.org/html/draft-koch-openpgp-webkey-service) - */ - -var EXPORTED_SYMBOLS = ["EnigmailWkdLookup"]; - -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -const PromiseUtils = ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm").PromiseUtils; -const EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -const EnigmailZBase32 = ChromeUtils.import("chrome://enigmail/content/modules/zbase32.jsm").EnigmailZBase32; -const EnigmailOpenPGP = ChromeUtils.import("chrome://enigmail/content/modules/openpgp.jsm").EnigmailOpenPGP; -const EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -const EnigmailDns = ChromeUtils.import("chrome://enigmail/content/modules/dns.jsm").EnigmailDns; -const EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -const EnigmailSqliteDb = ChromeUtils.import("chrome://enigmail/content/modules/sqliteDb.jsm").EnigmailSqliteDb; - -Components.utils.importGlobalProperties(["fetch"]); - -// Those domains are not expected to have WKD: -var BLACKLIST_DOMAINS = [ - /* Default domains included */ - "aol.com", "att.net", "comcast.net", "facebook.com", "gmail.com", "gmx.com", "googlemail.com", - "google.com", "hotmail.com", "hotmail.co.uk", "mac.com", "me.com", "mail.com", "msn.com", - "live.com", "sbcglobal.net", "verizon.net", "yahoo.com", "yahoo.co.uk", - - /* Other global domains */ - "email.com", "games.com" /* AOL */ , "gmx.net", "icloud.com", - "iname.com", "inbox.com", "lavabit.com", "love.com" /* AOL */ , "outlook.com", "pobox.com", "tutanota.de", "tutanota.com", "tutamail.com", "tuta.io", - "keemail.me", "rocketmail.com" /* Yahoo */ , "safe-mail.net", "wow.com" /* AOL */ , "ygm.com" /* AOL */ , - "ymail.com" /* Yahoo */ , "zoho.com", "yandex.com", - - /* United States ISP domains */ - "bellsouth.net", "charter.net", "cox.net", "earthlink.net", "juno.com", - - /* British ISP domains */ - "btinternet.com", "virginmedia.com", "blueyonder.co.uk", "freeserve.co.uk", "live.co.uk", - "ntlworld.com", "o2.co.uk", "orange.net", "sky.com", "talktalk.co.uk", "tiscali.co.uk", - "virgin.net", "wanadoo.co.uk", "bt.com", - - /* Domains used in Asia */ - "sina.com", "sina.cn", "qq.com", "naver.com", "hanmail.net", "daum.net", "nate.com", "yahoo.co.jp", "yahoo.co.kr", "yahoo.co.id", "yahoo.co.in", "yahoo.com.sg", "yahoo.com.ph", "163.com", "yeah.net", "126.com", "21cn.com", "aliyun.com", "foxmail.com", - - /* French ISP domains */ - "hotmail.fr", "live.fr", "laposte.net", "yahoo.fr", "wanadoo.fr", "orange.fr", "gmx.fr", "sfr.fr", "neuf.fr", "free.fr", - - /* German ISP domains */ - "gmx.de", "hotmail.de", "live.de", "online.de", "t-online.de" /* T-Mobile */ , "web.de", "yahoo.de", - - /* Italian ISP domains */ - "libero.it", "virgilio.it", "hotmail.it", "aol.it", "tiscali.it", "alice.it", "live.it", "yahoo.it", "email.it", "tin.it", "poste.it", "teletu.it", - - /* Russian ISP domains */ - "mail.ru", "rambler.ru", "yandex.ru", "ya.ru", "list.ru", - - /* Belgian ISP domains */ - "hotmail.be", "live.be", "skynet.be", "voo.be", "tvcablenet.be", "telenet.be", - - /* Argentinian ISP domains */ - "hotmail.com.ar", "live.com.ar", "yahoo.com.ar", "fibertel.com.ar", "speedy.com.ar", "arnet.com.ar", - - /* Domains used in Mexico */ - "yahoo.com.mx", "live.com.mx", "hotmail.es", "hotmail.com.mx", "prodigy.net.mx", - - /* Domains used in Canada */ - "yahoo.ca", "hotmail.ca", "bell.net", "shaw.ca", "sympatico.ca", "rogers.com", - - /* Domains used in Brazil */ - "yahoo.com.br", "hotmail.com.br", "outlook.com.br", "uol.com.br", "bol.com.br", "terra.com.br", "ig.com.br", "itelefonica.com.br", "r7.com", "zipmail.com.br", "globo.com", "globomail.com", "oi.com.br" -]; - -var EnigmailWkdLookup = { - - /** - * Try to import keys using WKD. Found keys are automatically imported - * - * @param {Array of String} emailList: email addresses (in lowercase) - * - * @return {Promise}: true - new keys found - */ - findKeys: function(emails) { - return new Promise((resolve, reject) => { - EnigmailLog.DEBUG("wkdLookup.jsm: findKeys(" + emails.join(",") + ")\n"); - - if (emails.length === 0) { - resolve(false); - return; - } - - let self = this; - - // do a little sanity test such that we don't do the lookup for nothing too often - for (let e of emails) { - if (e.search(/.@.+\...+$/) < 0) { - resolve(false); - return; - } - } - - Promise.all(emails.map( - function(mailAddr) { - return self.determineLastAttempt(mailAddr.trim().toLowerCase()); - })) - .then(function(checks) { - let toCheck = []; - - EnigmailLog.DEBUG("wkdLookup.jsm: findKeys: checks " + checks.length + "\n"); - - for (let i = 0; i < checks.length; i++) { - if (checks[i]) { - EnigmailLog.DEBUG("wkdLookup.jsm: findKeys: recheck " + emails[i] + "\n"); - toCheck.push(emails[i]); - } - else { - EnigmailLog.DEBUG("wkdLookup.jsm: findKeys: skip check " + emails[i] + "\n"); - } - } - - if (toCheck.length > 0) { - - Promise.all(toCheck.map((email) => { - return self.downloadKey(email); - })).then((dataArr) => { - - if (dataArr) { - let gotKeys = []; - for (let i = 0; i < dataArr.length; i++) { - if (dataArr[i] !== null) { - gotKeys.push(dataArr[i]); - } - } - - if (gotKeys.length > 0) { - importDownloadedKeys(gotKeys); - resolve(true); - } - else - resolve(false); - } - }); - } - else { - resolve(false); - } - - }) - .catch(() => { - resolve(false); - }); - }); - }, - - /** - * Determine for an email address when we last attempted to - * obtain a key via wkd - * - * @param {String} email: email address - * - * @return {Promise}: true if new WKD lookup required - */ - determineLastAttempt: async function(email) { - EnigmailLog.DEBUG("wkdLookup.jsm: determineLastAttempt(" + email + ")\n"); - - let conn; - try { - conn = await EnigmailSqliteDb.openDatabase(); - let val = await timeForRecheck(conn, email); - conn.close(); - return val; - } - catch (x) { - EnigmailLog.DEBUG("wkdLookup.jsm: determineLastAttempt: could not open database\n"); - if (conn) { - EnigmailLog.DEBUG("wkdLookup.jsm: error - closing connection: " + x + "\n"); - conn.close(); - } - } - // in case something goes wrong we recheck anyway - return true; - }, - - /** - * get the download URL for an email address for WKD or domain-specific locations - * - * @param {String} email: email address - * - * @return {Promise}: URL (or null if not possible) - */ - - getDownloadUrlFromEmail: async function(email, advancedMethod) { - email = email.toLowerCase().trim(); - - let url = await getSiteSpecificUrl(email); - if (url) return url; - - let at = email.indexOf("@"); - - let domain = email.substr(at + 1); - let user = email.substr(0, at); - - var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); - converter.charset = "UTF-8"; - var data = converter.convertToByteArray(user, {}); - - var ch = Components.classes["@mozilla.org/security/hash;1"].createInstance(Components.interfaces.nsICryptoHash); - ch.init(ch.SHA1); - ch.update(data, data.length); - let gotHash = ch.finish(false); - let encodedHash = EnigmailZBase32.encode(gotHash); - - if (advancedMethod) { - url = "https://openpgpkey." + domain + "/.well-known/openpgpkey/" + domain + "/hu/" + encodedHash + "?l=" + escape(user); - } - else { - url = "https://" + domain + "/.well-known/openpgpkey/hu/" + encodedHash + "?l=" + escape(user); - } - - return url; - }, - - /** - * Download a key for an email address - * - * @param {String} email: email address - * - * @return {Promise}: Key data (or null if not possible) - */ - downloadKey: async function(email) { - EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey(" + email + ")\n"); - - if (!this.isWkdAvailable(email)) { - EnigmailLog.DEBUG("wkdLookup.jsm: downloadKey: no WKD for the domain\n"); - return null; - } - - let keyData = await this.doWkdKeyDownload(email, true); - - if (!keyData) { - keyData = await this.doWkdKeyDownload(email, false); - } - - return keyData; - }, - - doWkdKeyDownload: async function(email, advancedMethod) { - EnigmailLog.DEBUG(`wkdLookup.jsm: doWkdKeyDownload(${email}, ${advancedMethod})\n`); - - let url = await EnigmailWkdLookup.getDownloadUrlFromEmail(email, advancedMethod); - - let padLen = (url.length % 512) + 1; - let hdrs = new Headers({ - 'Authorization': 'Basic ' + btoa("no-user:") - }); - hdrs.append('Content-Type', 'application/octet-stream'); - hdrs.append('X-Enigmail-Padding', "x".padEnd(padLen, "x")); - - let myRequest = new Request(url, { - method: 'GET', - headers: hdrs, - mode: 'cors', - //redirect: 'error', - redirect: 'follow', - cache: 'default' - }); - - let response; - try { - EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: requesting " + url + "\n"); - response = await fetch(myRequest); - if (!response.ok) { - return null; - } - } - catch (ex) { - EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: error " + ex.toString() + "\n"); - return null; - } - - try { - if (response.headers.has("content-type") && response.headers.get("content-type").search(/^text\/html/i) === 0) { - // if we get HTML output, we return nothing (for example redirects to error catching pages) - return null; - } - let keyData = EnigmailData.arrayBufferToString(Cu.cloneInto(await response.arrayBuffer(), this)); - EnigmailLog.DEBUG(`wkdLookup.jsm: doWkdKeyDownload: got data for ${email}\n`); - return { - email: email, - keyData: keyData - }; - } - catch (ex) { - EnigmailLog.DEBUG("wkdLookup.jsm: doWkdKeyDownload: error " + ex.toString() + "\n"); - return null; - } - }, - - isWkdAvailable: function(email) { - let domain = email.toLowerCase().replace(/^.*@/, ""); - - return (BLACKLIST_DOMAINS.indexOf(domain) < 0); - } -}; - - -/** - * Check if enough time has passed since we looked-up the key for "email". - * - * @param connection: Object - SQLite connection - * @param email: String - Email address to search (in lowercase) - * - * @return Promise (true if new lookup required) - */ -function timeForRecheck(connection, email) { - EnigmailLog.DEBUG("wkdLookup.jsm: timeForRecheck\n"); - - let obj = { - email: email, - now: Date.now() - }; - - return connection.execute( - "select count(*) from wkd_lookup_timestamp where email = :email and :now - last_seen < 60*60*24", obj - ).then(function(val) { - return connection.execute( - "insert or replace into wkd_lookup_timestamp values (:email, :now)", obj - ).then(function() { - return Promise.resolve(val); - }); - }).then(function(rows) { - EnigmailLog.DEBUG("wkdLookup.jsm: timeForRecheck: " + rows.length + "\n"); - - return rows.length === 1 && rows[0].getResultByIndex(0) === 0; - }, function(error) { - EnigmailLog.DEBUG("wkdLookup.jsm: timeForRecheck - error" + error + "\n"); - Promise.reject(error); - }); -} - -/** - * Import downloaded keys - * - * @param {Array of String}: ASCII armored or binary string - * - * no return value - */ -function importDownloadedKeys(keysArr) { - EnigmailLog.DEBUG("wkdLookup.jsm: importDownloadedKeys(" + keysArr.length + ")\n"); - - let keyData = ""; - let domainArr = []; - for (let k in keysArr) { - if (keysArr[k]) { - if (keysArr[k].keyData.search(/^-----BEGIN PGP PUBLIC KEY BLOCK-----/) < 0) { - try { - keyData += EnigmailOpenPGP.enigmailFuncs.bytesToArmor(EnigmailOpenPGP.openpgp.enums.armor.public_key, keysArr[k].keyData); - } - catch (ex) { - EnigmailLog.DEBUG("wkdLookup.jsm: importDownloadedKeys: exeption=" + ex + "\n"); - } - } - else { - keyData += keysArr[k].keyData; - } - - domainArr.push(keysArr[k].email.replace(/^.*@/, "@")); - } - } - - let keyList = EnigmailKey.getKeyListFromKeyBlock(keyData, {}, false); - - for (let k in keyList) { - EnigmailLog.DEBUG("wkdLookup.jsm: importDownloadedKeys: fpr=" + keyList[k].fpr + "\n"); - } - - EnigmailKeyRing.importKey(null, false, keyData, "", {}, {}, false, domainArr); -} - -/** - * Get special URLs for specific sites that don't use WKD, but still provide - * public keys of their users in - * - * @param {String}: emailAddr: email address in lowercase - * - * @return {Promise}: URL or null of no URL relevant - */ -async function getSiteSpecificUrl(emailAddr) { - let domain = emailAddr.replace(/^.+@/, ""); - let url = null; - - switch (domain) { - case "protonmail.ch": - case "protonmail.com": - case "pm.me": - url = "https://api.protonmail.ch/pks/lookup?op=get&options=mr&search=" + escape(emailAddr); - break; - } - - if (!url) { - try { - let mxHosts = await EnigmailDns.lookup("MX", domain); - if (mxHosts & mxHosts.indexOf("mail.protonmail.ch") >= 0 || - mxHosts.indexOf("mailsec.protonmail.ch") >= 0) { - url = "https://api.protonmail.ch/pks/lookup?op=get&options=mr&search=" + escape(emailAddr); - } - } - catch (ex) {} - } - - return url; -} diff -Nru enigmail-2.1.6+ds1/package/wksMimeHandler.jsm enigmail-2.2.4/package/wksMimeHandler.jsm --- enigmail-2.1.6+ds1/package/wksMimeHandler.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/wksMimeHandler.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,230 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailWksMimeHandler"]; - -/** - * Module for handling response messages from OpenPGP Web Key Service - */ - -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; -const EnigmailVerify = ChromeUtils.import("chrome://enigmail/content/modules/mimeVerify.jsm").EnigmailVerify; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailDecryption = ChromeUtils.import("chrome://enigmail/content/modules/decryption.jsm").EnigmailDecryption; -const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; -const EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; - -const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1"; - -var gDebugLog = false; - - -var EnigmailWksMimeHandler = { - - /*** - * register a PGP/MIME verify object the same way PGP/MIME encrypted mail is handled - */ - registerContentTypeHandler: function() { - EnigmailLog.DEBUG("wksMimeHandler.jsm: registerContentTypeHandler()\n"); - let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); - - let pgpMimeClass = Components.classes["@mozilla.org/mimecth;1?type=multipart/encrypted"]; - - reg.registerFactory( - pgpMimeClass, - "Enigmail WKD Response Handler", - "@mozilla.org/mimecth;1?type=application/vnd.gnupg.wks", - null); - }, - - newHandler: function() { - EnigmailLog.DEBUG("wksMimeHandler.jsm: newHandler()\n"); - - let v = new PgpWkdHandler(); - return v; - } - -}; - -// MimeVerify Constructor -function PgpWkdHandler(protocol) { - this.inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); -} - - -// PgpWkdHandler implementation -PgpWkdHandler.prototype = { - - data: "", - mimePartNumber: "", - uri: null, - backgroundJob: false, - - QueryInterface: EnigmailCompat.generateQI([Ci.nsIStreamListener]), - - onStartRequest: function(request, ctxt) { - EnigmailLog.DEBUG("wksMimeHandler.jsm: onStartRequest\n"); // always log this one - - this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy); - let uri = null; - if ("messageURI" in this.mimeSvc) { - uri = this.mimeSvc.messageURI; - } - else { - uri = ctxt; - } - - if ("mimePart" in this.mimeSvc) { - this.mimePartNumber = this.mimeSvc.mimePart; - } - else { - this.mimePartNumber = ""; - } - this.data = ""; - this.msgWindow = EnigmailVerify.lastMsgWindow; - this.backgroundJob = false; - - if (this.uri) { - this.backgroundJob = (this.uri.spec.search(/[&?]header=(print|quotebody|enigmailConvert)/) >= 0); - } - - }, - - onDataAvailable: function(req, dummy, stream, offset, count) { - if ("messageURI" in this.mimeSvc) { - // TB >= 67 - stream = dummy; - count = offset; - } - - LOCAL_DEBUG("wksMimeHandler.jsm: onDataAvailable: " + count + "\n"); - if (count > 0) { - this.inStream.init(stream); - let data = this.inStream.read(count); - this.data += data; - } - }, - - onStopRequest: function() { - EnigmailLog.DEBUG("wksMimeHandler.jsm: onStopRequest\n"); - - if (this.data.search(/-----BEGIN PGP MESSAGE-----/i) >= 0) { - this.decryptChallengeData(); - } - - let jsonStr = this.requestToJsonString(this.data); - let msg = ""; - - if (this.data.search(/^\s*type:\s+confirmation-request/mi) >= 0) { - msg = EnigmailLocale.getString("wkdMessage.body.req"); - } - else { - msg = EnigmailLocale.getString("wkdMessage.body.process"); - } - - this.returnData(msg); - this.displayStatus(jsonStr); - }, - - decryptChallengeData: function() { - EnigmailLog.DEBUG("wksMimeHandler.jsm: decryptChallengeData()\n"); - let windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator); - let win = windowManager.getMostRecentWindow(null); - let statusFlagsObj = {}; - - let res = EnigmailDecryption.decryptMessage(win, - 0, - this.data, {}, {}, statusFlagsObj, {}, {}, {}, {}, {}, {}); - - if (statusFlagsObj.value & EnigmailConstants.DECRYPTION_OKAY) { - this.data = res; - } - EnigmailLog.DEBUG("wksMimeHandler.jsm: decryptChallengeData: decryption result: " + res + "\n"); - }, - - // convert request data into JSON-string and parse it - requestToJsonString: function() { - // convert - let lines = this.data.split(/\r?\n/); - let s = '{'; - for (let l of lines) { - let m = l.match(/^([^\s:]+)(:\s*)([^\s].+)$/); - if (m && m.length >= 4) { - s += '"' + m[1].trim().toLowerCase() + '": "' + m[3].trim() + '",'; - } - } - - let o = {}; - s = s.substr(0, s.length - 1) + "}"; - - return s; - }, - - // return data to libMime - returnData: function(message) { - EnigmailLog.DEBUG("wksMimeHandler.jsm: returnData():\n"); - - let msg = 'Content-Type: text/plain; charset="utf-8"\r\n' + - 'Content-Transfer-Encoding: 8bit\r\n\r\n' + - message + '\r\n'; - - if ("outputDecryptedData" in this.mimeSvc) { - this.mimeSvc.outputDecryptedData(msg, msg.length); - } - else { - let gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); - gConv.setData(msg, msg.length); - try { - this.mimeSvc.onStartRequest(null); - this.mimeSvc.onDataAvailable(null, gConv, 0, msg.length); - this.mimeSvc.onStopRequest(null, 0); - } - catch (ex) { - EnigmailLog.ERROR("wksMimeHandler.jsm: returnData(): mimeSvc.onDataAvailable failed:\n" + ex.toString()); - } - } - }, - - displayStatus: function(jsonStr) { - EnigmailLog.DEBUG("wksMimeHandler.jsm: displayStatus\n"); - if (this.msgWindow === null || this.backgroundJob) - return; - - try { - LOCAL_DEBUG("wksMimeHandler.jsm: displayStatus displaying result\n"); - let headerSink = EnigmailSingletons.messageReader; - - if (headerSink) { - headerSink.processDecryptionResult(this.uri, "wksConfirmRequest", jsonStr, this.mimePartNumber); - } - - } - catch (ex) { - EnigmailLog.writeException("wksMimeHandler.jsm", ex); - } - } -}; - - -//////////////////////////////////////////////////////////////////// -// General-purpose functions, not exported - -function LOCAL_DEBUG(str) { - if (gDebugLog) EnigmailLog.DEBUG(str); -} - -function initModule() { - var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - var nspr_log_modules = env.get("NSPR_LOG_MODULES"); - var matches = nspr_log_modules.match(/wksMimeHandler:(\d+)/); - - if (matches && (matches.length > 1)) { - if (matches[1] > 2) gDebugLog = true; - } -} - -initModule(); diff -Nru enigmail-2.1.6+ds1/package/xhrUtils.jsm enigmail-2.2.4/package/xhrUtils.jsm --- enigmail-2.1.6+ds1/package/xhrUtils.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/xhrUtils.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,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 - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -const EXPORTED_SYMBOLS = ["EnigmailXhrUtils"]; - -var EnigmailXhrUtils = { - - /** - * Create an error description from an XMLHttpRequest error. - * Adapted from the patch for mozTCPSocket error reporting (bug 861196). - * - * @param xhr: XMLHttpRequest Object - * - * @return Object: - * - type: String: one of SecurityCertificate, SecurityProtocol, Network - * - name: Detailed error text - */ - createTCPErrorFromFailedXHR: function(xhr) { - let status = xhr.channel.QueryInterface(Ci.nsIRequest).status; - - let errType; - let errName; - - if ((status & 0xff0000) === 0x5a0000) { // Security module - const nsINSSErrorsService = Ci.nsINSSErrorsService; - let nssErrorsService = Cc['@mozilla.org/nss_errors_service;1'].getService(nsINSSErrorsService); - let errorClass; - // getErrorClass will throw a generic NS_ERROR_FAILURE if the error code is - // somehow not in the set of covered errors. - try { - errorClass = nssErrorsService.getErrorClass(status); - } - catch (ex) { - errorClass = 'SecurityProtocol'; - } - if (errorClass == nsINSSErrorsService.ERROR_CLASS_BAD_CERT) { - errType = 'SecurityCertificate'; - } - else { - errType = 'SecurityProtocol'; - } - - // NSS_SEC errors (happen below the base value because of negative vals) - if ((status & 0xffff) < Math.abs(nsINSSErrorsService.NSS_SEC_ERROR_BASE)) { - // The bases are actually negative, so in our positive numeric space, we - // need to subtract the base off our value. - let nssErr = Math.abs(nsINSSErrorsService.NSS_SEC_ERROR_BASE) - - (status & 0xffff); - switch (nssErr) { - case 11: // SEC_ERROR_EXPIRED_CERTIFICATE, sec(11) - errName = 'SecurityExpiredCertificateError'; - break; - case 12: // SEC_ERROR_REVOKED_CERTIFICATE, sec(12) - errName = 'SecurityRevokedCertificateError'; - break; - - // per bsmith, we will be unable to tell these errors apart very soon, - // so it makes sense to just folder them all together already. - case 13: // SEC_ERROR_UNKNOWN_ISSUER, sec(13) - case 20: // SEC_ERROR_UNTRUSTED_ISSUER, sec(20) - case 21: // SEC_ERROR_UNTRUSTED_CERT, sec(21) - case 36: // SEC_ERROR_CA_CERT_INVALID, sec(36) - errName = 'SecurityUntrustedCertificateIssuerError'; - break; - case 90: // SEC_ERROR_INADEQUATE_KEY_USAGE, sec(90) - errName = 'SecurityInadequateKeyUsageError'; - break; - case 176: // SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED, sec(176) - errName = 'SecurityCertificateSignatureAlgorithmDisabledError'; - break; - default: - errName = 'SecurityError'; - break; - } - } - else { - let sslErr = Math.abs(nsINSSErrorsService.NSS_SSL_ERROR_BASE) - - (status & 0xffff); - switch (sslErr) { - case 3: // SSL_ERROR_NO_CERTIFICATE, ssl(3) - errName = 'SecurityNoCertificateError'; - break; - case 4: // SSL_ERROR_BAD_CERTIFICATE, ssl(4) - errName = 'SecurityBadCertificateError'; - break; - case 8: // SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE, ssl(8) - errName = 'SecurityUnsupportedCertificateTypeError'; - break; - case 9: // SSL_ERROR_UNSUPPORTED_VERSION, ssl(9) - errName = 'SecurityUnsupportedTLSVersionError'; - break; - case 12: // SSL_ERROR_BAD_CERT_DOMAIN, ssl(12) - errName = 'SecurityCertificateDomainMismatchError'; - break; - default: - errName = 'SecurityError'; - break; - } - } - } - else { - errType = 'Network'; - switch (status) { - // connect to host:port failed - case 0x804B000C: // NS_ERROR_CONNECTION_REFUSED, network(13) - errName = 'ConnectionRefusedError'; - break; - // network timeout error - case 0x804B000E: // NS_ERROR_NET_TIMEOUT, network(14) - errName = 'NetworkTimeoutError'; - break; - // hostname lookup failed - case 0x804B001E: // NS_ERROR_UNKNOWN_HOST, network(30) - errName = 'DomainNotFoundError'; - break; - case 0x804B0047: // NS_ERROR_NET_INTERRUPT, network(71) - errName = 'NetworkInterruptError'; - break; - default: - errName = 'NetworkError'; - break; - } - } - - return { - name: errName, - type: errType - }; - } -}; diff -Nru enigmail-2.1.6+ds1/package/zbase32.jsm enigmail-2.2.4/package/zbase32.jsm --- enigmail-2.1.6+ds1/package/zbase32.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/package/zbase32.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ -/* 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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["EnigmailZBase32"]; - -const ZBase32Alphabet = "ybndrfg8ejkmcpqxot1uwisza345h769"; - -var EnigmailZBase32 = { - a: ZBase32Alphabet, - pad: "=", - - /** - * Encode a string in Z-Base-32 encoding - * - * @param str String - input string - * - * @return String - econded string - */ - encode: function(str) { - let a = this.a; - let pad = this.pad; - let len = str.length; - let o = ""; - let w, c, r = 0, - sh = 0; - - for (let i = 0; i < len; i += 5) { - // mask top 5 bits - c = str.charCodeAt(i); - w = 0xf8 & c; - o += a.charAt(w >> 3); - r = 0x07 & c; - sh = 2; - - if ((i + 1) < len) { - c = str.charCodeAt(i + 1); - // mask top 2 bits - w = 0xc0 & c; - o += a.charAt((r << 2) + (w >> 6)); - o += a.charAt((0x3e & c) >> 1); - r = c & 0x01; - sh = 4; - } - - if ((i + 2) < len) { - c = str.charCodeAt(i + 2); - // mask top 4 bits - w = 0xf0 & c; - o += a.charAt((r << 4) + (w >> 4)); - r = 0x0f & c; - sh = 1; - } - - if ((i + 3) < len) { - c = str.charCodeAt(i + 3); - // mask top 1 bit - w = 0x80 & c; - o += a.charAt((r << 1) + (w >> 7)); - o += a.charAt((0x7c & c) >> 2); - r = 0x03 & c; - sh = 3; - } - - if ((i + 4) < len) { - c = str.charCodeAt(i + 4); - // mask top 3 bits - w = 0xe0 & c; - o += a.charAt((r << 3) + (w >> 5)); - o += a.charAt(0x1f & c); - r = 0; - sh = 0; - } - } - // Calculate length of pad by getting the - // number of words to reach an 8th octet. - if (r != 0) { - o += a.charAt(r << sh); - } - var padlen = 8 - (o.length % 8); - - if (padlen === 8) { - return o; - } - - if (padlen === 1 || padlen === 3 || padlen === 4 || padlen === 6) { - return o + pad.repeat(padlen); - } - - throw 'there was some kind of error:\npadlen:' + padlen + ' ,r:' + r + ' ,sh:' + sh + ', w:' + w; - } -}; diff -Nru enigmail-2.1.6+ds1/provisioning/docker-build.sh enigmail-2.2.4/provisioning/docker-build.sh --- enigmail-2.1.6+ds1/provisioning/docker-build.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/docker-build.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# -# 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 https://mozilla.org/MPL/2.0/. -# - -if command -v realpath>/dev/null 2>&1; then - CURRENT_FILE=`realpath "$0"` -else - CURRENT_FILE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/$(basename $0)" -fi -PROVISIONING_DIR=`dirname "$CURRENT_FILE"` -ENIGMAIL_ROOT=`dirname "$PROVISIONING_DIR"` - -docker run -v $ENIGMAIL_ROOT:/enigmail-src -i -t enigmail-unit ./build.sh diff -Nru enigmail-2.1.6+ds1/provisioning/Dockerfile enigmail-2.2.4/provisioning/Dockerfile --- enigmail-2.1.6+ds1/provisioning/Dockerfile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/Dockerfile 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,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 -# file, You can obtain one at https://mozilla.org/MPL/2.0/. -# -FROM ubuntu - -RUN apt-get update -RUN apt-get upgrade -y -RUN apt-get install -y zip -RUN apt-get install -y wget -RUN apt-get install -y thunderbird -RUN apt-get install -y gnupg2 -RUN apt-get install -y make -RUN apt-get install -y python3 -RUN apt-get install -y gcc -RUN apt-get install -y psmisc -RUN apt-get install -y language-pack-en-base -RUN apt-get install -y mime-support -RUN apt-get install -y rng-tools -RUN apt-get install -y haveged -RUN apt-get install -y nodejs -RUN apt-get install -y curl -RUN ln -s /usr/bin/nodejs /usr/bin/node -RUN apt-get install -y npm -RUN npm install -g eslint@2.12 -RUN wget -O /tmp/jsunit-0.1.4.xpi https://www.enigmail.net/jsunit/jsunit-0.1.4.xpi -RUN rm -rf /usr/lib/thunderbird-addons/extensions/jsunit@enigmail.net -RUN unzip /tmp/jsunit-0.1.4.xpi -d /usr/lib/thunderbird-addons/extensions/jsunit@enigmail.net -RUN rm -rf '/usr/lib/thunderbird-addons/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}' -RUN echo "/enigmail-src/build/dist" > '/usr/lib/thunderbird-addons/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}' -RUN useradd -Ums /bin/bash testuser -WORKDIR /enigmail-src -ENV LC_CTYPE en_US.UTF-8 -ENV LANG en_US.UTF-8 diff -Nru enigmail-2.1.6+ds1/provisioning/docker-init.sh enigmail-2.2.4/provisioning/docker-init.sh --- enigmail-2.1.6+ds1/provisioning/docker-init.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/docker-init.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# -# 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 https://mozilla.org/MPL/2.0/. -# - -CURRENT_FILE=`realpath "$0"` -PROVISIONING_DIR=`dirname "$CURRENT_FILE"` -ENIGMAIL_ROOT=`dirname "$PROVISIONING_DIR"` - -pushd . -cd $PROVISIONING_DIR - -docker build -t enigmail-unit . - -popd diff -Nru enigmail-2.1.6+ds1/provisioning/docker-test.sh enigmail-2.2.4/provisioning/docker-test.sh --- enigmail-2.1.6+ds1/provisioning/docker-test.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/docker-test.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# -# 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 https://mozilla.org/MPL/2.0/. -# - -if command -v realpath>/dev/null 2>&1; then - CURRENT_FILE=`realpath "$0"` -else - CURRENT_FILE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/$(basename $0)" -fi -PROVISIONING_DIR=`dirname "$CURRENT_FILE"` -ENIGMAIL_ROOT=`dirname "$PROVISIONING_DIR"` - -docker run -v $ENIGMAIL_ROOT:/enigmail-src -i -u testuser -t enigmail-unit ./test.sh "$@" diff -Nru enigmail-2.1.6+ds1/provisioning/provision-travis.sh enigmail-2.2.4/provisioning/provision-travis.sh --- enigmail-2.1.6+ds1/provisioning/provision-travis.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/provision-travis.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -# -# 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 https://mozilla.org/MPL/2.0/. -# - -export DEBIAN_FRONTEND=noninteractive -echo "Provisioning ..." -curl -s "http://git.fedorahosted.org/cgit/mailcap.git/plain/mime.types" > mime.types -sudo apt-get install nodejs -sudo apt-get install npm -npm install -g eslint@2.12 -sudo cp mime.types /etc/mime.types -sudo echo "deb http://deb.torproject.org/torproject.org sid main" >> /etc/apt/sources.list -gpg --keyserver keys.gnupg.net --recv 0xEE8CBC9E886DDD89 -gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add - -sudo apt-get update -sudo apt-get install deb.torproject.org-keyring -sudo apt-get install -y tor -sudo apt-get install -q -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" zip thunderbird gnupg2 -wget -O /tmp/jsunit-0.1.4.xpi https://www.enigmail.net/jsunit/jsunit-0.1.4.xpi -sudo unzip /tmp/jsunit-0.1.4.xpi -d /usr/lib/thunderbird-addons/extensions/jsunit@enigmail.net -sudo /bin/bash -c "echo $TRAVIS_BUILD_DIR/build/dist > /usr/lib/thunderbird-addons/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}" diff -Nru enigmail-2.1.6+ds1/provisioning/provision-vagrant.sh enigmail-2.2.4/provisioning/provision-vagrant.sh --- enigmail-2.1.6+ds1/provisioning/provision-vagrant.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/provision-vagrant.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -# -# 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 https://mozilla.org/MPL/2.0/. -# - -echo "Provisioning ..." -apt-get update -apt-get install -y zip thunderbird gnupg2 -apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 -apt-get install -y ntp -apt-get install -y rng-tools haveged -apt-get upgrade -y -wget -O /tmp/jsunit-0.1.4.xpi https://www.enigmail.net/jsunit/jsunit-0.1.4.xpi -rm -rf /usr/lib/thunderbird-addons/extensions/jsunit@enigmail.net -unzip /tmp/jsunit-0.1.4.xpi -d /usr/lib/thunderbird-addons/extensions/jsunit@enigmail.net -rm -rf '/usr/lib/thunderbird-addons/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}' -echo "/enigmail-src/build/dist" > '/usr/lib/thunderbird-addons/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}' -touch '/enigmail-src' diff -Nru enigmail-2.1.6+ds1/provisioning/README.md enigmail-2.2.4/provisioning/README.md --- enigmail-2.1.6+ds1/provisioning/README.md 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/README.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -# enigmail-provisioning -Contains provisioning scripts for developing Enigmail, for Vagrant and Docker - -If you have problems with permissions on the shared directory, this incantation is useful: - chcon -Rt svirt_sandbox_file_t $DIR - -## Should I setup with Docker or Vagrant? -[Docker](https://www.docker.com) is a linux only virtual environment tool, which means it is easier to setup on a linux host. Mac OS X and Windows hosts will require the setup of a linux virtual machine for Docker to work because it is based on [LinuX Containers (LxC)](https://linuxcontainers.org). - -Docker’s virtual environments are lightweight versions of virtual machines. They aren’t distinct virtual computers with their own processors and hardware emulation. As a result, virtual environments place only a little extra load on the system. On the other hand, Docker’s isolation is not as good as a full virtual machine’s. Docker allows you to quickly create a specific, semi-isolated environment for short lived testing and debugging. - -[Vagrant](https://www.vagrantup.com) is a wrapper on top of a full virtual machine. Vagrant is better when you require full isolation, and it is more convenient to use when you already have vagrant tools and you don’t have Docker on your non-linux host machine. - -## Quick Setup With Docker -Please follow your [OS specific instructions](https://docs.docker.com/installation/#installation) to install docker on your system. - -Once docker is installed... - -1. [Create a docker group.](https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group) Creating this group will keep you from having to use sudo each time you call the docker client. -2. Start the docker daemon. Those platform specific instructions should be in the docker docs after the installation steps. If you created the docker user group in step one, this will be the only step that requires `sudo`. -3. `./provisioning/docker-init.sh` -4. `./provisioning/docker-build.sh` If you have problems with permissions while running this script, check out the `chcon` incantation above. -5. `./provisioning/docker-test.sh` - -## Quick Setup With Vagrant -Please follow your OS specific instructions to install the following tool dependencies on your system: -* [Vagrant](https://www.vagrantup.com) -* Vagrant compatible virtualization software (i.e. virtualbox, vmware...) - -Note: Virtualbox has default support on vagrant so if you use VMWare, AWS, etc. you must first install their respective vagrant plugins. - -Once the vagrant tools are installed... - -1. `cd provisioning` -2. `vagrant up` - Call vagrant to grab an instance of Ubuntu and provision it -3. `vagrant ssh` - ssh into the Ubuntu machine -4. `cd /enigmail-src` - This will be the same directory as the main project folder. -5. `./build.sh ` -6. `./test.sh ` diff -Nru enigmail-2.1.6+ds1/provisioning/Vagrantfile enigmail-2.2.4/provisioning/Vagrantfile --- enigmail-2.1.6+ds1/provisioning/Vagrantfile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/provisioning/Vagrantfile 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : -# -# 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 https://mozilla.org/MPL/2.0/. -# - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure(2) do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://atlas.hashicorp.com/search. - config.vm.box = "ubuntu/trusty64" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # config.vm.network "forwarded_port", guest: 80, host: 8080 - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - # config.vm.network "private_network", ip: "192.168.33.10" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - config.vm.synced_folder "../", "/enigmail-src" - config.ssh.forward_x11 = true - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - # config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: - # vb.memory = "1024" - # end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies - # such as FTP and Heroku are also available. See the documentation at - # https://docs.vagrantup.com/v2/push/atlas.html for more information. - # config.push.define "atlas" do |push| - # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" - # end - config.vm.provider :virtualbox do |vb| - vb.gui = false - if ARGV[0] == "up" - if ENV["VB_GUI"] == "true" then vb.gui = true - else - puts("[info] VB_GUI environment variable not set so running headless") - end - end - end - # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell", path: "provision-vagrant.sh" -end diff -Nru enigmail-2.1.6+ds1/public/thunderbird-enigmail.metainfo.xml enigmail-2.2.4/public/thunderbird-enigmail.metainfo.xml --- enigmail-2.1.6+ds1/public/thunderbird-enigmail.metainfo.xml 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/public/thunderbird-enigmail.metainfo.xml 2020-10-01 13:32:58.000000000 +0000 @@ -1,14 +1,14 @@ thunderbird-enigmail mozilla-thunderbird.desktop Enigmail - OpenPGP message encryption and authentication for Thunderbird and SeaMonkey. + Migrate keys and settings from GnuPG and Enigmail to Thunderbird. https://www.enigmail.net CC0-1.0 diff -Nru enigmail-2.1.6+ds1/README.md enigmail-2.2.4/README.md --- enigmail-2.1.6+ds1/README.md 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/README.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -[![Build Status](https://travis-ci.org/twtiger/enigmail.svg?branch=master)](https://travis-ci.org/twtiger/enigmail) - -Instructions for setting up the developer environment are in the provisioning directory. diff -Nru enigmail-2.1.6+ds1/static_analysis/eslint enigmail-2.2.4/static_analysis/eslint --- enigmail-2.1.6+ds1/static_analysis/eslint 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/static_analysis/eslint 2020-10-01 13:32:58.000000000 +0000 @@ -24,8 +24,8 @@ STATIC_ANALYSIS_DIR=`dirname "$CURRENT_FILE"` - find "$1" -name "*.js" -exec eslint --quiet --cache {} + && \ - find "$1" -name "*.jsm" -exec eslint --quiet --cache {} + + find "$1" -name "*.js" -exec eslint --ignore-pattern ".eslintrc.js" --quiet --cache {} + && \ + find "$1" -name "*.jsm" -exec eslint --ignore-pattern ".eslintrc.js" --quiet --cache {} + if [ $? -ne 0 ]; then exit 1 fi diff -Nru enigmail-2.1.6+ds1/stdlib/compose.jsm enigmail-2.2.4/stdlib/compose.jsm --- enigmail-2.1.6+ds1/stdlib/compose.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/compose.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,475 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -/** - * @fileoverview Composition-related utils: quoting, wrapping text before - * sending a message, converting back and forth between HTML and plain text... - * @author Jonathan Protzenko - */ - -var EXPORTED_SYMBOLS = [ - 'composeInIframe', 'getEditorForIframe', - 'quoteMsgHdr', 'citeString', - 'htmlToPlainText', 'simpleWrap', - 'plainTextToHtml', 'replyAllParams', - 'determineComposeHtml', 'composeMessageTo', - 'getSignatureContentsForAccount', -] - -const { - results: Cr -} = Components; - -const { - MsgHdrToMimeMessage, - MimeMessage, MimeContainer, - MimeBody, MimeUnknown, - MimeMessageAttachment -} = ChromeUtils.import("resource:///modules/gloda/mimemsg.js"); - - -var MailServices; -try { - MailServices = ChromeUtils.import("resource:///modules/MailServices.jsm").MailServices; -} -catch (x){ - MailServices = ChromeUtils.import("resource:///modules/mailServices.js").MailServices; -} - -const { - gIdentities, - fillIdentities, - getIdentities, - getDefaultIdentity, - getIdentityForEmail, - hasConfiguredAccounts, - range, - MixIn, - combine, - entries, - dateAsInMessageList, - escapeHtml, - sanitize, - parseMimeLine, - encodeUrlParameters, - decodeUrlParameters, - systemCharset, - isOSX, - isWindows, - isAccel -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/misc.jsm"); - -const { - msgHdrToMessageBody, - msgHdrToNeckoURL, - msgHdrGetTags, - msgUriToMsgHdr, - msgHdrGetUri, - msgHdrFromNeckoUrl, - msgHdrSetTags, - msgHdrIsDraft, - msgHdrIsSent, - msgHdrIsArchive, - msgHdrIsInbox, - msgHdrIsRss, - msgHdrIsNntp, - msgHdrIsJunk, - msgHdrsMarkAsRead, - msgHdrsArchive, - msgHdrsDelete, - getMail3Pane, - msgHdrGetHeaders, - msgHdrsModifyRaw -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/msgHdrUtils.jsm"); -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; - - -function getEditorForIframe(aIframe) { - let w = aIframe.contentWindow; - let s = w.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIEditingSession); - return s.getEditorForWindow(w); -} - -function composeInIframe(aIframe, { - msgHdr, - compType, - identity, -}) { - let fields = Cc["@mozilla.org/messengercompose/composefields;1"] - .createInstance(Ci.nsIMsgCompFields); - let params = Cc["@mozilla.org/messengercompose/composeparams;1"] - .createInstance(Ci.nsIMsgComposeParams); - params.identity = identity; - if (msgHdr) { - params.origMsgHdr = msgHdr; - params.originalMsgURI = msgHdrGetUri(msgHdr); - } - params.composeFields = fields; - params.type = compType; - - let compose = MailServices.compose.initCompose(params, getMail3Pane(), aIframe.docShell); - EnigmailLog.DEBUG("editor= " + getEditorForIframe(aIframe).toString() + ", iframe= " + aIframe.toString() + "\n"); - compose.initEditor(getEditorForIframe(aIframe), aIframe.contentWindow); -} - -/** - * A function that properly quotes a plaintext email. - * @param {String} aStr The mail body that we're expected to quote. - * @return {String} The quoted mail body with >'s properly taken care of. - */ -function citeString(aStr) { - let l = aStr.length; - return aStr.replace("\n", function(match, offset, str) { - // http://mxr.mozilla.org/comm-central/source/mozilla/editor/libeditor/text/nsInternetCiter.cpp#96 - if (offset < l - 1) { - if (str[offset + 1] != ">" && str[offset + 1] != "\n" && str[offset + 1] != "\r") - return "\n> "; - else - return "\n>"; - } - else { - return match; - } - }, "g"); -} - -/** - * Wrap some text. Beware, that function doesn't do rewrapping, and only - * operates on non-quoted lines. This is only useful in our very specific case - * where the quoted lines have been properly wrapped for format=flowed already, - * and the non-quoted lines are the only ones that need wrapping for - * format=flowed. - * Beware, this function will treat all lines starting with >'s as quotations, - * even user-inserted ones. We would need support from the editor to proceed - * otherwise, and the current textarea doesn't provide this. - * This function, when breaking lines, will do space-stuffing per the RFC if - * after the break the text starts with From or >. - * @param {String} txt The text that should be wrapped. - * @param {Number} width (optional) The width we should wrap to. Default to 72. - * @return {String} The text with non-quoted lines wrapped. This is suitable for - * sending as format=flowed. - */ -function simpleWrap(txt, width) { - if (!width) - width = 72; - - function maybeEscape(line) { - if (line.indexOf("From") === 0 || line.indexOf(">") === 0) - return (" " + line); - else - return line; - } - - /** - * That function takes a (long) line, and splits it into many lines. - * @param soFar {Array String} an accumulator of the lines we've wrapped already - * @param remaining {String} the remaining string to wrap - */ - function splitLongLine(soFar, remaining) { - if (remaining.length > width) { - // Start at the end of the line, and move back until we find a word - // boundary. - let i = width - 1; - while (remaining[i] != " " && i > 0) - i--; - // We found a word boundary, break there - if (i > 0) { - // This includes the trailing space that indicates that we are wrapping - // a long line with format=flowed. - soFar.push(maybeEscape(remaining.substring(0, i + 1))); - return splitLongLine(soFar, remaining.substring(i + 1, remaining.length)); - } - else { - // No word boundary, break at the first space - let j = remaining.indexOf(" "); - if (j > 0) { - // Same remark about the trailing space. - soFar.push(maybeEscape(remaining.substring(0, j + 1))); - return splitLongLine(soFar, remaining.substring(j + 1, remaining.length)); - } - else { - // Make sure no one interprets this as a line continuation. - soFar.push(remaining.trimRight()); - return soFar.join("\n"); - } - } - } - else { - // Same remark about the trailing space. - soFar.push(maybeEscape(remaining.trimRight())); - return soFar.join("\n"); - } - } - - let lines = txt.split(/\r?\n/); - - lines.forEach(function(line, i) { - if (line.length > width && line[0] != ">") - lines[i] = splitLongLine([], line); - }); - return lines.join("\n"); -} - -/** - * Convert HTML into text/plain suitable for insertion right away in the mail - * body. If there is text with >'s at the beginning of lines, these will be - * space-stuffed, and the same goes for Froms. <blockquote>s will be converted - * with the suitable >'s at the beginning of the line, and so on... - * This function also takes care of rewrapping at 72 characters, so your quoted - * lines will be properly wrapped too. This means that you can add some text of - * your own, and then pass this to simpleWrap, it should "just work" (unless - * the user has edited a quoted line and made it longer than 990 characters, of - * course). - * @param {String} aHtml A string containing the HTML that's to be converted. - * @return {String} A text/plain string suitable for insertion in a mail body. - */ -function htmlToPlainText(aHtml) { - // Yes, this is ridiculous, we're instanciating composition fields just so - // that they call ConvertBufPlainText for us. But ConvertBufToPlainText - // really isn't easily scriptable, so... - let fields = Cc["@mozilla.org/messengercompose/composefields;1"] - .createInstance(Ci.nsIMsgCompFields); - fields.body = aHtml; - fields.forcePlainText = true; - fields.ConvertBodyToPlainText(); - return fields.body; -} - -/** - * @ignore - */ -function citeLevel(line) { - let i; - for (i = 0; line[i] == ">" && i < line.length; ++i) - ; // nop - return i; -}; - -/** - * Just try to convert quoted lines back to HTML markup (<blockquote>s). - * @param {String} txt - * @return {String} - */ -function plainTextToHtml(txt) { - let lines = txt.split(/\r?\n/); - let newLines = []; - let level = 0; - for (let line of lines) { - let newLevel = citeLevel(line); - if (newLevel > level) - for (let i = level; i < newLevel; ++i) - newLines.push('
'); - if (newLevel < level) - for (let i = newLevel; i < level; ++i) - newLines.push('
'); - let newLine = line[newLevel] == " " ? escapeHtml(line.substring(newLevel + 1, line.length)) : escapeHtml(line.substring(newLevel, line.length)); - newLines.push(newLine); - level = newLevel; - } - return newLines.join("\n"); -} - -function parse(aMimeLine) { - if (!aMimeLine) - return [ - [], - [] - ]; - let emails = {}; - let fullNames = {}; - let names = {}; - let numAddresses = MailServices.headerParser.parseHeadersWithArray(aMimeLine, emails, names, fullNames); - return [names.value, emails.value]; -} - -/** - * Analyze a message header, and then return all the compose parameters for the - * reply-all case. - * @param {nsIIdentity} The identity you've picked for the reply. - * @param {nsIMsgDbHdr} The message header. - * @param {k} The function to call once we've determined all parameters. Take an - * argument like - * {{ to: [[name, email]], cc: [[name, email]], bcc: [[name, email]]}} - */ -function replyAllParams(aIdentity, aMsgHdr, k) { - // Do the whole shebang to find out who to send to... - let [ - [author], - [authorEmailAddress] - ] = parse(aMsgHdr.author); - let [recipients, recipientsEmailAddresses] = parse(aMsgHdr.recipients); - let [ccList, ccListEmailAddresses] = parse(aMsgHdr.ccList); - let [bccList, bccListEmailAddresses] = parse(aMsgHdr.bccList); - authorEmailAddress = authorEmailAddress.toLowerCase(); - recipientsEmailAddresses = recipientsEmailAddresses.map(x => x.toLowerCase()); - ccListEmailAddresses = ccListEmailAddresses.map(x => x.toLowerCase()); - bccListEmailAddresses = bccListEmailAddresses.map(x => x.toLowerCase()); - let identity = aIdentity; - let identityEmail = identity.email.toLowerCase(); - let to = [], - cc = [], - bcc = []; - - let isReplyToOwnMsg = false; - for (let currentIdentity of getIdentities()) { - let email = currentIdentity.identity.email.toLowerCase(); - if (email == authorEmailAddress) - isReplyToOwnMsg = true; - if (recipientsEmailAddresses.some(x => x == email)) - isReplyToOwnMsg = false; - if (ccListEmailAddresses.some(x => x == email)) - isReplyToOwnMsg = false; - } - - // Actually we are implementing the "Reply all" logic... that's better, no one - // wants to really use reply anyway - if (isReplyToOwnMsg) { - to = recipients.map((r, i) => [r, recipientsEmailAddresses[i]]); - } - else { - to = [ - [author, authorEmailAddress] - ]; - } - cc = ccList.map((cc, i) => [cc, ccListEmailAddresses[i]]). - filter((e, i) => e[1] != identityEmail); - if (!isReplyToOwnMsg) { - cc = cc.concat(recipients.map((r, i) => [r, recipientsEmailAddresses[i]]).filter((e, i) => e[1] != identityEmail)); - } - bcc = bccList.map((bcc, i) => [bcc, bccListEmailAddresses]); - - let finish = function(to, cc, bcc) { - let hashMap = {}; - for (let [name, email] of to) - hashMap[email] = null; - cc = cc.filter(function([name, email]) { - let r = (email in hashMap); - hashMap[email] = null; - return !r - }); - bcc = bcc.filter(function([name, email]) { - let r = (email in hashMap); - hashMap[email] = null; - return !r - }); - k({ - to: to, - cc: cc, - bcc: bcc - }); - } - - // Do we have a Reply-To header? - msgHdrGetHeaders(aMsgHdr, function(aHeaders) { - if (aHeaders.has("reply-to")) { - let [names, emails] = parse(aHeaders.get("reply-to")); - emails = emails.map(email => email.toLowerCase()); - if (emails.length) { - // Invariant: at this stage, we only have one item in to. - cc = cc.concat([to[0]]); // move the to in cc - to = combine(names, emails); - } - } - finish(to, cc, bcc); - }); -} - -/** - * This function replaces nsMsgComposeService::determineComposeHTML, which is - * marked as [noscript], just to make our lives complicated. [insert random rant - * here]. - * - * @param aIdentity (optional) You can specify the identity which you would like - * to get the preference for. - * @return a bool which is true if you should compose in HTML - */ -function determineComposeHtml(aIdentity) { - if (!aIdentity) - aIdentity = getDefaultIdentity().identity; - - if (aIdentity) { - return (aIdentity.composeHtml == Ci.nsIMsgCompFormat.HTML); - } - else { - return Cc["@mozilla.org/preferences-service;1"] - .getService(Ci.nsIPrefService) - .getBranch(null) - .getBoolPref("mail.compose_html"); - } -} - -/** - * Open a composition window for the given email address. - * @param aEmail {String} - * @param aDisplayedFolder {nsIMsgFolder} pass gFolderDisplay.displayedFolder - */ -function composeMessageTo(aEmail, aDisplayedFolder) { - let fields = Cc["@mozilla.org/messengercompose/composefields;1"] - .createInstance(Ci.nsIMsgCompFields); - let params = Cc["@mozilla.org/messengercompose/composeparams;1"] - .createInstance(Ci.nsIMsgComposeParams); - fields.to = aEmail - params.type = Ci.nsIMsgCompType.New; - params.format = Ci.nsIMsgCompFormat.Default; - if (aDisplayedFolder) { - params.identity = MailServices.accounts - .getFirstIdentityForServer(aDisplayedFolder.server); - } - params.composeFields = fields; - MailServices.compose.OpenComposeWindowWithParams(null, params); -} - -/** - * Returns signature contents depending on account settings of the identity. - * HTML signature is converted to plain text. - * @param {nsIIdentity} The identity you've picked for the reply. - * @return {String} plain text signature - */ -function getSignatureContentsForAccount(aIdentity) { - let signature = ""; - if (!aIdentity) - return signature; - - if (aIdentity.attachSignature && aIdentity.signature) { - let charset = systemCharset(); - const replacementChar = - Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER; - let fstream = Cc["@mozilla.org/network/file-input-stream;1"] - .createInstance(Ci.nsIFileInputStream); - let cstream = Cc["@mozilla.org/intl/converter-input-stream;1"] - .createInstance(Ci.nsIConverterInputStream); - try { - fstream.init(aIdentity.signature, -1, 0, 0); - try { - cstream.init(fstream, charset, 1024, replacementChar); - } - catch (e) { - EnigmailLog.ERROR("ConverterInputStream init error: " + e + - "\n charset: " + charset + "\n"); - cstream.init(fstream, "UTF-8", 1024, replacementChar); - } - let str = {}; - while (cstream.readString(4096, str) != 0) { - signature += str.value; - } - if (aIdentity.signature.path.match(/\.html?$/)) { - signature = htmlToPlainText(signature); - } - } - catch (e) { - EnigmailLog.ERROR("Signature file stream error: " + e + "\n"); - } - cstream.close(); - fstream.close(); - // required for stripSignatureIfNeeded working properly - signature = signature.replace(/\r?\n/g, "\n"); - } - else { - signature = aIdentity.htmlSigFormat ? htmlToPlainText(aIdentity.htmlSigText) : aIdentity.htmlSigText; - } - return signature; -} diff -Nru enigmail-2.1.6+ds1/stdlib/Makefile enigmail-2.2.4/stdlib/Makefile --- enigmail-2.1.6+ds1/stdlib/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,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 -# file, You can obtain one at https://mozilla.org/MPL/2.0/. - - -DEPTH = .. - -include $(DEPTH)/config/autoconf.mk - -GENDIR = $(DIST)/chrome/content/modules/stdlib - -MODFILES = \ - compose.jsm \ - misc.jsm \ - msgHdrUtils.jsm \ - openpgp.worker.js \ - web-streams.jsm - -GENFILES = $(addprefix $(GENDIR)/,$(MODFILES)) - -$(GENDIR)/%.jsm: %.jsm - $(DEPTH)/util/prepPostbox $(TARGET_TOOL) $< $@ - -$(GENDIR)/%.js: %.js - $(DEPTH)/util/prepPostbox $(TARGET_TOOL) $< $@ - -all: deploy - -deploy: createlib $(GENFILES) - -createlib: - cat openpgp-lib-head.js openpgp-lib.js openpgp-lib-tail.js > openpgp-lib.jsm - $(DEPTH)/util/prepPostbox $(TARGET_TOOL) openpgp-lib.jsm $(GENDIR)/openpgp-lib.jsm - -clean: - $(DEPTH)/util/install -u $(DIST)/chrome/content/modules/stdlib $(MODFILES) openpgp-lib.jsm diff -Nru enigmail-2.1.6+ds1/stdlib/misc.jsm enigmail-2.2.4/stdlib/misc.jsm --- enigmail-2.1.6+ds1/stdlib/misc.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/misc.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,395 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -/** - * @fileoverview This file provides various utilities: some helpers to deal with - * identity management, some helpers for JS programming, some helpers for - * low-level XPCOM stuff... - */ - -var EXPORTED_SYMBOLS = [ - // Identity management helpers - 'gIdentities', 'fillIdentities', 'getIdentities', 'getDefaultIdentity', 'getIdentityForEmail', - // Account management helpers: - 'hasConfiguredAccounts', - // JS programming helpers - 'range', 'MixIn', 'combine', 'entries', - // XPCOM helpers - 'NS_FAILED', 'NS_SUCCEEDED', - // Various formatting helpers - 'dateAsInMessageList', 'escapeHtml', 'sanitize', 'parseMimeLine', - // Useful for web content - 'encodeUrlParameters', 'decodeUrlParameters', - // Character set helpers - 'systemCharset', - // Platform-specific idioms - 'isOSX', 'isWindows', 'isAccel' -] - -const fixIterator = ChromeUtils.import("resource:///modules/iteratorUtils.jsm").fixIterator; -const XPCOMUtils = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm").XPCOMUtils; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -var MailServices; -try { - MailServices = ChromeUtils.import("resource:///modules/MailServices.jsm").MailServices; -} -catch (x){ - MailServices = ChromeUtils.import("resource:///modules/mailServices.js").MailServices; -} - -XPCOMUtils.defineLazyServiceGetter(MailServices, "i18nDateFormatter", - "@mozilla.org/intl/scriptabledateformat;1"); - - -let isOSX = ("nsILocalFileMac" in Ci); -let isWindows = ("@mozilla.org/windows-registry-key;1" in Cc); - -function isAccel(event) { - return isOSX && event.metaKey || event.ctrlKey; -} - -/** - * Low-level XPCOM-style macro. You might need this for the composition and - * sending listeners which will pass you some status codes. - * @param {Int} v The status code - * @return {Bool} - */ -function NS_FAILED(v) { - return (v & 0x80000000); -} - -/** - * Low-level XPCOM-style macro. You might need this for the composition and - * sending listeners which will pass you some status codes. - * @param {Int} v The status code - * @return {Bool} - */ -function NS_SUCCEEDED(v) { - return !NS_FAILED(v); -} - -/** - * Python-style range function to use in list comprehensions. - * @param {Number} begin - * @param {Number} end - * @return {Generator} An iterator that yields from begin to end - 1. - */ -function* range(begin, end) { - for (let i = begin; i < end; ++i) { - yield i; - } -} - -/** - * Helper function to simplify iteration over key/value store objects. - * From https://esdiscuss.org/topic/es6-iteration-over-object-values - * @param {Object} anObject - */ -function* entries(anObject) { - for (let key of Object.keys(anObject)) { - yield [key, anObject[key]]; - } -} - -/** - * MixIn-style helper. Adds aMixIn properties, getters and setters to - * aConstructor. - * @param {Object} aConstructor - * @param {Object} aMixIn - */ -function MixIn(aConstructor, aMixIn) { - let proto = aConstructor.prototype; - for (let [name, func] of entries(aMixIn)) { - if (name.substring(0, 4) == "get_") - proto.__defineGetter__(name.substring(4), func); - else - proto[name] = func; - } -} - -/** - * A global pointer to all the identities known for the user. Feel free to call - * fillIdentities again if you feel that the user has updated them! - * The keys are email addresses, the values are nsIMsgIdentity objects. - * - * @const - */ -let gIdentities = {}; - -/** - * This function you should call to populate the gIdentities global object. The - * recommended time to call this is after the mail-startup-done event, although - * doing this at overlay load-time seems to be fine as well. - * There is a "default" key, that we guarantee to be non-null, by picking the - * first account's first valid identity if the default account doesn't have any - * valid identity associated. - * @param aSkipNntp (optional) Should we avoid including nntp identities in the - * list? - * @deprecated Use getIdenties() instead - */ -function fillIdentities(aSkipNntp) { - EnigmailLog.WARNING("fillIdentities is deprecated! Use getIdentities instead!\n"); - EnigmailLog.DEBUG("Filling identities with skipnntp = " + aSkipNntp.toString() + "\n"); - - for (let currentIdentity of getIdentities(aSkipNntp)) { - gIdentities[currentIdentity.identity.email] = currentIdentity.identity; - if (currentIdentity.isDefault) { - gIdentities["default"] = currentIdentity.identity; - } - } - - if (!("default" in gIdentities)) { - gIdentities["default"] = getIdentities()[0].identity; - } -} - -/** - * Returns the default identity in the form { boolean isDefault; nsIMsgIdentity identity } - */ -function getDefaultIdentity() { - return getIdentities().find(x => x.isDefault); -} - -/** - * Returns a list of all identities in the form [{ boolean isDefault; nsIMsgIdentity identity }]. - * It is assured that there is exactly one default identity. - * If only the default identity is needed, getDefaultIdentity() can be used. - * @param aSkipNntpIdentities (default: true) Should we avoid including nntp identities in the list? - */ -function getIdentities(aSkipNntpIdentities = true) { - let identities = []; - for (let account of fixIterator(MailServices.accounts.accounts, Ci.nsIMsgAccount)) { - let server = account.incomingServer; - if (aSkipNntpIdentities && (!server || server.type != "pop3" && server.type != "imap")) { - continue; - } - for (let currentIdentity of fixIterator(account.identities, Ci.nsIMsgIdentity)) { - // We're only interested in identities that have a real email. - if (currentIdentity.email) { - identities.push({ - isDefault: (currentIdentity == MailServices.accounts.defaultAccount ? MailServices.accounts.defaultAccount.defaultIdentity : false), - identity: currentIdentity - }); - } - } - } - if (identities.length == 0) { - EnigmailLog.DEBUG("Didn't find any identities!\n"); - } - else { - if (!identities.some(x => x.isDefault)) { - EnigmailLog.DEBUG("Didn't find any default key - mark the first identity as default!\n"); - identities[0].isDefault = true; - } - } - return identities; -} - -/* - * Searches a given email address in all identities and returns the corresponding identity. - * @param {String} anEmailAddress Email address to be searched in the identities - * @returns {{Boolean} isDefault, {{nsIMsgIdentity} identity} if found, otherwise undefined - */ -function getIdentityForEmail(anEmailAddress) { - return getIdentities(false).find(ident => ident.identity.email.toLowerCase() == anEmailAddress.toLowerCase()); -} - -/** - * A stupid formatting function that uses the i18nDateFormatter XPCOM component - * to format a date just like in the message list - * @param {Date} aDate a javascript Date object - * @return {String} a string containing the formatted date - */ -function dateAsInMessageList(aDate) { - const DATE_2DIGIT = "2-digit"; - const DATE_4DIGIT = "numeric"; - let now = new Date(); - // Is it today? - let isToday = - now.getFullYear() == aDate.getFullYear() && - now.getMonth() == aDate.getMonth() && - now.getDate() == aDate.getDate(); - - let options = { - hour: DATE_2DIGIT, - minute: DATE_2DIGIT - }; - - if (!isToday) { - options.day = DATE_2DIGIT; - options.month = DATE_2DIGIT; - let year = aDate.getFullYear(); - if (year > 2099) { - options.year = DATE_4DIGIT; - } - else { - options.year = DATE_2DIGIT; - } - } - - return new Intl.DateTimeFormat([], options).format(aDate); -} - - -const RE_SANITIZE = /[\u0000-\u0008\u000b-\u000c\u000e-\u001f]/g; - -/** - * Helper function to remove non-printable characters from a string -- injecting - * these in an XML or XHTML document would cause an error. - * @param {String} s input text - * @param {String} The sanitized string. - */ -function sanitize(s) { - return (s || "").replace(RE_SANITIZE, ""); -} - -/** - * Helper function to escape some XML chars, so they display properly in - * innerHTML. - * @param {String} s input text - * @return {String} The string with <, >, and & replaced by the corresponding entities. - */ -function escapeHtml(s) { - s += ""; - // stolen from selectionsummaries.js (thanks davida!) - return sanitize(s.replace(/[<>&]/g, function(s) { - switch (s) { - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - default: - throw Error("Unexpected match"); - } - })); -} - -/** - * Wraps the low-level header parser stuff. - * @param {String} aMimeLine a line that looks like "John <john@cheese.com>, Jane <jane@wine.com>" - * @param {Boolean} aDontFix (optional) Default to false. Shall we return an - * empty array in case aMimeLine is empty? - * @return {Array} a list of { email, name } objects - */ -function parseMimeLine(aMimeLine, aDontFix) { - if (aMimeLine == null) { - EnigmailLog.DEBUG("Empty aMimeLine?!!\n"); - return []; - } - let emails = {}; - let fullNames = {}; - let names = {}; - let numAddresses = MailServices.headerParser.parseHeadersWithArray(aMimeLine, - emails, - names, - fullNames); - if (numAddresses) - return [...range(0, numAddresses)].map(i => { - return { - email: emails.value[i], - name: names.value[i], - fullName: fullNames.value[i] - }; - }); - else if (aDontFix) - return []; - else - return [{ - email: "", - name: "-", - fullName: "-" - }]; -} - -/** - * Takes an object whose keys are the parameter names, whose values are strings - * that are to be encoded in the url. - * @param aObj - * @return param1=val1¶m2=val2 etc. - */ -function encodeUrlParameters(aObj) { - let kv = []; - for (let [k, v] of entries(aObj)) { - kv.push(k + "=" + encodeURIComponent(v)); - } - return kv.join("&"); -} - -/** - * Takes the entire query string and returns an object whose keys are the - * parameter names and values are corresponding values. - * @param aStr The entire query string - * @return An object that holds the decoded data - */ -function decodeUrlParameters(aStr) { - let params = {}; - let i = aStr.indexOf("?"); - if (i >= 0) { - let query = aStr.substring(i + 1, aStr.length); - let keyVals = query.split("&"); - for (let keyVal of keyVals) { - let [key, val] = keyVal.split("="); - val = decodeURIComponent(val); - params[key] = val; - } - } - return params; -} - -/** - * Returns a system character set string, which is system code page on Windows, - * LANG environment variable's encoding on Unix-like OS, otherwise UTF-8. - * @return {String} a character set string - */ -function systemCharset() { - let charset = "UTF-8"; - if ("@mozilla.org/windows-registry-key;1" in Cc) { - let registry = Cc["@mozilla.org/windows-registry-key;1"] - .createInstance(Ci.nsIWindowsRegKey); - registry.open(registry.ROOT_KEY_LOCAL_MACHINE, - "SYSTEM\\CurrentControlSet\\Control\\Nls\\CodePage", - registry.ACCESS_READ); - let codePage = registry.readStringValue("ACP"); - if (codePage) { - charset = "CP" + codePage; - } - registry.close(); - } - else { - let env = Cc["@mozilla.org/process/environment;1"] - .getService(Ci.nsIEnvironment); - let lang = env.get("LANG").split("."); - if (lang.length > 1) { - charset = lang[1]; - } - } - return charset; -} - -function combine(a1, a2) { - if (a1.length != a2.length) - throw new Error("combine: the given arrays have different lengths"); - return [...range(0, a1.length)].map(i => [a1[i], a2[i]]); -} - - -/** - * Determine if at least one account / identity is configured - * @return {Bool} - */ -function hasConfiguredAccounts() { - let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager); - - for (let acct = 0; acct < accountManager.accounts.length; acct++) { - let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount); - - if (ac.incomingServer.type !== "none") { - if (ac.defaultIdentity.email.length > 0) return true; - } - } - - return false; -} diff -Nru enigmail-2.1.6+ds1/stdlib/msgHdrUtils.jsm enigmail-2.2.4/stdlib/msgHdrUtils.jsm --- enigmail-2.1.6+ds1/stdlib/msgHdrUtils.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/msgHdrUtils.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,546 +0,0 @@ -/* eslint-disable strict */ -/* 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 https://mozilla.org/MPL/2.0/. */ - -/** - * @fileoverview A whole bunch of utility functions that will abstract away - * various low-level nsIMsgDbHdr operations. The idea is to save time by not - * having to lookup how to do simple actions. - * @author Jonathan Protzenko - */ - -var EXPORTED_SYMBOLS = [ - // Low-level XPCOM boring stuff - 'msgHdrToMessageBody', 'msgHdrToNeckoURL', 'msgHdrGetTags', 'msgUriToMsgHdr', - 'msgHdrGetUri', 'msgHdrFromNeckoUrl', 'msgHdrSetTags', - // Quickly identify a message - 'msgHdrIsDraft', 'msgHdrIsSent', 'msgHdrIsArchive', 'msgHdrIsInbox', - 'msgHdrIsRss', 'msgHdrIsNntp', 'msgHdrIsJunk', - // Actions on a set of message headers - 'msgHdrsMarkAsRead', 'msgHdrsArchive', 'msgHdrsDelete', - // Doesn't really belong here - 'getMail3Pane', - // Higher-level functions - 'msgHdrGetHeaders', - // Modify messages, raw. - 'msgHdrsModifyRaw' -]; - -const Cr = Components.results; - -// from mailnews/base/public/nsMsgFolderFlags.idl -const nsMsgFolderFlags_SentMail = 0x00000200; -const nsMsgFolderFlags_Drafts = 0x00000400; -const nsMsgFolderFlags_Archive = 0x00004000; -const nsMsgFolderFlags_Inbox = 0x00001000; - -const PR_WRONLY = 0x02; - -const XPCOMUtils = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm").XPCOMUtils; -const { - MsgHdrToMimeMessage, - MimeMessage, MimeContainer, - MimeBody, MimeUnknown, - MimeMessageAttachment -} = ChromeUtils.import("resource:///modules/gloda/mimemsg.js"); -const GlodaUtils = ChromeUtils.import("resource:///modules/gloda/utils.js").GlodaUtils; -const { - fixIterator, toXPCOMArray, toArray -} =ChromeUtils.import("resource:///modules/iteratorUtils.jsm"); -const Services = ChromeUtils.import("resource://gre/modules/Services.jsm").Services; -const EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -var MailServices; -try { - MailServices = ChromeUtils.import("resource:///modules/MailServices.jsm").MailServices; -} -catch (x){ - MailServices = ChromeUtils.import("resource:///modules/mailServices.js").MailServices; -} - -const { - gIdentities, - fillIdentities, - getIdentities, - getDefaultIdentity, - getIdentityForEmail, - hasConfiguredAccounts, - range, - MixIn, - combine, - entries, - dateAsInMessageList, - escapeHtml, - sanitize, - parseMimeLine, - encodeUrlParameters, - decodeUrlParameters, - systemCharset, - isOSX, - isWindows, - isAccel -} = ChromeUtils.import("chrome://enigmail/content/modules/stdlib/misc.jsm"); -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; - -// Adding a messenger lazy getter to the MailServices even though it's not a service -XPCOMUtils.defineLazyGetter(MailServices, "messenger", function() { - return Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); -}); - -/** - * Get a given message header's uri. - * @param {nsIMsgDbHdr} aMsg The message - * @return {String} - */ -function msgHdrGetUri(aMsg) { - return aMsg.folder.getUriForMsg(aMsg); -} - -/** - * Get a msgHdr from a message URI (msgHdr.URI). - * @param {String} aUri The URI of the message - * @return {nsIMsgDbHdr} - */ -function msgUriToMsgHdr(aUri) { - try { - let messageService = MailServices.messenger.messageServiceFromURI(aUri); - return messageService.messageURIToMsgHdr(aUri); - } - catch (e) { - dump("Unable to get " + aUri + " — returning null instead"); - return null; - } -} - -/** - * Tells if the message is in the account's inbox - * @param {nsIMsgDbHdr} msgHdr The message header to examine - * @return {bool} - */ -function msgHdrIsInbox(msgHdr) { - return msgHdr.folder.getFlag(nsMsgFolderFlags_Inbox); -} - -/** - * Tells if the message is a draft message - * @param {nsIMsgDbHdr} msgHdr The message header to examine - * @return {bool} - */ -function msgHdrIsDraft(msgHdr) { - return msgHdr.folder.getFlag(nsMsgFolderFlags_Drafts); -} - -/** - * Tells if the message is a sent message - * @param {nsIMsgDbHdr} msgHdr The message header to examine - * @return {bool} - */ -function msgHdrIsSent(msgHdr) { - return msgHdr.folder.getFlag(nsMsgFolderFlags_SentMail); -} - -/** - * Tells if the message is an archived message - * @param {nsIMsgDbHdr} msgHdr The message header to examine - * @return {bool} - */ -function msgHdrIsArchive(msgHdr) { - return msgHdr.folder.getFlag(nsMsgFolderFlags_Archive); -} - -/** - * Get a nsIMsgDbHdr from a Necko URL. - * @param {String} The URL - * @return {nsIMsgDbHdr} The message header. - */ -function msgHdrFromNeckoUrl(aUrl) { - return aUrl.QueryInterface(Ci.nsIMsgMessageUrl).messageHeader; -} - -/** - * Get a string containing the body of a messsage. - * @param {nsIMsgDbHdr} aMessageHeader The message header - * @param {bool} aStripHtml Keep html? - * @return {string} - */ -function msgHdrToMessageBody(aMessageHeader, aStripHtml, aLength) { - let messenger = Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); - let listener = Cc["@mozilla.org/network/sync-stream-listener;1"].createInstance(Ci.nsISyncStreamListener); - let uri = aMessageHeader.folder.getUriForMsg(aMessageHeader); - messenger.messageServiceFromURI(uri).streamMessage(uri, listener, null, null, false, ""); - let folder = aMessageHeader.folder; - /* - * AUTF8String getMsgTextFromStream(in nsIInputStream aStream, in ACString aCharset, - in unsigned long aBytesToRead, in unsigned long aMaxOutputLen, - in boolean aCompressQuotes, in boolean aStripHTMLTags, - out ACString aContentType); - */ - return folder.getMsgTextFromStream( - listener.inputStream, aMessageHeader.Charset, 2 * aLength, aLength, false, aStripHtml, {}); -} - -/** - * Get a nsIURI from a nsIMsgDBHdr - * @param {nsIMsgDbHdr} aMsgHdr The message header - * @return {nsIURI} - */ -function msgHdrToNeckoURL(aMsgHdr) { - let uri = aMsgHdr.folder.getUriForMsg(aMsgHdr); - let neckoURL = {}; - let msgService = MailServices.messenger.messageServiceFromURI(uri); - msgService.GetUrlForUri(uri, neckoURL, null); - return neckoURL.value; -} - -/** - * Given a msgHdr, return a list of tag objects. This function - * just does the messy work of understanding how tags are - * stored in nsIMsgDBHdrs. - * - * @param {nsIMsgDbHdr} aMsgHdr the msgHdr whose tags we want - * @return {nsIMsgTag array} a list of tag objects - */ -function msgHdrGetTags(aMsgHdr) { - let keywords = aMsgHdr.getStringProperty("keywords"); - let keywordList = keywords.split(' '); - let keywordMap = {}; - for (let keyword of keywordList) { - keywordMap[keyword] = true; - } - - let tagArray = MailServices.tags.getAllTags({}); - let tags = tagArray.filter(tag => tag.key in keywordMap); - return tags; -} - -/** - * Set the tags for a given msgHdr. - * - * @param {nsIMsgDBHdr} aMsgHdr - * @param {nsIMsgTag array} aTags - */ -function msgHdrSetTags(aMsgHdr, aTags) { - let oldTagList = msgHdrGetTags(aMsgHdr); - let oldTags = {}; // hashmap - for (let tag of oldTagList) - oldTags[tag.key] = null; - - let newTags = {}; - let newTagList = aTags; - for (let tag of newTagList) - newTags[tag.key] = null; - - let toAdd = newTagList.filter(x => !(x.key in oldTags)).map(x => x.key); - let toRemove = oldTagList.filter(x => !(x.key in newTags)).map(x => x.key); - - let folder = aMsgHdr.folder; - let msgHdr = toXPCOMArray([aMsgHdr], Ci.nsIMutableArray); - folder.addKeywordsToMessages(msgHdr, toAdd.join(" ")); - folder.removeKeywordsFromMessages(msgHdr, toRemove.join(" ")); - aMsgHdr.folder.msgDatabase = null; -} - -/** - * Mark an array of msgHdrs read (or unread) - * @param {nsIMsgDbHdr array} msgHdrs The message headers - * @param {bool} read True to mark them read, false to mark them unread - */ -function msgHdrsMarkAsRead(msgHdrs, read) { - let pending = {}; - for (let msgHdr of msgHdrs) { - if (msgHdr.isRead == read) - continue; - if (!pending[msgHdr.folder.URI]) { - pending[msgHdr.folder.URI] = { - folder: msgHdr.folder, - msgs: Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray) - }; - } - pending[msgHdr.folder.URI].msgs.appendElement(msgHdr, false); - } - for (let [uri, { - folder, msgs - }] of entries(pending)) { - folder.markMessagesRead(msgs, read); - folder.msgDatabase = null; /* don't leak */ - } -} - -/** - * Delete a set of messages. - * @param {nsIMsgDbHdr array} msgHdrs The message headers - */ -function msgHdrsDelete(msgHdrs) { - let pending = {}; - for (let msgHdr of msgHdrs) { - if (!pending[msgHdr.folder.URI]) { - pending[msgHdr.folder.URI] = { - folder: msgHdr.folder, - msgs: Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray) - }; - } - pending[msgHdr.folder.URI].msgs.appendElement(msgHdr, false); - } - for (let [uri, { - folder, msgs - }] of entries(pending)) { - folder.deleteMessages(msgs, getMail3Pane().msgWindow, false, false, null, true); - folder.msgDatabase = null; /* don't leak */ - } -} - -/** - * Get the main Thunderbird window. Used heavily to get a reference to globals - * that are defined in mail/base/content/. - * @return The window object for the main window. - */ -function getMail3Pane() { - return Cc["@mozilla.org/appshell/window-mediator;1"] - .getService(Ci.nsIWindowMediator) - .getMostRecentWindow("mail:3pane"); -} - -/** - * Archive a set of messages - * @param {nsIMsgDbHdr array} msgHdrs The message headers - */ -function msgHdrsArchive(msgHdrs) { - /* See - * http://mxr.mozilla.org/comm-central/source/suite/mailnews/mailWindowOverlay.js#1337 - * - * The window is here because otherwise we don't have access to - * BatchMessageMover. - * */ - let mail3PaneWindow = getMail3Pane(); - let batchMover = new mail3PaneWindow.BatchMessageMover(); - batchMover.archiveMessages(msgHdrs.filter( - x => !msgHdrIsArchive(x) && getMail3Pane().getIdentityForHeader(x).archiveEnabled - )); -} - -/** - * Tell if a message is an RSS feed iteme - * @param {nsIMsgDbHdr} msgHdr The message header - * @return {Bool} - */ -function msgHdrIsRss(msgHdr) { - return msgHdr.folder.server instanceof Ci.nsIRssIncomingServer; -} - -/** - * Tell if a message is a NNTP message - * @param {nsIMsgDbHdr} msgHdr The message header - * @return {Bool} - */ -function msgHdrIsNntp(msgHdr) { - return msgHdr.folder.server instanceof Ci.nsINntpIncomingServer; -} - -/** - * Tell if a message has been marked as junk. - * @param {nsIMsgDbHdr} msgHdr The message header - * @return {Bool} - */ -function msgHdrIsJunk(aMsgHdr) { - return aMsgHdr.getStringProperty("junkscore") == Ci.nsIJunkMailPlugin.IS_SPAM_SCORE; -} - -/** - * Recycling the HeaderHandlerBase from mimemsg.js - */ -function HeaderHandler(aHeaders) { - this.headers = aHeaders; -} - -HeaderHandler.prototype = { - __proto__: MimeMessage.prototype.__proto__, // == HeaderHandlerBase -}; - -/** - * Creates a stream listener that will call k once done, passing it the string - * that has been read. - */ -function createStreamListener(k) { - return { - _data: "", - _stream: null, - - QueryInterface: generateQI([Ci.nsIStreamListener, Ci.nsIRequestObserver]), - - // nsIRequestObserver - onStartRequest: function(aRequest) {}, - onStopRequest: function(aRequest, aStatusCode) { - try { - k(this._data); - } - catch (e) { - dump("Error inside stream listener:\n" + e + "\n"); - } - }, - - // nsIStreamListener - onDataAvailable: function(aRequest, dummy, aInputStream, aOffset, aCount) { - if (isPlatformNewerThan("67")) { - aInputStream = dummy; - aCount = aOffset; - } - if (this._stream == null) { - this._stream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); - this._stream.init(aInputStream); - } - this._data += this._stream.read(aCount); - } - }; -} - -/** - * @param aMsgHdr The message header whose headers you want - * @param k A function that takes a HeaderHandler object (see mimemsg.js). - * Such an object has a get function, a has function. It has a header property, - * whose keys are lowercased header names, and whose values are list of - * strings corresponding to the multiple entries found for that header. - */ -function msgHdrGetHeaders(aMsgHdr, k) { - let uri = msgHdrGetUri(aMsgHdr); - let messageService = MailServices.messenger.messageServiceFromURI(uri); - - let fallback = () => - MsgHdrToMimeMessage(aMsgHdr, null, function(aMsgHdr, aMimeMsg) { - k(aMimeMsg); - }, true, { - partsOnDemand: true, - }); - - // This is intentionally disabled because there's a bug in Thunderbird that - // renders the supposedly-useful streamHeaders function unusable. - if (false && "streamHeaders" in messageService) { - try { - messageService.streamHeaders(uri, createStreamListener(aRawString => { - let re = /\r?\n\s+/g; - let str = aRawString.replace(re, " "); - let lines = str.split(/\r?\n/); - let obj = {}; - for (let line of lines) { - let i = line.indexOf(":"); - if (i < 0) - continue; - let k = line.substring(0, i).toLowerCase(); - let v = line.substring(i + 1).trim(); - if (!(k in obj)) - obj[k] = []; - obj[k].push(v); - } - k(new HeaderHandler(obj)); - }), null, true); - } - catch (e) { - fallback(); - } - } - else { - fallback(); - } -} - -/** - * @param aMsgHdrs The messages to modify - * @param aTransformer A function which takes the input data, modifies it, and - * returns the corresponding data. This is the _raw_ contents of the message. - */ -function msgHdrsModifyRaw(aMsgHdrs, aTransformer) { - let toCopy = []; - let toDelete = []; - let copyNext = () => { - dump("msgHdrModifyRaw: copying next\n"); - let obj = toCopy.pop(); - if (!obj) { - msgHdrsDelete(toDelete); - return; - } - - let { - msgHdr, tempFile - } = obj; - - EnigmailCompat.copyFileToMailFolder( - tempFile, - msgHdr.folder, - msgHdr.flags, - msgHdr.getStringProperty("keywords"), { - QueryInterface: generateQI([Ci.nsIMsgCopyServiceListener]), - - OnStartCopy: function() {}, - OnProgress: function(aProgress, aProgressMax) {}, - SetMessageKey: function(aKey) {}, - GetMessageId: function(aMessageId) {}, - OnStopCopy: function(aStatus) { - if (NS_SUCCEEDED(aStatus)) { - dump("msgHdrModifyRaw: copied successfully\n"); - toDelete.push(msgHdr); - tempFile.remove(false); - } - copyNext(); - } - }, - null - ); - }; - - let count = aMsgHdrs.length; - let tick = function() { - if (--count == 0) - copyNext(); - } - - for (let aMsgHdr of aMsgHdrs) { - let msgHdr = aMsgHdr; - let uri = msgHdrGetUri(msgHdr); - let messageService = MailServices.messenger.messageServiceFromURI(uri); - messageService.streamMessage(uri, createStreamListener(function(aRawString) { - let data = aTransformer(aRawString); - if (!data) { - dump("msgHdrModifyRaw: no data, aborting\n"); - return; - } - - let tempFile = Services.dirsvc.get("TmpD", Ci.nsIFile); - tempFile.append("rethread.eml"); - tempFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt("0600", 8)); - - let stream = Cc["@mozilla.org/network/file-output-stream;1"] - .createInstance(Ci.nsIFileOutputStream); - stream.init(tempFile, PR_WRONLY, parseInt("0600", 8), 0); - stream.write(data, data.length); - stream.close(); - - dump("msgHdrModifyRaw: wrote to file\n"); - toCopy.push({ - tempFile: tempFile, - msgHdr: msgHdr - }); - tick(); - }), null, null, false, ""); - } -} - - -/** - * return true, if plafform is newer than or equal a given version - */ -function isPlatformNewerThan(requestedVersion) { - let vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator); - let appVer = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo).platformVersion; - - return vc.compare(appVer, requestedVersion) >= 0; -} - -function generateQI(aCid) { - if (isPlatformNewerThan("68.0")) { - // TB > 60 - return ChromeUtils.generateQI(aCid); - } - else { - return XPCOMUtils.generateQI(aCid); - } -} diff -Nru enigmail-2.1.6+ds1/stdlib/qrcode.jsm enigmail-2.2.4/stdlib/qrcode.jsm --- enigmail-2.1.6+ds1/stdlib/qrcode.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/qrcode.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,904 +0,0 @@ -/** - * modified qr.js -- QR code generator in Javascript (revision 2011-01-19) - * Written by Kang Seonghoon . - * v0.0.20110119 - * This source code is in the public domain; if your jurisdiction does not - * recognize the public domain the terms of Creative Commons CC0 license - * apply. In the other words, you can always do what you want. - * added options properties: fillcolor and textcolor - * svg now works in Edge 13 and IE 11 - * @see {@link https://gist.github.com/englishextra/b46969e3382ef737c611bb59d837220b} - * @see {@link https://github.com/lifthrasiir/qr.js/blob/v0.0.20110119/qr.js} - * passes jshint with suppressing comments - * Docu: https://www.cssscript.com/customizable-qr-code-generator-vanilla-javascript-qrjs2/ - * - * Adapted to Mozilla-style module by Patrick Brunschwig - */ - - -/** - * Usage - * - * QRCode.generateSVG(data, settings) - * QRCode.generatePNG(data, settings) - * QRCode.generateHTML(data, settings) - * - * @param {String} data: the data to be put into the QR code - * @param {Object} settings: - * - ecclevel: ECC level (low, medium, quartile, high) - * allowed values: one of L, M, Q, H. Default: L (low) - * - mode: one of "alphanumeric", "octet", "numeric". Default: auto-detected - * - version: Symbol version of the QR code (~ amount of data to put into the QR code) (1-40). - * @see {@link http://www.qrcode.com/en/about/version.html} for details - * Default: -1 (auto-dectected) - * - fillcolor: background color. Default: "#FFFFFF" (white) - * - textcolor: foreground color. Default: "#000000" (black) - * - margin: margin around the generated. Default: 4 - * - modulesize: unscaled image size. Default: 5 - * - - */ - -"use strict"; - -var EXPORTED_SYMBOLS = ["QRCode"]; - -var length = "length"; -var VERSIONS = [null, [ - [10, 7, 17, 13], - [1, 1, 1, 1], - [] - ], - [ - [16, 10, 28, 22], - [1, 1, 1, 1], - [4, 16] - ], - [ - [26, 15, 22, 18], - [1, 1, 2, 2], - [4, 20] - ], - [ - [18, 20, 16, 26], - [2, 1, 4, 2], - [4, 24] - ], - [ - [24, 26, 22, 18], - [2, 1, 4, 4], - [4, 28] - ], - [ - [16, 18, 28, 24], - [4, 2, 4, 4], - [4, 32] - ], - [ - [18, 20, 26, 18], - [4, 2, 5, 6], - [4, 20, 36] - ], - [ - [22, 24, 26, 22], - [4, 2, 6, 6], - [4, 22, 40] - ], - [ - [22, 30, 24, 20], - [5, 2, 8, 8], - [4, 24, 44] - ], - [ - [26, 18, 28, 24], - [5, 4, 8, 8], - [4, 26, 48] - ], - [ - [30, 20, 24, 28], - [5, 4, 11, 8], - [4, 28, 52] - ], - [ - [22, 24, 28, 26], - [8, 4, 11, 10], - [4, 30, 56] - ], - [ - [22, 26, 22, 24], - [9, 4, 16, 12], - [4, 32, 60] - ], - [ - [24, 30, 24, 20], - [9, 4, 16, 16], - [4, 24, 44, 64] - ], - [ - [24, 22, 24, 30], - [10, 6, 18, 12], - [4, 24, 46, 68] - ], - [ - [28, 24, 30, 24], - [10, 6, 16, 17], - [4, 24, 48, 72] - ], - [ - [28, 28, 28, 28], - [11, 6, 19, 16], - [4, 28, 52, 76] - ], - [ - [26, 30, 28, 28], - [13, 6, 21, 18], - [4, 28, 54, 80] - ], - [ - [26, 28, 26, 26], - [14, 7, 25, 21], - [4, 28, 56, 84] - ], - [ - [26, 28, 28, 30], - [16, 8, 25, 20], - [4, 32, 60, 88] - ], - [ - [26, 28, 30, 28], - [17, 8, 25, 23], - [4, 26, 48, 70, 92] - ], - [ - [28, 28, 24, 30], - [17, 9, 34, 23], - [4, 24, 48, 72, 96] - ], - [ - [28, 30, 30, 30], - [18, 9, 30, 25], - [4, 28, 52, 76, 100] - ], - [ - [28, 30, 30, 30], - [20, 10, 32, 27], - [4, 26, 52, 78, 104] - ], - [ - [28, 26, 30, 30], - [21, 12, 35, 29], - [4, 30, 56, 82, 108] - ], - [ - [28, 28, 30, 28], - [23, 12, 37, 34], - [4, 28, 56, 84, 112] - ], - [ - [28, 30, 30, 30], - [25, 12, 40, 34], - [4, 32, 60, 88, 116] - ], - [ - [28, 30, 30, 30], - [26, 13, 42, 35], - [4, 24, 48, 72, 96, 120] - ], - [ - [28, 30, 30, 30], - [28, 14, 45, 38], - [4, 28, 52, 76, 100, 124] - ], - [ - [28, 30, 30, 30], - [29, 15, 48, 40], - [4, 24, 50, 76, 102, 128] - ], - [ - [28, 30, 30, 30], - [31, 16, 51, 43], - [4, 28, 54, 80, 106, 132] - ], - [ - [28, 30, 30, 30], - [33, 17, 54, 45], - [4, 32, 58, 84, 110, 136] - ], - [ - [28, 30, 30, 30], - [35, 18, 57, 48], - [4, 28, 56, 84, 112, 140] - ], - [ - [28, 30, 30, 30], - [37, 19, 60, 51], - [4, 32, 60, 88, 116, 144] - ], - [ - [28, 30, 30, 30], - [38, 19, 63, 53], - [4, 28, 52, 76, 100, 124, 148] - ], - [ - [28, 30, 30, 30], - [40, 20, 66, 56], - [4, 22, 48, 74, 100, 126, 152] - ], - [ - [28, 30, 30, 30], - [43, 21, 70, 59], - [4, 26, 52, 78, 104, 130, 156] - ], - [ - [28, 30, 30, 30], - [45, 22, 74, 62], - [4, 30, 56, 82, 108, 134, 160] - ], - [ - [28, 30, 30, 30], - [47, 24, 77, 65], - [4, 24, 52, 80, 108, 136, 164] - ], - [ - [28, 30, 30, 30], - [49, 25, 81, 68], - [4, 28, 56, 84, 112, 140, 168] - ] -]; - -var MODE_TERMINATOR = 0; -var MODE_NUMERIC = 1, - MODE_ALPHANUMERIC = 2, - MODE_OCTET = 4, - MODE_KANJI = 8; -var NUMERIC_REGEXP = /^\d*$/; -var ALPHANUMERIC_REGEXP = /^[A-Za-z0-9 $%*+\-./:] * $ /; -var ALPHANUMERIC_OUT_REGEXP = /^[A-Z0-9 $%*+\-./:] * $ /; -var ECCLEVEL_L = 1, - ECCLEVEL_M = 0, - ECCLEVEL_Q = 3, - ECCLEVEL_H = 2; -var GF256_MAP = [], - GF256_INVMAP = [-1]; -for (var i1 = 0, v = 1; i1 < 255; ++i1) { - GF256_MAP.push(v); - GF256_INVMAP[v] = i1; - v = (v * 2) ^ (v >= 128 ? 0x11d : 0); -} -var GF256_GENPOLY = [ - [] -]; - -for (var i2 = 0; i2 < 30; ++i2) { - var prevpoly = GF256_GENPOLY[i2], - poly = []; - for (var j1 = 0; j1 <= i2; ++j1) { - var a = (j1 < i2 ? GF256_MAP[prevpoly[j1]] : 0); - var b = GF256_MAP[(i2 + (prevpoly[j1 - 1] || 0)) % 255]; - poly.push(GF256_INVMAP[a ^ b]); - } - GF256_GENPOLY.push(poly); -} - -var ALPHANUMERIC_MAP = {}; -for (var i = 0; i < 45; ++i) { - ALPHANUMERIC_MAP["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(i)] = i; -} - -var MASKFUNCS = [function(i, j) { - return (i + j) % 2 === 0; -}, function(i) { - return i % 2 === 0; -}, function(i, j) { - return j % 3 === 0; -}, function(i, j) { - return (i + j) % 3 === 0; -}, function(i, j) { - return (((i / 2) | 0) + ((j / 3) | 0)) % 2 === 0; -}, function(i, j) { - return (i * j) % 2 + (i * j) % 3 === 0; -}, function(i, j) { - return ((i * j) % 2 + (i * j) % 3) % 2 === 0; -}, function(i, j) { - return ((i + j) % 2 + (i * j) % 3) % 2 === 0; -}]; - -var needsverinfo = function(ver) { - return ver > 6; -}; - -var getsizebyver = function(ver) { - return 4 * ver + 17; -}; - -var nfullbits = function(ver) { - var v = VERSIONS[ver]; - var nbits = 16 * ver * ver + 128 * ver + 64; - if (needsverinfo(ver)) { - nbits -= 36; - } - if (v[2][length]) { - nbits -= 25 * v[2][length] * v[2][length] - 10 * v[2][length] - 55; - } - return nbits; -}; - -var ndatabits = function(ver, ecclevel) { - var nbits = nfullbits(ver) & ~7; - var v = VERSIONS[ver]; - nbits -= 8 * v[0][ecclevel] * v[1][ecclevel]; - return nbits; -}; - -var ndatalenbits = function(ver, mode) { - switch (mode) { - case MODE_NUMERIC: - return (ver < 10 ? 10 : ver < 27 ? 12 : 14); - case MODE_ALPHANUMERIC: - return (ver < 10 ? 9 : ver < 27 ? 11 : 13); - case MODE_OCTET: - return (ver < 10 ? 8 : 16); - case MODE_KANJI: - return (ver < 10 ? 8 : ver < 27 ? 10 : 12); - } - - return 0; -}; - -var getmaxdatalen = function(ver, mode, ecclevel) { - var nbits = ndatabits(ver, ecclevel) - 4 - ndatalenbits(ver, mode); - switch (mode) { - case MODE_NUMERIC: - return ((nbits / 10) | 0) * 3 + (nbits % 10 < 4 ? 0 : nbits % 10 < 7 ? 1 : 2); - case MODE_ALPHANUMERIC: - return ((nbits / 11) | 0) * 2 + (nbits % 11 < 6 ? 0 : 1); - case MODE_OCTET: - return (nbits / 8) | 0; - case MODE_KANJI: - return (nbits / 13) | 0; - } - - return 0; -}; - -var validatedata = function(mode, data) { - switch (mode) { - case MODE_NUMERIC: - if (!data.match(NUMERIC_REGEXP)) { - return null; - } - return data; - case MODE_ALPHANUMERIC: - if (!data.match(ALPHANUMERIC_REGEXP)) { - return null; - } - return data.toUpperCase(); - case MODE_OCTET: - if (typeof data === "string") { - var newdata = []; - for (var i = 0; i < data[length]; ++i) { - var ch = data.charCodeAt(i); - if (ch < 0x80) { - newdata.push(ch); - } - else if (ch < 0x800) { - newdata.push(0xc0 | (ch >> 6), 0x80 | (ch & 0x3f)); - } - else if (ch < 0x10000) { - newdata.push(0xe0 | (ch >> 12), 0x80 | ((ch >> 6) & 0x3f), 0x80 | (ch & 0x3f)); - } - else { - newdata.push(0xf0 | (ch >> 18), 0x80 | ((ch >> 12) & 0x3f), 0x80 | ((ch >> 6) & 0x3f), 0x80 | (ch & 0x3f)); - } - } - return newdata; - } - else { - return data; - } - } - - return null; -}; - -var encode = function(ver, mode, data, maxbuflen) { - var buf = []; - var bits = 0, - remaining = 8; - var datalen = data[length]; - var pack = function(x, n) { - if (n >= remaining) { - buf.push(bits | (x >> (n -= remaining))); - while (n >= 8) { - buf.push((x >> (n -= 8)) & 255); - } - bits = 0; - remaining = 8; - } - if (n > 0) { - bits |= (x & ((1 << n) - 1)) << (remaining -= n); - } - }; - var nlenbits = ndatalenbits(ver, mode); - pack(mode, 4); - pack(datalen, nlenbits); - var i, i2; - switch (mode) { - case MODE_NUMERIC: - for (i = 2; i < datalen; i += 3) { - pack(parseInt(data.substring(i - 2, i + 1), 10), 10); - } - pack(parseInt(data.substring(i - 2), 10), [0, 4, 7][datalen % 3]); - break; - case MODE_ALPHANUMERIC: - for (i2 = 1; i2 < datalen; i2 += 2) { - pack(ALPHANUMERIC_MAP[data.charAt(i2 - 1)] * 45 + - ALPHANUMERIC_MAP[data.charAt(i2)], 11); - } - if (datalen % 2 === 1) { - pack(ALPHANUMERIC_MAP[data.charAt(i2 - 1)], 6); - } - break; - case MODE_OCTET: - for (var i3 = 0; i3 < datalen; ++i3) { - pack(data[i3], 8); - } - break; - } - pack(MODE_TERMINATOR, 4); - if (remaining < 8) { - buf.push(bits); - } - while (buf[length] + 1 < maxbuflen) { - buf.push(0xec, 0x11); - } - if (buf[length] < maxbuflen) { - buf.push(0xec); - } - return buf; -}; - -var calculateecc = function(poly, genpoly) { - var modulus = poly.slice(0); - var polylen = poly[length], - genpolylen = genpoly[length]; - for (var k = 0; k < genpolylen; ++k) { - modulus.push(0); - } - for (var i = 0; i < polylen;) { - var quotient = GF256_INVMAP[modulus[i++]]; - if (quotient >= 0) { - for (var j = 0; j < genpolylen; ++j) { - modulus[i + j] ^= GF256_MAP[(quotient + genpoly[j]) % 255]; - } - } - } - return modulus.slice(polylen); -}; - -var augumenteccs = function(poly, nblocks, genpoly) { - var subsizes = []; - var subsize = (poly[length] / nblocks) | 0, - subsize0 = 0; - var pivot = nblocks - poly[length] % nblocks; - for (var i = 0; i < pivot; ++i) { - subsizes.push(subsize0); - subsize0 += subsize; - } - for (var i2 = pivot; i2 < nblocks; ++i2) { - subsizes.push(subsize0); - subsize0 += subsize + 1; - } - subsizes.push(subsize0); - var eccs = []; - for (var i3 = 0; i3 < nblocks; ++i3) { - eccs.push(calculateecc(poly.slice(subsizes[i3], subsizes[i3 + 1]), genpoly)); - } - var result = []; - var nitemsperblock = (poly[length] / nblocks) | 0; - for (var i4 = 0; i4 < nitemsperblock; ++i4) { - for (var j = 0; j < nblocks; ++j) { - result.push(poly[subsizes[j] + i4]); - } - } - for (var j2 = pivot; j2 < nblocks; ++j2) { - result.push(poly[subsizes[j2 + 1] - 1]); - } - for (var i5 = 0; i5 < genpoly[length]; ++i5) { - for (var j3 = 0; j3 < nblocks; ++j3) { - result.push(eccs[j3][i5]); - } - } - return result; -}; - -var augumentbch = function(poly, p, genpoly, q) { - var modulus = poly << q; - for (var i = p - 1; i >= 0; --i) { - if ((modulus >> (q + i)) & 1) { - modulus ^= genpoly << i; - } - } - return (poly << q) | modulus; -}; - -var makebasematrix = function(ver) { - var v = VERSIONS[ver], - n = getsizebyver(ver); - var matrix = [], - reserved = []; - for (var i = 0; i < n; ++i) { - matrix.push([]); - reserved.push([]); - } - var blit = function(y, x, h, w, bits) { - for (var i = 0; i < h; ++i) { - for (var j = 0; j < w; ++j) { - matrix[y + i][x + j] = (bits[i] >> j) & 1; - reserved[y + i][x + j] = 1; - } - } - }; - blit(0, 0, 9, 9, [0x7f, 0x41, 0x5d, 0x5d, 0x5d, 0x41, 0x17f, 0x00, 0x40]); - blit(n - 8, 0, 8, 9, [0x100, 0x7f, 0x41, 0x5d, 0x5d, 0x5d, 0x41, 0x7f]); - blit(0, n - 8, 9, 8, [0xfe, 0x82, 0xba, 0xba, 0xba, 0x82, 0xfe, 0x00, 0x00]); - for (var i2 = 9; i2 < n - 8; ++i2) { - matrix[6][i2] = matrix[i2][6] = ~i2 & 1; - reserved[6][i2] = reserved[i2][6] = 1; - } - var aligns = v[2], - m = aligns[length]; - for (var i3 = 0; i3 < m; ++i3) { - var minj = (i3 === 0 || i3 === m - 1 ? 1 : 0), - maxj = (i3 === 0 ? m - 1 : m); - for (var j = minj; j < maxj; ++j) { - blit(aligns[i3], aligns[j], 5, 5, [0x1f, 0x11, 0x15, 0x11, 0x1f]); - } - } - if (needsverinfo(ver)) { - var code = augumentbch(ver, 6, 0x1f25, 12); - var k = 0; - for (var i4 = 0; i4 < 6; ++i4) { - for (var j2 = 0; j2 < 3; ++j2) { - matrix[i4][(n - 11) + j2] = matrix[(n - 11) + j2][i4] = (code >> k++) & 1; - reserved[i4][(n - 11) + j2] = reserved[(n - 11) + j2][i4] = 1; - } - } - } - return { - matrix: matrix, - reserved: reserved - }; -}; - -var putdata = function(matrix, reserved, buf) { - var n = matrix[length]; - var k = 0, - dir = -1; - for (var i = n - 1; i >= 0; i -= 2) { - if (i === 6) { - --i; - } - var jj = (dir < 0 ? n - 1 : 0); - for (var j = 0; j < n; ++j) { - for (var ii = i; ii > i - 2; --ii) { - if (!reserved[jj][ii]) { - matrix[jj][ii] = (buf[k >> 3] >> (~k & 7)) & 1; - ++k; - } - } - jj += dir; - } - dir = -dir; - } - return matrix; -}; - -var maskdata = function(matrix, reserved, mask) { - var maskf = MASKFUNCS[mask]; - var n = matrix[length]; - for (var i = 0; i < n; ++i) { - for (var j = 0; j < n; ++j) { - if (!reserved[i][j]) { - matrix[i][j] ^= maskf(i, j); - } - } - } - return matrix; -}; - -var putformatinfo = function(matrix, reserved, ecclevel, mask) { - var n = matrix[length]; - var code = augumentbch((ecclevel << 3) | mask, 5, 0x537, 10) ^ 0x5412; - for (var i = 0; i < 15; ++i) { - var r = [0, 1, 2, 3, 4, 5, 7, 8, n - 7, n - 6, n - 5, n - 4, n - 3, n - 2, n - 1][i]; - var c = [n - 1, n - 2, n - 3, n - 4, n - 5, n - 6, n - 7, n - 8, 7, 5, 4, 3, 2, 1, 0][i]; - matrix[r][8] = matrix[8][c] = (code >> i) & 1; - } - return matrix; -}; - -var evaluatematrix = function(matrix) { - var PENALTY_CONSECUTIVE = 3; - var PENALTY_TWOBYTWO = 3; - var PENALTY_FINDERLIKE = 40; - var PENALTY_DENSITY = 10; - var evaluategroup = function(groups) { - var score = 0; - for (var i = 0; i < groups[length]; ++i) { - if (groups[i] >= 5) { - score += PENALTY_CONSECUTIVE + (groups[i] - 5); - } - } - for (var i2 = 5; i2 < groups[length]; i2 += 2) { - var p = groups[i2]; - if ( - groups[i2 - 1] === p && - groups[i2 - 2] === 3 * p && - groups[i2 - 3] === p && - groups[i2 - 4] === p && - (groups[i2 - 5] >= 4 * p || groups[i2 + 1] >= 4 * p) - ) { - score += PENALTY_FINDERLIKE; - } - } - return score; - }; - var n = matrix[length]; - var score = 0, - nblacks = 0; - for (var i = 0; i < n; ++i) { - var row = matrix[i]; - var groups; - groups = [0]; - for (var j = 0; j < n;) { - var k; - for (k = 0; j < n && row[j]; ++k) { - ++j; - } - groups.push(k); - for (k = 0; j < n && !row[j]; ++k) { - ++j; - } - groups.push(k); - } - score += evaluategroup(groups); - groups = [0]; - for (var j2 = 0; j2 < n;) { - var k2; - for (k2 = 0; j2 < n && matrix[j2][i]; ++k2) { - ++j2; - } - groups.push(k2); - for (k2 = 0; j2 < n && !matrix[j2][i]; ++k2) { - ++j2; - } - groups.push(k2); - } - score += evaluategroup(groups); - var nextrow = matrix[i + 1] || []; - nblacks += row[0]; - for (var j3 = 1; j3 < n; ++j3) { - var p = row[j3]; - nblacks += p; - if (row[j3 - 1] === p && nextrow[j3] === p && nextrow[j3 - 1] === p) { - score += PENALTY_TWOBYTWO; - } - } - } - score += PENALTY_DENSITY * ((Math.abs(nblacks / n / n - 0.5) / 0.05) | 0); - return score; -}; - -var generate = function(data, ver, mode, ecclevel, mask) { - var v = VERSIONS[ver]; - var buf = encode(ver, mode, data, ndatabits(ver, ecclevel) >> 3); - buf = augumenteccs(buf, v[1][ecclevel], GF256_GENPOLY[v[0][ecclevel]]); - var result = makebasematrix(ver); - var matrix = result.matrix, - reserved = result.reserved; - putdata(matrix, reserved, buf); - if (mask < 0) { - maskdata(matrix, reserved, 0); - putformatinfo(matrix, reserved, ecclevel, 0); - var bestmask = 0, - bestscore = evaluatematrix(matrix); - maskdata(matrix, reserved, 0); - for (mask = 1; mask < 8; ++mask) { - maskdata(matrix, reserved, mask); - putformatinfo(matrix, reserved, ecclevel, mask); - var score = evaluatematrix(matrix); - if (bestscore > score) { - bestscore = score; - bestmask = mask; - } - maskdata(matrix, reserved, mask); - } - mask = bestmask; - } - maskdata(matrix, reserved, mask); - putformatinfo(matrix, reserved, ecclevel, mask); - return matrix; -}; - -var appendChild = "appendChild"; -var createElement = "createElement"; -var createElementNS = "createElementNS"; -var setAttributeNS = "setAttributeNS"; -var createRange = "createRange"; -var selectNodeContents = "selectNodeContents"; -var createContextualFragment = "createContextualFragment"; -var createDocumentFragment = "createDocumentFragment"; -var createTextNode = "createTextNode"; - -var QRCode = { - generate: function(data, settings) { - var options = settings || {}; - var MODES = { - "numeric": MODE_NUMERIC, - "alphanumeric": MODE_ALPHANUMERIC, - "octet": MODE_OCTET - }; - var ECCLEVELS = { - "L": ECCLEVEL_L, - "M": ECCLEVEL_M, - "Q": ECCLEVEL_Q, - "H": ECCLEVEL_H - }; - - var ver = options.version || -1; - var ecclevel = ECCLEVELS[(options.ecclevel || "L").toUpperCase()]; - var mode = options.mode ? MODES[options.mode.toLowerCase()] : -1; - var mask = "mask" in options ? options.mask : -1; - if (mode < 0) { - if (typeof data === "string") { - if (data.match(NUMERIC_REGEXP)) { - mode = MODE_NUMERIC; - } - else if (data.match(ALPHANUMERIC_OUT_REGEXP)) { - mode = MODE_ALPHANUMERIC; - } - else { - mode = MODE_OCTET; - } - } - else { - mode = MODE_OCTET; - } - } - else if (!(mode === MODE_NUMERIC || mode === MODE_ALPHANUMERIC || mode === MODE_OCTET)) { - throw "invalid or unsupported mode"; - } - data = validatedata(mode, data); - if (data === null) { - throw "invalid data format"; - } - if (ecclevel < 0 || ecclevel > 3) { - throw "invalid ECC level"; - } - if (ver < 0) { - for (ver = 1; ver <= 40; ++ver) { - if (data[length] <= getmaxdatalen(ver, mode, ecclevel)) { - break; - } - } - if (ver > 40) { - throw "too large data"; - } - } - else if (ver < 1 || ver > 40) { - throw "invalid version"; - } - if (mask !== -1 && (mask < 0 || mask > 8)) { - throw "invalid mask"; - } - return generate(data, ver, mode, ecclevel, mask); - }, - - generateSVG: function(data, settings) { - var options = settings || {}; - var fillcolor = options.fillcolor ? options.fillcolor : "#FFFFFF"; - var textcolor = options.textcolor ? options.textcolor : "#000000"; - var matrix = QRCode.generate(data, options); - var n = matrix[length]; - var modsize = Math.max(options.modulesize || 5, 0.5); - var margin = Math.max(options.margin ? options.margin : 4, 0.0); - var size = modsize * (n + 2 * margin); - /* var common = ' class= "fg"' + ' width="' + modsize + '" height="' + modsize + '"/>'; */ - var e = document[createElementNS]("http://www.w3.org/2000/svg", "svg"); - e[setAttributeNS](null, "viewBox", "0 0 " + size + " " + size); - e[setAttributeNS](null, "style", "shape-rendering:crispEdges"); - var qrcodeId = "qrcode" + Date.now(); - e[setAttributeNS](null, "id", qrcodeId); - var frag = document[createDocumentFragment](); - /* var svg = ['', '', ]; */ - var style = document[createElementNS]("http://www.w3.org/2000/svg", "style"); - style[appendChild](document[createTextNode]("#" + qrcodeId + " .bg{fill:" + fillcolor + "}#" + qrcodeId + " .fg{fill:" + textcolor + "}")); - /* style[setAttributeNS](null, "scoped", "scoped"); */ - frag[appendChild](style); - var createRect = function(c, f, x, y, s) { - var fg = document[createElementNS]("http://www.w3.org/2000/svg", "rect") || ""; - fg[setAttributeNS](null, "class", c); - fg[setAttributeNS](null, "fill", f); - fg[setAttributeNS](null, "x", x); - fg[setAttributeNS](null, "y", y); - fg[setAttributeNS](null, "width", s); - fg[setAttributeNS](null, "height", s); - return fg; - }; - frag[appendChild](createRect("bg", "none", 0, 0, size)); - var yo = margin * modsize; - for (var y = 0; y < n; ++y) { - var xo = margin * modsize; - for (var x = 0; x < n; ++x) { - if (matrix[y][x]) { - /* svg.push('' - ]; - for (var i = 0; i < n; ++i) { - html.push(""); - for (var j = 0; j < n; ++j) { - html.push(''); - } - html.push(""); - } - e.className = "qrcode"; - /* e.innerHTML = html.join("") + ""; */ - var range = document[createRange](); - range[selectNodeContents](e); - var frag = range[createContextualFragment](html.join("") + ""); - e[appendChild](frag); - return e; - }, - - generatePNG: function(data, settings) { - var options = settings || {}; - var fillcolor = options.fillcolor || "#FFFFFF"; - var textcolor = options.textcolor || "#000000"; - var matrix = QRCode.generate(data, options); - var modsize = Math.max(options.modulesize || 5, 0.5); - var margin = Math.max((options.margin !== null && options.margin !== undefined) ? options.margin : 4, 0.0); - var n = matrix[length]; - var size = modsize * (n + 2 * margin); - var canvas = document[createElement]("canvas"), - context; - canvas.width = canvas.height = size; - context = canvas.getContext("2d"); - if (!context) { - throw "canvas support is needed for PNG output"; - } - context.fillStyle = fillcolor; - context.fillRect(0, 0, size, size); - context.fillStyle = textcolor; - for (var i = 0; i < n; ++i) { - for (var j = 0; j < n; ++j) { - if (matrix[i][j]) { - context.fillRect(modsize * (margin + j), modsize * (margin + i), modsize, modsize); - } - } - } - return canvas.toDataURL(); - } -}; diff -Nru enigmail-2.1.6+ds1/stdlib/web-streams.jsm enigmail-2.2.4/stdlib/web-streams.jsm --- enigmail-2.1.6+ds1/stdlib/web-streams.jsm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/stdlib/web-streams.jsm 1970-01-01 00:00:00.000000000 +0000 @@ -1,1797 +0,0 @@ -/* - The MIT License (MIT) - - Copyright (c) 2018 Mattias Buelens - Copyright (c) 2016 Diwank Singh Tomer - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -/* - * This is a polyfill for web-streams, taken from - * https://github.com/MattiasBuelens/web-streams-polyfill - * - */ - - -var EXPORTED_SYMBOLS = ["TransformStream", "ReadableStream", "WritableStream"]; - - -let window = {}; - -(function(global) { - ! function(e, r) { - "object" == typeof exports && "undefined" != typeof module ? r(exports) : "function" == typeof define && define.amd ? define(["exports"], r) : r(e.WebStreamsPolyfill = {}) - }(this, function(e) { - "use strict"; - - function r(e, r) { - for (var t = 0; t < r.length; t++) { - var o = r[t]; - o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o) - } - } - - function t(e, t, o) { - return t && r(e.prototype, t), o && r(e, o), e - } - - function o() { - return (o = Object.assign || function(e) { - for (var r = 1; r < arguments.length; r++) { - var t = arguments[r]; - for (var o in t) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]) - } - return e - }).apply(this, arguments) - } - var n = Number.isInteger || function(e) { - return "number" == typeof e && isFinite(e) && Math.floor(e) === e - }, - i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? Symbol : function(e) { - return "Symbol(" + e + ")" - }; - - function a() {} - var s = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0, - l = Number.isNaN || function(e) { - return e != e - }; - var u = function(e, r) { - return e(r = { - exports: {} - }, r.exports), r.exports - }(function(e, r) { - var t = i('is "detached" for our purposes'); - - function o(e, r, t) { - if ("function" != typeof e) throw new TypeError("Argument is not a function"); - return Function.prototype.apply.call(e, r, t) - } - - function n(e, r, t) { - try { - return Promise.resolve(o(e, r, t)) - } - catch (e) { - return Promise.reject(e) - } - } - r.typeIsObject = function(e) { - return "object" == typeof e && null !== e || "function" == typeof e - }, r.createDataProperty = function(e, r, t) { - Object.defineProperty(e, r, { - value: t, - writable: !0, - enumerable: !0, - configurable: !0 - }) - }, r.createArrayFromList = function(e) { - return e.slice() - }, r.ArrayBufferCopy = function(e, r, t, o, n) { - new Uint8Array(e).set(new Uint8Array(t, o, n), r) - }, r.CreateIterResultObject = function(e, r) { - var t = {}; - return Object.defineProperty(t, "value", { - value: e, - enumerable: !0, - writable: !0, - configurable: !0 - }), Object.defineProperty(t, "done", { - value: r, - enumerable: !0, - writable: !0, - configurable: !0 - }), t - }, r.IsFiniteNonNegativeNumber = function(e) { - return !1 !== r.IsNonNegativeNumber(e) && e !== 1 / 0 - }, r.IsNonNegativeNumber = function(e) { - return "number" == typeof e && (!l(e) && !(e < 0)) - }, r.Call = o, r.CreateAlgorithmFromUnderlyingMethod = function(e, r, t, o) { - var i = e[r]; - if (void 0 !== i) { - if ("function" != typeof i) throw new TypeError(i + " is not a method"); - switch (t) { - case 0: - return function() { - return n(i, e, o) - }; - case 1: - return function(r) { - var t = [r].concat(o); - return n(i, e, t) - } - } - } - return function() { - return Promise.resolve() - } - }, r.InvokeOrNoop = function(e, r, t) { - var n = e[r]; - if (void 0 !== n) return o(n, e, t) - }, r.PromiseCall = n, r.TransferArrayBuffer = function(e) { - var r = e.slice(); - return Object.defineProperty(e, "byteLength", { - get: function() { - return 0 - } - }), e[t] = !0, r - }, r.IsDetachedBuffer = function(e) { - return t in e - }, r.ValidateAndNormalizeHighWaterMark = function(e) { - if (e = Number(e), l(e) || e < 0) throw new RangeError("highWaterMark property of a queuing strategy must be non-negative and non-NaN"); - return e - }, r.MakeSizeAlgorithmFromSizeFunction = function(e) { - if (void 0 === e) return function() { - return 1 - }; - if ("function" != typeof e) throw new TypeError("size property of a queuing strategy must be a function"); - return function(r) { - return e(r) - } - } - }), - c = { - default: u, - __moduleExports: u, - typeIsObject: u.typeIsObject, - createDataProperty: u.createDataProperty, - createArrayFromList: u.createArrayFromList, - ArrayBufferCopy: u.ArrayBufferCopy, - CreateIterResultObject: u.CreateIterResultObject, - IsFiniteNonNegativeNumber: u.IsFiniteNonNegativeNumber, - IsNonNegativeNumber: u.IsNonNegativeNumber, - Call: u.Call, - CreateAlgorithmFromUnderlyingMethod: u.CreateAlgorithmFromUnderlyingMethod, - InvokeOrNoop: u.InvokeOrNoop, - PromiseCall: u.PromiseCall, - TransferArrayBuffer: u.TransferArrayBuffer, - IsDetachedBuffer: u.IsDetachedBuffer, - ValidateAndNormalizeHighWaterMark: u.ValidateAndNormalizeHighWaterMark, - MakeSizeAlgorithmFromSizeFunction: u.MakeSizeAlgorithmFromSizeFunction - }; - - function d() {} - d.AssertionError = a; - var f = { - default: d - }, - _ = f && d || f, - m = function(e) { - e && e instanceof _.AssertionError && setTimeout(function() { - throw e - }, 0) - }, - h = { - rethrowAssertionErrorRejection: m - }, - b = { - default: h, - __moduleExports: h, - rethrowAssertionErrorRejection: m - }, - v = c && u || c, - y = v.IsFiniteNonNegativeNumber, - p = function(e) { - var r = e._queue.shift(); - return e._queueTotalSize -= r.size, e._queueTotalSize < 0 && (e._queueTotalSize = 0), r.value - }, - w = function(e, r, t) { - if (t = Number(t), !y(t)) throw new RangeError("Size must be a finite, non-NaN, non-negative number."); - e._queue.push({ - value: r, - size: t - }), e._queueTotalSize += t - }, - g = function(e) { - return e._queue[0].value - }, - S = function(e) { - e._queue = [], e._queueTotalSize = 0 - }, - P = { - DequeueValue: p, - EnqueueValueWithSize: w, - PeekQueueValue: g, - ResetQueue: S - }, - R = { - default: P, - __moduleExports: P, - DequeueValue: p, - EnqueueValueWithSize: w, - PeekQueueValue: g, - ResetQueue: S - }, - q = { - default: a - }, - T = q && a || q, - j = b && h || b, - C = R && P || R, - E = (T("streams:writable-stream:verbose"), v.CreateAlgorithmFromUnderlyingMethod), - W = v.InvokeOrNoop, - A = v.ValidateAndNormalizeHighWaterMark, - k = (v.IsNonNegativeNumber, v.MakeSizeAlgorithmFromSizeFunction), - O = v.typeIsObject, - z = j.rethrowAssertionErrorRejection, - B = C.DequeueValue, - I = C.EnqueueValueWithSize, - F = C.PeekQueueValue, - N = C.ResetQueue, - D = i("[[AbortSteps]]"), - M = i("[[ErrorSteps]]"), - L = function() { - function e(e, r) { - void 0 === e && (e = {}); - var t = void 0 === r ? {} : r, - o = t.size, - n = t.highWaterMark, - i = void 0 === n ? 1 : n; - if (x(this), void 0 !== e.type) throw new RangeError("Invalid type is specified"); - var a = k(o); - ! function(e, r, t, o) { - var n = Object.create(le.prototype); - var i = E(r, "write", 1, [n]), - a = E(r, "close", 0, []), - s = E(r, "abort", 1, []); - ue(e, n, function() { - return W(r, "start", [n]) - }, i, a, s, t, o) - }(this, e, i = A(i), a) - } - var r = e.prototype; - return r.abort = function(e) { - return !1 === Q(this) ? Promise.reject(he("abort")) : !0 === Y(this) ? Promise.reject(new TypeError("Cannot abort a stream that already has a writer")) : U(this, e) - }, r.getWriter = function() { - if (!1 === Q(this)) throw he("getWriter"); - return H(this) - }, t(e, [{ - key: "locked", - get: function() { - if (!1 === Q(this)) throw he("locked"); - return Y(this) - } - }]), e - }(), - V = { - AcquireWritableStreamDefaultWriter: H, - CreateWritableStream: function(e, r, t, o, n, i) { - void 0 === n && (n = 1); - void 0 === i && (i = function() { - return 1 - }); - var a = Object.create(L.prototype); - x(a); - var s = Object.create(le.prototype); - return ue(a, s, e, r, t, o, n, i), a - }, - IsWritableStream: Q, - IsWritableStreamLocked: Y, - WritableStream: L, - WritableStreamAbort: U, - WritableStreamDefaultControllerErrorIfNeeded: fe, - WritableStreamDefaultWriterCloseWithErrorPropagation: function(e) { - var r = e._ownerWritableStream, - t = r._state; - if (!0 === Z(r) || "closed" === t) return Promise.resolve(); - if ("errored" === t) return Promise.reject(r._storedError); - return oe(e) - }, - WritableStreamDefaultWriterRelease: ae, - WritableStreamDefaultWriterWrite: se, - WritableStreamCloseQueuedOrInFlight: Z - }; - - function H(e) { - return new re(e) - } - - function x(e) { - e._state = "writable", e._storedError = void 0, e._writer = void 0, e._writableStreamController = void 0, e._writeRequests = [], e._inFlightWriteRequest = void 0, e._closeRequest = void 0, e._inFlightCloseRequest = void 0, e._pendingAbortRequest = void 0, e._backpressure = !1 - } - - function Q(e) { - return !!O(e) && !!Object.prototype.hasOwnProperty.call(e, "_writableStreamController") - } - - function Y(e) { - return void 0 !== e._writer - } - - function U(e, r) { - var t = e._state; - if ("closed" === t || "errored" === t) return Promise.resolve(void 0); - if (void 0 !== e._pendingAbortRequest) return e._pendingAbortRequest._promise; - var o = !1; - "erroring" === t && (o = !0, r = void 0); - var n = new Promise(function(t, n) { - e._pendingAbortRequest = { - _resolve: t, - _reject: n, - _reason: r, - _wasAlreadyErroring: o - } - }); - return e._pendingAbortRequest._promise = n, !1 === o && J(e, r), n - } - - function G(e, r) { - "writable" !== e._state ? K(e) : J(e, r) - } - - function J(e, r) { - var t = e._writableStreamController; - e._state = "erroring", e._storedError = r; - var o = e._writer; - void 0 !== o && ie(o, r), !1 === function(e) { - if (void 0 === e._inFlightWriteRequest && void 0 === e._inFlightCloseRequest) return !1; - return !0 - }(e) && !0 === t._started && K(e) - } - - function K(e) { - e._state = "errored", e._writableStreamController[M](); - for (var r = e._storedError, t = 0, o = e._writeRequests; t < o.length; t++) { - o[t]._reject(r) - } - if (e._writeRequests = [], void 0 !== e._pendingAbortRequest) { - var n = e._pendingAbortRequest; - if (e._pendingAbortRequest = void 0, !0 === n._wasAlreadyErroring) return n._reject(r), void $(e); - e._writableStreamController[D](n._reason).then(function() { - n._resolve(), $(e) - }, function(r) { - n._reject(r), $(e) - }) - } - else $(e) - } - - function X(e) { - e._inFlightCloseRequest._resolve(void 0), e._inFlightCloseRequest = void 0, "erroring" === e._state && (e._storedError = void 0, void 0 !== e._pendingAbortRequest && (e._pendingAbortRequest._resolve(), e._pendingAbortRequest = void 0)), e._state = "closed"; - var r = e._writer; - void 0 !== r && function(e) { - e._closedPromise_resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "resolved" - }(r) - } - - function Z(e) { - return void 0 !== e._closeRequest || void 0 !== e._inFlightCloseRequest - } - - function $(e) { - void 0 !== e._closeRequest && (e._closeRequest._reject(e._storedError), e._closeRequest = void 0); - var r = e._writer; - void 0 !== r && (pe(r, e._storedError), r._closedPromise.catch(function() {})) - } - - function ee(e, r) { - var t = e._writer; - void 0 !== t && r !== e._backpressure && (!0 === r ? function(e) { - e._readyPromise = new Promise(function(r, t) { - e._readyPromise_resolve = r, e._readyPromise_reject = t - }), e._readyPromiseState = "pending" - }(t) : Se(t)), e._backpressure = r - } - var re = function() { - function e(e) { - if (!1 === Q(e)) throw new TypeError("WritableStreamDefaultWriter can only be constructed with a WritableStream instance"); - if (!0 === Y(e)) throw new TypeError("This stream has already been locked for exclusive writing by another writer"); - this._ownerWritableStream = e, e._writer = this; - var r = e._state; - if ("writable" === r) !1 === Z(e) && !0 === e._backpressure ? function(e) { - e._readyPromise = new Promise(function(r, t) { - e._readyPromise_resolve = r, e._readyPromise_reject = t - }), e._readyPromiseState = "pending" - }(this) : ge(this), ye(this); - else if ("erroring" === r) we(this, e._storedError), this._readyPromise.catch(function() {}), ye(this); - else if ("closed" === r) ge(this), - function(e) { - e._closedPromise = Promise.resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "resolved" - }(this); - else { - var t = e._storedError; - we(this, t), this._readyPromise.catch(function() {}), - function(e, r) { - e._closedPromise = Promise.reject(r), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "rejected" - }(this, t), this._closedPromise.catch(function() {}) - } - } - var r = e.prototype; - return r.abort = function(e) { - return !1 === te(this) ? Promise.reject(be("abort")) : void 0 === this._ownerWritableStream ? Promise.reject(ve("abort")) : function(e, r) { - return U(e._ownerWritableStream, r) - }(this, e) - }, r.close = function() { - if (!1 === te(this)) return Promise.reject(be("close")); - var e = this._ownerWritableStream; - return void 0 === e ? Promise.reject(ve("close")) : !0 === Z(e) ? Promise.reject(new TypeError("cannot close an already-closing stream")) : oe(this) - }, r.releaseLock = function() { - if (!1 === te(this)) throw be("releaseLock"); - void 0 !== this._ownerWritableStream && ae(this) - }, r.write = function(e) { - return !1 === te(this) ? Promise.reject(be("write")) : void 0 === this._ownerWritableStream ? Promise.reject(ve("write to")) : se(this, e) - }, t(e, [{ - key: "closed", - get: function() { - return !1 === te(this) ? Promise.reject(be("closed")) : this._closedPromise - } - }, { - key: "desiredSize", - get: function() { - if (!1 === te(this)) throw be("desiredSize"); - if (void 0 === this._ownerWritableStream) throw ve("desiredSize"); - return function(e) { - var r = e._ownerWritableStream, - t = r._state; - if ("errored" === t || "erroring" === t) return null; - if ("closed" === t) return 0; - return ce(r._writableStreamController) - }(this) - } - }, { - key: "ready", - get: function() { - return !1 === te(this) ? Promise.reject(be("ready")) : this._readyPromise - } - }]), e - }(); - - function te(e) { - return !!O(e) && !!Object.prototype.hasOwnProperty.call(e, "_ownerWritableStream") - } - - function oe(e) { - var r = e._ownerWritableStream, - t = r._state; - if ("closed" === t || "errored" === t) return Promise.reject(new TypeError("The stream (in " + t + " state) is not in the writable state and cannot be closed")); - var o = new Promise(function(e, t) { - var o = { - _resolve: e, - _reject: t - }; - r._closeRequest = o - }); - return !0 === r._backpressure && "writable" === t && Se(e), - function(e) { - I(e, "close", 0), de(e) - }(r._writableStreamController), o - } - - function ne(e, r) { - "pending" === e._closedPromiseState ? pe(e, r) : function(e, r) { - e._closedPromise = Promise.reject(r), e._closedPromiseState = "rejected" - }(e, r), e._closedPromise.catch(function() {}) - } - - function ie(e, r) { - "pending" === e._readyPromiseState ? function(e, r) { - e._readyPromise_reject(r), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "rejected" - }(e, r) : function(e, r) { - e._readyPromise = Promise.reject(r), e._readyPromiseState = "rejected" - }(e, r), e._readyPromise.catch(function() {}) - } - - function ae(e) { - var r = e._ownerWritableStream, - t = new TypeError("Writer was released and can no longer be used to monitor the stream's closedness"); - ie(e, t), ne(e, t), r._writer = void 0, e._ownerWritableStream = void 0 - } - - function se(e, r) { - var t = e._ownerWritableStream, - o = t._writableStreamController, - n = function(e, r) { - try { - return e._strategySizeAlgorithm(r) - } - catch (r) { - return fe(e, r), 1 - } - }(o, r); - if (t !== e._ownerWritableStream) return Promise.reject(ve("write to")); - var i = t._state; - if ("errored" === i) return Promise.reject(t._storedError); - if (!0 === Z(t) || "closed" === i) return Promise.reject(new TypeError("The stream is closing or closed and cannot be written to")); - if ("erroring" === i) return Promise.reject(t._storedError); - var a = function(e) { - return new Promise(function(r, t) { - var o = { - _resolve: r, - _reject: t - }; - e._writeRequests.push(o) - }) - }(t); - return function(e, r, t) { - var o = { - chunk: r - }; - try { - I(e, o, t) - } - catch (r) { - return void fe(e, r) - } - var n = e._controlledWritableStream; - if (!1 === Z(n) && "writable" === n._state) { - var i = _e(e); - ee(n, i) - } - de(e) - }(o, r, n), a - } - var le = function() { - function e() { - throw new TypeError("WritableStreamDefaultController cannot be constructed explicitly") - } - var r = e.prototype; - return r.error = function(e) { - if (!1 === function(e) { - if (!O(e)) return !1; - if (!Object.prototype.hasOwnProperty.call(e, "_controlledWritableStream")) return !1; - return !0 - }(this)) throw new TypeError("WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController"); - "writable" === this._controlledWritableStream._state && me(this, e) - }, r[D] = function(e) { - return this._abortAlgorithm(e) - }, r[M] = function() { - N(this) - }, e - }(); - - function ue(e, r, t, o, n, i, a, s) { - r._controlledWritableStream = e, e._writableStreamController = r, r._queue = void 0, r._queueTotalSize = void 0, N(r), r._started = !1, r._strategySizeAlgorithm = s, r._strategyHWM = a, r._writeAlgorithm = o, r._closeAlgorithm = n, r._abortAlgorithm = i; - var l = _e(r); - ee(e, l); - var u = t(); - Promise.resolve(u).then(function() { - r._started = !0, de(r) - }, function(t) { - r._started = !0, G(e, t) - }).catch(z) - } - - function ce(e) { - return e._strategyHWM - e._queueTotalSize - } - - function de(e) { - var r = e._controlledWritableStream; - if (!1 !== e._started && void 0 === r._inFlightWriteRequest) { - var t = r._state; - if ("closed" !== t && "errored" !== t) - if ("erroring" !== t) { - if (0 !== e._queue.length) { - var o = F(e); - "close" === o ? function(e) { - var r = e._controlledWritableStream; - (function(e) { - e._inFlightCloseRequest = e._closeRequest, e._closeRequest = void 0 - })(r), B(e), e._closeAlgorithm().then(function() { - X(r) - }, function(e) { - ! function(e, r) { - e._inFlightCloseRequest._reject(r), e._inFlightCloseRequest = void 0, void 0 !== e._pendingAbortRequest && (e._pendingAbortRequest._reject(r), e._pendingAbortRequest = void 0), G(e, r) - }(r, e) - }).catch(z) - }(e) : function(e, r) { - var t = e._controlledWritableStream; - (function(e) { - e._inFlightWriteRequest = e._writeRequests.shift() - })(t), e._writeAlgorithm(r).then(function() { - ! function(e) { - e._inFlightWriteRequest._resolve(void 0), e._inFlightWriteRequest = void 0 - }(t); - var r = t._state; - if (B(e), !1 === Z(t) && "writable" === r) { - var o = _e(e); - ee(t, o) - } - de(e) - }, function(e) { - ! function(e, r) { - e._inFlightWriteRequest._reject(r), e._inFlightWriteRequest = void 0, G(e, r) - }(t, e) - }).catch(z) - }(e, o.chunk) - } - } - else K(r) - } - } - - function fe(e, r) { - "writable" === e._controlledWritableStream._state && me(e, r) - } - - function _e(e) { - return ce(e) <= 0 - } - - function me(e, r) { - J(e._controlledWritableStream, r) - } - - function he(e) { - return new TypeError("WritableStream.prototype." + e + " can only be used on a WritableStream") - } - - function be(e) { - return new TypeError("WritableStreamDefaultWriter.prototype." + e + " can only be used on a WritableStreamDefaultWriter") - } - - function ve(e) { - return new TypeError("Cannot " + e + " a stream using a released writer") - } - - function ye(e) { - e._closedPromise = new Promise(function(r, t) { - e._closedPromise_resolve = r, e._closedPromise_reject = t, e._closedPromiseState = "pending" - }) - } - - function pe(e, r) { - e._closedPromise_reject(r), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0, e._closedPromiseState = "rejected" - } - - function we(e, r) { - e._readyPromise = Promise.reject(r), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "rejected" - } - - function ge(e) { - e._readyPromise = Promise.resolve(void 0), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "fulfilled" - } - - function Se(e) { - e._readyPromise_resolve(void 0), e._readyPromise_resolve = void 0, e._readyPromise_reject = void 0, e._readyPromiseState = "fulfilled" - } - var Pe = V.WritableStream, - Re = v.ArrayBufferCopy, - qe = v.CreateAlgorithmFromUnderlyingMethod, - Te = v.CreateIterResultObject, - je = v.IsFiniteNonNegativeNumber, - Ce = v.InvokeOrNoop, - Ee = v.IsDetachedBuffer, - We = v.TransferArrayBuffer, - Ae = v.ValidateAndNormalizeHighWaterMark, - ke = (v.IsNonNegativeNumber, v.MakeSizeAlgorithmFromSizeFunction), - Oe = v.createArrayFromList, - ze = v.typeIsObject, - Be = j.rethrowAssertionErrorRejection, - Ie = C.DequeueValue, - Fe = C.EnqueueValueWithSize, - Ne = C.ResetQueue, - De = V.AcquireWritableStreamDefaultWriter, - Me = V.IsWritableStream, - Le = V.IsWritableStreamLocked, - Ve = V.WritableStreamAbort, - He = V.WritableStreamDefaultWriterCloseWithErrorPropagation, - xe = V.WritableStreamDefaultWriterRelease, - Qe = V.WritableStreamDefaultWriterWrite, - Ye = V.WritableStreamCloseQueuedOrInFlight, - Ue = i("[[CancelSteps]]"), - Ge = i("[[PullSteps]]"), - Je = function() { - function e(e, r) { - void 0 === e && (e = {}); - var t = void 0 === r ? {} : r, - o = t.size, - i = t.highWaterMark; - $e(this); - var a = e.type; - if ("bytes" === String(a)) { - if (void 0 === i && (i = 0), i = Ae(i), void 0 !== o) throw new RangeError("The strategy for a byte stream cannot have a size function"); - ! function(e, r, t) { - var o = Object.create(Ar.prototype); - var i = qe(r, "pull", 0, [o]), - a = qe(r, "cancel", 1, []), - s = r.autoAllocateChunkSize; - if (void 0 !== s && (!1 === n(s) || s <= 0)) throw new RangeError("autoAllocateChunkSize must be a positive integer"); - Gr(e, o, function() { - return Ce(r, "start", [o]) - }, i, a, t, s) - }(this, e, i) - } - else { - if (void 0 !== a) throw new RangeError("Invalid type is specified"); - void 0 === i && (i = 1), - function(e, r, t, o) { - var n = Object.create(wr.prototype); - var i = qe(r, "pull", 0, [n]), - a = qe(r, "cancel", 1, []); - Er(e, n, function() { - return Ce(r, "start", [n]) - }, i, a, t, o) - }(this, e, i = Ae(i), ke(o)) - } - } - var r = e.prototype; - return r.cancel = function(e) { - return !1 === er(this) ? Promise.reject(Jr("cancel")) : !0 === rr(this) ? Promise.reject(new TypeError("Cannot cancel a stream that already has a reader")) : nr(this, e) - }, r.getReader = function(e) { - var r = (void 0 === e ? {} : e).mode; - if (!1 === er(this)) throw Jr("getReader"); - if (void 0 === r) return Xe(this); - if ("byob" === (r = String(r))) return function(e) { - return new _r(e) - }(this); - throw new RangeError("Invalid mode is specified") - }, r.pipeThrough = function(e, r) { - var t = e.writable, - o = e.readable; - if (void 0 === t || void 0 === o) throw new TypeError("readable and writable arguments must be defined"); - return function(e) { - try { - Promise.prototype.then.call(e, void 0, function() {}) - } - catch (e) {} - }(this.pipeTo(t, r)), o - }, r.pipeTo = function(e, r) { - var t = this, - o = void 0 === r ? {} : r, - n = o.preventClose, - i = o.preventAbort, - a = o.preventCancel; - if (!1 === er(this)) return Promise.reject(Jr("pipeTo")); - if (!1 === Me(e)) return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream")); - if (n = Boolean(n), i = Boolean(i), a = Boolean(a), !0 === rr(this)) return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")); - if (!0 === Le(e)) return Promise.reject(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")); - var s = Xe(this), - l = De(e), - u = !1, - c = Promise.resolve(); - return new Promise(function(r, o) { - if (_(t, s._closedPromise, function(r) { - !1 === i ? m(function() { - return Ve(e, r) - }, !0, r) : h(!0, r) - }), _(e, l._closedPromise, function(e) { - !1 === a ? m(function() { - return nr(t, e) - }, !0, e) : h(!0, e) - }), function(e, r, t) { - "closed" === e._state ? t() : r.then(t).catch(Be) - }(t, s._closedPromise, function() { - !1 === n ? m(function() { - return He(l) - }) : h() - }), !0 === Ye(e) || "closed" === e._state) { - var d = new TypeError("the destination writable stream closed before all data could be piped to it"); - !1 === a ? m(function() { - return nr(t, d) - }, !0, d) : h(!0, d) - } - - function f() { - var e = c; - return c.then(function() { - return e !== c ? f() : void 0 - }) - } - - function _(e, r, t) { - "errored" === e._state ? t(e._storedError) : r.catch(t).catch(Be) - } - - function m(r, t, o) { - function n() { - r().then(function() { - return b(t, o) - }, function(e) { - return b(!0, e) - }).catch(Be) - }!0 !== u && (u = !0, "writable" === e._state && !1 === Ye(e) ? f().then(n) : n()) - } - - function h(r, t) { - !0 !== u && (u = !0, "writable" === e._state && !1 === Ye(e) ? f().then(function() { - return b(r, t) - }).catch(Be) : b(r, t)) - } - - function b(e, t) { - xe(l), yr(s), e ? o(t) : r(void 0) - }(function e() { - return !0 === u ? Promise.resolve() : l._readyPromise.then(function() { - return pr(s).then(function(e) { - var r = e.value; - !0 !== e.done && (c = Qe(l, r).catch(function() {})) - }) - }).then(e) - })().catch(function(e) { - c = Promise.resolve(), Be(e) - }) - }) - }, r.tee = function() { - if (!1 === er(this)) throw Jr("tee"); - var e = function(e, r) { - var t, o, n, i, a, s = Xe(e), - l = !1, - u = !1, - c = !1, - d = new Promise(function(e) { - a = e - }); - - function f() { - return pr(s).then(function(e) { - var r = e.value, - t = e.done; - if (!0 === t && !1 === l && (!1 === u && Rr(n._readableStreamController), !1 === c && Rr(i._readableStreamController), l = !0), !0 !== l) { - var o = r, - a = r; - !1 === u && qr(n._readableStreamController, o), !1 === c && qr(i._readableStreamController, a) - } - }) - } - - function _() {} - return n = Ze(_, f, function(r) { - if (u = !0, t = r, !0 === c) { - var n = Oe([t, o]), - i = nr(e, n); - a(i) - } - return d - }), i = Ze(_, f, function(r) { - if (c = !0, o = r, !0 === u) { - var n = Oe([t, o]), - i = nr(e, n); - a(i) - } - return d - }), s._closedPromise.catch(function(e) { - !0 !== l && (Tr(n._readableStreamController, e), Tr(i._readableStreamController, e), l = !0) - }), [n, i] - }(this); - return Oe(e) - }, t(e, [{ - key: "locked", - get: function() { - if (!1 === er(this)) throw Jr("locked"); - return rr(this) - } - }]), e - }(), - Ke = { - CreateReadableByteStream: function(e, r, t, o, n) { - void 0 === o && (o = 0); - void 0 === n && (n = void 0); - var i = Object.create(Je.prototype); - $e(i); - var a = Object.create(Ar.prototype); - return Gr(i, a, e, r, t, o, n), i - }, - CreateReadableStream: Ze, - ReadableStream: Je, - IsReadableStreamDisturbed: function(e) { - return e._disturbed - }, - ReadableStreamDefaultControllerClose: Rr, - ReadableStreamDefaultControllerEnqueue: qr, - ReadableStreamDefaultControllerError: Tr, - ReadableStreamDefaultControllerGetDesiredSize: jr, - ReadableStreamDefaultControllerHasBackpressure: function(e) { - if (!0 === Pr(e)) return !1; - return !0 - }, - ReadableStreamDefaultControllerCanCloseOrEnqueue: Cr - }; - - function Xe(e) { - return new fr(e) - } - - function Ze(e, r, t, o, n) { - void 0 === o && (o = 1), void 0 === n && (n = function() { - return 1 - }); - var i = Object.create(Je.prototype); - return $e(i), Er(i, Object.create(wr.prototype), e, r, t, o, n), i - } - - function $e(e) { - e._state = "readable", e._reader = void 0, e._storedError = void 0, e._disturbed = !1 - } - - function er(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_readableStreamController") - } - - function rr(e) { - return void 0 !== e._reader - } - - function tr(e) { - return new Promise(function(r, t) { - var o = { - _resolve: r, - _reject: t - }; - e._reader._readIntoRequests.push(o) - }) - } - - function or(e) { - return new Promise(function(r, t) { - var o = { - _resolve: r, - _reject: t - }; - e._reader._readRequests.push(o) - }) - } - - function nr(e, r) { - return e._disturbed = !0, "closed" === e._state ? Promise.resolve(void 0) : "errored" === e._state ? Promise.reject(e._storedError) : (ir(e), e._readableStreamController[Ue](r).then(function() {})) - } - - function ir(e) { - e._state = "closed"; - var r = e._reader; - if (void 0 !== r) { - if (!0 === hr(r)) { - for (var t = 0, o = r._readRequests; t < o.length; t++) { - (0, o[t]._resolve)(Te(void 0, !0)) - } - r._readRequests = [] - }! function(e) { - e._closedPromise_resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0 - }(r) - } - } - - function ar(e, r) { - e._state = "errored", e._storedError = r; - var t = e._reader; - if (void 0 !== t) { - if (!0 === hr(t)) { - for (var o = 0, n = t._readRequests; o < n.length; o++) { - n[o]._reject(r) - } - t._readRequests = [] - } - else { - for (var i = 0, a = t._readIntoRequests; i < a.length; i++) { - a[i]._reject(r) - } - t._readIntoRequests = [] - } - Zr(t, r), t._closedPromise.catch(function() {}) - } - } - - function sr(e, r, t) { - e._reader._readRequests.shift()._resolve(Te(r, t)) - } - - function lr(e) { - return e._reader._readIntoRequests.length - } - - function ur(e) { - return e._reader._readRequests.length - } - - function cr(e) { - var r = e._reader; - return void 0 !== r && !1 !== mr(r) - } - - function dr(e) { - var r = e._reader; - return void 0 !== r && !1 !== hr(r) - } - var fr = function() { - function e(e) { - if (!1 === er(e)) throw new TypeError("ReadableStreamDefaultReader can only be constructed with a ReadableStream instance"); - if (!0 === rr(e)) throw new TypeError("This stream has already been locked for exclusive reading by another reader"); - br(this, e), this._readRequests = [] - } - var r = e.prototype; - return r.cancel = function(e) { - return !1 === hr(this) ? Promise.reject(Xr("cancel")) : void 0 === this._ownerReadableStream ? Promise.reject(Kr("cancel")) : vr(this, e) - }, r.read = function() { - return !1 === hr(this) ? Promise.reject(Xr("read")) : void 0 === this._ownerReadableStream ? Promise.reject(Kr("read from")) : pr(this) - }, r.releaseLock = function() { - if (!1 === hr(this)) throw Xr("releaseLock"); - if (void 0 !== this._ownerReadableStream) { - if (this._readRequests.length > 0) throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled"); - yr(this) - } - }, t(e, [{ - key: "closed", - get: function() { - return !1 === hr(this) ? Promise.reject(Xr("closed")) : this._closedPromise - } - }]), e - }(), - _r = function() { - function e(e) { - if (!er(e)) throw new TypeError("ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a byte source"); - if (!1 === kr(e._readableStreamController)) throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source"); - if (rr(e)) throw new TypeError("This stream has already been locked for exclusive reading by another reader"); - br(this, e), this._readIntoRequests = [] - } - var r = e.prototype; - return r.cancel = function(e) { - return mr(this) ? void 0 === this._ownerReadableStream ? Promise.reject(Kr("cancel")) : vr(this, e) : Promise.reject($r("cancel")) - }, r.read = function(e) { - return mr(this) ? void 0 === this._ownerReadableStream ? Promise.reject(Kr("read from")) : ArrayBuffer.isView(e) ? !0 === Ee(e.buffer) ? Promise.reject(new TypeError("Cannot read into a view onto a detached ArrayBuffer")) : 0 === e.byteLength ? Promise.reject(new TypeError("view must have non-zero byteLength")) : function(e, r) { - var t = e._ownerReadableStream; - if (t._disturbed = !0, "errored" === t._state) return Promise.reject(t._storedError); - return function(e, r) { - var t = e._controlledReadableByteStream, - o = 1; - r.constructor !== DataView && (o = r.constructor.BYTES_PER_ELEMENT); - var n = r.constructor, - i = { - buffer: We(r.buffer), - byteOffset: r.byteOffset, - byteLength: r.byteLength, - bytesFilled: 0, - elementSize: o, - ctor: n, - readerType: "byob" - }; - if (e._pendingPullIntos.length > 0) return e._pendingPullIntos.push(i), tr(t); - if ("closed" === t._state) { - var a = new r.constructor(i.buffer, i.byteOffset, 0); - return Promise.resolve(Te(a, !0)) - } - if (e._queueTotalSize > 0) { - if (!0 === Dr(e, i)) { - var s = Fr(i); - return Lr(e), Promise.resolve(Te(s, !1)) - } - if (!0 === e._closeRequested) { - var l = new TypeError("Insufficient bytes to fill elements in the given buffer"); - return Yr(e, l), Promise.reject(l) - } - } - e._pendingPullIntos.push(i); - var u = tr(t); - return zr(e), u - }(t._readableStreamController, r) - }(this, e) : Promise.reject(new TypeError("view must be an array buffer view")) : Promise.reject($r("read")) - }, r.releaseLock = function() { - if (!mr(this)) throw $r("releaseLock"); - if (void 0 !== this._ownerReadableStream) { - if (this._readIntoRequests.length > 0) throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled"); - yr(this) - } - }, t(e, [{ - key: "closed", - get: function() { - return mr(this) ? this._closedPromise : Promise.reject($r("closed")) - } - }]), e - }(); - - function mr(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_readIntoRequests") - } - - function hr(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_readRequests") - } - - function br(e, r) { - e._ownerReadableStream = r, r._reader = e, "readable" === r._state ? function(e) { - e._closedPromise = new Promise(function(r, t) { - e._closedPromise_resolve = r, e._closedPromise_reject = t - }) - }(e) : "closed" === r._state ? function(e) { - e._closedPromise = Promise.resolve(void 0), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0 - }(e) : (! function(e, r) { - e._closedPromise = Promise.reject(r), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0 - }(e, r._storedError), e._closedPromise.catch(function() {})) - } - - function vr(e, r) { - return nr(e._ownerReadableStream, r) - } - - function yr(e) { - "readable" === e._ownerReadableStream._state ? Zr(e, new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")) : function(e, r) { - e._closedPromise = Promise.reject(r) - }(e, new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")), e._closedPromise.catch(function() {}), e._ownerReadableStream._reader = void 0, e._ownerReadableStream = void 0 - } - - function pr(e) { - var r = e._ownerReadableStream; - return r._disturbed = !0, "closed" === r._state ? Promise.resolve(Te(void 0, !0)) : "errored" === r._state ? Promise.reject(r._storedError) : r._readableStreamController[Ge]() - } - var wr = function() { - function e() { - throw new TypeError - } - var r = e.prototype; - return r.close = function() { - if (!1 === gr(this)) throw et("close"); - if (!1 === Cr(this)) throw new TypeError("The stream is not in a state that permits close"); - Rr(this) - }, r.enqueue = function(e) { - if (!1 === gr(this)) throw et("enqueue"); - if (!1 === Cr(this)) throw new TypeError("The stream is not in a state that permits enqueue"); - return qr(this, e) - }, r.error = function(e) { - if (!1 === gr(this)) throw et("error"); - Tr(this, e) - }, r[Ue] = function(e) { - return Ne(this), this._cancelAlgorithm(e) - }, r[Ge] = function() { - var e = this._controlledReadableStream; - if (this._queue.length > 0) { - var r = Ie(this); - return !0 === this._closeRequested && 0 === this._queue.length ? ir(e) : Sr(this), Promise.resolve(Te(r, !1)) - } - var t = or(e); - return Sr(this), t - }, t(e, [{ - key: "desiredSize", - get: function() { - if (!1 === gr(this)) throw et("desiredSize"); - return jr(this) - } - }]), e - }(); - - function gr(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledReadableStream") - } - - function Sr(e) { - !1 !== Pr(e) && (!0 !== e._pulling ? (e._pulling = !0, e._pullAlgorithm().then(function() { - if (e._pulling = !1, !0 === e._pullAgain) return e._pullAgain = !1, Sr(e) - }, function(r) { - Tr(e, r) - }).catch(Be)) : e._pullAgain = !0) - } - - function Pr(e) { - var r = e._controlledReadableStream; - return !1 !== Cr(e) && (!1 !== e._started && (!0 === rr(r) && ur(r) > 0 || jr(e) > 0)) - } - - function Rr(e) { - var r = e._controlledReadableStream; - e._closeRequested = !0, 0 === e._queue.length && ir(r) - } - - function qr(e, r) { - var t = e._controlledReadableStream; - if (!0 === rr(t) && ur(t) > 0) sr(t, r, !1); - else { - var o; - try { - o = e._strategySizeAlgorithm(r) - } - catch (r) { - throw Tr(e, r), r - } - try { - Fe(e, r, o) - } - catch (r) { - throw Tr(e, r), r - } - } - Sr(e) - } - - function Tr(e, r) { - var t = e._controlledReadableStream; - "readable" === t._state && (Ne(e), ar(t, r)) - } - - function jr(e) { - var r = e._controlledReadableStream._state; - return "errored" === r ? null : "closed" === r ? 0 : e._strategyHWM - e._queueTotalSize - } - - function Cr(e) { - var r = e._controlledReadableStream._state; - return !1 === e._closeRequested && "readable" === r - } - - function Er(e, r, t, o, n, i, a) { - r._controlledReadableStream = e, r._queue = void 0, r._queueTotalSize = void 0, Ne(r), r._started = !1, r._closeRequested = !1, r._pullAgain = !1, r._pulling = !1, r._strategySizeAlgorithm = a, r._strategyHWM = i, r._pullAlgorithm = o, r._cancelAlgorithm = n, e._readableStreamController = r; - var s = t(); - Promise.resolve(s).then(function() { - r._started = !0, Sr(r) - }, function(e) { - Tr(r, e) - }).catch(Be) - } - var Wr = function() { - function e() { - throw new TypeError("ReadableStreamBYOBRequest cannot be used directly") - } - var r = e.prototype; - return r.respond = function(e) { - if (!1 === Or(this)) throw rt("respond"); - if (void 0 === this._associatedReadableByteStreamController) throw new TypeError("This BYOB request has been invalidated"); - if (!0 === Ee(this._view.buffer)) throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response"); - ! function(e, r) { - if (r = Number(r), !1 === je(r)) throw new RangeError("bytesWritten must be a finite"); - xr(e, r) - }(this._associatedReadableByteStreamController, e) - }, r.respondWithNewView = function(e) { - if (!1 === Or(this)) throw rt("respond"); - if (void 0 === this._associatedReadableByteStreamController) throw new TypeError("This BYOB request has been invalidated"); - if (!ArrayBuffer.isView(e)) throw new TypeError("You can only respond with array buffer views"); - if (!0 === Ee(e.buffer)) throw new TypeError("The supplied view's buffer has been detached and so cannot be used as a response"); - ! function(e, r) { - var t = e._pendingPullIntos[0]; - if (t.byteOffset + t.bytesFilled !== r.byteOffset) throw new RangeError("The region specified by view does not match byobRequest"); - if (t.byteLength !== r.byteLength) throw new RangeError("The buffer of view has different capacity than byobRequest"); - t.buffer = r.buffer, xr(e, r.byteLength) - }(this._associatedReadableByteStreamController, e) - }, t(e, [{ - key: "view", - get: function() { - if (!1 === Or(this)) throw rt("view"); - return this._view - } - }]), e - }(), - Ar = function() { - function e() { - throw new TypeError("ReadableByteStreamController constructor cannot be used directly") - } - var r = e.prototype; - return r.close = function() { - if (!1 === kr(this)) throw tt("close"); - if (!0 === this._closeRequested) throw new TypeError("The stream has already been closed; do not close it again!"); - var e = this._controlledReadableByteStream._state; - if ("readable" !== e) throw new TypeError("The stream (in " + e + " state) is not in the readable state and cannot be closed"); - ! function(e) { - var r = e._controlledReadableByteStream; - if (e._queueTotalSize > 0) return void(e._closeRequested = !0); - if (e._pendingPullIntos.length > 0) { - var t = e._pendingPullIntos[0]; - if (t.bytesFilled > 0) { - var o = new TypeError("Insufficient bytes to fill elements in the given buffer"); - throw Yr(e, o), o - } - } - ir(r) - }(this) - }, r.enqueue = function(e) { - if (!1 === kr(this)) throw tt("enqueue"); - if (!0 === this._closeRequested) throw new TypeError("stream is closed or draining"); - var r = this._controlledReadableByteStream._state; - if ("readable" !== r) throw new TypeError("The stream (in " + r + " state) is not in the readable state and cannot be enqueued to"); - if (!ArrayBuffer.isView(e)) throw new TypeError("You can only enqueue array buffer views when using a ReadableByteStreamController"); - if (!0 === Ee(e.buffer)) throw new TypeError("Cannot enqueue a view onto a detached ArrayBuffer"); - ! function(e, r) { - var t = e._controlledReadableByteStream, - o = r.buffer, - n = r.byteOffset, - i = r.byteLength, - a = We(o); - if (!0 === dr(t)) - if (0 === ur(t)) Nr(e, a, n, i); - else { - var s = new Uint8Array(a, n, i); - sr(t, s, !1) - } - else !0 === cr(t) ? (Nr(e, a, n, i), Hr(e)) : Nr(e, a, n, i); - zr(e) - }(this, e) - }, r.error = function(e) { - if (!1 === kr(this)) throw tt("error"); - Yr(this, e) - }, r[Ue] = function(e) { - this._pendingPullIntos.length > 0 && (this._pendingPullIntos[0].bytesFilled = 0); - return Ne(this), this._cancelAlgorithm(e) - }, r[Ge] = function() { - var e = this._controlledReadableByteStream; - if (this._queueTotalSize > 0) { - var r, t = this._queue.shift(); - this._queueTotalSize -= t.byteLength, Lr(this); - try { - r = new Uint8Array(t.buffer, t.byteOffset, t.byteLength) - } - catch (e) { - return Promise.reject(e) - } - return Promise.resolve(Te(r, !1)) - } - var o = this._autoAllocateChunkSize; - if (void 0 !== o) { - var n; - try { - n = new ArrayBuffer(o) - } - catch (e) { - return Promise.reject(e) - } - var i = { - buffer: n, - byteOffset: 0, - byteLength: o, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: "default" - }; - this._pendingPullIntos.push(i) - } - var a = or(e); - return zr(this), a - }, t(e, [{ - key: "byobRequest", - get: function() { - if (!1 === kr(this)) throw tt("byobRequest"); - if (void 0 === this._byobRequest && this._pendingPullIntos.length > 0) { - var e = this._pendingPullIntos[0], - r = new Uint8Array(e.buffer, e.byteOffset + e.bytesFilled, e.byteLength - e.bytesFilled), - t = Object.create(Wr.prototype); - ! function(e, r, t) { - e._associatedReadableByteStreamController = r, e._view = t - }(t, this, r), this._byobRequest = t - } - return this._byobRequest - } - }, { - key: "desiredSize", - get: function() { - if (!1 === kr(this)) throw tt("desiredSize"); - return Ur(this) - } - }]), e - }(); - - function kr(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledReadableByteStream") - } - - function Or(e) { - return !!ze(e) && !!Object.prototype.hasOwnProperty.call(e, "_associatedReadableByteStreamController") - } - - function zr(e) { - !1 !== function(e) { - var r = e._controlledReadableByteStream; - if ("readable" !== r._state) return !1; - if (!0 === e._closeRequested) return !1; - if (!1 === e._started) return !1; - if (!0 === dr(r) && ur(r) > 0) return !0; - if (!0 === cr(r) && lr(r) > 0) return !0; - if (Ur(e) > 0) return !0; - return !1 - }(e) && (!0 !== e._pulling ? (e._pulling = !0, e._pullAlgorithm().then(function() { - e._pulling = !1, !0 === e._pullAgain && (e._pullAgain = !1, zr(e)) - }, function(r) { - Yr(e, r) - }).catch(Be)) : e._pullAgain = !0) - } - - function Br(e) { - Vr(e), e._pendingPullIntos = [] - } - - function Ir(e, r) { - var t = !1; - "closed" === e._state && (t = !0); - var o = Fr(r); - "default" === r.readerType ? sr(e, o, t) : function(e, r, t) { - e._reader._readIntoRequests.shift()._resolve(Te(r, t)) - }(e, o, t) - } - - function Fr(e) { - var r = e.bytesFilled, - t = e.elementSize; - return new e.ctor(e.buffer, e.byteOffset, r / t) - } - - function Nr(e, r, t, o) { - e._queue.push({ - buffer: r, - byteOffset: t, - byteLength: o - }), e._queueTotalSize += o - } - - function Dr(e, r) { - var t = r.elementSize, - o = r.bytesFilled - r.bytesFilled % t, - n = Math.min(e._queueTotalSize, r.byteLength - r.bytesFilled), - i = r.bytesFilled + n, - a = i - i % t, - s = n, - l = !1; - a > o && (s = a - r.bytesFilled, l = !0); - for (var u = e._queue; s > 0;) { - var c = u[0], - d = Math.min(s, c.byteLength), - f = r.byteOffset + r.bytesFilled; - Re(r.buffer, f, c.buffer, c.byteOffset, d), c.byteLength === d ? u.shift() : (c.byteOffset += d, c.byteLength -= d), e._queueTotalSize -= d, Mr(e, d, r), s -= d - } - return l - } - - function Mr(e, r, t) { - Vr(e), t.bytesFilled += r - } - - function Lr(e) { - 0 === e._queueTotalSize && !0 === e._closeRequested ? ir(e._controlledReadableByteStream) : zr(e) - } - - function Vr(e) { - void 0 !== e._byobRequest && (e._byobRequest._associatedReadableByteStreamController = void 0, e._byobRequest._view = void 0, e._byobRequest = void 0) - } - - function Hr(e) { - for (; e._pendingPullIntos.length > 0;) { - if (0 === e._queueTotalSize) return; - var r = e._pendingPullIntos[0]; - !0 === Dr(e, r) && (Qr(e), Ir(e._controlledReadableByteStream, r)) - } - } - - function xr(e, r) { - var t = e._pendingPullIntos[0]; - if ("closed" === e._controlledReadableByteStream._state) { - if (0 !== r) throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream"); - ! function(e, r) { - r.buffer = We(r.buffer); - var t = e._controlledReadableByteStream; - if (!0 === cr(t)) - for (; lr(t) > 0;) Ir(t, Qr(e)) - }(e, t) - } - else ! function(e, r, t) { - if (t.bytesFilled + r > t.byteLength) throw new RangeError("bytesWritten out of range"); - if (Mr(e, r, t), !(t.bytesFilled < t.elementSize)) { - Qr(e); - var o = t.bytesFilled % t.elementSize; - if (o > 0) { - var n = t.byteOffset + t.bytesFilled, - i = t.buffer.slice(n - o, n); - Nr(e, i, 0, i.byteLength) - } - t.buffer = We(t.buffer), t.bytesFilled -= o, Ir(e._controlledReadableByteStream, t), Hr(e) - } - }(e, r, t); - zr(e) - } - - function Qr(e) { - var r = e._pendingPullIntos.shift(); - return Vr(e), r - } - - function Yr(e, r) { - var t = e._controlledReadableByteStream; - "readable" === t._state && (Br(e), Ne(e), ar(t, r)) - } - - function Ur(e) { - var r = e._controlledReadableByteStream._state; - return "errored" === r ? null : "closed" === r ? 0 : e._strategyHWM - e._queueTotalSize - } - - function Gr(e, r, t, o, n, i, a) { - r._controlledReadableByteStream = e, r._pullAgain = !1, r._pulling = !1, Br(r), r._queue = r._queueTotalSize = void 0, Ne(r), r._closeRequested = !1, r._started = !1, r._strategyHWM = Ae(i), r._pullAlgorithm = o, r._cancelAlgorithm = n, r._autoAllocateChunkSize = a, r._pendingPullIntos = [], e._readableStreamController = r; - var s = t(); - Promise.resolve(s).then(function() { - r._started = !0, zr(r) - }, function(e) { - Yr(r, e) - }).catch(Be) - } - - function Jr(e) { - return new TypeError("ReadableStream.prototype." + e + " can only be used on a ReadableStream") - } - - function Kr(e) { - return new TypeError("Cannot " + e + " a stream using a released reader") - } - - function Xr(e) { - return new TypeError("ReadableStreamDefaultReader.prototype." + e + " can only be used on a ReadableStreamDefaultReader") - } - - function Zr(e, r) { - e._closedPromise_reject(r), e._closedPromise_resolve = void 0, e._closedPromise_reject = void 0 - } - - function $r(e) { - return new TypeError("ReadableStreamBYOBReader.prototype." + e + " can only be used on a ReadableStreamBYOBReader") - } - - function et(e) { - return new TypeError("ReadableStreamDefaultController.prototype." + e + " can only be used on a ReadableStreamDefaultController") - } - - function rt(e) { - return new TypeError("ReadableStreamBYOBRequest.prototype." + e + " can only be used on a ReadableStreamBYOBRequest") - } - - function tt(e) { - return new TypeError("ReadableByteStreamController.prototype." + e + " can only be used on a ReadableByteStreamController") - } - var ot = Ke.ReadableStream, - nt = v.createDataProperty, - it = function() { - function e(e) { - var r = e.highWaterMark; - nt(this, "highWaterMark", r) - } - return e.prototype.size = function(e) { - return e.byteLength - }, e - }(), - at = v.createDataProperty, - st = function() { - function e(e) { - var r = e.highWaterMark; - at(this, "highWaterMark", r) - } - return e.prototype.size = function() { - return 1 - }, e - }(), - lt = (T("streams:transform-stream:verbose"), v.InvokeOrNoop), - ut = v.CreateAlgorithmFromUnderlyingMethod, - ct = v.PromiseCall, - dt = v.typeIsObject, - ft = v.ValidateAndNormalizeHighWaterMark, - _t = (v.IsNonNegativeNumber, v.MakeSizeAlgorithmFromSizeFunction), - mt = Ke.CreateReadableStream, - ht = Ke.ReadableStreamDefaultControllerClose, - bt = Ke.ReadableStreamDefaultControllerEnqueue, - vt = Ke.ReadableStreamDefaultControllerError, - yt = Ke.ReadableStreamDefaultControllerGetDesiredSize, - pt = Ke.ReadableStreamDefaultControllerHasBackpressure, - wt = Ke.ReadableStreamDefaultControllerCanCloseOrEnqueue, - gt = V.CreateWritableStream, - St = V.WritableStreamDefaultControllerErrorIfNeeded, - Pt = function() { - function e(e, r, t) { - if (void 0 === e && (e = {}), void 0 === r && (r = {}), void 0 === t && (t = {}), void 0 !== e.readableType) throw new RangeError("Invalid readable type specified"); - if (void 0 !== e.writableType) throw new RangeError("Invalid writable type specified"); - var o = r.size, - n = _t(o), - i = r.highWaterMark; - void 0 === i && (i = 1), i = ft(i); - var a, s = t.size, - l = _t(s), - u = t.highWaterMark; - void 0 === u && (u = 0), u = ft(u), Rt(this, new Promise(function(e) { - a = e - }), i, n, u, l), - function(e, r) { - var t = Object.create(Et.prototype), - o = function(e) { - try { - return kt(t, e), Promise.resolve() - } - catch (e) { - return Promise.reject(e) - } - }, - n = r.transform; - if (void 0 !== n) { - if ("function" != typeof n) throw new TypeError("transform is not a method"); - o = function(o) { - var i = ct(n, r, [o, t]); - return i.catch(function(r) { - throw Tt(e, r), r - }) - } - } - var i = ut(r, "flush", 0, [t]); - At(e, t, o, i) - }(this, e); - var c = lt(e, "start", [this._transformStreamController]); - a(c) - } - return t(e, [{ - key: "readable", - get: function() { - if (!1 === qt(this)) throw zt("readable"); - return this._readable - } - }, { - key: "writable", - get: function() { - if (!1 === qt(this)) throw zt("writable"); - return this._writable - } - }]), e - }(); - - function Rt(e, r, t, o, n, i) { - function a() { - return r - } - e._writable = gt(a, function(r) { - return function(e, r) { - var t = e._transformStreamController; - if (!0 === e._backpressure) { - var o = e._backpressureChangePromise; - return o.then(function() { - var o = e._writable, - n = o._state; - if ("erroring" === n) throw o._storedError; - return t._transformAlgorithm(r) - }) - } - return t._transformAlgorithm(r) - }(e, r) - }, function() { - return function(e) { - var r = e._readable; - return e._transformStreamController._flushAlgorithm().then(function() { - if ("errored" === r._state) throw r._storedError; - var e = r._readableStreamController; - !0 === wt(e) && ht(e) - }).catch(function(t) { - throw Tt(e, t), r._storedError - }) - }(e) - }, function(r) { - return function(e, r) { - return Tt(e, r), Promise.resolve() - }(e, r) - }, t, o), e._readable = mt(a, function() { - return function(e) { - return Ct(e, !1), e._backpressureChangePromise - }(e) - }, function(r) { - return jt(e, r), Promise.resolve() - }, n, i), e._backpressure = void 0, e._backpressureChangePromise = void 0, e._backpressureChangePromise_resolve = void 0, Ct(e, !0), e._transformStreamController = void 0 - } - - function qt(e) { - return !!dt(e) && !!Object.prototype.hasOwnProperty.call(e, "_transformStreamController") - } - - function Tt(e, r) { - vt(e._readable._readableStreamController, r), jt(e, r) - } - - function jt(e, r) { - St(e._writable._writableStreamController, r), !0 === e._backpressure && Ct(e, !1) - } - - function Ct(e, r) { - void 0 !== e._backpressureChangePromise && e._backpressureChangePromise_resolve(), e._backpressureChangePromise = new Promise(function(r) { - e._backpressureChangePromise_resolve = r - }), e._backpressure = r - } - var Et = function() { - function e() { - throw new TypeError("TransformStreamDefaultController instances cannot be created directly") - } - var r = e.prototype; - return r.enqueue = function(e) { - if (!1 === Wt(this)) throw Ot("enqueue"); - kt(this, e) - }, r.error = function(e) { - if (!1 === Wt(this)) throw Ot("error"); - ! function(e, r) { - Tt(e._controlledTransformStream, r) - }(this, e) - }, r.terminate = function() { - if (!1 === Wt(this)) throw Ot("terminate"); - ! function(e) { - var r = e._controlledTransformStream, - t = r._readable._readableStreamController; - !0 === wt(t) && ht(t); - var o = new TypeError("TransformStream terminated"); - jt(r, o) - }(this) - }, t(e, [{ - key: "desiredSize", - get: function() { - if (!1 === Wt(this)) throw Ot("desiredSize"); - var e = this._controlledTransformStream._readable._readableStreamController; - return yt(e) - } - }]), e - }(); - - function Wt(e) { - return !!dt(e) && !!Object.prototype.hasOwnProperty.call(e, "_controlledTransformStream") - } - - function At(e, r, t, o) { - r._controlledTransformStream = e, e._transformStreamController = r, r._transformAlgorithm = t, r._flushAlgorithm = o - } - - function kt(e, r) { - var t = e._controlledTransformStream, - o = t._readable._readableStreamController; - if (!1 === wt(o)) throw new TypeError("Readable side is not in a state that permits enqueue"); - try { - bt(o, r) - } - catch (e) { - throw jt(t, e), t._readable._storedError - } - pt(o) !== t._backpressure && Ct(t, !0) - } - - function Ot(e) { - return new TypeError("TransformStreamDefaultController.prototype." + e + " can only be used on a TransformStreamDefaultController") - } - - function zt(e) { - return new TypeError("TransformStream.prototype." + e + " can only be used on a TransformStream") - } - var Bt = { - CreateTransformStream: function(e, r, t, o, n, i, a) { - void 0 === o && (o = 1), void 0 === n && (n = function() { - return 1 - }), void 0 === i && (i = 0), void 0 === a && (a = function() { - return 1 - }); - var s, l = Object.create(Pt.prototype); - Rt(l, new Promise(function(e) { - s = e - }), o, n, i, a), At(l, Object.create(Et.prototype), r, t); - var u = e(); - return s(u), l - }, - TransformStream: Pt - }.TransformStream; - void 0 !== s && o(s, { - ReadableStream: ot, - WritableStream: Pe, - ByteLengthQueuingStrategy: it, - CountQueuingStrategy: st, - TransformStream: Bt - }), e.ReadableStream = ot, e.WritableStream = Pe, e.ByteLengthQueuingStrategy = it, e.CountQueuingStrategy = st, e.TransformStream = Bt, Object.defineProperty(e, "__esModule", { - value: !0 - }) - }); -}).call(this, typeof global !== "undefined" ? global : typeof w !== "undefined" ? w : {}) - -var TransformStream = window.TransformStream; -var ReadableStream = window.ReadableStream; -var WritableStream = window.WritableStream; diff -Nru enigmail-2.1.6+ds1/test.sh enigmail-2.2.4/test.sh --- enigmail-2.1.6+ds1/test.sh 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/test.sh 2020-10-01 13:32:58.000000000 +0000 @@ -5,6 +5,8 @@ # file, You can obtain one at https://mozilla.org/MPL/2.0/. # +Xvfb :99 >/dev/null 2>&1 & +export DISPLAY=:99 export PL_PATH=`which perl` export TB_PATH=${TB_PATH:-`which thunderbird`} @@ -12,5 +14,13 @@ echo "Warning: Running the test suite as root may cause some tests to fail." fi -util/run-tests.py "$@" +if [ "$#" -eq 0 ]; then + util/run-tests.py +else + util/run-tests.py $@ +fi + +RESULT=$? +killall Xvfb +exit $RESULT diff -Nru enigmail-2.1.6+ds1/ui/content/aboutEnigmail.html enigmail-2.2.4/ui/content/aboutEnigmail.html --- enigmail-2.1.6+ds1/ui/content/aboutEnigmail.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/aboutEnigmail.html 2020-10-01 13:32:58.000000000 +0000 @@ -6,7 +6,7 @@ --> - + @@ -19,7 +19,7 @@ @@ -58,7 +58,7 @@
  • R. Saravanan:
  • Jochen Eisinger (Modern), Jan Gerber (Classic), Frank Gerhardt
  • Barry Porter, Shane M. Coughlan, Nicolai Josuttis, John Clizbe, Ludwig Hügelschäfer
  • -
  • +
  • Gitlab & Sourceforge.net
  • diff -Nru enigmail-2.1.6+ds1/ui/content/aboutEnigmail.js enigmail-2.2.4/ui/content/aboutEnigmail.js --- enigmail-2.1.6+ds1/ui/content/aboutEnigmail.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/aboutEnigmail.js 2020-10-01 13:32:58.000000000 +0000 @@ -10,21 +10,12 @@ const EnigmailLocalizeHtml = ChromeUtils.import("chrome://enigmail/content/modules/localizeHtml.jsm").EnigmailLocalizeHtml; const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -const EnigmailGnuPGUpdate = ChromeUtils.import("chrome://enigmail/content/modules/gnupgUpdate.jsm").EnigmailGnuPGUpdate; const EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; function onload() { EnigmailTimer.setTimeout(() => { EnigmailLocalizeHtml.onPageLoad(document); - - let enigmailSvc = EnigmailCore.getService(); - - if (enigmailSvc) { - if (EnigmailGnuPGUpdate.isGnuPGUpdatable()) { - document.getElementById("checkGnupgUpdate").classList.remove("hidden"); - } - } }, 50); } diff -Nru enigmail-2.1.6+ds1/ui/content/accountManagerOverlay.js enigmail-2.2.4/ui/content/accountManagerOverlay.js --- enigmail-2.1.6+ds1/ui/content/accountManagerOverlay.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/accountManagerOverlay.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var Cu = Components.utils; -var Cc = Components.classes; -var Ci = Components.interfaces; - -var EnigmailPEPAdapter = ChromeUtils.import("chrome://enigmail/content/modules/pEpAdapter.jsm").EnigmailPEPAdapter; - - -var Enigmail = { - usingPep: null, - onLoad: function(event) { - this.usingPep = EnigmailPEPAdapter.usingPep(); - }, - - onClose: function(event) { - let usingPep = EnigmailPEPAdapter.usingPep(); - - if (usingPep !== this.usingPep) { - EnigmailPEPAdapter.handleJuniorModeChange(); - } - - if (usingPep) { - EnigmailPEPAdapter.setOwnIdentities(0); - } - }, - - onUnloadEnigmail: function() { - window.removeEventListener("load-enigmail", Enigmail.onLoad, true); - window.removeEventListener("unload-enigmail", Enigmail.onUnload, true); - window.removeEventListener("dialogaccept", Enigmail.onClose, false); - window.removeEventListener("dialogcancel", Enigmail.onClose, false); - } -}; - -window.addEventListener("load-enigmail", Enigmail.onLoad.bind(Enigmail), true); -window.addEventListener("unload-enigmail", Enigmail.onUnloadEnigmail.bind(Enigmail), true); -window.addEventListener("dialogaccept", Enigmail.onClose.bind(Enigmail), false); -window.addEventListener("dialogcancel", Enigmail.onClose.bind(Enigmail), false); diff -Nru enigmail-2.1.6+ds1/ui/content/accountManagerOverlay.xul enigmail-2.2.4/ui/content/accountManagerOverlay.xul --- enigmail-2.1.6+ds1/ui/content/accountManagerOverlay.xul 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/accountManagerOverlay.xul 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailCommon.js enigmail-2.2.4/ui/content/enigmailCommon.js --- enigmail-2.1.6+ds1/ui/content/enigmailCommon.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailCommon.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,803 +0,0 @@ -/*global EnigmailFiles: false, EnigmailCore: false, EnigmailApp: false, EnigmailDialog: false, EnigmailWindows: false, EnigmailTime: 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 https://mozilla.org/MPL/2.0/. - */ - -/** - * PLEASE NOTE: this module is legacy and must not be used for newe code - it will be removed! - */ - - -"use strict"; - -var Cu = Components.utils; -var Cc = Components.classes; -var Ci = Components.interfaces; - -// enigmailCommon.js: shared JS functions for Enigmail - -// WARNING: This module functions must not be loaded in overlays to standard functionality! - -// Many of these components are not used in this file, but are instead used in other files that are loaded together with EnigmailCommon -var EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -var EnigmailFuncs = ChromeUtils.import("chrome://enigmail/content/modules/funcs.jsm").EnigmailFuncs; -var EnigmailKeyEditor = ChromeUtils.import("chrome://enigmail/content/modules/keyEditor.jsm").EnigmailKeyEditor; -var EnigmailKey = ChromeUtils.import("chrome://enigmail/content/modules/key.jsm").EnigmailKey; -var EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -var EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -var EnigmailOS = ChromeUtils.import("chrome://enigmail/content/modules/os.jsm").EnigmailOS; -var EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -var EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -var EnigmailFiles = ChromeUtils.import("chrome://enigmail/content/modules/files.jsm").EnigmailFiles; -var EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -var EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -var EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; -var EnigmailTime = ChromeUtils.import("chrome://enigmail/content/modules/time.jsm").EnigmailTime; -var EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; -var EnigmailKeyRing = ChromeUtils.import("chrome://enigmail/content/modules/keyRing.jsm").EnigmailKeyRing; -var EnigmailTrust = ChromeUtils.import("chrome://enigmail/content/modules/trust.jsm").EnigmailTrust; -var EnigmailConstants = ChromeUtils.import("chrome://enigmail/content/modules/constants.jsm").EnigmailConstants; -var EnigmailErrorHandling = ChromeUtils.import("chrome://enigmail/content/modules/errorHandling.jsm").EnigmailErrorHandling; -var EnigmailKeyServer = ChromeUtils.import("chrome://enigmail/content/modules/keyserver.jsm").EnigmailKeyServer; -var EnigmailEvents = ChromeUtils.import("chrome://enigmail/content/modules/events.jsm").EnigmailEvents; -var EnigmailGpg = ChromeUtils.import("chrome://enigmail/content/modules/gpg.jsm").EnigmailGpg; -var EnigmailGpgAgent = ChromeUtils.import("chrome://enigmail/content/modules/gpgAgent.jsm").EnigmailGpgAgent; -var EnigmailStreams = ChromeUtils.import("chrome://enigmail/content/modules/streams.jsm").EnigmailStreams; - - -// The compatible Enigmime version -var gEnigmailSvc; -var gEnigPromptSvc; - - -// Maximum size of message directly processed by Enigmail -const ENIG_PROCESSINFO_CONTRACTID = "@mozilla.org/xpcom/process-info;1"; -const ENIG_ENIGMAIL_CONTRACTID = "@mozdev.org/enigmail/enigmail;1"; -const ENIG_STRINGBUNDLE_CONTRACTID = "@mozilla.org/intl/stringbundle;1"; -const ENIG_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; -const ENIG_DIRSERVICE_CONTRACTID = "@mozilla.org/file/directory_service;1"; -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_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"; -const ENIG_THREAD_MANAGER_CID = "@mozilla.org/thread-manager;1"; -const ENIG_SIMPLEURI_CONTRACTID = "@mozilla.org/network/simple-uri;1"; -const ENIG_SEAMONKEY_ID = "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}"; - - -const ENIG_STANDARD_URL_CONTRACTID = "@mozilla.org/network/standard-url;1"; -const ENIG_SCRIPTABLEINPUTSTREAM_CONTRACTID = "@mozilla.org/scriptableinputstream;1"; -const ENIG_BINARYINPUTSTREAM_CONTRACTID = "@mozilla.org/binaryinputstream;1"; -const ENIG_SAVEASCHARSET_CONTRACTID = "@mozilla.org/intl/saveascharset;1"; - -const ENIG_STREAMCONVERTERSERVICE_CID_STR = - "{892FFEB0-3F80-11d3-A16C-0050041CAF44}"; - - -const ENIG_ISCRIPTABLEUNICODECONVERTER_CONTRACTID = "@mozilla.org/intl/scriptableunicodeconverter"; - -const ENIG_IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; - -const ENIG_C = Components.classes; -const ENIG_I = Components.interfaces; - - -// field ID's of key list (as described in the doc/DETAILS file in the GnuPG distribution) -const ENIG_KEY_TRUST = 1; -const ENIG_KEY_ID = 4; -const ENIG_CREATED = 5; -const ENIG_EXPIRY = 6; -const ENIG_UID_ID = 7; -const ENIG_OWNERTRUST = 8; -const ENIG_USER_ID = 9; -const ENIG_SIG_TYPE = 10; -const ENIG_KEY_USE_FOR = 11; - -const ENIG_KEY_EXPIRED = "e"; -const ENIG_KEY_REVOKED = "r"; -const ENIG_KEY_INVALID = "i"; -const ENIG_KEY_DISABLED = "d"; -const ENIG_KEY_NOT_VALID = ENIG_KEY_EXPIRED + ENIG_KEY_REVOKED + ENIG_KEY_INVALID + ENIG_KEY_DISABLED; - - -// GUI List: The corresponding image to set the "active" flag / checkbox -const ENIG_IMG_NOT_SELECTED = "chrome://enigmail/content/ui/check0.png"; -const ENIG_IMG_SELECTED = "chrome://enigmail/content/ui/check1.png"; -const ENIG_IMG_DISABLED = "chrome://enigmail/content/ui/check2.png"; - - -// Encryption flags -if (EnigmailConstants) { - const ENIG_SIGN = EnigmailConstants.SEND_SIGNED; - const ENIG_ENCRYPT = EnigmailConstants.SEND_ENCRYPTED; - const ENIG_ENCRYPT_OR_SIGN = ENIG_ENCRYPT | ENIG_SIGN; -} - -// UsePGPMimeOption values -const PGP_MIME_NEVER = 0; -const PGP_MIME_POSSIBLE = 1; -const PGP_MIME_ALWAYS = 2; - -const ENIG_POSSIBLE_PGPMIME = EnigmailConstants.POSSIBLE_PGPMIME; -const ENIG_PGP_DESKTOP_ATT = -2082; - -var gUsePGPMimeOptionList = ["usePGPMimeNever", - "usePGPMimePossible", - "usePGPMimeAlways" -]; - -// sending options: -var gEnigEncryptionModel = ["encryptionModelConvenient", - "encryptionModelManually" -]; -var gEnigAcceptedKeys = ["acceptedKeysValid", - "acceptedKeysAll" -]; -var gEnigAutoSendEncrypted = ["autoSendEncryptedNever", - "autoSendEncryptedIfKeys" -]; -var gEnigConfirmBeforeSending = ["confirmBeforeSendingNever", - "confirmBeforeSendingAlways", - "confirmBeforeSendingIfEncrypted", - "confirmBeforeSendingIfNotEncrypted", - "confirmBeforeSendingIfRules" -]; - -const ENIG_BUTTON_POS_0 = 1; -const ENIG_BUTTON_POS_1 = 1 << 8; -const ENIG_BUTTON_POS_2 = 1 << 16; -const ENIG_BUTTON_TITLE_IS_STRING = 127; - -const ENIG_HEADERMODE_KEYID = 0x01; -const ENIG_HEADERMODE_URL = 0x10; - - - -function EnigGetFrame(win, frameName) { - return EnigmailWindows.getFrame(win, frameName); -} - -// Initializes enigmailCommon -function EnigInitCommon(id) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigInitCommon: id=" + id + "\n"); - - gEnigPromptSvc = enigGetService("@mozilla.org/embedcomp/prompt-service;1", "nsIPromptService"); -} - - -function GetEnigmailSvc() { - if (!gEnigmailSvc) - gEnigmailSvc = EnigmailCore.getService(window); - return gEnigmailSvc; -} - -// maxBytes == -1 => read everything -function EnigReadURLContents(url, maxBytes) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigReadURLContents: url=" + url + - ", " + maxBytes + "\n"); - - var ioServ = enigGetService(ENIG_IOSERVICE_CONTRACTID, "nsIIOService"); - if (!ioServ) - throw Components.results.NS_ERROR_FAILURE; - - var fileChannel = EnigmailStreams.createChannel(url); - - var rawInStream = fileChannel.open(); - - var inStream = ENIG_C[ENIG_BINARYINPUTSTREAM_CONTRACTID].createInstance(ENIG_I.nsIBinaryInputStream); - inStream.setInputStream(rawInStream); - - var available = inStream.available(); - if ((maxBytes < 0) || (maxBytes > available)) - maxBytes = available; - - var data = inStream.readBytes(maxBytes); - - inStream.close(); - - return data; -} - -// maxBytes == -1 => read whole file -function EnigReadFileContents(localFile, maxBytes) { - - EnigmailLog.DEBUG("enigmailCommon.js: EnigReadFileContents: file=" + localFile.leafName + - ", " + maxBytes + "\n"); - - if (!localFile.exists() || !localFile.isReadable()) - throw Components.results.NS_ERROR_FAILURE; - - var ioServ = enigGetService(ENIG_IOSERVICE_CONTRACTID, "nsIIOService"); - if (!ioServ) - throw Components.results.NS_ERROR_FAILURE; - - var fileURI = ioServ.newFileURI(localFile); - return EnigReadURLContents(fileURI.asciiSpec, maxBytes); - -} - -/////////////////////////////////////////////////////////////////////////////// - - -// write exception information -function EnigWriteException(referenceInfo, ex) { - EnigmailLog.writeException(referenceInfo, ex); -} - -/////////////////////////////////////////////////////////////////////////////// - -function EnigAlert(mesg) { - return EnigmailDialog.alert(window, mesg); -} - -/** - * Displays an alert dialog with 3-4 optional buttons. - * checkBoxLabel: if not null, display checkbox with text; the checkbox state is returned in checkedObj - * button-Labels: use "&" to indicate access key - * use "buttonType:label" or ":buttonType" to indicate special button types - * (buttonType is one of cancel, help, extra1, extra2) - * return: 0-2: button Number pressed - * -1: ESC or close window button pressed - * - */ -function EnigLongAlert(mesg, checkBoxLabel, okLabel, labelButton2, labelButton3, checkedObj) { - return EnigmailDialog.longAlert(window, mesg, checkBoxLabel, okLabel, labelButton2, labelButton3, checkedObj); -} - -function EnigAlertPref(mesg, prefText) { - return EnigmailDialog.alertPref(window, mesg, prefText); -} - -// Confirmation dialog with OK / Cancel buttons (both customizable) -function EnigConfirm(mesg, okLabel, cancelLabel) { - return EnigmailDialog.confirmDlg(window, mesg, okLabel, cancelLabel); -} - - -function EnigError(mesg) { - return gEnigPromptSvc.alert(window, EnigGetString("enigError"), mesg); -} - - -function EnigHelpWindow(source) { - EnigmailWindows.openHelpWindow(source); -} - - -function EnigDisplayRadioPref(prefName, prefValue, optionElementIds) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigDisplayRadioPref: " + prefName + ", " + prefValue + "\n"); - - if (prefValue >= optionElementIds.length) - return; - - var groupElement = document.getElementById("enigmail_" + prefName); - var optionElement = document.getElementById(optionElementIds[prefValue]); - - if (groupElement && optionElement) { - groupElement.selectedItem = optionElement; - groupElement.value = prefValue; - } -} - -function EnigSetRadioPref(prefName, optionElementIds) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigSetRadioPref: " + prefName + "\n"); - - try { - var groupElement = document.getElementById("enigmail_" + prefName); - if (groupElement) { - var optionElement = groupElement.selectedItem; - var prefValue = optionElement.value; - if (prefValue < optionElementIds.length) { - EnigSetPref(prefName, prefValue); - groupElement.value = prefValue; - } - } - } catch (ex) {} -} - -function EnigSavePrefs() { - return EnigmailPrefs.savePrefs(); -} - -function EnigGetPref(prefName) { - return EnigmailPrefs.getPref(prefName); -} - -function EnigGetDefaultPref(prefName) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigGetDefaultPref: prefName=" + prefName + "\n"); - var prefValue = null; - try { - EnigmailPrefs.getPrefBranch().lockPref(prefName); - prefValue = EnigGetPref(prefName); - EnigmailPrefs.getPrefBranch().unlockPref(prefName); - } catch (ex) {} - - return prefValue; -} - -function EnigSetPref(prefName, value) { - return EnigmailPrefs.setPref(prefName, value); -} - - -function EnigConvertFromUnicode(text, charset) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigConvertFromUnicode: " + charset + "\n"); - - if (!text) - return ""; - - if (!charset) charset = "utf-8"; - - // Encode plaintext - try { - var unicodeConv = ENIG_C[ENIG_ISCRIPTABLEUNICODECONVERTER_CONTRACTID].getService(ENIG_I.nsIScriptableUnicodeConverter); - - unicodeConv.charset = charset; - return unicodeConv.ConvertFromUnicode(text); - - } catch (ex) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigConvertFromUnicode: caught an exception\n"); - - return text; - } -} - - -function EnigConvertToUnicode(text, charset) { - // EnigmailLog.DEBUG("enigmailCommon.js: EnigConvertToUnicode: "+charset+"\n"); - - if (!text || !charset /*|| (charset.toLowerCase() == "iso-8859-1")*/ ) - return text; - - // Encode plaintext - try { - var unicodeConv = ENIG_C[ENIG_ISCRIPTABLEUNICODECONVERTER_CONTRACTID].getService(ENIG_I.nsIScriptableUnicodeConverter); - - unicodeConv.charset = charset; - return unicodeConv.ConvertToUnicode(text); - - } catch (ex) { - EnigmailLog.DEBUG("enigmailCommon.js: EnigConvertToUnicode: caught an exception while converting'" + text + "' to " + charset + "\n"); - return text; - } -} - -function EnigConvertGpgToUnicode(text) { - return EnigmailData.convertGpgToUnicode(text); -} - -function EnigFormatFpr(fingerprint) { - return EnigmailKey.formatFpr(fingerprint); -} - -///////////////////////// -// Console stuff -///////////////////////// - - -// return the options passed to a window -function EnigGetWindowOptions() { - var winOptions = []; - if (window.location.search) { - var optList = window.location.search.substr(1).split(/&/); - for (var i = 0; i < optList.length; i++) { - var anOption = optList[i].split(new RegExp("=")); - winOptions[anOption[0]] = unescape(anOption[1]); - } - } - return winOptions; -} - -function EnigRulesEditor() { - EnigmailWindows.openRulesEditor(); -} - -function EngmailCardDetails() { - EnigmailWindows.openCardDetails(); -} - -function EnigKeygen() { - EnigmailWindows.openKeyGen(); - -} - -// retrieves a localized string from the enigmail.properties stringbundle -function EnigGetString(aStr) { - var argList = []; - // unfortunately arguments.shift() doesn't work, so we use a workaround - - if (arguments.length > 1) - for (var i = 1; i < arguments.length; i++) { - argList.push(arguments[i]); - } - return EnigmailLocale.getString(aStr, (arguments.length > 1 ? argList : null)); -} - - -//get path for temporary directory (e.g. /tmp, C:\TEMP) -function EnigGetTempDir() { - return EnigmailFiles.getTempDir(); -} - -// get the OS platform -function EnigGetOS() { - return EnigmailOS.getOS(); -} - -function EnigGetVersion() { - return EnigmailApp.getVersion(); -} - -function EnigFilePicker(title, displayDir, save, defaultExtension, defaultName, filterPairs) { - return EnigmailDialog.filePicker(window, title, displayDir, save, defaultExtension, - defaultName, filterPairs); -} - -// get keys from keyserver -function EnigDownloadKeys(inputObj, resultObj) { - return EnigmailWindows.downloadKeys(window, inputObj, resultObj); -} - -// create new PGP Rule -function EnigNewRule(emailAddress) { - return EnigmailWindows.createNewRule(window, emailAddress); -} - -function EnigGetTrustCode(keyObj) { - return EnigmailTrust.getTrustCode(keyObj); -} - -function EnigEditKeyTrust(userIdArr, keyIdArr) { - return EnigmailWindows.editKeyTrust(window, userIdArr, keyIdArr); -} - - -function EnigEditKeyExpiry(userIdArr, keyIdArr) { - return EnigmailWindows.editKeyExpiry(window, userIdArr, keyIdArr); -} - -function EnigDisplayKeyDetails(keyId, refresh) { - return EnigmailWindows.openKeyDetails(window, keyId, refresh); -} - -function EnigSignKey(userId, keyId) { - return EnigmailWindows.signKey(window, userId, keyId); -} - - -function EnigChangeKeyPwd(keyId, userId) { - // gpg-agent used: gpg-agent will handle everything - EnigmailKeyEditor.changePassphrase(window, "0x" + keyId, "", "", - function _changePwdCb(exitCode, errorMsg) { - if (exitCode !== 0) { - EnigAlert(EnigGetString("changePassFailed") + "\n\n" + errorMsg); - } - }); -} - - -function EnigRevokeKey(keyId, userId, callbackFunc) { - var enigmailSvc = GetEnigmailSvc(); - if (!enigmailSvc) - return false; - - var userDesc = "0x" + keyId + " - " + userId; - if (!EnigConfirm(EnigGetString("revokeKeyQuestion", userDesc), EnigGetString("keyMan.button.revokeKey"))) - return false; - - var tmpDir = EnigGetTempDir(); - var revFile; - try { - revFile = ENIG_C[ENIG_LOCAL_FILE_CONTRACTID].createInstance(EnigGetLocalFileApi()); - revFile.initWithPath(tmpDir); - if (!(revFile.isDirectory() && revFile.isWritable())) { - EnigAlert(EnigGetString("noTempDir")); - return false; - } - } catch (ex) {} - revFile.append("revkey.asc"); - - EnigmailKeyEditor.genRevokeCert(window, "0x" + keyId, revFile, "0", "", - function _revokeCertCb(exitCode, errorMsg) { - if (exitCode !== 0) { - revFile.remove(false); - EnigAlert(EnigGetString("revokeKeyFailed") + "\n\n" + errorMsg); - return; - } - var errorMsgObj = {}; - var r = EnigmailKeyRing.importKeyFromFile(revFile, errorMsgObj); - revFile.remove(false); - if (r !== 0) { - EnigAlert(EnigGetString("revokeKeyFailed") + "\n\n" + EnigConvertGpgToUnicode(errorMsgObj.value)); - } else { - EnigAlert(EnigGetString("revokeKeyOk")); - } - if (callbackFunc) { - callbackFunc(r === 0); - } - }); - return true; -} - -function EnigGetLocalFileApi() { - return Components.interfaces.nsIFile; -} - -function EnigShowPhoto(keyId, userId, photoNumber) { - EnigmailWindows.showPhoto(window, keyId, userId, photoNumber); -} - -function EnigGetFilePath(nsFileObj) { - return EnigmailFiles.getFilePath(nsFileObj); -} - -function EnigCreateRevokeCert(keyId, userId, callbackFunc) { - var defaultFileName = userId.replace(/[<>]/g, ""); - defaultFileName += " (0x" + keyId + ") rev.asc"; - var outFile = EnigFilePicker(EnigGetString("saveRevokeCertAs"), - "", true, "*.asc", - defaultFileName, [EnigGetString("asciiArmorFile"), "*.asc"]); - if (!outFile) return -1; - - var enigmailSvc = GetEnigmailSvc(); - if (!enigmailSvc) - return -1; - - EnigmailKeyEditor.genRevokeCert(window, "0x" + keyId, outFile, "1", "", - function _revokeCertCb(exitCode, errorMsg) { - if (exitCode !== 0) { - EnigAlert(EnigGetString("revokeCertFailed") + "\n\n" + errorMsg); - } else { - EnigAlert(EnigGetString("revokeCertOK")); - } - - if (callbackFunc) callbackFunc(exitCode === 0); - }); - return 0; -} - - -// return the label of trust for a given trust code -function EnigGetTrustLabel(trustCode) { - return EnigmailTrust.getTrustLabel(trustCode); -} - -function EnigGetDateTime(dateNum, withDate, withTime) { - return EnigmailTime.getDateTime(dateNum, withDate, withTime); -} - -function enigCreateInstance(aURL, aInterface) { - return ENIG_C[aURL].createInstance(ENIG_I[aInterface]); -} - -function enigGetService(aURL, aInterface) { - // determine how 'aInterface' is passed and handle accordingly - switch (typeof(aInterface)) { - case "object": - return ENIG_C[aURL].getService(aInterface); - case "string": - return ENIG_C[aURL].getService(ENIG_I[aInterface]); - default: - return ENIG_C[aURL].getService(); - } -} - -function EnigCollapseAdvanced(obj, attribute, dummy) { - return EnigmailFuncs.collapseAdvanced(obj, attribute, dummy); -} - -/** - * EnigOpenUrlExternally - * - * forces a uri to be loaded in an external browser - * - * @uri nsIUri object - */ -function EnigOpenUrlExternally(uri) { - let eps = ENIG_C["@mozilla.org/uriloader/external-protocol-service;1"]. - getService(ENIG_I.nsIExternalProtocolService); - - eps.loadURI(uri, null); -} - -function EnigOpenURL(event, hrefObj) { - var xulAppinfo = ENIG_C["@mozilla.org/xre/app-info;1"].getService(ENIG_I.nsIXULAppInfo); - if (xulAppinfo.ID == ENIG_SEAMONKEY_ID) return; - - - - try { - var ioservice = ENIG_C["@mozilla.org/network/io-service;1"]. - getService(ENIG_I.nsIIOService); - var iUri = ioservice.newURI(hrefObj.href, null, null); - - EnigOpenUrlExternally(iUri); - event.preventDefault(); - event.stopPropagation(); - } catch (ex) {} -} - -function EnigGetHttpUri(aEvent) { - - function hRefForClickEvent(aEvent, aDontCheckInputElement) { - var href; - var isKeyCommand = (aEvent.type == "command"); - var target = - isKeyCommand ? document.commandDispatcher.focusedElement : aEvent.target; - - if (target instanceof HTMLAnchorElement || - target instanceof HTMLAreaElement || - target instanceof HTMLLinkElement) { - if (target.hasAttribute("href")) - href = target.href; - } else if (!aDontCheckInputElement && target instanceof HTMLInputElement) { - if (target.form && target.form.action) - href = target.form.action; - } else { - // we may be nested inside of a link node - var linkNode = aEvent.originalTarget; - while (linkNode && !(linkNode instanceof HTMLAnchorElement)) - linkNode = linkNode.parentNode; - - if (linkNode) - href = linkNode.href; - } - - return href; - } - - // getHttpUri main function - - let href = hRefForClickEvent(aEvent); - if (!href) return null; - - EnigmailLog.DEBUG("enigmailAbout.js: interpretHtmlClick: href='" + href + "'\n"); - - var ioServ = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); - var uri = ioServ.newURI(href, null, null); - - if (Components.classes["@mozilla.org/uriloader/external-protocol-service;1"] - .getService(Components.interfaces.nsIExternalProtocolService) - .isExposedProtocol(uri.scheme) && - (uri.schemeIs("http") || uri.schemeIs("https"))) - return uri; - - return null; -} - - -/** - * GUI List: Set the "active" flag and the corresponding image - */ -function EnigSetActive(element, status) { - if (status >= 0) { - element.setAttribute("active", status.toString()); - } - - switch (status) { - case 0: - element.setAttribute("src", ENIG_IMG_NOT_SELECTED); - break; - case 1: - element.setAttribute("src", ENIG_IMG_SELECTED); - break; - case 2: - element.setAttribute("src", ENIG_IMG_DISABLED); - break; - default: - element.setAttribute("active", -1); - } -} - - -/** - * Receive a GUI List and remove all entries - * - * @param XML-DOM (it will be changed!) - */ -function EnigCleanGuiList(guiList) { - while (guiList.firstChild) { - guiList.removeChild(guiList.firstChild); - } -} - -/** - * create a new treecell element - * - * @param String label of the cell - * - * @return treecell node - */ -function createCell(label) { - var cell = document.createXULElement("treecell"); - cell.setAttribute("label", label); - return cell; -} - - -/** - * Process the output of GPG and return the key details - * - * @param String Values separated by colons and linebreaks - * - * @return Object with the following keys: - * gUserId: Main user ID - * calcTrust, - * ownerTrust, - * fingerprint, - * showPhoto, - * uidList: List of Pseudonyms and E-Mail-Addresses, - * subkeyList: List of Subkeys - */ -function EnigGetKeyDetails(sigListStr) { - var gUserId; - var calcTrust; - var ownerTrust; - var fingerprint; - var creationDate; - var expiryDate; - var uidList = []; - var subkeyList = []; - var showPhoto = false; - - var sigList = sigListStr.split(/[\n\r]+/); - for (var i = 0; i < sigList.length; i++) { - var aLine = sigList[i].split(/:/); - switch (aLine[0]) { - case "pub": - gUserId = EnigConvertGpgToUnicode(aLine[9]); - calcTrust = aLine[1]; - if (aLine[11].indexOf("D") >= 0) { - calcTrust = "d"; - } - ownerTrust = aLine[8]; - creationDate = EnigmailTime.getDateTime(aLine[5], true, false); - expiryDate = EnigmailTime.getDateTime(aLine[6], true, false); - subkeyList.push(aLine); - if (!gUserId) { - gUserId = EnigConvertGpgToUnicode(aLine[9]); - } else if (uidList !== false) { - uidList.push(aLine); - } - break; - case "uid": - if (!gUserId) { - gUserId = EnigConvertGpgToUnicode(aLine[9]); - } else if (uidList !== false) { - uidList.push(aLine); - } - break; - case "uat": - // User Attributes with "1 " in field 9 determine JPEG pictures - if (aLine[9].search("1 ") === 0) { - showPhoto = true; - } - break; - case "sub": - subkeyList.push(aLine); - break; - case "fpr": - if (!fingerprint) { - fingerprint = aLine[9]; - } - break; - } - } - - var keyDetails = { - gUserId: gUserId, - calcTrust: calcTrust, - ownerTrust: ownerTrust, - fingerprint: fingerprint, - showPhoto: showPhoto, - uidList: uidList, - creationDate: creationDate, - expiryDate: expiryDate, - subkeyList: subkeyList - }; - return keyDetails; -} diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailConsole.htm enigmail-2.2.4/ui/content/enigmailConsole.htm --- enigmail-2.1.6+ds1/ui/content/enigmailConsole.htm 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailConsole.htm 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - Enigmail Console - - - - - - - -
    -ENIGMAIL CONSOLE
    -
    - - - - diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailConsole.js enigmail-2.2.4/ui/content/enigmailConsole.js --- enigmail-2.1.6+ds1/ui/content/enigmailConsole.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailConsole.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,140 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - - -"use strict"; - -var Cu = Components.utils; -var Cc = Components.classes; -var Ci = Components.interfaces; - -var EnigmailCore = ChromeUtils.import("chrome://enigmail/content/modules/core.jsm").EnigmailCore; -var EnigmailConsole = ChromeUtils.import("chrome://enigmail/content/modules/pipeConsole.jsm").EnigmailConsole; -var EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -var EnigmailData = ChromeUtils.import("chrome://enigmail/content/modules/data.jsm").EnigmailData; -var EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; - -/* global goUpdateCommand: false */ - -var gConsoleIntervalId; - -function consoleLoad() { - EnigmailLog.DEBUG("enigmailConsole.js: consoleLoad\n"); - - top.controllers.insertControllerAt(0, CommandController); - - EnigmailCore.getService(window); - - // Refresh console every 2 seconds - gConsoleIntervalId = window.setInterval(refreshConsole, 2000); - updateData(); -} - -function consoleUnload() { - EnigmailLog.DEBUG("enigmailConsole.js: consoleUnload\n"); - - // Cancel console refresh - if (window.consoleIntervalId) { - window.clearInterval(gConsoleIntervalId); - gConsoleIntervalId = null; - } -} - -function refreshConsole() { - //EnigmailLog.DEBUG("enigmailConsole.js: refreshConsole():\n"); - - if (EnigmailConsole.hasNewData()) { - EnigmailLog.DEBUG("enigmailConsole.js: refreshConsole(): hasNewData\n"); - - updateData(); - } - - return false; -} - -function updateData() { - //EnigmailLog.DEBUG("enigmailConsole.js: updateData():\n"); - - var contentFrame = EnigmailWindows.getFrame(window, "contentFrame"); - if (!contentFrame) - return; - - var consoleElement = contentFrame.document.getElementById('console'); - - consoleElement.firstChild.data = EnigmailData.convertToUnicode(EnigmailConsole.getData(), "utf-8"); - - if (!contentFrame.mouseDownState) - contentFrame.scrollTo(0, 9999); -} - - -function enigmailConsoleCopy() { - var selText = getSelectionStr(); - - EnigmailLog.DEBUG("enigmailConsole.js: enigmailConsoleCopy: selText='" + selText + "'\n"); - - if (selText) { - var clipHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].createInstance(Components.interfaces.nsIClipboardHelper); - - clipHelper.copyString(selText); - } - - return true; -} - -function getSelectionStr() { - try { - var contentFrame = EnigmailWindows.getFrame(window, "contentFrame"); - - var sel = contentFrame.getSelection(); - return sel.toString(); - - } catch (ex) { - return ""; - } -} - -function isItemSelected() { - EnigmailLog.DEBUG("enigmailConsole.js: isItemSelected\n"); - return getSelectionStr() !== ""; -} - -function UpdateCopyMenu() { - EnigmailLog.DEBUG("enigmailConsole.js: UpdateCopyMenu\n"); - goUpdateCommand("cmd_copy"); -} - -var CommandController = { - isCommandEnabled: function(aCommand) { - switch (aCommand) { - case "cmd_copy": - return isItemSelected(); - default: - return false; - } - }, - - supportsCommand: function(aCommand) { - switch (aCommand) { - case "cmd_copy": - return true; - default: - return false; - } - }, - - doCommand: function(aCommand) { - switch (aCommand) { - case "cmd_copy": - enigmailConsoleCopy(); - break; - default: - break; - } - }, - - onEvent: function(aEvent) {} -}; diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailConsole.xul enigmail-2.2.4/ui/content/enigmailConsole.xul --- enigmail-2.1.6+ds1/ui/content/enigmailConsole.xul 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailConsole.xul 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - - - - - %enigmailDTD; - - %utilDTD; -]> - - - - - - - - - -
    -   
    -  
    - - - - diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailKeygen.js enigmail-2.2.4/ui/content/enigmailKeygen.js --- enigmail-2.1.6+ds1/ui/content/enigmailKeygen.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailKeygen.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,516 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -// Uses: chrome://enigmail/content/ui/enigmailCommon.js - -"use strict"; - -var Cu = Components.utils; -var Cc = Components.classes; -var Ci = Components.interfaces; - -// modules -/* global EnigmailData: false, EnigmailLog: false, EnigmailLocale: false, EnigmailGpg: false, EnigmailKeyEditor: false */ -/* global EnigmailOS: false, EnigmailPrefs: false, EnigmailGpgAgent: false, EnigmailApp: false, EnigmailKeyRing: false */ -/* global EnigmailDialog: false, EnigmailFuncs: false */ - -// from enigmailCommon.js: -/* global EnigGetWindowOptions: false, EnigConfirm: false, EnigGetString: false, GetEnigmailSvc: false */ -/* global EnigLongAlert: false, EnigAlert: false, EnigInitCommon: false, ENIG_ACCOUNT_MANAGER_CONTRACTID: false */ -/* global EnigGetPref: false, EnigSetPref: false, EnigSavePrefs: false, EnigFilePicker: false, EnigGetFilePath: false */ -/* global EnigmailWindows: false, EnigCreateRevokeCert: false */ - -// Initialize enigmailCommon -EnigInitCommon("enigmailKeygen"); - -var gAccountManager = Components.classes[ENIG_ACCOUNT_MANAGER_CONTRACTID].getService(Components.interfaces.nsIMsgAccountManager); - -var gUserIdentityList; -var gUserIdentityListPopup; -var gUseForSigning; - -var gKeygenRequest; -var gAllData = ""; -var gGeneratedKey = null; -var gUsedId; - -const KEYGEN_CANCELLED = "cancelled"; - -function enigmailKeygenLoad() { - EnigmailLog.DEBUG("enigmailKeygen.js: Load\n"); - - gUserIdentityList = document.getElementById("userIdentity"); - gUserIdentityListPopup = document.getElementById("userIdentityPopup"); - gUseForSigning = document.getElementById("useForSigning"); - - var noPassphrase = document.getElementById("noPassphrase"); - - if (!EnigmailGpg.getGpgFeature("keygen-passphrase")) { - document.getElementById("passphraseRow").setAttribute("collapsed", "true"); - noPassphrase.setAttribute("collapsed", "true"); - } - - if (EnigmailGpg.getGpgFeature("supports-ecc-keys")) { - let eccElem = document.getElementById("keyType_ecc"); - eccElem.removeAttribute("hidden"); - updateKeySizeSel(eccElem); - document.getElementById("keyType").selectedItem = eccElem; - } - - - if (gUserIdentityListPopup) { - fillIdentityListPopup(); - } - gUserIdentityList.focus(); - - // restore safe setting, which you ALWAYS explicitly have to overrule, - // if you don't want them: - // - specify passphrase - // - specify expiry date - noPassphrase.checked = false; - EnigSetPref("noPassphrase", noPassphrase.checked); - var noExpiry = document.getElementById("noExpiry"); - noExpiry.checked = false; - - enigmailKeygenUpdate(true, false); - - var enigmailSvc = GetEnigmailSvc(); - if (!enigmailSvc) { - EnigAlert(EnigGetString("accessError")); - } - - if (EnigmailGpgAgent.agentType != "gpg") { - EnigAlert(EnigGetString("onlyGPG")); - return; - } -} - -function updateKeySizeSel(selectedObj) { - if (selectedObj.id === "keyType_ecc") { - document.getElementById("keySize").setAttribute("disabled", "true"); - } else { - document.getElementById("keySize").removeAttribute("disabled"); - } -} - -function enigmailOnClose() { - var closeWin = true; - if (gKeygenRequest) { - closeWin = EnigConfirm(EnigGetString("keyAbort"), EnigGetString("keyMan.button.generateKeyAbort"), EnigGetString("keyMan.button.generateKeyContinue")); - } - if (closeWin) abortKeyGeneration(); - return closeWin; -} - -function enigmailKeygenUnload() { - EnigmailLog.DEBUG("enigmailKeygen.js: Unload\n"); - - enigmailKeygenCloseRequest(); -} - - -function enigmailKeygenUpdate(getPrefs, setPrefs) { - EnigmailLog.DEBUG("enigmailKeygen.js: Update: " + getPrefs + ", " + setPrefs + "\n"); - - var noPassphrase = document.getElementById("noPassphrase"); - var noPassphraseChecked = getPrefs ? EnigGetPref("noPassphrase") : noPassphrase.checked; - - if (setPrefs) { - EnigSetPref("noPassphrase", noPassphraseChecked); - } - - noPassphrase.checked = noPassphraseChecked; - - var passphrase1 = document.getElementById("passphrase"); - var passphrase2 = document.getElementById("passphraseRepeat"); - passphrase1.disabled = noPassphraseChecked; - passphrase2.disabled = noPassphraseChecked; -} - -function enigmailKeygenTerminate(exitCode) { - EnigmailLog.DEBUG("enigmailKeygen.js: Terminate:\n"); - - var curId = gUsedId; - - gKeygenRequest = null; - - if ((!gGeneratedKey) || gGeneratedKey == KEYGEN_CANCELLED) { - if (!gGeneratedKey) - EnigAlert(EnigGetString("keyGenFailed")); - return; - } - - var progMeter = document.getElementById("keygenProgress"); - progMeter.setAttribute("value", 100); - - if (gGeneratedKey) { - if (gUseForSigning.checked) { - curId.setBoolAttribute("enablePgp", true); - curId.setIntAttribute("pgpKeyMode", 1); - curId.setCharAttribute("pgpkeyId", "0x" + gGeneratedKey); - - enigmailKeygenUpdate(false, true); - - EnigSavePrefs(); - - EnigmailWindows.keyManReloadKeys(); - - if (EnigConfirm(EnigGetString("keygenComplete", curId.email) + "\n\n" + EnigGetString("revokeCertRecommended"), EnigGetString("keyMan.button.generateCert"))) { - EnigCreateRevokeCert(gGeneratedKey, curId.email, closeAndReset); - } else - closeAndReset(); - } else { - if (EnigConfirm(EnigGetString("genCompleteNoSign") + "\n\n" + EnigGetString("revokeCertRecommended"), EnigGetString("keyMan.button.generateCert"))) { - EnigCreateRevokeCert(gGeneratedKey, curId.email, closeAndReset); - genAndSaveRevCert(gGeneratedKey, curId.email).then( - function _resolve() { - closeAndReset(); - }, - function _reject() { - // do nothing - } - ); - } else - closeAndReset(); - } - } else { - EnigAlert(EnigGetString("keyGenFailed")); - window.close(); - } -} - -/** - * generate and save a revokation certificate. - * - * return: Promise object - */ - -function genAndSaveRevCert(keyId, uid) { - EnigmailLog.DEBUG("enigmailKeygen.js: genAndSaveRevCert\n"); - - return new Promise( - function(resolve, reject) { - - let keyFile = EnigmailApp.getProfileDirectory(); - keyFile.append("0x" + keyId + "_rev.asc"); - - // create a revokation cert in the TB profile directoy - EnigmailKeyEditor.genRevokeCert(window, "0x" + keyId, keyFile, "1", "", - function _revokeCertCb(exitCode, errorMsg) { - if (exitCode !== 0) { - EnigAlert(EnigGetString("revokeCertFailed") + "\n\n" + errorMsg); - reject(1); - } - saveRevCert(keyFile, keyId, uid, resolve, reject); - }); - } - ); -} - -/** - * create a copy of the revokation cert at a user defined location - */ -function saveRevCert(inputKeyFile, keyId, uid, resolve, reject) { - - let defaultFileName = uid.replace(/[\\/<>]/g, ""); - defaultFileName += " (0x" + keyId + ") rev.asc"; - - let outFile = EnigFilePicker(EnigGetString("saveRevokeCertAs"), - "", true, "*.asc", - defaultFileName, [EnigGetString("asciiArmorFile"), "*.asc"]); - - if (outFile) { - try { - inputKeyFile.copyToFollowingLinks(outFile.parent, outFile.leafName); - EnigmailDialog.info(window, EnigGetString("revokeCertOK")); - } catch (ex) { - EnigAlert(EnigGetString("revokeCertFailed")); - reject(2); - } - } - resolve(); -} - -function closeAndReset() { - EnigmailKeyRing.clearCache(); - window.close(); -} - -// Cleanup -function enigmailKeygenCloseRequest() { - EnigmailLog.DEBUG("enigmailKeygen.js: CloseRequest\n"); - - if (gKeygenRequest) { - var p = gKeygenRequest; - gKeygenRequest = null; - p.kill(false); - } -} - -function enigmailCheckPassphrase() { - var passphraseElement = document.getElementById("passphrase"); - var passphrase2Element = document.getElementById("passphraseRepeat"); - - var passphrase = passphraseElement.value; - - if (passphrase != passphrase2Element.value) { - EnigAlert(EnigGetString("passNoMatch")); - return null; - } - - if (passphrase.search(/[^\x20-\x7E]/) >= 0) { - if (!EnigmailDialog.confirmDlg(window, EnigmailLocale.getString("keygen.passCharProblem"), - EnigmailLocale.getString("dlg.button.ignore"), EnigmailLocale.getString("dlg.button.cancel"))) { - return null; - } - } - if ((passphrase.search(/^\s/) === 0) || (passphrase.search(/\s$/) >= 0)) { - EnigAlert(EnigGetString("passSpaceProblem")); - return null; - } - - return passphrase; -} - - - -function enigmailKeygenStart() { - EnigmailLog.DEBUG("enigmailKeygen.js: Start\n"); - - - if (gKeygenRequest) { - let req = gKeygenRequest.QueryInterface(Components.interfaces.nsIRequest); - if (req.isPending()) { - EnigmailDialog.info(window, EnigGetString("genGoing")); - return; - } - } - - gGeneratedKey = null; - gAllData = ""; - - var enigmailSvc = GetEnigmailSvc(); - if (!enigmailSvc) { - EnigAlert(EnigGetString("accessError")); - return; - } - - var passphrase; - // gpg >= 2.1 queries passphrase using gpg-agent only - if (EnigmailGpg.getGpgFeature("keygen-passphrase")) { - var noPassphraseElement = document.getElementById("noPassphrase"); - var passphraseElement = document.getElementById("passphrase"); - - if (!noPassphraseElement.checked) { - if (passphraseElement.value.trim() === "") { - EnigmailDialog.info(window, EnigGetString("passCheckBox")); - return; - } - - passphrase = enigmailCheckPassphrase(); - if (passphrase === null) return; - } - - } else { - passphrase = ""; - } - - var noExpiry = document.getElementById("noExpiry"); - var expireInput = document.getElementById("expireInput"); - var timeScale = document.getElementById("timeScale"); - - var expiryTime = 0; - if (!noExpiry.checked) { - expiryTime = Number(expireInput.value) * Number(timeScale.value); - if (expiryTime > 36500) { - EnigmailDialog.info(window, EnigGetString("expiryTooLong")); - return; - } - if (expiryTime <= 0) { - EnigmailDialog.info(window, EnigGetString("expiryTooShort")); - return; - } - } - var keySize = Number(document.getElementById("keySize").value); - var keyType = document.getElementById("keyType").value; - - var curId = getCurrentIdentity(); - gUsedId = curId; - - var userName = curId.fullName; - var userEmail = curId.email; - - if (!userName) { - EnigmailDialog.info(window, EnigGetString("keygen.missingUserName")); - return; - } - - var idString = userName; - - idString += " <" + userEmail + ">"; - - var confirmMsg = EnigGetString("keyConfirm", idString); - - if (!EnigConfirm(confirmMsg, EnigGetString("keyMan.button.generateKey"))) { - return; - } - - var proc = null; - - var listener = { - onStartRequest: function() {}, - onStopRequest: function(status) { - enigmailKeygenTerminate(status); - }, - onDataAvailable: function(data) { - EnigmailLog.DEBUG("enigmailKeygen.js: onDataAvailable() " + data + "\n"); - - gAllData += data; - var keyCreatedIndex = gAllData.indexOf("[GNUPG:] KEY_CREATED"); - if (keyCreatedIndex > 0) { - gGeneratedKey = gAllData.substr(keyCreatedIndex); - gGeneratedKey = gGeneratedKey.replace(/(.*\[GNUPG:\] KEY_CREATED . )([a-fA-F0-9]+)([\n\r].*)*/, "$2"); - gAllData = gAllData.replace(/\[GNUPG:\] KEY_CREATED . [a-fA-F0-9]+[\n\r]/, ""); - } - gAllData = gAllData.replace(/[\r\n]*\[GNUPG:\] GOOD_PASSPHRASE/g, "").replace(/([\r\n]*\[GNUPG:\] PROGRESS primegen )(.)( \d+ \d+)/g, "$2"); - var progMeter = document.getElementById("keygenProgress"); - var progValue = Number(progMeter.value); - progValue += (1 + (100 - progValue) / 200); - if (progValue >= 95) progValue = 10; - progMeter.setAttribute("value", progValue); - } - }; - - try { - gKeygenRequest = EnigmailKeyRing.generateKey( - EnigmailData.convertFromUnicode(userName), - "", // user id comment - EnigmailData.convertFromUnicode(userEmail), - expiryTime, - keySize, - keyType, - EnigmailData.convertFromUnicode(passphrase), - listener); - } catch (ex) { - EnigmailLog.DEBUG("enigmailKeygen.js: generateKey() failed with " + ex.toString() + "\n" + ex.stack + "\n"); - } - - if (!gKeygenRequest) { - EnigAlert(EnigGetString("keyGenFailed")); - } - - EnigmailLog.WRITE("enigmailKeygen.js: Start: gKeygenRequest = " + gKeygenRequest + "\n"); -} - -function abortKeyGeneration() { - gGeneratedKey = KEYGEN_CANCELLED; - enigmailKeygenCloseRequest(); -} - -function enigmailKeygenCancel() { - EnigmailLog.DEBUG("enigmailKeygen.js: Cancel\n"); - var closeWin = false; - - if (gKeygenRequest) { - closeWin = EnigConfirm(EnigGetString("keyAbort"), EnigGetString("keyMan.button.generateKeyAbort"), EnigGetString("keyMan.button.generateKeyContinue")); - if (closeWin) abortKeyGeneration(); - } else { - closeWin = true; - } - - if (closeWin) window.close(); -} - -function onNoExpiry() { - var noExpiry = document.getElementById("noExpiry"); - var expireInput = document.getElementById("expireInput"); - var timeScale = document.getElementById("timeScale"); - - expireInput.disabled = noExpiry.checked; - timeScale.disabled = noExpiry.checked; -} - - -function queryISupArray(supportsArray, iid) { - var result = []; - var i; - // Gecko > 20 - for (i = 0; i < supportsArray.length; i++) { - result.push(supportsArray.queryElementAt(i, iid)); - } - - return result; -} - -function getCurrentIdentity() { - var item = gUserIdentityList.selectedItem; - var identityKey = item.getAttribute('id'); - - var identity = gAccountManager.getIdentity(identityKey); - - return identity; -} - -function fillIdentityListPopup() { - EnigmailLog.DEBUG("enigmailKeygen.js: fillIdentityListPopup\n"); - - try { - var idSupports = gAccountManager.allIdentities; - var identities = queryISupArray(idSupports, - Components.interfaces.nsIMsgIdentity); - - EnigmailLog.DEBUG("enigmailKeygen.js: fillIdentityListPopup: " + identities + "\n"); - - // Default identity - let defIdentity = EnigmailFuncs.getDefaultIdentity(); - - EnigmailLog.DEBUG("enigmailKeygen.js: fillIdentityListPopup: default=" + defIdentity.key + "\n"); - - var selected = false; - for (var i = 0; i < identities.length; i++) { - var identity = identities[i]; - - EnigmailLog.DEBUG("id.valid=" + identity.valid + "\n"); - if (!identity.valid || !identity.email) - continue; - - var serverSupports, inServer; - // Gecko >= 20 - serverSupports = gAccountManager.getServersForIdentity(identity); - if (serverSupports.length > 0) { - inServer = serverSupports.queryElementAt(0, Components.interfaces.nsIMsgIncomingServer); - } - - if (inServer) { - var accountName = " - " + inServer.prettyName; - - EnigmailLog.DEBUG("enigmailKeygen.js: accountName=" + accountName + "\n"); - EnigmailLog.DEBUG("enigmailKeygen.js: email=" + identity.email + "\n"); - - var item = document.createXULElement('menuitem'); - // item.setAttribute('label', identity.identityName); - item.setAttribute('label', identity.identityName + accountName); - item.setAttribute('class', 'identity-popup-item'); - item.setAttribute('accountname', accountName); - item.setAttribute('id', identity.key); - item.setAttribute('email', identity.email); - - gUserIdentityListPopup.appendChild(item); - - if (!selected) - gUserIdentityList.selectedItem = item; - - if (identity.key == defIdentity.key) { - gUserIdentityList.selectedItem = item; - selected = true; - } - } - } - } - catch(ex) { - EnigmailLog.writeException("enigmailKeygen.js: fillIdentityListPopup: exception\n", ex); - } -} diff -Nru enigmail-2.1.6+ds1/ui/content/enigmailKeygen.xul enigmail-2.2.4/ui/content/enigmailKeygen.xul --- enigmail-2.1.6+ds1/ui/content/enigmailKeygen.xul 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/enigmailKeygen.xul 1970-01-01 00:00:00.000000000 +0000 @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - The Enigmail Project - -
    -
    -
    -
    - -
    - -

    - -

    - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/content/updateGnuPG.js enigmail-2.2.4/ui/content/updateGnuPG.js --- enigmail-2.1.6+ds1/ui/content/updateGnuPG.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/updateGnuPG.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,185 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -var Cu = Components.utils; -var Cc = Components.classes; -var Ci = Components.interfaces; - -const EnigmailLocalizeHtml = ChromeUtils.import("chrome://enigmail/content/modules/localizeHtml.jsm").EnigmailLocalizeHtml; -const EnigmailGnuPGUpdate = ChromeUtils.import("chrome://enigmail/content/modules/gnupgUpdate.jsm").EnigmailGnuPGUpdate; -const EnigmailDialog = ChromeUtils.import("chrome://enigmail/content/modules/dialog.jsm").EnigmailDialog; -const EnigmailLocale = ChromeUtils.import("chrome://enigmail/content/modules/locale.jsm").EnigmailLocale; -const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; -const EnigmailLog = ChromeUtils.import("chrome://enigmail/content/modules/log.jsm").EnigmailLog; -const EnigmailLazy = ChromeUtils.import("chrome://enigmail/content/modules/lazy.jsm").EnigmailLazy; -const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; -const getCore = EnigmailLazy.loader("enigmail/core.jsm", "EnigmailCore"); - - -var gEnigmailSvc = null; -var gResolveInstall = null; -var gDownoadObj = null; - -async function checkGnuPGUpdate() { - let elem = "noUpdateAvailable"; - - if (!EnigmailGnuPGUpdate.isGnuPGUpdatable()) { - elem = "cannotUpdateGnuPG"; - } else if (await EnigmailGnuPGUpdate.isUpdateAvailable()) { - elem = "updateAvailable"; - } - - document.getElementById(elem).classList.remove("hidden"); -} - - -function onload() { - EnigmailLocalizeHtml.onPageLoad(document); - if (!EnigmailGnuPGUpdate.isAutoCheckEnabled()) { - document.getElementById("noMoreUpdates").checked = true; - } - checkGnuPGUpdate(); -} - -function stopChecking(elem) { - if (elem.checked) { - EnigmailGnuPGUpdate.stopCheckingForUpdate(); - } else { - EnigmailGnuPGUpdate.enableCheckingForUpdate(); - } -} - -function installUpdate() { - let progressBox = document.getElementById("progressBox"); - let downloadProgress = document.getElementById("downloadProgress"); - let installProgressBox = document.getElementById("installProgressBox"); - let installProgress = document.getElementById("installProgress"); - let btnInstallGnupg = document.getElementById("btnInstallGnupg"); - - btnInstallGnupg.setAttribute("disabled", true); - progressBox.classList.remove("hidden"); - - let requireKeysUpgrade = EnigmailGnuPGUpdate.requireKeyRingUpgrade(); - - EnigmailGnuPGUpdate.performUpdate({ - onStart: function(reqObj) { - gDownoadObj = reqObj; - }, - - onError: function(errorMessage) { - if (typeof(errorMessage) == "object") { - var s = EnigmailLocale.getString("errorType." + errorMessage.type); - if (errorMessage.type.startsWith("Security")) { - s += "\n" + EnigmailLocale.getString("setupWizard.downloadForbidden"); - } else - s += "\n" + EnigmailLocale.getString("setupWizard.downloadImpossible"); - - EnigmailDialog.alert(window, s); - } else { - EnigmailDialog.alert(window, EnigmailLocale.getString(errorMessage)); - } - - this.returnToDownload(); - }, - - onWarning: function(message) { - var ret = false; - if (message == "hashSumMismatch") { - ret = EnigmailDialog.confirmDlg(window, EnigmailLocale.getString("setupWizard.hashSumError"), EnigmailLocale.getString("dlgYes"), - EnigmailLocale.getString("dlgNo")); - } - - if (!ret) this.returnToDownload(); - - return ret; - }, - - onProgress: function(event) { - if (event.lengthComputable) { - var percentComplete = event.loaded / event.total * 100; - downloadProgress.setAttribute("value", percentComplete); - } else { - downloadProgress.removeAttribute("value"); - } - }, - - onDownloaded: function() { - gDownoadObj = null; - downloadProgress.setAttribute("value", 100); - installProgressBox.classList.remove("hidden"); - }, - - - returnToDownload: function() { - btnInstallGnupg.removeAttribute("disabled"); - progressBox.classList.add("hidden"); - downloadProgress.setAttribute("value", 0); - installProgressBox.classList.add("hidden"); - }, - - onLoaded: async function() { - installProgress.setAttribute("value", 100); - - let origPath = EnigmailPrefs.getPref("agentPath"); - EnigmailPrefs.setPref("agentPath", ""); - - let svc = reinitEnigmail(); - - if (!svc) { - EnigmailPrefs.setPref("agentPath", origPath); - this.returnToDownload(); - EnigmailDialog.alert(window, EnigmailLocale.getString("setupWizard.installFailed")); - } else { - if (requireKeysUpgrade) { - document.getElementById("convertKeyring").classList.remove("hidden"); - EnigmailGnuPGUpdate.triggerKeyringConversion(); - document.getElementById("importingKeysProgress").classList.add("hidden"); - document.getElementById("importingKeysDone").classList.remove("hidden"); - } - - document.getElementById("updateComplete").classList.remove("hidden"); - } - } - }); -} - -function reinitEnigmail() { - if (!gEnigmailSvc) { - try { - gEnigmailSvc = getCore().createInstance(); - } catch (ex) { - EnigmailLog.ERROR("updateGnuPG.js: reinitEnigmail: Error in instantiating EnigmailService\n"); - return null; - } - } - - EnigmailLog.DEBUG("updateGnuPG.js: reinitEnigmail: gEnigmailSvc = " + gEnigmailSvc + "\n"); - - if (gEnigmailSvc.initialized) { - try { - gEnigmailSvc.reinitialize(); - } catch (ex) {} - } else { - // Try to initialize Enigmail - - try { - // Initialize enigmail - gEnigmailSvc.initialize(window, EnigmailApp.getVersion()); - - // Reset alert count to default value - EnigmailPrefs.getPrefBranch().clearUserPref("initAlert"); - } catch (ex) { - return null; - } - - let configuredVersion = EnigmailPrefs.getPref("configuredVersion"); - EnigmailLog.DEBUG("updateGnuPG.js: reinitEnigmail: " + configuredVersion + "\n"); - } - - return gEnigmailSvc.initialized ? gEnigmailSvc : null; -} diff -Nru enigmail-2.1.6+ds1/ui/content/upgradeInfo.html enigmail-2.2.4/ui/content/upgradeInfo.html --- enigmail-2.1.6+ds1/ui/content/upgradeInfo.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/content/upgradeInfo.html 2020-10-01 13:32:58.000000000 +0000 @@ -6,25 +6,19 @@ --> - + - +
    @@ -32,22 +26,26 @@

    -

    +

    -

    -

    - -

    Changed behavior of Encrypt and Sign Buttons

    -

    - -

    -

    +

    +

    -

    -

    + + +

    + +

    +

    +
    +

    +

    + +

    -

    diff -Nru enigmail-2.1.6+ds1/ui/content/upgradeInfo.js enigmail-2.2.4/ui/content/upgradeInfo.js --- enigmail-2.1.6+ds1/ui/content/upgradeInfo.js 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/ui/content/upgradeInfo.js 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,30 @@ +/* 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 https://mozilla.org/MPL/2.0/. */ + +"use strict"; + +var Cu = Components.utils; +var Cc = Components.classes; +var Ci = Components.interfaces; + +const EnigmailLocalizeHtml = ChromeUtils.import("chrome://enigmail/content/modules/localizeHtml.jsm").EnigmailLocalizeHtml; +const EnigmailWindows = ChromeUtils.import("chrome://enigmail/content/modules/windows.jsm").EnigmailWindows; +const EnigmailTimer = ChromeUtils.import("chrome://enigmail/content/modules/timer.jsm").EnigmailTimer; +const EnigmailSingletons = ChromeUtils.import("chrome://enigmail/content/modules/singletons.jsm").EnigmailSingletons; +const EnigmailPrefs = ChromeUtils.import("chrome://enigmail/content/modules/prefs.jsm").EnigmailPrefs; +const EnigmailApp = ChromeUtils.import("chrome://enigmail/content/modules/app.jsm").EnigmailApp; + + +function onload() { + EnigmailSingletons.upgradeInfoDisplayed = true; + EnigmailTimer.setTimeout(() => { + EnigmailLocalizeHtml.onPageLoad(document); + + EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion()); + }, 50); +} + +function performMigration() { + window.openDialog("chrome://enigmail/content/ui/setupWizard2.xhtml", "", "chrome,dialog,centerscreen"); +} diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/am-enigprefs.properties enigmail-2.2.4/ui/locale/en-US/am-enigprefs.properties --- enigmail-2.1.6+ds1/ui/locale/en-US/am-enigprefs.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/am-enigprefs.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -# Strings used in the Mozill AccountManager -prefPanel-enigprefs=OpenPGP Security diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/enigmail.dtd enigmail-2.2.4/ui/locale/en-US/enigmail.dtd --- enigmail-2.1.6+ds1/ui/locale/en-US/enigmail.dtd 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/enigmail.dtd 2020-10-01 13:32:58.000000000 +0000 @@ -1,284 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OpenPGP Security)"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTE: Key generation may take up to several minutes to complete. Do not exit the application while key generation is in progress. Actively browsing or performing disk-intensive operations during key generation will replenish the 'randomness pool' and speed-up the process. You will be alerted when key generation is completed."> - @@ -297,495 +20,25 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -NOTE: Key generation may take up to several minutes to complete. Do not exit the application while key generation is in progress. You will be alerted when key generation is completed."> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/enigmail.properties enigmail-2.2.4/ui/locale/en-US/enigmail.properties --- enigmail-2.1.6+ds1/ui/locale/en-US/enigmail.properties 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/enigmail.properties 2020-10-01 13:32:58.000000000 +0000 @@ -1,374 +1,37 @@ Enigmail=Enigmail - - -##################################################################### -# Strings used within enigmailCommon.js and enigmailCommon.jsm -##################################################################### - enigAlert=Enigmail Alert enigConfirm=Enigmail Confirmation enigInfo=Enigmail Information -enigError=Enigmail Error enigPrompt=Enigmail Prompt - -dlgYes=&Yes dlgNo=&No dlgKeepSetting=Remember my answer and do not ask me again dlgNoPrompt=Do not show me this dialog again -dlg.button.delete=&Delete dlg.button.cancel=&Cancel dlg.button.close=&Close dlg.button.continue=Con&tinue -dlg.button.skip=&Skip -dlg.button.overwrite=&Overwrite -dlg.button.view=&View -dlg.button.retry=&Retry -dlg.button.ignore=&Ignore -dlg.button.install=&Install dlg.button.ok=&OK - repeatPrefix=\n\nThis alert will repeat %S repeatSuffixSingular=more time. repeatSuffixPlural=more times. noRepeat=\n\nThis alert will not repeat until you upgrade Enigmail. - -pgpNotSupported=You seem to be using Enigmail together with PGP 6.x\n\nUnfortunately, PGP 6.x has a number of issues that prevent Enigmail from working correctly. Therefore, Enigmail does not support PGP 6.x anymore; please switch to GnuPG (GPG) instead.\n\nIf you need help on switching to GnuPG, check the Help section of the Enigmail homepage. -initErr.howToFixIt=In order to use Enigmail, GnuPG is required. If you did not install GnuPG yet, the easiest way to do this is using the "Setup Wizard" button below. -initErr.setupWizard.button=&Setup Wizard passphraseCleared=The passphrase has been cleared. cannotClearPassphrase=You are using a non-standard tool (such as gnome-keyring) for passphrase handling. Clearing the passphrase is therefore not possible from within Enigmail. -noPhotoAvailable=No Photo available -debugLog.title=Enigmail Debug Log -error.photoPathNotReadable=Photo path '%S' is not readable - -generalError=Error: %S - -# Strings in configure.jsm -enigmailCommon.versionSignificantlyChanged=This new version of Enigmail has significant changes in the handling of preferences and options. We tried to transfer the old settings to this new version. However, we cannot cover all cases automatically. Please double check the resulting new preferences and options. -enigmailCommon.checkPreferences=Check Preferences ... -preferences.defaultToPgpMime=We have changed the default message encoding in Enigmail from Inline-PGP to PGP/MIME. We recommend you keep this as default.\n\nIf you still wish to use Inline-PGP by default, you can do so in the Account Settings under OpenPGP Security. - -##################################################################### -# Strings in enigmailAbout.js -##################################################################### - usingVersion=Running Enigmail version %S -enigmailPepVersion=Enigmail/p≡p version %S usingAgent=Using %1$S executable %2$S to encrypt and decrypt agentError=ERROR: Failed to access Enigmail core service! - -##################################################################### -# Strings in enigmailKeygen.js -##################################################################### - -accessError=Error in accessing Enigmail service -onlyGPG=Key generation only works with GnuPG (not with PGP)! - -keygenComplete=Key generation completed! Identity <%S> will be used for signing. -revokeCertRecommended=We highly recommend to create a revocation certificate for your key. This certificate can be used to invalidate your key, e.g. in case your secret key gets lost or compromised. Do you want to create such a revocation certificate now? -keyMan.button.generateCert=&Generate Certificate -genCompleteNoSign=Key generation completed! -genGoing=Key generation already in progress! - -passNoMatch=Passphrase entries do not match; please re-enter -passCheckBox=Please check box if specifying no passphrase for key -passUserName=Please specify user name for this identity -keygen.missingUserName=There is no name specified for the selected account/identity. Please enter a value in the field "Your name" in the account settings. -keygen.passCharProblem=You are using special characters in your passphrase. Unfortunately, this can cause troubles for other applications. We recommend you choose a passphrase consisting only of any of these characters:\na-z A-Z 0-9 /.;:-,!?(){}[]%* -passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character. -changePassFailed=Changing the passphrase failed. - -keyConfirm=Generate public and secret key for '%S'? -keyMan.button.generateKey=&Generate Key -keyAbort=Abort key generation? -keyMan.button.generateKeyAbort=&Abort Key Generation -keyMan.button.generateKeyContinue=&Continue Key Generation -expiryTooLong=You cannot create a key that expires in more than 100 years. -expiryTooLongShorter=You cannot create a key that expires in more than 90 years. -expiryTooShort=Your key must be valid for at least one day. -keyGenFailed=The key generation failed. Please check the Enigmail console (Menu Enigmail > Debugging Options) for details. -setKeyExpirationDateFailed=The expiration date could not be changed - -# Strings in enigmailMessengerOverlay.js -securityInfo=Enigmail Security Info\n\n - -enigHeader=Enigmail: -enigContentNote=Enigmail: *Attachments to this message have not been signed nor encrypted*\r\n\r\n -possiblyPgpMime=Possibly PGP/MIME encrypted or signed message; use 'Decrypt/Verify' function to verify - -saveAttachmentHeader=Enigmail: Save decrypted attachment -noTempDir=Could not find a temporary directory to write to\nPlease set the TEMP environment variable -attachmentPgpKey=The attachment '%S' you are opening appears to be an OpenPGP key file.\n\nClick 'Import' to import the keys contained or 'View' to view the file contents in a browser window - -beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* ********* -endPgpPart=********** *END ENCRYPTED or SIGNED PART* ********** -notePartEncrypted=Enigmail: *Parts of the message have NOT been signed nor encrypted* -noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted* - -decryptOkNoSig=Warning\n\nDecryption was successful, but the signature could not be verified correctly -msgOvl.button.contAnyway=&Continue Anyway -signature.verifiedOK=The signature for attachment %S was successfully verified -signature.verifyFailed=The signature for attachment %S could not be verified -attachment.noMatchToSignature=Could not match attachment '%S' to a signature file -attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment -fixBrokenExchangeMsg.failed=Did not succeed to repair message. -enigmail.msgViewColumn.label=Enigmail -enigmailPep.msgViewColumn.label=Enigmail/p≡p -detailsDlg.importKey=Import key -wksNoIdentity=This key is not linked to any of your email accounts. Please add an account for at least one of the following email addresse(s):\n\n%S -wksConfirmSuccess=Confirmation email sent. -wksConfirmFailure=Sending the confirmation email failed. -autocrypt.importSetupKey.accountPreconfigured=Your account is already correctly configured for Autocrypt.\n\nDo you really want to overwrite your settings with this setup message? -autocrypt.importSetupKey.selfCreated=This message was created by your currently running instance of Enigmail.\n\nPlease switch to the email client to which you want to transfer the settings, and click on the message on that email client to import the settings. -autocrypt.importSetupKey.invalidMessage=Error - could not read setup message. The message seems to be corrupted. Please try to create a new setup message on your "other" device. -autocrypt.importSetupKey.invalidKey=Error - the key could not be imported. The key is either not supported by your version of GnuPG, or it got corrupted. -autocrypt.importSetupKey.wrongPasswd=The password you entered is wrong. Do you want to retry? -autocrypt.importSetupKey.success=The Autocrypt setup message was processed successfully. Autocrypt is now available for your account '%S'. - -##################################################################### -# Strings in enigmailMsgComposeOverlay.js -##################################################################### - -keysToExport=Select OpenPGP Keys to Insert keysToUse=Select OpenPGP Key(s) to use for %S pubKey=Public key for %S\n - -windowLocked=Compose window is locked; send cancelled -sendUnencrypted=Failed to initialize Enigmail.\nSend unencrypted message? -composeSpecifyEmail=Please specify your primary email address, which will be used to choose the signing key for outgoing messages.\n If you leave it blank, the FROM address of the message will be used to choose the signing key. -sendingHiddenRcpt=This message has BCC (blind copy) recipients. If this message is encrypted, it is possible to hide the BCC recipients but users of some products (e.g. PGP Corp.) will not be able to decrypt the message. Given this, we recommend to avoid BCC-emails with encrypted messages. -sendWithHiddenBcc=Hide BCC recipients -sendWithShownBcc=Encrypt normally -sendingNews=Encrypted send operation aborted.\n\nThis message cannot be encrypted because there are newsgroup recipients. Please re-send the message without encryption. -sendToNewsWarning=Warning: you are about to send an encrypted email to a newsgroup.\n\nThis is discouraged because it only makes sense if all members of the group can decrypt the message, i.e. the message needs to be encrypted with the keys of all group participants. Please send this message only if you know exactly what you are doing.\n\nContinue? -hasHTML=HTML email warning:\nThis message may contain HTML, which could cause signing/encryption to fail. To avoid this in the future, you should press the SHIFT key when clicking on the Compose/Reply button to send signed email.\nIf you sign email by default, you should uncheck the 'Compose Messages in HTML' preference box to permanently disable HTML email for this email account. -strippingHTML=Message contains HTML formatting information that will be lost when converting to plain text for signing/encryption. Do you wish to proceed? -msgCompose.button.sendAnyway=&Send Message Anyway -attachWarning=Attachments to this message are not local, they cannot be encrypted. In order to encrypt the attachments, store them as local files first and attach these files. Do you wish to send the message anyway? quotedPrintableWarn=You have enabled 'quoted-printable' encoding for sending messages. This may result in incorrect decryption and/or verification of your message.\nDo you wish to turn off sending 'quoted-printable' messages now? -minimalLineWrapping=You have set line wrapping to %S characters. For correct encryption and/or signing, this value needs to be at least 68.\nDo you wish to change line wrapping to 68 characters now? warning=Warning -signIconClicked=You have manually modified signing. Therefore, while you are composing this message, (de)activating signing does not depend anymore on (de)activating encryption. -errorOwnKeyUnusable=The key ID '%S' configured for the current identity does not yield a usable OpenPGP key.\n\nPlease ensure that you have a valid, not expired OpenPGP key and that your account settings point to that key.\nIf your key is not expired, then check if you did set Owner trust to "full" or "ultimate". -msgCompose.cannotSaveDraft=Error while saving draft -msgCompose.partiallyEncrypted.short=Beware of leaking sensitive information - partially encrypted email. -msgCompose.partiallyEncrypted.inlinePGP=The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.\n\nPlease consider removing all quoted text from your reply to this sender. - -msgCompose.internalEncryptionError=Internal Error: promised encryption disabled -msgCompose.internalError=An internal error has occurred. - -msgCompose.toolbarTxt.signAndEncrypt=This message will be signed and encrypted -msgCompose.toolbarTxt.signOnly=This message will be signed -msgCompose.toolbarTxt.encryptOnly=This message will be encrypted -msgCompose.toolbarTxt.noEncryption=This message will be unsigned and unencrypted -msgCompose.toolbarTxt.disabled=Enigmail is disabled for the selected identity -msgCompose.protectSubject.tooltip=Protect the message subject -msgCompose.noSubjectProtection.tooltip=Do not protect the message subject -msgCompose.protectSubject.dialogTitle=Enable Protection of Subject? -msgCompose.protectSubject.question=Regular encrypted emails contain the unredacted subject.\n\nWe have established a standard to hide the original subject in the encrypted message\nand replace it with a dummy text, such that the subject is only visible after the email is decrypted.\n\nDo you want to protect the subject in encrypted messages? -msgCompose.protectSubject.yesButton=&Protect subject -msgCompose.protectSubject.noButton=&Leave subject unprotected - -msgCompose.detailsButton.label=Details ... -msgCompose.detailsButton.accessKey=D - -msgCompose.pepSendUnknown=Unknown -msgCompose.pepSendUnsecure=Unsecure -msgCompose.pepSendSecure=Secure -msgCompose.pepSendTrusted=Secure & Trusted - -pep.alert.disabledForIdentity=p≡p is disabled for the current identity. Please enable p≡p via the Enigmail/p≡p preferences. -pep.alert.weakReply=You are about to forward or reply to a secure message, but the message you are sending will be unsecure. If you choose to proceed, confidential information might be leaked putting you and your communication partner at risk. Are you sure you want to continue? - - -# note: should end with double newline: -sendAborted=Send operation aborted.\n\n - -# details: keyNotTrusted=Not enough trust for key '%S' -keyNotFound=Key '%S' not found -keyRevoked=Key '%S' revoked -keyExpired=Key '%S' expired - -statPGPMIME=PGP/MIME -statSMIME=S/MIME -statSigned=SIGNED -statEncrypted=ENCRYPTED -statPlain=UNSIGNED and UNENCRYPTED - -offlineSave=Save %1$S message to %2$S in Unsent Messages folder? - -onlineSend=Send %1$S message to %2$S? -encryptKeysNote=Note: The message is encrypted for the following User IDs / Keys: %S -hiddenKey= - -signFailed=Error in Enigmail: encryption/signing failed. Send the message unencrypted? -msgCompose.button.sendUnencrypted=&Send Unencrypted Message -recipientsSelectionHdr=Select Recipients for Encryption - -configureNow=You did not yet configure Enigmail security for the selected identity. Do you want to do this now? - -# encryption/signing status and associated reasons: -encryptMessageAuto=Encrypt Message (auto) -encryptMessageNorm=Encrypt Message -signMessageAuto=Sign Message (auto) -signMessageNorm=Sign Message - -encryptOff=Encryption: OFF -encryptOnWithReason=Encryption: ON (%S) -encryptOffWithReason=Encryption: OFF (%S) -encryptOn=Encryption: ON -signOn=Signing: ON -signOff=Signing: OFF -signOnWithReason=Signing: ON (%S) -signOffWithReason=Signing: OFF (%S) -reasonEnabledByDefault=enabled by default -reasonManuallyForced=manually forced -reasonByRecipientRules=forced by Autocrypt or per-recipient rules -reasonByAutoEncryption=forced by auto encryption -reasonByConflict=due to conflict in per-recipient rules -reasonByEncryptionMode=due to encryption mode - -# should not be used anymore: -encryptYes=Message will be encrypted -encryptNo=Message will not be encrypted - -# should not be used anymore: -signYes=Message will be signed -signNo=Message will not be signed - - -# PGP/MIME status: -pgpmimeNormal=Protocol: PGP/MIME -inlinePGPNormal=Protocol: Inline PGP -smimeNormal=Protocol: S/MIME -pgpmimeAuto=Protocol: PGP/MIME (auto) -inlinePGPAuto=Protocol: Inline PGP (auto) -smimeAuto=Protocol: S/MIME (auto) - -# should not be used anymore -pgpmimeYes=PGP/MIME will be used -pgpmimeNo=Inline PGP will be used - -# Attach own key status (tooltip strings): -attachOwnKeyNo=Your own public key will not be attached -attachOwnKeyYes=Your own public key will be attached -attachOwnKeyDisabled=Your own public key cannot be attached. You have to select a specific key\nin the OpenPGP section of the Account Settings to enable this feature. - -rulesConflict=Conflicting per-recipient rules detected\n%S\n\nSend message with these settings? -msgCompose.button.configure=&Configure -msgCompose.button.send=&Send Message -msgCompose.button.save=&Save Message - -# Strings in enigmailMsgHdrViewOverlay.js -keyNeeded=Public key %S needed to verify signature -keyUsed=Public key %S used to verify signature -clickDecrypt=; use 'Decrypt/Verify' function -clickDecryptRetry=; use 'Decrypt/Verify' function to retry -clickDetailsButton=; click on 'Details' button for more information -clickImportButton=; click on the 'Import Key' button to import the key -keyTypeUnsupported=; the key type is not supported by your version of GnuPG -decryptManually=; click on the 'Decrypt' button to decrypt the message -verifyManually=; click on the 'Verify' button to verify the signature -headerView.button.verify=Verify -headerView.button.decrypt=Decrypt -msgPart=Part of the message %S -msgSigned=signed -msgSignedUnkownKey=signed with unknown key -msgEncrypted=encrypted -msgSignedAndEnc=signed and encrypted - unverifiedSig=Unverified signature -incompleteDecrypt=Decryption incomplete -needKey=Error - no matching secret key found to decrypt message -failedDecrypt=Error - decryption failed badPhrase=Error - bad passphrase missingMdcError=Error - missing or broken integrity protection (MDC) -failedDecryptVerify=Error - decryption/verification failed -viewInfo=; View > Message security info for details -brokenExchangeMessage=Broken PGP/MIME message from MS-Exchange. - -decryptedMsg=Decrypted message -decryptedMsgWithFormatError=Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read) - -usedAlgorithms=Used Algorithms: %1$S and %2$S -pepStatusInfo.text=p≡p Message Status. -pepStatusInfo.title.m3=Under Attack -pepStatusInfo.info.m3=This message is not secure and has been tampered with. -pepStatusInfo.title.m1=Mistrusted -pepStatusInfo.info.m1=This message has a communication partner that has previously been marked as mistrusted -pepStatusInfo.title.r0=Unknown -pepStatusInfo.info.r0=This message does not contain enough information to determine if it is secure. -pepStatusInfo.title.r1=Cannot Decrypt -pepStatusInfo.info.r1=This message cannot be decrypted because the key is not available. -pepStatusInfo.title.r2=Cannot Decrypt -pepStatusInfo.info.r2=This message cannot be decrypted because the key is not available. -pepStatusInfo.title.r3=Unsecure -pepStatusInfo.info.r3=This message is unsecure. -pepStatusInfo.title.r4=Unsecure for Some -pepStatusInfo.info.r4=This message is unsecure for some communication partners. -pepStatusInfo.title.r5=Unreliable Security -pepStatusInfo.info.r5=This message has unreliable protection. -pepStatusInfo.title.r6=Secure... -pepStatusInfo.info.r6=This message is secure but you still need to verify the identity of your communication partner. -pepStatusInfo.title.r7=Secure & Trusted -pepStatusInfo.info.r7=This message is secure and trusted. - -pepStatusInfo.color.green=Green -pepStatusInfo.color.yellow=Yellow -pepStatusInfo.color.red=Red -pepRevokeTrust.question=Do you really want to cancel the trust for %S? -pepRevokeMistrust.question=Do you really want to re-trust the key for %S? -pepRevokeTrust.doRevoke=Cancel &trust - -wksConfirmationReq=Web Key Directory Confirmation Request -wksConfirmationReq.message=This message has been sent by your email provider to confirm deployment of your OpenPGP public key\nin their Web Key Directory.\nProviding your public key helps others to discover your key and thus being able to encrypt messages to you.\n\nIf you want to deploy your key in the Web Key Directory now, please click on the button "Confirm Request" in the status bar.\nOtherwise, simply ignore this message. -wksConfirmationReq.button.label=Confirm Request - -autocryptSetupReq=Perform Autocrypt Setup -autocryptSetupReq.button.label=Start Setup -autocryptSetupReq.setupMsg.desc=This message contains all information to transfer your Autocrypt settings along with your secret key securely from your original device. -autocryptSetupReq.setupMsg.backup=You can keep this message and use it as a backup for your secret key. If you want to do this, you should write down the password and store it securely. -autocryptSetupReq.message.import=To import the settings and key(s) in Enigmail, please click on the "Start Setup" button in the status bar. -autocryptSetupReq.message.sent=Please click on the message on your new device and follow the instuctions to import the settings. -postbox.cannotUseQuickReply.message=You are replying to an encrypted message. Please use the "expand" icon in the upper right corner of the text box to open your reply in a window, and send the message from there. - -# strings in pref-enigmail.js oldGpgVersion20=Enigmail initialization failed.\n\nYou are using GnuPG version %1$S, which is not supported anymore. Enigmail requires GnuPG version %2$S or newer. Please upgrade your GnuPG installation, or Enigmail will not work. -locateGpg=Locate GnuPG program -invalidGpgPath=GnuPG cannot be executed with the path provided. Enigmail is therefore deactivated until you change the path to GnuPG again or until you restart the application. -warningsAreReset=All warnings have been reset. -prefs.gpgFound=GnuPG was found in %S -prefs.gpgNotFound=Could not find GnuPG -prefs.warnAskNever=Warning: activating this option will result in unencrypted emails without any further information if there is no key for one of the recipients -- Enigmail will not inform you if this happens! -prefs.warnIdleTimeForUnknownAgent=Cannot connect to gpg-agent. Maybe your system uses a specialized tool for passphrase handling (e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded. -prefEnigmail.oneKeyserverOnly=Error - you can only specify one keyserver for automatic downloading of missing OpenPGP keys. -acSetupMessage.desc=Transfer your key to another Autocrypt-enabled device. (What is Autocrypt) -aboutLicense.desc=Enigmail is open source and licensed under the Mozilla Public License 2.0. - -# Strings used in core.jsm -# (said file also re-uses some strings from above) - -enterAdminPin=Please type in the ADMIN PIN of your SmartCard -enterCardPin=Please type your SmartCard PIN - -notInit=Error - Enigmail service not yet initialized badCommand=Error - encryption command failed cmdLine=command line and output: -notRequired=Error - no encryption required -notComplete=Error - key generation not yet completed -invalidEmail=Error - invalid email address(es) noPassphrase=Error - no passphrase supplied noPGPblock=Error - No valid armored OpenPGP data block found -unverifiedReply=Indented message part (reply) was probably modified -keyInMessageBody=A key was found in the message body. Click 'Import Key' to import the key -sigMismatch=Error - Signature mismatch -cantImport=Error importing public key\n\n -doImportOne=Import %1$S (%2$S)? -doImportMultiple=Import the following keys?\n\n%S -previewFailed=Can't read public key file. - -# Strings used in errorHandling.jsm sc.wrongCardAvailable=The SmartCard %1$S found in your reader cannot be used to process the message.\nPlease insert your SmartCard %2$S and repeat the operation. sc.insertCard=The operation requires your SmartCard %S.\nPlease insert the required SmartCard and repeat the operation. sc.removeCard=The operation requires no SmartCard to be in the reader.\nPlease remove your SmartCard and repeat the operation. @@ -376,7 +39,6 @@ sc.noReaderAvailable=Your SmartCard reader could not be accessed\nPlease attach your SmartCard reader, insert your card, and repeat the operation. keyError.keySpecNotFound=The email address '%S' cannot be matched to a key on your keyring. keyError.keyIdNotFound=The configured key ID '%S' cannot be found on your keyring. -keyError.resolutionAction=Please select a valid key in the OpenPGP section of your Account Settings. missingPassphrase=Missing passphrase errorHandling.gpgAgentInvalid=Your system is running a version of gpg-agent that is not suitable for your GnuPG version. errorHandling.gpgAgentError=GnuPG reported an error in the communication with gpg-agent (a component of GnuPG). @@ -384,35 +46,17 @@ errorHandling.pinentryError=GnuPG cannot query your passphrase via pinentry. errorHandling.pinentryCursesError=Your GnuPG installation is configured to use the console for pinentry. However, when using Enigmail you need a graphical version of pinentry. errorHandling.readFaq=This is a system setup or configuration error that prevents Enigmail from working properly and cannot be fixed automatically.\n\nWe strongly recommend that you consult our support web site at https://enigmail.net/faq. - gpgNotFound=Unable to locate GnuPG program '%S'.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. gpgNotInPath=Unable to locate GnuPG executable in the PATH.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences. enigmailNotAvailable=Enigmail core Service not available - -prefGood=Good signature from %S -prefBad=BAD signature from %S - failCancel=Error - Key receive cancelled by user failKeyExtract=Error - key extraction command failed -failKeyNoSubkey=No valid (sub-)key notFirstBlock=Error - First OpenPGP block not public key block importKeyConfirm=Import public key(s) embedded in message? -failKeyImport=Error - key importing failed fileWriteFailed=Failed to write to file %S - importKey=Import public key %S from keyserver: uploadKey=Send public key %S to keyserver: keyId=Key ID -keyAndSigDate=Key ID: 0x%1$S / Signed on: %2$S -keyFpr=Key fingerprint: %S -noEmailProvided=You did not provide an email address! -keyAlreadySigned=The key is already signed, you cannot sign it twice. - -##################################################################### -# Strings used in enigmailKeySelection.js -##################################################################### - -selKeyExpired=expired %S createdHeader=Created atLeastOneKey=No key selected! You have to select at least one key to accept this dialog fewerKeysThanRecipients=You have selected a smaller number of keys than recipients. Are you sure that the list of keys to encrypt is complete? @@ -420,168 +64,34 @@ userSel.secretKeySel.title=Select a Secret OpenPGP Key to Sign Your Messages userSel.problemNoKey=No valid key userSel.problemMultipleKeys=Multiple keys -# should be same as thunderbird ENTITY sendLaterCmd.label: -sendLaterCmd.label=Send Later - -# Strings used in enigmailAttachmentDialog.js -pgpMimeNote=NOTE: PGP/MIME is not supported by all email clients. If you are unsure, select the %S option. first=first second=second - -# Strings used in am-enigprefs.js / enigmailEditIdentity.js -encryptKeyHeader=Select OpenPGP Key for Encryption -identityName=Identity: %S -switchPepMode=You are currently using the 'p≡p Junior' mode of Enigmail.\n\nBy enabling OpenPGP or S/MIME for an account, you are disabling p≡p and use the 'regular' mode of Enigmail without p≡p. -enableEnigmail=&Disable p≡p -amPrefAutocrypt.desc=Autocrypt is a standard that defines how to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. - - -# Strings used in enigmailSingleRcptSettings.js -noEncryption=You have activated encryption, but you did not select a key. In order to encrypt emails sent to %1$S, you need to specify one or several valid key(s) from your key list. Do you want to disable encryption for %2$S? -noKeyToUse=(none - no encryption) -noEmptyRule=The Rule may not be empty! Please set an email address in the Rule field. -invalidAddress=The email address(es) you have entered are not valid. You should not set the names of the recipients, just the email addresses. E.g.:\nInvalid: Some Name \nValid: some.name@address.net -noCurlyBrackets=The curly brackets {} have a special meaning and should not be used in an email address. If you want to modify the matching behavior for this rule, use the 'Apply rule if recipient ...' option.\nMore information is available from the Help button. - -# Strings used in enigmailRulesEditor.js never=Never always=Always possible=Possible -deleteRule=Really delete the selected rule? -nextRcpt=(Next recipient) -negateRule=Not -addKeyToRule=Add key %1$S (%2$S) to per-recipient rule - -# Strings used in enigmailSearchKey.js -needOnline=The function you have selected is not available in offline mode. Please go online and try again. -noKeyserverConn=Could not connect to keyserver at %S. -internalError=An internal error occurred. The keys could not be downloaded or imported. -noKeyFound=We could not find any key matching the specified search criteria. -keyDownload.keyUnavailable=The key with ID %S is not available on the keyserver. Most likely, the owner of the key did not upload their key to the keyserver.\n\nPlease ask the sender of the message to send you their public key by email. - -# Strings in enigmailEditKeyTrustDlg.xul -setKeyTrustFailed=Setting owner trust failed - - -# Strings in enigmailSignKeyDlg.js -signKeyFailed=Key signing failed -alreadySigned.label=Note: the key %S is already signed with the selected secret key. -alreadySignedexportable.label=Note: the key %S is already signed exportable with the selected secret key. A local signature does not make sense. -partlySigned.label=Note: some user IDs of key %S are already signed with the selected secret key. -noTrustedOwnKeys=No eligible key found for signing! You need at least one fully trusted secret key in order to sign keys. - -# Strings in enigmailKeyManager.js -keyMan.loadingKeys=Loading keys, please wait ... keyValid.unknown=unknown keyValid.invalid=invalid keyValid.disabled=disabled keyValid.revoked=revoked keyValid.expired=expired keyValid.noSubkey=no valid subkey - -keyTrust.untrusted=untrusted +keyValid.valid=valid +keyValid.ownKey=own key +keyTrust.untrusted=not trusted keyTrust.marginal=marginal keyTrust.full=trusted keyTrust.ultimate=ultimate keyTrust.group=(group) -keyType.public=pub -keyType.publicAndSec=pub/sec -keyMan.enableKey=Enable Key -keyMan.disableKey=Disable Key userAtt.photo=User attribute (JPEG image) - -asciiArmorFile=ASCII Armored Files (*.asc) importKeyFile=Import OpenPGP Key File -gnupgFile=GnuPG Files -saveRevokeCertAs=Create & Save Revocation Certificate -revokeCertOK=The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key. -revokeCertFailed=The revocation certificate could not be created. - -addUidOK=User ID added successfully -addUidFailed=Adding the User ID failed -noKeySelected=You should select at least one key in order to perform the selected operation -exportToFile=Export Public Key To File -exportKeypairToFile=Export Secret and Public Key To File -exportSecretKey=Do you want to include the secret key in the saved OpenPGP key file? -saveKeysOK=The keys were successfully saved -saveKeysFailed=Saving the keys failed -importKeysFailed=Importing the keys failed -enableKeyFailed=Enabling/disabling the keys failed -specificPubKeyFilename=%1$S (0x%2$S) pub -specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec -defaultPubKeyFilename=Exported-public-keys -defaultPubSecKeyFilename=Exported-public-and-secret-keys - -sendKeysOk=Key(s) sent successfully -sendKeysFailed=Sending of keys failed -receiveKeysOk=Key(s) updated successfully -receiveKeysFailed=Downloading of keys failed -keyUpload.verifyEmails=The keyserver will send you an email for each email address of your uploaded key. To confirm publication of your key, you'll need to click on the link in each of the emails you'll receive. - -importFromClip=Do you want to import some key(s) from clipboard? -importFromUrl=Download public key from this URL: -copyToClipbrdFailed=Could not copy the selected key(s) to the clipboard. -copyToClipbrdOK=Key(s) copied to clipboard - +importPubKeysFailed=The following public keys could not be imported in Thunderbird:\n\n%S +importSecKeysFailed=The following secret keys could not be imported in Thunderbird:\n\n%S deleteSecretKey=WARNING: You are about to delete a secret key!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.\n\nDo you really want to delete BOTH, the secret key and the public key\n'%S'? -deleteMix=WARNING: You are about to delete secret keys!\nIf you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key.\n\nDo you really want to delete BOTH, the selected secret and public keys? -deletePubKey=Do you want to delete the public key\n'%S'? -deleteSelectedPubKey=Do you want to delete the public keys? -deleteKeyFailed=The key could not be deleted. revokeKeyQuestion=You are about to revoke the key '%S'.\n\nYou will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.\n\nDo you want to proceed? -revokeKeyOk=The key has been revoked. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -revokeKeyFailed=The key could not be revoked. revokeKeyNotPresent=You have no key (0x%S) which matches this revocation certificate!\n\nIf you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate! revokeKeyAlreadyRevoked=The key 0x%S has already been revoked. -refreshAllQuestion=You did not select any key. Would you like to refresh ALL keys? -refreshKeyServiceOn.warn=Warning: Your keys are currently being refreshed in the background as safely as possible.\nRefreshing all your keys at once will unnecessarily reveal information about you.\nDo you really want to do this? -refreshKey.warn=Warning: depending on the number of keys and the connection speed, refreshing all keys could be quite a lengthy process! -downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process! -downloadContactsKeys.importFrom=Import contacts from address book '%S'? -keyMan.button.exportSecKey=Export &Secret Keys -keyMan.button.exportPubKey=Export &Public Keys Only keyMan.button.import=&Import -keyMan.button.refreshAll=&Refresh All Keys keyMan.button.revokeKey=&Revoke Key - -keylist.noOtherUids=Has no other identities -keylist.hasOtherUids=Also known as -keylist.noPhotos=No photo available -keylist.hasPhotos=Photos - -keyMan.addphoto.filepicker.title=Select photo to add -keyMan.addphoto.warnLargeFile=The file you have chosen is larger than 25 kB.\nIt is not recommended to add very large files as it causes very large keys. -keyMan.addphoto.noJpegFile=The selected file does not appear to be a JPEG file. Please choose a different file. -keyMan.addphoto.failed=The photo could not be added. -noWksIdentity=The key %S does not have a WKS identity. -wksUpload.noKeySupported=The upload was not successful - your provider does not seem to support WKS. - -keyman.addBlacklistKey.msg=Do you really want p≡p to stop using the key '%1$S (%2$S)' for encrypting messages? -keyman.removeBlacklistKey.msg=Do you want to allow p≡p to use key '%1$S (%2$S)' for future messages? -keyman.addBlacklistKey.button=&Blacklist the key -keyman.removeBlacklistKey.button=&Remove key from Blacklist - -# Strings in enigmailManageUidDlg.xul -changePrimUidFailed=Changing the primary User ID failed -changePrimUidOK=The primary user ID was changed successfully -revokeUidFailed=Revoking the user ID %S failed -revokeUidOK=User ID %S was revoked successfully. If your key is available on a key server, it is recommended to re-upload it, so that others can see the revocation. -revokeUidQuestion=Do you really want to revoke the user ID %S? - -# Strings in enigmailKeyImportInfo.xul -importInfoTitle=SUCCESS! Keys imported -importInfoBits=Bits -importInfoCreated=Created -importInfoFpr=Fingerprint -importInfoDetails=(Details) -importInfoNoKeys=No keys imported. - -# Strings in enigmailKeyDetailsDlg.xul -keyTypePublic=public key -keyTypePrimary=primary key -keyTypeSubkey=subkey -keyTypePair=key pair -keyExpiryNever=never keyAlgorithm_1=RSA keyAlgorithm_2=RSA keyAlgorithm_3=RSA @@ -591,91 +101,10 @@ keyAlgorithm_19=ECDSA keyAlgorithm_20=ELG keyAlgorithm_22=EDDSA -keyUsageEncrypt=Encrypt -keyUsageSign=Sign -keyUsageCertify=Certify -keyUsageAuthentication=Authentication -keyDoesNotExpire=Key does not expire - -# Strings in enigmailGenCardKey.xul -keygen.started=Please wait while the key is being generated .... -keygen.completed=Key Generated. The new Key ID is: 0x%S -keygen.keyBackup=The key is backed up as %S -keygen.passRequired=Please specify a passphrase if you want to create a backup copy of your key outside your SmartCard. - -# Strings in enigmailSetCardPin.xul -cardPin.processFailed=Failed to change PIN - -# Strings in enigRetrieveProgres.js -keyserverProgress.refreshing=Refreshing keys, please wait ... -keyserverProgress.uploading=Uploading keys, please wait ... -keyserverProgress.wksUploadFailed=Could not upload your key to the Web Key Service -keyserverProgress.wksUploadCompleted=Your public key was successfully submitted to your provider. You will receive an email to confirm that you initiated the upload. -keyserverTitle.refreshing=Refresh Keys -keyserverTitle.uploading=Key Upload -keyserver.result.download.none=No key downloaded. -keyserver.result.download.1of1=Key successfully downloaded. -keyserver.result.download.1ofN=Successfully downloaded 1 of %S keys. -keyserver.result.download.NofN=Successfully downloaded %1$S of %2$S keys. -keyserver.result.uploadOne=Successfully uploaded 1 key. -keyserver.result.uploadMany=Successfully uploaded %S keys. - -# Strings in enigmailSetupWizard -setupWizard.invalidGpg=The file you specified is not a GnuPG executable. Please specify a different file. -setupWizard.installFailed=It seems that the installation was not successful. Please either retry the installation, or install GnuPG manually and locate it using the Browse button. -setupWizard.downloadForbidden=For your own security, we will not download GnuPG. Please visit https://gnupg.org/ in order to download GnuPG. -setupWizard.downloadImpossible=We cannot download GnuPG currently. Please try later or visit https://gnupg.org/ in order to download GnuPG. -setupWizard.hashSumError=The wizard could not verify the integrity of the downloaded file. The file may be broken or tampered with. Do you want to continue the installation anyway? -setupWizard.importSettingsFile=Specify backup file to load from -setupWizard.invalidSettingsFile=The specified file is not a valid Enigmail Settings backup file. -setupWizard.gpgConfExists=The GnuPG config file already exists. Do you want to overwrite it with the one from your old installation? -setupWizard.noGpgHomeDir=It appears that you configured %S to be used with GnuPG. However, this is not a directory - you cannot use it. -setupWizard.unmachtedIds=The following identities of your old setup could not be matched:\n%S\nThe settings for these identities were skipped. -setupWizard.foundAcSetupMessage=Found Autocrypt Setup Message. To initiate the Autocrypt setup procedure, click on the Start Setup button below. -setupWizard.foundAcNoSetupMsg=We determined that you are using an Autocrypt-compliant email client, but we could not find any Autocrypt Setup Message. We recommend that you create an Autocrypt Setup Message on your existing device and then click on Rescan Inbox. Alternatively, you can export your settings and keys from an existing Enigmail installation, and restore these settings here. -setupWizard.setupComplete=Enigmail is now properly configured and ready to use. For further information about using Enigmail please visit our homepage. - -# Strings in installGnuPG.jsm -installGnuPG.downloadFailed=An error occurred while trying to download GnuPG. Please check the console log for further details. -installGnuPG.installFailed=An error occurred while installing GnuPG. Please check the console log for further details. - -# Strings in enigmailAddUidDlg.xul -addUidDlg.nameOrEmailError=You have to fill in a name and an email address -addUidDlg.nameMinLengthError=The name must at least have 5 characters -addUidDlg.invalidEmailError=You must specify a valid email address - -# Strings in enigmailCardDetails.js -Carddetails.NoASCII=OpenPGP Smartcards only support ASCII characters in Firstname/Name. - - -# network error types +setupWizard.selectKeysButton=Select Keys errorType.SecurityCertificate=The security certificate presented by the web service is not valid. errorType.SecurityProtocol=The security protocol used by the web service is unknown. errorType.Network=A network error has occurred. - -# filter stuff -filter.folderRequired=You must select a target folder. -filter.decryptMove.label=Decrypt permanently (Enigmail) -filter.decryptCopy.label=Create decrypted Copy (Enigmail) -filter.decryptMove.warnExperimental=Warning - the filter action "Decrypt permanently" may lead to destroyed messages.\n\nWe strongly recommend that you first try the "Create decrypted Copy" filter, test the result carefully, and only start using this filter once you are satisified with the result. -filter.tempPepFilterDesc=Temporary filter to store sent message unencrypted -filter.term.pgpencrypted.label=OpenPGP Encrypted -filter.encrypt.label=Encrypt to key (Enigmail) -filter.keyRequired=You must select a recipient key. -filter.keyNotFound=Could not find an encryption key for '%S'. -filter.warn.keyNotSecret=Warning - the filter action "Encrypt to key" replaces the recipients.\n\nIf you do not have the secret key for '%S' you will no longer be able to read the emails. - -# strings in enigmailConvert.jsm -converter.decryptBody.failed=Could not decrypt message with subject\n'%S'.\nDo you want to retry with a different passphrase or do you want to skip the message? -converter.decryptAtt.failed=Could not decrypt attachment '%1$S'\nof message with subject\n'%2$S'.\nDo you want to retry with a different passphrase or do you want to skip the message? - -saveLogFile.title=Save Log File - -# strings in gpg.jsm -unknownSigningAlg=Unknown signing algorithm (ID: %S) -unknownHashAlg=Unknown cryptographic hash (ID: %S) - -# strings in keyRing.jsm keyring.photo=Photo keyRing.pubKeyRevoked=The key %1$S (key ID %2$S) is revoked. keyRing.pubKeyExpired=The key %1$S (key ID %2$S) has expired. @@ -691,117 +120,27 @@ keyRing.encSubKeysExpired=All encryption subkeys of key %1$S (key ID %2$S) have expired. keyRing.noSecretKey=You do not seem to have the secret key for %1$S (key ID %2$S) on your keyring; you cannot use the key for signing. keyRing.encSubKeysUnusable=All encryption subkeys of key %1$S (key ID %2$S) are revoked, expired or otherwise unusable. - - -#strings in exportSettingsWizard.js -cannotWriteToFile=Cannot save to file '%S'. Please select a different file. dataExportError=An error occurred during exporting your data. -enigmailSettings=EnigmailSettings -defaultBackupFileName=Enigmail-export -specifyExportFile=Specify file name for exporting -homedirParamNotSUpported=Additional parameters that configure paths such as --homedir and --keyring are not supported for exporting/restoring your settings. Please use alternative methods such as setting the environment variable GNUPGHOME. - -#strings in expiry.jsm expiry.keyExpiresSoon=Your key %1$S will expire in less than %2$S days.\n\nWe recommend that you create a new key pair and configure the corresponding accounts to use it. expiry.keysExpireSoon=Your following keys will expire in less than %1$S days:\n%2$S. We recommend that you create new keys and configure the corresponding accounts to use them. expiry.keyMissingOwnerTrust=Your secret key %S has missing trust.\n\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.keysMissingOwnerTrust=The following of your secret keys have missing trust.\n%S.\nWe recommend that you set "You rely on certifications" to "ultimate" in key properties. expiry.OpenKeyManager=Open Enigmail Key Management expiry.OpenKeyProperties=Open Key Properties - -#strings in pEpDecrypt.jsm -pEpDecrypt.cannotDecrypt=This is an encrypted message. Unfortunately you don't have the secret key to decrypt the message. - -#strings in gpgAgent.jsm gpghomedir.notexists=The directory '%S' containing your OpenPGP keys does not exist and cannot be created. gpghomedir.notwritable=The directory '%S' containing your OpenPGP keys is not writable. gpghomedir.notdirectory=The directory '%S' containing your OpenPGP keys is a file instead of a directory. gpghomedir.notusable=Please fix the directory permissions or change the location of your GnuPG "home" directory. GnuPG cannot work correctly otherwise. gpgAgent.noAutostart=You are using GnuPG version %S. This version requires that you pre-start gpg-agent before Thunderdbird is started, and that the environment variable "GPG_AGENT_INFO" is pre-loaded.\n\nThese preconditions are not met - you cannot use Enigmail until you resolve this issue. - -#strings in pepTrustWords.js -pepTrustWords.cannotVerifyOwnId=Cannot verify p≡p Trustwords for own account. -pepTrustWords.cannotFindKey=Cannot find key for %S. -pepTrustWords.cannotStoreChange=Could not change trust for %S. -pepTrustWords.generalFailure=Cannot obtain trustwords for %S. -pepTrustWords.partnerFingerprint=Fingerprint for %S: - -#strings in mimeWkdHandler.jsm -wkdMessage.body.req=Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.\n\nPlease click the confirmation button in the Enigmail header to complete the publishing of your public key. -wkdMessage.body.process=This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.\n\nYou do not need to take any manual action at this point. - -#strings in pepHandshake.js - -pepPrivacyStatus.RatingBrokenSuggestion=Either you or the sender should resend the message. -pepPrivacyStatus.RatingHaveNoKeySuggestionOutgoing=If you composed this message, your key is not available. -pepPrivacyStatus.RatingMistrustSuggestion=Re-establish the connection with your communication partner and try to complete another handshake. -pepPrivacyStatus.RatingReliableSuggestion=Complete a handshake with your communication partner by exchanging trustwords in person or over the phone. A handshake is needed only once per partner and will ensure secure and trusted communication. -pepPrivacyStatus.RatingTrustedSuggestion=No action needed! -pepPrivacyStatus.RatingUndefinedSuggestionIncoming=Be aware that this message may not be secure. -pepPrivacyStatus.RatingUndefinedSuggestionOutgoing=Please add the necessary information. -pepPrivacyStatus.RatingUnderAttackSuggestion=Verify the content of this message with your communication partner using a different channel. -pepPrivacyStatus.RatingUnencryptedForSomeSuggestion=Make sure the privacy status for each communication partner listed is at least "secure". -pepPrivacyStatus.RatingUnencryptedSuggestion=Please ask your communication partner to use an encryption solution or install p≡p. -pepPrivacyStatus.RatingUnreliableSuggestion=This message has no reliable encryption or lacks a signature. Ask your communication partner to upgrade their encryption solution or install p≡p. - -pepPrivacyStatus.RatingBrokenExplanation=This message has broken encryption or formatting. -pepPrivacyStatus.RatingHaveNoKeyExplanation=This message cannot be decrypted because the key is not available. -pepPrivacyStatus.RatingMistrustExplanation=This message has a communication partner that has previously been marked as mistrusted. -pepPrivacyStatus.RatingReliableExplanation=This message is secure but you still need to verify the identity of your communication partner. -pepPrivacyStatus.RatingTrustedExplanation=This message is secure and trusted. -pepPrivacyStatus.RatingUndefinedExplanation=This message does not contain enough information to determine if it is secure. -pepPrivacyStatus.RatingUnderAttackExplanation=This message is not secure and has been tampered with. -pepPrivacyStatus.RatingUnencryptedExplanation=This message is unsecure. -pepPrivacyStatus.RatingUnencryptedForSomeExplanation=This message is unsecure for some communication partners. -pepPrivacyStatus.RatingUnreliableExplanation=This message has unreliable protection. - -pepPrivacyStatus.RatingBrokenText=Broken -pepPrivacyStatus.RatingHaveNoKeyText=Cannot Decrypt -pepPrivacyStatus.RatingMistrustText=Mistrusted -pepPrivacyStatus.RatingReliableText=Secure -pepPrivacyStatus.RatingTrustedText=Secure & Trusted -pepPrivacyStatus.RatingUndefinedText=Unknown -pepPrivacyStatus.RatingUnderAttackText=Under Attack -pepPrivacyStatus.RatingUnencryptedForSomeText=Unsecure for Some -pepPrivacyStatus.RatingUnencryptedText=Unsecure -pepPrivacyStatus.RatingUnreliableText=Unreliable Security - -handshakeDlg.button.initHandshake=Handshake... -handshakeDlg.button.stopTrust=Stop Trusting -handshakeDlg.button.reTrust=Stop Mistrusting -handshakeDlg.label.outgoingMessage=Outgoing message -handshakeDlg.label.incomingMessage=Incoming message -handshakeDlg.error.noPeers=Cannot handshake without any correspondents. -handshakeDlg.error.noProtection=Please enable protection in order to use the "Handshake" function. - -enigmail.acSetupPasswd.descEnterPasswd=Please enter the setup code that is displayed on the other device. - enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup. - -#strings in autocrypt.jsm - -autocrypt.setupMsg.subject=Autocrypt Setup Message -autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device. -autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring. - -#strings in upgradeInfo.html -upgradeInfo.doctitle=What's New in Enigmail v2.0? -upgradeInfo.welcome1=Welcome to the new Enigmail version 2.0! -upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new: -upgradeInfo.encSubject.title=Encrypting the Message Subject -upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. (Note: this feature requires the message to be sent with PGP/MIME.) -upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons -upgradeInfo.buttons.desc=The Encrypt and Sign buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Enigmail will try to prefer the one for which all keys are available. -upgradeInfo.autocrypt.title=Support for Autocrypt -upgradeInfo.autocrypt.desc=Enigmail now supports Autocrypt, a new standard to distribute keys as part of sent messages. Enigmail automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted. -upgradeInfo.pEp.title=New p≡p Junior Mode (Pretty Easy Privacy) -upgradeInfo.pEp.desc=Enigmail now contains a p≡p Junior Mode. The p≡p Junior Mode allows you to use OpenPGP encryption as transparently as possible; you don't need to care for key management and synchronization of keys between devices anymore. -upgradeInfo.bottom.desc=Please visit our documentation for help on using Enigmail. - -#strings in pEpAdapter.jsm -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. -pep.updateAvailable=A new version of the Enigmail/p≡p crypto-engine is available. Would you like to download and install the update? - -#strings in enigmailAbout.html +upgradeInfo.doctitle=Goodbye from Enigmail +upgradeInfo.welcome1=OpenPGP encryption is now part of Thunderbird +upgradeInfo.welcome2=Enigmail is no longer required on Thunderbird, and has become obsolete - this is the final version of Enigmail for Thunderbird. +upgradeInfo.migrateSettings.title=Migrate your keys and settings from GnuPG to Thunderbird +upgradeInfo.migrateSettings.desc=What remains, before you uninstall Enigmail, is that you import your keys from GnuPG into Thunderbird, and migrate some important settings from Enigmail to Thunderbird. We have prepared a wizard that performs these steps for you. +upgradeInfo.performMigration.buttonLabel=Start Migration Now +upgradeInfo.thankyou.title=Thank you for using Enigmail +upgradeInfo.thankyou.desc1=It has been a pleasure working on Enigmail for nearly two decades. We are thankful that we could contribute to the idea of encrypted emails. We hope that you found Enigmail useful and would like to thank you for your continued support during these many years. +upgradeInfo.thankyou.desc2=If you want to help out, then please consider donating to Thunderbird. aboutEnigmail.tabName=About Enigmail aboutEnigmail.title=OpenPGP support provided by Enigmail aboutEnigmail.team=Enigmail is developed by the Enigmail Team: @@ -820,42 +159,7 @@ aboutEnigmail.licenseSupportTitle=License & Support aboutEnigmail.license=Enigmail OpenPGP is open source and licensed under the %S aboutEnigmail.support=Support and download is available from www.enigmail.net. - -#strings in updateGnuPG.html -updateGnuPG.tabName=GnuPG Update -updateGnuPG.title=Updates for GnuPG -updateGnuPG.introduction.desc=Enigmail requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date. -updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the Install Update button to download and install the update. -updateGnuPG.noUpdateRequired=GnuPG is up to date. -updateGnuPG.cannotUpdate.header=Enigmail only supports updating the following packages: -updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Enigmail to update your GnuGP installation. -updateGnuPG.installUpdate=Install Update -updateGnuPG.noMoreUpdates=Don't check for future updates updateGnuPG.checkUpdate=Check for GnuPG Updates -updateGnuPG.success=GnuPG has been updated successfully. -updateGnuPG.importingKeys=Importing keys in GnuPG. You might be asked for the passphrase(s) of your key(s). -updateGnuPG.downloadingGnuPG=Downloading GnuPG -updateGnuPG.startingInstaller=Starting the installer. Please follow the steps of the GnuPG installer wizard. - - -#strings in keyserver.jsm -keyserver.error.aborted=Aborted -keyserver.error.unknown=An unknown error occurred -keyserver.error.serverError=The keyserver reported an error. -keyserver.error.importError=Failed to import the downloaded key. -keyserver.error.unavailable=The keyserver is not available. -keyserver.error.securityError=The keyserver does not support encrypted access. -keyserver.error.certificateError=The keyserver’s certificate is not valid. -keyserver.error.unsupported=The keyserver is not supported by Enigmail. - -#strings in mimeDecrypt.jsm -mimeDecrypt.encryptedPart.attachmentLabel=Encrypted message part -mimeDecrypt.encryptedPart.concealedData=This is an encrypted message part. You need to open it in a separate window by clicking on the attachment. - -#strings in gnupg-key.jsm import.secretKeyImportError=An error has occurred in GnuPG while importing secret keys. The import was not successful. - -#strings in importSettings.js -importSettings.errorNoFile=The file you specified is not a regular file! -importSettings.cancelWhileInProgress=Restoring is in progress. Do you really want to abort the process? -importSettings.button.abortImport=&Abort process +passphrasePrompt=Please enter the passphrase for the following key: %S +openpgpInitError=An error occurred during the initialization of the OpenPGP infrastructure in Thunderbird.\n\nThe migration wizard cannot proceed if OpenPGP in Thunderbird is not intialized properly. diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/compose.html enigmail-2.2.4/ui/locale/en-US/help/compose.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/compose.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/compose.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - Enigmail Help: Message Composition - - - - - -

    Enigmail Help

    - -

    Using Enigmail when composing messages

    - -
    -
    Enigmail menu in Mail/Compose window
    - -
    -
    -
    Sign message
    - -
    Enable/Disable sending signed mail. User is notified, if signing fails.
    - -
    Encrypt message
    -
    -

    Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.

    - -

    If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.

    - -

    If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.

    -
    - -
    Use PGP/MIME for this message
    - -
    - Enable/Disable the use of PGP/MIME for this message. - -

    If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.

    - -

    This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.

    -
    - -
    Default composition options
    - -
    -
      -
    • Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
    • - -
    • Send options...: shortcut to Preferences -> Send tab.
    • - -
    • Key selection options...: shortcut to Preferences -> Key Selection tab.
    • - -
    • PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
    • -
    -
    - -
    Undo encryption
    - -
    -

    If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.

    - -

    As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.

    -
    - -
    Insert public key
    - -
    insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
    - -
    Clear save passphrase
    - -
    Clears cached passphrase. Useful if you have multiple passphrases.
    - -
    Help
    - -
    Displays Help information from the website (this page).
    -
    -
    -
    -
    - -

    Further help is available on the Enigmail Help web page

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/editRcptRule.html enigmail-2.2.4/ui/locale/en-US/help/editRcptRule.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/editRcptRule.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/editRcptRule.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - Enigmail Help: Edit Per-Recipient Rule - - - - - -

    Enigmail Help

    - -

    Using the Enigmail Rules Editor: Edit Per-Recipient Rule

    - -

    In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.

    - -
    -
    Set Enigmail Rules for
    - -
    Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
    - -
    Apply rule if recipient ...
    - -
    - This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above. - -
      -
    • Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
    • - -
    • Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
    • - -
    • Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
    • - -
    • Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
    • -
    -
    - -
    Continue with the next rule for the matching address
    - -
    Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
    - -
    Do not check further rules for the matching address
    - -
    Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
    - -
    Use the following OpenPGP keys:
    - -
    Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
    - -
    Default for Signing
    - -
    - Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
      -
    • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
    • - -
    • Yes, if selected from in Message Composition: leave signing as specified in the message composition window
    • - -
    • Always: enable signing, even if it was not enabled in the message composition window
    • -
    These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always. -
    - -
    Encryption
    - -
    Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
    - -
    PGP/MIME
    - -
    Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
    -
    - -

    The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

    -
    - -

    Further help is available on the Enigmail Per-Recipient Settings page

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/help.html enigmail-2.2.4/ui/locale/en-US/help/help.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/help.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/help.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - -Enigmail Help - - - -

    Enigmail Help

    -

    Using Enigmail when reading messages

    -
      -
    • Decrypt button in main Mail window
      - This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
    • -
    • Pen and Key icons in Message Header display
      - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: -
        -
      • Enigmail Security info: allows you to view the output status from GnuPG for the message.
      • -
      • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
      • -
      • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
      • -
      • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
      • -
      -

      If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

      -

      You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

      -

      Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

      -

      To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

      -
    • -
    • Opening encrypted attachments / importing attached OpenPGP keys
      - Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
    • -
    -
    -

    Further help is available on the Enigmail Help web page
    -If you have questions or comments about enigmail, please send a message to the Enigmail mailing list

    -

    Enigmail is open source and licensed under the Mozilla Public License 2.0

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/initError.html enigmail-2.2.4/ui/locale/en-US/help/initError.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/initError.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/initError.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - Enigmail Help: How to Resolve Problems with Initializing Enigmail - - - - - -

    Enigmail Help

    - -

    How to Resolve Problems with Initializing Enigmail

    - -

    There are several reasons why initializing Enigmail does not succeed. The most common ones are described below; - for more information please visit the Enigmail Support page.

    - -
    -
    GnuPG could not be found
    -
    -

    - In order for Enigmail to work, the tool GnuPG needs to be installed. - If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer. - If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences) -

    - -
    Enigmail Core Service failed to initialize
    - -
    -

    - Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org. -

    -

    - If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable. -

    -
    -
    - -

    Further help is available on the Enigmail Support Web Site.

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/messenger.html enigmail-2.2.4/ui/locale/en-US/help/messenger.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/messenger.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/messenger.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - Enigmail Help: Message Reading - - - - - -

    Enigmail Help

    - -

    Using Enigmail when reading messages

    - -
    -
    Decrypt button in main Mail window
    - -
    This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
    - -
    Pen and Key icons in Message Header display
    - -
    - The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options: - -
      -
    • Enigmail Security info: allows you to view the output status from GnuPG for the message.
    • - -
    • Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
    • - -
    • View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
    • - -
    • S/MIME Security info: allows you to view the S/MIME Security Info for the message.
    • -
    - -

    If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.

    - -

    You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.

    - -

    Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.

    - -

    To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.

    -
    - -
    Opening encrypted attachments / importing attached OpenPGP keys
    - -
    Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
    -
    -
    - -

    Further help is available on the Enigmail Help web page

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/rulesEditor.html enigmail-2.2.4/ui/locale/en-US/help/rulesEditor.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/rulesEditor.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/rulesEditor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - Enigmail Help: Rules Editor - - - - - -

    Enigmail Help

    - -

    Using the Enigmail Rules Editor

    - -

    In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:

    - -
    -
    Email
    - -
    The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
    - -
    OpenPGP Key(s)
    - -
    a list of OpenPGP Key ID's to use for the recipient
    - -
    Sign
    - -
    - enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are: - -
      -
    • Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
    • - -
    • Possible: leave signing as specified in the message composition window
    • - -
    • Always: enable signing, even if it was not enabled in the message composition window
    • -
    - -

    These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.

    -
    - -
    Encrypt
    - -
    enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
    - -
    PGP/MIME
    - -
    enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
    -
    - -

    The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.

    - -

    Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage

    -
    - -

    Further help is available on the Enigmail Help web page

    - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/help/sendingPrefs.html enigmail-2.2.4/ui/locale/en-US/help/sendingPrefs.html --- enigmail-2.1.6+ds1/ui/locale/en-US/help/sendingPrefs.html 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/help/sendingPrefs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ - - - - - Enigmail Help: Edit OpenPGP Rule - - - - - -

    Enigmail Help

    - -

    Defining Preferences to Send Encrypted

    - -

    In the Sending Preferences you can choose the general model and preferences for encryption.

    -
    -
    Convenient Encryption
    -
    With these settings, emails are encrypted without confirmation whenever possible. -

    This setup is appropriate, if you just want to improve your privacy by sending emails encrypted instead of unencrypted if that's possible. -

    The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit. -

    Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that). -

    A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.

    - -
    Manual Encryption
    -
    This option allows you to specify the different preferences for encryption according to your needs. You can specify -
      -
    • whether replies to encrypted/signed emails should automatically also be encrypted/signed-
    • -
    • whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
    • -
    • whether you want to automatically send emails encrypted if all keys are accepted.
    • -
    • whether and when you want to finally confirm sending an email.
    • -
    -
    - - If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog. - - - diff -Nru enigmail-2.1.6+ds1/ui/locale/en-US/Makefile enigmail-2.2.4/ui/locale/en-US/Makefile --- enigmail-2.1.6+ds1/ui/locale/en-US/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/locale/en-US/Makefile 2020-10-01 13:32:58.000000000 +0000 @@ -8,20 +8,9 @@ LOCALEFILES = \ enigmail.dtd \ - am-enigprefs.properties \ enigmail.properties -HELPFILES = \ - help/compose.html \ - help/help.html\ - help/messenger.html \ - help/sendingPrefs.html \ - help/editRcptRule.html \ - help/initError.html \ - help/rulesEditor.html - all: deploy -deploy: $(LOCALEFILES) $(HELPFILES) +deploy: $(LOCALEFILES) $(DEPTH)/util/install -m 644 $(DIST)/chrome/locale/en-US $(LOCALEFILES) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/locale/en-US/help $(HELPFILES) diff -Nru enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/enigmail.css enigmail-2.2.4/ui/skin/classic-seamonkey/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/classic-seamonkey/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,362 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/* Enigmail styles for the SeaMonkey Classic style*/ - -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-30.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-30.svg"); - } - -toolbar[iconsize="small"] #button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-24.svg"); - } - -toolbar[iconsize="small"] #button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-24.svg"); - } - - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-30.svg"); -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-30.svg"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-30.svg"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-30.svg"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-30.svg"); -} - - -toolbar[iconsize="small"] #button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-24.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-30.svg"); -} - - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-30.svg"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-30.svg"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-30.svg"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-30.svg"); -} - - -toolbar[iconsize="small"] #button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-24.svg"); -} - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-30.svg"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-30.svg"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-30.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-24.svg"); -} - -toolbar[iconsize="small"] #button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-24.svg"); -} - -/*************************************************** - * Icons for compose toolbar: Protect header - ***************************************************/ - -#enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-30.svg"); -} - -#enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-30.svg"); -} - -#enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-30.svg"); -} - -toolbar[iconsize="small"] #enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-24.svg"); -} - -toolbar[iconsize="small"] #enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-24.svg"); -} - -toolbar[iconsize="small"] #enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-24.svg"); -} - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-status-bar[signed="forceYes"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="forceNo"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactivePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - -#enigmail-status-bar[encrypted="forceYes"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="forceNo"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactivePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/check0.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/check0.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/check1.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/check1.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/check2.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/check2.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/col-encrypted-signed.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/col-encrypted-signed.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigdecrypt-act.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigdecrypt-act.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigdecrypt-dis.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigdecrypt-dis.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigdecrypt.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigdecrypt.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigdecrypt-hov.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigdecrypt-hov.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigEncInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigEncInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigEncNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigEncNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigEncOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigEncOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigmail-send.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigmail-send.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigmail-send-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigmail-send-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigmail-toolbar.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigmail-toolbar.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigmail-toolbar-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigmail-toolbar-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigsend-act.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigsend-act.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigsend-dis.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigsend-dis.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigsend.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigsend.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigsend-hov.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigsend-hov.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigSignInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigSignInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigSignNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigSignNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigSignOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigSignOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/classic-seamonkey/images/enigSignUnkown.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/classic-seamonkey/images/enigSignUnkown.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/common/enigmail-common.css enigmail-2.2.4/ui/skin/common/enigmail-common.css --- enigmail-2.1.6+ds1/ui/skin/common/enigmail-common.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/common/enigmail-common.css 2020-10-01 13:32:58.000000000 +0000 @@ -9,200 +9,7 @@ */ -.action-box { - width: 100px -} - -#expandedEnigmailBox { - background-color: #d8e0e8; - color: black; -} - -.enigmailHeaderName { - color: #888a85; - /* lower contrast, TB3 */ - text-align: right; - background-color: transparent; - -moz-margin-end: 2px; -} - -.enigmailHeaderNameBox { - width: 7.7em; - background-color: #d8e0e8; - color: black; -} - -.enigmailHeaderValue { - min-width: 50px; - white-space: normal; - color: black !important; - line-height: 1.4em !important; - - -moz-appearance: none !important; - - padding: 0px !important; - margin: 0px !important; - -moz-margin-start: 3px !important; - border: none !important; - background-color: transparent !important; -} - -.enigmailHeaderSpacer { - width: 2px; -} - -.enigmailHeaderBoxLabelNoSignature { - background-color: #d8e0e8; - color: black; -} -.enigmailHeaderBoxLabelSignatureOk { - background-color: #ccffcc; - color: black; -} - -.enigmailHeaderBoxLabelSignatureVerified { - background-color: #ccffff; - color: black; -} - -.enigmailHeaderBoxLabelSignatureNotOk { - background-color: #FFD8FE; - color: black; -} - -.enigmailHeaderBoxLabelSignatureUnknown { - background-color: #FFFFC9; - color: black; -} - -.enigmailHeaderBoxLabelBuggyMailFormat { - background-color: #FFD8FE; - color: black; -} - -.enigmailLink { - text-decoration: underline; - color: blue; - cursor: pointer; -} - -.enigmailGroupbox { - border-radius: 4px; - border-style: groove; - border-width: thin; - padding: 3px; - margin: 3px; - border-color: lightgrey; -} - -.enigmailCaptionboxNoTitle { - border: 2px groove threedface; - padding: 0.5em; - margin: 1em 2px; - border-radius: 4px; -} - -.enigmailCaptionbox { - border: 2px groove threedface; - border-top: none; - padding: 0.5em; - margin: 1em 2px; - border-radius: 4px; -} - -.enigmailCaptionbox>h1 { - font: 1em normal; - margin: -1em -0.5em 0; - border-radius: 4px; -} - -.enigmailCaptionbox>h1>span { - float: left; - border-radius: 4px; -} - -.enigmailCaptionbox>h1:before { - border-top: 2px groove threedface; - content: ' '; - float: left; - margin: 0.5em 2px 0 -1px; - width: 0.75em; - border-radius: 4px; -} - -.enigmailCaptionbox>h1:after { - border-top: 2px groove threedface; - content: ' '; - display: block; - height: 1.5em; - left: 2px; - margin: 0 1px 0 0; - overflow: hidden; - position: relative; - top: 0.5em; - border-radius: 4px; -} - -.enigmailStrong { - font-weight: bold; - color: red; -} - -.enigmailUidInactive { - color: gray; - font-style: italic; -} - -.enigMsgHdrView-flat-button { - min-width: 1px !important; - -moz-appearance: none !important; - color: black !important; - background-color: #DDDDDD !important; - - border: 2px solid transparent; - margin-top: 2px !important; - margin-bottom: 2px !important; - padding: 0 2px; - border-color: ThreeDShadow; - border-width: 1px; - min-height: 1ex; -} - -.enigMsgHdrView-flat-button:hover { - background-color: #CCCCCC !important; -} - -.enigmailToolbar { - -moz-appearance: none; -} - -.enigmailTitle { - font-size: larger; - font-weight: bold; -} - -.enigmailDisabled { - color: #a6a6a6; - /* grey */ -} - -#messagepanebox[enigSigned="ok"] #messagepane { - color: red; -} - -#expandedautocryptRow { - visibility: collapse; -} - -.enigmailMessagePane { - margin: 6px; - -moz-user-focus: normal; - -moz-user-select: text; - cursor: text !important; - white-space: pre-wrap; - unicode-bidi: -moz-plaintext; -} /*************************************************** * Various other styles @@ -229,149 +36,46 @@ margin: 0px 10px 0px 10px; } -.enigmailPrefsTitle { - font-weight: bold; - height: 25px; -} - -.enigmailKeyImportHeader { - font-weight: bold; - color: #888; -} - -.enigmailKeyImportUserId { - font-weight: bold; -} - -.enigmailKeyImportCaption { - list-style-image: url("chrome://enigmail/skin/importSuccess.png"); - max-height: 2em; - max-width: 2em; -} - -.enigmailErrorIcon { - list-style-image: url("chrome://enigmail/skin/password-error.svg"); - padding-top: 5px; - padding-bottom: 5px; - height: 2.2em; - width: 2.2em; -} - -.enigmailKeyImportDetails { - color: blue; -} - -.enigmailKeyImportDetails:hover { - text-decoration: underline; -} - -treechildren::-moz-tree-cell-text(enigmailSubkeyTitle) { - font-weight: bold; -} -treechildren::-moz-tree-cell-text(enigmailOwnKey) { - font-weight: bold; -} - -treechildren::-moz-tree-cell-text(enigKeyInactive) { - color: gray; - font-style: italic; -} - -treechildren::-moz-tree-column(enigDontEncrypt) { - background-color: rgb(90%, 90%, 90%); -} - -treechildren::-moz-tree-cell-text(fixedWidthFont) { - font-family: "Courier New", Courier, monospace; -} - -.enigmailExpandViewButton { - width: 9px; - /* The image's width is 9 pixels */ - list-style-image: url("chrome://enigmail/skin/twisty-clsd.png"); -} - -.enigmailCollapseViewButton { - width: 9px; - /* The image's width is 9 pixels */ - list-style-image: url("chrome://enigmail/skin/twisty-open.png"); - -} - -.enigmailWarningIcon { - list-style-image: url("chrome://enigmail/skin/warning-16.png"); -} - -treechildren::-moz-tree-image(enigSignedEncrypted) { - list-style-image: url("chrome://enigmail/skin/col-encrypted-signed.png"); -} - -treechildren::-moz-tree-image(enigSigned) { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); -} +/*************************************************** + * Styles for Setup Wizard + ***************************************************/ -treechildren::-moz-tree-image(enigEncrypted) { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); +.enigmailOkSign { + content: url("chrome://enigmail/content/skin/ok-sign.svg"); + padding-left: 5px; + padding-right: 5px; + height: 1.3em; } -/* - the following styles are available for the key trust - columnm in the key manager: - enigmail_keyValid_unknown - enigmail_keyValid_invalid - enigmail_keyValid_disabled - enigmail_keyValid_revoked - enigmail_keyValid_expired - enigmail_keyTrust_untrusted - enigmail_keyTrust_marginal - enigmail_keyTrust_full - enigmail_keyTrust_ultimate - enigmail_keyTrust_unknown - -They can be applied using: -treechildren::-moz-tree-cell(STYLE) {} -treechildren::-moz-tree-cell-text(STYLE) {} -*/ - -/****************************** - * Rules for filter actions - ******************************/ - -.ruleactiontarget[type="enigmail@enigmail.net#filterActionMoveDecrypt"] { - -moz-binding: url("chrome://messenger/content/searchWidgets.xml#ruleactiontarget-folder") !important; -} +/*************************************************** + * Styles for Menubar + ***************************************************/ -.ruleactiontarget[type="enigmail@enigmail.net#filterActionCopyDecrypt"] { - -moz-binding: url("chrome://messenger/content/searchWidgets.xml#ruleactiontarget-folder") !important; +#enigmail-menubar { + background-color: var(--toolbar-bgcolor); + color: var(--toolbar-color); } -.ruleactiontarget[type="enigmail@enigmail.net#filterActionEncrypt"] { - -moz-binding: url("chrome://messenger/content/searchWidgets.xml#ruleactiontarget-forwardto") !important; +#enigmail-menubar > menu { + color: var(--toolbar-color); } -.enigmailPassphraseQuality { - margin: 2px 4px; - min-width: 128px; - height: 12px; - background-color: #C21540; -} -.enigmailPassphraseQuality[value="medium"] { - background-color: #5885C4; +radio#CQradio1 .radio-check, +radio#CQradio2 .radio-check, +radio#CQradio3 .radio-check, +radiogroup#dateLongRadioGroup .radio-check { + -moz-appearance: radio !important; } - -.enigmailPassphraseQuality[value="high"] { - background-color: #64C4A1; +radiogroup#AlternativePref .radio-check { + -moz-appearance: radio !important; } -.enigmailPassphraseQuality[value="excellent"] { - background-color: #1A9C2A; -} /* a spinning wheel circle */ .enigmailWheel { - list-style-image: url("chrome://enigmail/skin/spinning-wheel.png"); + list-style-image: url("chrome://enigmail/content/skin/spinning-wheel.png"); max-width: 100%; max-height: 100%; } @@ -390,40 +94,3 @@ transform: rotate(360deg); } } - -/*************************************************** - * Styles for Setup Wizard and Key Generation - ***************************************************/ - -#passphraseBox #passphraseError { - margin-top: 3px; - margin-bottom: 3px; - color: red; -} - -#passphraseBox #passphraseErrorRepeat { - margin-top: 3px; - margin-bottom: 3px; - color: red; -} - -.enigmailOkSign { - content: url("chrome://enigmail/skin/ok-sign.svg"); - padding-left: 5px; - padding-right: 5px; - height: 1.3em; -} - -/*************************************************** - * Styles for Menubar - ***************************************************/ - -#enigmail-menubar { - background-color: var(--toolbar-bgcolor); - color: var(--toolbar-color); -} - -#enigmail-menubar > menu { - color: var(--toolbar-color); -} - diff -Nru enigmail-2.1.6+ds1/ui/skin/common/enigmail.css enigmail-2.2.4/ui/skin/common/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/common/enigmail.css 1970-01-01 00:00:00.000000000 +0000 +++ enigmail-2.2.4/ui/skin/common/enigmail.css 2020-10-01 13:32:58.000000000 +0000 @@ -0,0 +1,13 @@ +/* + * 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 https://mozilla.org/MPL/2.0/. + */ + +/** + * Enigmail styles + */ + +@import url("chrome://enigmail/content/skin/enigmail-common.css"); /* common styles for all platforms */ + +@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); diff -Nru enigmail-2.1.6+ds1/ui/skin/common/enigmail-html.css enigmail-2.2.4/ui/skin/common/enigmail-html.css --- enigmail-2.1.6+ds1/ui/skin/common/enigmail-html.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/common/enigmail-html.css 2020-10-01 13:32:58.000000000 +0000 @@ -100,27 +100,6 @@ max-height: 0px; } -/* a spinning wheel circle */ -.enigmailWheel { - content: url("chrome://enigmail/skin/spinning-wheel.png"); - max-width: 100%; - max-height: 100%; -} - -.enigmailSpinning { - animation: enigmailDoRotation 1.4s infinite linear; - transform: translateZ(0); -} - -@keyframes enigmailDoRotation { - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -} .enigmailOkSign { content: url("chrome://enigmail/skin/ok-sign.svg"); diff -Nru enigmail-2.1.6+ds1/ui/skin/common/enigmail-pEp.css enigmail-2.2.4/ui/skin/common/enigmail-pEp.css --- enigmail-2.1.6+ds1/ui/skin/common/enigmail-pEp.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/common/enigmail-pEp.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,205 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles related to pEp - */ - -.enigmailPepRating { - padding: 2px 2px 2px 2px; - max-height: 5em; - margin-top: 6px; - margin-bottom: 2px; - - border: 3px solid transparent; - - border-radius: 2px; - -} - -.enigmailPepRating[ratingcode="mistrust"] { - list-style-image: url("chrome://enigmail/skin/pEpRed.svg"); -} - -.enigmailPepRating[ratingcode="reliable"] { - list-style-image: url("chrome://enigmail/skin/pEpYellow.svg"); -} - -.enigmailPepRating[ratingcode="trusted"] { - list-style-image: url("chrome://enigmail/skin/pEpGreen.svg"); -} - - -.enigmailPepRating:hover { - background-color: #DDDDDD; - - border-color: transparent ThreeDShadow; -} - -.enigmailPepRating:active { - background-color: #CCCCCC; - - border-color: transparent ThreeDShadow; -} - - -.enigmailPepIdentityMistrust -{ - background-image: url('chrome://enigmail/skin/pEpRed.svg'); - background-size: 14px 14px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 16px !important; -} - -.enigmailPepIdentityReliable -{ - background-image: url('chrome://enigmail/skin/pEpYellow.svg'); - background-size: 14px 14px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 16px !important; -} - -.enigmailPepIdentityTrusted -{ - background-image: url('chrome://enigmail/skin/pEpGreen.svg'); - background-size: 14px 14px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 16px !important; -} - -.enigmailPepIdentityUnknown -{ -} - -.enigmailPepIdentityMistrust[size="medium"] -{ - background-image: url('chrome://enigmail/skin/pEpRed.svg'); - background-size: 27px 27px; - min-height: 41px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 29px !important; -} - -.enigmailPepIdentityReliable[size="medium"] -{ - background-image: url('chrome://enigmail/skin/pEpYellow.svg'); - background-size: 27px 27px; - min-height: 41px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 29px !important; -} - -.enigmailPepIdentityTrusted[size="medium"] -{ - background-image: url('chrome://enigmail/skin/pEpGreen.svg'); - background-size: 27px 27px; - min-height: 41px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 29px !important; -} - -.enigmailPepIdentityUnknown[size="medium"] { - background-image: url('chrome://enigmail/skin/pEpGrey.svg'); - background-size: 27px 27px; - min-height: 41px; - background-position: left center; - background-repeat: no-repeat; - padding-left: 29px !important; -} - -#button-enigmail-pepEncrypt[encrypt="true"] { - list-style-image: url('chrome://enigmail/skin/pEpEncryptActive.svg'); -} - -#button-enigmail-pepEncrypt[encrypt="false"] { - list-style-image: url('chrome://enigmail/skin/pEpEncryptInactive.svg'); -} - -.enigmail-statusbar-pep-logo -{ - list-style-image: url('chrome://enigmail/skin/pEpLogo.svg'); - max-height: 12px; - margin: 0px 4px; -} - -.enigmail-statusbar-pep-unsecure -{ - background-color: inherit; - padding-left: 3px; - padding-right: 3px; -} - -.enigmail-statusbar-pep-secure -{ - background-color: #ffd800; - padding-left: 3px; - padding-right: 3px; -} - -.enigmail-statusbar-pep-trusted -{ - background-color: #00a92b; - color: #ffffff; - padding-left: 3px; - padding-right: 3px; -} - -.enigmail-pepHandshakeTitle -{ - font-size: 120%; - font-weight: bold; - text-align: center; - padding: 5px 80px 5px 80px; -} - -.enigmail-pepHandshakeTitle[color="green"] -{ - color: white; - background-color: #00a92b; -} - -.enigmail-pepHandshakeTitle[color="yellow"] -{ - color: black; - background-color: #ffd800; -} - - -.enigmail-pepHandshakeTitle[color="red"] -{ - color: white; - background-color: #f01c1c; -} - -.enigmail-pepHandshakeTitle[color="grey"] -{ - color: white; - background-color: #666666; -} - -/* - icon in the Enigmail/pEp column -*/ -treechildren::-moz-tree-image(enigmailPepMistrust) -{ - list-style-image: url('chrome://enigmail/skin/col-pEpRed.svg'); -} - -treechildren::-moz-tree-image(enigmailPepReliable) -{ - list-style-image: url('chrome://enigmail/skin/col-pEpYellow.svg'); -} - -treechildren::-moz-tree-image(enigmailPepTrusted) -{ - list-style-image: url('chrome://enigmail/skin/col-pEpGreen.svg'); -} diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-active-18.svg enigmail-2.2.4/ui/skin/images/attach-active-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-active-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-active-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-active-24.svg enigmail-2.2.4/ui/skin/images/attach-active-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-active-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-active-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-active-30.svg enigmail-2.2.4/ui/skin/images/attach-active-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-active-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-active-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-18.svg enigmail-2.2.4/ui/skin/images/attach-disabled-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-disabled-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-24.svg enigmail-2.2.4/ui/skin/images/attach-disabled-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-disabled-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-30.svg enigmail-2.2.4/ui/skin/images/attach-disabled-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-disabled-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-disabled-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-18.svg enigmail-2.2.4/ui/skin/images/attach-inactive-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-inactive-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-24.svg enigmail-2.2.4/ui/skin/images/attach-inactive-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-inactive-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-30.svg enigmail-2.2.4/ui/skin/images/attach-inactive-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/attach-inactive-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/attach-inactive-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/check0.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/check0.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/check1.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/check1.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/check2.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/check2.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/col-encrypted-signed.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/col-encrypted-signed.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/col-pEpGreen.svg enigmail-2.2.4/ui/skin/images/col-pEpGreen.svg --- enigmail-2.1.6+ds1/ui/skin/images/col-pEpGreen.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/col-pEpGreen.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/col-pEpRed.svg enigmail-2.2.4/ui/skin/images/col-pEpRed.svg --- enigmail-2.1.6+ds1/ui/skin/images/col-pEpRed.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/col-pEpRed.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/col-pEpYellow.svg enigmail-2.2.4/ui/skin/images/col-pEpYellow.svg --- enigmail-2.1.6+ds1/ui/skin/images/col-pEpYellow.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/col-pEpYellow.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-18.svg enigmail-2.2.4/ui/skin/images/decrypt-active-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-active-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-24.svg enigmail-2.2.4/ui/skin/images/decrypt-active-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-active-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-30.svg enigmail-2.2.4/ui/skin/images/decrypt-active-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-active-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-active-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-18.svg enigmail-2.2.4/ui/skin/images/decrypt-inactive-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-inactive-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-24.svg enigmail-2.2.4/ui/skin/images/decrypt-inactive-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-inactive-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,289 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-30.svg enigmail-2.2.4/ui/skin/images/decrypt-inactive-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/decrypt-inactive-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/decrypt-inactive-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,289 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-16.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-18.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-18.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-18.svg enigmail-2.2.4/ui/skin/images/encrypt-active-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-active-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-24.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-24.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-24.svg enigmail-2.2.4/ui/skin/images/encrypt-active-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-active-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-30.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-30.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-30.svg enigmail-2.2.4/ui/skin/images/encrypt-active-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-active-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-force-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-force-16.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-force-18.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-force-18.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-force-24.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-force-24.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-active-force-30.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-active-force-30.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-disabled-16.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-18.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-disabled-18.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-18.svg enigmail-2.2.4/ui/skin/images/encrypt-disabled-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-disabled-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,322 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-24.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-disabled-24.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-24.svg enigmail-2.2.4/ui/skin/images/encrypt-disabled-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-disabled-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,322 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-30.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-disabled-30.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-30.svg enigmail-2.2.4/ui/skin/images/encrypt-disabled-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-disabled-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-disabled-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,322 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-16.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-18.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-18.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-18.svg enigmail-2.2.4/ui/skin/images/encrypt-inactive-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-inactive-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-24.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-24.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-24.svg enigmail-2.2.4/ui/skin/images/encrypt-inactive-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-inactive-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-30.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-30.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-30.svg enigmail-2.2.4/ui/skin/images/encrypt-inactive-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/encrypt-inactive-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-force-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-force-16.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-force-18.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-force-18.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-force-24.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-force-24.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/encrypt-inactive-force-30.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/encrypt-inactive-force-30.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigdecrypt-act.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigdecrypt-act.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigdecrypt-dis.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigdecrypt-dis.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigdecrypt-hov.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigdecrypt-hov.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigdecrypt.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigdecrypt.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigEncInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigEncInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigEncNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigEncNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigEncOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigEncOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigLayers.ifx and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigLayers.ifx differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/enigmail-about.svg enigmail-2.2.4/ui/skin/images/enigmail-about.svg --- enigmail-2.1.6+ds1/ui/skin/images/enigmail-about.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/enigmail-about.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigsend-dis.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigsend-dis.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigsend-hov.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigsend-hov.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigsend.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigsend.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigSignInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigSignInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigSignNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigSignNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigSignOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigSignOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/enigSignUnkown.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/enigSignUnkown.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerProtected-16.svg enigmail-2.2.4/ui/skin/images/headerProtected-16.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerProtected-16.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerProtected-16.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerProtected-18.svg enigmail-2.2.4/ui/skin/images/headerProtected-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerProtected-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerProtected-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerProtected-24.svg enigmail-2.2.4/ui/skin/images/headerProtected-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerProtected-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerProtected-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerProtected-30.svg enigmail-2.2.4/ui/skin/images/headerProtected-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerProtected-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerProtected-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-16.svg enigmail-2.2.4/ui/skin/images/headerUnprotected-16.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-16.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerUnprotected-16.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-18.svg enigmail-2.2.4/ui/skin/images/headerUnprotected-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerUnprotected-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-24.svg enigmail-2.2.4/ui/skin/images/headerUnprotected-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerUnprotected-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-30.svg enigmail-2.2.4/ui/skin/images/headerUnprotected-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/headerUnprotected-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/headerUnprotected-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/importSuccess.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/importSuccess.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-attach-active.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-attach-active.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-attach-disabled.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-attach-disabled.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-attach-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-attach-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-encrypt-active-force.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-encrypt-active-force.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-encrypt-active.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-encrypt-active.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-encrypt-inactive-force.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-encrypt-inactive-force.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-encrypt-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-encrypt-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-sign-active-force.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-sign-active-force.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-sign-active.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-sign-active.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-sign-inactive-force.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-sign-inactive-force.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-sign-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-sign-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/modern-toolbar-background.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/modern-toolbar-background.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/password-error.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/password-error.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/images/password-error.svg enigmail-2.2.4/ui/skin/images/password-error.svg --- enigmail-2.1.6+ds1/ui/skin/images/password-error.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/password-error.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpEncryptActive.svg enigmail-2.2.4/ui/skin/images/pEpEncryptActive.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpEncryptActive.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpEncryptActive.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpEncryptInactive.svg enigmail-2.2.4/ui/skin/images/pEpEncryptInactive.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpEncryptInactive.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpEncryptInactive.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpGreen.svg enigmail-2.2.4/ui/skin/images/pEpGreen.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpGreen.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpGreen.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpGrey.svg enigmail-2.2.4/ui/skin/images/pEpGrey.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpGrey.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpGrey.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpLogo.svg enigmail-2.2.4/ui/skin/images/pEpLogo.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpLogo.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpLogo.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpRed.svg enigmail-2.2.4/ui/skin/images/pEpRed.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpRed.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpRed.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/pEpYellow.svg enigmail-2.2.4/ui/skin/images/pEpYellow.svg --- enigmail-2.1.6+ds1/ui/skin/images/pEpYellow.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/pEpYellow.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-active-18.svg enigmail-2.2.4/ui/skin/images/sign-active-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-active-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-active-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,340 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-active-24.svg enigmail-2.2.4/ui/skin/images/sign-active-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-active-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-active-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-active-30.svg enigmail-2.2.4/ui/skin/images/sign-active-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-active-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-active-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,338 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-18.svg enigmail-2.2.4/ui/skin/images/sign-disabled-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-disabled-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,368 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-24.svg enigmail-2.2.4/ui/skin/images/sign-disabled-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-disabled-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,368 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-30.svg enigmail-2.2.4/ui/skin/images/sign-disabled-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-disabled-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-disabled-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,368 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-18.svg enigmail-2.2.4/ui/skin/images/sign-inactive-18.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-18.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-inactive-18.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,383 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-24.svg enigmail-2.2.4/ui/skin/images/sign-inactive-24.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-24.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-inactive-24.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,382 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-30.svg enigmail-2.2.4/ui/skin/images/sign-inactive-30.svg --- enigmail-2.1.6+ds1/ui/skin/images/sign-inactive-30.svg 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/images/sign-inactive-30.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,382 +0,0 @@ - - - - - - image/svg+xml - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Highlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/twisty-clsd.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/twisty-clsd.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/twisty-open.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/twisty-open.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/images/warning-16.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/images/warning-16.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/Makefile enigmail-2.2.4/ui/skin/Makefile --- enigmail-2.1.6+ds1/ui/skin/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/Makefile 2020-10-01 13:32:58.000000000 +0000 @@ -11,433 +11,17 @@ images/check1.png \ images/check2.png -SKIN_TB_WIN_XP = \ - tb-windows/enigmail.css \ +SKIN = \ + common/enigmail.css \ common/enigmail-common.css \ - common/enigmail-pEp.css \ common/enigmail-html.css \ - images/enigmail-about.svg \ images/enigmail-logo.png \ images/ok-sign.svg \ - tb-windows/images/enigEncInactive.png \ - tb-windows/images/enigEncNotOk.png \ - tb-windows/images/enigEncOk.png \ - tb-windows/images/enigSignInactive.png \ - tb-windows/images/enigSignNotOk.png \ - tb-windows/images/enigSignOk.png \ - tb-windows/images/enigSignUnkown.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - tb-windows/images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceYes.png \ - tb-windows/images/enigEncForceNo.png \ - images/decrypt-inactive-18.svg \ - images/decrypt-active-18.svg \ - images/encrypt-inactive-18.svg \ - images/encrypt-active-18.svg \ - images/encrypt-disabled-18.svg \ - images/sign-active-18.svg \ - images/sign-disabled-18.svg \ - images/sign-inactive-18.svg \ - images/importSuccess.png \ - images/attach-active-18.svg \ - images/attach-disabled-18.svg \ - images/attach-inactive-18.svg \ - images/warning-16.png \ - images/password-error.svg \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg \ - images/headerProtected-18.svg \ - images/headerUnprotected-18.svg + images/spinning-wheel.png -SKIN_AERO = \ - common/enigmail-common.css \ - common/enigmail-pEp.css \ - common/enigmail-html.css \ - images/enigmail-about.svg \ - images/enigmail-logo.png \ - images/ok-sign.svg \ - tb-windows/images/enigEncInactive.png \ - tb-windows/images/enigEncNotOk.png \ - tb-windows/images/enigEncOk.png \ - tb-windows/images/enigSignInactive.png \ - tb-windows/images/enigSignNotOk.png \ - tb-windows/images/enigSignOk.png \ - tb-windows/images/enigSignUnkown.png \ - images/importSuccess.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - tb-windows/images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceYes.png \ - tb-windows/images/enigEncForceNo.png \ - images/decrypt-inactive-18.svg \ - images/decrypt-active-18.svg \ - images/encrypt-inactive-18.svg \ - images/encrypt-active-18.svg \ - images/encrypt-disabled-18.svg \ - images/sign-active-18.svg \ - images/sign-disabled-18.svg \ - images/sign-inactive-18.svg \ - images/attach-active-18.svg \ - images/attach-disabled-18.svg \ - images/attach-inactive-18.svg \ - images/password-error.svg \ - images/warning-16.png \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg \ - images/headerProtected-18.svg \ - images/headerUnprotected-18.svg - - -SKIN_TB_MAC = \ - common/enigmail-common.css \ - common/enigmail-pEp.css \ - common/enigmail-html.css \ - images/enigmail-about.svg \ - images/enigmail-logo.png \ - images/ok-sign.svg \ - tb-mac/images/enigEncInactive.png \ - tb-mac/images/enigEncNotOk.png \ - tb-mac/images/enigEncOk.png \ - tb-mac/images/enigSignInactive.png \ - tb-mac/images/enigSignNotOk.png \ - tb-mac/images/enigSignOk.png \ - tb-mac/images/enigSignUnkown.png \ - images/importSuccess.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - tb-mac/images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceYes.png \ - tb-windows/images/enigEncForceNo.png \ - images/decrypt-active-18.svg \ - images/decrypt-inactive-18.svg \ - images/encrypt-inactive-18.svg \ - images/encrypt-active-18.svg \ - images/encrypt-disabled-18.svg \ - images/sign-active-18.svg \ - images/sign-disabled-18.svg \ - images/sign-inactive-18.svg \ - images/attach-active-18.svg \ - images/attach-disabled-18.svg \ - images/attach-inactive-18.svg \ - images/warning-16.png \ - images/password-error.svg \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg \ - images/headerProtected-18.svg \ - images/headerUnprotected-18.svg - -SKIN_TB_LINUX = \ - tb-linux/enigmail.css \ - common/enigmail-common.css \ - common/enigmail-pEp.css \ - common/enigmail-html.css \ - images/enigmail-about.svg \ - images/enigmail-logo.png \ - images/ok-sign.svg \ - tb-linux/images/enigEncInactive.png \ - tb-linux/images/enigEncNotOk.png \ - tb-windows/images/enigEncOk.png \ - tb-linux/images/enigSignInactive.png \ - tb-linux/images/enigSignNotOk.png \ - tb-windows/images/enigSignOk.png \ - tb-linux/images/enigSignUnkown.png \ - images/importSuccess.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - tb-windows/images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceNo.png \ - tb-windows/images/enigEncForceYes.png \ - images/decrypt-inactive-18.svg \ - images/decrypt-active-18.svg \ - images/encrypt-inactive-18.svg \ - images/encrypt-active-18.svg \ - images/encrypt-disabled-18.svg \ - images/sign-active-18.svg \ - images/sign-disabled-18.svg \ - images/sign-inactive-18.svg \ - images/attach-active-18.svg \ - images/attach-disabled-18.svg \ - images/attach-inactive-18.svg \ - images/warning-16.png \ - images/password-error.svg \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg \ - images/headerProtected-18.svg \ - images/headerUnprotected-18.svg - -SKIN_CLASSIC_SEAMONKEY = \ - classic-seamonkey/enigmail.css \ - common/enigmail-common.css \ - common/enigmail-pEp.css \ - common/enigmail-html.css \ - images/enigmail-about.svg \ - images/enigmail-logo.png \ - images/ok-sign.svg \ - classic-seamonkey/images/enigEncInactive.png \ - classic-seamonkey/images/enigEncNotOk.png \ - classic-seamonkey/images/enigEncOk.png \ - classic-seamonkey/images/enigSignInactive.png \ - classic-seamonkey/images/enigSignNotOk.png \ - classic-seamonkey/images/enigSignOk.png \ - classic-seamonkey/images/enigSignUnkown.png \ - images/importSuccess.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - classic-seamonkey/images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceYes.png \ - tb-windows/images/enigEncForceNo.png \ - images/decrypt-inactive-24.svg \ - images/decrypt-active-24.svg \ - images/decrypt-inactive-30.svg \ - images/decrypt-active-30.svg \ - images/encrypt-inactive-24.svg \ - images/encrypt-active-24.svg \ - images/encrypt-disabled-24.svg \ - images/sign-active-24.svg \ - images/sign-disabled-24.svg \ - images/sign-inactive-24.svg \ - images/encrypt-inactive-30.svg \ - images/encrypt-active-30.svg \ - images/encrypt-disabled-30.svg \ - images/sign-active-30.svg \ - images/sign-disabled-30.svg \ - images/sign-inactive-30.svg \ - images/attach-inactive-24.svg \ - images/attach-inactive-30.svg \ - images/attach-disabled-24.svg \ - images/attach-disabled-30.svg \ - images/attach-active-24.svg \ - images/attach-active-30.svg \ - images/warning-16.png \ - images/password-error.svg \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg \ - images/headerProtected-24.svg \ - images/headerUnprotected-24.svg \ - images/headerProtected-30.svg \ - images/headerUnprotected-30.svg - -# missing: modern-encrypt-disabled.png, modern-sign-disabled.png -SKIN_MODERN = \ - modern/enigmail.css \ - common/enigmail-common.css \ - common/enigmail-pEp.css \ - common/enigmail-html.css \ - images/enigmail-about.svg \ - images/enigmail-logo.png \ - images/enigdecrypt-act.png \ - images/enigdecrypt-dis.png \ - images/enigdecrypt-hov.png \ - images/enigdecrypt.png \ - images/ok-sign.svg \ - tb-windows/images/enigEncInactive.png \ - tb-windows/images/enigEncNotOk.png \ - tb-windows/images/enigEncOk.png \ - tb-windows/images/enigSignInactive.png \ - tb-windows/images/enigSignNotOk.png \ - tb-windows/images/enigSignOk.png \ - images/enigSignUnkown.png \ - images/modern-encrypt-active-force.png \ - images/modern-encrypt-active.png \ - images/modern-encrypt-inactive-force.png \ - images/modern-encrypt-inactive.png \ - images/modern-sign-active-force.png \ - images/modern-sign-active.png \ - images/modern-sign-inactive-force.png \ - images/modern-sign-inactive.png \ - images/modern-attach-active.png \ - images/modern-attach-disabled.png \ - images/modern-attach-inactive.png \ - images/importSuccess.png \ - images/twisty-open.png \ - images/twisty-clsd.png \ - images/spinning-wheel.png \ - images/col-encrypted-signed.png \ - tb-windows/images/enigSignActiveNone.png \ - tb-windows/images/enigSignActivePlus.png \ - tb-windows/images/enigSignActiveMinus.png \ - tb-windows/images/enigSignActiveConflict.png \ - tb-windows/images/enigSignInactiveNone.png \ - tb-windows/images/enigSignInactivePlus.png \ - tb-windows/images/enigSignInactiveMinus.png \ - tb-windows/images/enigSignInactiveConflict.png \ - tb-windows/images/enigSignForceYes.png \ - tb-windows/images/enigSignForceNo.png \ - tb-windows/images/enigEncActiveNone.png \ - tb-windows/images/enigEncActivePlus.png \ - tb-windows/images/enigEncActiveMinus.png \ - tb-windows/images/enigEncActiveConflict.png \ - tb-windows/images/enigEncInactiveNone.png \ - tb-windows/images/enigEncInactivePlus.png \ - tb-windows/images/enigEncInactiveMinus.png \ - tb-windows/images/enigEncInactiveConflict.png \ - tb-windows/images/enigEncForceYes.png \ - tb-windows/images/enigEncForceNo.png \ - images/modern-toolbar-background.png \ - images/warning-16.png \ - images/password-error.svg \ - images/col-pEpGreen.svg \ - images/col-pEpYellow.svg \ - images/col-pEpRed.svg \ - images/pEpGreen.svg \ - images/pEpGrey.svg \ - images/pEpYellow.svg \ - images/pEpRed.svg \ - images/pEpEncryptActive.svg \ - images/pEpEncryptInactive.svg \ - images/pEpLogo.svg - -ifeq ($(ENABLE_POSTBOX),yes) -SKIN_AERO += postbox/win/enigmail.css -SKIN_TB_MAC += postbox/mac/enigmail.css -else -SKIN_AERO += tb-aero/enigmail.css -SKIN_TB_MAC += tb-mac/enigmail.css -endif all: deploy -deploy: $(UIFILES) $(SKIN_TB_WIN_XP) $(SKIN_AERO) $(SKIN_TB_MAC) $(SKIN_TB_LINUX) $(SKIN_CLASSIC_SEAMONKEY) $(SKIN_MODERN) +deploy: $(UIFILES) $(SKIN) $(DEPTH)/util/install -m 644 $(DIST)/chrome/content/ui $(UIFILES) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/tb-win-xp $(SKIN_TB_WIN_XP) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/aero $(SKIN_AERO) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/tb-mac $(SKIN_TB_MAC) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/tb-linux $(SKIN_TB_LINUX) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/classic-seamonkey $(SKIN_CLASSIC_SEAMONKEY) - $(DEPTH)/util/install -m 644 $(DIST)/chrome/skin/modern $(SKIN_MODERN) + $(DEPTH)/util/install -m 644 $(DIST)/chrome/content/skin $(SKIN) diff -Nru enigmail-2.1.6+ds1/ui/skin/modern/enigmail.css enigmail-2.2.4/ui/skin/modern/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/modern/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/modern/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,286 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for the SeaMonkey "Modern" theme - */ - -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/enigdecrypt.png"); - } - -#button-enigmail-decrypt[disabled="true"], -#button-enigmail-decrypt[disabled="true"]:hover, -#button-enigmail-decrypt[disabled="true"]:hover:active - { - list-style-image : url("chrome://enigmail/skin/enigdecrypt-dis.png"); - } - -#button-enigmail-decrypt:hover - { - list-style-image : url("chrome://enigmail/skin/enigdecrypt-hov.png"); - } - -#button-enigmail-decrypt:hover:active - { - list-style-image : url("chrome://enigmail/skin/enigdecrypt-act.png"); - } - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/modern-encrypt-inactive.png"); -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/modern-encrypt-disabled.png"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/modern-encrypt-active.png"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/modern-encrypt-active-force.png"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/modern-encrypt-inactive-force.png"); -} - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/modern-sign-inactive.png"); -} - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/modern-sign-disabled.png"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/modern-sign-active.png"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/modern-sign-active-force.png"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/modern-sign-inactive-force.png"); -} - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/modern-attach-inactive.png"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/modern-attach-disabled.png"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/modern-attach-active.png"); -} - - -.enigmailToolbar { - min-width: 50px; - white-space: normal; - color: WindowText; - line-height: 1.4em; - - -moz-appearance: none !important; - -moz-appearance: none; - - padding: 0px !important; - margin: 0px !important; - -moz-margin-start: 3px !important; - border: none !important; - background-color: transparent; - background-image: url("chrome://enigmail/skin/modern-toolbar-background.png"); -} - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-status-bar[signed="forceYes"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="forceNo"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactivePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - -#enigmail-status-bar[encrypted="forceYes"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="forceNo"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactivePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} diff -Nru enigmail-2.1.6+ds1/ui/skin/postbox/mac/enigmail.css enigmail-2.2.4/ui/skin/postbox/mac/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/postbox/mac/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/postbox/mac/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Mac OS X - Postbox - */ - -@import url("chrome://global/skin/"); -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } diff -Nru enigmail-2.1.6+ds1/ui/skin/postbox/win/enigmail.css enigmail-2.2.4/ui/skin/postbox/win/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/postbox/win/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/postbox/win/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Windows (Postbox) - */ - -@import url("chrome://global/skin/"); -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } diff -Nru enigmail-2.1.6+ds1/ui/skin/README.txt enigmail-2.2.4/ui/skin/README.txt --- enigmail-2.1.6+ds1/ui/skin/README.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/README.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -classic: -- windows - - one css for classic windows - - one css for aero scheme -classic-seamokey: -- classic theme of seamonkey -modern: -- modern theme of seamonkey -tb-linux: -- linux -tb-mac: -- apple - -for a new image: -- add it to all css files - in the subdirs here -- add it to ../jar.mn file - -Note: -- different schemes have different icon sizes - diff -Nru enigmail-2.1.6+ds1/ui/skin/tb-aero/enigmail.css enigmail-2.2.4/ui/skin/tb-aero/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/tb-aero/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/tb-aero/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,290 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Windows (Aero Theme) - */ - -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } - - - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-encrypt .toolbarbutton-text { - display: none; -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-18.svg"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-sign .toolbarbutton-text { - display: none; -} - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-18.svg"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-18.svg"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-18.svg"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-18.svg"); -} - - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose toolbar: Protect header - ***************************************************/ - -#enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-18.svg"); -} - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-status-bar[signed="forceYes"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="forceNo"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactivePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - -#enigmail-status-bar[encrypted="forceYes"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="forceNo"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactivePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-aero/images/enigmail-settings.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-aero/images/enigmail-settings.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-aero/images/enigmail-settings-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-aero/images/enigmail-settings-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-aero/images/enigmail-toolbar.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-aero/images/enigmail-toolbar.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-aero/images/enigmail-toolbar-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-aero/images/enigmail-toolbar-small.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/tb-linux/enigmail.css enigmail-2.2.4/ui/skin/tb-linux/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/tb-linux/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/tb-linux/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,289 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Linux - */ - -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } - - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-encrypt .toolbarbutton-text { - display: none; -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-18.svg"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-sign .toolbarbutton-text { - display: none; -} - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-18.svg"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-18.svg"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-18.svg"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-18.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: Protect header - ***************************************************/ - -#enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-18.svg"); -} - - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-status-bar[signed="forceYes"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="forceNo"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactivePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - -#enigmail-status-bar[encrypted="forceYes"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="forceNo"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactivePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check0.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check0.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check0.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check0.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check1.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check1.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check1.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check1.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check2.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check2.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/check2.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/check2.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/col-encrypted-signed.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/col-encrypted-signed.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigEncInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigEncInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigEncNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigEncNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigEncOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigEncOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigmail-settings.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigmail-settings.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigmail-settings-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigmail-settings-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigmail-toolbar.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigmail-toolbar.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigmail-toolbar-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigmail-toolbar-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigSignInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigSignInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigSignNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigSignNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigSignOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigSignOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-linux/images/enigSignUnkown.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-linux/images/enigSignUnkown.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/tb-mac/enigmail.css enigmail-2.2.4/ui/skin/tb-mac/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/tb-mac/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/tb-mac/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,301 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Mac OS X - */ - -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } - - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-encrypt .toolbarbutton-text { - display: none; -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-18.svg"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-sign .toolbarbutton-text { - display: none; -} - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-18.svg"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-18.svg"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-18.svg"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-18.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: Protect header - ***************************************************/ - -#enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - - -#enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-18.svg"); -} - - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-signing-status[disabled] { - visibility: collapse; -} - -#enigmail-signing-status[signed="forceYes"] { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="forceNo"] { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="inactiveNone"] { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="inactivePlus"] { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="inactiveMinus"] { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="inactiveConflict"] { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="activeNone"] { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="activePlus"] { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="activeMinus"] { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-signing-status[signed="activeConflict"] { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - - -#enigmail-encryption-status[disabled] { - visibility: collapse; -} - -#enigmail-encryption-status[encrypted="inactiveNone"] { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-encryption-status[encrypted="forceYes"] { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - - #enigmail-encryption-status[encrypted="forceNo"] { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-encryption-status[encrypted="activeNone"] { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-encryption-status[encrypted="activePlus"] { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - - #enigmail-encryption-status[encrypted="activeMinus"] { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-encryption-status[encrypted="activeConflict"] { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - - -#enigmail-encryption-status[encrypted="inactivePlus"] { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - - #enigmail-encryption-status[encrypted="inactiveMinus"] { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-encryption-status[encrypted="inactiveConflict"] { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/col-encrypted-signed.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/col-encrypted-signed.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigEncInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigEncInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigEncNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigEncNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigEncOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigEncOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-decrypt-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-decrypt-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-decrypt.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-decrypt.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-decrypt-small-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-decrypt-small-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-decrypt-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-decrypt-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-options-small-inactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-options-small-inactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigmail-options-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigmail-options-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigSignInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigSignInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigSignNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigSignNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigSignOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigSignOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-mac/images/enigSignUnkown.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-mac/images/enigSignUnkown.png differ diff -Nru enigmail-2.1.6+ds1/ui/skin/tb-mac/Makefile.in enigmail-2.2.4/ui/skin/tb-mac/Makefile.in --- enigmail-2.1.6+ds1/ui/skin/tb-mac/Makefile.in 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/tb-mac/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -#!gmake -# -# The contents of this file are subject to the Mozilla Public -# License Version 1.1 (the "MPL"); you may not use this file -# except in compliance with the MPL. You may obtain a copy of -# the MPL at https://www.mozilla.org/MPL/ -# -# Software distributed under the MPL is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the MPL for the specific language governing -# rights and limitations under the MPL. -# -# The Original Code is Enigmail. -# -# The Initial Developer of the Original Code is Ramalingam Saravanan. -# Portions created by Ramalingam Saravanan are -# Copyright (C) 2001 Ramalingam Saravanan. All Rights Reserved. -# -# Contributor(s): -# -# Alternatively, the contents of this file may be used under the -# terms of the GNU General Public License (the "GPL"), in which case -# the provisions of the GPL are applicable instead of -# those above. If you wish to allow use of your version of this -# file only under the terms of the GPL and not to allow -# others to use your version of this file under the MPL, indicate -# your decision by deleting the provisions above and replace them -# with the notice and other provisions required by the GPL. -# If you do not delete the provisions above, a recipient -# may use your version of this file under either the MPL or the -# GPL. -# - -DEPTH = ../../../../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -include $(topsrcdir)/config/config.mk - -include $(topsrcdir)/config/rules.mk diff -Nru enigmail-2.1.6+ds1/ui/skin/tb-windows/enigmail.css enigmail-2.2.4/ui/skin/tb-windows/enigmail.css --- enigmail-2.1.6+ds1/ui/skin/tb-windows/enigmail.css 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/skin/tb-windows/enigmail.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,292 +0,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 - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -/** - * Enigmail styles for Windows XP - */ - -@import url("chrome://global/skin/"); -@import url("chrome://enigmail/skin/enigmail-common.css"); /* common styles for all platforms */ -@import url("chrome://enigmail/skin/enigmail-pEp.css"); /* styles related to pEp for all platforms */ - - -@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - - -#button-enigmail-decrypt - { - list-style-image : url("chrome://enigmail/skin/decrypt-active-18.svg"); - } - -#button-enigmail-decrypt[disabled] - { - list-style-image : url("chrome://enigmail/skin/decrypt-inactive-18.svg"); - } - - -/*************************************************** - * Icons for compose toolbar: encryption - ***************************************************/ - -#button-enigmail-encrypt -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-encrypt .toolbarbutton-text { - display: none; -} - -#button-enigmail-encrypt[disabled] { - list-style-image : url("chrome://enigmail/skin/encrypt-disabled-18.svg"); -} - -#button-enigmail-encrypt[encrypted="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-active-18.svg"); -} - -#button-enigmail-encrypt[encrypted="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/encrypt-inactive-18.svg"); -} - - - -/*************************************************** - * Icons for compose toolbar: signing - ***************************************************/ - -#button-enigmail-sign -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/* hide label unless text-only mode is enabled */ -toolbar:not([mode="text"]) #button-enigmail-sign .toolbarbutton-text { - display: none; -} - -#button-enigmail-sign[disabled] { - list-style-image : url("chrome://enigmail/skin/sign-disabled-18.svg"); -} - -#button-enigmail-sign[signed="activeNone"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceYes"] -{ - list-style-image : url("chrome://enigmail/skin/sign-active-18.svg"); -} - -#button-enigmail-sign[signed="forceNo"] -{ - list-style-image : url("chrome://enigmail/skin/sign-inactive-18.svg"); -} - -/*************************************************** - * Icons for compose toolbar: attach own key - ***************************************************/ - -#button-enigmail-attach -{ - list-style-image : url("chrome://enigmail/skin/attach-inactive-18.svg"); -} - -#button-enigmail-attach[disabled] { - list-style-image : url("chrome://enigmail/skin/attach-disabled-18.svg"); -} - -#button-enigmail-attach[addPubkey="true"] -{ - list-style-image : url("chrome://enigmail/skin/attach-active-18.svg"); -} - - -/*************************************************** - * Icons for compose toolbar: Protect header - ***************************************************/ - -#enigmail-toolbar-encryptHdr-button -{ - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - - -#enigmail-toolbar-encryptHdr-button[disabled] { - list-style-image : url("chrome://enigmail/skin/headerUnprotected-18.svg"); -} - -#enigmail-toolbar-encryptHdr-button[checked="true"] -{ - list-style-image : url("chrome://enigmail/skin/headerProtected-18.svg"); -} - -/*************************************************** - * Icons for messenger status bar - ***************************************************/ - -#enigmail-status-bar #enigmail-signed-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[signed="ok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="notok"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="unknown"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignUnkown.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactive"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactive.png"); - visibility: visible; -} - -#enigmail-status-bar #enigmail-encrypted-status { - list-style-image: none; - visibility: collapse; -} - -#enigmail-status-bar[encrypted="ok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="notok"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncNotOk.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactive"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactive.png"); - visibility: visible; -} - - -/*************************************************** - * Icons for compose status bar: signed states - ***************************************************/ - -#enigmail-status-bar[signed="forceYes"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="forceNo"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactivePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="inactiveConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignInactiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeNone"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activePlus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeMinus"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[signed="activeConflict"] #enigmail-signed-status { - list-style-image: url("chrome://enigmail/skin/enigSignActiveConflict.png"); - visibility: visible; -} - -/*************************************************** - * Icons for compose status bar: encrypted states - ***************************************************/ - -#enigmail-status-bar[encrypted="forceYes"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceYes.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="forceNo"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncForceNo.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="activeConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncActiveConflict.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveNone"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveNone.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactivePlus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactivePlus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveMinus"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveMinus.png"); - visibility: visible; -} - -#enigmail-status-bar[encrypted="inactiveConflict"] #enigmail-encrypted-status { - list-style-image: url("chrome://enigmail/skin/enigEncInactiveConflict.png"); - visibility: visible; -} Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check0.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check0.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check0.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check0.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check1.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check1.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check1.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check1.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check2.bmp and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check2.bmp differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/check2.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/check2.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/col-encrypted-signed.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/col-encrypted-signed.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigdecrypt-act.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigdecrypt-act.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigdecrypt.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigdecrypt.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigdecrypt-hov.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigdecrypt-hov.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncActiveConflict.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncActiveConflict.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncActiveMinus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncActiveMinus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncActiveNone.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncActiveNone.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncActivePlus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncActivePlus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncForceNo.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncForceNo.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncForceYes.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncForceYes.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncInactiveConflict.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncInactiveConflict.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncInactiveMinus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncInactiveMinus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncInactiveNone.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncInactiveNone.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncInactivePlus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncInactivePlus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigEncOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigEncOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigmail-settings.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigmail-settings.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigmail-settings-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigmail-settings-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigmail-toolbar.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigmail-toolbar.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigmail-toolbar-small.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigmail-toolbar-small.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigsend-act.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigsend-act.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigsend-dis.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigsend-dis.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigsend.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigsend.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigsend-hov.gif and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigsend-hov.gif differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignActiveConflict.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignActiveConflict.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignActiveMinus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignActiveMinus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignActiveNone.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignActiveNone.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignActivePlus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignActivePlus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignForceNo.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignForceNo.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignForceYes.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignForceYes.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignInactiveConflict.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignInactiveConflict.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignInactiveMinus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignInactiveMinus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignInactiveNone.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignInactiveNone.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignInactivePlus.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignInactivePlus.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignInactive.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignInactive.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignNotOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignNotOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignOk.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignOk.png differ Binary files /tmp/tmpGBZ5y_/y6l8ny1dVx/enigmail-2.1.6+ds1/ui/skin/tb-windows/images/enigSignUnkown.png and /tmp/tmpGBZ5y_/S0VURC6TLL/enigmail-2.2.4/ui/skin/tb-windows/images/enigSignUnkown.png differ diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-a_e.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-a_e.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-a_e.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-a_e.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,663 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, trustAllKeys_test: false, JSUnit: false, EnigmailConstants: false, EnigmailLocale: 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/. - */ - -var window; -var document; - -var EnigmailApp = {}; -var getCurrentAccountKey = {}; -var MailServices = {}; -var CommandUpdate_MsgCompose = {}; -var top = {}; -var EnigmailDialog = { - msgBox: function() {} -}; -var AddAttachment; -var AddAttachments; -var EnigmailMimeEncrypt = {}; -var EnigmailPEPAdapter = {}; -var Recipients2CompFields = {}; -var GetResourceFromUri = {}; -var EnigmailCore = {}; - -var gSMFields; - -var EnigmailPrefs = { - getPref: (prop) => { - return 1; - }, - setPref: function() {} -}; - -var EnigmailTimer = { - setTimeout: function() {} -}; - -var gMsgCompose = {}; - -function toggleEncryptMessage() { - Assert.ok(true); -} - -function toggleSignMessage() { - Assert.ok(true); -} - -var getCurrentIdentity = function() { - -}; - -var EnigmailFuncs = { - -}; - - -function addAttachment_test() { - - AddAttachments = function(att) { - Assert.equal(att[0], 'xyz'); - }; - - Enigmail.msg.addAttachment('xyz'); - - AddAttachment = function(att) { - Assert.equal(att, 'xyz'); - }; - - Enigmail.msg.addAttachment('xyz'); -} - -function addRecipients_test() { - let recList = [ - "user1@enigmail.net,", - "user2@enigmail.net," - ]; - - let addrList = []; - - EnigmailFuncs.stripEmail = function(val) { - return val; - }; - - Enigmail.msg.addRecipients(addrList, recList); - Assert.equal(addrList.length, 2); - Assert.equal(addrList[0], 'user1@enigmail.net'); - Assert.equal(addrList[1], 'user2@enigmail.net'); - -} - -function addressOnChange_test() { - - Enigmail.msg.addrOnChangeTimer = false; - Enigmail.msg.fireSendFlags = function() { - Assert.ok(true); - }; - EnigmailTimer.setTimeout = function(callback, time) { - Assert.equal(time, 250); - callback(); - Assert.equal(Enigmail.msg.addrOnChangeTimer, null); - return true; - }; - - Enigmail.msg.addressOnChange(); - - Assert.equal(Enigmail.msg.addrOnChangeTimer, true); -} - -function allowAttachOwnKey_test() { - - Enigmail.msg.identity = {}; - - Enigmail.msg.isEnigmailEnabled = function() { - return false; - }; - let ret = Enigmail.msg.allowAttachOwnKey(); - Assert.equal(ret, -1); - - Enigmail.msg.isEnigmailEnabled = function() { - return true; - }; - - Enigmail.msg.identity.getIntAttribute = function() { - return 0; - }; - ret = Enigmail.msg.allowAttachOwnKey(); - Assert.equal(ret, 0); - - Enigmail.msg.identity.getIntAttribute = function() { - return 2; - }; - - Enigmail.msg.identity.getCharAttribute = function() { - return 'xyz'; - }; - ret = Enigmail.msg.allowAttachOwnKey(); - Assert.equal(ret, 0); - - Enigmail.msg.identity.getCharAttribute = function() { - return '02'; - }; - ret = Enigmail.msg.allowAttachOwnKey(); - Assert.equal(ret, 1); - -} - -function attachKey_test() { - window.openDialog = function(xulFilePath, str1, options, inputObj, resultObj) { - Assert.equal(xulFilePath, "chrome://enigmail/content/ui/enigmailKeySelection.xul"); - Assert.equal(str1, ''); - Assert.equal(options, "dialog,modal,centerscreen,resizable"); - Assert.equal(inputObj.options, "multisel,allowexpired,nosending"); - Assert.equal(inputObj.dialogHeader, EnigmailLocale.getString("keysToExport")); - }; - - Enigmail.msg.extractAndAttachKey = function() { - Assert.ok(true); - }; - - Enigmail.msg.trustAllKeys = false; - - Enigmail.msg.attachKey(); - - window.openDialog = function(xulFilePath, str1, options, inputObj, resultObj) { - Assert.equal(inputObj.options, "multisel,allowexpired,nosending,trustallkeys"); - }; - - Enigmail.msg.trustAllKeys = true; - - Enigmail.msg.attachKey(); -} - -function attachOwnKey_test() { - - Enigmail.msg.attachOwnKeyObj.attachedKey = 'xy'; - Enigmail.msg.identity = { - getIntAttribute: function() { - return 1; - }, - getCharAttribute: function() { - return 'xyz'; - } - }; - - Enigmail.msg.removeAttachedKey = function() { - Assert.ok(true); - }; - - Enigmail.msg.attachOwnKey(); - - Enigmail.msg.removeAttachedKey = function() { - Assert.ok(false); - }; - - Enigmail.msg.attachOwnKeyObj.attachedKey = 'xyz'; - Enigmail.msg.attachOwnKey(); - - Enigmail.msg.attachOwnKeyObj.attachedKey = null; - - Enigmail.msg.extractAndAttachKey = function() { - return 'key'; - }; - - Enigmail.msg.attachOwnKey(); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, 'key'); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, 'xyz'); - - Enigmail.msg.attachOwnKeyObj.attachedObj = null; - Enigmail.msg.attachOwnKeyObj.attachedKey = null; - Enigmail.msg.extractAndAttachKey = function() { - return null; - }; - Enigmail.msg.attachOwnKey(); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - -} - -function attachPepKey_test() { - - gMsgCompose.compFields = {}; - - Enigmail.msg.identity = { - getBoolAttribute: function() { - Assert.ok(true); - return true; - } - }; - - EnigmailPEPAdapter.getOwnIdentityForEmail = function() { - Assert.ok(true); - return null; - }; - - Enigmail.msg.attachPepKey(); - - EnigmailPEPAdapter.getOwnIdentityForEmail = function() { - Assert.ok(true); - return { - fpr: "001" - }; - }; - - Enigmail.msg.attachOwnKeyObj.attachedKey = "0x002"; - - Enigmail.msg.removeAttachedKey = function() { - Assert.ok(true); - Enigmail.msg.attachOwnKeyObj.attachedKey = null; - }; - - Enigmail.msg.extractAndAttachKey = function() { - Assert.ok(true); - return { - name: '' - }; - }; - - gMsgCompose.compFields.addAttachment = function(attachedObj) { - Assert.ok(true); - Assert.equal(attachedObj.name, "pEpkey.asc"); - }; - - Enigmail.msg.attachPepKey(); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj.name, "pEpkey.asc"); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, "0x001"); -} - -function checkProtectHeaders_test() { - - window.openDialog = function(xulFilePath, str1, options, inputObj, resultObj) { - resultObj.value = true; - }; - - let ret = Enigmail.msg.checkProtectHeaders(0x0080); - Assert.equal(ret, true); - - ret = Enigmail.msg.checkProtectHeaders(0x0082); - Assert.equal(ret, true); - - ret = Enigmail.msg.checkProtectHeaders(0x0002); - Assert.equal(ret, true); - - Enigmail.msg.protectHeaders = true; - - ret = Enigmail.msg.checkProtectHeaders(0x0082); - Assert.equal(ret, true); - - Enigmail.msg.protectHeaders = false; - - EnigmailDialog.msgBox = function() { - return -1; - }; - - EnigmailPrefs.getPref = function() { - return 1; - }; - - ret = Enigmail.msg.checkProtectHeaders(0x0082); - Assert.equal(ret, false); - - Enigmail.msg.protectHeaders = false; - - EnigmailDialog.msgBox = function() { - Assert.ok(true); - return 0; - }; - - Enigmail.msg.displayProtectHeadersStatus = function() { - Assert.ok(true); - }; - - EnigmailPrefs.setPref = function(prop, val) { - Assert.equal(val, 2); - }; - - ret = Enigmail.msg.checkProtectHeaders(0x0082); - Assert.equal(ret, true); - Assert.equal(Enigmail.msg.protectHeaders, true); - - Enigmail.msg.protectHeaders = false; - - EnigmailDialog.msgBox = function() { - return -2; - }; - - Enigmail.msg.displayProtectHeadersStatus = function() { - Assert.ok(true); - }; - - EnigmailPrefs.setPref = function(prop, val) { - Assert.equal(val, 0); - }; - - ret = Enigmail.msg.checkProtectHeaders(0x00082); - Assert.equal(ret, true); - Assert.equal(Enigmail.msg.protectHeaders, false); - -} - -function compileFromAndTo_test() { - Enigmail.msg.composeBodyReady = {}; - - gMsgCompose.expandMailingLists = function() { - Assert.ok(true); - }; - - Recipients2CompFields = function() { - Assert.ok(true); - }; - - gMsgCompose.compFields = { - to: ['user1@enigmail.net', 'user2@enigmail.net'], - cc: ['user3@enigmail.net', 'user4@enigmail.net'], - bcc: ['user5@enigmail.net', 'user6@enigmail.net'] - }; - - getCurrentIdentity = function() { - Assert.ok(true); - return { - email: 'user@enigmail.net', - fullName: 'User Name' - }; - }; - - EnigmailFuncs.parseEmails = function(emailAddr) { - Assert.ok(true); - return [{ - email: emailAddr[0] - }, { - email: emailAddr[1] - }]; - }; - - let ret = Enigmail.msg.compileFromAndTo(); - Assert.equal(ret.from.email, 'user@enigmail.net'); - Assert.equal(ret.from.name, 'User Name'); - Assert.equal(ret.toAddrList.length, 6); - - gMsgCompose.compFields = { - to: ['user1@enigmail.net', 'user2@enigmail.net'], - cc: ['user3@enigmail.net', 'user4@enigmail.net'], - bcc: ['user5@enigmail.net', 'user6.enigmail.net'] - }; - - ret = Enigmail.msg.compileFromAndTo(); - Assert.equal(ret, null); - -} - -function createEnigmailSecurityFields_test() { - - gMsgCompose.compFields.securityInfo = ''; - EnigmailMimeEncrypt.createMimeEncrypt = function() { - Assert.ok(true); - return 'secureInformation'; - }; - - Enigmail.msg.createEnigmailSecurityFields(); - Assert.equal(gMsgCompose.compFields.securityInfo, 'secureInformation'); - -} - -function delayedProcessFinalState_test() { - - Enigmail.msg.processFinalState = function() { - //Function Overriding - Assert.ok(true); - }; - Enigmail.msg.updateStatusBar = function() { - //Function Overriding - Assert.ok(true); - }; - - EnigmailTimer.setTimeout = function(callback, val) { - //Function Overriding - Assert.equal(val, 100); - callback(); - }; - - Enigmail.msg.delayedProcessFinalState(); - -} - -function displayPartialEncryptedWarning_test() { - - Enigmail.msg.notifyUser = function(priority, msgText, messageId, detailsText) { - Assert.equal(priority, 1); - Assert.equal(detailsText, EnigmailLocale.getString("msgCompose.partiallyEncrypted.inlinePGP")); - Assert.equal(msgText, EnigmailLocale.getString("msgCompose.partiallyEncrypted.short")); - Assert.equal(messageId, "notifyPartialDecrypt"); - }; - - Enigmail.msg.displayPartialEncryptedWarning(); -} - -function displayProtectHeadersStatus_test() { - document.getElementById = function() { - return { - setAttribute: function(prop, val) { - if (prop === "checked") { - Assert.equal(val, "true"); - } else if (prop === "tooltiptext") { - Assert.equal(val, EnigmailLocale.getString("msgCompose.protectSubject.tooltip")); - } - } - }; - }; - - Enigmail.msg.protectHeaders = ['headers']; - - Enigmail.msg.displayProtectHeadersStatus(); - - document.getElementById = function() { - return { - setAttribute: function(prop, val) { - Assert.equal(val, EnigmailLocale.getString("msgCompose.noSubjectProtection.tooltip")); - Assert.equal(prop, "tooltiptext"); - }, - removeAttribute: function(prop) { - Assert.equal(prop, "checked"); - } - }; - }; - - Enigmail.msg.protectHeaders = null; - - Enigmail.msg.displayProtectHeadersStatus(); -} - -function displaySecuritySettings_test() { - - Enigmail.msg.processFinalState = function() { - Assert.ok(true); - }; - - Enigmail.msg.updateStatusBar = function() { - Assert.ok(true); - }; - - window.openDialog = function(windowURL, str1, prop, param) { - param.resetDefaults = true; - }; - - Enigmail.msg.encryptForced = null; - Enigmail.msg.signForced = null; - Enigmail.msg.pgpmimeForced = null; - Enigmail.msg.finalSignDependsOnEncrypt = null; - - Enigmail.msg.displaySecuritySettings(); - Assert.equal(Enigmail.msg.encryptForced, null); - Assert.equal(Enigmail.msg.signForced, null); - Assert.equal(Enigmail.msg.pgpmimeForced, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, null); - - window.openDialog = function(windowURL, str1, prop, param) { - param.resetDefaults = true; - param.success = true; - }; - - Enigmail.msg.displaySecuritySettings(); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - - window.openDialog = function(windowURL, str1, prop, param) { - param.resetDefaults = false; - param.success = true; - param.sign = 1; - param.encrypt = 2; - param.pgpmime = 3; - }; - - Enigmail.msg.signForced = null; - - Enigmail.msg.displaySecuritySettings(); - Assert.equal(Enigmail.msg.dirty, 2); - Assert.equal(Enigmail.msg.signForced, 1); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - Assert.equal(Enigmail.msg.encryptForced, 2); - Assert.equal(Enigmail.msg.pgpmimeForced, 3); - - Enigmail.msg.signForced = 1; - Enigmail.msg.encryptForced = 1; - Enigmail.msg.dirty = null; - - Enigmail.msg.displaySecuritySettings(); - Assert.equal(Enigmail.msg.dirty, 2); -} - -function displaySMimeToolbar_test() { - document.getElementById = function() { - return { - removeAttribute: function() { - Assert.ok(true); - } - }; - }; - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_SMIME; - Enigmail.msg.displaySMimeToolbar(); - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_FORCESMIME; - Enigmail.msg.displaySMimeToolbar(); - - Enigmail.msg.statusPGPMime = null; - document.getElementById = function() { - return { - setAttribute: function() { - Assert.ok(true); - } - }; - }; - - Enigmail.msg.displaySMimeToolbar(); - -} - -function editorGetCharset_test() { - - Enigmail.msg.editor = { - documentCharacterSet: 'xyz' - }; - - Enigmail.msg.editorGetCharset(); - Assert.equal(Enigmail.msg.editor.documentCharacterSet, 'xyz'); -} - -function editorGetContentAs_test() { - Enigmail.msg.editor = { - outputToString: function(mimeType, flags) { - Assert.equal(mimeType, 'mime'); - Assert.equal(flags, 'flags'); - return true; - } - }; - - let ret = Enigmail.msg.editorGetContentAs('mime', 'flags'); - Assert.equal(ret, true); - - Enigmail.msg.editor = false; - ret = Enigmail.msg.editorGetContentAs('mime', 'flags'); - Assert.equal(ret, null); - -} - -function editorInsertAsQuotation_test() { - - Enigmail.msg.editor = null; - let ret = Enigmail.msg.editorInsertAsQuotation(); - Assert.equal(ret, 0); - - Enigmail.msg.editor = {}; - ret = Enigmail.msg.editorInsertAsQuotation(); - Assert.equal(ret, 0); - - // Enigmail.msg.editor = Components.classes["@mozilla.org/editor/texteditor;1"].createInstance(); - // ret = Enigmail.msg.editorInsertAsQuotation(null); - // Assert.equal(ret, 1); -} - -function editorSelectAll_test() { - Enigmail.msg.editor = { - selectAll: function() { - Assert.ok(true); - } - }; - Enigmail.msg.editorSelectAll(); -} - -function enableUndoEncryption_test() { - - document.getElementById = function() { - return { - removeAttribute: function() { - Assert.ok(true); - }, - setAttribute: function() { - Assert.ok(true); - } - }; - }; - - Enigmail.msg.enableUndoEncryption(true); - - Enigmail.msg.enableUndoEncryption(false); - -} - - -function run_test() { - window = JSUnit.createStubWindow(); - window.document = JSUnit.createDOMDocument(); - document = window.document; - - do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); - - //Overriding Problem - //TODO Use testHelper - displayProtectHeadersStatus_test(); - - addAttachment_test(); - addRecipients_test(); - addressOnChange_test(); - allowAttachOwnKey_test(); - attachKey_test(); - attachOwnKey_test(); - attachPepKey_test(); - checkProtectHeaders_test(); - compileFromAndTo_test(); - createEnigmailSecurityFields_test(); - delayedProcessFinalState_test(); - displayPartialEncryptedWarning_test(); - displaySecuritySettings_test(); - displaySMimeToolbar_test(); - editorGetCharset_test(); - editorGetContentAs_test(); - editorInsertAsQuotation_test(); - editorSelectAll_test(); - enableUndoEncryption_test(); -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-enc.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-enc.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-enc.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-enc.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,180 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, JSUnit: false, do_get_cwd: 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"; - -do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); - -/* global component: false, test: false, withTestGpgHome: false, withEnigmail: false, do_get_file: false, withOverwriteFuncs: false */ -var window = JSUnit.createStubWindow(); -var document = { - getElementById: function(elemId) { - if (elemId === "attachmentBucket") { - return { - hasChildNodes: function() { - return false; - } - }; - } - - return null; - } -}; -window.document = document; - -do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); -/* global EnigmailMimeEncrypt: false */ -var EnigmailCompat = component("enigmail/compat.jsm").EnigmailCompat; -/* global EnigmailConstants: false */ -/* global EnigmailLocale: false */ -/* global EnigmailKeyRing: false */ - -const SECURITY_INFO = EnigmailCompat.getSecurityField(); - -var gMsgCompose, - gWindowLocked, - getCurrentIdentity; - -function Attachments2CompFields() {} - -function DetermineConvertibility() { - return Ci.nsIMsgCompConvertible.Yes; -} - -function TestEditor(editorContent) { - this._editorContent = editorContent; -} - -TestEditor.prototype = { - QueryInterface: EnigmailCompat.generateQI([ - "nsIEditorMailSupport", - "nsIPlaintextEditor" - ]), - - wrapWidth: 72, - documentCharacterSet: "utf-8", - rewrap: function() { - Assert.ok(false); - }, - outputToString: function() { - return this._editorContent; - }, - insertAsQuotation: function(data) { - this._editorContent = data; - }, - insertTextWithQuotations: function(data) { - this._editorContent = data; - }, - selectAll: function() {} -}; - -test(withTestGpgHome(withEnigmail(withOverwriteFuncs( - [{ - obj: Enigmail.msg, - fn: "enableUndoEncryption", - new: function() {} - }], - function encryptMsg_test1() { - const isWin = (Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).OS === "WINNT"); - let secKey; - if (!isWin) { - secKey = do_get_file("../../package/tests/resources/dev-strike.sec", false); - } else { - secKey = do_get_file("..\\..\\package\\tests\\resources\\dev-strike.sec", false); - } - const importedKeysObj = {}; - const importResult = EnigmailKeyRing.importKeyFromFile(secKey, {}, importedKeysObj); - - const DeliverMode = Components.interfaces.nsIMsgCompDeliverMode; - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_YES; - Enigmail.msg.statusSigned = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_FORCEYES; - - gMsgCompose = { - compFields: Cc["@mozilla.org/messengercompose/composefields;1"].createInstance(Ci.nsIMsgCompFields), - editor: new TestEditor("This is a test message!"), - composeHTML: false - }; - - Enigmail.msg.juniorMode = false; - Enigmail.msg.sendPgpMime = true; - Enigmail.msg.protectHeaders = true; - Enigmail.msg.editor = gMsgCompose.editor; - let s = Enigmail.msg.getEncryptionFlags(DeliverMode.Now); - Assert.equal(s.sendFlags, EnigmailConstants.SEND_ENCRYPTED); - - gWindowLocked = false; - gMsgCompose.compFields[SECURITY_INFO] = EnigmailMimeEncrypt.createMimeEncrypt(null); - - Enigmail.hlp = { - validKeysForAllRecipients: function(toAddrStr) { - Assert.equal(toAddrStr, "strike.devtest@gmail.com"); - return ["0x65537E212DC19025AD38EDB2781617319CE311C4"]; - }, - getInvalidAddress: function(toAddrStr) { - Assert.equal(toAddrStr, ""); - return []; - } - }; - - getCurrentIdentity = function() { - return { - email: "strike.devtest@gmail.com", - getBoolAttribute: function(param) { - switch (param) { - case "enablePgp": - return true; - } - return false; - }, - getIntAttribute: function(param) { - switch (param) { - case "pgpKeyMode": - return 1; - } - return 0; - }, - getCharAttribute: function(param) { - switch (param) { - case "pgpkeyId": - return "0x65537E212DC19025AD38EDB2781617319CE311C4"; - } - return ""; - }, - setCharAttribute: function(param, value) { - switch (param) { - case "pgpkeyId": - Assert.equal(value, "0x65537E212DC19025AD38EDB2781617319CE311C4"); - break; - } - } - }; - }; - - // Create PGP/MIME message - gMsgCompose.compFields.to = "strike.devtest@gmail.com"; - gMsgCompose.compFields.from = "strike.devtest@gmail.com"; - let r = Enigmail.msg.encryptMsg(); - Assert.equal(r, true); - let si = gMsgCompose.compFields[SECURITY_INFO].wrappedJSObject; - - Assert.equal(si.recipients, "0x65537E212DC19025AD38EDB2781617319CE311C4", "recipients"); - Assert.ok(si.sendFlags & EnigmailConstants.SEND_ENCRYPTED | EnigmailConstants.SEND_PGP_MIME, "sendFlags"); - - // Create inline-PGP message - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.sendPgpMime = false; - - r = Enigmail.msg.encryptMsg(); - Assert.equal(r, true); - si = gMsgCompose.compFields[SECURITY_INFO].wrappedJSObject; - - Assert.equal(si.recipients, "", "recipients"); - Assert.equal(si.sendFlags & EnigmailConstants.SEND_ENCRYPTED, 0, "sendFlags"); - Assert.equal(gMsgCompose.editor.outputToString().substr(0, 27), "-----BEGIN PGP MESSAGE-----"); - - })))); diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-f_h.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-f_h.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-f_h.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-f_h.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,1168 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, trustAllKeys_test: false, JSUnit: false, EnigmailConstants: false, EnigmailLocale: 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/. - */ - -var window; -var document; - -var EnigmailApp = {}; -var getCurrentAccountKey = {}; -var MailServices = {}; -var CommandUpdate_MsgCompose = {}; -var top = {}; -var EnigmailDialog = { - msgBox: function() {} -}; -var AddAttachment; -var AddAttachments; -var EnigmailMimeEncrypt = {}; -var EnigmailPEPAdapter = {}; -var Recipients2CompFields = {}; -var GetResourceFromUri = {}; -var EnigmailCore = {}; - -var gSMFields; - -var EnigmailPrefs = { - getPref: (prop) => { - return 1; - }, - setPref: function() {} -}; - -var EnigmailTimer = { - setTimeout: function() {} -}; - -var gMsgCompose = {}; - -function toggleEncryptMessage() { - Assert.ok(true); -} - -function toggleSignMessage() { - Assert.ok(true); -} - -var getCurrentIdentity = function() { - -}; - -var EnigmailFuncs = { - -}; - -function fireSearchKeys_test() { - - Enigmail.msg.isEnigmailEnabled = function() { - return true; - }; - - Enigmail.msg.searchKeysTimeout = true; - - Enigmail.msg.fireSearchKeys(); - Assert.equal(Enigmail.msg.searchKeysTimeout, true); - - Enigmail.msg.searchKeysTimeout = false; - - Enigmail.msg.findMissingKeys = function() { - Assert.ok(true); - }; - - EnigmailTimer.setTimeout = function(callback, time) { - Assert.ok(true); - Assert.equal(time, 5000); - callback(); - Assert.equal(Enigmail.msg.searchKeysTimeout, null); - return false; - }; - - Enigmail.msg.fireSearchKeys(); - Assert.equal(Enigmail.msg.searchKeysTimeout, false); -} - -function fireSendFlags_test() { - - Enigmail.msg.determineSendFlags = function() { - Assert.ok(true); - }; - - Enigmail.msg.fireSearchKeys = function() { - Assert.ok(true); - }; - - EnigmailTimer.setTimeout = function(callback, time) { - callback(); - Assert.ok(true); - return null; - }; - - Enigmail.msg.determineSendFlagId = false; - - Enigmail.msg.fireSendFlags(); - - Assert.equal(Enigmail.msg.determineSendFlagId, null); -} - -function fixMessageSubject_test() { - let check = ""; - document.getElementById = function() { - return { - value: "Re: Re: Hello", - oninput: function() { - Assert.ok(true); - } - }; - }; - - Enigmail.msg.fixMessageSubject(); -} - -function focusChange_test() { - CommandUpdate_MsgCompose = function() { - Assert.ok(true); - }; - - Enigmail.msg.lastFocusedWindow = true; - - top = { - document: { - commandDispatcher: { - focusedWindow: true - } - } - }; - - Enigmail.msg.focusChange(); - Assert.equal(Enigmail.msg.lastFocusedWindow, true); - - Enigmail.msg.lastFocusedWindow = false; - - Enigmail.msg.fireSendFlags = function() { - Assert.ok(true); - }; - - Enigmail.msg.focusChange(); - Assert.equal(Enigmail.msg.lastFocusedWindow, true); - -} - -function getAccDefault_test() { - - Enigmail.msg.identity = {}; - - Enigmail.msg.isSmimeEnabled = () => { - //Function Overriding - return true; - }; - - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return true; - }; - - Enigmail.msg.identity.getBoolAttribute = (key) => { - //Function Overriding - return false; - }; - - Enigmail.msg.identity.getIntAttribute = (key) => { - //Function Overriding - return 0; - }; - - let ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, false); - - Enigmail.msg.identity.getIntAttribute = (key) => { - //Function Overriding - return 1; - }; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, true); - - Enigmail.msg.identity.getBoolAttribute = (key) => { - //Function Overriding - return true; - }; - - Enigmail.msg.identity.getIntAttribute = (key) => { - //Function Overriding - return 1; - }; - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_FORCE_SMIME; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, true); - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_FORCE_ALWAYS; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, true); - - ret = Enigmail.msg.getAccDefault('encrypt'); - Assert.equal(ret, true); - - Enigmail.msg.pgpmimeForced = null; - ret = Enigmail.msg.getAccDefault('encrypt'); - Assert.equal(ret, true); - - ret = Enigmail.msg.getAccDefault('sign-pgp'); - Assert.equal(ret, true); - - Enigmail.msg.identity.getBoolAttribute = (key) => { - return false; - }; - - ret = Enigmail.msg.getAccDefault('pgpMimeMode'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault("signIfNotEnc"); - Assert.equal(ret, false); - - Enigmail.msg.identity.getBoolAttribute = (key) => { - return true; - }; - - ret = Enigmail.msg.getAccDefault("signIfEnc"); - Assert.equal(ret, true); - - ret = Enigmail.msg.getAccDefault('attachPgpKey'); - Assert.equal(ret, true); - - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return false; - }; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, true); - - Enigmail.msg.identity.getBoolAttribute = (key) => { - return false; - }; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, false); - - Enigmail.msg.identity.getIntAttribute = (key) => { - //Function Overriding - return 0; - }; - - ret = Enigmail.msg.getAccDefault('encrypt'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('random'); - Assert.equal(ret, false); - - Enigmail.msg.isSmimeEnabled = () => { - //Function Overriding - return false; - }; - - ret = Enigmail.msg.getAccDefault('sign'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('encrypt'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('signIfNotEnc'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('signIfEnc'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('pgpMimeMode'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('attachPgpKey'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('sign-pgp'); - Assert.equal(ret, false); - - ret = Enigmail.msg.getAccDefault('random'); - Assert.equal(ret, null); -} - -function getCurrentIncomingServer_test() { - getCurrentAccountKey = function() { - return true; - }; - - MailServices = { - accounts: { - getAccount: function(currentAccountKey) { - Assert.equal(currentAccountKey, true); - return { - incomingServer: true - }; - } - } - }; - - let ret = Enigmail.msg.getCurrentIncomingServer(); - Assert.equal(ret, true); -} - -function getEncryptionEnabled_test() { - - Enigmail.msg.juniorMode = true; - let ret = Enigmail.msg.getEncryptionEnabled(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - return { - getUnicharAttribute: function() { - return "xyz"; - } - }; - }; - - Enigmail.msg.juniorMode = false; - ret = Enigmail.msg.getEncryptionEnabled(); - Assert.equal(ret, true); - - getCurrentIdentity = function() { - return { - getUnicharAttribute: function() { - return ""; - } - }; - }; - - Enigmail.msg.isEnigmailEnabled = function() { - return true; - }; - ret = Enigmail.msg.getEncryptionEnabled(); - Assert.equal(ret, true); - - Enigmail.msg.isEnigmailEnabled = function() { - return false; - }; - ret = Enigmail.msg.getEncryptionEnabled(); - Assert.equal(ret, false); -} - -function getForceRecipientDlg_test() { - EnigmailPrefs.getPref = function(prop) { - if (prop === "assignKeysByRules") { - return true; - } else if (prop === "assignKeysByEmailAddr") { - return false; - } else if (prop === "assignKeysManuallyIfMissing") { - return false; - } - - return false; - }; - - let ret = Enigmail.msg.getForceRecipientDlg(); - Assert.equal(ret, true); - - EnigmailPrefs.getPref = function(prop) { - if (prop === "assignKeysByRules") { - return true; - } else if (prop === "assignKeysByEmailAddr") { - return true; - } else if (prop === "assignKeysManuallyIfMissing") { - return false; - } - - return false; - }; - - ret = Enigmail.msg.getForceRecipientDlg(); - Assert.equal(ret, false); -} - -function getMailPref_test() { - EnigmailPrefs.getPrefRoot = function() { - return { - getPrefType: function() { - return true; - }, - getBoolPref: function(str) { - Assert.ok(true); - Assert.equal(str, 'xyz'); - }, - PREF_BOOL: true - }; - }; - - Enigmail.msg.getMailPref('xyz'); - - EnigmailPrefs.getPrefRoot = function() { - return { - getPrefType: function() { - return true; - }, - getIntPref: function(str) { - Assert.ok(true); - Assert.equal(str, 'xyz'); - }, - PREF_INT: 1 - }; - }; - - Enigmail.msg.getMailPref('xyz'); - - EnigmailPrefs.getPrefRoot = function() { - return { - getPrefType: function() { - return true; - }, - getCharPref: function(str) { - Assert.ok(true); - Assert.equal(str, 'xyz'); - }, - PREF_STRING: 'str' - }; - }; - - Enigmail.msg.getMailPref('xyz'); - -} - -function getMsgHdr_test() { - //Check for Only Null - Enigmail.msg.getOriginalMsgUri = function() { - return null; - }; - - let ret = Enigmail.msg.getMsgHdr(null); - Assert.equal(ret, null); - -} - -function getOriginalMsgUri_test() { - gMsgCompose = { - compFields: { - draftId: 'HelloWorld\s' - } - }; - - let ret = Enigmail.msg.getOriginalMsgUri(); - Assert.equal(ret, "HelloWorlds"); - - gMsgCompose = { - compFields: { - draftId: '' - }, - originalMsgURI: "xyz" - }; - - ret = Enigmail.msg.getOriginalMsgUri(); - Assert.equal(ret, "xyz"); - -} - -function getOriginalPepMsgRating_test() { - - Enigmail.msg.getOriginalMsgUri = function() { - return null; - }; - - Enigmail.msg.getMsgHdr = function() { - return null; - }; - - Enigmail.msg.getOriginalPepMsgRating(); - Assert.equal(Enigmail.msg.origPepRating, null); - - Enigmail.msg.getMsgHdr = function() { - return { - getUint32Property: function() { - return 0xFFF; - } - }; - }; - - Enigmail.msg.getOriginalPepMsgRating(); - Assert.equal(Enigmail.msg.origPepRating, 15); - - Enigmail.msg.getMsgHdr = function() { - return { - getUint32Property: function() { - return 0xF6; - } - }; - }; - - Enigmail.msg.getOriginalPepMsgRating(); - Assert.equal(Enigmail.msg.origPepRating, 0); -} - -function getPepMessageRating_test() { - - Enigmail.msg.pepEnabled = function() { - return false; - }; - - Enigmail.msg.setPepPrivacyLabel = function(val) { - Assert.ok(true); - Assert.equal(val, 0); - }; - - Enigmail.msg.getPepMessageRating(); - - Enigmail.msg.pepEnabled = function() { - return true; - }; - - Enigmail.msg.compileFromAndTo = function() { - return null; - }; - - Enigmail.msg.setPepPrivacyLabel = function(val) { - Assert.equal(val, 0); - }; - - Enigmail.msg.getPepMessageRating(); - Assert.equal(Enigmail.msg.determineSendFlagId, null); - - Enigmail.msg.compileFromAndTo = function() { - return 'arrOfAddr'; - }; - - EnigmailPEPAdapter.getOutgoingMessageRating = function() { - return 5; - }; - - Enigmail.msg.setPepPrivacyLabel = function(val) { - Assert.equal(val, 5); - }; - - Enigmail.msg.getPepMessageRating(); - Assert.equal(Enigmail.msg.determineSendFlagId, null); -} - -function getSigningEnabled_test() { - - Enigmail.msg.juniorMode = true; - let ret = Enigmail.msg.getSigningEnabled(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return "xyz"; - } - }; - }; - - Enigmail.msg.juniorMode = false; - ret = Enigmail.msg.getSigningEnabled(); - Assert.equal(ret, true); - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return ""; - } - }; - }; - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return true; - }; - ret = Enigmail.msg.getSigningEnabled(); - Assert.equal(ret, true); - - Enigmail.msg.isEnigmailEnabled = function() { - return false; - }; - ret = Enigmail.msg.getSigningEnabled(); - Assert.equal(ret, false); - -} - -function getSmimeSigningEnabled_test() { - Enigmail.msg.juniorMode = true; - let ret = Enigmail.msg.getSmimeSigningEnabled(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return false; - } - }; - }; - - ret = Enigmail.msg.getSmimeSigningEnabled(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return true; - }, - getBoolAttribute: function() { - return false; - } - }; - }; - - ret = Enigmail.msg.getSmimeSigningEnabled(); - Assert.equal(ret, false); - -} - -function goAccountManager_test() { - - EnigmailCore.getService = function() { - Assert.ok(true); - }; - - getCurrentIdentity = function() { - return 'id'; - }; - - EnigmailFuncs.getAccountForIdentity = function() { - return 'account'; - }; - - window.openDialog = function(xulPath, str1, prop, param) { - Assert.equal(param.identity, 'id'); - Assert.equal(param.account, 'account'); - }; - - Enigmail.msg.setIdentityDefaults = function() { - Assert.ok(true); - }; - - Enigmail.msg.goAccountManager(); -} - -function handleClick_test() { - - let event = { - button: 2, - preventDefault: function() { - Assert.ok(true); - } - }; - - Enigmail.msg.doPgpButton = function(str) { - //Function Overriding - Assert.ok(true); - }; - - let modifyType = "xyz"; - - Enigmail.msg.handleClick(event, modifyType); - - event = { - button: 0, - preventDefault: function() { - Assert.ok(true); - } - }; - - Enigmail.msg.doPgpButton = function(str) { - //Function Overriding - Assert.equal(str, "xyz"); - Assert.ok(true); - }; - - Enigmail.msg.handleClick(event, modifyType); -} - -function pepDisabledError_test() { - - EnigmailDialog.alert = function(window, val) { - Assert.equal(val, EnigmailLocale.getString("pep.alert.disabledForIdentity")); - }; - - Enigmail.msg.pepDisabledError(); - -} - -function pepMenuPopup_test() { - - document.getElementById = function(prop) { - if (prop === "enigmail_compose_pep_encrypt") { - return { - setAttribute: function(prop, val) { - if (prop === "checked") { - Assert.equal(val, "false"); - } else { - Assert.equal(prop, "disabled"); - Assert.equal(val, "true"); - } - }, - removeAttribute: function(prop) { - Assert.equal(prop, "disabled"); - } - }; - } else if (prop === "enigmail_composeMenu_pep_handshake") { - return { - setAttribute: function(prop, val) { - Assert.ok(prop, "disabled"); - Assert.ok(val, "true"); - }, - removeAttribute: function(prop) { - Assert.equal(prop, "disabled"); - } - }; - } else if (prop === "enigmail-bc-pepEncrypt") { - return { - getAttribute: function() { - Assert.ok(true); - return "false"; - } - }; - } - - return {}; - }; - - Enigmail.msg.pepEnabled = function() { - return true; - }; - - Enigmail.msg.pepMenuPopup(); - - Enigmail.msg.pepEnabled = function() { - return false; - }; - - Enigmail.msg.pepMenuPopup(); - -} - -function preferPgpOverSmime_test() { - gMsgCompose.compFields.securityInfo = Components.classes["@mozilla.org/messenger-smime/composefields;1"].createInstance(); - - let ret = Enigmail.msg.preferPgpOverSmime(0x0001); - Assert.equal(ret, 1); - - gMsgCompose.compFields.securityInfo.requireEncryptMessage = 1; - - Enigmail.msg.mimePreferOpenPGP = 2; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 0); - - gMsgCompose.compFields.securityInfo.requireEncryptMessage = 0; - gMsgCompose.compFields.securityInfo.signMessage = 1; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 0); - - gMsgCompose.compFields.securityInfo.signMessage = 0; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 1); - - gMsgCompose.compFields.securityInfo.signMessage = 1; - - ret = Enigmail.msg.preferPgpOverSmime(0x0003); - Assert.equal(ret, 2); - -} - -function processAccountSpecificDefaultOptions_test() { - - Enigmail.msg.sendMode = 0; - Enigmail.msg.sendPgpMime = ""; - - Enigmail.msg.getSmimeSigningEnabled = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 1); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, ""); - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.getAccDefault = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.setOwnKeyStatus = function() { - //Function Overriding - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 3); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - - Enigmail.msg.getAccDefault = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 1); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - - Enigmail.msg.getSmimeSigningEnabled = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 0); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - - Enigmail.msg.reasonSigned = ""; - - Enigmail.msg.getAccDefault = function(str) { - //Function Overriding - if (str === "sign") { - return false; - } else { - return true; - } - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 2); - Assert.equal(Enigmail.msg.reasonSigned, ""); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - -} - -function processFinalState_test() { - // Encryption Status and Reason - - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return false; - }; - - Enigmail.msg.isSmimeEnabled = () => { - //Function Overriding - return false; - }; - - Enigmail.msg.getAccDefault = (prop) => { - //Function Overriding - if (prop === "signIfEnc" || prop === "signIfNotEnc" || prop === "signIfNotEnc" || prop === "signIfEnc" || prop === "sign-pgp" || prop === "encrypt") { - return true; - } else { - return false; - } - }; - - // Testing Encryption Flags - - //Encryption reasonManuallyForced - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonManuallyForced")); - - //Encryption reasonManuallyForced - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonManuallyForced")); - - //Encryption reasonByRecipientRules - Enigmail.msg.encryptForced = null; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByRecipientRules")); - - //Encryption reasonEnabledByDefault - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0002; - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return true; - }; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - - //Encryption reasonEmpty - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonEncrypted, ""); - - //Encryption reasonByRecipientRules - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByRecipientRules")); - - //Encryption reasonByAutoEncryption - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_AUTO_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByAutoEncryption")); - - //Encryption reasonByConflict - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByConflict")); - - //Signing of Key - - //Signing reasonManuallyForced - Enigmail.msg.signForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonManuallyForced")); - - //Signing reasonManuallyForced - Enigmail.msg.signForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonManuallyForced")); - - //Signing reasonByRecipientRules - Enigmail.msg.signForced = null; - Enigmail.msg.signByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByRecipientRules")); - - //Signing reasonEnabledByDefault - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.finalSignDependsOnEncrypt = false; - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return true; - }; - Enigmail.msg.getAccDefault = () => { - //Function Overriding - return true; - }; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - - //Signing reasonEmpty - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0002; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonSigned, ""); - - //Signing reasonByRecipientRules - Enigmail.msg.signByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByRecipientRules")); - - //Signing reasonByConflict - Enigmail.msg.signByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByConflict")); - - //finalSignDependsOnEncrypt Cases - - //Encryption ENIG_ALWAYS - Enigmail.msg.isEnigmailEnabled = () => { - return true; - }; - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.finalSignDependsOnEncrypt = true; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption ENIG_NEVER - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption encFinally = EnigmailConstants; - Enigmail.msg.encryptForced = null; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption ENIG_CONFLICT - Enigmail.msg.getAccDefault = (prop) => { - //Function Overriding - return false; - }; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonSigned, ""); - - //statusPGPMime Flags - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_FORCENO); - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_FORCEYES); - - Enigmail.msg.pgpmimeForced = ""; - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_NO); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_YES); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_CONFLICT); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_NO); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = EnigmailConstants.SEND_PGP_MIME; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_YES); - -} - -function replaceEditorText_test() { - Enigmail.msg.editorSelectAll = function() { - Assert.ok(true); - }; - - Enigmail.msg.editorInsertText = function(val) { - Assert.ok(true); - if (val === "Enigmail" || val === "text") { - Assert.ok(true); - } else { - Assert.ok(false); - } - }; - - Enigmail.msg.editor.textLength = 4; - - Enigmail.msg.replaceEditorText("text"); - - Enigmail.msg.editor.textLength = 0; - Enigmail.msg.editorInsertText = function(val) { - Assert.ok(true); - if (val === " " || val === "text") { - Assert.ok(true); - } else { - Assert.ok(false); - } - }; -} - -function resetUpdatedFields_test() { - - gMsgCompose = { - compFields: { - securityInfo: 'xyz' - } - }; - - Enigmail.msg.removeAttachedKey = function() { - Assert.ok(true); - }; - - EnigmailMimeEncrypt.isEnigmailCompField = function(val) { - Assert.equal(val, 'xyz'); - return true; - }; - - // EnigmailMsgCompFields.getValue = function(si, subject) { - // Assert.equal(si, 'xyz'); - // Assert.equal(subject, 'originalSubject'); - // return 'subject'; - // }; - - Enigmail.msg.resetUpdatedFields(); - Assert.equal(gMsgCompose.compFields.subject, 'subject'); - -} - -function run_test() { - window = JSUnit.createStubWindow(); - window.document = JSUnit.createDOMDocument(); - document = window.document; - - do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); - - //Overriding Problem - //TODO Use testHelper - getOriginalMsgUri_test(); - - fireSearchKeys_test(); - fireSendFlags_test(); - fixMessageSubject_test(); - focusChange_test(); - getAccDefault_test(); - getCurrentIncomingServer_test(); - getEncryptionEnabled_test(); - getForceRecipientDlg_test(); - getMailPref_test(); - getMsgHdr_test(); - getOriginalPepMsgRating_test(); - getPepMessageRating_test(); - getSigningEnabled_test(); - getSmimeSigningEnabled_test(); - goAccountManager_test(); - handleClick_test(); - - -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-i_r.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-i_r.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-i_r.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-i_r.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,1068 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, trustAllKeys_test: false, JSUnit: false, EnigmailConstants: false, EnigmailLocale: 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/. - */ - -var window; -var document; - -var EnigmailApp = {}; -var getCurrentAccountKey = {}; -var MailServices = {}; -var CommandUpdate_MsgCompose = {}; -var top = {}; -var EnigmailDialog = { - msgBox: function() {} -}; -var AddAttachment; -var AddAttachments; -var EnigmailMimeEncrypt = {}; -var EnigmailPEPAdapter = {}; -var Recipients2CompFields = {}; -var GetResourceFromUri = {}; -var EnigmailCore = {}; - -var gSMFields; - -var EnigmailCompat = ChromeUtils.import("chrome://enigmail/content/modules/compat.jsm").EnigmailCompat; - -var EnigmailPrefs = { - getPref: (prop) => { - return 1; - }, - setPref: function() {} -}; - -var EnigmailTimer = { - setTimeout: function() {} -}; - -var gMsgCompose = {}; - -function toggleEncryptMessage() { - Assert.ok(true); -} - -function toggleSignMessage() { - Assert.ok(true); -} - -var getCurrentIdentity = function() { - -}; - -var EnigmailFuncs = { - -}; - -function initialSendFlags_test() { - - Enigmail.msg.fireSendFlags = function() { - Assert.ok(true); - }; - - Enigmail.msg.determineSendFlags = function() { - Assert.ok(true); - }; - - Enigmail.msg.processFinalState = function() { - Assert.ok(true); - }; - - Enigmail.msg.updateStatusBar = function() { - Assert.ok(true); - }; - - EnigmailTimer.setTimeout = function() { - Assert.ok(true); - }; - - Enigmail.msg.initialSendFlags(); -} - -function initRadioMenu_test() { - - EnigmailPrefs.getPref = function(prefName) { - Assert.equal(prefName, 'prefName'); - return 1; - }; - - document.getElementById = function() { - Assert.ok(false); - }; - - Enigmail.msg.initRadioMenu('prefName', ['option1']); - - EnigmailPrefs.getPref = function(prefName) { - Assert.equal(prefName, 'prefName'); - return 1; - }; - - document.getElementById = function(val) { - Assert.equal(val, 'enigmail_option2'); - return { - setAttribute: function(prop, val) { - Assert.equal(prop, "checked"); - Assert.equal(val, "true"); - } - }; - }; - - Enigmail.msg.initRadioMenu('prefName', ['option1', 'option2']); -} - -function isEnigmailEnabled_test() { - - Enigmail.msg.juniorMode = true; - let ret = Enigmail.msg.isEnigmailEnabled(); - Assert.equal(ret, false); - - Enigmail.msg.juniorMode = false; - Enigmail.msg.identity = { - getBoolAttribute: function() { - Assert.ok(true); - return true; - } - }; - ret = Enigmail.msg.isEnigmailEnabled(); - Assert.equal(ret, true); - -} - -function isSendConfirmationRequired_test() { - EnigmailPrefs.getPref = function() { - return 0; - }; - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_SMIME; - - let ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, false); - - EnigmailPrefs.getPref = function() { - return 1; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, true); - - EnigmailPrefs.getPref = function() { - return 2; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, true); - - EnigmailPrefs.getPref = function() { - return 2; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, false); - - EnigmailPrefs.getPref = function() { - return 3; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, true); - - EnigmailPrefs.getPref = function() { - return 3; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, false); - - EnigmailPrefs.getPref = function() { - return 4; - }; - - Enigmail.msg.sendMode = 0x0001; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, true); - - Enigmail.msg.sendMode = 0x0002; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0002); - Assert.equal(ret, false); - - Enigmail.msg.statusPGPMime = null; - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_YES; - - EnigmailDialog.confirmDlg = function() { - return false; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, null); - - Enigmail.msg.statusPGPMime = null; - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_YES; - - EnigmailDialog.confirmDlg = function() { - return true; - }; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, true); - - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_FORCEYES; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, true); - - Enigmail.msg.statusEncrypted = null; - Enigmail.msg.statusEncryptedInStatusBar = EnigmailConstants.ENIG_FINAL_YES; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, true); - - Enigmail.msg.statusEncrypted = null; - Enigmail.msg.statusEncryptedInStatusBar = EnigmailConstants.ENIG_FINAL_FORCEYES; - - ret = Enigmail.msg.isSendConfirmationRequired(0x0001); - Assert.equal(ret, true); - -} - -function isSmimeEnabled_test() { - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return ""; - } - }; - }; - - var ret = Enigmail.msg.isSmimeEnabled(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - //Function Overriding - return { - getUnicharAttribute: function() { - return "xyz"; - } - }; - }; - - ret = Enigmail.msg.isSmimeEnabled(); - Assert.equal(ret, true); -} - -function isSmimeEncryptionPossible_test() { - - getCurrentIdentity = function() { - return { - getUnicharAttribute: function() { - return ""; - } - }; - }; - - let ret = Enigmail.msg.isSmimeEncryptionPossible(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - return { - getUnicharAttribute: function() { - return "string"; - } - }; - }; - - gMsgCompose.compFields = { - hasRecipients: false - }; - - ret = Enigmail.msg.isSmimeEncryptionPossible(); - Assert.equal(ret, false); - - getCurrentIdentity = function() { - return { - getUnicharAttribute: function() { - return "string"; - } - }; - }; - - gMsgCompose.compFields = { - hasRecipients: true - }; - - ret = Enigmail.msg.isSmimeEncryptionPossible(); - Assert.equal(ret, true); - -} - -function modifyCompFields_test() { - getCurrentIdentity = function() { - Assert.ok(true); - return true; - }; - - EnigmailApp = { - getVersion: function() { - Assert.ok(true); - } - }; - - Enigmail.msg.setAdditionalHeader = function() { - Assert.ok(true); - }; - - Enigmail.msg.isEnigmailEnabled = function() { - Assert.ok(true); - }; - - EnigmailPrefs.getPref = function() { - Assert.ok(true); - return true; - }; - - Enigmail.msg.modifyCompFields(); -} - -function msgComposeReset_test() { - Enigmail.msg.setIdentityDefaults = function() { - Assert.ok(false); - }; - - Enigmail.msg.msgComposeReset(true); - Assert.equal(Enigmail.msg.dirty, 0); - Assert.equal(Enigmail.msg.processed, null); - Assert.equal(Enigmail.msg.timeoutId, null); - Assert.equal(Enigmail.msg.modifiedAttach, null); - Assert.equal(Enigmail.msg.sendMode, 0); - Assert.equal(Enigmail.msg.sendModeDirty, false); - Assert.equal(Enigmail.msg.reasonEncrypted, ""); - Assert.equal(Enigmail.msg.reasonSigned, ""); - Assert.equal(Enigmail.msg.encryptByRules, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.signByRules, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.pgpmimeByRules, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_UNDEF); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_UNDEF); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_UNDEF); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_UNDEF); - Assert.equal(Enigmail.msg.statusEncryptedStr, "???"); - Assert.equal(Enigmail.msg.statusSignedStr, "???"); - Assert.equal(Enigmail.msg.statusPGPMimeStr, "???"); - Assert.equal(Enigmail.msg.statusInlinePGPStr, "???"); - Assert.equal(Enigmail.msg.statusAttachOwnKey, "???"); - Assert.equal(Enigmail.msg.enableRules, true); - Assert.equal(Enigmail.msg.identity, null); - Assert.equal(Enigmail.msg.sendProcess, false); - Assert.equal(Enigmail.msg.trustAllKeys, false); - Assert.equal(Enigmail.msg.mimePreferOpenPGP, 0); - Assert.equal(Enigmail.msg.origPepRating, null); - Assert.equal(Enigmail.msg.keyLookupDone.length, 0); - - Enigmail.msg.setIdentityDefaults = function() { - Assert.ok(true); - }; - - Enigmail.msg.msgComposeReset(false); -} - -function notifyUser_test() { - let msgText = "Hello", - messageId = "12", - detailsText = "Text"; - - document.getElementById = function() { - return { - appendNotification: function(msg_text, message_id, str, prio, button_arr) { - Assert.equal(msgText, msgText); - Assert.equal(message_id, messageId); - Assert.equal(str, null); - Assert.equal(prio, 1); - Assert.equal(button_arr.length, 1); - }, - PRIORITY_CRITICAL_MEDIUM: 1, - PRIORITY_INFO_MEDIUM: 3, - PRIORITY_WARNING_MEDIUM: 2 - }; - }; - Enigmail.msg.notifyUser(1, msgText, messageId, detailsText); - - document.getElementById = function() { - return { - appendNotification: function(msg_text, message_id, str, prio, button_arr) { - Assert.equal(msgText, msgText); - Assert.equal(message_id, messageId); - Assert.equal(str, null); - Assert.equal(prio, 2); - Assert.equal(button_arr.length, 1); - }, - PRIORITY_CRITICAL_MEDIUM: 1, - PRIORITY_INFO_MEDIUM: 3, - PRIORITY_WARNING_MEDIUM: 2 - }; - }; - Enigmail.msg.notifyUser(2, msgText, messageId, detailsText); - - document.getElementById = function() { - return { - appendNotification: function(msg_text, message_id, str, prio, button_arr) { - Assert.equal(msgText, msgText); - Assert.equal(message_id, messageId); - Assert.equal(str, null); - Assert.equal(prio, 3); - Assert.equal(button_arr.length, 1); - }, - PRIORITY_CRITICAL_MEDIUM: 1, - PRIORITY_INFO_MEDIUM: 3, - PRIORITY_WARNING_MEDIUM: 2 - }; - }; - Enigmail.msg.notifyUser(3, msgText, messageId, detailsText); -} - -function onPepEncryptButton_test() { - - Enigmail.msg.onPepEncryptMenu = function() { - Assert.ok(true); - }; - - Enigmail.msg.onPepEncryptButton(); -} - -function onPepEncryptMenu_test() { - - Enigmail.msg.pepEnabled = function() { - Assert.ok(true); - return false; - }; - - Enigmail.msg.pepDisabledError = function() { - Assert.ok(true); - }; - - Enigmail.msg.onPepEncryptMenu(); - - Enigmail.msg.pepEnabled = function() { - Assert.ok(true); - return true; - }; - - Enigmail.msg.getPepMessageRating = function() { - Assert.ok(true); - }; - - document.getElementById = function() { - return { - setAttribute: function(prop, val) { - Assert.equal(prop, "encrypt"); - Assert.equal(val, "false"); - }, - getAttribute: function() { - return "true"; - } - }; - }; - - Enigmail.msg.onPepEncryptMenu(); - - document.getElementById = function() { - return { - setAttribute: function(prop, val) { - Assert.equal(prop, "encrypt"); - Assert.equal(val, "true"); - }, - getAttribute: function() { - return "false"; - } - }; - }; - - Enigmail.msg.onPepEncryptMenu(); - -} - -function onPepHandshakeButton_test() { - - Enigmail.msg.pepEnabled = function() { - return false; - }; - - Enigmail.msg.pepDisabledError = function() { - Assert.ok(true); - }; - - Enigmail.msg.onPepHandshakeButton(); - - let event = { - stopPropagation: function() { - Assert.ok(true); - } - }; - - document.getElementById = function() { - return "false"; - }; - - EnigmailDialog.info = function(window, prop) { - Assert.equal(prop, EnigmailLocale.getString("handshakeDlg.error.noProtection")); - }; - - Enigmail.msg.onPepHandshakeButton(); - - Enigmail.msg.compileFromAndTo = function() { - Assert.ok(true); - return { - toAddrList: [] - }; - }; - - EnigmailFuncs.stripEmail = function() { - Assert.ok(true); - return {}; - }; - - EnigmailDialog.info = function(window, val) { - Assert.equal(val, EnigmailLocale.getString("handshakeDlg.error.noPeers")); - }; - - Enigmail.msg.onPepHandshakeButton(); - - Enigmail.msg.compileFromAndTo = function() { - Assert.ok(true); - return { - toAddrList: ["user1@enigmail.net", "user2@enigmail.net"] - }; - }; - - EnigmailFuncs.stripEmail = function() { - Assert.ok(true); - return "user1@enigmail.net,user2@enigmail.net"; - }; - - getCurrentIdentity = function() { - return { - email: 'user@enigmail.net' - }; - }; - - Enigmail.msg.getPepMessageRating.bind = function() { - return true; - }; - - window.openDialog = function(windowURL, str1, prop, param) { - Assert.equal(param.myself, 'user@enigmail.net'); - Assert.equal(param.addresses.length, 2); - Assert.equal(param.direction, 1); - Assert.equal(param.onComplete, true); - }; - - Enigmail.msg.onPepHandshakeButton(); - -} - -function pepDisabledError_test() { - - EnigmailDialog.alert = function(window, val) { - Assert.equal(val, EnigmailLocale.getString("pep.alert.disabledForIdentity")); - }; - - Enigmail.msg.pepDisabledError(); - -} - -function pepMenuPopup_test() { - - document.getElementById = function(prop) { - if (prop === "enigmail_compose_pep_encrypt") { - return { - setAttribute: function(prop, val) { - if (prop === "checked") { - Assert.equal(val, "false"); - } else { - Assert.equal(prop, "disabled"); - Assert.equal(val, "true"); - } - }, - removeAttribute: function(prop) { - Assert.equal(prop, "disabled"); - } - }; - } else if (prop === "enigmail_composeMenu_pep_handshake") { - return { - setAttribute: function(prop, val) { - Assert.ok(prop, "disabled"); - Assert.ok(val, "true"); - }, - removeAttribute: function(prop) { - Assert.equal(prop, "disabled"); - } - }; - } else if (prop === "enigmail-bc-pepEncrypt") { - return { - getAttribute: function() { - Assert.ok(true); - return "false"; - } - }; - } - - return {}; - }; - - Enigmail.msg.pepEnabled = function() { - return true; - }; - - Enigmail.msg.pepMenuPopup(); - - Enigmail.msg.pepEnabled = function() { - return false; - }; - - Enigmail.msg.pepMenuPopup(); - -} - -function preferPgpOverSmime_test() { - let si = EnigmailCompat.getSecurityField(); - let secField; - if (si === "securityInfo") { - secField = Components.classes["@mozilla.org/messenger-smime/composefields;1"].createInstance(Ci.nsIMsgSMIMECompFields); - gMsgCompose.compFields.securityInfo = secField; - } else { - secField = Cc["@mozilla.org/messengercompose/composesecure;1"].createInstance(Ci.nsIMsgComposeSecure); - gMsgCompose.compFields.composeSecure = secField; - } - EnigmailMimeEncrypt.isEnigmailCompField = function(val) { - return false; - }; - - let ret = Enigmail.msg.preferPgpOverSmime(0x0001); - Assert.equal(ret, 1); - - Enigmail.msg.mimePreferOpenPGP = 2; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 1); - - secField.requireEncryptMessage = 0; - secField.signMessage = 1; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 0); - - secField.signMessage = 0; - - ret = Enigmail.msg.preferPgpOverSmime(0x0203); - Assert.equal(ret, 1); - - secField.signMessage = 1; - - ret = Enigmail.msg.preferPgpOverSmime(0x0003); - Assert.equal(ret, 2); -} - -function processAccountSpecificDefaultOptions_test() { - - Enigmail.msg.sendMode = 0; - Enigmail.msg.sendPgpMime = ""; - - Enigmail.msg.getSmimeSigningEnabled = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 1); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, ""); - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.getAccDefault = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.setOwnKeyStatus = function() { - //Function Overriding - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 3); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - - Enigmail.msg.getAccDefault = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 1); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - - Enigmail.msg.getSmimeSigningEnabled = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 0); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, false); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); - - Enigmail.msg.reasonSigned = ""; - - Enigmail.msg.getAccDefault = function(str) { - //Function Overriding - if (str === "sign") { - return false; - } else { - return true; - } - }; - - Enigmail.msg.processAccountSpecificDefaultOptions(); - - Assert.equal(Enigmail.msg.sendMode, 2); - Assert.equal(Enigmail.msg.reasonSigned, ""); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - Assert.equal(Enigmail.msg.sendPgpMime, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, true); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedObj, null); - Assert.equal(Enigmail.msg.attachOwnKeyObj.attachedKey, null); - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - -} - -function processFinalState_test() { - // Encryption Status and Reason - - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return false; - }; - - Enigmail.msg.isSmimeEnabled = () => { - //Function Overriding - return false; - }; - - Enigmail.msg.getAccDefault = (prop) => { - //Function Overriding - if (prop === "signIfEnc" || prop === "signIfNotEnc" || prop === "signIfNotEnc" || prop === "signIfEnc" || prop === "sign-pgp" || prop === "encrypt") { - return true; - } else { - return false; - } - }; - - // Testing Encryption Flags - - //Encryption reasonManuallyForced - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonManuallyForced")); - - //Encryption reasonManuallyForced - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonManuallyForced")); - - //Encryption reasonByRecipientRules - Enigmail.msg.encryptForced = null; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByRecipientRules")); - - //Encryption reasonEnabledByDefault - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0002; - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return true; - }; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonEnabledByDefault")); - - //Encryption reasonEmpty - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonEncrypted, ""); - - //Encryption reasonByRecipientRules - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByRecipientRules")); - - //Encryption reasonByAutoEncryption - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_AUTO_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByAutoEncryption")); - - //Encryption reasonByConflict - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusEncrypted, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonEncrypted, EnigmailLocale.getString("reasonByConflict")); - - //Signing of Key - - //Signing reasonManuallyForced - Enigmail.msg.signForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonManuallyForced")); - - //Signing reasonManuallyForced - Enigmail.msg.signForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonManuallyForced")); - - //Signing reasonByRecipientRules - Enigmail.msg.signForced = null; - Enigmail.msg.signByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByRecipientRules")); - - //Signing reasonEnabledByDefault - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.finalSignDependsOnEncrypt = false; - Enigmail.msg.isEnigmailEnabled = () => { - //Function Overriding - return true; - }; - Enigmail.msg.getAccDefault = () => { - //Function Overriding - return true; - }; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonEnabledByDefault")); - - //Signing reasonEmpty - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = 0x0002; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(Enigmail.msg.reasonSigned, ""); - - //Signing reasonByRecipientRules - Enigmail.msg.signByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByRecipientRules")); - - //Signing reasonByConflict - Enigmail.msg.signByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByConflict")); - - //finalSignDependsOnEncrypt Cases - - //Encryption ENIG_ALWAYS - Enigmail.msg.isEnigmailEnabled = () => { - return true; - }; - Enigmail.msg.signByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.finalSignDependsOnEncrypt = true; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption ENIG_NEVER - Enigmail.msg.encryptForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption encFinally = EnigmailConstants; - Enigmail.msg.encryptForced = null; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.reasonSigned, EnigmailLocale.getString("reasonByEncryptionMode")); - - //Encryption ENIG_CONFLICT - Enigmail.msg.getAccDefault = (prop) => { - //Function Overriding - return false; - }; - Enigmail.msg.sendMode = 0x0001; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusSigned, EnigmailConstants.ENIG_FINAL_CONFLICT); - Assert.equal(Enigmail.msg.reasonSigned, ""); - - //statusPGPMime Flags - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_FORCENO); - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_FORCEYES); - - Enigmail.msg.pgpmimeForced = ""; - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_NO); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_ALWAYS; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_YES); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_CONFLICT; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_CONFLICT); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_NO); - - Enigmail.msg.pgpmimeByRules = EnigmailConstants.ENIG_UNDEF; - Enigmail.msg.sendMode = EnigmailConstants.SEND_PGP_MIME; - Enigmail.msg.processFinalState(); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_YES); - -} - -function replaceEditorText_test() { - Enigmail.msg.editorSelectAll = function() { - Assert.ok(true); - }; - - Enigmail.msg.editorInsertText = function(val) { - Assert.ok(true); - if (val === "Enigmail" || val === "text") { - Assert.ok(true); - } else { - Assert.ok(false); - } - }; - - Enigmail.msg.editor = {}; - - Enigmail.msg.editor.textLength = 4; - - Enigmail.msg.replaceEditorText("text"); - - Enigmail.msg.editor.textLength = 0; - Enigmail.msg.editorInsertText = function(val) { - Assert.ok(true); - if (val === " " || val === "text") { - Assert.ok(true); - } else { - Assert.ok(false); - } - }; -} - -function resetUpdatedFields_test() { - - let si = EnigmailCompat.getSecurityField(); - gMsgCompose = { - compFields: { - subject: 'subject' - } - }; - - gMsgCompose.compFields[si] = { - signMessage: false, - wrappedJSObject: this - }; - - - Enigmail.msg.removeAttachedKey = function() { - Assert.ok(true); - }; - - EnigmailMimeEncrypt.isEnigmailCompField = function(val) { - Assert.equal(val.signMessage, false); - return true; - }; - - Enigmail.msg.resetUpdatedFields(); - Assert.equal(gMsgCompose.compFields.subject, 'subject'); - -} - - -function run_test() { - window = JSUnit.createStubWindow(); - window.document = {}; - document = window.document; - - do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); - - //Overriding Problem - //TODO Use testHelper - isEnigmailEnabled_test(); - isSmimeEnabled_test(); - processFinalState_test(); - - initialSendFlags_test(); - initRadioMenu_test(); - isSendConfirmationRequired_test(); - isSmimeEncryptionPossible_test(); - modifyCompFields_test(); - msgComposeReset_test(); - notifyUser_test(); - onPepEncryptButton_test(); - onPepEncryptMenu_test(); - onPepHandshakeButton_test(); - pepDisabledError_test(); - pepMenuPopup_test(); - preferPgpOverSmime_test(); - processAccountSpecificDefaultOptions_test(); - replaceEditorText_test(); - resetUpdatedFields_test(); - -} diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-s_t.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-s_t.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-s_t.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-s_t.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,885 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, trustAllKeys_test: false, JSUnit: false, EnigmailConstants: false, EnigmailLocale: 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/. - */ - -var window; -var document; - -var EnigmailApp = {}; -var getCurrentAccountKey = {}; -var MailServices = {}; -var CommandUpdate_MsgCompose = {}; -var top = {}; -var EnigmailDialog = { - msgBox: function() {}, - alertPref: function() {} -}; -var AddAttachment; -var AddAttachments; -var EnigmailPEPAdapter = {}; -var Recipients2CompFields = {}; -var GetResourceFromUri = {}; -var EnigmailCore = {}; - -var gSMFields; - -var EnigmailPrefs = { - getPref: (prop) => { - return 1; - }, - setPref: function() {} -}; - -var EnigmailTimer = { - setTimeout: function() {} -}; - -var gMsgCompose = {}; - -function toggleEncryptMessage() { - Assert.ok(true); -} - -function toggleSignMessage() { - Assert.ok(true); -} - -var getCurrentIdentity = function() { - -}; - -var EnigmailFuncs = { - -}; - -function sendAborted_test() { - - EnigmailDialog = { - info: function() { - Assert.ok(true); - } - }; - Enigmail.msg.sendAborted(window, null); - - let errorMsgObj = { - value: 'INV_RECP 10 key10\nINV_SGNR 1 key1\nINV_RECP 4 key4\nINV_SGNR 5 key5' - }; - - EnigmailDialog.info = function(window, val) { - Assert.equal(val, - "Send operation aborted.\n\nNot enough trust for key 'key10'\nKey 'key1' not found\nKey 'key4' revoked\nKey 'key5' expired\n\nINV_RECP 10 key10\nINV_SGNR 1 key1\nINV_RECP 4 key4\nINV_SGNR 5 key5" - ); - }; - - Enigmail.msg.sendAborted(window, errorMsgObj); - - errorMsgObj = { - value: 'INV_RECP 10 key10' - }; - - EnigmailDialog.info = function(window, val) { - Assert.equal(val, "Send operation aborted.\n\nNot enough trust for key 'key10'\n\nINV_RECP 10 key10"); - }; - - Enigmail.msg.sendAborted(window, errorMsgObj); - - errorMsgObj = { - value: 'INV_RECP 10 key10\nI_SGNR 1 key1\nINV_RECP 4 key4\nINV_SGNR 5 key5' - }; - - EnigmailDialog.info = function(window, val) { - Assert.equal(val, "Send operation aborted.\n\nNot enough trust for key 'key10'\nKey 'key4' revoked\nKey 'key5' expired\n\nINV_RECP 10 key10\nI_SGNR 1 key1\nINV_RECP 4 key4\nINV_SGNR 5 key5"); - }; - - Enigmail.msg.sendAborted(window, errorMsgObj); - - errorMsgObj = { - value: 'INV_RECP10key10' - }; - - EnigmailDialog.info = function(window, val) { - Assert.equal(val, "Send operation aborted.\n\nINV_RECP10key10"); - }; - - Enigmail.msg.sendAborted(window, errorMsgObj); - -} - -function setAdditionalHeader_test() { - gMsgCompose = { - compFields: { - setHeader: function() { - Assert.ok(true); - } - } - }; - - Enigmail.msg.setAdditionalHeader('hdr', 'val'); - - gMsgCompose = { - compFields: { - otherRandomHeaders: 'hello' - } - }; - - Enigmail.msg.setAdditionalHeader('hdr', 'val'); - - Assert.equal(gMsgCompose.compFields.otherRandomHeaders, 'hellohdr: val\r\n'); -} - -function setChecked_test() { - document = { - getElementById: function() { - return { - setAttribute: function(str, bool) { - Assert.ok(true); - Assert.ok(str, "checked"); - Assert.ok(bool, "true"); - }, - removeAttribute: function(str) { - Assert.ok(true); - Assert.ok(str, "checked"); - } - }; - } - }; - - Enigmail.msg.setChecked('id', true); - - Enigmail.msg.setChecked('id', false); - -} - -function setDraftStatus_test() { - - Enigmail.msg.encryptForced = 1; - Enigmail.msg.signForced = 2; - Enigmail.msg.pgpmimeForced = 3; - Enigmail.msg.protectHeaders = 4; - Enigmail.msg.attachOwnKeyObj = { - appendAttachment: 1 - }; - - Enigmail.msg.setAdditionalHeader = function(str, draftStatus) { - Assert.equal(str, "X-Enigmail-Draft-Status"); - Assert.equal(draftStatus, "N12311"); - }; - - Enigmail.msg.setDraftStatus(1); - - - Enigmail.msg.pgpmimeForced = 0; - Enigmail.msg.protectHeaders = 4; - Enigmail.msg.attachOwnKeyObj = { - appendAttachment: null - }; - - Enigmail.msg.setAdditionalHeader = function(str, draftStatus) { - Assert.equal(str, "X-Enigmail-Draft-Status"); - Assert.equal(draftStatus, "N12000"); - }; - - Enigmail.msg.setDraftStatus(0); -} - -function setFinalSendMode_test() { - // test functionality of setFinalSendMode - - Enigmail.msg.determineSendFlags = () => { - - }; - - Enigmail.msg.getAccDefault = () => { - return true; - }; - - Enigmail.msg.identity = {}; - - EnigmailDialog.alertPref = function() { - Assert.ok(true); - }; - - Enigmail.msg.setFinalSendMode('final-encryptDefault'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_UNDEF); - - Enigmail.msg.setFinalSendMode('final-encryptYes'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.setFinalSendMode('final-encryptNo'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.setFinalSendMode('final-signDefault'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_UNDEF); - - Enigmail.msg.setFinalSendMode('final-signYes'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.setFinalSendMode('final-signNo'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.setFinalSendMode('final-pgpmimeDefault'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_UNDEF); - - Enigmail.msg.setFinalSendMode('final-pgpmimeYes'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.setFinalSendMode('final-pgpmimeNo'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.setFinalSendMode('final-useSmime'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_FORCE_SMIME); - - Enigmail.msg.statusSigned = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.setFinalSendMode('toggle-final-sign'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.statusSigned = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.setFinalSendMode('toggle-final-sign'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.statusSigned = EnigmailConstants.ENIG_FINAL_FORCEYES; - Enigmail.msg.setFinalSendMode('toggle-final-sign'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.statusSigned = EnigmailConstants.ENIG_FINAL_CONFLICT; - Enigmail.msg.setFinalSendMode('toggle-final-sign'); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.juniorMode = false; - - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.setFinalSendMode('toggle-final-encrypt'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_FORCEYES; - Enigmail.msg.setFinalSendMode('toggle-final-encrypt'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.statusEncrypted = EnigmailConstants.ENIG_FINAL_CONFLICT; - Enigmail.msg.setFinalSendMode('toggle-final-encrypt'); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_FORCENO; - Enigmail.msg.setFinalSendMode('toggle-final-mime'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_ALWAYS); - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_FORCEYES; - Enigmail.msg.setFinalSendMode('toggle-final-mime'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_NEVER); - - Enigmail.msg.statusPGPMime = EnigmailConstants.ENIG_FINAL_CONFLICT; - Enigmail.msg.setFinalSendMode('toggle-final-mime'); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_NEVER); - Assert.equal(Enigmail.msg.sendModeDirty, true); - -} - -function setIdentityCallback_test() { - - Enigmail.msg.setIdentityDefaults = function() { - //Function Overriding - Assert.ok(true); - }; - - Enigmail.msg.setIdentityCallback('xyz'); -} - -function setIdentityDefaults_test() { - - - Enigmail.msg.processAccountSpecificDefaultOptions = function() { - //Function Overriding - }; - - Enigmail.msg.determineSendFlags = function() { - //Function Overriding - }; - - Enigmail.msg.processFinalState = function() { - //Function Overriding - }; - - Enigmail.msg.updateStatusBar = function() { - //Function Overriding - }; - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.juniorMode = false; - Enigmail.msg.sendModeDirty = true; - - getCurrentIdentity = function() { - //Function Overriding - return { - getIntAttribute: function() { - return true; - } - }; - }; - - Enigmail.msg.setIdentityDefaults(); - - Enigmail.msg.isEnigmailEnabled = function() { - //Function Overriding - return false; - }; - - Enigmail.msg.setIdentityDefaults(); - - Assert.equal(Enigmail.msg.statusEncryptedStr, EnigmailLocale.getString("encryptNo")); - Assert.equal(Enigmail.msg.statusSignedStr, EnigmailLocale.getString("signNo", [""])); - Assert.equal(Enigmail.msg.statusPGPMimeStr, EnigmailLocale.getString("pgpmimeNormal")); - Assert.equal(Enigmail.msg.statusInlinePGPStr, EnigmailLocale.getString("inlinePGPNormal")); - Assert.equal(Enigmail.msg.statusSMimeStr, EnigmailLocale.getString("smimeNormal")); - Assert.equal(Enigmail.msg.statusAttachOwnKey, EnigmailLocale.getString("attachOwnKeyNo")); - - Enigmail.msg.juniorMode = true; - - Enigmail.msg.pepEnabled = function() { - //Function Overriding - return false; - }; - - document = { - getElementById: function() { - return { - setAttribute: function(str1, bool) { - Assert.equal(bool, "false"); - } - }; - } - }; - - Enigmail.msg.setIdentityDefaults(); - - Enigmail.msg.pepEnabled = function() { - //Function Overriding - return true; - }; - - document = { - getElementById: function() { - return { - setAttribute: function(str1, bool) { - Assert.equal(bool, "true"); - } - }; - } - }; - - Enigmail.msg.setIdentityDefaults(); - - Enigmail.msg.sendModeDirty = false; - Enigmail.msg.setIdentityDefaults(); - - Enigmail.msg.statusEncryptedStr = ""; - Enigmail.msg.statusSignedStr = ""; - Enigmail.msg.statusPGPMimeStr = ""; - Enigmail.msg.statusInlinePGPStr = ""; - Enigmail.msg.statusSMimeStr = ""; - Enigmail.msg.statusAttachOwnKey = ""; - -} - -function setOwnKeyStatus_test() { - - Enigmail.msg.allowAttachOwnKey = function() { - //Function Overriding - return 0; - }; - - document.getElementById = function(str) { - return { - setAttribute: function() { - Assert.ok(true); - }, - removeAttribute: function() { - Assert.ok(true); - } - }; - }; - - Enigmail.msg.setOwnKeyStatus(); - Assert.equal(Enigmail.msg.statusAttachOwnKey, EnigmailLocale.getString("attachOwnKeyDisabled")); - - Enigmail.msg.allowAttachOwnKey = function() { - //Function Overriding - return 1; - }; - - Enigmail.msg.attachOwnKeyObj.appendAttachment = true; - Enigmail.msg.setOwnKeyStatus(); - Assert.equal(Enigmail.msg.statusAttachOwnKey, EnigmailLocale.getString("attachOwnKeyYes")); - - Enigmail.msg.attachOwnKeyObj.appendAttachment = false; - Enigmail.msg.setOwnKeyStatus(); - Assert.equal(Enigmail.msg.statusAttachOwnKey, EnigmailLocale.getString("attachOwnKeyNo")); -} - -function setPepPrivacyLabel_test() { - document.getElementById = function() { - return { - getAttribute: function() { - return "false"; - }, - setAttribute: function(prop, val) { - if (prop === "value") { - Assert.equal(val, EnigmailLocale.getString("msgCompose.pepSendUnsecure")); - } else if (prop === "class") { - Assert.equal(val, "enigmail-statusbar-pep-unsecure"); - } - } - }; - }; - - EnigmailPEPAdapter.calculateColorFromRating = function() { - return "green"; - }; - - Enigmail.msg.setPepPrivacyLabel(1); - - document.getElementById = function() { - return { - getAttribute: function() { - return "true"; - }, - setAttribute: function(prop, val) { - if (prop === "value") { - Assert.equal(val, EnigmailLocale.getString("msgCompose.pepSendUnknown")); - } else if (prop === "class") { - Assert.equal(val, "enigmail-statusbar-pep-unsecure"); - } - } - }; - }; - - Enigmail.msg.setPepPrivacyLabel(0); - - document.getElementById = function() { - return { - getAttribute: function() { - return "true"; - }, - setAttribute: function(prop, val) { - if (prop === "value") { - Assert.equal(val, EnigmailLocale.getString("msgCompose.pepSendTrusted")); - } else if (prop === "class") { - Assert.equal(val, "enigmail-statusbar-pep-trusted"); - } - } - }; - }; - - Enigmail.msg.setPepPrivacyLabel(1); - - EnigmailPEPAdapter.calculateColorFromRating = function() { - return "yellow"; - }; - - document.getElementById = function() { - return { - getAttribute: function() { - return "true"; - }, - setAttribute: function(prop, val) { - if (prop === "value") { - Assert.equal(val, EnigmailLocale.getString("msgCompose.pepSendSecure")); - } else if (prop === "class") { - Assert.equal(val, "enigmail-statusbar-pep-secure"); - } - } - }; - }; - - Enigmail.msg.setPepPrivacyLabel(1); -} - -function setSendMode_test() { - - Enigmail.msg.processFinalState = () => { - //Function Overriding - return null; - }; - - Enigmail.msg.updateStatusBar = () => { - //Function Overriding - return null; - }; - - Enigmail.msg.sendMode = EnigmailConstants.SEND_SIGNED; - Enigmail.msg.setSendMode('sign'); - Assert.equal(Enigmail.msg.sendMode, EnigmailConstants.SEND_SIGNED); - - Enigmail.msg.sendMode = EnigmailConstants.SEND_ENCRYPTED; - Enigmail.msg.setSendMode('sign'); - Assert.equal(Enigmail.msg.sendMode, 3); - - Enigmail.msg.sendMode = EnigmailConstants.SEND_ENCRYPTED; - Enigmail.msg.setSendMode('encrypt'); - Assert.equal(Enigmail.msg.sendMode, EnigmailConstants.SEND_ENCRYPTED); - - Enigmail.msg.sendMode = EnigmailConstants.SEND_SIGNED; - Enigmail.msg.setSendMode('encrypt'); - Assert.equal(Enigmail.msg.sendMode, 3); - -} - -function signingNoLongerDependsOnEnc_test() { - Enigmail.msg.finalSignDependsOnEncrypt = true; - Enigmail.msg.juniorMode = true; - Enigmail.msg.signingNoLongerDependsOnEnc(); - EnigmailDialog.alertPref = function() { - Assert.ok(true); - }; - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, true); - - Enigmail.msg.juniorMode = false; - EnigmailDialog.alertPref = function() {}; - Enigmail.msg.signingNoLongerDependsOnEnc(); - EnigmailDialog.alertPref = function() { - Assert.ok(true); - }; - Assert.equal(Enigmail.msg.finalSignDependsOnEncrypt, false); -} - -function toggleAccountAttr_test() { - - Enigmail.msg.identity = {}; - - let attr_name = 'random'; - Enigmail.msg.identity.getBoolAttribute = function() { - //Function Overriding - return true; - }; - - Enigmail.msg.identity.setBoolAttribute = function(attrName, oldValue) { - //Function Overriding - Assert.equal(attrName, attr_name); - Assert.equal(oldValue, false); - }; - - Enigmail.msg.toggleAccountAttr(attr_name); - -} - -function toggleAttachOwnKey_test() { - - EnigmailCore.getService = function() { - Assert.ok(true); - }; - - Enigmail.msg.attachOwnKeyObj.appendAttachment = true; - - Enigmail.msg.setOwnKeyStatus = function() { - Assert.ok(true); - }; - - Enigmail.msg.toggleAttachOwnKey(); - Assert.equal(Enigmail.msg.attachOwnKeyObj.appendAttachment, false); - -} - -function toggleAttribute_test() { - - let attr_name = 'random'; - EnigmailPrefs.getPref = function() { - //Function Overriding - return true; - }; - - EnigmailPrefs.setPref = function(attrName, oldValue) { - //Function Overriding - Assert.equal(attrName, attr_name); - Assert.equal(oldValue, false); - }; - - Enigmail.msg.toggleAttribute(attr_name); - -} - -function toggleProtectHeaders_test() { - EnigmailCore.getService = function() { - Assert.ok(true); - }; - - Enigmail.msg.protectHeaders = true; - - Enigmail.msg.displayProtectHeadersStatus = function() { - Assert.ok(true); - }; - - Enigmail.msg.toggleProtectHeaders(); - Assert.equal(Enigmail.msg.protectHeaders, false); -} - -function toggleSMimeEncrypt_test() { - - gSMFields = { - requireEncryptMessage: true - }; - Enigmail.msg.toggleSMimeEncrypt(); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_ALWAYS); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_FORCE_SMIME); - - gSMFields = { - requireEncryptMessage: false, - signMessage: false - }; - Enigmail.msg.toggleSMimeEncrypt(); - Assert.equal(Enigmail.msg.encryptForced, EnigmailConstants.ENIG_NEVER); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_UNDEF); - -} - -function toggleSMimeSign_test() { - gSMFields = { - signMessage: true - }; - Enigmail.msg.toggleSMimeSign(); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_ALWAYS); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_FORCE_SMIME); - - gSMFields = { - requireEncryptMessage: false, - signMessage: false - }; - Enigmail.msg.toggleSMimeSign(); - Assert.equal(Enigmail.msg.signForced, EnigmailConstants.ENIG_NEVER); - Assert.equal(Enigmail.msg.pgpmimeForced, EnigmailConstants.ENIG_UNDEF); - -} - -function toggleSmimeToolbar_test() { - - Enigmail.msg.toggleSMimeEncrypt = function() { - //Function Overriding - Assert.ok(true); - }; - - Enigmail.msg.toggleSMimeSign = function() { - //Function Overriding - Assert.ok(true); - }; - - let event = { - 'target': { - 'id': "menu_securitySign2" - }, - stopPropagation: function() { - Assert.ok(true); - } - }; - Enigmail.msg.toggleSmimeToolbar(event); - - event = { - 'target': { - 'id': "menu_securityEncryptRequire2" - }, - stopPropagation: function() { - Assert.ok(true); - } - }; - Enigmail.msg.toggleSmimeToolbar(event); - -} - -function trustAllKeys_test() { - // test functionality of trustAllKeys - Enigmail.msg.trustAllKeys = true; - Enigmail.msg.tempTrustAllKeys(); - Assert.equal(Enigmail.msg.trustAllKeys, false, "check trustAllKeys is false"); - - Enigmail.msg.tempTrustAllKeys(); - Assert.equal(Enigmail.msg.trustAllKeys, true, "check trustAllKeys is true"); - -} - -function tryEnablingSMime_test() { - - gSMFields = {}; - - var encFinally = EnigmailConstants.ENIG_FINAL_FORCENO; - var signFinally = EnigmailConstants.ENIG_FINAL_FORCENO; - var ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - Enigmail.msg.mimePreferOpenPGP = 1; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_ALWAYS; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - Enigmail.msg.mimePreferOpenPGP = 1; - Enigmail.msg.encryptByRules = null; - Enigmail.msg.autoPgpEncryption = 1; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - Enigmail.msg.mimePreferOpenPGP = 0; - Enigmail.msg.encryptByRules = EnigmailConstants.ENIG_NEVER; - Enigmail.msg.autoPgpEncryption = 0; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - Enigmail.msg.encryptByRules = null; - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_NEVER; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_ALWAYS; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - - - encFinally = EnigmailConstants.ENIG_FINAL_FORCEYES; - signFinally = EnigmailConstants.ENIG_FINAL_YES; - Enigmail.msg.pgpmimeForced = EnigmailConstants.ENIG_FORCE_SMIME; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_FORCESMIME); - Assert.equal(gSMFields.requireEncryptMessage, true); - Assert.equal(gSMFields.signMessage, true); - - - Enigmail.msg.isSmimeEncryptionPossible = () => { - //Function Overriding - return true; - }; - EnigmailPrefs.getPref = function() { - //Function Overriding - return 1; - }; - Enigmail.msg.tryEnablingSMime.autoSendEncrypted = 0; - Enigmail.msg.pgpmimeForced = null; - Enigmail.msg.mimePreferOpenPGP = 0; - encFinally = EnigmailConstants.ENIG_FINAL_FORCEYES; - signFinally = EnigmailConstants.ENIG_FINAL_FORCENO; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_SMIME); - Assert.equal(gSMFields.requireEncryptMessage, true); - Assert.equal(gSMFields.signMessage, false); - - Enigmail.msg.autoPgpEncryption = false; - Enigmail.msg.mimePreferOpenPGP = null; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_SMIME); - Assert.equal(gSMFields.requireEncryptMessage, true); - Assert.equal(gSMFields.signMessage, false); - - Enigmail.msg.isSmimeEncryptionPossible = () => { - //Function Overriding - return false; - }; - Enigmail.msg.autoPgpEncryption = true; - encFinally = EnigmailConstants.ENIG_FINAL_NO; - signFinally = EnigmailConstants.ENIG_FINAL_YES; - Enigmail.msg.mimePreferOpenPGP = 0; - Enigmail.msg.autoPgpEncryption = false; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_NO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_YES); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_SMIME); - Assert.equal(gSMFields.requireEncryptMessage, false); - Assert.equal(gSMFields.signMessage, true); - - - encFinally = EnigmailConstants.ENIG_FINAL_FORCENO; - signFinally = EnigmailConstants.ENIG_FINAL_FORCEYES; - Enigmail.msg.autoPgpEncryption = true; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCENO); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_SMIME); - Assert.equal(gSMFields.requireEncryptMessage, false); - Assert.equal(gSMFields.signMessage, false); - - - EnigmailPrefs = { - getPref: (prop) => { - //Function Overriding - return 0; - } - }; - - Enigmail.msg.isSmimeEncryptionPossible = () => { - //Function Overriding - return true; - }; - - encFinally = EnigmailConstants.ENIG_FINAL_FORCEYES; - signFinally = EnigmailConstants.ENIG_FINAL_FORCEYES; - Enigmail.msg.autoPgpEncryption = false; - Enigmail.msg.mimePreferOpenPGP = null; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.statusPGPMime, EnigmailConstants.ENIG_FINAL_SMIME); - Assert.equal(gSMFields.requireEncryptMessage, true); - Assert.equal(gSMFields.signMessage, true); - - Enigmail.msg.statusPGPMime = null; - Enigmail.msg.autoPgpEncryption = true; - Enigmail.msg.mimePreferOpenPGP = null; - ret = Enigmail.msg.tryEnablingSMime(encFinally, signFinally); - Assert.equal(ret.encFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(ret.signFinally, EnigmailConstants.ENIG_FINAL_FORCEYES); - Assert.equal(Enigmail.msg.statusPGPMime, null); - Assert.equal(gSMFields.requireEncryptMessage, false); - Assert.equal(gSMFields.signMessage, false); - -} - - -function run_test() { - window = JSUnit.createStubWindow(); - window.document = JSUnit.createDOMDocument(); - document = window.document; - - do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); - - //Overriding Problem - //TODO Use testHelper - setIdentityDefaults_test(); - - sendAborted_test(); - setAdditionalHeader_test(); - setChecked_test(); - setDraftStatus_test(); - setFinalSendMode_test(); - setIdentityCallback_test(); - setOwnKeyStatus_test(); - setPepPrivacyLabel_test(); - setSendMode_test(); - signingNoLongerDependsOnEnc_test(); - toggleAccountAttr_test(); - toggleAttachOwnKey_test(); - toggleAttribute_test(); - toggleProtectHeaders_test(); - toggleSMimeEncrypt_test(); - toggleSMimeSign_test(); - toggleSmimeToolbar_test(); - trustAllKeys_test(); - tryEnablingSMime_test(); - -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-u_z.js enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-u_z.js --- enigmail-2.1.6+ds1/ui/tests/enigmailMsgComposeOverlay-test-u_z.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/enigmailMsgComposeOverlay-test-u_z.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -/*global Enigmail: false, Assert: false, do_load_module: false, trustAllKeys_test: false, JSUnit: false, EnigmailConstants: false, EnigmailLocale: 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/. - */ - -var window; -var document; - -var EnigmailApp = {}; -var getCurrentAccountKey = {}; -var MailServices = {}; -var CommandUpdate_MsgCompose = {}; -var top = {}; -var EnigmailDialog = { - msgBox: function() {}, - alertPref: function() {} -}; -var AddAttachment; -var AddAttachments; -var EnigmailPEPAdapter = {}; -var Recipients2CompFields = {}; -var GetResourceFromUri = {}; -var EnigmailCore = {}; - -var gSMFields; - -var EnigmailPrefs = { - getPref: (prop) => { - return 1; - }, - setPref: function() {} -}; - -var EnigmailTimer = { - setTimeout: function() {} -}; - -var gMsgCompose = {}; - -function toggleEncryptMessage() { - Assert.ok(true); -} - -function toggleSignMessage() { - Assert.ok(true); -} - -var getCurrentIdentity = function() { - -}; - -var EnigmailFuncs = { - -}; - -function unsetAdditionalHeader_test() { - gMsgCompose = { - compFields: { - deleteHeader: function() { - Assert.ok(true); - } - } - }; - - Enigmail.msg.unsetAdditionalHeader('hdr'); - - gMsgCompose = { - compFields: { - otherRandomHeaders: 'hello' - } - }; - - Enigmail.msg.unsetAdditionalHeader('hdr: hello\r\n'); - - Assert.equal(gMsgCompose.compFields.otherRandomHeaders, 'hello'); -} - - - -function run_test() { - window = JSUnit.createStubWindow(); - window.document = JSUnit.createDOMDocument(); - document = window.document; - - do_load_module("chrome://enigmail/content/ui/enigmailMsgComposeOverlay.js"); - - unsetAdditionalHeader_test(); - -} \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/ui/tests/.eslintrc.js enigmail-2.2.4/ui/tests/.eslintrc.js --- enigmail-2.1.6+ds1/ui/tests/.eslintrc.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/.eslintrc.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -module.exports = { - "rules": { - "strict": 0, - } -} diff -Nru enigmail-2.1.6+ds1/ui/tests/main.js enigmail-2.2.4/ui/tests/main.js --- enigmail-2.1.6+ds1/ui/tests/main.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/main.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/*global do_subtest: 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/. - */ - -function execTest(filename) { - - - let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); - - let testcases = env.get("JS_TEST"); - - if (testcases && testcases.length > 0) { - if (testcases.search(filename) >= 0) do_subtest(filename); - } else - do_subtest(filename); -} - - -// the subprocess tests -execTest("enigmailMsgComposeOverlay-test-enc.js"); -execTest("enigmailMsgComposeOverlay-test-a_e.js"); -execTest("enigmailMsgComposeOverlay-test-f_h.js"); -execTest("enigmailMsgComposeOverlay-test-i_r.js"); -execTest("enigmailMsgComposeOverlay-test-s_t.js"); -execTest("enigmailMsgComposeOverlay-test-u_z.js"); \ No newline at end of file diff -Nru enigmail-2.1.6+ds1/ui/tests/Makefile enigmail-2.2.4/ui/tests/Makefile --- enigmail-2.1.6+ds1/ui/tests/Makefile 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,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 -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -DEPTH = ../.. - -include $(DEPTH)/config/autoconf.mk - -UNITTEST = - -ifneq ($(TB_PATH),"") - -UNITTEST = $(JSUNIT) - -endif - -all: - $(UNITTEST) diff -Nru enigmail-2.1.6+ds1/ui/tests/testHelper.js enigmail-2.2.4/ui/tests/testHelper.js --- enigmail-2.1.6+ds1/ui/tests/testHelper.js 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/ui/tests/testHelper.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,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 - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -"use strict"; - -/* global do_load_module: false, do_get_cwd: false */ -// load testHelper.js from package/tests into the current scope -do_load_module("file://" + do_get_cwd().parent.parent.path + "/package/tests/testHelper.js"); - -// all functions from .../package/testHelper.js are available diff -Nru enigmail-2.1.6+ds1/util/checkFiles.py enigmail-2.2.4/util/checkFiles.py --- enigmail-2.1.6+ds1/util/checkFiles.py 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/checkFiles.py 2020-10-01 13:32:58.000000000 +0000 @@ -164,7 +164,7 @@ label = match.group(1) #print " " + label checkLabel(label,filename) - match = re.search('[csn]\.getString *\("([^;"]*)"', line) + match = re.search('Locale\.getString *\("([^;"]*)"', line) if match: label = match.group(1) #print " " + label @@ -289,8 +289,8 @@ path = os.path.join(root) for path, dirs, files in os.walk(path): for name in files: - #if name.endswith(".xul"): - if name.endswith(".xul"): + #if name.endswith(".xhtml"): + if name.endswith(".xhtml"): filename = os.path.join(path,name) checkXUL(filename) diff -Nru enigmail-2.1.6+ds1/util/genxpi enigmail-2.2.4/util/genxpi --- enigmail-2.1.6+ds1/util/genxpi 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/genxpi 2020-10-01 13:32:58.000000000 +0000 @@ -32,6 +32,9 @@ cat ${srcDir}/package/chrome.manifest \ > ${targetDir}/chrome.manifest +cat ${srcDir}/package/schema.json \ +> ${targetDir}/schema.json + # Prepare languages other than en-US if [ "$enableLang" = "yes" ]; then @@ -45,14 +48,6 @@ fi fi -# define which package file to include in package - -if [ "${targetTool}" = "tbird" ]; then - # Thunderbird (Gecko 68 or newer) - pkgFile=manifest.json -else - pkgFile=install.rdf -fi cd "$targetDir" @@ -63,96 +58,41 @@ zip -9 --must-match\ ../${xpiFile} \ chrome/content/preferences/defaultPrefs.js \ - chrome/content/modules/addrbook.jsm \ - chrome/content/modules/amPrefsService.jsm \ chrome/content/modules/app.jsm \ chrome/content/modules/armor.jsm \ - chrome/content/modules/attachment.jsm \ - chrome/content/modules/autocrypt.jsm \ - chrome/content/modules/autoSetup.jsm \ chrome/content/modules/buildDate.jsm \ - chrome/content/modules/card.jsm \ chrome/content/modules/clipboard.jsm \ - chrome/content/modules/commandLine.jsm \ - chrome/content/modules/configure.jsm \ chrome/content/modules/constants.jsm \ chrome/content/modules/cryptoAPI.jsm \ chrome/content/modules/cryptoAPI/gnupg.js \ - chrome/content/modules/cryptoAPI/gnupg-decryption.jsm \ + chrome/content/modules/cryptoAPI/gnupg-agent.jsm \ + chrome/content/modules/cryptoAPI/gnupg-core.jsm \ chrome/content/modules/cryptoAPI/gnupg-key.jsm \ chrome/content/modules/cryptoAPI/gnupg-keylist.jsm \ - chrome/content/modules/cryptoAPI/openpgp-js.js \ chrome/content/modules/cryptoAPI/interface.js \ chrome/content/modules/data.jsm \ - chrome/content/modules/dns.jsm \ - chrome/content/modules/decryption.jsm \ - chrome/content/modules/persistentCrypto.jsm \ chrome/content/modules/dialog.jsm \ - chrome/content/modules/encryption.jsm \ chrome/content/modules/core.jsm \ - chrome/content/modules/configBackup.jsm \ chrome/content/modules/enigmailOverlays.jsm \ chrome/content/modules/errorHandling.jsm \ chrome/content/modules/funcs.jsm \ - chrome/content/modules/gpgAgent.jsm \ - chrome/content/modules/gnupgUpdate.jsm \ - chrome/content/modules/protocolHandler.jsm \ - chrome/content/modules/events.jsm \ chrome/content/modules/execution.jsm \ chrome/content/modules/files.jsm \ - chrome/content/modules/filters.jsm \ - chrome/content/modules/filtersWrapper.jsm \ - chrome/content/modules/fixExchangeMsg.jsm \ - chrome/content/modules/glodaUtils.jsm \ - chrome/content/modules/gpg.jsm \ - chrome/content/modules/hash.jsm \ - chrome/content/modules/httpProxy.jsm \ - chrome/content/modules/installGnuPG.jsm \ - chrome/content/modules/installPep.jsm \ chrome/content/modules/key.jsm \ - chrome/content/modules/keyEditor.jsm \ chrome/content/modules/keyObj.jsm \ chrome/content/modules/keyRing.jsm \ chrome/content/modules/keyUsability.jsm \ - chrome/content/modules/keyRefreshService.jsm \ - chrome/content/modules/keyserver.jsm \ - chrome/content/modules/keyserverUris.jsm \ chrome/content/modules/lazy.jsm \ chrome/content/modules/locale.jsm \ chrome/content/modules/localizeHtml.jsm \ chrome/content/modules/log.jsm \ - chrome/content/modules/mime.jsm \ - chrome/content/modules/mimeDecrypt.jsm \ - chrome/content/modules/mimeEncrypt.jsm \ - chrome/content/modules/mimeVerify.jsm \ - chrome/content/modules/msgRead.jsm \ chrome/content/modules/os.jsm \ - chrome/content/modules/openpgp.jsm \ chrome/content/modules/overlays.jsm \ - chrome/content/modules/passwordCheck.jsm \ chrome/content/modules/passwords.jsm \ - chrome/content/modules/pEp.jsm \ - chrome/content/modules/pEpAdapter.jsm \ - chrome/content/modules/pEpDecrypt.jsm \ - chrome/content/modules/pEpFilter.jsm \ - chrome/content/modules/pEpListener.jsm \ - chrome/content/modules/pEpKeySync.jsm \ - chrome/content/modules/pgpmimeHandler.jsm \ chrome/content/modules/pipeConsole.jsm \ chrome/content/modules/prefs.jsm \ - chrome/content/modules/rng.jsm \ - chrome/content/modules/rules.jsm \ chrome/content/modules/searchCallback.jsm \ - chrome/content/modules/send.jsm \ chrome/content/modules/singletons.jsm \ - chrome/content/modules/socks5Proxy.jsm \ - chrome/content/modules/stdlib/compose.jsm \ - chrome/content/modules/stdlib/misc.jsm \ - chrome/content/modules/stdlib/msgHdrUtils.jsm \ - chrome/content/modules/stdlib/openpgp-lib.jsm \ - chrome/content/modules/stdlib/openpgp.worker.js \ - chrome/content/modules/stdlib/web-streams.jsm \ - chrome/content/modules/stdlib.jsm \ chrome/content/modules/streams.jsm \ chrome/content/modules/subprocess.jsm \ chrome/content/modules/enigmailprocess_shared_unix.js \ @@ -165,36 +105,25 @@ chrome/content/modules/enigmailprocess_worker_win.js \ chrome/content/modules/enigmailprocess_shared.js \ chrome/content/modules/enigmailprocess_win.jsm \ - chrome/content/modules/sqliteDb.jsm \ chrome/content/modules/system.jsm \ chrome/content/modules/compat.jsm \ chrome/content/modules/time.jsm \ chrome/content/modules/timer.jsm \ - chrome/content/modules/tor.jsm \ chrome/content/modules/trust.jsm \ - chrome/content/modules/uris.jsm \ - chrome/content/modules/verify.jsm \ chrome/content/modules/versioning.jsm \ - chrome/content/modules/webKey.jsm \ - chrome/content/modules/wkdLookup.jsm \ chrome/content/modules/windows.jsm \ - chrome/content/modules/wksMimeHandler.jsm \ - chrome/content/modules/xhrUtils.jsm \ - chrome/content/modules/zbase32.jsm \ - chrome/content/modules/all-modules.txt \ - chrome/content/am-enigprefs.xul + chrome/content/modules/all-modules.txt + +if [ $? -ne 0 ]; then + exit 1 +fi zip -9 \ ../${xpiFile} \ chrome/content/ui/*.* \ - chrome/skin/aero/*.* \ - chrome/skin/modern/*.* \ - chrome/skin/tb-mac/*.* \ - chrome/skin/classic-seamonkey/*.* \ - chrome/skin/tb-linux/*.* \ - chrome/skin/tb-win-xp/*.* \ + chrome/content/skin/*.* \ chrome/locale/*/*.* \ - chrome/locale/*/help/*.* \ - bootstrap.js \ + webextension.js \ chrome.manifest \ - ${pkgFile} + schema.json \ + manifest.json diff -Nru enigmail-2.1.6+ds1/util/make-lang-xpi.pl enigmail-2.2.4/util/make-lang-xpi.pl --- enigmail-2.1.6+ds1/util/make-lang-xpi.pl 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/make-lang-xpi.pl 2020-10-01 13:32:58.000000000 +0000 @@ -38,15 +38,6 @@ "enigmail.dtd" ); -my @files = ( - "am-enigprefs.properties", - "help/compose.html", - "help/editRcptRule.html", - "help/messenger.html", - "help/rulesEditor.html", - "help/sendingPrefs.html", -); - while ($_ = ) { #print STDERR $_; @@ -60,10 +51,6 @@ printf OUTFILE "\tlocale/%s/%s\t(%s/%s)\n", $lang, $file, $lang, $file; } } - - foreach $file (@files) { - printf OUTFILE "\tlocale/%s/%s\t(%s/%s)\n", $lang, $file, $lang, $file; - } } close INFILE; diff -Nru enigmail-2.1.6+ds1/util/prepPostbox enigmail-2.2.4/util/prepPostbox --- enigmail-2.1.6+ds1/util/prepPostbox 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/prepPostbox 2020-10-01 13:32:58.000000000 +0000 @@ -30,30 +30,4 @@ mkdir -p $(dirname "$OUT") || exit 1 -if [ $TARGET = "tbird" ]; then - cat "$INP" > "$OUT" -elif [ "$doCiCuCc" = "1" ]; then - cat > "$OUT" <> $OUT || exit 1 -else - cat > "$OUT" <> $OUT || exit 1 -fi +cat "$INP" > "$OUT" || exit 1 diff -Nru enigmail-2.1.6+ds1/util/run-jsunit enigmail-2.2.4/util/run-jsunit --- enigmail-2.1.6+ds1/util/run-jsunit 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/run-jsunit 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -#!/bin/sh - -# Wrapper script for running jsunit test - -# 1: path to perl exe -# 2: to perl thunderbird exe -# 3 - n parameters to thunderbird - -TMPFILE=jsunit.result -perlpath=$1 -tbpath=$2 -shift 2 - -if [ "$OSTYPE" = "msys" ]; then - ## Special handling for Windows (msys): get native Windows path from msys path - cwd=$(pwd) - - cd $(dirname ${perlpath}) - plPath=$(pwd -W | sed 's/\//\\\\/g') - perlpath=$plPath\\\\$(basename ${perlpath}).exe - cd $cwd -fi - -PL_PATH=${perlpath} "${tbpath}" "$@" | tee ${TMPFILE} -echo "" - -if [ `grep -c "^TestResult: failed : 0" ${TMPFILE}` -eq 0 ]; then - echo "=========================================" - echo "Tests failed" - echo "Testfile: "`pwd`"/${TMPFILE}" - echo "=========================================" - echo "" - #grep -v Succeed ${TMPFILE} - egrep 'TestResult:|Error:|Succeed.*OK|Executing sub-test' ${TMPFILE} - echo "" - echo "Testfile: "`pwd`"/${TMPFILE}" - res=1 -else - echo "=========================================" - echo "All tests succeeded" - echo "=========================================" - rm -f ${TMPFILE} - res=0 -fi - -exit ${res} diff -Nru enigmail-2.1.6+ds1/util/run-tests.py enigmail-2.2.4/util/run-tests.py --- enigmail-2.1.6+ds1/util/run-tests.py 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/util/run-tests.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,213 +0,0 @@ -#!/usr/bin/env python3 -# -# 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 https://mozilla.org/MPL/2.0/. -# - - - -import sys -import os -import subprocess -import select -import re -import random - -class TestRunner: - IGNORED_TESTS = ['./ipc/tests'] - TEST_OUTPUT_FILE = 'test_output.log' - - @staticmethod - def is_test_file(file): - return file.endswith("-test.js") - - @staticmethod - def is_ignored(root, file): - for ign in TestRunner.IGNORED_TESTS: - if os.path.join(root, file).startswith(ign): - return True - return False - - @staticmethod - def all_tests(): - for root, dirs, files in os.walk("."): - for file in files: - if TestRunner.is_test_file(file) and not TestRunner.is_ignored(root, file): - yield os.path.join(root, file) - - def __init__(self, tbpath, tests): - self.tbpath = tbpath - self.tests = tests - - def reset_total(self): - self.total_executed = 0 - self.total_succeeded = 0 - self.total_failed = 0 - - def reset_stats(self): - self.executed = 0 - self.succeeded = 0 - self.failed = 0 - - def run(self): - with open(TestRunner.TEST_OUTPUT_FILE, 'w') as test_output: - self.test_output = test_output - self.reset_total() - for t in self.tests: - self.run_test(t) - return (self.total_executed, self.total_succeeded, self.total_failed) - - def start_poll(self, tsk): - poll = select.poll() - poll.register(tsk.stdout,select.POLLIN | select.POLLHUP) - poll.register(tsk.stderr,select.POLLIN | select.POLLHUP) - return poll - - def check_output(self, rfd, std, on): - if rfd == std.fileno(): - line = std.readline() - if len(line) > 0: - on(line[:-1]) - - def poll(self, pollc, events, poll, tsk, on_stdout, on_stderr): - for event in events: - (rfd,event) = event - if event & select.POLLIN: - self.check_output(rfd, tsk.stdout, on_stdout) - self.check_output(rfd, tsk.stderr, on_stderr) - if event & select.POLLHUP: - poll.unregister(rfd) - pollc = pollc - 1 - if pollc > 0: - events = poll.poll() - return (pollc, events) - - def polling(self, tsk, on_stdout, on_stderr): - pollc = 2 - poll = self.start_poll(tsk) - events = poll.poll() - while pollc > 0 and len(events) > 0: - (pollc, events) = self.poll(pollc, events, poll, tsk, on_stdout, on_stderr) - return tsk.wait() - - def is_jsunit(self, str): - return str.startswith("TestResult: ") or str.startswith("AssertionError: ") or str.startswith("RuntimeError: ") - - def extract_number(self, str): - return int(re.search('\d+', str).group(0)) - - def analyze_output(self, str): - if str.startswith("TestResult: executed :"): - self.executed = self.extract_number(str) - elif str.startswith("TestResult: succeeded:"): - self.succeeded = self.extract_number(str) - elif str.startswith("TestResult: failed :"): - self.failed = self.extract_number(str) - elif str.startswith("Succeed: "): - pass - else: - print(str) - - def write_to_log(self): - def ret(str): - if self.test_output: - self.test_output.write(str + "\n") - self.test_output.flush() - return ret - - def combine(self, left, right): - def ret(str): - left(str) - right(str) - return ret - - def reporting(self): - def ret(str): - if self.is_jsunit(str): - self.analyze_output(str) - return ret - - def add_stats(self): - self.total_executed = self.total_executed + self.executed - self.total_succeeded = self.total_succeeded + self.succeeded - self.total_failed = self.total_failed + self.failed - def spin_test(self, dir_name, tmp_file): - tsk = subprocess.Popen([self.tbpath, '--headless', '-jsunit', os.path.basename(tmp_file)], stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=dir_name) - ret = self.polling(tsk, self.combine(self.write_to_log(), self.reporting()), self.write_to_log()) - self.add_stats() - return ret - - def run_test(self, t): - test_name = os.path.basename(t) - dir_name = os.path.dirname(t) - tmp_file = t.replace(".js", "-loader.js") - print("running", t, test_name) - - self.reset_stats() - - try: - with open(tmp_file, 'w') as f: - f.write("do_subtest(\"" + test_name + "\");\n") - return self.spin_test(dir_name, tmp_file) - finally: - os.remove(tmp_file) - - -class OptionsEvaluator: - SEED_OPTION = ['--seed=', '-s='] - HELP_OPTION = ['-h', '--help'] - - @staticmethod - def print_help(): - print('Usage: run-tests.py [OPTION] [PATH TO TEST FILES]') - print('') - print('By default, this will run all the tests in random order based on a seed, which will be printed before the tests. You can rerun an order by using the -seed option below.') - print(' [OPTIONS]') - print(' --seed=\t Specify a seed to get the same shuffle order more than once') - print(' -h, --help\t Print usage') - - @staticmethod - def random_shuffle(seed, tests): - if seed: - random.seed(seed) - else: - seed = random.randint(0, sys.maxsize) - random.seed(seed) - print("Seed used for random shuffle: %d" % seed) - random.shuffle(tests) - return tests - - def evaluate(self): - for op in OptionsEvaluator.HELP_OPTION: - if op in sys.argv: - self.print_help() - sys.exit(1) - - if len(sys.argv) == 1: - return OptionsEvaluator.random_shuffle(False, [f for f in TestRunner.all_tests()]) - elif len(sys.argv) == 2: - tests = [f for f in TestRunner.all_tests()] - elif len(sys.argv) > 2: - tests = [f for f in sys.argv[2:]] - - if self.grab_seed(): - return OptionsEvaluator.random_shuffle(self.grab_seed(), tests) - else: - return OptionsEvaluator.random_shuffle(False, [f for f in sys.argv[1:]]) - - def grab_seed(self): - for op in OptionsEvaluator.SEED_OPTION: - for arg in sys.argv: - if op in arg: - return arg.split(op)[1] - return False - -if __name__ == '__main__': - tbpath = os.environ.get('TB_PATH', '/usr/bin/thunderbird') - tests = OptionsEvaluator().evaluate() - (ran, suc, fail) = TestRunner(tbpath, tests).run() - print("Ran " + str(ran) + " tests") - if fail > 0: - print(" Had " + str(fail) + " failures") - sys.exit(1) diff -Nru enigmail-2.1.6+ds1/uuid_enig.txt enigmail-2.2.4/uuid_enig.txt --- enigmail-2.1.6+ds1/uuid_enig.txt 2020-03-28 09:44:53.000000000 +0000 +++ enigmail-2.2.4/uuid_enig.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -uuid_enig.txt: UUIDs used by Enigmail --------------------------------------- - -5 Apr 2001 - -A block of 256 UUIDs was generated by running uuidgen, -ranging from -/* 847b3a00-7ab1-11d4-8f02-006008948af5 */ -to -/* 847b3aff-7ab1-11d4-8f02-006008948af5 */ -with the 7th and 8th hex digits varying from 00 to ff. - -Of these, the following UUIDs are being used as IIDs and CIDs: - -nsIEnigMail IID "847b3a00-7ab1-11d4-8f02-006008948af5" -nsIEnigMsgCompFields IID "847b3a30-7ab1-11d4-8f02-006008948af5" -