diff --git a/dev/Common/UtilsUser.js b/dev/Common/UtilsUser.js index 9f721f8de..0c683aa25 100644 --- a/dev/Common/UtilsUser.js +++ b/dev/Common/UtilsUser.js @@ -292,6 +292,8 @@ viewMessage = (oMessage, popup) => { class:'b-text-part' + (oMessage.pgpSigned() ? ' openpgp-signed' : '') + (oMessage.pgpEncrypted() ? ' openpgp-encrypted' : '') + + (oMessage.smimeSigned() ? ' smime-signed' : '') + + (oMessage.smimeEncrypted() ? ' smime-encrypted' : '') }); MessageUserStore.purgeCache(); } diff --git a/dev/Model/Message.js b/dev/Model/Message.js index 5a4476bfd..5b77de812 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -122,6 +122,10 @@ export class MessageModel extends AbstractModel { pgpEncrypted: null, pgpDecrypted: false, + smimeSigned: null, + smimeVerified: null, + smimeEncrypted: null, + // rfc8621 id: '', // threadId: '' diff --git a/dev/Stores/User/GnuPG.js b/dev/Stores/User/GnuPG.js index 3b6e5e8e3..a3374ced0 100644 --- a/dev/Stores/User/GnuPG.js +++ b/dev/Stores/User/GnuPG.js @@ -14,11 +14,11 @@ import { AskPopupView } from 'View/Popup/Ask'; import { Passphrases } from 'Storage/Passphrases'; const - askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => { + askPassphrase = async (privateKey, btnTxt = 'SIGN') => { const key = privateKey.id, pass = Passphrases.has(key) ? {password:Passphrases.get(key), remember:false} - : await AskPopupView.password('GnuPG key
' + key + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt); + : await AskPopupView.password('GnuPG key
' + key + ' ' + privateKey.emails[0], 'CRYPTO/'+btnTxt); pass && pass.remember && Passphrases.set(key, pass.password); return pass?.password; }, @@ -180,7 +180,7 @@ export const GnuPGUserStore = new class { uid: message.uid, partId: pgpInfo.partId, keyId: key.id, - passphrase: await askPassphrase(key, 'BUTTON_DECRYPT'), + passphrase: await askPassphrase(key, 'DECRYPT'), data: '' // message.plain() optional } if (null !== params.passphrase) { diff --git a/dev/Stores/User/OpenPGP.js b/dev/Stores/User/OpenPGP.js index 1d98e6328..3dacf945f 100644 --- a/dev/Stores/User/OpenPGP.js +++ b/dev/Stores/User/OpenPGP.js @@ -20,7 +20,7 @@ const key.emails.includes(query) || query == key.id || query == key.fingerprint ), - decryptKey = async (privateKey, btnTxt = 'LABEL_SIGN') => { + decryptKey = async (privateKey, btnTxt = 'SIGN') => { if (privateKey.key.isDecrypted()) { return privateKey.key; } @@ -29,7 +29,7 @@ const ? {password:Passphrases.get(key), remember:false} : await AskPopupView.password( 'OpenPGP.js key
' + key + ' ' + privateKey.emails[0], - 'OPENPGP/'+btnTxt + 'CRYPTO/'+btnTxt ); if (pass) { const passphrase = pass.password, @@ -210,7 +210,7 @@ export const OpenPGPUserStore = new class { } } if (privateKey) try { - const decryptedKey = await decryptKey(privateKey, 'BUTTON_DECRYPT'); + const decryptedKey = await decryptKey(privateKey, 'DECRYPT'); if (decryptedKey) { const publicKey = findOpenPGPKey(this.publicKeys, sender/*, sign*/); return await openpgp.decrypt({ diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index 2cdc85ef2..39a85c0db 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -1538,7 +1538,7 @@ export class ComposePopupView extends AbstractViewPopup { } else if (this.canSMimeSign()) { params.signCertificate = identity.smimeCertificate(); params.signPrivateKey = identity.smimeKey(); - const pass = await AskPopupView.password('S/MIME key', 'OPENPGP/LABEL_SIGN'); + const pass = await AskPopupView.password('S/MIME key', 'CRYPTO/SIGN'); params.signPassphrase = pass?.password; } } diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index 49b2fd4b4..b62c10c5c 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -600,7 +600,7 @@ export class MailMessageView extends AbstractViewRight { } /* if (result?.success) { - i18n('OPENPGP/GOOD_SIGNATURE', { + i18n('CRYPTO/GOOD_SIGNATURE', { USER: validKey.user + ' (' + validKey.id + ')' }); message.getText() @@ -610,7 +610,8 @@ export class MailMessageView extends AbstractViewRight { ? keyIds.map(item => item?.toHex?.()).filter(v => v).join(', ') : ''; - i18n('OPENPGP/ERROR', { + i18n('CRYPTO/ERROR', { + TYPE: 'OpenPGP', ERROR: 'message' }) + (additional ? ' (' + additional + ')' : ''); } @@ -618,4 +619,25 @@ export class MailMessageView extends AbstractViewRight { }); } + smimeVerify(/*self, event*/) { + const message = currentMessage(); + let data = message.smimeSigned(); // { partId: "1", micAlg: "pgp-sha256" } + if (data) { + data = { ...data }; // clone + data.folder = message.folder; + data.uid = message.uid; + data.bodyPart = data.bodyPart?.raw; + Remote.post('MessageSMimeVerify', null, data).then(response => { + if (response?.Result) { + if (response.Result.body) { + MimeToMessage(response.Result.body, message); + message.html() ? message.viewHtml() : message.viewPlain(); + response.Result.body = null; + } + message.smimeVerified(response.Result); + } + }); + } + } + } diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php index a4cc1b5b7..86117a6d5 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php @@ -328,8 +328,9 @@ class Message implements \JsonSerializable ]; } else if ($oPart->isSMimeSigned()) { $oMessage->smimeSigned = [ - 'sigPartId' => $oPart->PartID(), - 'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '' + 'partId' => $oPart->PartID(), + 'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '', + 'detached' => false ]; } } @@ -346,9 +347,9 @@ class Message implements \JsonSerializable ]; } else if ($oPart->isSMimeSigned()) { $oMessage->smimeSigned = [ - 'bodyPartId' => $oPart->SubParts()[0]->PartID(), - 'sigPartId' => $oPart->SubParts()[1]->PartID(), - 'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '' + 'partId' => $oPart->PartID(), + 'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '', + 'detached' => true ]; } /* @@ -549,6 +550,13 @@ class Message implements \JsonSerializable $result['pgpEncrypted'] = $this->pgpEncrypted; } + if ($this->smimeSigned) { + $result['smimeSigned'] = $this->smimeSigned; + } + if ($this->smimeEncrypted) { + $result['smimeEncrypted'] = $this->smimeEncrypted; + } + if ($this->aThreadUIDs) { $result['threads'] = $this->aThreadUIDs; } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php index d06d0aead..f065ec1a0 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php @@ -7,7 +7,6 @@ use RainLoop\Exceptions\ClientException; use RainLoop\Model\Account; use RainLoop\Notifications; use MailSo\Imap\SequenceSet; -use MailSo\Imap\Enumerations\FetchType; use MailSo\Imap\Enumerations\MessageFlag; use MailSo\Mime\Part as MimePart; use MailSo\Mime\Enumerations\Header as MimeEnumHeader; @@ -650,122 +649,6 @@ trait Messages return $this->DefaultResponse($aAttachments); } - /** - * https://datatracker.ietf.org/doc/html/rfc3156#section-5 - */ - public function DoMessagePgpVerify() : array - { - $sFolderName = $this->GetActionParam('folder', ''); - $iUid = (int) $this->GetActionParam('uid', 0); - $sBodyPart = $this->GetActionParam('bodyPart', ''); - $sSigPart = $this->GetActionParam('sigPart', ''); - if ($sBodyPart) { - $result = [ - 'text' => \preg_replace('/\\r?\\n/su', "\r\n", $sBodyPart), - 'signature' => $this->GetActionParam('sigPart', '') - ]; - } else { - $sBodyPartId = $this->GetActionParam('bodyPartId', ''); - $sSigPartId = $this->GetActionParam('sigPartId', ''); -// $sMicAlg = $this->GetActionParam('micAlg', ''); - - $oAccount = $this->initMailClientConnection(); - - $oImapClient = $this->ImapClient(); - $oImapClient->FolderExamine($sFolderName); - - $aParts = [ - FetchType::BODY_PEEK.'['.$sBodyPartId.']', - // An empty section specification refers to the entire message, including the header. - // But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME]. - FetchType::BODY_PEEK.'['.$sBodyPartId.'.MIME]' - ]; - if ($sSigPartId) { - $aParts[] = FetchType::BODY_PEEK.'['.$sSigPartId.']'; - } - - $oFetchResponse = $oImapClient->Fetch($aParts, $iUid, true)[0]; - - $sBodyMime = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.'.MIME]'); - if ($sSigPartId) { - $result = [ - 'text' => \preg_replace('/\\r?\\n/su', "\r\n", - $sBodyMime . $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']') - ), - 'signature' => preg_replace('/[^\x00-\x7F]/', '', - $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sSigPartId.']') - ) - ]; - } else { - // clearsigned text - $result = [ - 'text' => $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']'), - 'signature' => '' - ]; - $decode = (new \MailSo\Mime\HeaderCollection($sBodyMime))->ValueByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING); - if ('base64' === $decode) { - $result['text'] = \base64_decode($result['text']); - } else if ('quoted-printable' === $decode) { - $result['text'] = \quoted_printable_decode($result['text']); - } - } - } - - // Try by default as OpenPGP.js sets useGnuPG to 0 - if ($this->GetActionParam('tryGnuPG', 1)) { - $GPG = $this->GnuPG(); - if ($GPG) { - $info = $this->GnuPG()->verify($result['text'], $result['signature']); -// $info = $this->GnuPG()->verifyStream($fp, $result['signature']); - if (empty($info[0])) { - $result = false; - } else { - $info = $info[0]; - - /** - * https://code.woboq.org/qt5/include/gpg-error.h.html - * status: - 0 = GPG_ERR_NO_ERROR - 1 = GPG_ERR_GENERAL - 9 = GPG_ERR_NO_PUBKEY - 117440513 = General error - 117440520 = Bad signature - */ - - $summary = \defined('GNUPG_SIGSUM_VALID') ? [ - GNUPG_SIGSUM_VALID => 'The signature is fully valid.', - GNUPG_SIGSUM_GREEN => 'The signature is good but one might want to display some extra information. Check the other bits.', - GNUPG_SIGSUM_RED => 'The signature is bad. It might be useful to check other bits and display more information, i.e. a revoked certificate might not render a signature invalid when the message was received prior to the cause for the revocation.', - GNUPG_SIGSUM_KEY_REVOKED => 'The key or at least one certificate has been revoked.', - GNUPG_SIGSUM_KEY_EXPIRED => 'The key or one of the certificates has expired. It is probably a good idea to display the date of the expiration.', - GNUPG_SIGSUM_SIG_EXPIRED => 'The signature has expired.', - GNUPG_SIGSUM_KEY_MISSING => 'Can’t verify due to a missing key or certificate.', - GNUPG_SIGSUM_CRL_MISSING => 'The CRL (or an equivalent mechanism) is not available.', - GNUPG_SIGSUM_CRL_TOO_OLD => 'Available CRL is too old.', - GNUPG_SIGSUM_BAD_POLICY => 'A policy requirement was not met.', - GNUPG_SIGSUM_SYS_ERROR => 'A system error occurred.', -// GNUPG_SIGSUM_TOFU_CONFLICT = 'A TOFU conflict was detected.', - ] : []; - - // Verified, so no need to return $result['text'] and $result['signature'] - $result = [ - 'fingerprint' => $info['fingerprint'], - 'validity' => $info['validity'], - 'status' => $info['status'], - 'summary' => $info['summary'], - 'message' => \implode("\n", \array_filter($summary, function($k) use ($info) { - return $info['summary'] & $k; - }, ARRAY_FILTER_USE_KEY)) - ]; - } - } else { - $result = false; - } - } - - return $this->DefaultResponse($result); - } - /** * @throws \RainLoop\Exceptions\ClientException * @throws \MailSo\Net\Exceptions\ConnectionException diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php index 9cdc120f4..1c4722413 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php @@ -5,6 +5,8 @@ namespace RainLoop\Actions; use SnappyMail\PGP\Backup; use SnappyMail\PGP\Keyservers; use SnappyMail\PGP\GnuPG; +use MailSo\Imap\Enumerations\FetchType; +use MailSo\Mime\Enumerations\Header as MimeEnumHeader; trait Pgp { @@ -289,4 +291,119 @@ trait Pgp $keyId = $this->GetActionParam('keyId', ''); return $this->DefaultResponse(($key && $keyId && Backup::PGPKey($key, $keyId))); } + + /** + * https://datatracker.ietf.org/doc/html/rfc3156#section-5 + */ + public function DoMessagePgpVerify() : array + { + $sFolderName = $this->GetActionParam('folder', ''); + $iUid = (int) $this->GetActionParam('uid', 0); + $sBodyPart = $this->GetActionParam('bodyPart', ''); + $sSigPart = $this->GetActionParam('sigPart', ''); + if ($sBodyPart) { + $result = [ + 'text' => \preg_replace('/\\r?\\n/su', "\r\n", $sBodyPart), + 'signature' => $this->GetActionParam('sigPart', '') + ]; + } else { + $sBodyPartId = $this->GetActionParam('bodyPartId', ''); + $sSigPartId = $this->GetActionParam('sigPartId', ''); +// $sMicAlg = $this->GetActionParam('micAlg', ''); + + $this->initMailClientConnection(); + $oImapClient = $this->ImapClient(); + $oImapClient->FolderExamine($sFolderName); + + $aParts = [ + FetchType::BODY_PEEK.'['.$sBodyPartId.']', + // An empty section specification refers to the entire message, including the header. + // But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME]. + FetchType::BODY_PEEK.'['.$sBodyPartId.'.MIME]' + ]; + if ($sSigPartId) { + $aParts[] = FetchType::BODY_PEEK.'['.$sSigPartId.']'; + } + + $oFetchResponse = $oImapClient->Fetch($aParts, $iUid, true)[0]; + + $sBodyMime = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.'.MIME]'); + if ($sSigPartId) { + $result = [ + 'text' => \preg_replace('/\\r?\\n/su', "\r\n", + $sBodyMime . $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']') + ), + 'signature' => preg_replace('/[^\x00-\x7F]/', '', + $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sSigPartId.']') + ) + ]; + } else { + // clearsigned text + $result = [ + 'text' => $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']'), + 'signature' => '' + ]; + $decode = (new \MailSo\Mime\HeaderCollection($sBodyMime))->ValueByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING); + if ('base64' === $decode) { + $result['text'] = \base64_decode($result['text']); + } else if ('quoted-printable' === $decode) { + $result['text'] = \quoted_printable_decode($result['text']); + } + } + } + + // Try by default as OpenPGP.js sets useGnuPG to 0 + if ($this->GetActionParam('tryGnuPG', 1)) { + $GPG = $this->GnuPG(); + if ($GPG) { + $info = $this->GnuPG()->verify($result['text'], $result['signature']); +// $info = $this->GnuPG()->verifyStream($fp, $result['signature']); + if (empty($info[0])) { + $result = false; + } else { + $info = $info[0]; + + /** + * https://code.woboq.org/qt5/include/gpg-error.h.html + * status: + 0 = GPG_ERR_NO_ERROR + 1 = GPG_ERR_GENERAL + 9 = GPG_ERR_NO_PUBKEY + 117440513 = General error + 117440520 = Bad signature + */ + + $summary = \defined('GNUPG_SIGSUM_VALID') ? [ + GNUPG_SIGSUM_VALID => 'The signature is fully valid.', + GNUPG_SIGSUM_GREEN => 'The signature is good but one might want to display some extra information. Check the other bits.', + GNUPG_SIGSUM_RED => 'The signature is bad. It might be useful to check other bits and display more information, i.e. a revoked certificate might not render a signature invalid when the message was received prior to the cause for the revocation.', + GNUPG_SIGSUM_KEY_REVOKED => 'The key or at least one certificate has been revoked.', + GNUPG_SIGSUM_KEY_EXPIRED => 'The key or one of the certificates has expired. It is probably a good idea to display the date of the expiration.', + GNUPG_SIGSUM_SIG_EXPIRED => 'The signature has expired.', + GNUPG_SIGSUM_KEY_MISSING => 'Can’t verify due to a missing key or certificate.', + GNUPG_SIGSUM_CRL_MISSING => 'The CRL (or an equivalent mechanism) is not available.', + GNUPG_SIGSUM_CRL_TOO_OLD => 'Available CRL is too old.', + GNUPG_SIGSUM_BAD_POLICY => 'A policy requirement was not met.', + GNUPG_SIGSUM_SYS_ERROR => 'A system error occurred.', +// GNUPG_SIGSUM_TOFU_CONFLICT = 'A TOFU conflict was detected.', + ] : []; + + // Verified, so no need to return $result['text'] and $result['signature'] + $result = [ + 'fingerprint' => $info['fingerprint'], + 'validity' => $info['validity'], + 'status' => $info['status'], + 'summary' => $info['summary'], + 'message' => \implode("\n", \array_filter($summary, function($k) use ($info) { + return $info['summary'] & $k; + }, ARRAY_FILTER_USE_KEY)) + ]; + } + } else { + $result = false; + } + } + + return $this->DefaultResponse($result); + } } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php index 52a157397..cffe29db9 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php @@ -4,6 +4,7 @@ namespace RainLoop\Actions; use SnappyMail\SMime\OpenSSL; use SnappyMail\SMime\Certificate; +use MailSo\Imap\Enumerations\FetchType; trait SMime { @@ -38,4 +39,41 @@ trait SMime $result = $cert->createSelfSigned('demo'); return $this->DefaultResponse($result ?: false); } + + public function DoMessageSMimeVerify() : array + { + $sFolderName = $this->GetActionParam('folder', ''); + $iUid = (int) $this->GetActionParam('uid', 0); + $sPartId = $this->GetActionParam('partId', ''); + $sMicAlg = $this->GetActionParam('micAlg', ''); + $bDetached = !empty($this->GetActionParam('detached', 0)); + + $this->initMailClientConnection(); + $oImapClient = $this->ImapClient(); + $oImapClient->FolderExamine($sFolderName); + + if ('TEXT' === $sPartId) { + $oFetchResponse = $oImapClient->Fetch([ + FetchType::BODY_PEEK.'['.$sPartId.']', + // An empty section specification refers to the entire message, including the header. + // But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME]. + FetchType::BODY_HEADER_PEEK + ], $iUid, true)[0]; + $sBody = $oFetchResponse->GetFetchValue(FetchType::BODY_HEADER); + } else { + $oFetchResponse = $oImapClient->Fetch([ + FetchType::BODY_PEEK.'['.$sPartId.']', + // An empty section specification refers to the entire message, including the header. + // But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME]. + FetchType::BODY_PEEK.'['.$sPartId.'.MIME]' + ], $iUid, true)[0]; + $sBody = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sPartId.'.MIME]'); + } + $sBody .= $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sPartId.']'); + + $SMIME = new \SnappyMail\SMime\OpenSSL; + $result = $SMIME->verify($sBody, null, !$bDetached); + + return $this->DefaultResponse($result); + } } diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/file/temporary.php b/snappymail/v/0.0.0/app/libraries/snappymail/file/temporary.php index 90ef61104..8b604f020 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/file/temporary.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/file/temporary.php @@ -18,7 +18,7 @@ class Temporary // throw new \Exception("Failed to access directory {$tmpdir}"); } if ($prefix) { - $this->filename = \tempnam($tmpdir, $name); + $this->filename = @\tempnam($tmpdir, $name); } else { $this->filename = $tmpdir . '/' . $name; } @@ -31,7 +31,7 @@ class Temporary function __toString() : string { - $this->filename; + return $this->filename; } public function filename() : string diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php index 14f1cf4b8..c27892e3f 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php @@ -4,6 +4,10 @@ namespace SnappyMail\SMime; use SnappyMail\File\Temporary; +/** + * PHP 8.3.0 PKCS7_NOOLDMIMETYPE + */ + class OpenSSL { private array $headers = []; @@ -45,45 +49,59 @@ class OpenSSL } } - public function decrypt(string $data) : ?string + public function decrypt(/*string|Temporary*/ $input) : ?string { - $input = new Temporary('smimein-'); + if (\is_string($input)) { + $tmp = new Temporary('smimein-'); + if (!$tmp->putContents($input)) { + return null; + } + $input = $tmp; + } $output = new Temporary('smimeout-'); - return ($input->putContents($data) && \openssl_pkcs7_decrypt( + if (!\openssl_pkcs7_decrypt( $input->filename(), $output->filename(), $this->certificate, $this->privateKey - )) ? $output->getContents() : null; + )) { + throw new \RuntimeException('OpenSSL decrypt: ' . \openssl_error_string()); + } + return $output->getContents(); } public function encrypt(/*string|Temporary*/$input, array $certificates) : ?string { if (\is_string($input)) { - $input = new Temporary('smimein-'); - if (!$input->putContents($data)) { + $tmp = new Temporary('smimein-'); + if (!$tmp->putContents($input)) { return null; } + $input = $tmp; } $output = new Temporary('smimeout-'); $flags = \defined('PKCS7_NOOLDMIMETYPE') ? \PKCS7_NOOLDMIMETYPE : 0; - return \openssl_pkcs7_encrypt( + if (!\openssl_pkcs7_encrypt( $input->filename(), $output->filename(), $certificates, $this->headers, $flags, $this->cipher_algo - ) ? $output->getContents() : null; + )) { + throw new \RuntimeException('OpenSSL encrypt: ' . \openssl_error_string()); + } + return $output->getContents(); } public function sign(/*string|Temporary*/$input, bool $detached = true) { if (\is_string($input)) { - $input = new Temporary('smimein-'); - if (!$input->putContents($data)) { + $tmp = new Temporary('smimein-'); + if (!$tmp->putContents($input)) { return null; } + $input = $tmp; } $output = new Temporary('smimeout-'); if (!\openssl_pkcs7_sign( @@ -135,22 +153,31 @@ class OpenSSL throw new \RuntimeException('OpenSSL sign: failed to find p7s'); } - public function verify(string $data, $signers_certificates_filename = null) + public function verify(/*string|Temporary*/$input, ?string $signers_certificates_filename = null, bool $returnBody) { if (\is_string($input)) { - $input = new Temporary('smimein-'); - if (!$input->putContents($data)) { + $tmp = new Temporary('smimein-'); + if (!$tmp->putContents($input)) { return null; } + $input = $tmp; } - return true === \openssl_pkcs7_verify( + $output = $returnBody ? new Temporary('smimeout-') : null; + if (true !== \openssl_pkcs7_verify( $input->filename(), - $flags = 0, +// $flags = 0, // \PKCS7_NOVERIFY | \PKCS7_NOCHAIN | \PKCS7_NOSIGS + \PKCS7_NOVERIFY | \PKCS7_NOCHAIN | \PKCS7_NOSIGS, $signers_certificates_filename ?: null, $ca_info = [], $this->untrusted_certificates_filename, - $content = null, + $output ? $output->filename() : null, $output_filename = null - ); + )) { + throw new \RuntimeException('OpenSSL verify: ' . \openssl_error_string()); + } + return [ + 'body' => $output ? $output->getContents() : null, + 'success' => true + ]; } } diff --git a/snappymail/v/0.0.0/app/localization/ar-SA/user.json b/snappymail/v/0.0.0/app/localization/ar-SA/user.json index d6996273f..8af947d2c 100644 --- a/snappymail/v/0.0.0/app/localization/ar-SA/user.json +++ b/snappymail/v/0.0.0/app/localization/ar-SA/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "في حال بدء العملية , فلا يمكن ايقافها او الغائها", "TITLE_CLEARING_PROCESS": "...يتم دمج المجلد" }, + "CRYPTO": { + "SIGN": "تسجيل", + "ENCRYPT": "تشفير", + "DECRYPT": "فك تشفير", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "توقيع جيد من %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح", "POPUP_IMPORT_BUTTON": "استيراد", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGP توليد مفتاح", "POPUP_GENERATE_BUTTON": "قم بالتوليد", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "تسجيل", - "LABEL_ENCRYPT": "تشفير", - "BUTTON_DECRYPT": "فك تشفير", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signed message", "ENCRYPTED_MESSAGE": "OpenPGP encrypted message", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "توقيع جيد من %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME signed message", + "ENCRYPTED_MESSAGE": "S\/MIME encrypted message" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "إنشاء عامل تصفية؟", diff --git a/snappymail/v/0.0.0/app/localization/bg-BG/user.json b/snappymail/v/0.0.0/app/localization/bg-BG/user.json index 5e57fdcf9..03b60d34d 100644 --- a/snappymail/v/0.0.0/app/localization/bg-BG/user.json +++ b/snappymail/v/0.0.0/app/localization/bg-BG/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Веднъж започнат, този процес не може да бъде прекратен или отказан.", "TITLE_CLEARING_PROCESS": "Прочистване на папката..." }, + "CRYPTO": { + "SIGN": "Подпиши", + "ENCRYPT": "Шифровай", + "DECRYPT": "Дешифрирай", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Валиден подпис за %USER%", + "ERROR": "%TYPE% грешка: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ", "POPUP_IMPORT_BUTTON": "Внеси", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Създаване на OpenPGP ключове", "POPUP_GENERATE_BUTTON": "Създай", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Подпиши", - "LABEL_ENCRYPT": "Шифровай", - "BUTTON_DECRYPT": "Дешифрирай", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Подписано с OpenPGP", "ENCRYPTED_MESSAGE": "Шифровано с OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Валиден подпис за %USER%", - "ERROR": "OpenPGP грешка: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Подписано с S\/MIME", + "ENCRYPTED_MESSAGE": "Шифровано с S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Създай филтър?", diff --git a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json index 45e56eed6..de2cbb58c 100644 --- a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json +++ b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Tento proces není možné přerušit.", "TITLE_CLEARING_PROCESS": "Odstraňuje se složka..." }, + "CRYPTO": { + "SIGN": "Podpis", + "ENCRYPT": "Šifrování", + "DECRYPT": "Dešifrovat", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Ověřený podpis od %USER%", + "ERROR": "%TYPE% chyba: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import OpenPGP klíče", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generovat OpenPGP klíče", "POPUP_GENERATE_BUTTON": "Generovat", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Podpis", - "LABEL_ENCRYPT": "Šifrování", - "BUTTON_DECRYPT": "Dešifrovat", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Zpráva podepsaná OpenPGP", "ENCRYPTED_MESSAGE": "Zpráva šifrovaná OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Ověřený podpis od %USER%", - "ERROR": "OpenPGP chyba: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Zpráva podepsaná S\/MIME", + "ENCRYPTED_MESSAGE": "Zpráva šifrovaná S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Vytvořit filtr?", diff --git a/snappymail/v/0.0.0/app/localization/da-DK/user.json b/snappymail/v/0.0.0/app/localization/da-DK/user.json index 2c04a71ef..a1d7cea01 100644 --- a/snappymail/v/0.0.0/app/localization/da-DK/user.json +++ b/snappymail/v/0.0.0/app/localization/da-DK/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Handlingen kan ikke afbrydes når den er startet.", "TITLE_CLEARING_PROCESS": "Tømmer mappe..." }, + "CRYPTO": { + "SIGN": "Signér", + "ENCRYPT": "Krypter", + "DECRYPT": "Dekrypter", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Accepteret signatur for %USER\"", + "ERROR": "%TYPE% fejl: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle", "POPUP_IMPORT_BUTTON": "Importer", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generér OpenPGP nøgler", "POPUP_GENERATE_BUTTON": "Generér", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Signér", - "LABEL_ENCRYPT": "Krypter", - "BUTTON_DECRYPT": "Dekrypter", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signeret meddelelse", "ENCRYPTED_MESSAGE": "OpenPGP krypteret meddelelse", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Accepteret signatur for %USER\"", - "ERROR": "OpenPGP fejl: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME signeret meddelelse", + "ENCRYPTED_MESSAGE": "S\/MIME krypteret meddelelse" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Opret filter?", diff --git a/snappymail/v/0.0.0/app/localization/de-DE/user.json b/snappymail/v/0.0.0/app/localization/de-DE/user.json index 6dc3d3883..3f118bffc 100644 --- a/snappymail/v/0.0.0/app/localization/de-DE/user.json +++ b/snappymail/v/0.0.0/app/localization/de-DE/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Einmal begonnen, kann dieser Vorgang nicht mehr abgebrochen werden.", "TITLE_CLEARING_PROCESS": "Ordner wird gelöscht ..." }, + "CRYPTO": { + "SIGN": "Unterschrift", + "ENCRYPT": "Verschlüsseln", + "DECRYPT": "Entschlüsseln", + "VERIFY": "Überprüfen", + "GOOD_SIGNATURE": "Gültige Unterschrift von %USER%", + "ERROR": "%TYPE%-Fehler: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren", "POPUP_IMPORT_BUTTON": "Importieren", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGP-Schlüssel generieren", "POPUP_GENERATE_BUTTON": "Generieren", "LABEL_KEY_TYPE": "Typ", - "LABEL_SIGN": "Unterschrift", - "LABEL_ENCRYPT": "Verschlüsseln", - "BUTTON_DECRYPT": "Entschlüsseln", - "BUTTON_VERIFY": "Überprüfen", "SIGNED_MESSAGE": "OpenPGP-signierte Nachricht", "ENCRYPTED_MESSAGE": "OpenPGP-verschlüsselte Nachricht", "STORE_IN_GNUPG": "Auf dem Server als GnuPG speichern", - "BACKUP_ON_SERVER": "Auf dem Server verschlüsselt speichern", - "GOOD_SIGNATURE": "Gültige Unterschrift von %USER%", - "ERROR": "OpenPGP-Fehler: %ERROR%" + "BACKUP_ON_SERVER": "Auf dem Server verschlüsselt speichern" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME-signierte Nachricht", + "ENCRYPTED_MESSAGE": "S\/MIME-verschlüsselte Nachricht" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Filter erstellen?", diff --git a/snappymail/v/0.0.0/app/localization/el-GR/user.json b/snappymail/v/0.0.0/app/localization/el-GR/user.json index c1b9044e7..f5c3515ff 100644 --- a/snappymail/v/0.0.0/app/localization/el-GR/user.json +++ b/snappymail/v/0.0.0/app/localization/el-GR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Αφού ξεκινήσει, η διαδικασία δεν σταματά ή ακυρώνεται.", "TITLE_CLEARING_PROCESS": "Διαγραφή όλων των μηνυμάτων στο φάκελο..." }, + "CRYPTO": { + "SIGN": "Υπογραφή", + "ENCRYPT": "Κρυπτογράφηση", + "DECRYPT": "Αποκρυπτογράφηση", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP", "POPUP_IMPORT_BUTTON": "Εισαγωγή", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Δημιουργία κλειδιών OpenPGP", "POPUP_GENERATE_BUTTON": "Δημιουργία", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Υπογραφή", - "LABEL_ENCRYPT": "Κρυπτογράφηση", - "BUTTON_DECRYPT": "Αποκρυπτογράφηση", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Μήνυμα υπογεγραμμένο με OpenPGP", "ENCRYPTED_MESSAGE": "Μήνυμα κωδικοποιημένο με OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Μήνυμα υπογεγραμμένο με S\/MIME", + "ENCRYPTED_MESSAGE": "Μήνυμα κωδικοποιημένο με S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Δημιουργία φίλτρου;", diff --git a/snappymail/v/0.0.0/app/localization/en-GB/user.json b/snappymail/v/0.0.0/app/localization/en-GB/user.json index 5e177bb58..ce31338f7 100644 --- a/snappymail/v/0.0.0/app/localization/en-GB/user.json +++ b/snappymail/v/0.0.0/app/localization/en-GB/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or cancelled.", "TITLE_CLEARING_PROCESS": "Purging the folder..." }, + "CRYPTO": { + "SIGN": "Sign", + "ENCRYPT": "Encrypt", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generate OpenPGP key pair", "POPUP_GENERATE_BUTTON": "Generate", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Sign", - "LABEL_ENCRYPT": "Encrypt", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signed message", "ENCRYPTED_MESSAGE": "OpenPGP encrypted message", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME signed message", + "ENCRYPTED_MESSAGE": "S\/MIME encrypted message" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/en/user.json b/snappymail/v/0.0.0/app/localization/en/user.json index be08a98e3..5f432f9b2 100644 --- a/snappymail/v/0.0.0/app/localization/en/user.json +++ b/snappymail/v/0.0.0/app/localization/en/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or canceled.", "TITLE_CLEARING_PROCESS": "Purging the folder..." }, + "CRYPTO": { + "SIGN": "Sign", + "ENCRYPT": "Encrypt", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generate OpenPGP key pair", "POPUP_GENERATE_BUTTON": "Generate", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Sign", - "LABEL_ENCRYPT": "Encrypt", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signed message", "ENCRYPTED_MESSAGE": "OpenPGP encrypted message", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S/MIME signed message", + "ENCRYPTED_MESSAGE": "S/MIME encrypted message" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/es-ES/user.json b/snappymail/v/0.0.0/app/localization/es-ES/user.json index e1721ef8f..c82a251d2 100644 --- a/snappymail/v/0.0.0/app/localization/es-ES/user.json +++ b/snappymail/v/0.0.0/app/localization/es-ES/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Una vez comenzado el proceso no se puede abortar ni cancelar.", "TITLE_CLEARING_PROCESS": "Purgando carpeta..." }, + "CRYPTO": { + "SIGN": "Firmar", + "ENCRYPT": "Encriptar", + "DECRYPT": "Descifrar", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Buena firma de %USER%", + "ERROR": "Error %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importar clave OpenPGP", "POPUP_IMPORT_BUTTON": "Importar", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generar clave OpenPGP", "POPUP_GENERATE_BUTTON": "Generar", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Firmar", - "LABEL_ENCRYPT": "Encriptar", - "BUTTON_DECRYPT": "Descifrar", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Mensaje firmado mediante OpenPGP", "ENCRYPTED_MESSAGE": "Mensaje cifrado mediante OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Buena firma de %USER%", - "ERROR": "Error OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Mensaje firmado mediante S\/MIME", + "ENCRYPTED_MESSAGE": "Mensaje cifrado mediante S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "¿Crear un filtro?", diff --git a/snappymail/v/0.0.0/app/localization/et-EE/user.json b/snappymail/v/0.0.0/app/localization/et-EE/user.json index 975803e4a..096812533 100644 --- a/snappymail/v/0.0.0/app/localization/et-EE/user.json +++ b/snappymail/v/0.0.0/app/localization/et-EE/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Juba alustatud protsessi ei saa tühistada või katkestada.", "TITLE_CLEARING_PROCESS": "Tühjendan kausta..." }, + "CRYPTO": { + "SIGN": "Allkirjasta", + "ENCRYPT": "Krüpteeri", + "DECRYPT": "Dekrüpteeri", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Korralik signatuur kasutajalt %USER%", + "ERROR": "%TYPE% viga: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Impordi OpenPGP võti", "POPUP_IMPORT_BUTTON": "Impordi", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Genereeri OpenPGP võtmed", "POPUP_GENERATE_BUTTON": "Genereeri", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Allkirjasta", - "LABEL_ENCRYPT": "Krüpteeri", - "BUTTON_DECRYPT": "Dekrüpteeri", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP abil signeeritud kiri", "ENCRYPTED_MESSAGE": "OpenPGP abil krüpteeritud kiri", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Korralik signatuur kasutajalt %USER%", - "ERROR": "OpenPGP viga: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME abil signeeritud kiri", + "ENCRYPTED_MESSAGE": "S\/MIME abil krüpteeritud kiri" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Filtri loomine", diff --git a/snappymail/v/0.0.0/app/localization/eu/user.json b/snappymail/v/0.0.0/app/localization/eu/user.json index 813f93ea7..6e75cf890 100644 --- a/snappymail/v/0.0.0/app/localization/eu/user.json +++ b/snappymail/v/0.0.0/app/localization/eu/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Behin hasita, ekintza hau ezin da gelditu edo utzi.", "TITLE_CLEARING_PROCESS": "Karpeta garbitzen..." }, + "CRYPTO": { + "SIGN": "Sinatu", + "ENCRYPT": "Zifratu", + "DECRYPT": "Deszifratu", + "VERIFY": "Egiaztatu", + "GOOD_SIGNATURE": "%USER%-en sinadura egokia", + "ERROR": "%TYPE% errorea: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa", "POPUP_IMPORT_BUTTON": "Inportatu", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Sortu OpenPGP gako parea", "POPUP_GENERATE_BUTTON": "Sortu", "LABEL_KEY_TYPE": "Mota", - "LABEL_SIGN": "Sinatu", - "LABEL_ENCRYPT": "Zifratu", - "BUTTON_DECRYPT": "Deszifratu", - "BUTTON_VERIFY": "Egiaztatu", "SIGNED_MESSAGE": "OpenPGP sinatutako mezua", "ENCRYPTED_MESSAGE": "OpenPGP zifratutako mezua", "STORE_IN_GNUPG": "Zerbitzarian gorden GnuPG-n", - "BACKUP_ON_SERVER": "Zerbitzarian gorde (zifratuta)", - "GOOD_SIGNATURE": "%USER%-en sinadura egokia", - "ERROR": "OpenPGP errorea: %ERROR%" + "BACKUP_ON_SERVER": "Zerbitzarian gorde (zifratuta)" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME sinatutako mezua", + "ENCRYPTED_MESSAGE": "S\/MIME zifratutako mezua" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Sortu iragazkia?", diff --git a/snappymail/v/0.0.0/app/localization/fa-IR/user.json b/snappymail/v/0.0.0/app/localization/fa-IR/user.json index ae43dc37e..90442f4f1 100644 --- a/snappymail/v/0.0.0/app/localization/fa-IR/user.json +++ b/snappymail/v/0.0.0/app/localization/fa-IR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "زمانی که این عملیات شروع شود قابل لغو یا انصراف نیست.", "TITLE_CLEARING_PROCESS": "خالی کردن شاخه..." }, + "CRYPTO": { + "SIGN": "امضاء", + "ENCRYPT": "رمزنگاری", + "DECRYPT": "رمزگشایی", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "امضای صحیح از %USER%", + "ERROR": "خطای %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP", "POPUP_IMPORT_BUTTON": "وارد‌کردن", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "تولید کلید‌های OpenPGP", "POPUP_GENERATE_BUTTON": "تولید", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "امضاء", - "LABEL_ENCRYPT": "رمزنگاری", - "BUTTON_DECRYPT": "رمزگشایی", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "پیام توسط OpenPGP امضاء شد", "ENCRYPTED_MESSAGE": "پیام توسط OpenPGP رمزنگاری شد", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "امضای صحیح از %USER%", - "ERROR": "خطای OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "پیام توسط S\/MIME امضاء شد", + "ENCRYPTED_MESSAGE": "پیام توسط S\/MIME رمزنگاری شد" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "یک فیلتر ایجاد شود؟", diff --git a/snappymail/v/0.0.0/app/localization/fi-FI/user.json b/snappymail/v/0.0.0/app/localization/fi-FI/user.json index 96147ac9e..f016cbd14 100644 --- a/snappymail/v/0.0.0/app/localization/fi-FI/user.json +++ b/snappymail/v/0.0.0/app/localization/fi-FI/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Tätä toimintoa ei voi peruuttaa.", "TITLE_CLEARING_PROCESS": "Tyhjennetään kansiota..." }, + "CRYPTO": { + "SIGN": "Allekirjoita", + "ENCRYPT": "Salaa", + "DECRYPT": "Pura", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Oikea allekirjoitus %USER% lle", + "ERROR": "%TYPE% virhe: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Tuo OpenPGP avain", "POPUP_IMPORT_BUTTON": "Tuo", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Luo OpenPGP avain", "POPUP_GENERATE_BUTTON": "Generoi", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Allekirjoita", - "LABEL_ENCRYPT": "Salaa", - "BUTTON_DECRYPT": "Pura", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP allekirjoitettu viesti", "ENCRYPTED_MESSAGE": "OpenPGP salattu visti", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Oikea allekirjoitus %USER% lle", - "ERROR": "OpenPGP virhe: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME allekirjoitettu viesti", + "ENCRYPTED_MESSAGE": "S\/MIME salattu visti" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Luo suodatin?", diff --git a/snappymail/v/0.0.0/app/localization/fr-FR/user.json b/snappymail/v/0.0.0/app/localization/fr-FR/user.json index dd9c442c4..a339a7d04 100644 --- a/snappymail/v/0.0.0/app/localization/fr-FR/user.json +++ b/snappymail/v/0.0.0/app/localization/fr-FR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Une fois lancé, le processus ne peut pas être interrompu ou annulé.", "TITLE_CLEARING_PROCESS": "Purge du dossier..." }, + "CRYPTO": { + "SIGN": "Signer", + "ENCRYPT": "Chiffer", + "DECRYPT": "Déchiffrer", + "VERIFY": "Vérifier", + "GOOD_SIGNATURE": "Signature valide pour %USER%", + "ERROR": "Erreur %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importer la clef OpenPGP", "POPUP_IMPORT_BUTTON": "Importer", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Générer les clés OpenPGP", "POPUP_GENERATE_BUTTON": "Générer", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Signer", - "LABEL_ENCRYPT": "Chiffer", - "BUTTON_DECRYPT": "Déchiffrer", - "BUTTON_VERIFY": "Vérifier", "SIGNED_MESSAGE": "Message signé par OpenPGP", "ENCRYPTED_MESSAGE": "Message chiffré par OpenPGP", "STORE_IN_GNUPG": "Stocker sur le serveur dans GnuPG", - "BACKUP_ON_SERVER": "Stocker (chiffré) sur le serveur", - "GOOD_SIGNATURE": "Signature valide pour %USER%", - "ERROR": "Erreur OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Stocker (chiffré) sur le serveur" + }, + "SMIME": { + "SIGNED_MESSAGE": "Message signé par S\/MIME", + "ENCRYPTED_MESSAGE": "Message chiffré par S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Créer un filtre ?", diff --git a/snappymail/v/0.0.0/app/localization/hu-HU/user.json b/snappymail/v/0.0.0/app/localization/hu-HU/user.json index fda3345cd..a3b6282bd 100644 --- a/snappymail/v/0.0.0/app/localization/hu-HU/user.json +++ b/snappymail/v/0.0.0/app/localization/hu-HU/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Ha egyszer elindult, a folyamatot nem lehet megszakítani.", "TITLE_CLEARING_PROCESS": "Mappa ürítés..." }, + "CRYPTO": { + "SIGN": "Aláírás", + "ENCRYPT": "Titkosítás", + "DECRYPT": "Visszafejtés", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Jó aláírás tőle: %USER%", + "ERROR": "%TYPE% hiba: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás", "POPUP_IMPORT_BUTTON": "Importálás", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGP kulcs generálás", "POPUP_GENERATE_BUTTON": "Generálás", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Aláírás", - "LABEL_ENCRYPT": "Titkosítás", - "BUTTON_DECRYPT": "Visszafejtés", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP aláírt üzenet", "ENCRYPTED_MESSAGE": "OpenPGP kódolt üzenet", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Jó aláírás tőle: %USER%", - "ERROR": "OpenPGP hiba: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME aláírt üzenet", + "ENCRYPTED_MESSAGE": "S\/MIME kódolt üzenet" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Szűrő létrehozás?", diff --git a/snappymail/v/0.0.0/app/localization/id-ID/user.json b/snappymail/v/0.0.0/app/localization/id-ID/user.json index 099dd1d74..a1903e6a9 100644 --- a/snappymail/v/0.0.0/app/localization/id-ID/user.json +++ b/snappymail/v/0.0.0/app/localization/id-ID/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Begitu dimulai, proses tidak dapat dibatalkan atau ditunda.", "TITLE_CLEARING_PROCESS": "Membersihkan folder..." }, + "CRYPTO": { + "SIGN": "Tandatangan", + "ENCRYPT": "Enkripsi", + "DECRYPT": "Deskripsi", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Tandatangan sah dari user %USER%", + "ERROR": "Kesalahan %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Impor kunci OpenPGP", "POPUP_IMPORT_BUTTON": "Impor", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Buat kunci OpenPGP", "POPUP_GENERATE_BUTTON": "Buat", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Tandatangan", - "LABEL_ENCRYPT": "Enkripsi", - "BUTTON_DECRYPT": "Deskripsi", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Pesan bertanda-tangan OpenPGP", "ENCRYPTED_MESSAGE": "Pesan terenkripsi OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Tandatangan sah dari user %USER%", - "ERROR": "Kesalahan OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Pesan bertanda-tangan S\/MIME", + "ENCRYPTED_MESSAGE": "Pesan terenkripsi S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Buat filter?", diff --git a/snappymail/v/0.0.0/app/localization/is-IS/user.json b/snappymail/v/0.0.0/app/localization/is-IS/user.json index 23451e11e..ee73004aa 100644 --- a/snappymail/v/0.0.0/app/localization/is-IS/user.json +++ b/snappymail/v/0.0.0/app/localization/is-IS/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Það er ekki hægt að hætta við aðgerðina eftir að búið er að keyra hana.", "TITLE_CLEARING_PROCESS": "Tæmi möppu..." }, + "CRYPTO": { + "SIGN": "Undirrita", + "ENCRYPT": "Dulrita", + "DECRYPT": "Afkóða", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Gild undirritun frá %USER%", + "ERROR": "%TYPE% villa: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil", "POPUP_IMPORT_BUTTON": "Flytja inn", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Búa til OpenPGP-lykla", "POPUP_GENERATE_BUTTON": "Útbúa", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Undirrita", - "LABEL_ENCRYPT": "Dulrita", - "BUTTON_DECRYPT": "Afkóða", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Skeyti undirritað með OpenPGP", "ENCRYPTED_MESSAGE": "Skeyti dulritað með OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Gild undirritun frá %USER%", - "ERROR": "OpenPGP villa: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Skeyti undirritað með S\/MIME", + "ENCRYPTED_MESSAGE": "Skeyti dulritað með S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Búa til síu?", diff --git a/snappymail/v/0.0.0/app/localization/it-IT/user.json b/snappymail/v/0.0.0/app/localization/it-IT/user.json index 2ea703d18..3f715b2df 100644 --- a/snappymail/v/0.0.0/app/localization/it-IT/user.json +++ b/snappymail/v/0.0.0/app/localization/it-IT/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Una volta iniziato, il processo non può più essere annullato.", "TITLE_CLEARING_PROCESS": "Eliminazione cartella..." }, + "CRYPTO": { + "SIGN": "Firma", + "ENCRYPT": "Criptazione", + "DECRYPT": "Decriptazione", + "VERIFY": "Verifica", + "GOOD_SIGNATURE": "Firma valida da %USER%", + "ERROR": "Errore di %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importa chiave OpenPGP", "POPUP_IMPORT_BUTTON": "Importa", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Genera chiavi OpenPGP", "POPUP_GENERATE_BUTTON": "Genera", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Firma", - "LABEL_ENCRYPT": "Criptazione", - "BUTTON_DECRYPT": "Decriptazione", - "BUTTON_VERIFY": "Verifica", "SIGNED_MESSAGE": "Messaggio firmato con OpenPGP", "ENCRYPTED_MESSAGE": "Messaggio cifrato con OpenPGP", "STORE_IN_GNUPG": "Salva nel server in GnuPG", - "BACKUP_ON_SERVER": "Salvataggio (criptato) sul server", - "GOOD_SIGNATURE": "Firma valida da %USER%", - "ERROR": "Errore di OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Salvataggio (criptato) sul server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Messaggio firmato con S\/MIME", + "ENCRYPTED_MESSAGE": "Messaggio cifrato con S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Creo un filtro?", diff --git a/snappymail/v/0.0.0/app/localization/ja-JP/user.json b/snappymail/v/0.0.0/app/localization/ja-JP/user.json index e0055be00..851e61304 100644 --- a/snappymail/v/0.0.0/app/localization/ja-JP/user.json +++ b/snappymail/v/0.0.0/app/localization/ja-JP/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "一度始めると、中止やキャンセルができません。", "TITLE_CLEARING_PROCESS": "フォルダを消去しています..." }, + "CRYPTO": { + "SIGN": "署名", + "ENCRYPT": "暗号化", + "DECRYPT": "復号化", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "%USER%からの正しい署名", + "ERROR": "%TYPE% エラー: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGPキーをインポート", "POPUP_IMPORT_BUTTON": "インポート", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGPキーを生成", "POPUP_GENERATE_BUTTON": "生成", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "署名", - "LABEL_ENCRYPT": "暗号化", - "BUTTON_DECRYPT": "復号化", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP署名済みメッセージ", "ENCRYPTED_MESSAGE": "OpenPGP暗号化メッセージ", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "%USER%からの正しい署名", - "ERROR": "OpenPGP エラー: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME署名済みメッセージ", + "ENCRYPTED_MESSAGE": "S\/MIME暗号化メッセージ" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "フィルターを作成しますか?", diff --git a/snappymail/v/0.0.0/app/localization/ko-KR/user.json b/snappymail/v/0.0.0/app/localization/ko-KR/user.json index 0b39afa17..0b78c7595 100644 --- a/snappymail/v/0.0.0/app/localization/ko-KR/user.json +++ b/snappymail/v/0.0.0/app/localization/ko-KR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "작업이 시작되면 중지하거나 취소할 수 없습니다.", "TITLE_CLEARING_PROCESS": "폴더를 비우는 중..." }, + "CRYPTO": { + "SIGN": "로그인", + "ENCRYPT": "암호화", + "DECRYPT": "복호화", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "%USER%(으)로부터 수신한 양호한 서명", + "ERROR": "%TYPE% 오류: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기", "POPUP_IMPORT_BUTTON": "가져오기", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGP 키 생성", "POPUP_GENERATE_BUTTON": "생성", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "로그인", - "LABEL_ENCRYPT": "암호화", - "BUTTON_DECRYPT": "복호화", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP로 서명된 메세지입니다.", "ENCRYPTED_MESSAGE": "OpenPGP로 암호화된 메세지입니다.", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "%USER%(으)로부터 수신한 양호한 서명", - "ERROR": "OpenPGP 오류: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME로 서명된 메세지입니다.", + "ENCRYPTED_MESSAGE": "S\/MIME로 암호화된 메세지입니다." }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "필터를 생성할까요?", diff --git a/snappymail/v/0.0.0/app/localization/lt-LT/user.json b/snappymail/v/0.0.0/app/localization/lt-LT/user.json index c5940f1f1..0737f2ca9 100644 --- a/snappymail/v/0.0.0/app/localization/lt-LT/user.json +++ b/snappymail/v/0.0.0/app/localization/lt-LT/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Pradėjus veiksmą, jis nebesustabdomas.", "TITLE_CLEARING_PROCESS": "Valomas katalogas..." }, + "CRYPTO": { + "SIGN": "Parašas", + "ENCRYPT": "Šifravimas", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Tinkamas parašas nuo %USER%", + "ERROR": "%TYPE% klaida: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą", "POPUP_IMPORT_BUTTON": "Importuoti", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Sukurti OpenPGP raktą", "POPUP_GENERATE_BUTTON": "Sukurti", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Parašas", - "LABEL_ENCRYPT": "Šifravimas", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP pasirašytas pranešimas", "ENCRYPTED_MESSAGE": "OpenPGP šifruotas pranešimas", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Tinkamas parašas nuo %USER%", - "ERROR": "OpenPGP klaida: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME pasirašytas pranešimas", + "ENCRYPTED_MESSAGE": "S\/MIME šifruotas pranešimas" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Sukurti filtrą?", diff --git a/snappymail/v/0.0.0/app/localization/lv-LV/user.json b/snappymail/v/0.0.0/app/localization/lv-LV/user.json index deb07fa95..bcae12b26 100644 --- a/snappymail/v/0.0.0/app/localization/lv-LV/user.json +++ b/snappymail/v/0.0.0/app/localization/lv-LV/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Šo procesu nevarēs apturēt.", "TITLE_CLEARING_PROCESS": "Mape tiek iztīrīta..." }, + "CRYPTO": { + "SIGN": "Sign", + "ENCRYPT": "Encrypt", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generate OpenPGP keys", "POPUP_GENERATE_BUTTON": "Generate", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Sign", - "LABEL_ENCRYPT": "Encrypt", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signed message", "ENCRYPTED_MESSAGE": "OpenPGP encrypted message", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME signed message", + "ENCRYPTED_MESSAGE": "S\/MIME encrypted message" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/nb-NO/user.json b/snappymail/v/0.0.0/app/localization/nb-NO/user.json index 2d1dd4e5c..239e61c21 100644 --- a/snappymail/v/0.0.0/app/localization/nb-NO/user.json +++ b/snappymail/v/0.0.0/app/localization/nb-NO/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Hvis du går videre, blir meldingene slettet for godt.", "TITLE_CLEARING_PROCESS": "Tømmer mappe …" }, + "CRYPTO": { + "SIGN": "Signer", + "ENCRYPT": "Krypter", + "DECRYPT": "Dekrypter", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Gyldig signatur fra %USER%", + "ERROR": "%TYPE%-feil: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel", "POPUP_IMPORT_BUTTON": "Importer", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Lag OpenPGP-nøkler", "POPUP_GENERATE_BUTTON": "Lag", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Signer", - "LABEL_ENCRYPT": "Krypter", - "BUTTON_DECRYPT": "Dekrypter", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP-signert melding", "ENCRYPTED_MESSAGE": "OpenPGP-kryptert melding", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Gyldig signatur fra %USER%", - "ERROR": "OpenPGP-feil: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME-signert melding", + "ENCRYPTED_MESSAGE": "S\/MIME-kryptert melding" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Vil du lage et filter?", diff --git a/snappymail/v/0.0.0/app/localization/nl-NL/user.json b/snappymail/v/0.0.0/app/localization/nl-NL/user.json index 4fd428278..406f521bc 100644 --- a/snappymail/v/0.0.0/app/localization/nl-NL/user.json +++ b/snappymail/v/0.0.0/app/localization/nl-NL/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Eens in gang gezet kan het proces niet geannuleerd worden!", "TITLE_CLEARING_PROCESS": "Folder aan het leegmaken..." }, + "CRYPTO": { + "SIGN": "Ondertekenen", + "ENCRYPT": "Versleutelen", + "DECRYPT": "Ontsleutelen", + "VERIFY": "Verifiëren", + "GOOD_SIGNATURE": "Juiste handtekening van %USER%", + "ERROR": "%TYPE% foutmelding: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel", "POPUP_IMPORT_BUTTON": "Importeer", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Genereer OpenPGP sleutels", "POPUP_GENERATE_BUTTON": "Genereer", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Ondertekenen", - "LABEL_ENCRYPT": "Versleutelen", - "BUTTON_DECRYPT": "Ontsleutelen", - "BUTTON_VERIFY": "Verifiëren", "SIGNED_MESSAGE": "OpenPGP ondertekend bericht", "ENCRYPTED_MESSAGE": "OpenPGP versleuteld bericht", "STORE_IN_GNUPG": "Bewaar op de server in GnuPG", - "BACKUP_ON_SERVER": "Bewaar (versleuteld) op de server", - "GOOD_SIGNATURE": "Juiste handtekening van %USER%", - "ERROR": "OpenPGP foutmelding: %ERROR%" + "BACKUP_ON_SERVER": "Bewaar (versleuteld) op de server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME ondertekend bericht", + "ENCRYPTED_MESSAGE": "S\/MIME versleuteld bericht" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Filter toevoegen", diff --git a/snappymail/v/0.0.0/app/localization/pl-PL/user.json b/snappymail/v/0.0.0/app/localization/pl-PL/user.json index 2a0ddc34b..353e53282 100644 --- a/snappymail/v/0.0.0/app/localization/pl-PL/user.json +++ b/snappymail/v/0.0.0/app/localization/pl-PL/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Po rozpoczęciu nie będzie możliwe przerwanie lub anulowanie zadania.", "TITLE_CLEARING_PROCESS": "Trwa usuwanie wszystkich wiadomości z folderu..." }, + "CRYPTO": { + "SIGN": "Podpisz", + "ENCRYPT": "Zaszyfruj", + "DECRYPT": "Odszyfruj", + "VERIFY": "Weryfikuj", + "GOOD_SIGNATURE": "Poprawnie podpisana przez %USER%", + "ERROR": "Błąd %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP", "POPUP_IMPORT_BUTTON": "Importuj", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generowanie klucza OpenPGP", "POPUP_GENERATE_BUTTON": "Generuj", "LABEL_KEY_TYPE": "Typ", - "LABEL_SIGN": "Podpisz", - "LABEL_ENCRYPT": "Zaszyfruj", - "BUTTON_DECRYPT": "Odszyfruj", - "BUTTON_VERIFY": "Weryfikuj", "SIGNED_MESSAGE": "Wiadomość podpisana OpenPGP", "ENCRYPTED_MESSAGE": "Wiadomość zaszyfrowana OpenPGP", "STORE_IN_GNUPG": "Przechowuj na serwerze w GnuPG", - "BACKUP_ON_SERVER": "Przechowywanie (zaszyfrowane) na serwerze", - "GOOD_SIGNATURE": "Poprawnie podpisana przez %USER%", - "ERROR": "Błąd OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Przechowywanie (zaszyfrowane) na serwerze" + }, + "SMIME": { + "SIGNED_MESSAGE": "Wiadomość podpisana S\/MIME", + "ENCRYPTED_MESSAGE": "Wiadomość zaszyfrowana S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Czy stworzyć filtr?", diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/user.json b/snappymail/v/0.0.0/app/localization/pt-BR/user.json index 1c2b28783..98f36cae3 100644 --- a/snappymail/v/0.0.0/app/localization/pt-BR/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-BR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não poderá ser interrompido ou cancelado.", "TITLE_CLEARING_PROCESS": "Excluindo a pasta..." }, + "CRYPTO": { + "SIGN": "Assinar", + "ENCRYPT": "Criptografar", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Boa assinatura de %USER%", + "ERROR": "Erro %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_BUTTON": "Importar", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Gerar chave OpenPGP", "POPUP_GENERATE_BUTTON": "Gerar", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Assinar", - "LABEL_ENCRYPT": "Criptografar", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Mensagem assinada com OpenPGP", "ENCRYPTED_MESSAGE": "Mensagem criptografada com OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Boa assinatura de %USER%", - "ERROR": "Erro OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Mensagem assinada com S\/MIME", + "ENCRYPTED_MESSAGE": "Mensagem criptografada com S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Criar um filtro?", diff --git a/snappymail/v/0.0.0/app/localization/pt-PT/user.json b/snappymail/v/0.0.0/app/localization/pt-PT/user.json index 12c2c720e..f2c8f408d 100644 --- a/snappymail/v/0.0.0/app/localization/pt-PT/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-PT/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.", "TITLE_CLEARING_PROCESS": "A eliminar a pasta..." }, + "CRYPTO": { + "SIGN": "Assinar", + "ENCRYPT": "Encriptar", + "DECRYPT": "Desencriptar", + "VERIFY": "Validar", + "GOOD_SIGNATURE": "Boa assinatura de %USER%", + "ERROR": "Erro %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_BUTTON": "Importar", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP", "POPUP_GENERATE_BUTTON": "Gerar", "LABEL_KEY_TYPE": "Tipo", - "LABEL_SIGN": "Assinar", - "LABEL_ENCRYPT": "Encriptar", - "BUTTON_DECRYPT": "Desencriptar", - "BUTTON_VERIFY": "Validar", "SIGNED_MESSAGE": "Mensagem assinada com OpenPGP", "ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP", "STORE_IN_GNUPG": "Guardar no servidor em GnuPG", - "BACKUP_ON_SERVER": "Guardar (encriptado) no servidor", - "GOOD_SIGNATURE": "Boa assinatura de %USER%", - "ERROR": "Erro OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Guardar (encriptado) no servidor" + }, + "SMIME": { + "SIGNED_MESSAGE": "Mensagem assinada com S\/MIME", + "ENCRYPTED_MESSAGE": "Mensagem encriptada com S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Criar um filtro?", diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json index 12c2c720e..f2c8f408d 100644 --- a/snappymail/v/0.0.0/app/localization/pt/user.json +++ b/snappymail/v/0.0.0/app/localization/pt/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.", "TITLE_CLEARING_PROCESS": "A eliminar a pasta..." }, + "CRYPTO": { + "SIGN": "Assinar", + "ENCRYPT": "Encriptar", + "DECRYPT": "Desencriptar", + "VERIFY": "Validar", + "GOOD_SIGNATURE": "Boa assinatura de %USER%", + "ERROR": "Erro %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_BUTTON": "Importar", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP", "POPUP_GENERATE_BUTTON": "Gerar", "LABEL_KEY_TYPE": "Tipo", - "LABEL_SIGN": "Assinar", - "LABEL_ENCRYPT": "Encriptar", - "BUTTON_DECRYPT": "Desencriptar", - "BUTTON_VERIFY": "Validar", "SIGNED_MESSAGE": "Mensagem assinada com OpenPGP", "ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP", "STORE_IN_GNUPG": "Guardar no servidor em GnuPG", - "BACKUP_ON_SERVER": "Guardar (encriptado) no servidor", - "GOOD_SIGNATURE": "Boa assinatura de %USER%", - "ERROR": "Erro OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Guardar (encriptado) no servidor" + }, + "SMIME": { + "SIGNED_MESSAGE": "Mensagem assinada com S\/MIME", + "ENCRYPTED_MESSAGE": "Mensagem encriptada com S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Criar um filtro?", diff --git a/snappymail/v/0.0.0/app/localization/ro-RO/user.json b/snappymail/v/0.0.0/app/localization/ro-RO/user.json index 43353c184..4f9c9466e 100644 --- a/snappymail/v/0.0.0/app/localization/ro-RO/user.json +++ b/snappymail/v/0.0.0/app/localization/ro-RO/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "După începerea procesului de curățare nu mai puteți<\/strong> anula procesul.", "TITLE_CLEARING_PROCESS": "Curăț dosarul..." }, + "CRYPTO": { + "SIGN": "Sign", + "ENCRYPT": "Encrypt", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generate OpenPGP keys", "POPUP_GENERATE_BUTTON": "Generate", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Sign", - "LABEL_ENCRYPT": "Encrypt", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP signed message", "ENCRYPTED_MESSAGE": "OpenPGP encrypted message", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME signed message", + "ENCRYPTED_MESSAGE": "S\/MIME encrypted message" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/ru-RU/user.json b/snappymail/v/0.0.0/app/localization/ru-RU/user.json index ef770462c..9dbf7cf7f 100644 --- a/snappymail/v/0.0.0/app/localization/ru-RU/user.json +++ b/snappymail/v/0.0.0/app/localization/ru-RU/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "После начала очистки, процесс нельзя<\/strong> будет остановить или отменить.", "TITLE_CLEARING_PROCESS": "Очистка папки..." }, + "CRYPTO": { + "SIGN": "Подпись", + "ENCRYPT": "Шифрование", + "DECRYPT": "Расшифровать", + "VERIFY": "Проверить", + "GOOD_SIGNATURE": "Подтвержденная сигнатура для %USER%", + "ERROR": "%TYPE% ошибка: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа", "POPUP_IMPORT_BUTTON": "Импорт", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Генерация OpenPGP ключа", "POPUP_GENERATE_BUTTON": "Создать", "LABEL_KEY_TYPE": "Тип", - "LABEL_SIGN": "Подпись", - "LABEL_ENCRYPT": "Шифрование", - "BUTTON_DECRYPT": "Расшифровать", - "BUTTON_VERIFY": "Проверить", "SIGNED_MESSAGE": "OpenPGP подписанное сообщение", "ENCRYPTED_MESSAGE": "OpenPGP шифрованное сообщение", "STORE_IN_GNUPG": "Хранить на сервере в GnuPG", - "BACKUP_ON_SERVER": "Хранить (с шифрованием) на сервере", - "GOOD_SIGNATURE": "Подтвержденная сигнатура для %USER%", - "ERROR": "OpenPGP ошибка: %ERROR%" + "BACKUP_ON_SERVER": "Хранить (с шифрованием) на сервере" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME подписанное сообщение", + "ENCRYPTED_MESSAGE": "S\/MIME шифрованное сообщение" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Создать фильтр?", diff --git a/snappymail/v/0.0.0/app/localization/sk-SK/user.json b/snappymail/v/0.0.0/app/localization/sk-SK/user.json index e211bd692..67754c85c 100644 --- a/snappymail/v/0.0.0/app/localization/sk-SK/user.json +++ b/snappymail/v/0.0.0/app/localization/sk-SK/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Tento proces nie je možné prerušiť.", "TITLE_CLEARING_PROCESS": "Odstraňujem priečinok..." }, + "CRYPTO": { + "SIGN": "Sign", + "ENCRYPT": "Encrypt", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Good signature from %USER%", + "ERROR": "%TYPE% error: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP", "POPUP_IMPORT_BUTTON": "Import", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generate OpenPGP keys", "POPUP_GENERATE_BUTTON": "Generate", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Sign", - "LABEL_ENCRYPT": "Encrypt", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Správa podpísaná s OpenPGP", "ENCRYPTED_MESSAGE": "Správa šifrovaná s OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Good signature from %USER%", - "ERROR": "OpenPGP error: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Správa podpísaná s S\/MIME", + "ENCRYPTED_MESSAGE": "Správa šifrovaná s S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/sl-SI/user.json b/snappymail/v/0.0.0/app/localization/sl-SI/user.json index cb4b88dc2..7badcc589 100644 --- a/snappymail/v/0.0.0/app/localization/sl-SI/user.json +++ b/snappymail/v/0.0.0/app/localization/sl-SI/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Tega postopka ne bo mogoče preklicati ali zaustaviti.", "TITLE_CLEARING_PROCESS": "Čistim mapo." }, + "CRYPTO": { + "SIGN": "Podpis", + "ENCRYPT": "Šifriranje", + "DECRYPT": "Dešifriraj", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Dober podpis od %USER%", + "ERROR": "%TYPE% napaka: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa", "POPUP_IMPORT_BUTTON": "Uvozi", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Generiraj OpenPGP ključe", "POPUP_GENERATE_BUTTON": "Generiraj", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Podpis", - "LABEL_ENCRYPT": "Šifriranje", - "BUTTON_DECRYPT": "Dešifriraj", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "Sporočilo, podpisano z OpenPGP", "ENCRYPTED_MESSAGE": "Sporočilo, šifrirano z OpenPGP", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Dober podpis od %USER%", - "ERROR": "OpenPGP napaka: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "Sporočilo, podpisano z S\/MIME", + "ENCRYPTED_MESSAGE": "Sporočilo, šifrirano z S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Ustvarim filter?", diff --git a/snappymail/v/0.0.0/app/localization/sv-SE/user.json b/snappymail/v/0.0.0/app/localization/sv-SE/user.json index 7cb8fd28c..1ef408081 100644 --- a/snappymail/v/0.0.0/app/localization/sv-SE/user.json +++ b/snappymail/v/0.0.0/app/localization/sv-SE/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "När detta är startat kan det inte avbrytas.", "TITLE_CLEARING_PROCESS": "Rensar mappen..." }, + "CRYPTO": { + "SIGN": "Signera", + "ENCRYPT": "Kryptera", + "DECRYPT": "Avkryptera", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Godkänd signatur för %USER%", + "ERROR": "%TYPE%-fel: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel", "POPUP_IMPORT_BUTTON": "Importera", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Skapa OpenPGP-nycklar", "POPUP_GENERATE_BUTTON": "Skapa", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Signera", - "LABEL_ENCRYPT": "Kryptera", - "BUTTON_DECRYPT": "Avkryptera", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP-signerat meddelande", "ENCRYPTED_MESSAGE": "OpenPGP-krypterat meddelande", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Godkänd signatur för %USER%", - "ERROR": "OpenPGP-fel: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME-signerat meddelande", + "ENCRYPTED_MESSAGE": "S\/MIME-krypterat meddelande" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Skapa ett filter?", diff --git a/snappymail/v/0.0.0/app/localization/tr-TR/user.json b/snappymail/v/0.0.0/app/localization/tr-TR/user.json index d18df2ade..8342cbf15 100644 --- a/snappymail/v/0.0.0/app/localization/tr-TR/user.json +++ b/snappymail/v/0.0.0/app/localization/tr-TR/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Bu işlem bir kez başladıktan sonra, işlem durdurulamaz veya iptal edilemez.", "TITLE_CLEARING_PROCESS": "Klasör temizleniyor..." }, + "CRYPTO": { + "SIGN": "Giriş Yap", + "ENCRYPT": "Şifrele", + "DECRYPT": "Decrypt", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Geçerli imza %USER%", + "ERROR": "%TYPE% hatası: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar", "POPUP_IMPORT_BUTTON": "İçe aktar", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "OpenPGP key'leri Oluştur", "POPUP_GENERATE_BUTTON": "Oluştur", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Giriş Yap", - "LABEL_ENCRYPT": "Şifrele", - "BUTTON_DECRYPT": "Decrypt", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP imzalı mesaj", "ENCRYPTED_MESSAGE": "OpenPGP şifreli mesaj", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Geçerli imza %USER%", - "ERROR": "OpenPGP hatası: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME imzalı mesaj", + "ENCRYPTED_MESSAGE": "S\/MIME şifreli mesaj" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Create a filter?", diff --git a/snappymail/v/0.0.0/app/localization/uk-UA/user.json b/snappymail/v/0.0.0/app/localization/uk-UA/user.json index 8c939cd2e..fd1617225 100644 --- a/snappymail/v/0.0.0/app/localization/uk-UA/user.json +++ b/snappymail/v/0.0.0/app/localization/uk-UA/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Після початку очищення, процес неможливо<\/strong> буде зупинити чи відмінити.", "TITLE_CLEARING_PROCESS": "Очищення теки..." }, + "CRYPTO": { + "SIGN": "Підпис", + "ENCRYPT": "Шифрування", + "DECRYPT": "Дешифрувати", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "Підтверджена сигнатура для %USER%", + "ERROR": "%TYPE% помилка: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа", "POPUP_IMPORT_BUTTON": "Імпорт", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Генерація OpenPGP ключа", "POPUP_GENERATE_BUTTON": "Створити", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "Підпис", - "LABEL_ENCRYPT": "Шифрування", - "BUTTON_DECRYPT": "Дешифрувати", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "OpenPGP підписане повідомлення", "ENCRYPTED_MESSAGE": "OpenPGP шифроване повідомлення", "STORE_IN_GNUPG": "Store on server in GnuPG", - "BACKUP_ON_SERVER": "Store (encrypted) on server", - "GOOD_SIGNATURE": "Підтверджена сигнатура для %USER%", - "ERROR": "OpenPGP помилка: %ERROR%" + "BACKUP_ON_SERVER": "Store (encrypted) on server" + }, + "SMIME": { + "SIGNED_MESSAGE": "S\/MIME підписане повідомлення", + "ENCRYPTED_MESSAGE": "S\/MIME шифроване повідомлення" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Створити фільтер?", diff --git a/snappymail/v/0.0.0/app/localization/vi-VN/user.json b/snappymail/v/0.0.0/app/localization/vi-VN/user.json index af8ddec7f..61e9b0dbb 100644 --- a/snappymail/v/0.0.0/app/localization/vi-VN/user.json +++ b/snappymail/v/0.0.0/app/localization/vi-VN/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "Một khi bắt đầu, quá trình xóa này sẽ không thể ngưng giữa chừng hay hủy bỏ.", "TITLE_CLEARING_PROCESS": "Đang xóa thư mục..." }, + "CRYPTO": { + "SIGN": "Ký xác nhận", + "ENCRYPT": "Mã hóa", + "DECRYPT": "Gỡ mã hóa", + "VERIFY": "Xác minh", + "GOOD_SIGNATURE": "Chữ ký ổn từ %USER%", + "ERROR": "Lỗi %TYPE%: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP", "POPUP_IMPORT_BUTTON": "Nhập", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "Tạo một đôi mật mã OpenPGP", "POPUP_GENERATE_BUTTON": "Tạo", "LABEL_KEY_TYPE": "Loại", - "LABEL_SIGN": "Ký xác nhận", - "LABEL_ENCRYPT": "Mã hóa", - "BUTTON_DECRYPT": "Gỡ mã hóa", - "BUTTON_VERIFY": "Xác minh", "SIGNED_MESSAGE": "Thư đã được ký xác nhận bằng mã OpenPGP", "ENCRYPTED_MESSAGE": "Thư đã được mã hóa bởi OpenPGP", "STORE_IN_GNUPG": "Lưu trữ trên máy chủ trong GnuPG", - "BACKUP_ON_SERVER": "Lưu trữ (đã được mã hóa) trên máy chủ", - "GOOD_SIGNATURE": "Chữ ký ổn từ %USER%", - "ERROR": "Lỗi OpenPGP: %ERROR%" + "BACKUP_ON_SERVER": "Lưu trữ (đã được mã hóa) trên máy chủ" + }, + "SMIME": { + "SIGNED_MESSAGE": "Thư đã được ký xác nhận bằng mã S\/MIME", + "ENCRYPTED_MESSAGE": "Thư đã được mã hóa bởi S\/MIME" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "Tạo một tấm lọc mới?", diff --git a/snappymail/v/0.0.0/app/localization/zh-CN/user.json b/snappymail/v/0.0.0/app/localization/zh-CN/user.json index 7855fb3e3..c9a88777a 100644 --- a/snappymail/v/0.0.0/app/localization/zh-CN/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-CN/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "一旦操作执行,将不可中断和撤销!", "TITLE_CLEARING_PROCESS": "文件夹清理中..." }, + "CRYPTO": { + "SIGN": "签名", + "ENCRYPT": "加密", + "DECRYPT": "解密", + "VERIFY": "Verify", + "GOOD_SIGNATURE": "来自 %USER% 的可用签名", + "ERROR": "%TYPE% 错误: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥", "POPUP_IMPORT_BUTTON": "导入", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "生成 OpenPGP 密钥", "POPUP_GENERATE_BUTTON": "生成", "LABEL_KEY_TYPE": "Type", - "LABEL_SIGN": "签名", - "LABEL_ENCRYPT": "加密", - "BUTTON_DECRYPT": "解密", - "BUTTON_VERIFY": "Verify", "SIGNED_MESSAGE": "由 OpenPGP 签名", "ENCRYPTED_MESSAGE": "由 OpenPGP 加密", "STORE_IN_GNUPG": "以 GnuPG 存储在服务器", - "BACKUP_ON_SERVER": "加密存储在服务器", - "GOOD_SIGNATURE": "来自 %USER% 的可用签名", - "ERROR": "OpenPGP 错误: %ERROR%" + "BACKUP_ON_SERVER": "加密存储在服务器" + }, + "SMIME": { + "SIGNED_MESSAGE": "由 S\/MIME 签名", + "ENCRYPTED_MESSAGE": "由 S\/MIME 加密" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "创建筛选条件?", diff --git a/snappymail/v/0.0.0/app/localization/zh-TW/user.json b/snappymail/v/0.0.0/app/localization/zh-TW/user.json index b4f8025f0..24adde2be 100644 --- a/snappymail/v/0.0.0/app/localization/zh-TW/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-TW/user.json @@ -274,6 +274,14 @@ "DANGER_DESC_HTML_2": "一旦執行操作,就無法中斷或取消。", "TITLE_CLEARING_PROCESS": "正在清除資料夾..." }, + "CRYPTO": { + "SIGN": "簽署", + "ENCRYPT": "加密", + "DECRYPT": "解密", + "VERIFY": "驗證", + "GOOD_SIGNATURE": "來自「%USER%」的良好簽署", + "ERROR": "%TYPE% 錯誤: %ERROR%" + }, "OPENPGP": { "POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰", "POPUP_IMPORT_BUTTON": "匯入", @@ -282,16 +290,14 @@ "POPUP_GENERATE_TITLE": "產生 OpenPGP 金鑰", "POPUP_GENERATE_BUTTON": "產生", "LABEL_KEY_TYPE": "類型", - "LABEL_SIGN": "簽署", - "LABEL_ENCRYPT": "加密", - "BUTTON_DECRYPT": "解密", - "BUTTON_VERIFY": "驗證", "SIGNED_MESSAGE": "已透過 OpenPGP 簽署郵件", "ENCRYPTED_MESSAGE": "已透過 OpenPGP 加密郵件", "STORE_IN_GNUPG": "以 GnuPG 儲存在伺服器上", - "BACKUP_ON_SERVER": "在伺服器中儲存 (已加密)", - "GOOD_SIGNATURE": "來自「%USER%」的良好簽署", - "ERROR": "OpenPGP 錯誤: %ERROR%" + "BACKUP_ON_SERVER": "在伺服器中儲存 (已加密)" + }, + "SMIME": { + "SIGNED_MESSAGE": "已透過 S\/MIME 簽署郵件", + "ENCRYPTED_MESSAGE": "已透過 S\/MIME 加密郵件" }, "POPUPS_FILTER": { "TITLE_CREATE_FILTER": "是否要建立篩選器?", diff --git a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageView.html b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageView.html index bb6cfae30..42ba82f36 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageView.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageView.html @@ -295,13 +295,20 @@
- +
- + +
+
+ +
+
+ +
diff --git a/snappymail/v/0.0.0/app/templates/Views/User/PopupsCompose.html b/snappymail/v/0.0.0/app/templates/Views/User/PopupsCompose.html index 7b541855d..57996e421 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/PopupsCompose.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/PopupsCompose.html @@ -63,13 +63,13 @@
  • - +
  • - +
  • @@ -137,10 +137,10 @@
    diff --git a/snappymail/v/0.0.0/app/templates/Views/User/PopupsContacts.html b/snappymail/v/0.0.0/app/templates/Views/User/PopupsContacts.html index 69a64c50a..94ac8a5e2 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/PopupsContacts.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/PopupsContacts.html @@ -255,7 +255,7 @@ data-i18n="CONTACTS/TAB_CRYPTO">
    - +
    - +