Show spam aliases #

This commit is contained in:
andryyy committed 2017-02-21 22:27:11 +01:00
1 parent 76426b65b2
commit 0eb932b3ab
2737 files changed
+357639 -22

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
Enigma Plugin for Roundcube
This plugin adds support for viewing and sending of signed and encrypted
messages in PGP (RFC 2440) and PGP/MIME (RFC 3156) format.
The plugin uses gpg binary on the server and stores all keys
(including private keys of the users) on the server.
Encryption/decryption is done server-side. So, this plugin
is for users that trust the server.
Implemented features:
---------------------
+ PGP: signatures verification
+ PGP: messages decryption
+ PGP: Sending of encrypted/signed messages
+ PGP: keys management UI (key import, export, delete)
+ PGP: key generation (client- or server-side)
+ Handling of PGP keys attached to incoming messages
+ User preferences to disable plugin features
+ Attaching public keys to email
+ Key server(s) support (search, import)
TODO:
-----
- Handling of big messages with temp files (? - security)
- Key info in contact details page (optional)
- Extended key management:
- disable,
- revoke,
- change expiration date, change passphrase, add photo,
- manage user IDs
- export private keys
- Generate revocation certs
- Search filter to see invalid/expired keys
- Key server(s) support (upload, refresh)
- Mark keys as trusted/untrasted, display appropriate message in verify/decrypt status
- Support for multi-server installations (store keys in sql database? probably impossible with GnuPG 2.1)
- Performance improvements:
- cache decrypted message key id so we can skip decryption if we have no password in session
- cache (last or successful only?) sig verification status to not verify on every msg preview (optional)
- S/MIME: Certs generation (?)
- S/MIME: Certs management
- S/MIME: signed messages verification
- S/MIME: encrypted messages decryption
- S/MIME: Sending signed/encrypted messages
- S/MIME: Handling of certs attached to incoming messages
- S/MIME: Certificate info in Contacts details page (optional)
KNOWN ISSUES:
-------------
There are some known issues with accepting key passphrases on various
system configurations. This is caused by issues in PinEntry handling.
Make sure that vendor/bin/crypt-gpg-pinentry works from command line.
Possible reasons:
- non-working loader in shebang (#! /usr/bin/env php)
Make sure it works for the user the php scripts are executed upon
(i.e. apache, www-date, etc.)
Note: pinentry is used with gpg >= 2.0 and <= 2.1.12.
Note: for server use GnuPG developers still recommend version 1.4.
+29
View File
@@ -0,0 +1,29 @@
{
"name": "roundcube/enigma",
"type": "roundcube-plugin",
"description": "Server-side PGP Encryption for Roundcube",
"license": "GPLv3+",
"version": "0.7",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net/"
},
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": "~0.1.6",
"pear-pear.php.net/crypt_gpg": "~1.6.0@beta"
}
}
@@ -0,0 +1,62 @@
<?php
// Enigma Plugin options
// --------------------
// A driver to use for PGP. Default: "gnupg".
$config['enigma_pgp_driver'] = 'gnupg';
// A driver to use for S/MIME. Default: "phpssl".
$config['enigma_smime_driver'] = 'phpssl';
// Enables logging of enigma operations (including Crypt_GPG debug info)
$config['enigma_debug'] = false;
// Keys directory for all users. Default 'enigma/home'.
// Must be writeable by PHP process
$config['enigma_pgp_homedir'] = null;
// Location of gpg binary. By default it will be auto-detected.
// This is also a way to force gpg2 use if there are both 1.x and 2.x on the system.
$config['enigma_pgp_binary'] = '';
// Location of gpg-agent binary. By default it will be auto-detected.
// It's used with GnuPG 2.x.
$config['enigma_pgp_agent'] = '';
// Location of gpgconf binary. By default it will be auto-detected.
// It's used with GnuPG >= 2.1.
$config['enigma_pgp_gpgconf'] = '';
// Enables signatures verification feature.
$config['enigma_signatures'] = true;
// Enables messages decryption feature.
$config['enigma_decryption'] = true;
// Enables messages encryption and signing feature.
$config['enigma_encryption'] = true;
// Enable signing all messages by default
$config['enigma_sign_all'] = false;
// Enable encrypting all messages by default
$config['enigma_encrypt_all'] = false;
// Enable attaching a public key to all messages by default
$config['enigma_attach_pubkey'] = false;
// Default for how long to store private key passwords (in minutes).
// When set to 0 passwords will be stored for the whole session.
$config['enigma_password_time'] = 5;
// With this option you can lock composing options
// of the plugin forcing the user to use configured settings.
// The array accepts: 'sign', 'encrypt', 'pubkey'.
//
// For example, to force your users to sign every email,
// you should set:
// - enigma_sign_all = true
// - enigma_options_lock = array('sign')
// - dont_override = array('enigma_sign_all')
$config['enigma_options_lock'] = array();
+625
View File
@@ -0,0 +1,625 @@
/* Enigma Plugin */
window.rcmail && rcmail.addEventListener('init', function(evt) {
if (rcmail.env.task == 'settings') {
if (rcmail.gui_objects.keyslist) {
rcmail.keys_list = new rcube_list_widget(rcmail.gui_objects.keyslist,
{multiselect:true, draggable:false, keyboard:false});
rcmail.keys_list
.addEventListener('select', function(o) { rcmail.enigma_keylist_select(o); })
.addEventListener('keypress', function(o) { rcmail.enigma_keylist_keypress(o); })
.init()
.focus();
rcmail.enigma_list();
rcmail.register_command('firstpage', function(props) { return rcmail.enigma_list_page('first'); });
rcmail.register_command('previouspage', function(props) { return rcmail.enigma_list_page('previous'); });
rcmail.register_command('nextpage', function(props) { return rcmail.enigma_list_page('next'); });
rcmail.register_command('lastpage', function(props) { return rcmail.enigma_list_page('last'); });
}
if (rcmail.env.action == 'plugin.enigmakeys') {
rcmail.register_command('search', function(props) {return rcmail.enigma_search(props); }, true);
rcmail.register_command('reset-search', function(props) {return rcmail.enigma_search_reset(props); }, true);
rcmail.register_command('plugin.enigma-import', function() { rcmail.enigma_import(); }, true);
rcmail.register_command('plugin.enigma-import-search', function() { rcmail.enigma_import_search(); }, true);
rcmail.register_command('plugin.enigma-key-export', function() { rcmail.enigma_export(); });
rcmail.register_command('plugin.enigma-key-export-selected', function() { rcmail.enigma_export(true); });
rcmail.register_command('plugin.enigma-key-import', function() { rcmail.enigma_key_import(); }, true);
rcmail.register_command('plugin.enigma-key-delete', function(props) { return rcmail.enigma_delete(); });
rcmail.register_command('plugin.enigma-key-create', function(props) { return rcmail.enigma_key_create(); }, true);
rcmail.register_command('plugin.enigma-key-save', function(props) { return rcmail.enigma_key_create_save(); }, true);
rcmail.addEventListener('responseafterplugin.enigmakeys', function() {
rcmail.enable_command('plugin.enigma-key-export', rcmail.env.rowcount > 0);
});
if (rcmail.gui_objects.importform) {
// make sure Enter key in search input starts searching
// instead of submitting the form
$('#rcmimportsearch').keydown(function(e) {
if (e.which == 13) {
rcmail.enigma_import_search();
return false;
}
});
$('input[type="button"]:first').focus();
}
}
}
else if (rcmail.env.task == 'mail') {
if (rcmail.env.action == 'compose') {
rcmail.addEventListener('beforesend', function(props) { rcmail.enigma_beforesend_handler(props); })
.addEventListener('beforesavedraft', function(props) { rcmail.enigma_beforesavedraft_handler(props); });
$('input,label', $('#enigmamenu')).mouseup(function(e) {
// don't close the menu on mouse click inside
e.stopPropagation();
});
$('a.button.enigma').prop('tabindex', $('#messagetoolbar > a:first').prop('tabindex'));
}
$.each(['encrypt', 'sign'], function() {
if (rcmail.env['enigma_force_' + this])
$('[name="_enigma_' + this + '"]').prop('checked', true);
});
if (rcmail.env.enigma_password_request) {
rcmail.enigma_password_request(rcmail.env.enigma_password_request);
}
}
});
/*********************************************************/
/********* Enigma Settings/Keys/Certs UI *********/
/*********************************************************/
// Display key(s) import form
rcube_webmail.prototype.enigma_key_import = function()
{
this.enigma_loadframe('&_action=plugin.enigmakeys&_a=import');
};
// Display key(s) generation form
rcube_webmail.prototype.enigma_key_create = function()
{
this.enigma_loadframe('&_action=plugin.enigmakeys&_a=create');
};
// Generate key(s) and submit them
rcube_webmail.prototype.enigma_key_create_save = function()
{
var options, lock, users = [],
password = $('#key-pass').val(),
confirm = $('#key-pass-confirm').val(),
size = $('#key-size').val();
$('[name="identity[]"]:checked').each(function() {
users.push(this.value);
});
// validate the form
if (!password || !confirm)
return alert(this.get_label('enigma.formerror'));
if (password != confirm)
return alert(this.get_label('enigma.passwordsdiffer'));
if (!users.length)
return alert(this.get_label('enigma.noidentselected'));
// generate keys
// use OpenPGP.js if browser supports required features
if (window.openpgp && window.crypto && (window.crypto.getRandomValues || window.crypto.subtle)) {
lock = this.set_busy(true, 'enigma.keygenerating');
options = {
numBits: size,
userId: users,
passphrase: password
};
openpgp.generateKeyPair(options).then(function(keypair) {
// success
var post = {_a: 'import', _keys: keypair.privateKeyArmored, _generated: 1,
_passwd: password, _keyid: keypair.key.primaryKey.fingerprint};
// send request to server
rcmail.http_post('plugin.enigmakeys', post, lock);
}, function(error) {
// failure
rcmail.set_busy(false, null, lock);
rcmail.display_message(rcmail.get_label('enigma.keygenerateerror'), 'error');
});
}
else {
rcmail.display_message(rcmail.get_label('enigma.keygennosupport'), 'error');
}
};
// Action executed after successful key generation and import
rcube_webmail.prototype.enigma_key_create_success = function()
{
parent.rcmail.enigma_list(1);
};
// Delete key(s)
rcube_webmail.prototype.enigma_delete = function()
{
var keys = this.keys_list.get_selection();
if (!keys.length || !confirm(this.get_label('enigma.keyremoveconfirm')))
return;
var lock = this.display_message(this.get_label('enigma.keyremoving'), 'loading'),
post = {_a: 'delete', _keys: keys};
// send request to server
this.http_post('plugin.enigmakeys', post, lock);
};
// Export key(s)
rcube_webmail.prototype.enigma_export = function(selected)
{
var priv = false,
list = this.keys_list,
keys = selected ? list.get_selection().join(',') : '*',
args = {_keys: keys};
if (!keys.length)
return;
// find out whether selected keys are private
if (keys == '*')
priv = true;
else
$.each(list.get_selection(), function() {
flags = $(list.rows[this].obj).data('flags');
if (flags && flags.indexOf('p') >= 0) {
priv = true;
return false;
}
});
// ask the user about including private key in the export
if (priv)
return this.show_popup_dialog(
this.get_label('enigma.keyexportprompt'),
this.get_label('enigma.exportkeys'),
[{
text: this.get_label('enigma.onlypubkeys'),
click: function(e) {
rcmail.enigma_export_submit(args);
$(this).remove();
}
},
{
text: this.get_label('enigma.withprivkeys'),
click: function(e) {
args._priv = 1;
rcmail.enigma_export_submit(args);
$(this).remove();
}
}],
{width: 400}
);
this.enigma_export_submit(args);
};
// Sumbitting request for key(s) export
// Done this way to handle password input
rcube_webmail.prototype.enigma_export_submit = function(data)
{
var id = 'keyexport-' + new Date().getTime(),
form = $('<form>').attr({target: id, method: 'post', style: 'display:none',
action: '?_action=plugin.enigmakeys&_task=settings&_a=export'}),
iframe = $('<iframe>').attr({name: id, style: 'display:none'})
form.append($('<input>').attr({name: '_token', value: this.env.request_token}));
$.each(data, function(i, v) {
form.append($('<input>').attr({name: i, value: v}));
});
iframe.appendTo(document.body);
form.appendTo(document.body).submit();
};
// Submit key(s) import form
rcube_webmail.prototype.enigma_import = function()
{
var form, file, lock,
id = 'keyexport-' + new Date().getTime(),
iframe = $('<iframe>').attr({name: id, style: 'display:none'});
if (form = this.gui_objects.importform) {
file = document.getElementById('rcmimportfile');
if (file && !file.value) {
alert(this.get_label('selectimportfile'));
return;
}
lock = this.set_busy(true, 'importwait');
iframe.appendTo(document.body);
$(form).attr({target: id, action: this.add_url(form.action, '_unlock', lock)})
.submit();
}
};
// Ssearch for key(s) for import
rcube_webmail.prototype.enigma_import_search = function()
{
var form, search;
if (form = this.gui_objects.importform) {
search = $('#rcmimportsearch').val();
if (!search) {
return;
}
this.enigma_find_publickey(search);
}
};
// list row selection handler
rcube_webmail.prototype.enigma_keylist_select = function(list)
{
var id = list.get_single_selection(), url;
if (id)
url = '&_action=plugin.enigmakeys&_a=info&_id=' + id;
this.enigma_loadframe(url);
this.enable_command('plugin.enigma-key-delete', 'plugin.enigma-key-export-selected', list.selection.length > 0);
};
rcube_webmail.prototype.enigma_keylist_keypress = function(list)
{
if (list.modkey == CONTROL_KEY)
return;
if (list.key_pressed == list.DELETE_KEY || list.key_pressed == list.BACKSPACE_KEY)
this.command('plugin.enigma-key-delete');
else if (list.key_pressed == 33)
this.command('previouspage');
else if (list.key_pressed == 34)
this.command('nextpage');
};
// load key frame
rcube_webmail.prototype.enigma_loadframe = function(url)
{
var frm, win;
if (this.env.contentframe && window.frames && (frm = window.frames[this.env.contentframe])) {
if (!url && (win = window.frames[this.env.contentframe])) {
if (win.location && win.location.href.indexOf(this.env.blankpage) < 0)
win.location.href = this.env.blankpage;
if (this.env.frame_lock)
this.set_busy(false, null, this.env.frame_lock);
return;
}
this.env.frame_lock = this.set_busy(true, 'loading');
frm.location.href = this.env.comm_path + '&_framed=1&' + url;
}
};
// Search keys/certs
rcube_webmail.prototype.enigma_search = function(props)
{
if (!props && this.gui_objects.qsearchbox)
props = this.gui_objects.qsearchbox.value;
if (props || this.env.search_request) {
var params = {'_a': 'search', '_q': props},
lock = this.set_busy(true, 'searching');
// if (this.gui_objects.search_filter)
// addurl += '&_filter=' + this.gui_objects.search_filter.value;
this.env.current_page = 1;
this.enigma_loadframe();
this.enigma_clear_list();
this.http_post('plugin.enigmakeys', params, lock);
}
return false;
};
// Reset search filter and the list
rcube_webmail.prototype.enigma_search_reset = function(props)
{
var s = this.env.search_request;
this.reset_qsearch();
if (s) {
this.enigma_loadframe();
this.enigma_clear_list();
// refresh the list
this.enigma_list();
}
return false;
};
// Keys/certs listing
rcube_webmail.prototype.enigma_list = function(page, reset_frame)
{
if (this.is_framed())
return parent.rcmail.enigma_list(page, reset_frame);
var params = {'_a': 'list'},
lock = this.set_busy(true, 'loading');
this.env.current_page = page ? page : 1;
if (this.env.search_request)
params._q = this.env.search_request;
if (page)
params._p = page;
this.enigma_clear_list(reset_frame);
this.http_post('plugin.enigmakeys', params, lock);
};
// Change list page
rcube_webmail.prototype.enigma_list_page = function(page)
{
if (page == 'next')
page = this.env.current_page + 1;
else if (page == 'last')
page = this.env.pagecount;
else if (page == 'prev' && this.env.current_page > 1)
page = this.env.current_page - 1;
else if (page == 'first' && this.env.current_page > 1)
page = 1;
this.enigma_list(page);
};
// Remove list rows
rcube_webmail.prototype.enigma_clear_list = function(reset_frame)
{
if (reset_frame !== false)
this.enigma_loadframe();
if (this.keys_list)
this.keys_list.clear(true);
this.enable_command('plugin.enigma-key-delete', 'plugin.enigma-key-delete-selected', false);
};
// Adds a row to the list
rcube_webmail.prototype.enigma_add_list_row = function(r)
{
if (!this.gui_objects.keyslist || !this.keys_list)
return false;
var list = this.keys_list,
tbody = this.gui_objects.keyslist.tBodies[0],
rowcount = tbody.rows.length,
even = rowcount%2,
css_class = 'message'
+ (even ? ' even' : ' odd'),
// for performance use DOM instead of jQuery here
row = document.createElement('tr'),
col = document.createElement('td');
row.id = 'rcmrow' + r.id;
row.className = css_class;
if (r.flags) $(row).data('flags', r.flags);
col.innerHTML = r.name;
row.appendChild(col);
list.insert_row(row);
};
/*********************************************************/
/********* Enigma Message methods *********/
/*********************************************************/
// handle message send/save action
rcube_webmail.prototype.enigma_beforesend_handler = function(props)
{
this.env.last_action = 'send';
this.enigma_compose_handler(props);
};
rcube_webmail.prototype.enigma_beforesavedraft_handler = function(props)
{
this.env.last_action = 'savedraft';
this.enigma_compose_handler(props);
};
rcube_webmail.prototype.enigma_compose_handler = function(props)
{
var form = this.gui_objects.messageform;
// copy inputs from enigma menu to the form
$('#enigmamenu input').each(function() {
var id = this.id + '_cpy', input = $('#' + id);
if (!input.length) {
input = $(this).clone();
input.prop({id: id, type: 'hidden'}).appendTo(form);
}
input.val(this.checked ? '1' : '');
});
// disable signing when saving drafts
if (this.env.last_action == 'savedraft') {
$('input[name="_enigma_sign"]', form).val(0);
}
};
// Import attached keys/certs file
rcube_webmail.prototype.enigma_import_attachment = function(mime_id)
{
var lock = this.set_busy(true, 'loading'),
post = {_uid: this.env.uid, _mbox: this.env.mailbox, _part: mime_id};
this.http_post('plugin.enigmaimport', post, lock);
return false;
};
// password request popup
rcube_webmail.prototype.enigma_password_request = function(data)
{
if (!data || !data.keyid) {
return;
}
var ref = this,
msg = this.get_label('enigma.enterkeypass'),
myprompt = $('<div class="prompt">'),
myprompt_content = $('<div class="message">')
.appendTo(myprompt),
myprompt_input = $('<input>').attr({type: 'password', size: 30})
.keypress(function(e) {
if (e.which == 13)
(ref.is_framed() ? window.parent.$ : $)('.ui-dialog-buttonpane button.mainaction:visible').click();
})
.appendTo(myprompt);
data.key = data.keyid;
if (data.keyid.length > 8)
data.keyid = data.keyid.substr(data.keyid.length - 8);
$.each(['keyid', 'user'], function() {
msg = msg.replace('$' + this, data[this]);
});
myprompt_content.text(msg);
this.show_popup_dialog(myprompt, this.get_label('enigma.enterkeypasstitle'),
[{
text: this.get_label('save'),
'class': 'mainaction',
click: function(e) {
e.stopPropagation();
var jq = ref.is_framed() ? window.parent.$ : $;
data.password = myprompt_input.val();
if (!data.password) {
myprompt_input.focus();
return;
}
ref.enigma_password_submit(data);
jq(this).remove();
}
},
{
text: this.get_label('cancel'),
click: function(e) {
var jq = ref.is_framed() ? window.parent.$ : $;
e.stopPropagation();
jq(this).remove();
}
}], {width: 400});
if (this.is_framed() && parent.rcmail.message_list) {
// this fixes bug when pressing Enter on "Save" button in the dialog
parent.rcmail.message_list.blur();
}
};
// submit entered password
rcube_webmail.prototype.enigma_password_submit = function(data)
{
var lock, form;
if (this.env.action == 'compose' && !data['compose-init']) {
return this.enigma_password_compose_submit(data);
}
else if (this.env.action == 'plugin.enigmakeys' && (form = this.gui_objects.importform)) {
if (!$('input[name="_keyid"]', form).length) {
$(form).append($('<input>').attr({type: 'hidden', name: '_keyid', value: data.key}))
.append($('<input>').attr({type: 'hidden', name: '_passwd', value: data.password}))
}
return this.enigma_import();
}
lock = data.nolock ? null : this.set_busy(true, 'loading');
form = $('<form>')
.attr({method: 'post', action: data.action || location.href, style: 'display:none'})
.append($('<input>').attr({type: 'hidden', name: '_keyid', value: data.key}))
.append($('<input>').attr({type: 'hidden', name: '_passwd', value: data.password}))
.append($('<input>').attr({type: 'hidden', name: '_token', value: this.env.request_token}))
.append($('<input>').attr({type: 'hidden', name: '_unlock', value: lock}));
// Additional form fields for request parameters
$.each(data, function(i, v) {
if (i.indexOf('input') == 0)
form.append($('<input>').attr({type: 'hidden', name: i.substring(5), value: v}))
});
if (data.iframe) {
var name = 'enigma_frame_' + (new Date()).getTime(),
frame = $('<iframe>').attr({style: 'display:none', name: name}).appendTo(document.body);
form.attr('target', name);
}
form.appendTo(document.body).submit();
};
// submit entered password - in mail compose page
rcube_webmail.prototype.enigma_password_compose_submit = function(data)
{
var form = this.gui_objects.messageform;
if (!$('input[name="_keyid"]', form).length) {
$(form).append($('<input>').attr({type: 'hidden', name: '_keyid', value: data.key}))
.append($('<input>').attr({type: 'hidden', name: '_passwd', value: data.password}));
}
else {
$('input[name="_keyid"]', form).val(data.key);
$('input[name="_passwd"]', form).val(data.password);
}
this.submit_messageform(this.env.last_action == 'savedraft');
};
// Display no-key error with key search button
rcube_webmail.prototype.enigma_key_not_found = function(data)
{
return this.show_popup_dialog(
data.text,
data.title,
[{
text: data.button,
click: function(e) {
$(this).remove();
rcmail.enigma_find_publickey(data.email);
}
}],
{width: 400, dialogClass: 'error'}
);
};
// Search for a public key on the key server
rcube_webmail.prototype.enigma_find_publickey = function(email)
{
this.mailvelope_search_pubkeys([email],
function(status) {},
function(key) {
var lock = rcmail.set_busy(true, 'enigma.importwait'),
post = {_a: 'import', _keys: key};
if (rcmail.env.action == 'plugin.enigmakeys')
post._refresh = 1;
// send request to server
rcmail.http_post('plugin.enigmakeys', post, lock);
}
);
};
+31
View File
@@ -0,0 +1,31 @@
window.rcmail&&rcmail.addEventListener("init",function(a){"settings"==rcmail.env.task?(rcmail.gui_objects.keyslist&&(rcmail.keys_list=new rcube_list_widget(rcmail.gui_objects.keyslist,{multiselect:!0,draggable:!1,keyboard:!1}),rcmail.keys_list.addEventListener("select",function(a){rcmail.enigma_keylist_select(a)}).addEventListener("keypress",function(a){rcmail.enigma_keylist_keypress(a)}).init().focus(),rcmail.enigma_list(),rcmail.register_command("firstpage",function(a){return rcmail.enigma_list_page("first")}),
rcmail.register_command("previouspage",function(a){return rcmail.enigma_list_page("previous")}),rcmail.register_command("nextpage",function(a){return rcmail.enigma_list_page("next")}),rcmail.register_command("lastpage",function(a){return rcmail.enigma_list_page("last")})),"plugin.enigmakeys"==rcmail.env.action&&(rcmail.register_command("search",function(a){return rcmail.enigma_search(a)},!0),rcmail.register_command("reset-search",function(a){return rcmail.enigma_search_reset(a)},!0),rcmail.register_command("plugin.enigma-import",
function(){rcmail.enigma_import()},!0),rcmail.register_command("plugin.enigma-import-search",function(){rcmail.enigma_import_search()},!0),rcmail.register_command("plugin.enigma-key-export",function(){rcmail.enigma_export()}),rcmail.register_command("plugin.enigma-key-export-selected",function(){rcmail.enigma_export(!0)}),rcmail.register_command("plugin.enigma-key-import",function(){rcmail.enigma_key_import()},!0),rcmail.register_command("plugin.enigma-key-delete",function(a){return rcmail.enigma_delete()}),
rcmail.register_command("plugin.enigma-key-create",function(a){return rcmail.enigma_key_create()},!0),rcmail.register_command("plugin.enigma-key-save",function(a){return rcmail.enigma_key_create_save()},!0),rcmail.addEventListener("responseafterplugin.enigmakeys",function(){rcmail.enable_command("plugin.enigma-key-export",0<rcmail.env.rowcount)}),rcmail.gui_objects.importform&&($("#rcmimportsearch").keydown(function(a){if(13==a.which)return rcmail.enigma_import_search(),!1}),$('input[type="button"]:first').focus()))):
"mail"==rcmail.env.task&&("compose"==rcmail.env.action&&(rcmail.addEventListener("beforesend",function(a){rcmail.enigma_beforesend_handler(a)}).addEventListener("beforesavedraft",function(a){rcmail.enigma_beforesavedraft_handler(a)}),$("input,label",$("#enigmamenu")).mouseup(function(a){a.stopPropagation()}),$("a.button.enigma").prop("tabindex",$("#messagetoolbar > a:first").prop("tabindex"))),$.each(["encrypt","sign"],function(){rcmail.env["enigma_force_"+this]&&$('[name="_enigma_'+this+'"]').prop("checked",
!0)}),rcmail.env.enigma_password_request&&rcmail.enigma_password_request(rcmail.env.enigma_password_request))});rcube_webmail.prototype.enigma_key_import=function(){this.enigma_loadframe("&_action=plugin.enigmakeys&_a=import")};rcube_webmail.prototype.enigma_key_create=function(){this.enigma_loadframe("&_action=plugin.enigmakeys&_a=create")};
rcube_webmail.prototype.enigma_key_create_save=function(){var a,b,c=[],d=$("#key-pass").val();a=$("#key-pass-confirm").val();var e=$("#key-size").val();$('[name="identity[]"]:checked').each(function(){c.push(this.value)});if(!d||!a)return alert(this.get_label("enigma.formerror"));if(d!=a)return alert(this.get_label("enigma.passwordsdiffer"));if(!c.length)return alert(this.get_label("enigma.noidentselected"));window.openpgp&&window.crypto&&(window.crypto.getRandomValues||window.crypto.subtle)?(b=this.set_busy(!0,
"enigma.keygenerating"),a={numBits:e,userId:c,passphrase:d},openpgp.generateKeyPair(a).then(function(a){rcmail.http_post("plugin.enigmakeys",{_a:"import",_keys:a.privateKeyArmored,_generated:1,_passwd:d,_keyid:a.key.primaryKey.fingerprint},b)},function(a){rcmail.set_busy(!1,null,b);rcmail.display_message(rcmail.get_label("enigma.keygenerateerror"),"error")})):rcmail.display_message(rcmail.get_label("enigma.keygennosupport"),"error")};rcube_webmail.prototype.enigma_key_create_success=function(){parent.rcmail.enigma_list(1)};
rcube_webmail.prototype.enigma_delete=function(){var a=this.keys_list.get_selection();if(a.length&&confirm(this.get_label("enigma.keyremoveconfirm"))){var b=this.display_message(this.get_label("enigma.keyremoving"),"loading");this.http_post("plugin.enigmakeys",{_a:"delete",_keys:a},b)}};
rcube_webmail.prototype.enigma_export=function(a){var b=!1,c=this.keys_list;a=a?c.get_selection().join(","):"*";var d={_keys:a};if(a.length){"*"==a?b=!0:$.each(c.get_selection(),function(){if((flags=$(c.rows[this].obj).data("flags"))&&0<=flags.indexOf("p"))return b=!0,!1});if(b)return this.show_popup_dialog(this.get_label("enigma.keyexportprompt"),this.get_label("enigma.exportkeys"),[{text:this.get_label("enigma.onlypubkeys"),click:function(a){rcmail.enigma_export_submit(d);$(this).remove()}},{text:this.get_label("enigma.withprivkeys"),
click:function(a){d._priv=1;rcmail.enigma_export_submit(d);$(this).remove()}}],{width:400});this.enigma_export_submit(d)}};
rcube_webmail.prototype.enigma_export_submit=function(a){var b="keyexport-"+(new Date).getTime(),c=$("<form>").attr({target:b,method:"post",style:"display:none",action:"?_action=plugin.enigmakeys&_task=settings&_a=export"}),b=$("<iframe>").attr({name:b,style:"display:none"});c.append($("<input>").attr({name:"_token",value:this.env.request_token}));$.each(a,function(a,b){c.append($("<input>").attr({name:a,value:b}))});b.appendTo(document.body);c.appendTo(document.body).submit()};
rcube_webmail.prototype.enigma_import=function(){var a,b,c="keyexport-"+(new Date).getTime(),d=$("<iframe>").attr({name:c,style:"display:none"});if(a=this.gui_objects.importform)(b=document.getElementById("rcmimportfile"))&&!b.value?alert(this.get_label("selectimportfile")):(b=this.set_busy(!0,"importwait"),d.appendTo(document.body),$(a).attr({target:c,action:this.add_url(a.action,"_unlock",b)}).submit())};
rcube_webmail.prototype.enigma_import_search=function(){var a;this.gui_objects.importform&&(a=$("#rcmimportsearch").val())&&this.enigma_find_publickey(a)};rcube_webmail.prototype.enigma_keylist_select=function(a){var b=a.get_single_selection(),c;b&&(c="&_action=plugin.enigmakeys&_a=info&_id="+b);this.enigma_loadframe(c);this.enable_command("plugin.enigma-key-delete","plugin.enigma-key-export-selected",0<a.selection.length)};
rcube_webmail.prototype.enigma_keylist_keypress=function(a){a.modkey!=CONTROL_KEY&&(a.key_pressed==a.DELETE_KEY||a.key_pressed==a.BACKSPACE_KEY?this.command("plugin.enigma-key-delete"):33==a.key_pressed?this.command("previouspage"):34==a.key_pressed&&this.command("nextpage"))};
rcube_webmail.prototype.enigma_loadframe=function(a){var b,c;this.env.contentframe&&window.frames&&(b=window.frames[this.env.contentframe])&&(!a&&(c=window.frames[this.env.contentframe])?(c.location&&0>c.location.href.indexOf(this.env.blankpage)&&(c.location.href=this.env.blankpage),this.env.frame_lock&&this.set_busy(!1,null,this.env.frame_lock)):(this.env.frame_lock=this.set_busy(!0,"loading"),b.location.href=this.env.comm_path+"&_framed=1&"+a))};
rcube_webmail.prototype.enigma_search=function(a){!a&&this.gui_objects.qsearchbox&&(a=this.gui_objects.qsearchbox.value);if(a||this.env.search_request){a={_a:"search",_q:a};var b=this.set_busy(!0,"searching");this.env.current_page=1;this.enigma_loadframe();this.enigma_clear_list();this.http_post("plugin.enigmakeys",a,b)}return!1};
rcube_webmail.prototype.enigma_search_reset=function(a){a=this.env.search_request;this.reset_qsearch();a&&(this.enigma_loadframe(),this.enigma_clear_list(),this.enigma_list());return!1};
rcube_webmail.prototype.enigma_list=function(a,b){if(this.is_framed())return parent.rcmail.enigma_list(a,b);var c={_a:"list"},d=this.set_busy(!0,"loading");this.env.current_page=a?a:1;this.env.search_request&&(c._q=this.env.search_request);a&&(c._p=a);this.enigma_clear_list(b);this.http_post("plugin.enigmakeys",c,d)};
rcube_webmail.prototype.enigma_list_page=function(a){"next"==a?a=this.env.current_page+1:"last"==a?a=this.env.pagecount:"prev"==a&&1<this.env.current_page?a=this.env.current_page-1:"first"==a&&1<this.env.current_page&&(a=1);this.enigma_list(a)};rcube_webmail.prototype.enigma_clear_list=function(a){!1!==a&&this.enigma_loadframe();this.keys_list&&this.keys_list.clear(!0);this.enable_command("plugin.enigma-key-delete","plugin.enigma-key-delete-selected",!1)};
rcube_webmail.prototype.enigma_add_list_row=function(a){if(!this.gui_objects.keyslist||!this.keys_list)return!1;var b=this.keys_list,c="message"+(this.gui_objects.keyslist.tBodies[0].rows.length%2?" even":" odd"),d=document.createElement("tr"),e=document.createElement("td");d.id="rcmrow"+a.id;d.className=c;a.flags&&$(d).data("flags",a.flags);e.innerHTML=a.name;d.appendChild(e);b.insert_row(d)};rcube_webmail.prototype.enigma_beforesend_handler=function(a){this.env.last_action="send";this.enigma_compose_handler(a)};
rcube_webmail.prototype.enigma_beforesavedraft_handler=function(a){this.env.last_action="savedraft";this.enigma_compose_handler(a)};rcube_webmail.prototype.enigma_compose_handler=function(a){var b=this.gui_objects.messageform;$("#enigmamenu input").each(function(){var a=this.id+"_cpy",d=$("#"+a);d.length||(d=$(this).clone(),d.prop({id:a,type:"hidden"}).appendTo(b));d.val(this.checked?"1":"")});"savedraft"==this.env.last_action&&$('input[name="_enigma_sign"]',b).val(0)};
rcube_webmail.prototype.enigma_import_attachment=function(a){var b=this.set_busy(!0,"loading");this.http_post("plugin.enigmaimport",{_uid:this.env.uid,_mbox:this.env.mailbox,_part:a},b);return!1};
rcube_webmail.prototype.enigma_password_request=function(a){if(a&&a.keyid){var b=this,c=this.get_label("enigma.enterkeypass"),d=$('<div class="prompt">'),e=$('<div class="message">').appendTo(d),f=$("<input>").attr({type:"password",size:30}).keypress(function(a){13==a.which&&(b.is_framed()?window.parent.$:$)(".ui-dialog-buttonpane button.mainaction:visible").click()}).appendTo(d);a.key=a.keyid;8<a.keyid.length&&(a.keyid=a.keyid.substr(a.keyid.length-8));$.each(["keyid","user"],function(){c=c.replace("$"+
this,a[this])});e.text(c);this.show_popup_dialog(d,this.get_label("enigma.enterkeypasstitle"),[{text:this.get_label("save"),"class":"mainaction",click:function(c){c.stopPropagation();c=b.is_framed()?window.parent.$:$;a.password=f.val();a.password?(b.enigma_password_submit(a),c(this).remove()):f.focus()}},{text:this.get_label("cancel"),click:function(a){var c=b.is_framed()?window.parent.$:$;a.stopPropagation();c(this).remove()}}],{width:400});this.is_framed()&&parent.rcmail.message_list&&parent.rcmail.message_list.blur()}};
rcube_webmail.prototype.enigma_password_submit=function(a){var b,c;if("compose"==this.env.action&&!a["compose-init"])return this.enigma_password_compose_submit(a);if("plugin.enigmakeys"==this.env.action&&(c=this.gui_objects.importform))return $('input[name="_keyid"]',c).length||$(c).append($("<input>").attr({type:"hidden",name:"_keyid",value:a.key})).append($("<input>").attr({type:"hidden",name:"_passwd",value:a.password})),this.enigma_import();b=a.nolock?null:this.set_busy(!0,"loading");c=$("<form>").attr({method:"post",
action:a.action||location.href,style:"display:none"}).append($("<input>").attr({type:"hidden",name:"_keyid",value:a.key})).append($("<input>").attr({type:"hidden",name:"_passwd",value:a.password})).append($("<input>").attr({type:"hidden",name:"_token",value:this.env.request_token})).append($("<input>").attr({type:"hidden",name:"_unlock",value:b}));$.each(a,function(a,b){0==a.indexOf("input")&&c.append($("<input>").attr({type:"hidden",name:a.substring(5),value:b}))});a.iframe&&(a="enigma_frame_"+(new Date).getTime(),
$("<iframe>").attr({style:"display:none",name:a}).appendTo(document.body),c.attr("target",a));c.appendTo(document.body).submit()};
rcube_webmail.prototype.enigma_password_compose_submit=function(a){var b=this.gui_objects.messageform;$('input[name="_keyid"]',b).length?($('input[name="_keyid"]',b).val(a.key),$('input[name="_passwd"]',b).val(a.password)):$(b).append($("<input>").attr({type:"hidden",name:"_keyid",value:a.key})).append($("<input>").attr({type:"hidden",name:"_passwd",value:a.password}));this.submit_messageform("savedraft"==this.env.last_action)};
rcube_webmail.prototype.enigma_key_not_found=function(a){return this.show_popup_dialog(a.text,a.title,[{text:a.button,click:function(b){$(this).remove();rcmail.enigma_find_publickey(a.email)}}],{width:400,dialogClass:"error"})};
rcube_webmail.prototype.enigma_find_publickey=function(a){this.mailvelope_search_pubkeys([a],function(a){},function(a){var b=rcmail.set_busy(!0,"enigma.importwait");a={_a:"import",_keys:a};"plugin.enigmakeys"==rcmail.env.action&&(a._refresh=1);rcmail.http_post("plugin.enigmakeys",a,b)})};
+529
View File
@@ -0,0 +1,529 @@
<?php
/**
+-------------------------------------------------------------------------+
| Enigma Plugin for Roundcube |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
/**
* This class contains only hooks and action handlers.
* Most plugin logic is placed in enigma_engine and enigma_ui classes.
*/
class enigma extends rcube_plugin
{
public $task = 'mail|settings|cli';
public $rc;
public $engine;
public $ui;
private $env_loaded = false;
/**
* Plugin initialization.
*/
function init()
{
$this->rc = rcube::get_instance();
if ($this->rc->task == 'mail') {
// message parse/display hooks
$this->add_hook('message_part_structure', array($this, 'part_structure'));
$this->add_hook('message_part_body', array($this, 'part_body'));
$this->add_hook('message_body_prefix', array($this, 'status_message'));
$this->register_action('plugin.enigmaimport', array($this, 'import_file'));
$this->register_action('plugin.enigmakeys', array($this, 'preferences_ui'));
// load the Enigma plugin configuration
$this->load_config();
$enabled = $this->rc->config->get('enigma_encryption', true);
// message displaying
if ($this->rc->action == 'show' || $this->rc->action == 'preview' || $this->rc->action == 'print') {
$this->add_hook('message_load', array($this, 'message_load'));
$this->add_hook('template_object_messagebody', array($this, 'message_output'));
}
// message composing
else if ($enabled && $this->rc->action == 'compose') {
$this->add_hook('message_compose_body', array($this, 'message_compose'));
$this->load_ui();
$this->ui->init();
}
// message sending (and draft storing)
else if ($enabled && $this->rc->action == 'send') {
$this->add_hook('message_ready', array($this, 'message_ready'));
}
$this->password_handler();
}
else if ($this->rc->task == 'settings') {
// add hooks for Enigma settings
$this->add_hook('settings_actions', array($this, 'settings_actions'));
$this->add_hook('preferences_sections_list', array($this, 'preferences_sections_list'));
$this->add_hook('preferences_list', array($this, 'preferences_list'));
$this->add_hook('preferences_save', array($this, 'preferences_save'));
// register handler for keys/certs management
$this->register_action('plugin.enigmakeys', array($this, 'preferences_ui'));
// $this->register_action('plugin.enigmacerts', array($this, 'preferences_ui'));
$this->load_ui();
if (empty($_REQUEST['_framed']) || strpos($this->rc->action, 'plugin.enigma') === 0) {
$this->ui->add_css();
}
$this->password_handler();
}
else if ($this->rc->task == 'cli') {
$this->add_hook('user_delete_commit', array($this, 'user_delete'));
}
$this->add_hook('refresh', array($this, 'refresh'));
}
/**
* Plugin environment initialization.
*/
function load_env()
{
if ($this->env_loaded) {
return;
}
$this->env_loaded = true;
// Add include path for Enigma classes and drivers
$include_path = $this->home . '/lib' . PATH_SEPARATOR;
$include_path .= ini_get('include_path');
set_include_path($include_path);
// load the Enigma plugin configuration
$this->load_config();
// include localization (if wasn't included before)
$this->add_texts('localization/');
}
/**
* Plugin UI initialization.
*/
function load_ui($all = false)
{
if (!$this->ui) {
// load config/localization
$this->load_env();
// Load UI
$this->ui = new enigma_ui($this, $this->home);
}
if ($all) {
$this->ui->add_css();
$this->ui->add_js();
}
}
/**
* Plugin engine initialization.
*/
function load_engine()
{
if ($this->engine) {
return $this->engine;
}
// load config/localization
$this->load_env();
return $this->engine = new enigma_engine($this);
}
/**
* Handler for message_part_structure hook.
* Called for every part of the message.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function part_structure($p)
{
$this->load_engine();
return $this->engine->part_structure($p);
}
/**
* Handler for message_part_body hook.
* Called to get body of a message part.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function part_body($p)
{
$this->load_engine();
return $this->engine->part_body($p);
}
/**
* Handler for settings_actions hook.
* Adds Enigma settings section into preferences.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function settings_actions($args)
{
// add labels
$this->add_texts('localization/');
// register as settings action
$args['actions'][] = array(
'action' => 'plugin.enigmakeys',
'class' => 'enigma keys',
'label' => 'enigmakeys',
'title' => 'enigmakeys',
'domain' => 'enigma',
);
/*
$args['actions'][] = array(
'action' => 'plugin.enigmacerts',
'class' => 'enigma certs',
'label' => 'enigmacerts',
'title' => 'enigmacerts',
'domain' => 'enigma',
);
*/
return $args;
}
/**
* Handler for preferences_sections_list hook.
* Adds Encryption settings section into preferences sections list.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function preferences_sections_list($p)
{
$p['list']['enigma'] = array(
'id' => 'enigma', 'section' => $this->gettext('encryption'),
);
return $p;
}
/**
* Handler for preferences_list hook.
* Adds options blocks into Enigma settings sections in Preferences.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function preferences_list($p)
{
if ($p['section'] != 'enigma') {
return $p;
}
$no_override = array_flip((array)$this->rc->config->get('dont_override'));
$p['blocks']['main']['name'] = $this->gettext('mainoptions');
if (!isset($no_override['enigma_encryption'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_encryption';
$input = new html_checkbox(array(
'name' => '_enigma_encryption',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_encryption'] = array(
'title' => html::label($field_id, $this->gettext('supportencryption')),
'content' => $input->show(intval($this->rc->config->get('enigma_encryption'))),
);
}
if (!isset($no_override['enigma_signatures'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_signatures';
$input = new html_checkbox(array(
'name' => '_enigma_signatures',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_signatures'] = array(
'title' => html::label($field_id, $this->gettext('supportsignatures')),
'content' => $input->show(intval($this->rc->config->get('enigma_signatures'))),
);
}
if (!isset($no_override['enigma_decryption'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_decryption';
$input = new html_checkbox(array(
'name' => '_enigma_decryption',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_decryption'] = array(
'title' => html::label($field_id, $this->gettext('supportdecryption')),
'content' => $input->show(intval($this->rc->config->get('enigma_decryption'))),
);
}
if (!isset($no_override['enigma_sign_all'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_sign_all';
$input = new html_checkbox(array(
'name' => '_enigma_sign_all',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_sign_all'] = array(
'title' => html::label($field_id, $this->gettext('signdefault')),
'content' => $input->show($this->rc->config->get('enigma_sign_all') ? 1 : 0),
);
}
if (!isset($no_override['enigma_encrypt_all'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_encrypt_all';
$input = new html_checkbox(array(
'name' => '_enigma_encrypt_all',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_encrypt_all'] = array(
'title' => html::label($field_id, $this->gettext('encryptdefault')),
'content' => $input->show($this->rc->config->get('enigma_encrypt_all') ? 1 : 0),
);
}
if (!isset($no_override['enigma_attach_pubkey'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_attach_pubkey';
$input = new html_checkbox(array(
'name' => '_enigma_attach_pubkey',
'id' => $field_id,
'value' => 1,
));
$p['blocks']['main']['options']['enigma_attach_pubkey'] = array(
'title' => html::label($field_id, $this->gettext('attachpubkeydefault')),
'content' => $input->show($this->rc->config->get('enigma_attach_pubkey') ? 1 : 0),
);
}
if (!isset($no_override['enigma_password_time'])) {
if (!$p['current']) {
$p['blocks']['main']['content'] = true;
return $p;
}
$field_id = 'rcmfd_enigma_password_time';
$select = new html_select(array('name' => '_enigma_password_time', 'id' => $field_id));
foreach (array(1, 5, 10, 15, 30) as $m) {
$label = $this->gettext(array('name' => 'nminutes', 'vars' => array('m' => $m)));
$select->add($label, $m);
}
$select->add($this->gettext('wholesession'), 0);
$p['blocks']['main']['options']['enigma_password_time'] = array(
'title' => html::label($field_id, $this->gettext('passwordtime')),
'content' => $select->show(intval($this->rc->config->get('enigma_password_time'))),
);
}
return $p;
}
/**
* Handler for preferences_save hook.
* Executed on Enigma settings form submit.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function preferences_save($p)
{
if ($p['section'] == 'enigma') {
$p['prefs'] = array(
'enigma_signatures' => (bool) rcube_utils::get_input_value('_enigma_signatures', rcube_utils::INPUT_POST),
'enigma_decryption' => (bool) rcube_utils::get_input_value('_enigma_decryption', rcube_utils::INPUT_POST),
'enigma_encryption' => (bool) rcube_utils::get_input_value('_enigma_encryption', rcube_utils::INPUT_POST),
'enigma_sign_all' => (bool) rcube_utils::get_input_value('_enigma_sign_all', rcube_utils::INPUT_POST),
'enigma_encrypt_all' => (bool) rcube_utils::get_input_value('_enigma_encrypt_all', rcube_utils::INPUT_POST),
'enigma_attach_pubkey' => (bool) rcube_utils::get_input_value('_enigma_attach_pubkey', rcube_utils::INPUT_POST),
'enigma_password_time' => intval(rcube_utils::get_input_value('_enigma_password_time', rcube_utils::INPUT_POST)),
);
}
return $p;
}
/**
* Handler for keys/certs management UI template.
*/
function preferences_ui()
{
$this->load_ui();
$this->ui->init();
}
/**
* Handler for message_body_prefix hook.
* Called for every displayed (content) part of the message.
* Adds infobox about signature verification and/or decryption
* status above the body.
*
* @param array Original parameters
*
* @return array Modified parameters
*/
function status_message($p)
{
$this->load_ui();
return $this->ui->status_message($p);
}
/**
* Handler for message_load hook.
* Check message bodies and attachments for keys/certs.
*/
function message_load($p)
{
$this->load_ui();
return $this->ui->message_load($p);
}
/**
* Handler for template_object_messagebody hook.
* This callback function adds a box below the message content
* if there is a key/cert attachment available
*/
function message_output($p)
{
$this->load_ui();
return $this->ui->message_output($p);
}
/**
* Handler for attached keys/certs import
*/
function import_file()
{
$this->load_ui();
$this->ui->import_file();
}
/**
* Handle password submissions
*/
function password_handler()
{
$this->load_engine();
$this->engine->password_handler();
}
/**
* Handle message_ready hook (encryption/signing)
*/
function message_ready($p)
{
$this->load_ui();
return $this->ui->message_ready($p);
}
/**
* Handle message_compose_body hook
*/
function message_compose($p)
{
$this->load_ui();
return $this->ui->message_compose($p);
}
/**
* Handler for refresh hook.
*/
function refresh($p)
{
// calling enigma_engine constructor to remove passwords
// stored in session after expiration time
$this->load_engine();
return $p;
}
/**
* Handle delete_user_commit hook
*/
function user_delete($p)
{
$this->load_engine();
$p['abort'] = $p['abort'] || !$this->engine->delete_user_data($p['username']);
return $p;
}
}
@@ -0,0 +1,7 @@
# deny webserver access to this directory
<ifModule mod_authz_core.c>
Require all denied
</ifModule>
<ifModule !mod_authz_core.c>
Deny from all
</ifModule>
@@ -0,0 +1,134 @@
<?php
/**
+-------------------------------------------------------------------------+
| Abstract driver for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
abstract class enigma_driver
{
/**
* Class constructor.
*
* @param string User name (email address)
*/
abstract function __construct($user);
/**
* Driver initialization.
*
* @return mixed NULL on success, enigma_error on failure
*/
abstract function init();
/**
* Encryption (and optional signing).
*
* @param string Message body
* @param array List of keys (enigma_key objects)
* @param enigma_key Optional signing Key ID
*
* @return mixed Encrypted message or enigma_error on failure
*/
abstract function encrypt($text, $keys, $sign_key = null);
/**
* Decryption (and sig verification if sig exists).
*
* @param string Encrypted message
* @param array List of key-password
* @param enigma_signature Signature information (if available)
*
* @return mixed Decrypted message or enigma_error on failure
*/
abstract function decrypt($text, $keys = array(), &$signature = null);
/**
* Signing.
*
* @param string Message body
* @param enigma_key The signing key
* @param int Signing mode (enigma_engine::SIGN_*)
*
* @return mixed True on success or enigma_error on failure
*/
abstract function sign($text, $key, $mode = null);
/**
* Signature verification.
*
* @param string Message body
* @param string Signature, if message is of type PGP/MIME and body doesn't contain it
*
* @return mixed Signature information (enigma_signature) or enigma_error
*/
abstract function verify($text, $signature);
/**
* Key/Cert file import.
*
* @param string File name or file content
* @param bolean True if first argument is a filename
* @param array Optional key => password map
*
* @return mixed Import status array or enigma_error
*/
abstract function import($content, $isfile = false, $passwords = array());
/**
* Key/Cert export.
*
* @param string Key ID
* @param bool Include private key
* @param array Optional key => password map
*
* @return mixed Key content or enigma_error
*/
abstract function export($key, $with_private = false, $passwords = array());
/**
* Keys listing.
*
* @param string Optional pattern for key ID, user ID or fingerprint
*
* @return mixed Array of enigma_key objects or enigma_error
*/
abstract function list_keys($pattern = '');
/**
* Single key information.
*
* @param string Key ID, user ID or fingerprint
*
* @return mixed Key (enigma_key) object or enigma_error
*/
abstract function get_key($keyid);
/**
* Key pair generation.
*
* @param array Key/User data (name, email, password, size)
*
* @return mixed Key (enigma_key) object or enigma_error
*/
abstract function gen_key($data);
/**
* Key deletion.
*
* @param string Key ID
*
* @return mixed True on success or enigma_error
*/
abstract function delete_key($keyid);
}
@@ -0,0 +1,512 @@
<?php
/**
+-------------------------------------------------------------------------+
| GnuPG (PGP) driver for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
require_once 'Crypt/GPG.php';
class enigma_driver_gnupg extends enigma_driver
{
protected $rc;
protected $gpg;
protected $homedir;
protected $user;
function __construct($user)
{
$this->rc = rcmail::get_instance();
$this->user = $user;
}
/**
* Driver initialization and environment checking.
* Should only return critical errors.
*
* @return mixed NULL on success, enigma_error on failure
*/
function init()
{
$homedir = $this->rc->config->get('enigma_pgp_homedir', INSTALL_PATH . 'plugins/enigma/home');
$debug = $this->rc->config->get('enigma_debug');
$binary = $this->rc->config->get('enigma_pgp_binary');
$agent = $this->rc->config->get('enigma_pgp_agent');
$gpgconf = $this->rc->config->get('enigma_pgp_gpgconf');
if (!$homedir) {
return new enigma_error(enigma_error::INTERNAL,
"Option 'enigma_pgp_homedir' not specified");
}
// check if homedir exists (create it if not) and is readable
if (!file_exists($homedir)) {
return new enigma_error(enigma_error::INTERNAL,
"Keys directory doesn't exists: $homedir");
}
if (!is_writable($homedir)) {
return new enigma_error(enigma_error::INTERNAL,
"Keys directory isn't writeable: $homedir");
}
$homedir = $homedir . '/' . $this->user;
// check if user's homedir exists (create it if not) and is readable
if (!file_exists($homedir)) {
mkdir($homedir, 0700);
}
if (!file_exists($homedir)) {
return new enigma_error(enigma_error::INTERNAL,
"Unable to create keys directory: $homedir");
}
if (!is_writable($homedir)) {
return new enigma_error(enigma_error::INTERNAL,
"Unable to write to keys directory: $homedir");
}
$this->homedir = $homedir;
$options = array('homedir' => $this->homedir);
if ($debug) {
$options['debug'] = array($this, 'debug');
}
if ($binary) {
$options['binary'] = $binary;
}
if ($agent) {
$options['agent'] = $agent;
}
if ($gpgconf) {
$options['gpgconf'] = $gpgconf;
}
// Create Crypt_GPG object
try {
$this->gpg = new Crypt_GPG($options);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Encryption (and optional signing).
*
* @param string Message body
* @param array List of keys (enigma_key objects)
* @param enigma_key Optional signing Key ID
*
* @return mixed Encrypted message or enigma_error on failure
*/
function encrypt($text, $keys, $sign_key = null)
{
try {
foreach ($keys as $key) {
$this->gpg->addEncryptKey($key->reference);
}
if ($sign_key) {
$this->gpg->addSignKey($sign_key->reference, $sign_key->password);
return $this->gpg->encryptAndSign($text, true);
}
return $this->gpg->encrypt($text, true);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Decrypt a message (and verify if signature found)
*
* @param string Encrypted message
* @param array List of key-password mapping
* @param enigma_signature Signature information (if available)
*
* @return mixed Decrypted message or enigma_error on failure
*/
function decrypt($text, $keys = array(), &$signature = null)
{
try {
foreach ($keys as $key => $password) {
$this->gpg->addDecryptKey($key, $password);
}
$result = $this->gpg->decryptAndVerify($text);
if (!empty($result['signatures'])) {
$signature = $this->parse_signature($result['signatures'][0]);
}
return $result['data'];
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Signing.
*
* @param string Message body
* @param enigma_key The key
* @param int Signing mode (enigma_engine::SIGN_*)
*
* @return mixed True on success or enigma_error on failure
*/
function sign($text, $key, $mode = null)
{
try {
$this->gpg->addSignKey($key->reference, $key->password);
return $this->gpg->sign($text, $mode, CRYPT_GPG::ARMOR_ASCII, true);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Signature verification.
*
* @param string Message body
* @param string Signature, if message is of type PGP/MIME and body doesn't contain it
*
* @return mixed Signature information (enigma_signature) or enigma_error
*/
function verify($text, $signature)
{
try {
$verified = $this->gpg->verify($text, $signature);
return $this->parse_signature($verified[0]);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Key file import.
*
* @param string File name or file content
* @param bolean True if first argument is a filename
* @param array Optional key => password map
*
* @return mixed Import status array or enigma_error
*/
public function import($content, $isfile = false, $passwords = array())
{
try {
// GnuPG 2.1 requires secret key passphrases on import
foreach ($passwords as $keyid => $pass) {
$this->gpg->addPassphrase($keyid, $pass);
}
if ($isfile)
return $this->gpg->importKeyFile($content);
else
return $this->gpg->importKey($content);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Key export.
*
* @param string Key ID
* @param bool Include private key
* @param array Optional key => password map
*
* @return mixed Key content or enigma_error
*/
public function export($keyid, $with_private = false, $passwords = array())
{
try {
$key = $this->gpg->exportPublicKey($keyid, true);
if ($with_private) {
// GnuPG 2.1 requires secret key passphrases on export
foreach ($passwords as $_keyid => $pass) {
$this->gpg->addPassphrase($_keyid, $pass);
}
$priv = $this->gpg->exportPrivateKey($keyid, true);
$key .= $priv;
}
return $key;
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Keys listing.
*
* @param string Optional pattern for key ID, user ID or fingerprint
*
* @return mixed Array of enigma_key objects or enigma_error
*/
public function list_keys($pattern = '')
{
try {
$keys = $this->gpg->getKeys($pattern);
$result = array();
foreach ($keys as $idx => $key) {
$result[] = $this->parse_key($key);
unset($keys[$idx]);
}
return $result;
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Single key information.
*
* @param string Key ID, user ID or fingerprint
*
* @return mixed Key (enigma_key) object or enigma_error
*/
public function get_key($keyid)
{
$list = $this->list_keys($keyid);
if (is_array($list)) {
return $list[key($list)];
}
// error
return $list;
}
/**
* Key pair generation.
*
* @param array Key/User data (user, email, password, size)
*
* @return mixed Key (enigma_key) object or enigma_error
*/
public function gen_key($data)
{
try {
$debug = $this->rc->config->get('enigma_debug');
$keygen = new Crypt_GPG_KeyGenerator(array(
'homedir' => $this->homedir,
// 'binary' => '/usr/bin/gpg2',
'debug' => $debug ? array($this, 'debug') : false,
));
$key = $keygen
->setExpirationDate(0)
->setPassphrase($data['password'])
->generateKey($data['user'], $data['email']);
return $this->parse_key($key);
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Key deletion.
*
* @param string Key ID
*
* @return mixed True on success or enigma_error
*/
public function delete_key($keyid)
{
// delete public key
$result = $this->delete_pubkey($keyid);
// error handling
if ($result !== true) {
$code = $result->getCode();
// if not found, delete private key
if ($code == enigma_error::KEYNOTFOUND) {
$result = $this->delete_privkey($keyid);
}
// need to delete private key first
else if ($code == enigma_error::DELKEY) {
$key = $this->get_key($keyid);
for ($i = count($key->subkeys) - 1; $i >= 0; $i--) {
$type = ($key->subkeys[$i]->usage & enigma_key::CAN_ENCRYPT) ? 'priv' : 'pub';
$result = $this->{'delete_' . $type . 'key'}($key->subkeys[$i]->id);
if ($result !== true) {
return $result;
}
}
}
}
return $result;
}
/**
* Private key deletion.
*/
protected function delete_privkey($keyid)
{
try {
$this->gpg->deletePrivateKey($keyid);
return true;
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Public key deletion.
*/
protected function delete_pubkey($keyid)
{
try {
$this->gpg->deletePublicKey($keyid);
return true;
}
catch (Exception $e) {
return $this->get_error_from_exception($e);
}
}
/**
* Converts Crypt_GPG exception into Enigma's error object
*
* @param mixed Exception object
*
* @return enigma_error Error object
*/
protected function get_error_from_exception($e)
{
$data = array();
if ($e instanceof Crypt_GPG_KeyNotFoundException) {
$error = enigma_error::KEYNOTFOUND;
$data['id'] = $e->getKeyId();
}
else if ($e instanceof Crypt_GPG_BadPassphraseException) {
$error = enigma_error::BADPASS;
$data['bad'] = $e->getBadPassphrases();
$data['missing'] = $e->getMissingPassphrases();
}
else if ($e instanceof Crypt_GPG_NoDataException) {
$error = enigma_error::NODATA;
}
else if ($e instanceof Crypt_GPG_DeletePrivateKeyException) {
$error = enigma_error::DELKEY;
}
else {
$error = enigma_error::INTERNAL;
}
$msg = $e->getMessage();
return new enigma_error($error, $msg, $data);
}
/**
* Converts Crypt_GPG_Signature object into Enigma's signature object
*
* @param Crypt_GPG_Signature Signature object
*
* @return enigma_signature Signature object
*/
protected function parse_signature($sig)
{
$data = new enigma_signature();
$data->id = $sig->getId();
$data->valid = $sig->isValid();
$data->fingerprint = $sig->getKeyFingerprint();
$data->created = $sig->getCreationDate();
$data->expires = $sig->getExpirationDate();
// In case of ERRSIG user may not be set
if ($user = $sig->getUserId()) {
$data->name = $user->getName();
$data->comment = $user->getComment();
$data->email = $user->getEmail();
}
return $data;
}
/**
* Converts Crypt_GPG_Key object into Enigma's key object
*
* @param Crypt_GPG_Key Key object
*
* @return enigma_key Key object
*/
protected function parse_key($key)
{
$ekey = new enigma_key();
foreach ($key->getUserIds() as $idx => $user) {
$id = new enigma_userid();
$id->name = $user->getName();
$id->comment = $user->getComment();
$id->email = $user->getEmail();
$id->valid = $user->isValid();
$id->revoked = $user->isRevoked();
$ekey->users[$idx] = $id;
}
$ekey->name = trim($ekey->users[0]->name . ' <' . $ekey->users[0]->email . '>');
// keep reference to Crypt_GPG's key for performance reasons
$ekey->reference = $key;
foreach ($key->getSubKeys() as $idx => $subkey) {
$skey = new enigma_subkey();
$skey->id = $subkey->getId();
$skey->revoked = $subkey->isRevoked();
$skey->created = $subkey->getCreationDate();
$skey->expires = $subkey->getExpirationDate();
$skey->fingerprint = $subkey->getFingerprint();
$skey->has_private = $subkey->hasPrivate();
$skey->algorithm = $subkey->getAlgorithm();
$skey->length = $subkey->getLength();
$skey->usage = $subkey->usage();
$ekey->subkeys[$idx] = $skey;
};
$ekey->id = $ekey->subkeys[0]->id;
return $ekey;
}
/**
* Write debug info from Crypt_GPG to logs/enigma
*/
public function debug($line)
{
rcube::write_log('enigma', 'GPG: ' . $line);
}
}
@@ -0,0 +1,224 @@
<?php
/**
+-------------------------------------------------------------------------+
| S/MIME driver for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_driver_phpssl extends enigma_driver
{
private $rc;
private $homedir;
private $user;
function __construct($user)
{
$rcmail = rcmail::get_instance();
$this->rc = $rcmail;
$this->user = $user;
}
/**
* Driver initialization and environment checking.
* Should only return critical errors.
*
* @return mixed NULL on success, enigma_error on failure
*/
function init()
{
$homedir = $this->rc->config->get('enigma_smime_homedir', INSTALL_PATH . '/plugins/enigma/home');
if (!$homedir)
return new enigma_error(enigma_error::INTERNAL,
"Option 'enigma_smime_homedir' not specified");
// check if homedir exists (create it if not) and is readable
if (!file_exists($homedir))
return new enigma_error(enigma_error::INTERNAL,
"Keys directory doesn't exists: $homedir");
if (!is_writable($homedir))
return new enigma_error(enigma_error::INTERNAL,
"Keys directory isn't writeable: $homedir");
$homedir = $homedir . '/' . $this->user;
// check if user's homedir exists (create it if not) and is readable
if (!file_exists($homedir))
mkdir($homedir, 0700);
if (!file_exists($homedir))
return new enigma_error(enigma_error::INTERNAL,
"Unable to create keys directory: $homedir");
if (!is_writable($homedir))
return new enigma_error(enigma_error::INTERNAL,
"Unable to write to keys directory: $homedir");
$this->homedir = $homedir;
}
function encrypt($text, $keys, $sign_key = null)
{
}
function decrypt($text, $keys = array(), &$signature = null)
{
}
function sign($text, $key, $mode = null)
{
}
function verify($struct, $message)
{
// use common temp dir
$temp_dir = $this->rc->config->get('temp_dir');
$msg_file = tempnam($temp_dir, 'rcmMsg');
$cert_file = tempnam($temp_dir, 'rcmCert');
$fh = fopen($msg_file, "w");
if ($struct->mime_id) {
$message->get_part_body($struct->mime_id, false, 0, $fh);
}
else {
$this->rc->storage->get_raw_body($message->uid, $fh);
}
fclose($fh);
// @TODO: use stored certificates
// try with certificate verification
$sig = openssl_pkcs7_verify($msg_file, 0, $cert_file);
$validity = true;
if ($sig !== true) {
// try without certificate verification
$sig = openssl_pkcs7_verify($msg_file, PKCS7_NOVERIFY, $cert_file);
$validity = enigma_error::UNVERIFIED;
}
if ($sig === true) {
$sig = $this->parse_sig_cert($cert_file, $validity);
}
else {
$errorstr = $this->get_openssl_error();
$sig = new enigma_error(enigma_error::INTERNAL, $errorstr);
}
// remove temp files
@unlink($msg_file);
@unlink($cert_file);
return $sig;
}
public function import($content, $isfile = false, $passwords = array())
{
}
public function export($key, $with_private = false, $passwords = array())
{
}
public function list_keys($pattern='')
{
}
public function get_key($keyid)
{
}
public function gen_key($data)
{
}
public function delete_key($keyid)
{
}
/**
* Converts Crypt_GPG_Key object into Enigma's key object
*
* @param Crypt_GPG_Key Key object
*
* @return enigma_key Key object
*/
private function parse_key($key)
{
/*
$ekey = new enigma_key();
foreach ($key->getUserIds() as $idx => $user) {
$id = new enigma_userid();
$id->name = $user->getName();
$id->comment = $user->getComment();
$id->email = $user->getEmail();
$id->valid = $user->isValid();
$id->revoked = $user->isRevoked();
$ekey->users[$idx] = $id;
}
$ekey->name = trim($ekey->users[0]->name . ' <' . $ekey->users[0]->email . '>');
foreach ($key->getSubKeys() as $idx => $subkey) {
$skey = new enigma_subkey();
$skey->id = $subkey->getId();
$skey->revoked = $subkey->isRevoked();
$skey->created = $subkey->getCreationDate();
$skey->expires = $subkey->getExpirationDate();
$skey->fingerprint = $subkey->getFingerprint();
$skey->has_private = $subkey->hasPrivate();
$ekey->subkeys[$idx] = $skey;
};
$ekey->id = $ekey->subkeys[0]->id;
return $ekey;
*/
}
private function get_openssl_error()
{
$tmp = array();
while ($errorstr = openssl_error_string()) {
$tmp[] = $errorstr;
}
return join("\n", array_values($tmp));
}
private function parse_sig_cert($file, $validity)
{
$cert = openssl_x509_parse(file_get_contents($file));
if (empty($cert) || empty($cert['subject'])) {
$errorstr = $this->get_openssl_error();
return new enigma_error(enigma_error::INTERNAL, $errorstr);
}
$data = new enigma_signature();
$data->id = $cert['hash']; //?
$data->valid = $validity;
$data->fingerprint = $cert['serialNumber'];
$data->created = $cert['validFrom_time_t'];
$data->expires = $cert['validTo_time_t'];
$data->name = $cert['subject']['CN'];
// $data->comment = '';
$data->email = $cert['subject']['emailAddress'];
return $data;
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,56 @@
<?php
/**
+-------------------------------------------------------------------------+
| Error class for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_error
{
private $code;
private $message;
private $data = array();
// error codes
const OK = 0;
const INTERNAL = 1;
const NODATA = 2;
const KEYNOTFOUND = 3;
const DELKEY = 4;
const BADPASS = 5;
const EXPIRED = 6;
const UNVERIFIED = 7;
function __construct($code = null, $message = '', $data = array())
{
$this->code = $code;
$this->message = $message;
$this->data = $data;
}
function getCode()
{
return $this->code;
}
function getMessage()
{
return $this->message;
}
function getData($name)
{
return $name ? $this->data[$name] : $this->data;
}
}
@@ -0,0 +1,167 @@
<?php
/**
+-------------------------------------------------------------------------+
| Key class for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_key
{
public $id;
public $name;
public $users = array();
public $subkeys = array();
public $reference;
public $password;
const TYPE_UNKNOWN = 0;
const TYPE_KEYPAIR = 1;
const TYPE_PUBLIC = 2;
const CAN_ENCRYPT = 1;
const CAN_SIGN = 2;
const CAN_CERTIFY = 4;
const CAN_AUTHENTICATE = 8;
/**
* Keys list sorting callback for usort()
*/
static function cmp($a, $b)
{
return strcmp($a->name, $b->name);
}
/**
* Returns key type
*/
function get_type()
{
if ($this->subkeys[0]->has_private)
return enigma_key::TYPE_KEYPAIR;
else if (!empty($this->subkeys[0]))
return enigma_key::TYPE_PUBLIC;
return enigma_key::TYPE_UNKNOWN;
}
/**
* Returns true if all user IDs are revoked
*/
function is_revoked()
{
foreach ($this->subkeys as $subkey)
if (!$subkey->revoked)
return false;
return true;
}
/**
* Returns true if any user ID is valid
*/
function is_valid()
{
foreach ($this->users as $user)
if ($user->valid)
return true;
return false;
}
/**
* Returns true if any of subkeys is not expired
*/
function is_expired()
{
$now = time();
foreach ($this->subkeys as $subkey)
if (!$subkey->expires || $subkey->expires > $now)
return true;
return false;
}
/**
* Returns true if any of subkeys is a private key
*/
function is_private()
{
$now = time();
foreach ($this->subkeys as $subkey)
if ($subkey->has_private)
return true;
return false;
}
/**
* Get key ID by user email
*/
function find_subkey($email, $mode)
{
$now = time();
foreach ($this->users as $user) {
if (strcasecmp($user->email, $email) === 0 && $user->valid && !$user->revoked) {
foreach ($this->subkeys as $subkey) {
if (!$subkey->revoked && (!$subkey->expires || $subkey->expires > $now)) {
if ($subkey->usage & $mode) {
return $subkey;
}
}
}
}
}
}
/**
* Converts long ID or Fingerprint to short ID
* Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID
*
* @param string Key ID or fingerprint
* @return string Key short ID
*/
static function format_id($id)
{
// E.g. 04622F2089E037A5 => 89E037A5
return substr($id, -8);
}
/**
* Formats fingerprint string
*
* @param string Key fingerprint
*
* @return string Formatted fingerprint (with spaces)
*/
static function format_fingerprint($fingerprint)
{
if (!$fingerprint) {
return '';
}
$result = '';
for ($i=0; $i<40; $i++) {
if ($i % 4 == 0) {
$result .= ' ';
}
$result .= $fingerprint[$i];
}
return $result;
}
}
@@ -0,0 +1,294 @@
<?php
/**
+-------------------------------------------------------------------------+
| Mail_mime wrapper for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_mime_message extends Mail_mime
{
const PGP_SIGNED = 1;
const PGP_ENCRYPTED = 2;
protected $type;
protected $message;
protected $body;
protected $signature;
protected $encrypted;
/**
* Object constructor
*
* @param Mail_mime Original message
* @param int Output message type
*/
function __construct($message, $type)
{
$this->message = $message;
$this->type = $type;
// clone parameters
foreach (array_keys($this->build_params) as $param) {
$this->build_params[$param] = $message->getParam($param);
}
// clone headers
$this->headers = $message->headers();
// \r\n is must-have here
$this->body = $message->get() . "\r\n";
}
/**
* Check if the message is multipart (requires PGP/MIME)
*
* @return bool True if it is multipart, otherwise False
*/
public function isMultipart()
{
return $this->message instanceof enigma_mime_message
|| $this->message->isMultipart() || $this->message->getHTMLBody();
}
/**
* Get e-mail address of message sender
*
* @return string Sender address
*/
public function getFromAddress()
{
// get sender address
$headers = $this->message->headers();
$from = rcube_mime::decode_address_list($headers['From'], 1, false, null, true);
$from = $from[1];
return $from;
}
/**
* Get recipients' e-mail addresses
*
* @return array Recipients' addresses
*/
public function getRecipients()
{
// get sender address
$headers = $this->message->headers();
$to = rcube_mime::decode_address_list($headers['To'], null, false, null, true);
$cc = rcube_mime::decode_address_list($headers['Cc'], null, false, null, true);
$bcc = rcube_mime::decode_address_list($headers['Bcc'], null, false, null, true);
$recipients = array_unique(array_merge($to, $cc, $bcc));
$recipients = array_diff($recipients, array('undisclosed-recipients:'));
return $recipients;
}
/**
* Get original message body, to be encrypted/signed
*
* @return string Message body
*/
public function getOrigBody()
{
$_headers = $this->message->headers();
$headers = array();
if ($_headers['Content-Transfer-Encoding']
&& stripos($_headers['Content-Type'], 'multipart') === false
) {
$headers[] = 'Content-Transfer-Encoding: ' . $_headers['Content-Transfer-Encoding'];
}
$headers[] = 'Content-Type: ' . $_headers['Content-Type'];
return implode("\r\n", $headers) . "\r\n\r\n" . $this->body;
}
/**
* Register signature attachment
*
* @param string Signature body
*/
public function addPGPSignature($body)
{
$this->signature = $body;
// Reset Content-Type to be overwritten with valid boundary
unset($this->headers['Content-Type']);
unset($this->headers['Content-Transfer-Encoding']);
}
/**
* Register encrypted body
*
* @param string Encrypted body
*/
public function setPGPEncryptedBody($body)
{
$this->encrypted = $body;
// Reset Content-Type to be overwritten with valid boundary
unset($this->headers['Content-Type']);
unset($this->headers['Content-Transfer-Encoding']);
}
/**
* Builds the multipart message.
*
* @param array $params Build parameters that change the way the email
* is built. Should be associative. See $_build_params.
* @param resource $filename Output file where to save the message instead of
* returning it
* @param boolean $skip_head True if you want to return/save only the message
* without headers
*
* @return mixed The MIME message content string, null or PEAR error object
*/
public function get($params = null, $filename = null, $skip_head = false)
{
if (isset($params)) {
while (list($key, $value) = each($params)) {
$this->build_params[$key] = $value;
}
}
$this->checkParams();
if ($this->type == self::PGP_SIGNED) {
$params = array(
'preamble' => "This is an OpenPGP/MIME signed message (RFC 4880 and 3156)",
'content_type' => "multipart/signed; micalg=pgp-sha1; protocol=\"application/pgp-signature\"",
'eol' => $this->build_params['eol'],
);
$message = new Mail_mimePart('', $params);
if (!empty($this->body)) {
$headers = $this->message->headers();
$params = array('content_type' => $headers['Content-Type']);
if ($headers['Content-Transfer-Encoding']
&& stripos($headers['Content-Type'], 'multipart') === false
) {
$params['encoding'] = $headers['Content-Transfer-Encoding'];
}
$message->addSubpart($this->body, $params);
}
if (!empty($this->signature)) {
$message->addSubpart($this->signature, array(
'filename' => 'signature.asc',
'content_type' => 'application/pgp-signature',
'disposition' => 'attachment',
'description' => 'OpenPGP digital signature',
));
}
}
else if ($this->type == self::PGP_ENCRYPTED) {
$params = array(
'preamble' => "This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)",
'content_type' => "multipart/encrypted; protocol=\"application/pgp-encrypted\"",
'eol' => $this->build_params['eol'],
);
$message = new Mail_mimePart('', $params);
$message->addSubpart('Version: 1', array(
'content_type' => 'application/pgp-encrypted',
'description' => 'PGP/MIME version identification',
));
$message->addSubpart($this->encrypted, array(
'content_type' => 'application/octet-stream',
'description' => 'PGP/MIME encrypted message',
'disposition' => 'inline',
'filename' => 'encrypted.asc',
));
}
// Use saved boundary
if (!empty($this->build_params['boundary'])) {
$boundary = $this->build_params['boundary'];
}
else {
$boundary = null;
}
// Write output to file
if ($filename) {
// Append mimePart message headers and body into file
$headers = $message->encodeToFile($filename, $boundary, $skip_head);
if ($this->isError($headers)) {
return $headers;
}
$this->headers = array_merge($this->headers, $headers);
return;
}
else {
$output = $message->encode($boundary, $skip_head);
if ($this->isError($output)) {
return $output;
}
$this->headers = array_merge($this->headers, $output['headers']);
return $output['body'];
}
}
/**
* Get Content-Type and Content-Transfer-Encoding headers of the message
*
* @return array Headers array
*/
protected function contentHeaders()
{
$this->checkParams();
$eol = $this->build_params['eol'] ?: "\r\n";
// multipart message: and boundary
if (!empty($this->build_params['boundary'])) {
$boundary = $this->build_params['boundary'];
}
else if (!empty($this->headers['Content-Type'])
&& preg_match('/boundary="([^"]+)"/', $this->headers['Content-Type'], $m)
) {
$boundary = $m[1];
}
else {
$boundary = '=_' . md5(rand() . microtime());
}
$this->build_params['boundary'] = $boundary;
if ($this->type == self::PGP_SIGNED) {
$headers['Content-Type'] = "multipart/signed; micalg=pgp-sha1;$eol"
." protocol=\"application/pgp-signature\";$eol"
." boundary=\"$boundary\"";
}
else if ($this->type == self::PGP_ENCRYPTED) {
$headers['Content-Type'] = "multipart/encrypted;$eol"
." protocol=\"application/pgp-encrypted\";$eol"
." boundary=\"$boundary\"";
}
return $headers;
}
}
@@ -0,0 +1,32 @@
<?php
/**
+-------------------------------------------------------------------------+
| Signature class for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_signature
{
public $id;
public $valid;
public $fingerprint;
public $created;
public $expires;
public $name;
public $comment;
public $email;
// Set it to true if signature is valid, but part of the message
// was out of the signed block
public $partial;
}
@@ -0,0 +1,79 @@
<?php
/**
+-------------------------------------------------------------------------+
| SubKey class for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_subkey
{
public $id;
public $fingerprint;
public $expires;
public $created;
public $revoked;
public $has_private;
public $algorithm;
public $length;
public $usage;
/**
* Converts internal ID to short ID
* Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID
*
* @return string Key ID
*/
function get_short_id()
{
// E.g. 04622F2089E037A5 => 89E037A5
return enigma_key::format_id($this->id);
}
/**
* Getter for formatted fingerprint
*
* @return string Formatted fingerprint
*/
function get_fingerprint()
{
return enigma_key::format_fingerprint($this->fingerprint);
}
/**
* Returns human-readable name of the key's algorithm
*
* @return string Algorithm name
*/
function get_algorithm()
{
// http://tools.ietf.org/html/rfc4880#section-9.1
switch ($this->algorithm) {
case 1:
case 2:
case 3:
return 'RSA';
case 16:
case 20:
return 'Elgamal';
case 17:
return 'DSA';
case 18:
return 'Elliptic Curve';
case 19:
return 'ECDSA';
case 21:
return 'Diffie-Hellman';
}
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,25 @@
<?php
/**
+-------------------------------------------------------------------------+
| User ID class for the Enigma Plugin |
| |
| Copyright (C) 2010-2015 The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-------------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-------------------------------------------------------------------------+
*/
class enigma_userid
{
public $revoked;
public $valid;
public $name;
public $comment;
public $email;
}
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Криптиране';
$labels['enigmacerts'] = 'S/MIME сертификати';
$labels['enigmakeys'] = 'PGP ключове';
$labels['keysfromto'] = 'Ключове $from до $to от $count';
$labels['keyname'] = 'Име';
$labels['keyid'] = 'ИН на ключ';
$labels['keyuserid'] = 'ИН на потребител';
$labels['keytype'] = 'Тип на ключ';
$labels['fingerprint'] = 'Пръстов отпечатък';
$labels['subkeys'] = 'Подключове';
$labels['basicinfo'] = 'Основна информация';
$labels['userids'] = 'Допълнителни потребители';
$labels['typepublickey'] = 'публичен ключ';
$labels['typekeypair'] = 'ключова двойка';
$labels['keyattfound'] = 'Това писмо съдържа прикрепени PGP ключове';
$labels['keyattimport'] = 'Импорт на ключове';
$labels['typesign'] = 'Подпиши';
$labels['typeencrypt'] = 'Криптирай';
$labels['typecert'] = 'Удостовери';
$labels['typeauth'] = 'Удостоверяване';
$labels['subkeyid'] = 'ИН';
$labels['subkeyalgo'] = 'Алгоритъм';
$labels['subkeycreated'] = 'Създаден на';
$labels['subkeyexpires'] = 'Изтича на';
$labels['subkeyusage'] = 'Използван';
$labels['expiresnever'] = 'никога';
$labels['unknown'] = 'неизвестно';
$labels['uservalid'] = 'Валиден';
$labels['userid'] = 'ИН';
$labels['valid'] = 'валиден';
$labels['supportencryption'] = 'Включи криптиране и подписване на писма';
$labels['supportsignatures'] = 'Включи верификация на подписи в писма';
$labels['supportdecryption'] = 'Включи декриптиране на писма';
$labels['signdefault'] = 'Подписвай всички писма по подразбиране';
$labels['encryptdefault'] = 'Криптирай всички писма по подразбиране';
$labels['attachpubkeydefault'] = 'Прикрепи по подразбирне моя публичен PGP ключ';
$labels['passwordtime'] = 'Запомни паролата на частния ключ за';
$labels['nminutes'] = '$m минути';
$labels['wholesession'] = 'цялата сесия';
$labels['createkeys'] = 'Създай нова ключова двойка';
$labels['importkeys'] = 'Импорт на ключове';
$labels['exportkeys'] = 'Експорт на ключове';
$labels['keyactions'] = 'Действия...';
$labels['keyremove'] = 'Изтриване';
$labels['keydisable'] = 'Деактивиране';
$labels['keyrevoke'] = 'Отмяна';
$labels['keysend'] = 'Изпрати писмо с публичен ключ';
$labels['keychpass'] = 'Промени паролата';
$labels['newkeyident'] = 'Самоличност:';
$labels['newkeypass'] = 'Парола:';
$labels['newkeypassconfirm'] = 'Потвърди паролата:';
$labels['newkeysize'] = 'Размер на ключа:';
$labels['key2048'] = '2048 бита (по подразбиране)';
$labels['key4096'] = '4096 бита (по-сигурен)';
$labels['keygenerating'] = 'Генериране на ключове...';
$labels['encryptionoptions'] = 'Опции за криптиране...';
$labels['encryptmsg'] = 'Криптирай това писмо';
$labels['signmsg'] = 'Подпиши това писмо';
$labels['enterkeypasstitle'] = 'Въведете парола на ключа';
$labels['enterkeypass'] = 'Нужна е парола за отваряне на ключ ($keyid) за потребител $user.';
$labels['arialabelkeyexportoptions'] = 'Опции за експорт на ключ';
$labels['attachpubkeymsg'] = 'Прикрепи моя публичен ключ';
$labels['keyexportprompt'] = 'Желаете ли да включите секретните ключове в записания OpenPGP файл?';
$labels['onlypubkeys'] = 'Експорт само на Публичните ключове';
$labels['withprivkeys'] = 'Експорт на Секретни ключове';
$labels['findkey'] = 'Търси на сървъри за ключове';
$labels['keyimportlabel'] = 'Импорт от файл';
$labels['keyimportsearchlabel'] = 'Търси на сървъри за ключове';
$messages['sigvalid'] = 'Верифициран подпис от $sender.';
$messages['sigvalidpartial'] = 'Верифициран подпис от $sender, но част от съдържанието на писмото не е било подписано';
$messages['siginvalid'] = 'Невалиден подпис от $sender.';
$messages['sigunverified'] = 'Неверифициран подпис. Сертификатът не е верифициран. Сертификат с ИН $keyid.';
$messages['signokey'] = 'Неверифициран подпис. Публичния ключ не е намерен. Ключ с ИН $keyid.';
$messages['sigerror'] = 'Неверифициран подпис. Вътрешна грешка.';
$messages['decryptok'] = 'Писмото е декриптирано.';
$messages['decrypterror'] = 'Невъзможно декриптиране.';
$messages['decryptnokey'] = 'Невъзможно декриптиране. Частният ключ не е намерен. Ключ с ИН $keyid.';
$messages['decryptnopass'] = 'Невъзможно декриптиране. Паролата на частния ключ е задължителна.';
$messages['decryptpartial'] = 'Писмото е декриптирано, но част от съдържанието му не е било защитено с криптиране.';
$messages['signerror'] = 'Невъзможно подписване.';
$messages['signnokey'] = 'Невъзможно подписване. Частният ключ не е намерен.';
$messages['signnopass'] = 'Невъзможно подписване. Паролата на частния ключ е задължителна.';
$messages['encrypterror'] = 'Невъзможно криптиране.';
$messages['encryptnokey'] = 'Невъзможно криптиране. Публичният ключ не е намерен за $email.';
$messages['nokeysfound'] = 'Не са намерени ключове';
$messages['keynotfound'] = 'Ключът не е намерен!';
$messages['keyopenerror'] = 'Невъзможно получаване на информация за ключа! Вътрешна грешка.';
$messages['keylisterror'] = 'Невъзможно получаване на ключове! Вътрешна грешка.';
$messages['keysimportfailed'] = 'Невъзможно импортиране на ключове! Вътрешна грешка.';
$messages['keysimportsuccess'] = 'Ключовете са импортирани успешно. Импортирани $new, непроменени $old.';
$messages['keyremoving'] = 'Изтриване на ключове...';
$messages['keyremoveconfirm'] = 'Желаете ли да изтриете избраните ключове?';
$messages['keyremovesuccess'] = 'Ключовете са изтрити успешно.';
$messages['keyremoveerror'] = 'Невъзможно изтриване на ключове.';
$messages['keyimporttext'] = 'Можете да импортирате частни и публични ключове или сигнатури за отмяна в ASCII-Armor формат.';
$messages['keyimportsearchtext'] = 'Можете да търсите публични ключове по идентификатор, потребитлско име или адрес на ел. поща, след което директно да ги импортирате.';
$messages['formerror'] = 'Моля попълнете формата. Всички полета са задължителни!';
$messages['passwordsdiffer'] = 'Паролите не съвпадат!';
$messages['keygenerateerror'] = 'Невъзможно генериране на ключова двойка';
$messages['keygeneratesuccess'] = 'Ключовата двойка е генерирана и импортирана успешно.';
$messages['keygennosupport'] = 'Вашият браузър не поддържа нужните криптографски методи. Невъзможно генериране на ключова двойка.';
$messages['noidentselected'] = 'Трябва да избере поне една самоличност за този ключ!';
$messages['nonameident'] = 'Самоличността трябва да има дефинирано потребителско име!';
?>
@@ -0,0 +1,117 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Enrinegañ';
$labels['enigmacerts'] = 'Testenioù S/MIME';
$labels['enigmakeys'] = 'Alc\'hwezioù PGP';
$labels['keysfromto'] = 'Alc\'hwezioù $from da $to war $count';
$labels['keyname'] = 'Anv';
$labels['keyid'] = 'Naoudi an alc\'hwez';
$labels['keyuserid'] = 'Naoudi an arveriad';
$labels['keytype'] = 'Rizh an alc\'hwez';
$labels['fingerprint'] = 'Roudoù-biz';
$labels['subkeys'] = 'Is-alc\'hwez';
$labels['basicinfo'] = 'Titouroù diazez';
$labels['userids'] = 'Arveriaded ouzhpenn';
$labels['typepublickey'] = 'alc\'hwez foran';
$labels['typekeypair'] = 'daouad alc\'hwezioù';
$labels['keyattfound'] = 'Alc\'hwezioù PGP a zo staget d\'ar gemennadenn-mañ.';
$labels['keyattimport'] = 'Enporzhiañ an alc\'hwez(ioù)';
$labels['typesign'] = 'Sinañ';
$labels['typeencrypt'] = 'Enrinegañ';
$labels['typecert'] = 'Testeniañ';
$labels['typeauth'] = 'Dilesa';
$labels['subkeyid'] = 'Naoudi';
$labels['subkeyalgo'] = 'Treol';
$labels['subkeycreated'] = 'Krouet';
$labels['subkeyexpires'] = 'Diamzeriñ';
$labels['subkeyusage'] = 'Arver';
$labels['expiresnever'] = 'morse';
$labels['unknown'] = 'dianav';
$labels['uservalid'] = 'Talvoudek';
$labels['userid'] = 'Naoudi';
$labels['valid'] = 'talvoudek';
$labels['supportencryption'] = 'Gweredekaat enrinegañ ha sinañ ar c\'hemennadennoù';
$labels['supportsignatures'] = 'Gweredekaat gwiriañ sinadur ar c\'hemennadennoù';
$labels['supportdecryption'] = 'Gweredekaat ezrinegañ ar c\'hemennadennoù';
$labels['signdefault'] = 'Sinañ an goll gemennadennoù dre ziouer';
$labels['encryptdefault'] = 'Enrinegañ an holl gemennadennoù dre ziouer ';
$labels['attachpubkeydefault'] = 'Kenstagañ ma alc\'hwez foran PGP dre ziouer';
$labels['passwordtime'] = 'Mirout gerioù-tremen an alc\'hwezioù prevez e-pad ';
$labels['nminutes'] = '$m a vunutennoù';
$labels['wholesession'] = 'an estez a-bezh';
$labels['createkeys'] = 'Krouiñ un daouad alc\'hwezioù nevez';
$labels['importkeys'] = 'Enporzhiañ un alc\'hwez';
$labels['exportkeys'] = 'Ezporzhiañ un alc\'hwez';
$labels['keyactions'] = 'Gweredoù an alc\'hwez...';
$labels['keyremove'] = 'Dilemel';
$labels['keydisable'] = 'Diweredekaat';
$labels['keyrevoke'] = 'Dizorniañ';
$labels['keysend'] = 'Kas an alc\'hwez foran en ur gemennadenn';
$labels['keychpass'] = 'Kemmañ ar ger-tremen';
$labels['newkeyident'] = 'Pivelezh:';
$labels['newkeypass'] = 'Ger-tremen:';
$labels['newkeypassconfirm'] = 'Kadarnaat ar ger-tremen:';
$labels['newkeysize'] = 'Ment an alc\'hwez:';
$labels['key2048'] = '2048 bit - dre ziouer';
$labels['key4096'] = '4096 bit - diogeloc\'h';
$labels['keygenerating'] = 'O c\'henel an alc\'hwezioù...';
$labels['encryptionoptions'] = 'Dibarzhioù enrinegañ...';
$labels['encryptmsg'] = 'Enrinegañ ar gemennadenn-mañ';
$labels['signmsg'] = 'Sinañ ent niverel ar gemennadenn-mañ';
$labels['enterkeypasstitle'] = 'Enankañ frazenn-dremen an alc\'hwez';
$labels['enterkeypass'] = 'Ur frazenn-dremen a zo dleet evit dibrennañ an alc\'hwez prevez ($keyid= evit an arveriad: $user';
$labels['arialabelkeyexportoptions'] = 'Dibarzhioù ezporzhiañ an alc\'hwezioù';
$labels['attachpubkeymsg'] = 'Stagañ ma alc\'hwez foran';
$labels['keyexportprompt'] = 'Fellout a ra deoc\'h enkorfañ an alc\'hwezioù kuzh er restr alc\'hwezioù OpenPGP enrollet?';
$labels['onlypubkeys'] = 'Ezporzhiañ an alc\'hwezhioù foran hepken';
$labels['withprivkeys'] = 'Ezporzhiañ an alc\'hwezioù kuzh';
$labels['findkey'] = 'Klask war an dafariad(où) alc\'hwezioù';
$messages['sigvalid'] = 'Sinadur gwiriet a-berzh $sender.';
$messages['sigvalidpartial'] = 'Sinadur gwiriet a-berzh $sender, met ul lodenn eus ar c\'horf n\'eo ket enrineget.';
$messages['siginvalid'] = 'Sinadur didalvoudek a-berzh $sender.';
$messages['sigunverified'] = 'Sinadur amwiriet. testeni amwiriet. Naoudi an testeni: $keyid.';
$messages['signokey'] = 'Sinadur amwiriet. Alc\'hwez foran ebet kavet. Naoudi an alc\'hwez: $keyid.';
$messages['sigerror'] = 'Sinadur amwiriet. Fazi diabarzh.';
$messages['decryptok'] = 'Kemennadenn ezrineget.';
$messages['decrypterror'] = 'Ezrinegañ c\'hwitet.';
$messages['decryptnokey'] = 'Ezrinegañ c\'hwitet. Alc\'hwez prevez ebet kavet. Naoudi an alc\'hwez: $keyid.';
$messages['decryptnopass'] = 'Ezrinegañ c\'hwitet. Frazenn-dremen azgoulennet.';
$messages['decryptpartial'] = 'Kemennadenn ezrineget, met ul lodenn eus ar c\'horf ne oa ket enrineget.';
$messages['signerror'] = 'Sinadur c\'hwitet.';
$messages['signnokey'] = 'Sinadur c\'hwitet. Alc\'hwez prevez ebet kavet.';
$messages['signnopass'] = 'Sinadur c\'hwitet. Frazenn-dremen azgoulennet.';
$messages['encrypterror'] = 'Enrinegañ c\'hwitet.';
$messages['encryptnokey'] = 'Enrinegañ c\'hwitet. N\'eo ket bet kavet an alc\'hwez foran evit $email.';
$messages['nokeysfound'] = 'Alc\'hwez ebet kavet';
$messages['keynotfound'] = 'N\'eo ket bet kavet an alc\'hwez!';
$messages['keyopenerror'] = 'N\'haller ket kaout titouroù an alc\'hwez! Fazi diabarzh.';
$messages['keylisterror'] = 'N\'haller ket rollañ an alc\'hwezioù! Fazi diabarzh.';
$messages['keysimportfailed'] = 'N\'haller ket enporzhiañ an alc\'hwez(ioù)! Fazi diabarzh.';
$messages['keysimportsuccess'] = 'Alc\'hwez(ioù) enporzhiet gant berzh. Enporzhiet: $new, digemm: $old.';
$messages['keyremoving'] = 'O tilemel an alc\'hwez(ioù)...';
$messages['keyremoveconfirm'] = 'Fellout a ra deoc\'h dilemel an alc\'hwez(ioù) diuzet?';
$messages['keyremovesuccess'] = 'Alc\'hwez(ioù) dilamet gant berzh';
$messages['keyremoveerror'] = 'N\'haller ket dilemel an alc\'hwez(ioù) diuzet.';
$messages['keyimporttext'] = 'Gallout a rit enporzhiañ alc\'hwez(ioù) foran ha prevez pe sinadurioù dizorniañ er mentrezh ASCII-Armor.';
$messages['formerror'] = 'Ret eo leuniañ ar furmskrid. An holl vaeziennoù a zo dleet!';
$messages['passwordsdiffer'] = 'Ne glot ket ar gerioù-tremen!';
$messages['keygenerateerror'] = 'C\'hwitadenn war ganedigezh un daouad alc\'hwezhioù';
$messages['keygeneratesuccess'] = 'Ganet hag enporzhiet eo bet un daouad alc\'hwezioù gant berzh. ';
$messages['keygennosupport'] = 'N\'eo ket skoret an enrinegañ gant ho merdeer web. N\'haller ket genel un alc\'hwez nevez.';
$messages['nonameident'] = 'Ret eo d\'ar pivelezh kaout un anv arveriad despizet!';
?>
@@ -0,0 +1,115 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Šifrování';
$labels['enigmacerts'] = 'S/MIME certifikáty';
$labels['enigmakeys'] = 'PGP klíče';
$labels['keysfromto'] = 'Klíče $from až $to z počtu: $count';
$labels['keyname'] = 'Jméno';
$labels['keyid'] = 'ID Klíče';
$labels['keyuserid'] = 'ID uživatele';
$labels['keytype'] = 'Typ klíče';
$labels['fingerprint'] = 'Otisk prstu';
$labels['subkeys'] = 'Podklíče';
$labels['basicinfo'] = 'Základní informace';
$labels['userids'] = 'Další uživatelé';
$labels['typepublickey'] = 'veřejný klíč';
$labels['typekeypair'] = 'pár klíčů';
$labels['keyattfound'] = 'Tato zpráva má přiložený/é PGP klíč(e).';
$labels['keyattimport'] = 'Importovat klíč(e)';
$labels['typesign'] = 'Podepsat';
$labels['typeencrypt'] = 'Zašifrovat';
$labels['typecert'] = 'Certifikovat';
$labels['typeauth'] = 'Autentizace';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmus';
$labels['subkeycreated'] = 'Vytvořený';
$labels['subkeyexpires'] = 'Vyprší';
$labels['subkeyusage'] = 'Použití';
$labels['expiresnever'] = 'nikdy';
$labels['unknown'] = 'neznámý';
$labels['uservalid'] = 'Správný';
$labels['userid'] = 'ID';
$labels['valid'] = 'správný';
$labels['supportencryption'] = 'Povolit podepisování a šifrování zpráv.';
$labels['supportsignatures'] = 'Povolit ověřování podpisů zpráv.';
$labels['supportdecryption'] = 'Povolit dešifrování zpráv.';
$labels['signdefault'] = 'Podepisovat všechny zprávy';
$labels['encryptdefault'] = 'Šifrovat všechny zprávy';
$labels['passwordtime'] = 'Uchovat hesla pro privátní klíče pro';
$labels['nminutes'] = '$m minut(a)';
$labels['wholesession'] = 'celá relace';
$labels['createkeys'] = 'Vytvořit nový pár klíčů';
$labels['importkeys'] = 'Importovat klíč(e)';
$labels['exportkeys'] = 'Exportovat klíč(e)';
$labels['keyactions'] = 'Akce s klíčem...';
$labels['keyremove'] = 'Smazat';
$labels['keydisable'] = 'Vypnout';
$labels['keyrevoke'] = 'Revokovat';
$labels['keysend'] = 'Odeslat veřejný klíč ve zprávě';
$labels['keychpass'] = 'Změnit heslo';
$labels['newkeyident'] = 'Identita:';
$labels['newkeypass'] = 'Heslo:';
$labels['newkeypassconfirm'] = 'Potvrdit heslo:';
$labels['newkeysize'] = 'Velikost klíče:';
$labels['key2048'] = '2048 bitů - výchozí';
$labels['key4096'] = '4093 bítů - více bezpečné';
$labels['keygenerating'] = 'Generuji klíče...';
$labels['encryptionoptions'] = 'Možnosti šifrování...';
$labels['encryptmsg'] = 'Zašifrovat tuto zprávu';
$labels['signmsg'] = 'Digitálně podepsat tuto zprávu';
$labels['enterkeypasstitle'] = 'Zadejte heslo pro klíč';
$labels['enterkeypass'] = 'Heslo je nutné k odemknutí soukromého klíče ($keyid) pro uživatele: $user.';
$labels['arialabelkeyexportoptions'] = 'Možnosti pro export klíčů';
$labels['attachpubkeymsg'] = 'Připojit můj veřejný klíč';
$labels['onlypubkeys'] = 'Exportovat pouze veřejné klíče';
$labels['withprivkeys'] = 'Exportovat soukromé klíče';
$labels['keyimportlabel'] = 'Importovat ze souboru';
$labels['keyimportsearchlabel'] = 'Hledat klíč na keyserveru';
$messages['sigvalid'] = 'Ověřený podpis od $sender.';
$messages['sigvalidpartial'] = 'Ověřený podpis od $sender, ale část těla není podepsána.';
$messages['siginvalid'] = 'Nesprávný podpis od $sender.';
$messages['sigunverified'] = 'Neověřený podpis. Certifikát není ověřen. ID certifikátu: $keyid.';
$messages['signokey'] = 'Neověřený podpis. Veřejný klíč nebyl nalezen. ID klíče: $keyid.';
$messages['sigerror'] = 'Neověřený podpis. Interní chyba.';
$messages['decryptok'] = 'Zpráva byla dešifrována.';
$messages['decrypterror'] = 'Dešifrování selhalo.';
$messages['decryptnokey'] = 'Dešifrování selhalo. Veřejný klíč nebyl nalezen. ID klíče: $keyid.';
$messages['decryptnopass'] = 'Dešifrování selhalo. Heslo pro klíč je požadováno.';
$messages['signerror'] = 'Podepisování selhalo.';
$messages['signnokey'] = 'Podepisování selhalo. Soukromý klíč nebyl nalezen.';
$messages['signnopass'] = 'Podepisování selhalo. Heslo pro klíč je požadováno.';
$messages['encrypterror'] = 'Šifrování selhalo.';
$messages['encryptnokey'] = 'Šifrování selhalo. Veřejný klíč pro email $email nebyl nalezen.';
$messages['nokeysfound'] = 'Nebyly nalezeny žádné klíče.';
$messages['keynotfound'] = 'Klíč nebyl nalezen!';
$messages['keyopenerror'] = 'Nemohu dostat informace o klíči! Interní chyba.';
$messages['keylisterror'] = 'Nemohu získat seznam klíčů! Interní chyba.';
$messages['keysimportfailed'] = 'Nemohu importovat klíč(e)! Interní chyba.';
$messages['keysimportsuccess'] = 'Klíč(e) byl(y) úspěšně naimportován(y). Importovány: $new, nezměněny: $old.';
$messages['keyremoving'] = 'Odstraňuji klíč(e)...';
$messages['keyremoveconfirm'] = 'Opravdu si přejete odstranit vybraný/é klíč(e)?';
$messages['keyremovesuccess'] = 'Klíč(e) byl(y) úspěšně odstraněn(y).';
$messages['keyremoveerror'] = 'Nemohu smazat vybraný/é klíč(e).';
$messages['keyimporttext'] = 'Můžete naimportovat soukromý/é a veřejný/é klíč(e) nebo podpisy pro revokaci ve formátu ASCII-Armor.';
$messages['formerror'] = 'Prosím vyplňte tento formulář. Všechna pole jsou požadována.';
$messages['passwordsdiffer'] = 'Zadaná hesla se neshodují!';
$messages['keygenerateerror'] = 'Selhalo generování páru klíčů';
$messages['keygeneratesuccess'] = 'Pár klíčů byl úspěšně vygenerován a naimportován.';
$messages['keygennosupport'] = 'Váš webový prohlížeč nepodporuje kryptografii. Nemohu vygenerovat pár klíčů.';
$messages['nonameident'] = 'Identita musí mít definované uživatelské jméno.';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Amgryptiad';
$labels['enigmacerts'] = 'Tystysgrifau S/MIME';
$labels['enigmakeys'] = 'Allweddi PGP';
$labels['keysfromto'] = 'Allweddi $from i $to o $count';
$labels['keyname'] = 'Enw';
$labels['keyid'] = 'ID Allwedd';
$labels['keyuserid'] = 'ID Defnyddiwr';
$labels['keytype'] = 'Math o allwedd';
$labels['fingerprint'] = 'Olion bys';
$labels['subkeys'] = 'Isallweddi';
$labels['basicinfo'] = 'Gwybodaeth sylfaenol';
$labels['userids'] = 'Defnyddwyr Ychwanegol';
$labels['typepublickey'] = 'allwedd gyhoeddus';
$labels['typekeypair'] = 'pâr allweddi';
$labels['keyattfound'] = 'Mae\'r neges hwn yn cynnwys allwedd(i) PGP.';
$labels['keyattimport'] = 'Mewnforio allwedd(i)';
$labels['typesign'] = 'Llofnodi';
$labels['typeencrypt'] = 'Amgryptio';
$labels['typecert'] = 'Tystio';
$labels['typeauth'] = 'Dilysiad';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algorithm';
$labels['subkeycreated'] = 'Crëwyd';
$labels['subkeyexpires'] = 'Yn darfod';
$labels['subkeyusage'] = 'Defnydd';
$labels['expiresnever'] = 'byth';
$labels['unknown'] = 'anhysbys';
$labels['uservalid'] = 'Dilys';
$labels['userid'] = 'ID';
$labels['valid'] = 'dilys';
$labels['supportencryption'] = 'Galluogi amgryptio neges a llofnodi';
$labels['supportsignatures'] = 'Galluogi dilys llofnodion neges';
$labels['supportdecryption'] = 'Galluogi dadgryptio neges';
$labels['signdefault'] = 'Llofnodi pob neges yn ddiofyn';
$labels['encryptdefault'] = 'Amgryptio pob neges yn ddiofyn';
$labels['attachpubkeydefault'] = 'Atodi fy allwedd PGP cyhoeddus yn ddiofyn';
$labels['passwordtime'] = 'Cadw cyfrineiriau allweddi preifat am';
$labels['nminutes'] = '$m munud';
$labels['wholesession'] = 'y sesiwn i gyd';
$labels['createkeys'] = 'Creu pâr allweddi newydd';
$labels['importkeys'] = 'Mewnforio allwedd(i)';
$labels['exportkeys'] = 'Allforio allwedd(i)';
$labels['keyactions'] = 'Gweithredoedd allwedd...';
$labels['keyremove'] = 'Dileu';
$labels['keydisable'] = 'Analluogi';
$labels['keyrevoke'] = 'Dirymu';
$labels['keysend'] = 'Danfon allwedd gyhoeddus mewn neges';
$labels['keychpass'] = 'Newid cyfrinair';
$labels['newkeyident'] = 'Personoliaeth:';
$labels['newkeypass'] = 'Cyfrinair:';
$labels['newkeypassconfirm'] = 'Cadarnhau cyfrinair:';
$labels['newkeysize'] = 'Maint allwedd:';
$labels['key2048'] = '2048 did - diofyn';
$labels['key4096'] = '4096 did - mwy cadarn';
$labels['keygenerating'] = 'Yn creu allweddi...';
$labels['encryptionoptions'] = 'Dewisiadau amgryptio...';
$labels['encryptmsg'] = 'Amgryptio\'r neges hwn';
$labels['signmsg'] = 'Llofnodi\'r neges yma yn ddigidol';
$labels['enterkeypasstitle'] = 'Rhowch yr ymadrodd cyfrin';
$labels['enterkeypass'] = 'Mae angen ymadrodd cyfrin i ddatgloi allwedd breifat ($keyid) ar gyfer defnyddiwr: $user:';
$labels['arialabelkeyexportoptions'] = 'Dewisiadau allforio allweddi';
$labels['attachpubkeymsg'] = 'Atodi fy allwedd cyhoeddus';
$labels['keyexportprompt'] = 'Ydych eisiau cynnwys allweddi cyfrinachol yn y ffeil OpenPGP i\'w gadw?';
$labels['onlypubkeys'] = 'Allforio Allweddi Cyhoeddus yn unig';
$labels['withprivkeys'] = 'Allforio Allweddi Cyfrinachol';
$labels['findkey'] = 'Chwilio ar weinydd(wyr) allweddi';
$labels['keyimportlabel'] = 'Mewnforio o ffeil';
$labels['keyimportsearchlabel'] = 'Chwilio ar weinydd(wyr) allweddi';
$messages['sigvalid'] = 'Llofnod wedi ddilysu o $sender.';
$messages['sigvalidpartial'] = 'Llofnod wedi ddilysu o $sender, ond ni arwyddywyd rhan o gorff y neges';
$messages['siginvalid'] = 'Llofnod annilys o $sender.';
$messages['sigunverified'] = 'Llofnod heb ei ddilysu. Tystysgrif heb ei ddilys. ID Tystysgrif: $keyid.';
$messages['signokey'] = 'Llofnod heb ei ddilysu. Allwedd gyhoeddus heb ei ganfod. ID Allwedd: $keyid.';
$messages['sigerror'] = 'Llofnod heb ei ddilysu. Gwall mewnol.';
$messages['decryptok'] = 'Neges wedi ei ddadgryptio.';
$messages['decrypterror'] = 'Dadgryptio wedi methu.';
$messages['decryptnokey'] = 'Dadgryptio wedi methu. Allwedd breifat heb ei ganfod: ID Allwedd: $keyid.';
$messages['decryptnopass'] = 'Dadgryptio wedi methu. Mae angen cyfrinair.';
$messages['decryptpartial'] = 'Dadgryptiwyd y neges, ond roedd darn o gorff y neges heb ei amgryptio';
$messages['signerror'] = 'Llofnodi wedi methu.';
$messages['signnokey'] = 'Llofnodi wedi methu. Allwedd breifat heb ei ganfod.';
$messages['signnopass'] = 'Llofnodi wedi methu. Mae angen cyfrinair.';
$messages['encrypterror'] = 'Amgryptio wedi methu.';
$messages['encryptnokey'] = 'Amgryptio wedi methu. Allwedd cyhoeddus heb ei ganfod ar gyfer $email.';
$messages['nokeysfound'] = 'Ni ganfuwyd unrhyw allweddi';
$messages['keynotfound'] = 'Ni ganfuwyd yr allwedd!';
$messages['keyopenerror'] = 'Methwyd cael gwybodaeth allwedd! Gwall mewnol.';
$messages['keylisterror'] = 'Methwyd cael rhestr allweddi! Gwall mewnol';
$messages['keysimportfailed'] = 'Methwyd mewnforio allwedd(i)! Gwall mewnol.';
$messages['keysimportsuccess'] = 'Mewnforiwyd allwedd(i) yn llwyddiannus. Mewnforiwyd: $new, heb newid: $old.';
$messages['keyremoving'] = 'Yn dileu allwedd(i)...';
$messages['keyremoveconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu yr allwedd(i) dewiswyd?';
$messages['keyremovesuccess'] = 'Allwedd(i) wedi ei dileu yn llwyddiannus';
$messages['keyremoveerror'] = 'Methwyd dileu yr allwedd(i) dewiswyd.';
$messages['keyimporttext'] = 'Fe allwch chi mewnforio allwedd(i) preifat a chyhoeddus neu lofnodion pallu mewn fformat ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Gallwch chwilio am allweddi cyhoeddus yn ol adnabydd allwedd, enw defnyddiwr neu gyfeiriad ebost ac yna eu mewnforio yn uniongyrchol.';
$messages['formerror'] = 'Llenwch y ffurflen os gwelwch yn dda. Mae angen llenwi pob maes!';
$messages['passwordsdiffer'] = 'Nid yw\'r cyfrineiriau yn cyfateb!';
$messages['keygenerateerror'] = 'Methwyd creu pâr allweddi';
$messages['keygeneratesuccess'] = 'Creuwyd a mewnforiwyd pâr allweddi yn llwyddiannus.';
$messages['keygennosupport'] = 'Nid yw\'ch porwr gwe yn cefnogi amgryptio. Methwyd creu pâr allweddi!';
$messages['noidentselected'] = 'Rhaid i chi ddewis o leiaf un hunaniaeth i\'r allwedd!';
$messages['nonameident'] = 'Rhaid i\'r personoliaeth gael enw defnyddiwr wedi ei ddiffinio!';
?>
@@ -0,0 +1,22 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['keyname'] = 'Navn';
$labels['fingerprint'] = 'Fingeravtryk';
$labels['typeencrypt'] = 'Krypter';
$labels['subkeyid'] = 'ID';
?>
@@ -0,0 +1,113 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Verschlüsselung';
$labels['enigmacerts'] = 'S/MIME Zertifikate';
$labels['enigmakeys'] = 'PGP Schlüssel';
$labels['keysfromto'] = 'Schlüssel $from bis $to von $count';
$labels['keyname'] = 'Schlüssel';
$labels['keyid'] = 'Schlüssel ID';
$labels['keyuserid'] = 'Benutzer ID';
$labels['keytype'] = 'Schlüsseltyp';
$labels['fingerprint'] = 'Fingerprint';
$labels['subkeys'] = 'Sub-Schlüssel';
$labels['basicinfo'] = 'Allgemeine Informationen';
$labels['userids'] = 'Zusätzliche Benutzer';
$labels['typepublickey'] = 'Öffentlicher Schlüssel';
$labels['typekeypair'] = 'Schlüsselpaar';
$labels['keyattfound'] = 'Diese Nachricht enthält angehängte PGP Schlüssel.';
$labels['keyattimport'] = 'Schlüssel importieren';
$labels['typesign'] = 'Signieren';
$labels['typeencrypt'] = 'Verschlüsseln';
$labels['typecert'] = 'Bestätigen';
$labels['typeauth'] = 'Authentifizierung';
$labels['subkeyid'] = 'Sub-Schlüssel ID';
$labels['subkeyalgo'] = 'Algorithmus';
$labels['subkeycreated'] = 'Erstellt am';
$labels['subkeyexpires'] = 'Läuft aus';
$labels['subkeyusage'] = 'Verwendet für';
$labels['expiresnever'] = 'nie';
$labels['unknown'] = 'unbekannt';
$labels['uservalid'] = 'Gültigkeit';
$labels['userid'] = 'ID';
$labels['valid'] = 'gültig';
$labels['supportencryption'] = 'Nachrichtenverschlüsselung und Signierung aktivieren';
$labels['supportsignatures'] = 'Verifizierung der Nachrichtensignatur aktivieren';
$labels['supportdecryption'] = 'Entschlüsselung von Nachrichten aktivieren';
$labels['signdefault'] = 'Nachrichten immer signieren';
$labels['encryptdefault'] = 'Nachrichten immer verschlüsseln';
$labels['attachpubkeydefault'] = 'Öffentlichen Schlüssel in der Nachricht anfügen';
$labels['passwordtime'] = 'Private Schlüssel behalten für';
$labels['nminutes'] = '$m Minuten';
$labels['wholesession'] = 'die gesamte Sitzung';
$labels['createkeys'] = 'Neues Schlüsselpaar erstellen';
$labels['importkeys'] = 'Schlüssel importieren';
$labels['exportkeys'] = 'Schlüssel exportieren';
$labels['keyactions'] = 'Aktionen...';
$labels['keyremove'] = 'Entfernen';
$labels['keydisable'] = 'Deaktivieren';
$labels['keyrevoke'] = 'Widerrufen';
$labels['keysend'] = 'Öffentlichen Schlüssel versenden';
$labels['keychpass'] = 'Passwort ändern';
$labels['newkeyident'] = 'Identität:';
$labels['newkeypass'] = 'Passwort:';
$labels['newkeypassconfirm'] = 'Passwort bestätigen:';
$labels['newkeysize'] = 'Schlüssellänge:';
$labels['key2048'] = '2048 bits - standard';
$labels['key4096'] = '4096 bits - sicher';
$labels['keygenerating'] = 'Schlüssel generieren...';
$labels['encryptionoptions'] = 'Verschlüsselungsoptionen';
$labels['encryptmsg'] = 'Diese Nachricht verschlüsseln';
$labels['signmsg'] = 'Diese Nachricht digital signieren';
$labels['enterkeypasstitle'] = 'Bitte Schlüssel Passwort eingeben';
$labels['enterkeypass'] = 'Ein Passwort wird benötigt um den privaten Schlüssel ($keyid) für Benutzer: $user zu entsperren';
$labels['arialabelkeyexportoptions'] = 'Optionen für Schlüsselexport';
$labels['attachpubkeymsg'] = 'Meinen öffentlichen Schlüssel anfügen';
$messages['sigvalid'] = 'Signatur von $sender wurde erfolgreich überprüft.';
$messages['sigvalidpartial'] = 'Signatur von $sender wurde überprüft, aber ein Teil der Nachricht wurde nicht signiert.';
$messages['siginvalid'] = 'Ungültige Signatur von $sender.';
$messages['sigunverified'] = 'Unbestätigte Signatur. Zertifikat nicht überprüft. Zertifikat-ID: $keyid. ';
$messages['signokey'] = 'Unbestätigte Signatur. Öffentlicher Schlüssel wurde nicht gefunden. Schlüssel-ID: $keyid.';
$messages['sigerror'] = 'Unbestätigte Signatur. Interner Fehler.';
$messages['decryptok'] = 'Nachricht entschlüsselt.';
$messages['decrypterror'] = 'Entschlüsselung fehlgeschlagen.';
$messages['decryptnokey'] = 'Entschlüsselung fehlgeschlagen. Privater Schlüssel wurde nicht gefunden. Schlüssel-ID: $keyid.';
$messages['decryptnopass'] = 'Entschlüsselung fehlgeschlagen. Schlüsselpasswort wird benötigt.';
$messages['decryptpartial'] = 'Nachricht entschlüsselt, aber ein Teil der Nachricht wurde nicht verschlüsselt.';
$messages['signerror'] = 'Signierung fehlgeschlagen.';
$messages['signnokey'] = 'Signierung fehlgeschlagen. Privater Schlüssel wurde nicht gefunden.';
$messages['signnopass'] = 'Signierung fehlgeschlagen. Schlüsselpasswort wird benötigt.';
$messages['encrypterror'] = 'Verschlüsselung fehlgeschlagen.';
$messages['encryptnokey'] = 'Verschlüsselung fehlgeschlagen. Öffentlicehr Schlüssel für $email nicht gefunden';
$messages['nokeysfound'] = 'Keine Schlüssel gefunden';
$messages['keynotfound'] = 'Schlüssel nicht gefunden!';
$messages['keyopenerror'] = 'Abrufen der Schlüsselinformationen nicht möglich. Interner Fehler.';
$messages['keylisterror'] = 'Auflisten der Schlüsselinformationen nicht möglich! Interner Fehler.';
$messages['keysimportfailed'] = 'Schlüsselimport fehlgeschlagen! Interner Fehler.';
$messages['keysimportsuccess'] = 'Schlüsselimport erfolgreich. Importiert: $new, unverändert: $old.';
$messages['keyremoving'] = 'Schlüssel entfernen...';
$messages['keyremoveconfirm'] = 'Bist du dir sicher, dass du die ausgewählten Schlüssel entfernen willst?';
$messages['keyremovesuccess'] = 'Schlüssel erfolgreich gelöscht.';
$messages['keyremoveerror'] = 'Löschung der Schlüssel nicht möglich.';
$messages['keyimporttext'] = 'Private und öffentliche Schlüssel sowie zurückgerufene Signaturen können im ASCII-Armor Format importiert werden.';
$messages['formerror'] = 'Bitte, alle Eingabefelder ausfüllen. Alle Eingabefelder werden benötigt!';
$messages['passwordsdiffer'] = 'Passwörter stimmen nicht überein.';
$messages['keygenerateerror'] = 'Schlüsselgenerierung fehlgeschlagen.';
$messages['keygeneratesuccess'] = 'Schlüsselpaar erfolgreich generiert und importiert.';
$messages['keygennosupport'] = 'Dein Browser unterstützt keine Kryptopgraphiefunktionen. Konnte Schlüsselpaar nicht generieren!';
$messages['nonameident'] = 'Identität muss einen Benutzernamen definiert haben.';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Verschlüsselung';
$labels['enigmacerts'] = 'S/MIME-Zertifikate';
$labels['enigmakeys'] = 'PGP-Schlüssel';
$labels['keysfromto'] = 'Schlüssel $from bis $to von $count';
$labels['keyname'] = 'Schlüssel';
$labels['keyid'] = 'Schlüsselkennung';
$labels['keyuserid'] = 'Benutzerkennung';
$labels['keytype'] = 'Schlüsseltyp';
$labels['fingerprint'] = 'Fingerabdruck';
$labels['subkeys'] = 'Unterschlüssel';
$labels['basicinfo'] = 'Allgemeine Informationen';
$labels['userids'] = 'Zusätzliche Benutzer';
$labels['typepublickey'] = 'Öffentlicher Schlüssel';
$labels['typekeypair'] = 'Schlüsselpaar';
$labels['keyattfound'] = 'Diese Nachricht enthält angehängte PGP-Schlüssel.';
$labels['keyattimport'] = 'Schlüssel importieren';
$labels['typesign'] = 'Signieren';
$labels['typeencrypt'] = 'Verschlüsseln';
$labels['typecert'] = 'Bestätigen';
$labels['typeauth'] = 'Authentifizierung';
$labels['subkeyid'] = 'Kennung';
$labels['subkeyalgo'] = 'Algorithmus';
$labels['subkeycreated'] = 'Erstellt am';
$labels['subkeyexpires'] = 'Läuft aus';
$labels['subkeyusage'] = 'Verwendet für';
$labels['expiresnever'] = 'nie';
$labels['unknown'] = 'unbekannt';
$labels['uservalid'] = 'Gültigkeit';
$labels['userid'] = 'Kennung';
$labels['valid'] = 'gültig';
$labels['supportencryption'] = 'Nachrichtenverschlüsselung und Signierung aktivieren';
$labels['supportsignatures'] = 'Verifizierung der Nachrichtensignatur aktivieren';
$labels['supportdecryption'] = 'Entschlüsselung von Nachrichten aktivieren';
$labels['signdefault'] = 'Nachrichten immer signieren';
$labels['encryptdefault'] = 'Nachrichten immer verschlüsseln';
$labels['attachpubkeydefault'] = 'Öffentlichen Schlüssel in der Nachricht anfügen';
$labels['passwordtime'] = 'Private Schlüssel behalten für';
$labels['nminutes'] = '$m Minuten';
$labels['wholesession'] = 'die gesamte Sitzung';
$labels['createkeys'] = 'Neues Schlüsselpaar erstellen';
$labels['importkeys'] = 'Schlüssel importieren';
$labels['exportkeys'] = 'Schlüssel exportieren';
$labels['keyactions'] = 'Aktionen …';
$labels['keyremove'] = 'Entfernen';
$labels['keydisable'] = 'Deaktivieren';
$labels['keyrevoke'] = 'Widerrufen';
$labels['keysend'] = 'Öffentlichen Schlüssel versenden';
$labels['keychpass'] = 'Passwort ändern';
$labels['newkeyident'] = 'Identität:';
$labels['newkeypass'] = 'Passwort:';
$labels['newkeypassconfirm'] = 'Passwort bestätigen:';
$labels['newkeysize'] = 'Schlüssellänge:';
$labels['key2048'] = '2048 Bit - Vorgabe';
$labels['key4096'] = '4096 Bit - mehr Sicherheit';
$labels['keygenerating'] = 'Schlüssel werden erstellt …';
$labels['encryptionoptions'] = 'Verschlüsselungsoptionen';
$labels['encryptmsg'] = 'Diese Nachricht verschlüsseln';
$labels['signmsg'] = 'Diese Nachricht digital signieren';
$labels['enterkeypasstitle'] = 'Bitte Schlüsselpasswort eingeben';
$labels['enterkeypass'] = 'Ein Passwort wird benötigt, um den privaten Schlüssel ($keyid) für Benutzer »$user« zu entsperren.';
$labels['arialabelkeyexportoptions'] = 'Optionen für Schlüsselexport';
$labels['attachpubkeymsg'] = 'Meinen öffentlichen Schlüssel anfügen';
$labels['keyexportprompt'] = 'Möchten Sie geheime Schlüssel in die gespeicherte OpenPGP-Schlüsseldatei mit aufnehmen?';
$labels['onlypubkeys'] = 'Nur öffentliche Schlüssel exportieren';
$labels['withprivkeys'] = 'Geheime Schlüssel exportieren';
$labels['findkey'] = 'Auf Schlüsselserver(n) suchen';
$labels['keyimportlabel'] = 'Aus Datei importieren';
$labels['keyimportsearchlabel'] = 'Auf Schlüsselserver(n) suchen';
$messages['sigvalid'] = 'Signatur von $sender wurde erfolgreich überprüft.';
$messages['sigvalidpartial'] = 'Signatur von $sender wurde überprüft, aber ein Teil der Nachricht wurde nicht signiert.';
$messages['siginvalid'] = 'Ungültige Signatur von $sender.';
$messages['sigunverified'] = 'Unbestätigte Signatur. Zertifikat nicht überprüft. Zertifikatkennung: $keyid. ';
$messages['signokey'] = 'Unbestätigte Signatur. Öffentlicher Schlüssel wurde nicht gefunden. Schlüsselkennung: $keyid.';
$messages['sigerror'] = 'Unbestätigte Signatur. Interner Fehler.';
$messages['decryptok'] = 'Nachricht entschlüsselt.';
$messages['decrypterror'] = 'Entschlüsselung fehlgeschlagen.';
$messages['decryptnokey'] = 'Entschlüsselung fehlgeschlagen. Privater Schlüssel wurde nicht gefunden. Schlüsselkennung: $keyid.';
$messages['decryptnopass'] = 'Entschlüsselung fehlgeschlagen. Schlüsselpasswort wird benötigt.';
$messages['decryptpartial'] = 'Nachricht entschlüsselt, aber ein Teil der Nachricht wurde nicht verschlüsselt.';
$messages['signerror'] = 'Signierung fehlgeschlagen.';
$messages['signnokey'] = 'Signierung fehlgeschlagen. Privater Schlüssel wurde nicht gefunden.';
$messages['signnopass'] = 'Signierung fehlgeschlagen. Schlüsselpasswort wird benötigt.';
$messages['encrypterror'] = 'Verschlüsselung fehlgeschlagen.';
$messages['encryptnokey'] = 'Verschlüsselung fehlgeschlagen. Öffentlicher Schlüssel für $email nicht gefunden';
$messages['nokeysfound'] = 'Keine Schlüssel gefunden';
$messages['keynotfound'] = 'Schlüssel nicht gefunden!';
$messages['keyopenerror'] = 'Abrufen der Schlüsselinformationen nicht möglich. Interner Fehler.';
$messages['keylisterror'] = 'Auflisten der Schlüsselinformationen nicht möglich! Interner Fehler.';
$messages['keysimportfailed'] = 'Schlüsselimport fehlgeschlagen! Interner Fehler.';
$messages['keysimportsuccess'] = 'Schlüsselimport erfolgreich. Importiert: $new, unverändert: $old.';
$messages['keyremoving'] = 'Schlüssel werden entfernt …';
$messages['keyremoveconfirm'] = 'Sind Sie sich sicher, dass Sie die ausgewählten Schlüssel entfernen wollen?';
$messages['keyremovesuccess'] = 'Schlüssel erfolgreich gelöscht.';
$messages['keyremoveerror'] = 'Löschung der Schlüssel nicht möglich.';
$messages['keyimporttext'] = 'Private und öffentliche Schlüssel sowie zurückgerufene Signaturen können im ASCII-Armor Format importiert werden.';
$messages['keyimportsearchtext'] = 'Sie können für öffentliche Schlüssel nach dem Schlüsselbezeichner, Benutzername oder der E-Mail-Adresse suchen und diese dann direkt importieren.';
$messages['formerror'] = 'Bitte, alle Eingabefelder ausfüllen. Alle Eingabefelder werden benötigt!';
$messages['passwordsdiffer'] = 'Passwörter stimmen nicht überein.';
$messages['keygenerateerror'] = 'Schlüsselgenerierung fehlgeschlagen.';
$messages['keygeneratesuccess'] = 'Schlüsselpaar erfolgreich generiert und importiert.';
$messages['keygennosupport'] = 'Dein Browser unterstützt keine Kryptopgraphiefunktionen. Konnte Schlüsselpaar nicht generieren!';
$messages['noidentselected'] = 'Sie müssen mindestens eine Identität für den Schlüssel auswählen!';
$messages['nonameident'] = 'Identität muss einen Benutzernamen definiert haben.';
?>
@@ -0,0 +1,118 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Κρυπτογράφηση';
$labels['enigmacerts'] = 'Πιστοποιητικά S/MIME';
$labels['enigmakeys'] = 'PGP Κλειδιά';
$labels['keysfromto'] = 'Κλειδιά $from έως $to από $count';
$labels['keyname'] = 'Όνομα';
$labels['keyid'] = 'Ταυτότητα κλειδιού';
$labels['keyuserid'] = 'Ταυτότητα Χρήστη';
$labels['keytype'] = 'Τύπος κλειδιού';
$labels['fingerprint'] = 'Δακτυλικό αποτύπωμα';
$labels['subkeys'] = 'Υποκλειδιά';
$labels['basicinfo'] = 'Βασικές πληροφορίες';
$labels['userids'] = 'Επιπλέον Χρήστες';
$labels['typepublickey'] = 'δημόσιο κλειδί';
$labels['typekeypair'] = 'ζεύγος κλειδιού';
$labels['keyattfound'] = 'Αυτό το μήνυμα περιέχει συνημμένο(α) κλειδί(ά) PGP.';
$labels['keyattimport'] = 'Εισαγωγή κλειδιού(ών)';
$labels['typesign'] = 'Υπογραφή';
$labels['typeencrypt'] = 'Κρυπτογράφηση';
$labels['typecert'] = 'Πιστοποίηση';
$labels['typeauth'] = 'Επαλήθευση';
$labels['subkeyid'] = 'Ταυτότητα';
$labels['subkeyalgo'] = 'Αλγόριθμος';
$labels['subkeycreated'] = 'Δημιουργήθηκε';
$labels['subkeyexpires'] = 'Λήγει';
$labels['subkeyusage'] = 'Χρήση';
$labels['expiresnever'] = 'ποτέ';
$labels['unknown'] = 'άγνωστο';
$labels['uservalid'] = 'Έγκυρο';
$labels['userid'] = 'Ταυτότητα';
$labels['valid'] = 'έγκυρο';
$labels['supportencryption'] = 'Ενεργοποιήστε την κρυπτογράφηση και υπογραφή μηνυμάτων';
$labels['supportsignatures'] = 'Ενεργοποίηση επαλήθευσης υπογραφών μηνύματος';
$labels['supportdecryption'] = 'Ενεργοποιήστε την κρυπτογράφηση μηνυμάτων';
$labels['signdefault'] = 'Υπογραφή όλων των μηνυμάτων από προεπιλογή';
$labels['encryptdefault'] = 'Κρυπτογράφηση όλων των μηνυμάτων από προεπιλογή';
$labels['attachpubkeydefault'] = 'Επισύναψη του δημόσιου PGP κλειδιού μου από προεπιλογή';
$labels['passwordtime'] = 'Διατήρηση των κωδικών του ιδιωτικού κλειδιού για';
$labels['nminutes'] = '$m λεπτό(ά)';
$labels['wholesession'] = 'ολόκληρη τη συνεδρία';
$labels['createkeys'] = 'Δημιουργία νέου ζεύγους κλειδιού';
$labels['importkeys'] = 'Εισαγωγή κλειδιού(ών)';
$labels['exportkeys'] = 'Εξαγωγή κλειδιού(ών)';
$labels['keyactions'] = 'Ενέργειες κλειδιού...';
$labels['keyremove'] = 'Διαγραφή';
$labels['keydisable'] = 'Απενεργοποίηση';
$labels['keyrevoke'] = 'Απόσυρση';
$labels['keysend'] = 'Αποστολή δημοσίου κλειδιού στο μήνυμα';
$labels['keychpass'] = 'Αλλαγή κωδικού';
$labels['newkeyident'] = 'Αναγνωριστικό:';
$labels['newkeypass'] = 'Κωδικός:';
$labels['newkeypassconfirm'] = 'Επιβεβαίωση κωδικού:';
$labels['newkeysize'] = 'Μέγεθος κλειδιού:';
$labels['key2048'] = '2048 bits - προκαθορισμένο';
$labels['key4096'] = '4096 bits - ασφαλέστερο';
$labels['keygenerating'] = 'Δημιουργία κλειδιών...';
$labels['encryptionoptions'] = 'Επιλογές κρυπτογράφησης...';
$labels['encryptmsg'] = 'Κρυπτογράφηση του μηνύματος';
$labels['signmsg'] = 'Ψηφιακή υπογραφή του μηνύματος';
$labels['enterkeypasstitle'] = 'Εισάσετε τον κωδικό του κλειδιού';
$labels['enterkeypass'] = 'Απαιτείται ένας κωδικός για το ξεκλειδωμα του κρυφού κλειδιού ($keyid) του χρήστη: $user.';
$labels['arialabelkeyexportoptions'] = 'Επιλογές εξαγωγής κλειδιών';
$labels['attachpubkeymsg'] = 'Επισύναψη του δημόσιου κλειδιού μου';
$labels['keyexportprompt'] = 'Θέλετε να συμπεριληφθούν τα μυστικά κλειδικά στο αποθηκευμένο αρχείο κλειδιών OpenPGP;';
$labels['onlypubkeys'] = 'Εξαγωγή Δημοσίων Κλειδιών Μόνο';
$labels['withprivkeys'] = 'Εξαγωγή Μυστικών Κλειδιών';
$labels['findkey'] = 'Αναζήτηση στον(ους) εξυπηρετητή(ές) κλειδιών';
$messages['sigvalid'] = 'Επαληθευμένη υπογραφή από τον $sender.';
$messages['sigvalidpartial'] = 'Επαληθευμένη υπογραφή από τον $sender, αλλά τμήμα του κειμένου δεν έχει υπογραφεί.';
$messages['siginvalid'] = 'Άκυρη υπογραφή από τον $sender.';
$messages['sigunverified'] = 'Ανεπαλήθευτη υπογραφή. Το πιστοποιητικό δεν έχει επαληθευτεί. Ταυτότητα πιστοποιητικού: $keyid.';
$messages['signokey'] = 'Ανεπαλήθευτη υπογραφή. Το δημόσιο κλειδί δε βρέθηκε. Ταυτότητα κλειδιού: $keyid.';
$messages['sigerror'] = 'Ανεπαλήθευτη υπογραφή. Εσωτερικό σφάλμα.';
$messages['decryptok'] = 'Το μήνυμα αποκρυπτογραφήθηκε.';
$messages['decrypterror'] = 'Η αποκρυπτογράφηση απέτυχε.';
$messages['decryptnokey'] = 'Η αποκρυπτογράφηση απέτυχε. Το ιδιωτικό κλειδί δε βρέθηκε. Ταυτότητα κλειδιού: $keyid.';
$messages['decryptnopass'] = 'Η αποκρυπτογράφηση απέτυχε. Απαιτείται ο κωδικός του κλειδιού.';
$messages['decryptpartial'] = 'Το μήνυμα αποκρυπτογραφήθηκε, αλλά τμήμα του μηνύματος δεν ήταν κρυπτογραφημένο.';
$messages['signerror'] = 'Η υπογραφή απέτυχε.';
$messages['signnokey'] = 'Η υπογραφή απέτυχε. Το ιδιωτικό κλειδί δε βρέθηκε.';
$messages['signnopass'] = 'Η υπογραφή απέτυχε. Απαιτείται ο κωδικός του κλειδιού.';
$messages['encrypterror'] = 'Η κρυπτογράφηση απέτυχε.';
$messages['encryptnokey'] = 'Η κρυπτογράφηση απέτυχε. Το δημόσιο κλειδί του $email δε βρέθηκε.
';
$messages['nokeysfound'] = 'Δε βρέθηκαν κλειδιά';
$messages['keynotfound'] = 'Το κλειδί δε βρέθηκε!';
$messages['keyopenerror'] = 'Αδυναμία ανάκτησης των πληροφοριών του κλειδιού! Εσωτερικό σφάλμα.';
$messages['keylisterror'] = 'Αδυναμία ανάκτησης λίστας κλειδιού! Εσωτερικό σφάλμα.';
$messages['keysimportfailed'] = 'Αδυναμία εισαγωγής του κλειδιού(ών)! Εσωτερικό σφάλμα.';
$messages['keysimportsuccess'] = 'Το κλειδί(ά) εισήχθη επιτυχώς. Εισήχθη: $new, αναλλοίωτο: $old.';
$messages['keyremoving'] = 'Διαφραφή κλειδιού(ών)...';
$messages['keyremoveconfirm'] = 'Θέλετε σίγουρα να διαγράψετε το επιλεγμένο κλειδί(ά);';
$messages['keyremovesuccess'] = 'Το κλειδί(ά) διαγράφηκε επιτυχώς.';
$messages['keyremoveerror'] = 'Αδυναμία διαγραφής του επιλεγμένου κλειδιού(ών).';
$messages['keyimporttext'] = 'Μπορείτε να εισάγετε ιδιωτικά ή δημόσια κλειδιά ή να ανακτήσετε υπογραφές σε μοργή ASCII-Armor.';
$messages['formerror'] = 'Παρακαλώ συμπληρώστε όλα τα πεδία της φόρμας!';
$messages['passwordsdiffer'] = 'Οι κωδικοί δεν ταιριάζουν μεταξύ τους!';
$messages['keygenerateerror'] = 'Αποτυχία δημιουργίας ζεύγους κλειδιών.';
$messages['keygeneratesuccess'] = 'Το ζεύγος κλειδιών δημιουργήθηκε και εισήχθη επιτυχώς.';
$messages['keygennosupport'] = 'To πρόγραμμα περιήγησής σας δεν υποστηρίζει κρυπτογράφηση. Δεν ήταν δυνατή η δημιουργία ενός ζεύγος κλειδιών!';
$messages['nonameident'] = 'Η Ταυτότητα πρέπει να έχει ορισμένο όνομα χρήστη!';
?>
@@ -0,0 +1,112 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Encryption';
$labels['enigmacerts'] = 'S/MIME Certificates';
$labels['enigmakeys'] = 'PGP Keys';
$labels['keysfromto'] = 'Keys $from to $to of $count';
$labels['keyname'] = 'Name';
$labels['keyid'] = 'Key ID';
$labels['keyuserid'] = 'User ID';
$labels['keytype'] = 'Key type';
$labels['fingerprint'] = 'Fingerprint';
$labels['subkeys'] = 'Subkeys';
$labels['basicinfo'] = 'Basic Information';
$labels['userids'] = 'Additional Users';
$labels['typepublickey'] = 'public key';
$labels['typekeypair'] = 'key pair';
$labels['keyattfound'] = 'This message contains attached PGP key(s).';
$labels['keyattimport'] = 'Import key(s)';
$labels['typesign'] = 'Sign';
$labels['typeencrypt'] = 'Encrypt';
$labels['typecert'] = 'Certify';
$labels['typeauth'] = 'Authentication';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algorithm';
$labels['subkeycreated'] = 'Created';
$labels['subkeyexpires'] = 'Expires';
$labels['subkeyusage'] = 'Usage';
$labels['expiresnever'] = 'never';
$labels['unknown'] = 'unknown';
$labels['uservalid'] = 'Valid';
$labels['userid'] = 'ID';
$labels['valid'] = 'valid';
$labels['supportencryption'] = 'Enable message encryption and signing';
$labels['supportsignatures'] = 'Enable message signatures verification';
$labels['supportdecryption'] = 'Enable message decryption';
$labels['signdefault'] = 'Sign all messages by default';
$labels['encryptdefault'] = 'Encrypt all messages by default';
$labels['attachpubkeydefault'] = 'Attach my public PGP key by default';
$labels['passwordtime'] = 'Keep private key passwords for';
$labels['nminutes'] = '$m minute(s)';
$labels['wholesession'] = 'the whole session';
$labels['createkeys'] = 'Create a new key pair';
$labels['importkeys'] = 'Import key(s)';
$labels['exportkeys'] = 'Export key(s)';
$labels['keyactions'] = 'Key actions...';
$labels['keyremove'] = 'Remove';
$labels['keydisable'] = 'Disable';
$labels['keyrevoke'] = 'Revoke';
$labels['keysend'] = 'Send public key in a message';
$labels['keychpass'] = 'Change password';
$labels['newkeyident'] = 'Identity:';
$labels['newkeypass'] = 'Password:';
$labels['newkeypassconfirm'] = 'Confirm password:';
$labels['newkeysize'] = 'Key size:';
$labels['key2048'] = '2048 bits - default';
$labels['key4096'] = '4096 bits - more secure';
$labels['keygenerating'] = 'Generating keys...';
$labels['encryptionoptions'] = 'Encryption options...';
$labels['encryptmsg'] = 'Encrypt this message';
$labels['signmsg'] = 'Digitally sign this message';
$labels['enterkeypasstitle'] = 'Enter key passphrase';
$labels['enterkeypass'] = 'A passphrase is needed to unlock the secret key ($keyid) for user: $user.';
$labels['arialabelkeyexportoptions'] = 'Keys export options';
$labels['attachpubkeymsg'] = 'Attach my public key';
$messages['sigvalid'] = 'Verified signature from $sender.';
$messages['sigvalidpartial'] = 'Verified signature from $sender, but part of the body was not signed.';
$messages['siginvalid'] = 'Invalid signature from $sender.';
$messages['sigunverified'] = 'Unverified signature. Certificate not verified. Certificate ID: $keyid.';
$messages['signokey'] = 'Unverified signature. Public key not found. Key ID: $keyid.';
$messages['sigerror'] = 'Unverified signature. Internal error.';
$messages['decryptok'] = 'Message decrypted.';
$messages['decrypterror'] = 'Decryption failed.';
$messages['decryptnokey'] = 'Decryption failed. Private key not found. Key ID: $keyid.';
$messages['decryptnopass'] = 'Decryption failed. Key password required.';
$messages['decryptpartial'] = 'Message decrypted, but part of the body was not encrypted.';
$messages['signerror'] = 'Signing failed.';
$messages['signnokey'] = 'Signing failed. Private key not found.';
$messages['signnopass'] = 'Signing failed. Key password required.';
$messages['encrypterror'] = 'Encryption failed.';
$messages['encryptnokey'] = 'Encryption failed. Public key not found for $email.';
$messages['nokeysfound'] = 'No keys found';
$messages['keyopenerror'] = 'Unable to get key information! Internal error.';
$messages['keylisterror'] = 'Unable to list keys! Internal error.';
$messages['keysimportfailed'] = 'Unable to import key(s)! Internal error.';
$messages['keysimportsuccess'] = 'Key(s) imported successfully. Imported: $new, unchanged: $old.';
$messages['keyremoving'] = 'Removing key(s)...';
$messages['keyremoveconfirm'] = 'Are you sure, you want to delete selected key(s)?';
$messages['keyremovesuccess'] = 'Key(s) deleted successfully';
$messages['keyremoveerror'] = 'Unable to delete selected key(s).';
$messages['keyimporttext'] = 'You can import private and public key(s) or revocation signatures in ASCII-Armor format.';
$messages['formerror'] = 'Please fill in the form. All fields are required!';
$messages['passwordsdiffer'] = 'Passwords do not match!';
$messages['keygenerateerror'] = 'Failed to generate a key pair';
$messages['keygeneratesuccess'] = 'A key pair generated and imported successfully.';
$messages['keygennosupport'] = 'Your web browser does not support cryptography. Unable to generate a key pair!';
$messages['nonameident'] = 'Identity must have a user name defined!';
?>
@@ -0,0 +1,137 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels = array();
$labels['encryption'] = 'Encryption';
$labels['enigmacerts'] = 'S/MIME Certificates';
$labels['enigmakeys'] = 'PGP Keys';
$labels['keysfromto'] = 'Keys $from to $to of $count';
$labels['keyname'] = 'Name';
$labels['keyid'] = 'Key ID';
$labels['keyuserid'] = 'User ID';
$labels['keytype'] = 'Key type';
$labels['fingerprint'] = 'Fingerprint';
$labels['subkeys'] = 'Subkeys';
$labels['basicinfo'] = 'Basic Information';
$labels['userids'] = 'Additional Users';
$labels['typepublickey'] = 'public key';
$labels['typekeypair'] = 'key pair';
$labels['keyattfound'] = 'This message contains attached PGP key(s).';
$labels['keyattimport'] = 'Import key(s)';
$labels['typesign'] = 'Sign';
$labels['typeencrypt'] = 'Encrypt';
$labels['typecert'] = 'Certify';
$labels['typeauth'] = 'Authentication';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algorithm';
$labels['subkeycreated'] = 'Created';
$labels['subkeyexpires'] = 'Expires';
$labels['subkeyusage'] = 'Usage';
$labels['expiresnever'] = 'never';
$labels['unknown'] = 'unknown';
$labels['uservalid'] = 'Valid';
$labels['userid'] = 'ID';
$labels['valid'] = 'valid';
$labels['supportencryption'] = 'Enable message encryption and signing';
$labels['supportsignatures'] = 'Enable message signatures verification';
$labels['supportdecryption'] = 'Enable message decryption';
$labels['signdefault'] = 'Sign all messages by default';
$labels['encryptdefault'] = 'Encrypt all messages by default';
$labels['attachpubkeydefault'] = 'Attach my public PGP key by default';
$labels['passwordtime'] = 'Keep private key passwords for';
$labels['nminutes'] = '$m minute(s)';
$labels['wholesession'] = 'the whole session';
$labels['createkeys'] = 'Create a new key pair';
$labels['importkeys'] = 'Import key(s)';
$labels['exportkeys'] = 'Export key(s)';
$labels['keyactions'] = 'Key actions...';
$labels['keyremove'] = 'Remove';
$labels['keydisable'] = 'Disable';
$labels['keyrevoke'] = 'Revoke';
$labels['keysend'] = 'Send public key in a message';
$labels['keychpass'] = 'Change password';
$labels['newkeyident'] = 'Identity:';
$labels['newkeypass'] = 'Password:';
$labels['newkeypassconfirm'] = 'Confirm password:';
$labels['newkeysize'] = 'Key size:';
$labels['key2048'] = '2048 bits - default';
$labels['key4096'] = '4096 bits - more secure';
$labels['keygenerating'] = 'Generating keys...';
$labels['encryptionoptions'] = 'Encryption options...';
$labels['encryptmsg'] = 'Encrypt this message';
$labels['signmsg'] = 'Digitally sign this message';
$labels['enterkeypasstitle'] = 'Enter key passphrase';
$labels['enterkeypass'] = 'A passphrase is needed to unlock the secret key ($keyid) for user: $user.';
$labels['arialabelkeyexportoptions'] = 'Keys export options';
$labels['attachpubkeymsg'] = 'Attach my public key';
$labels['keyexportprompt'] = 'Do you want to include secret keys in the saved OpenPGP keys file?';
$labels['onlypubkeys'] = 'Export Public Keys Only';
$labels['withprivkeys'] = 'Export Secret Keys';
$labels['findkey'] = 'Search on key server(s)';
$labels['keyimportlabel'] = 'Import from file';
$labels['keyimportsearchlabel'] = 'Search on key server(s)';
$messages = array();
$messages['sigvalid'] = 'Verified signature from $sender.';
$messages['sigvalidpartial'] = 'Verified signature from $sender, but part of the body was not signed.';
$messages['siginvalid'] = 'Invalid signature from $sender.';
$messages['sigunverified'] = 'Unverified signature. Certificate not verified. Certificate ID: $keyid.';
$messages['signokey'] = 'Unverified signature. Public key not found. Key ID: $keyid.';
$messages['sigerror'] = 'Unverified signature. Internal error.';
$messages['decryptok'] = 'Message decrypted.';
$messages['decrypterror'] = 'Decryption failed.';
$messages['decryptnokey'] = 'Decryption failed. Private key not found. Key ID: $keyid.';
$messages['decryptbadpass'] = 'Decryption failed. Invalid password.';
$messages['decryptnopass'] = 'Decryption failed. Key password required.';
$messages['decryptpartial'] = 'Message decrypted, but part of the body was not encrypted.';
$messages['signerror'] = 'Signing failed.';
$messages['signnokey'] = 'Signing failed. Private key not found.';
$messages['signbadpass'] = 'Signing failed. Invalid password.';
$messages['signnopass'] = 'Signing failed. Key password required.';
$messages['encrypterror'] = 'Encryption failed.';
$messages['encryptnokey'] = 'Encryption failed. Public key not found for $email.';
$messages['nokeysfound'] = 'No keys found';
$messages['keynotfound'] = 'Key not found!';
$messages['keyopenerror'] = 'Unable to get key information! Internal error.';
$messages['keylisterror'] = 'Unable to list keys! Internal error.';
$messages['keysimportfailed'] = 'Unable to import key(s)! Internal error.';
$messages['keysimportsuccess'] = 'Key(s) imported successfully. Imported: $new, unchanged: $old.';
$messages['keyremoving'] = 'Removing key(s)...';
$messages['keyremoveconfirm'] = 'Are you sure, you want to delete selected key(s)?';
$messages['keyremovesuccess'] = 'Key(s) deleted successfully';
$messages['keyremoveerror'] = 'Unable to delete selected key(s).';
$messages['keyimporttext'] = 'You can import private and public key(s) or revocation signatures in ASCII-Armor format.';
$messages['keyimportsearchtext'] = 'You can search for public keys by key identifier, user name or email address and then import them directly.';
$messages['formerror'] = 'Please, fill the form. All fields are required!';
$messages['passwordsdiffer'] = 'Passwords do not match!';
$messages['keygenerateerror'] = 'Failed to generate a key pair';
$messages['keygeneratesuccess'] = 'A key pair generated and imported successfully.';
$messages['keygennosupport'] = 'Your web browser does not support cryptography. Unable to generate a key pair!';
$messages['noidentselected'] = 'You have to select at least one identity for the key!';
// removed in 1.3
$messages['nonameident'] = 'Identity must have a user name defined!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Encriptación';
$labels['enigmacerts'] = 'Certificados S/MIME';
$labels['enigmakeys'] = 'Claves PGP';
$labels['keysfromto'] = 'Llaves $from hasta $to de $count';
$labels['keyname'] = 'Nombre';
$labels['keyid'] = 'ID de Clave';
$labels['keyuserid'] = 'ID de Usuario';
$labels['keytype'] = 'Tipo de Clave';
$labels['fingerprint'] = 'Huella dactilar';
$labels['subkeys'] = 'Subclaves';
$labels['basicinfo'] = 'Información Básica';
$labels['userids'] = 'Usuarios Adicionales';
$labels['typepublickey'] = 'llave pública';
$labels['typekeypair'] = 'clave par';
$labels['keyattfound'] = 'Este mensaje contiene adjunto una(s) clave(s) PGP.';
$labels['keyattimport'] = 'Importar clave(s)';
$labels['typesign'] = 'Firmar';
$labels['typeencrypt'] = 'Encriptar';
$labels['typecert'] = 'Certificar';
$labels['typeauth'] = 'Autentificación';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmo';
$labels['subkeycreated'] = 'Creado';
$labels['subkeyexpires'] = 'Expirado';
$labels['subkeyusage'] = 'Uso';
$labels['expiresnever'] = 'nunca';
$labels['unknown'] = 'desconocido';
$labels['uservalid'] = 'Válido';
$labels['userid'] = 'ID';
$labels['valid'] = 'válido';
$labels['supportencryption'] = 'Habilitar el cifrado de mensajes y firma';
$labels['supportsignatures'] = 'Activar la verificación de firmas de mensajes';
$labels['supportdecryption'] = 'Habilitar descifrado de mensaje';
$labels['signdefault'] = 'Firmar todos los mensajes por defecto';
$labels['encryptdefault'] = 'Encriptar todos los mensajes por defecto';
$labels['attachpubkeydefault'] = 'Adjuntar mi clave PGP pública por defecto';
$labels['passwordtime'] = 'Mantenga las contraseñas de clave privada para';
$labels['nminutes'] = '$m minuto(s)';
$labels['wholesession'] = 'toda la sesión';
$labels['createkeys'] = 'Crear una nueva clave par';
$labels['importkeys'] = 'Importar clave(s)';
$labels['exportkeys'] = 'Exportar clave(s)';
$labels['keyactions'] = 'Acción de llave...';
$labels['keyremove'] = 'Eliminar';
$labels['keydisable'] = 'Deshabilitado';
$labels['keyrevoke'] = 'Revocar';
$labels['keysend'] = 'Enviar clave pública en el mensaje';
$labels['keychpass'] = 'Cambiar contraseña';
$labels['newkeyident'] = 'Identidad:';
$labels['newkeypass'] = 'Contraseña:';
$labels['newkeypassconfirm'] = 'Confirmar contraseña:';
$labels['newkeysize'] = 'Tamaño de clave:';
$labels['key2048'] = '2048 bits - por defecto';
$labels['key4096'] = '4096 bits - más seguro';
$labels['keygenerating'] = 'Generando claves...';
$labels['encryptionoptions'] = 'Opciones de encriptado...';
$labels['encryptmsg'] = 'Encriptar este mensaje.';
$labels['signmsg'] = 'Firmar digitalmente este mensaje';
$labels['enterkeypasstitle'] = 'Escriba la frase de contraseña';
$labels['enterkeypass'] = 'Se necesita una contraseña para desbloquear la clave secreta ($keyid) para el usuario: $user.';
$labels['arialabelkeyexportoptions'] = 'Opciones de claves de exportación';
$labels['attachpubkeymsg'] = 'Adjuntar mi clave pública';
$labels['keyexportprompt'] = '¿Quiere incluir claves secretas en el archivo guardado de claves OpenPGP?';
$labels['onlypubkeys'] = 'Exportar Sólo las Claves Públicas';
$labels['withprivkeys'] = 'Exportar las Claves Secretas';
$labels['findkey'] = 'Buscar en servidor(es) de claves';
$labels['keyimportlabel'] = 'Importar desde archivo';
$labels['keyimportsearchlabel'] = 'Buscar en servidor(es) de claves';
$messages['sigvalid'] = 'Firma verificada por $sender.';
$messages['sigvalidpartial'] = 'Firma verificada de $sender, pero parte parte del cuerpo no estaba firmado.';
$messages['siginvalid'] = 'Firma inválida por $sender.';
$messages['sigunverified'] = 'Firma no verificada. Error interno. Clave pública no encontrada. ID del Certificado: $keyid.';
$messages['signokey'] = 'Firma no verificada. Error interno. Clave pública no encontrada. ID de Clave: $keyid.';
$messages['sigerror'] = 'Firma no verificada. Error interno.';
$messages['decryptok'] = 'Mensaje desenciptado.';
$messages['decrypterror'] = 'Desenciptación fallida.';
$messages['decryptnokey'] = 'Desenciptación fallida. Clave privada no encontrada. ID de Clave: $keyid.';
$messages['decryptnopass'] = 'Desencriptado fallido. Contraseña requerida.';
$messages['decryptpartial'] = 'Mensaje descifrado, pero parte del cuerpo no estaba cifrado.';
$messages['signerror'] = 'Firmado fallido.';
$messages['signnokey'] = 'Firmado fallido. Clave privada no encontrada.';
$messages['signnopass'] = 'Acceso fallido. Contraseña requerida.';
$messages['encrypterror'] = 'Encriptación fallida.';
$messages['encryptnokey'] = 'Encriptación fallida. Clave pública no encontrada para $email.';
$messages['nokeysfound'] = 'No se encontraron claves';
$messages['keynotfound'] = '¡Clave no encontrada!';
$messages['keyopenerror'] = '¡No se puede obtener la información de clave! Error interno.';
$messages['keylisterror'] = '¡No es posible enumerar las claves! Error interno.';
$messages['keysimportfailed'] = '¡No se puede(n) importar la(s) clave(s)! Error interno.';
$messages['keysimportsuccess'] = 'Clave(s) importada(s) correctamente. Importado: $new, sin cambios: $old.';
$messages['keyremoving'] = 'Eliminando clave(s)...';
$messages['keyremoveconfirm'] = '¿Seguro que quiere eliminar la(s) clave(s) seleccionada(s)?';
$messages['keyremovesuccess'] = 'Clave(s) eliminada(s) correctamente.';
$messages['keyremoveerror'] = 'No se han podido borrar las clave(s) seleccionadas.';
$messages['keyimporttext'] = 'Puede importar la(s) clave(s) privada(s) y pública(s) o firmas de revocación en formato ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Puedes buscar claves por identificador de clave, nombre de usuario o dirección de email y después importarlas directamente.';
$messages['formerror'] = 'Por favor llene el formulario. ¡Todos los campos son obligatorios!';
$messages['passwordsdiffer'] = '¡Las contraseñas no coinciden!';
$messages['keygenerateerror'] = 'No se ha podido generar una clave par';
$messages['keygeneratesuccess'] = 'Un par de claves generadas e importadas correctamente.';
$messages['keygennosupport'] = 'Su navegador web no soporta criptografía. ¡No se puede generar un par de claves!';
$messages['noidentselected'] = '¡Tiene que seleccionar al menos una identidad para la llave!';
$messages['nonameident'] = '¡La identidad debe de tener un nombre de usuario definido!';
?>
@@ -0,0 +1,81 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Zifraketa';
$labels['enigmacerts'] = 'S/MIME egiaztagiriak';
$labels['enigmakeys'] = 'PGP gakoak';
$labels['keysfromto'] = '$count-eko $from-etik $to-rako gakoak';
$labels['keyname'] = 'Izena';
$labels['keyid'] = 'gakoaren IDa';
$labels['keyuserid'] = 'Erabiltzailearen IDa';
$labels['keytype'] = 'Gako mota';
$labels['fingerprint'] = 'Hatz-marka';
$labels['subkeys'] = 'Azpigakoak';
$labels['basicinfo'] = 'Oinarrizko informazioa';
$labels['userids'] = 'Erabiltzaile gehigarriak';
$labels['typepublickey'] = 'gako publikoa';
$labels['typekeypair'] = 'gako bikotea';
$labels['keyattfound'] = 'Mezu honek erantsita PGP gakoa(k) d(it)u';
$labels['keyattimport'] = 'Inportatu gakoa(k)';
$labels['typesign'] = 'Sinatu';
$labels['typeencrypt'] = 'Zifratu';
$labels['typecert'] = 'Ziurtatu';
$labels['typeauth'] = 'Egiaztapena';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmoa';
$labels['subkeycreated'] = 'Sortuta';
$labels['subkeyexpires'] = 'Iraungitze-data';
$labels['subkeyusage'] = 'Erabilera';
$labels['expiresnever'] = 'inoiz ez';
$labels['unknown'] = 'ezezaguna';
$labels['uservalid'] = 'Baliozkoa';
$labels['userid'] = 'ID';
$labels['valid'] = 'baliozkoa';
$labels['supportencryption'] = 'Gaitu mezuen zifratzea eta sinadura ';
$labels['supportsignatures'] = 'Gaitu mezuen sinaduren egiaztapena';
$labels['supportdecryption'] = 'Gaitu mezuen deszifratzea';
$labels['signdefault'] = 'Mezuen sinatzea lehenetsita';
$labels['encryptdefault'] = 'Mezuen zifratzea lehenetsita';
$labels['attachpubkeydefault'] = 'Nire PGP gako publikoa eranstea lehenetsita';
$labels['passwordtime'] = 'Mantendu gako pribatuen pasahitzak';
$labels['nminutes'] = '$m minutu';
$labels['wholesession'] = 'Saio osoa';
$labels['createkeys'] = 'Sortu gako pare berria';
$labels['importkeys'] = 'Inportatu gakoa(k)';
$labels['exportkeys'] = 'Esportatu gakoa(k)';
$labels['keyactions'] = 'Gakoaren ekintzak...';
$labels['keyremove'] = 'Kendu';
$labels['keydisable'] = 'Ezgaitu';
$labels['keyrevoke'] = 'Errebokatu';
$labels['keysend'] = 'Bidali gako publiko mezu batean';
$labels['keychpass'] = 'Aldatu pasahitza';
$labels['newkeyident'] = 'Identitatea:';
$labels['newkeypass'] = 'Pasahitza:';
$labels['newkeypassconfirm'] = 'Berretsi pasahitza:';
$labels['newkeysize'] = 'Gakoaren tamaina:';
$labels['key2048'] = '2048 bit - lehenetsita';
$labels['key4096'] = '4096 bit - seguruagoa';
$labels['keygenerating'] = 'Gakoak sortzen...';
$labels['encryptionoptions'] = 'Zifratze aukerak...';
$labels['encryptmsg'] = 'Zifratu mezu hau';
$labels['signmsg'] = 'Sinatu era digitalean mezu hau';
$labels['enterkeypasstitle'] = 'Sartu gakoaren pasaesaldia';
$labels['enterkeypass'] = 'Pasaesaldi bat behar da erabiltzaile honen gako sekretua ($keyid) desblokeatzeko: $user';
$labels['arialabelkeyexportoptions'] = 'Gakoaren esportazio aukerak';
$labels['attachpubkeymsg'] = 'Erantsi nire gako publikoa';
$labels['keyexportprompt'] = 'Nahi al duzu gako sekretuak sartzea gordetako OpenPGP gakoen fitxategian?';
?>
@@ -0,0 +1,105 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Salaus';
$labels['enigmacerts'] = 'S/MIME-varmenteet';
$labels['enigmakeys'] = 'PGP-avaimet';
$labels['keysfromto'] = 'Avaimet $from-$to/$count';
$labels['keyname'] = 'Nimi';
$labels['keyid'] = 'Avaintunniste';
$labels['keyuserid'] = 'Käyttäjätunniste';
$labels['keytype'] = 'Avaimen tyyppi';
$labels['fingerprint'] = 'Sormenjälki';
$labels['subkeys'] = 'Aliavaimet';
$labels['basicinfo'] = 'Perustiedot';
$labels['userids'] = 'Lisäkäyttäjät';
$labels['typepublickey'] = 'julkinen avain';
$labels['typekeypair'] = 'avainpari';
$labels['keyattfound'] = 'Tämä viesti sisältää yhden tai useamman PGP-avaimen.';
$labels['keyattimport'] = 'Tuo avaimia';
$labels['typesign'] = 'Allekirjoitus';
$labels['typeencrypt'] = 'Salaus';
$labels['typecert'] = 'Todistus';
$labels['typeauth'] = 'Tunnistautuminen';
$labels['subkeyid'] = 'Tunniste';
$labels['subkeyalgo'] = 'Algoritmi';
$labels['subkeycreated'] = 'Luotu';
$labels['subkeyexpires'] = 'Vanhenee';
$labels['subkeyusage'] = 'Käyttö';
$labels['expiresnever'] = 'ei koskaan';
$labels['unknown'] = 'tuntematon';
$labels['uservalid'] = 'Kelvollinen';
$labels['userid'] = 'Tunniste';
$labels['valid'] = 'kelvollinen';
$labels['supportencryption'] = 'Käytä viestien salausta ja allekirjoitusta';
$labels['supportsignatures'] = 'Käytä viestien allekirjoitusten vahvistusta';
$labels['supportdecryption'] = 'Ota käyttöön viestien salauksen purkaminen';
$labels['signdefault'] = 'Allekirjoita kaikki viestit oletuksena';
$labels['encryptdefault'] = 'Salaa kaikki viestit oletuksena';
$labels['attachpubkeydefault'] = 'Liitä julkinen PGP-avaimeni oletuksena';
$labels['passwordtime'] = 'Säilytä yksityisen avaimen salasanat';
$labels['nminutes'] = '$m minuutin ajan';
$labels['wholesession'] = 'koko istunnon ajan';
$labels['createkeys'] = 'Luo uusi avainpari';
$labels['importkeys'] = 'Tuo avaimia';
$labels['exportkeys'] = 'Vie avaimia';
$labels['keyactions'] = 'Avaintoiminnot...';
$labels['keyremove'] = 'Poista';
$labels['keydisable'] = 'Poista käytöstä';
$labels['keyrevoke'] = 'Kumoa';
$labels['keysend'] = 'Lähetä julkinen avain viestissä';
$labels['keychpass'] = 'Vaihda salasana';
$labels['newkeyident'] = 'Identiteetti:';
$labels['newkeypass'] = 'Salasana:';
$labels['newkeypassconfirm'] = 'Vahvista salasana:';
$labels['newkeysize'] = 'Avaimen koko:';
$labels['key2048'] = '2048 bittiä - oletus';
$labels['key4096'] = '4096 bittiä - turvallisempi';
$labels['keygenerating'] = 'Luodaan avaimia...';
$labels['encryptionoptions'] = 'Salausvalinnat...';
$labels['encryptmsg'] = 'Salaa tämä viesti';
$labels['signmsg'] = 'Lisää digitaalinen allekirjoitus tähän viestiin';
$labels['enterkeypasstitle'] = 'Anna tunnuslause';
$labels['arialabelkeyexportoptions'] = 'Avaimien vientivalinnat';
$labels['attachpubkeymsg'] = 'Liitä julkinen avaimeni';
$labels['findkey'] = 'Etsi avainpalvelimilta';
$messages['sigvalid'] = 'Vahvistettu allekirjoitus lähettäjältä $sender.';
$messages['siginvalid'] = 'Virheellinen allekirjoitus lähettäjältä $sender.';
$messages['sigunverified'] = 'Vahvistamaton allekirjoitus. Varmennetta ei ole vahvistettu. Varmenteen tunniste: $keyid.';
$messages['signokey'] = 'Vahvistamaton allekirjoitus. Julkista avainta ei löydy. Avaimen tunniste: $keyid.';
$messages['sigerror'] = 'Vahvistamaton allekirjoitus. Sisäinen virhe.';
$messages['decryptok'] = 'Viestin salaus purettu.';
$messages['decrypterror'] = 'Salauksen purkaminen epäonnistui.';
$messages['decryptnokey'] = 'Salauksen purkaminen epäonnistui. Yksityistä avainta ei löytynyt. Avaimen tunniste: $keyid.';
$messages['decryptnopass'] = 'Salauksen purkaminen epäonnistui. Avaimen salasana vaaditaan.';
$messages['signerror'] = 'Allekirjoittaminen epäonnistui.';
$messages['signnokey'] = 'Allekirjoittaminen epäonnistui. Yksityistä avainta ei löytynyt.';
$messages['signnopass'] = 'Allekirjoitus epäonnistui. Avaimen salasana vaaditaan.';
$messages['encrypterror'] = 'Salaaminen epäonnistui.';
$messages['encryptnokey'] = 'Salaaminen epäonnistui. Osoitteelle $email ei löytynyt julkista avainta.';
$messages['nokeysfound'] = 'Avaimia ei löytynyt';
$messages['keynotfound'] = 'Avainta ei löytynyt!';
$messages['keyopenerror'] = 'Avaintietojen noutaminen ei onnistu! Sisäinen virhe.';
$messages['keylisterror'] = 'Avainten listaaminen ei onnistu! Sisäinen virhe.';
$messages['keysimportfailed'] = 'Avaimen tuominen epäonnistui! Sisäinen virhe.';
$messages['formerror'] = 'Täytä lomake. Kaikki kentät ovat pakollisia!';
$messages['passwordsdiffer'] = 'Salasanat eivät täsmää!';
$messages['keygenerateerror'] = 'Avainparin luominen epäonnistui';
$messages['keygeneratesuccess'] = 'Avainpari luotiin ja tuotiin onnistuneesti.';
$messages['keygennosupport'] = 'Selaimesi ei tue salaustekniikkaa. Avainparin luominen ei onnistu!';
$messages['nonameident'] = 'Identiteetillä tulee olla käyttäjänimi määritettynä!';
?>
@@ -0,0 +1,108 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Brongla';
$labels['enigmacerts'] = 'S/MIME skjal';
$labels['enigmakeys'] = 'PGP lyklar';
$labels['keysfromto'] = 'Lyklar frá $from til $to av $count';
$labels['keyname'] = 'Navn';
$labels['keyid'] = 'Lykla ID';
$labels['keyuserid'] = 'Brúkara ID';
$labels['keytype'] = 'Lykla týpa';
$labels['fingerprint'] = 'Fingramerki';
$labels['subkeys'] = 'Undir lyklar';
$labels['basicinfo'] = 'Grund upplýsingar';
$labels['userids'] = 'Eyka brúkarar';
$labels['typepublickey'] = 'almenna lykil';
$labels['typekeypair'] = 'lykla par';
$labels['keyattfound'] = 'Hesi boð innihalda viðheftar PGP lyklar';
$labels['keyattimport'] = 'Innflyt lyk(lar/il)';
$labels['typesign'] = 'Undirskriva';
$labels['typeencrypt'] = 'Brongla';
$labels['typecert'] = 'Vátta';
$labels['typeauth'] = 'Samgildi';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritma';
$labels['subkeycreated'] = 'Stovna';
$labels['subkeyexpires'] = 'Gongur út';
$labels['subkeyusage'] = 'Brúksla';
$labels['expiresnever'] = 'aldrin';
$labels['unknown'] = 'ókent';
$labels['uservalid'] = 'Gildigt';
$labels['userid'] = 'ID';
$labels['valid'] = 'Gildigt';
$labels['supportencryption'] = 'Tendra boð brongling og undirskriving';
$labels['supportsignatures'] = 'Tendra váttan av undirskriftum';
$labels['supportdecryption'] = 'Tendra boð óbrongsling';
$labels['signdefault'] = 'Undirskriva øll boð vanliga';
$labels['encryptdefault'] = 'Brongla øll boð vanligt';
$labels['passwordtime'] = 'Goym loyniorð hjá loyndarlykilum fyri';
$labels['nminutes'] = '$m minutt(ir)';
$labels['wholesession'] = 'øll setanin';
$labels['createkeys'] = 'Skapa nýtt lykla par';
$labels['importkeys'] = 'Innflyt lyk(lar/il)';
$labels['exportkeys'] = 'Flyt út lyklar';
$labels['keyactions'] = 'Lykla gerðir';
$labels['keyremove'] = 'Strika';
$labels['keydisable'] = 'Sløkk';
$labels['keyrevoke'] = 'Sig úr gildi';
$labels['keysend'] = 'Send almennan lykil í einum boðum';
$labels['keychpass'] = 'Broyt loyniorð';
$labels['newkeyident'] = 'Samleiki:';
$labels['newkeypass'] = 'Loyniorð:';
$labels['newkeypassconfirm'] = 'Vátta loyniorð:';
$labels['newkeysize'] = 'Lykla stødd:';
$labels['key2048'] = '2048 bit - vanligt';
$labels['key4096'] = '4096 bits - meiri trygt';
$labels['keygenerating'] = 'Framleiður lyklar...';
$labels['encryptionoptions'] = 'Bronglu møguleikar';
$labels['encryptmsg'] = 'Brongla hesi boð';
$labels['signmsg'] = 'Undirskriva hesi boð';
$labels['enterkeypasstitle'] = 'Skriva loyniorð';
$labels['enterkeypass'] = 'Tað er tørvur á einum loyniorðið fyri at stongja upp loyndar-lykilin ($keyid) hjá brúkara:';
$labels['arialabelkeyexportoptions'] = 'Lykla út flytingar møguleikar';
$messages['sigvalid'] = 'Váttað undirskrift frá $sender.';
$messages['siginvalid'] = 'Ógildig undirskrift frá $sender.';
$messages['sigunverified'] = 'Óvátta undirskrift: skjal er ikki vátta. Skjal ID: $keyid.';
$messages['signokey'] = 'Óvátta undirskrift. Almennur lykil var ikki funnin. Lykla ID: $keyid.';
$messages['sigerror'] = 'Óvátta boð. Innanhýsis feilur.';
$messages['decryptok'] = 'Boðini eru óbrongla';
$messages['decrypterror'] = 'Feilur kom í óbrongslingina.';
$messages['decryptnokey'] = 'Óbrongsling riggaði ikki. Loyndarlykilin var ikki funnin. Lykila ID: $keyid.';
$messages['decryptnopass'] = 'Óbrongslan riggaði ikki. Lykla loyniorð er neyðugt.';
$messages['signerror'] = 'Undirskriving riggaði ikki.';
$messages['signnokey'] = 'Undirskriving riggaði ikki. Eingin privat lyki funnin';
$messages['signnopass'] = 'Undirskriving riggaði ikki. Lykla loyniorð er neyðugt.';
$messages['encrypterror'] = 'Brongsling riggaði ikk';
$messages['encryptnokey'] = 'Brongsling riggaði ikki. Almennur lykil var ikki funnin fyri $email';
$messages['nokeysfound'] = 'Eingir lyklar vóru funnir';
$messages['keyopenerror'] = 'Bar ikki til at fáa upplýsingar um lyklar! Innanhýsis feilur';
$messages['keylisterror'] = 'Bar ikki til at lista lyklar! Innanhýsis feilur';
$messages['keysimportfailed'] = 'Bar ikki til at innflyta lyk(il/lar)! Innanhýsis feilur';
$messages['keysimportsuccess'] = 'Lykar innfluttir. Innflutt: $new, óbroyttir: $old.';
$messages['keyremoving'] = 'Strikar lyk(il/lar)';
$messages['keyremoveconfirm'] = 'Ert tú vísur í, at tú vilt strika hesar lyklar?';
$messages['keyremovesuccess'] = 'Lyk(il/lar) eru strikaðir';
$messages['keyremoveerror'] = 'Ber ikki til at strika lyk(il/lar)';
$messages['keyimporttext'] = 'Tú kanst innflyta almennar og privat lyklar ella taka aftur undirskriftir í ASCII-Armor formati';
$messages['formerror'] = 'Vinarliga fylla allan formin. Øll felt eru kravd!';
$messages['passwordsdiffer'] = 'Loyniorðini eru ikki eins!';
$messages['keygenerateerror'] = 'Feilur kom í, tá roynt var at framleiða lykla par';
$messages['keygeneratesuccess'] = 'Eitt lykla-par var framleitt og inn flutt';
$messages['keygennosupport'] = 'Tín kagari dugur ikki dulmálsvísindi. Ber ikki til at framleiða lykla par';
$messages['nonameident'] = 'samleiki má hava eitt brúkaranavn';
?>
@@ -0,0 +1,123 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Chiffrement';
$labels['enigmacerts'] = 'Certificats S/MIME';
$labels['enigmakeys'] = 'Clés PGP';
$labels['keysfromto'] = 'Clés $from à $to sur $count';
$labels['keyname'] = 'Nom';
$labels['keyid'] = 'ID de clé';
$labels['keyuserid'] = 'ID utilisateur';
$labels['keytype'] = 'Type de clé';
$labels['fingerprint'] = 'Empreinte';
$labels['subkeys'] = 'Sous-clés';
$labels['basicinfo'] = 'Informations de base';
$labels['userids'] = 'Utilisateurs supplémentaires';
$labels['typepublickey'] = 'Clé publique';
$labels['typekeypair'] = 'biclé';
$labels['keyattfound'] = 'Ce courriel contient une/des clé(s) PGP jointe(s).';
$labels['keyattimport'] = 'Importer une/des clé(s)';
$labels['typesign'] = 'Signer';
$labels['typeencrypt'] = 'Chiffrer';
$labels['typecert'] = 'Certifier';
$labels['typeauth'] = 'Authentification';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algorithme ';
$labels['subkeycreated'] = 'Créée';
$labels['subkeyexpires'] = 'Expire';
$labels['subkeyusage'] = 'Utilisation';
$labels['expiresnever'] = 'jamais';
$labels['unknown'] = 'inconnu';
$labels['uservalid'] = 'Valide';
$labels['userid'] = 'ID';
$labels['valid'] = 'valide';
$labels['supportencryption'] = 'Activer la signature et le chiffrement des courriels';
$labels['supportsignatures'] = 'Activer la vérification des signatures des courriels';
$labels['supportdecryption'] = 'Activer le déchiffrement des courriels';
$labels['signdefault'] = 'Par défaut, signer tous les courriels';
$labels['encryptdefault'] = 'Par défaut, chiffrer tous les courriels';
$labels['attachpubkeydefault'] = 'Par défaut, joindre ma clé PGP publique';
$labels['passwordtime'] = 'Conserver les mots de passe des clés privées pendant';
$labels['nminutes'] = '$m minute(s)';
$labels['wholesession'] = 'la session complète';
$labels['createkeys'] = 'Créer une nouvelle biclé';
$labels['importkeys'] = 'Importer des clés';
$labels['exportkeys'] = 'Exporter des clés';
$labels['keyactions'] = 'Actions des clés...';
$labels['keyremove'] = 'Supprimer';
$labels['keydisable'] = 'Désactiver';
$labels['keyrevoke'] = 'Révoquer';
$labels['keysend'] = 'Envoyer la clé publique dans un courriel';
$labels['keychpass'] = 'Changer le mot de passe';
$labels['newkeyident'] = 'Identité :';
$labels['newkeypass'] = 'Mot de passe :';
$labels['newkeypassconfirm'] = 'Confirmer le mot de passe :';
$labels['newkeysize'] = 'Taille de la clé :';
$labels['key2048'] = '2048 bits - par défaut';
$labels['key4096'] = '4096 bits - plus sécurisé';
$labels['keygenerating'] = 'Génération des clés...';
$labels['encryptionoptions'] = 'Options de chiffrement...';
$labels['encryptmsg'] = 'Chiffrer ce courriel';
$labels['signmsg'] = 'Signer numériquement ce courriel';
$labels['enterkeypasstitle'] = 'Saisir la phrase de passe de la clé';
$labels['enterkeypass'] = 'Un phrase de passe est nécessaire pour débloquer la clé secrète ($keyid) pour l\'utilisateur : $user.';
$labels['arialabelkeyexportoptions'] = 'Options d\'exportation des clés';
$labels['attachpubkeymsg'] = 'Joindre ma clé publique';
$labels['keyexportprompt'] = 'Voulez-vous inclure les clés secrètes dans le fichier des clés OpenPGP enregistrées ?';
$labels['onlypubkeys'] = 'Exporter seulement les clés publiques';
$labels['withprivkeys'] = 'Exporter les clés secrètes';
$labels['findkey'] = 'Rechercher sur les serveurs de clés';
$labels['keyimportlabel'] = 'Importer d\'un fichier';
$labels['keyimportsearchlabel'] = 'Rechercher sur les serveurs de clés';
$messages['sigvalid'] = 'Signature vérifiée de $sender.';
$messages['sigvalidpartial'] = 'La signature de $sender a été vérifiée, mais une partie du corps n\'était pas signée.';
$messages['siginvalid'] = 'Signature invalide de $sender.';
$messages['sigunverified'] = 'Signature non vérifiée. Certificat non vérifié. ID de certificat : $keyid.';
$messages['signokey'] = 'Signature non vérifiée. Clé publique introuvable. ID de clé : $keyid.';
$messages['sigerror'] = 'Signature non vérifiée. Erreur interne.';
$messages['decryptok'] = 'Courriel déchiffré.';
$messages['decrypterror'] = 'Échec lors du déchiffrement.';
$messages['decryptnokey'] = 'Échec de déchiffrement. Clé privée introuvable. ID de clé : $keyid.';
$messages['decryptbadpass'] = 'Échec de déchiffrement. Le mot de passe est invalide.';
$messages['decryptnopass'] = 'Échec de déchiffrement. Le mot de passe de la clé est exigé.';
$messages['decryptpartial'] = 'Le courriel a été déchiffré, mais une partie du corps n\'était pas chiffré.';
$messages['signerror'] = 'Échec lors de la signature.';
$messages['signnokey'] = 'Échec lors de la signature. La clé privée est introuvable.';
$messages['signbadpass'] = 'Échec de signature. Le mot de passe est invalide.';
$messages['signnopass'] = 'Échec de signature. Le mot de passe de la clé est exigé.';
$messages['encrypterror'] = 'Échec lors du chiffrement.';
$messages['encryptnokey'] = 'Échec lors du chiffrement. La clé publique est introuvable pour $email.';
$messages['nokeysfound'] = 'Aucune clé trouvée';
$messages['keynotfound'] = 'Clé introuvable !';
$messages['keyopenerror'] = 'Impossible d\'obtenir les informations sur la clé ! Erreur interne.';
$messages['keylisterror'] = 'Impossible de lister les clés ! Erreur interne.';
$messages['keysimportfailed'] = 'Impossible d\'importer les clés ! Erreur interne.';
$messages['keysimportsuccess'] = 'Importation de clé réussie. Importées : $new, non modifiée(s) : $old.';
$messages['keyremoving'] = 'Suppression de des clés...';
$messages['keyremoveconfirm'] = 'Voulez-vous vraiment supprimer les clés sélectionnées ?';
$messages['keyremovesuccess'] = 'Clés supprimées avec succès';
$messages['keyremoveerror'] = 'Impossible de supprimer les clés sélectionnées';
$messages['keyimporttext'] = 'Vous pouvez importer des clés privées et publiques ou des signatures de révocation au format ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Vous pouvez chercher des clés publiques par identifiant de clé, nom d\'utilisateur ou adresse courriel, et ensuite les importer directement.';
$messages['formerror'] = 'Veuillez remplir le formulaire. Tous les champs sont requis !';
$messages['passwordsdiffer'] = 'Les mots de passe ne correspondent pas !';
$messages['keygenerateerror'] = 'La génération de la biclé a échoué';
$messages['keygeneratesuccess'] = 'Une biclé a été générée et importée avec succès.';
$messages['keygennosupport'] = 'Votre navigateur ne prend pas en charge le chiffrement. Activez-le pour générer une biclé !';
$messages['noidentselected'] = 'Vous devez choisir au moins une identité pour la clé !';
$messages['nonameident'] = 'Un nom d\'utilisateur doit être défini pour l\'identité !';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'הצפנה';
$labels['enigmacerts'] = 'תעודות מאושרות S/MIME';
$labels['enigmakeys'] = 'מפתחות PGP';
$labels['keysfromto'] = 'מפתחות from$ עד to$ מתוך count$';
$labels['keyname'] = 'שם';
$labels['keyid'] = 'זיהוי מפתח';
$labels['keyuserid'] = 'זיהוי משתמש';
$labels['keytype'] = 'סוג מפתח';
$labels['fingerprint'] = 'טביעת אצבע';
$labels['subkeys'] = 'תת מפתח';
$labels['basicinfo'] = 'מידע בסיסי';
$labels['userids'] = 'משתמשים נוספים';
$labels['typepublickey'] = 'מפתח ציבורי';
$labels['typekeypair'] = 'צמד מפתחות';
$labels['keyattfound'] = 'הצרופה מכילה מפתח PGP אחד או יותר';
$labels['keyattimport'] = 'ייבוא מפתח אחד או יותר';
$labels['typesign'] = 'לחתום';
$labels['typeencrypt'] = 'להצפין';
$labels['typecert'] = 'לאשר';
$labels['typeauth'] = 'וידוא מקוריות';
$labels['subkeyid'] = 'קוד זיהוי';
$labels['subkeyalgo'] = 'אלגוריתם';
$labels['subkeycreated'] = 'נוצר';
$labels['subkeyexpires'] = 'פג תוקף';
$labels['subkeyusage'] = 'שימוש';
$labels['expiresnever'] = 'אף פעם';
$labels['unknown'] = 'לא ידוע';
$labels['uservalid'] = 'בתוקף';
$labels['userid'] = 'קוד זיהוי';
$labels['valid'] = 'בתוקף';
$labels['supportencryption'] = 'הפעלה של הצפנת הודעה וחתימתה';
$labels['supportsignatures'] = 'הפעלה של וידוא חתימות הודעה';
$labels['supportdecryption'] = 'הפעלה של פיענוח הודעה';
$labels['signdefault'] = 'חתימה של כל הודעה כברירת מחדל';
$labels['encryptdefault'] = 'הצפנה של כל הודעה כברירת מחדל';
$labels['attachpubkeydefault'] = 'צירוף המפתח הציבורי שלי כברירת מחדל';
$labels['passwordtime'] = 'אחסון סיסמאות של מפתח פרטי עבור';
$labels['nminutes'] = 'm$ דקות';
$labels['wholesession'] = 'כל משך ההתקשרות';
$labels['createkeys'] = 'יצירה של צמד מפתחות';
$labels['importkeys'] = 'ייבוא מפתח אחד או יותר';
$labels['exportkeys'] = 'ייצוא מפתח אחד או יותר';
$labels['keyactions'] = 'פעולות אפשריות למפתח...';
$labels['keyremove'] = 'הסר';
$labels['keydisable'] = 'חסום';
$labels['keyrevoke'] = 'הפקעה';
$labels['keysend'] = 'משלוח מפתח ציבורי בהודעה';
$labels['keychpass'] = 'שינוי סיסמה';
$labels['newkeyident'] = 'זהות:';
$labels['newkeypass'] = 'סיסמה:';
$labels['newkeypassconfirm'] = 'אישור סיסמה:';
$labels['newkeysize'] = 'גודל מפתח:';
$labels['key2048'] = 'ברירת מחדל - 2048 סיביות';
$labels['key4096'] = '4096 סיביות - יותר בטוח';
$labels['keygenerating'] = 'מפתחות נוצרים...';
$labels['encryptionoptions'] = 'אפשרויות הצפנה...';
$labels['encryptmsg'] = 'הצפנה של הודעה זו';
$labels['signmsg'] = 'חתימה דיגיטלית של הודעה זו';
$labels['enterkeypasstitle'] = 'נא להקיש צרור אותיות וסימנים ליצירת מפתח';
$labels['enterkeypass'] = 'יש להקיש צרור אותיות וסימנים שנבחרו קודם כדי לשחרר נעילה של המפתח הסודי (keyid$) של משתמש user$';
$labels['arialabelkeyexportoptions'] = 'אפשרויות ייצוא של מפתחות';
$labels['attachpubkeymsg'] = 'צירוף המפתח הציבורי שלי';
$labels['keyexportprompt'] = 'האם ברצונך לכלול מפתחות סודיים בקובץ השמור של המפתחות ?';
$labels['onlypubkeys'] = 'ייצוא מפתחות ציבוריים בלבד';
$labels['withprivkeys'] = 'ייצוא מפתחות סודיים';
$labels['findkey'] = 'חיפוש בשרת(י) מפתח';
$labels['keyimportlabel'] = 'ייבוא מקובץ';
$labels['keyimportsearchlabel'] = 'חיפוש בשרת(י) מפתח';
$messages['sigvalid'] = 'אימות חתימה מ sender$';
$messages['sigvalidpartial'] = 'אומתה חתימה של sender$ אבל חלק מגוף ההודעה לא נחתם';
$messages['siginvalid'] = 'חתימה לא תקינה מ sender$';
$messages['sigunverified'] = 'חתימה לא מאומתת. התעודה לא אומתה. קוד תעודה: keyid$.';
$messages['signokey'] = 'חתימה לא מאומתת. לא נמצא מפתח ציבורי. קוד מפתח: keyid$.';
$messages['sigerror'] = 'חתימה לא מאומתת. שגיאה פנימית.';
$messages['decryptok'] = 'הודעה פוענחה.';
$messages['decrypterror'] = 'הפיענוח נכשל.';
$messages['decryptnokey'] = 'הפיענוח נכשל. לא נמצא מפתח פרטי. קוד מפתח: keyid$.';
$messages['decryptnopass'] = 'פענוח נכשל. נדרשת סיסמת מפתח.';
$messages['decryptpartial'] = 'ההודעה פוענחה אבל חלק מגוף ההודעה כלל לא הוצפן';
$messages['signerror'] = 'חתימה נכשלה.';
$messages['signnokey'] = 'חתימה נכשלה. לא נמצא מפתח פרטי.';
$messages['signnopass'] = 'חיתום נכשל. נדרשת סיסמת מפתח.';
$messages['encrypterror'] = 'הצפנה נכשלה.';
$messages['encryptnokey'] = 'הצפנה נכשלה. לא נמצא מפתח ציבורי עבור mail$.';
$messages['nokeysfound'] = 'לא נמצאו מפתחות.';
$messages['keynotfound'] = 'לא נמצא מפתח !';
$messages['keyopenerror'] = 'לא ניתן להשיג מידע על מפתח! שגיאה פנימית.';
$messages['keylisterror'] = 'לא ניתן להציג רשימת מפתחות! שגיאה פנימית.';
$messages['keysimportfailed'] = 'לא ניתן לייבא מפתח אחד או יותר ! שגיאה פנימית.';
$messages['keysimportsuccess'] = 'מפתחות יובאו בהצלחה. יובא: new$, לא שינוי: old$.';
$messages['keyremoving'] = 'הסרת מפתחות...';
$messages['keyremoveconfirm'] = 'האם למחוק את המפתחות שנבחרו?';
$messages['keyremovesuccess'] = 'מפתח(ות) נמחק(ו) בהצלחה';
$messages['keyremoveerror'] = 'לא ניתן למחוק את המפתחות שנבחרו.';
$messages['keyimporttext'] = 'ניתן לייבא מפתחות פרטיים וציבוריים או חתימות ביטול בםפורמט ASCII-Armor';
$messages['keyimportsearchtext'] = 'ניתן לחפש מפתחות ציבוריים לפי מזהה מפתח, שם משתמש או כתובת דוא"ל ואח"כ לייבא אותם ישירות.';
$messages['formerror'] = 'נא למלא את כל השדות בטופס !';
$messages['passwordsdiffer'] = 'הסיסמאות לא תואמות!';
$messages['keygenerateerror'] = 'נכשלה יצירה של צמד המפתחות';
$messages['keygeneratesuccess'] = 'נוצר צמד מפתחות ויובא בהצלחה.';
$messages['keygennosupport'] = 'הדפדפן הזה אינו תומך בהצפנה. לא ניתן לייצר צמד מפתחות !';
$messages['noidentselected'] = 'יש לבחור לפחות זהות אחת עבור המפתח';
$messages['nonameident'] = 'יש להגדיר שם משתמש בהגדרת הזהות !';
?>
@@ -0,0 +1,19 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['keychpass'] = 'Promjena zaporke';
?>
@@ -0,0 +1,123 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Titkosítás';
$labels['enigmacerts'] = 'S/MIMI Tanusitványok';
$labels['enigmakeys'] = 'PGP Kulcsok';
$labels['keysfromto'] = 'Kulcsok $from - $to / $count ';
$labels['keyname'] = 'Név';
$labels['keyid'] = 'Kulcs ID';
$labels['keyuserid'] = 'Felhasználó ID';
$labels['keytype'] = 'Kulcs tipus';
$labels['fingerprint'] = 'Ujjlenyomat';
$labels['subkeys'] = 'Alkulcsok';
$labels['basicinfo'] = 'Alap információk';
$labels['userids'] = 'További felhasználok';
$labels['typepublickey'] = 'nyilvános kulcs';
$labels['typekeypair'] = 'kulcspár';
$labels['keyattfound'] = 'Ez az űzenet tartalmaz csatolt PGP kulcso(ka)t';
$labels['keyattimport'] = 'Kulcs(ok) importálása';
$labels['typesign'] = 'Aláírás';
$labels['typeencrypt'] = 'Titkosít';
$labels['typecert'] = 'Igazolni';
$labels['typeauth'] = 'Hitelesítés';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmus';
$labels['subkeycreated'] = 'Létrehozva';
$labels['subkeyexpires'] = 'Lejár';
$labels['subkeyusage'] = 'Felhasználás';
$labels['expiresnever'] = 'soha';
$labels['unknown'] = 'ismeretlen';
$labels['uservalid'] = 'Érvényes';
$labels['userid'] = 'ID';
$labels['valid'] = 'érvényes';
$labels['supportencryption'] = 'Az üzenet titkosításának és aláíásának engedélyezése';
$labels['supportsignatures'] = 'Az űzenet álírásainak ellenörzésének engedélyezése';
$labels['supportdecryption'] = 'Az üzenet ki-titkosításának engedélyezése';
$labels['signdefault'] = 'Alapértelemzetten írja alá az üzeneteket';
$labels['encryptdefault'] = 'Titkosítsa az összes üzenetet alapértelemzetten';
$labels['attachpubkeydefault'] = 'Alapértelmezetten csatolja a publikus PGP kulcsomat.';
$labels['passwordtime'] = 'Jegyezze meg a privát kulcs jelszavát a következöhöz';
$labels['nminutes'] = '$m perc';
$labels['wholesession'] = 'az egész munkamenet';
$labels['createkeys'] = 'Új kulcs pár létrehozása';
$labels['importkeys'] = 'Kulcsok importálása';
$labels['exportkeys'] = 'Kulcs(ok) exportálása';
$labels['keyactions'] = 'Kulcs műveletek';
$labels['keyremove'] = 'Eltávolítás';
$labels['keydisable'] = 'Tilt';
$labels['keyrevoke'] = 'Visszavon';
$labels['keysend'] = 'Kűld el a nyilvános kulcsot az üzenetben';
$labels['keychpass'] = 'Jelszó módosítás';
$labels['newkeyident'] = 'Azonosító:';
$labels['newkeypass'] = 'Jelszó:';
$labels['newkeypassconfirm'] = 'Jelszó megerősítése';
$labels['newkeysize'] = 'Kulcs méret:';
$labels['key2048'] = '2048 bit - alapértelemzett';
$labels['key4096'] = '4096 bit - biztonságosabb';
$labels['keygenerating'] = 'Kulcsok generálása…';
$labels['encryptionoptions'] = 'Titkosítási beállítások...';
$labels['encryptmsg'] = 'Titkosítsa ezt az üzenetet';
$labels['signmsg'] = 'Ennek az üzenetnek a digtális aláírása';
$labels['enterkeypasstitle'] = 'Írd be a jelmondatot';
$labels['enterkeypass'] = 'Jelmondat(passphrase) szükséges a titkos kulcs ($keyid) felhasznlóhoz ($user) feloldásához. ';
$labels['arialabelkeyexportoptions'] = 'Kulcsok exportálásához opciók';
$labels['attachpubkeymsg'] = 'A nyilvános kulcsom csatolása';
$labels['keyexportprompt'] = 'A mentett OpenPGP kulcsoknál legyenek-e tárolva a titkos kulcsok is?';
$labels['onlypubkeys'] = 'Csak a nyilvános kulcsok exportálása';
$labels['withprivkeys'] = 'Titkos kucsok exportálása';
$labels['findkey'] = 'Keresés a kulcs szerver(ek)en';
$labels['keyimportlabel'] = 'Importálás fájlból';
$labels['keyimportsearchlabel'] = 'Keresés a kulcs szerver(ek)en';
$messages['sigvalid'] = 'A $sender feladó aláírása ellenőrízve.';
$messages['sigvalidpartial'] = 'A $sender feladó aláírása ellenőrízve, de részei az üzenetnek nem voltak aláírva.';
$messages['siginvalid'] = 'Érvénytelen aláírás a következő feladótól: $sender';
$messages['sigunverified'] = 'Nem ellenörzött aláírás. A tanúsítvány nem ellenőrzött. Tanusítvány ID: $keyid.';
$messages['signokey'] = 'Nem ellenörzött aláírás. Nyilvános kulcs nem található. Kulcs ID: $keyid.';
$messages['sigerror'] = 'Nem ellenörzött aláírás. Belső hiba.';
$messages['decryptok'] = 'Üzenet ki-tikosítva.';
$messages['decrypterror'] = 'Visszafejtés sikertelen.';
$messages['decryptnokey'] = 'Visszafejtés sikertelen. Nyilvános nem található. Kulcs ID: $keyid.';
$messages['decryptbadpass'] = 'Visszafejtés sikertelen. Hibás jelszó.';
$messages['decryptnopass'] = 'Visszafejtés sikertelen. A kulcshoz jelszó kell.';
$messages['decryptpartial'] = 'Visszafejtés sikeres, de néhány része az üzenetnek nem volt titkosítva.';
$messages['signerror'] = 'Aláírás sikertelen.';
$messages['signnokey'] = 'Aláírás sikertelen. Nyilvános kulcs nem található.';
$messages['signbadpass'] = 'Aláírás sikertelen. Hibás jelszó.';
$messages['signnopass'] = 'Aláírás sikertelen. A kulcshoz jelszó kell.';
$messages['encrypterror'] = 'Titkosítás sikertelen.';
$messages['encryptnokey'] = 'Titkosítás sikertelen. Nyilvás kulcs nem található a következőhöz: $email.';
$messages['nokeysfound'] = 'Nem találhatóak kulcsok';
$messages['keynotfound'] = 'A kulcs nem található!';
$messages['keyopenerror'] = 'A kulcs információk lekérésés nem lehetséges. Belső hiba.';
$messages['keylisterror'] = 'A kulcsok listázása nem sikerült. Belső hiba.';
$messages['keysimportfailed'] = 'A kulcs(ok) importálása sikertlelen. Belső hiba.';
$messages['keysimportsuccess'] = 'A kulcs(ok) importálása sikeres. Importálva: $new, változatlan: $old.';
$messages['keyremoving'] = 'Kulcs(ok) eltávolítása...';
$messages['keyremoveconfirm'] = 'Biztosan törölni szeretnéd a kiválasztott kulcso(ka)t?';
$messages['keyremovesuccess'] = 'A kulcs(ok) sikeresen törölve';
$messages['keyremoveerror'] = 'Nem sikerült a kiválasztott kulcso(ka)t törölni.';
$messages['keyimporttext'] = 'Importálhatod a privát és nyilvános kulcsodat vagy a visszavonási aláírásokatr ASCII-Armor formátumban.';
$messages['keyimportsearchtext'] = 'A publikus kulcsokat keresheted az azonsító, a felhasználó név vagy a email cím alapján, majd közvetlenül beimportálhatod.';
$messages['formerror'] = 'Tőltsd ki az ürlapot. Minden mező kitöltése kötelező!';
$messages['passwordsdiffer'] = 'A jelszavak nem egyeznek!';
$messages['keygenerateerror'] = 'Nem sikerült a kulcs-pár létrehozása';
$messages['keygeneratesuccess'] = 'A kulcs-pár létrejött és sikeresen beimportálódott.';
$messages['keygennosupport'] = 'A böngésződ nem támogatja a titkosítást. A kulcs-pár nem hozható létre!';
$messages['noidentselected'] = 'Ki kell választanod legalább egy identitást a kulcshoz!';
$messages['nonameident'] = 'Egy identitásnak kötelező felhasználó nevet beállítani!';
?>
@@ -0,0 +1,120 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Enkripsi';
$labels['enigmacerts'] = 'Sertifikat S/MIME';
$labels['enigmakeys'] = 'Kunci PGP';
$labels['keysfromto'] = 'Kunci $from sampai $to dari $count';
$labels['keyname'] = 'Nama';
$labels['keyid'] = 'ID Kunci';
$labels['keyuserid'] = 'ID Pengguna';
$labels['keytype'] = 'Tipe kunci';
$labels['fingerprint'] = 'Sidik jari';
$labels['subkeys'] = 'Subkunci';
$labels['basicinfo'] = 'Informasi dasar';
$labels['userids'] = 'Pengguna Tambahan';
$labels['typepublickey'] = 'kunci publik';
$labels['typekeypair'] = 'kunci pasangan';
$labels['keyattfound'] = 'Pesan ini memuat kunci PGP yang dilampirkan.';
$labels['keyattimport'] = 'Impor kunci';
$labels['typesign'] = 'Tandatangani';
$labels['typeencrypt'] = 'Enkripsi';
$labels['typecert'] = 'Sertifikasikan';
$labels['typeauth'] = 'Otentifikasi';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritma';
$labels['subkeycreated'] = 'Dibuat';
$labels['subkeyexpires'] = 'Kedaluarsa';
$labels['subkeyusage'] = 'Penggunaan';
$labels['expiresnever'] = 'tidak pernah';
$labels['unknown'] = 'tak diketahui';
$labels['uservalid'] = 'Valid';
$labels['userid'] = 'ID';
$labels['valid'] = 'valid';
$labels['supportencryption'] = 'Fungsikan enkripsi dan penandatanganan pesan';
$labels['supportsignatures'] = 'Fungsikan verifikasi tanda tangan pesan';
$labels['supportdecryption'] = 'Fungsikan dekripsi pesan';
$labels['signdefault'] = 'Tandatangani semua pesan secara baku';
$labels['encryptdefault'] = 'Enkripsikan semua pesan secara baku';
$labels['attachpubkeydefault'] = 'Lampirkan kunci PGP publik saya secara baku';
$labels['passwordtime'] = 'Simpan kata sandi kunci rahasia selama';
$labels['nminutes'] = '$m menit';
$labels['wholesession'] = 'seluruh sesi';
$labels['createkeys'] = 'Buat pasangan kunci baru';
$labels['importkeys'] = 'Impor kunci';
$labels['exportkeys'] = 'Ekspor kunci';
$labels['keyactions'] = 'Aksi kunci...';
$labels['keyremove'] = 'Hapus';
$labels['keydisable'] = 'Nonaktifkan';
$labels['keyrevoke'] = 'Cabut';
$labels['keysend'] = 'Kirim kunci publik dalam pesan';
$labels['keychpass'] = 'Ubah kata sandi';
$labels['newkeyident'] = 'Identitas:';
$labels['newkeypass'] = 'Kata sandi:';
$labels['newkeypassconfirm'] = 'Konfirmasi kata sandi:';
$labels['newkeysize'] = 'Ukuran kunci:';
$labels['key2048'] = '2048 bit - baku';
$labels['key4096'] = '4096 bit - lebih aman';
$labels['keygenerating'] = 'Membuat kunci...';
$labels['encryptionoptions'] = 'Opsi enkripsi...';
$labels['encryptmsg'] = 'Enkripsikan pesan ini';
$labels['signmsg'] = 'Tandatantani pesan ini';
$labels['enterkeypasstitle'] = 'Masukkan frasa sandi kunci';
$labels['enterkeypass'] = 'Frasa sandi diperlukan untuk membuka kunci rahasia ($keyid) untuk pengguna: $user.';
$labels['arialabelkeyexportoptions'] = 'Opsi ekspor kunci';
$labels['attachpubkeymsg'] = 'Lampirkan kunci publik saya';
$labels['keyexportprompt'] = 'Apakah Anda ingin menyertakan kunci rahasia dalam berkas kunci OpenPGP yang disimpan?';
$labels['onlypubkeys'] = 'Ekspor Kunci Publik Saja';
$labels['withprivkeys'] = 'Ekspor Kunci Rahasia';
$labels['findkey'] = 'Cari pada server kunci';
$labels['keyimportlabel'] = 'Impor dari berkas';
$labels['keyimportsearchlabel'] = 'Cari pada server kunci';
$messages['sigvalid'] = 'Tanda tangan terverifikasi dari $sender.';
$messages['sigvalidpartial'] = 'Tanda tangan terverifikasi dari $sender, tapi sebagian pesan tidak ditandatangani.';
$messages['siginvalid'] = 'Tanda tangan tak valid dari $sender.';
$messages['sigunverified'] = 'Tanda tangan tak terverifikasi. Sertifikat tak terverifikasi. ID sertifikat: $keyid.';
$messages['signokey'] = 'Tanda tangan tak terverifikasi. Kunci publik tak ditemukan. ID kunci: $keyid.';
$messages['sigerror'] = 'Tanda tangan tak terverifikasi. Kesalahan internal.';
$messages['decryptok'] = 'Pesan didekripsi.';
$messages['decrypterror'] = 'Dekripsi gagal.';
$messages['decryptnokey'] = 'Dekripsi gagal. Kunci privat tak ditemukan. ID kunci: $keyid.';
$messages['decryptnopass'] = 'Dekripsi gagal. Kata sandi kunci diperlukan.';
$messages['decryptpartial'] = 'Pesan didekripsi, tapi sebagian isi tidak dienkripsi.';
$messages['signerror'] = 'Penandatanganan gagal.';
$messages['signnokey'] = 'Penandatanganan gagal. Kunci privat tak ditemukan.';
$messages['signnopass'] = 'Penandatanganan gagal. Kata sandi kunci diperlukan.';
$messages['encrypterror'] = 'Enkripsi gagal.';
$messages['encryptnokey'] = 'Enkripsi gagal. Kunci publik tak ditemukan untuk $email.';
$messages['nokeysfound'] = 'Tidak ada kunci yang ditemukan';
$messages['keynotfound'] = 'Kunci tidak ditemukan!';
$messages['keyopenerror'] = 'Tidak bisa memperoleh informasi kunci! Kesalahan internal.';
$messages['keylisterror'] = 'Tidak bisa membuat daftar kunci! Kesalahan internal.';
$messages['keysimportfailed'] = 'Tidak bisa mengimpor kunci! Kesalahan internal.';
$messages['keysimportsuccess'] = 'Kunci sukses diimpor. Diimpor: $new, tidak berubah: $old.';
$messages['keyremoving'] = 'Menghapus kunci...';
$messages['keyremoveconfirm'] = 'Anda yakin hendak menghapus kunci yang dipilih?';
$messages['keyremovesuccess'] = 'Kunci sukses dihapus';
$messages['keyremoveerror'] = 'Tidak bisa menghapus kunci yang dipilih.';
$messages['keyimporttext'] = 'Anda bisa mengimpor kunci privat dan publik atau tanda tangan pencabutan dalam format ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Anda dapat mencari kunci publik berdasarkan identifier kunci, nama pengguna, atau alamat surel, lalu secara langsung mengimpor mereka.';
$messages['formerror'] = 'Harap isi formulir. Semua ruas diperlukan!';
$messages['passwordsdiffer'] = 'Kata sandi tidak cocok!';
$messages['keygenerateerror'] = 'Gagal membuat suatu pasangan kunci';
$messages['keygeneratesuccess'] = 'Suatu pasangan kunci dibuat dan sukses diimpor.';
$messages['keygennosupport'] = 'Peramban web Anda tidak mendukung kriptografi. Tidak bisa membuat suatu pasangan kunci!';
$messages['nonameident'] = 'Identitas mesti mengandung nama pengguna!';
?>
@@ -0,0 +1,21 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['keyname'] = 'Heiti';
$labels['keyid'] = 'Auðkenni lykils';
$labels['typeencrypt'] = 'Dulrita';
?>
@@ -0,0 +1,64 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Criptare';
$labels['enigmacerts'] = 'Certificati S/MIME';
$labels['enigmakeys'] = 'Chiavi PGP';
$labels['keysfromto'] = 'Chiavi da $from a $to di $count';
$labels['keyname'] = 'Nome';
$labels['keyid'] = 'ID della chiave';
$labels['keyuserid'] = 'ID utente';
$labels['keytype'] = 'Tipo chiave';
$labels['fingerprint'] = 'Fingerprint';
$labels['subkeys'] = 'Sottochiavi';
$labels['basicinfo'] = 'Informazioni base';
$labels['userids'] = 'Utenti aggiuntivi';
$labels['typepublickey'] = 'chiave pubblica';
$labels['keyattfound'] = 'Questo messaggio contiene allegate Chiavi PGP.';
$labels['keyattimport'] = 'Importa Chiave(i)';
$labels['typesign'] = 'Firma';
$labels['typeencrypt'] = 'Cripta';
$labels['typecert'] = 'Certifica';
$labels['typeauth'] = 'Autenticazione';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmo';
$labels['subkeycreated'] = 'Creato';
$labels['subkeyexpires'] = 'Scadenza';
$labels['subkeyusage'] = 'Utilizzo';
$labels['expiresnever'] = 'mai';
$labels['unknown'] = 'sconosciuto';
$labels['uservalid'] = 'Valido';
$labels['userid'] = 'ID';
$labels['valid'] = 'valido';
$labels['supportencryption'] = 'Abilita cifratura firma del messaggio';
$labels['supportsignatures'] = 'Abilita la verifica delle firme dei messaggi';
$labels['supportdecryption'] = 'Abilita da decodifica del messaggio';
$labels['signdefault'] = 'Firma tutti i messaggi di default';
$labels['encryptdefault'] = 'Crypta tutti i messaggi di default';
$labels['attachpubkeydefault'] = 'Allega la mia chiave pubblica PGP di default';
$labels['nminutes'] = '$m minuti';
$labels['createkeys'] = 'Crea una nuova coppia di chiavi';
$labels['importkeys'] = 'Importa chiave(i)';
$labels['exportkeys'] = 'Esporta Chiave(i)';
$labels['keyremove'] = 'Rimuovi';
$labels['keydisable'] = 'Disabilita';
$labels['keyrevoke'] = 'Revoca';
$labels['keychpass'] = 'Cambia password';
$labels['newkeyident'] = 'Identità:';
$labels['newkeypass'] = 'Password:';
$labels['newkeypassconfirm'] = 'Conferma password:';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = '暗号化';
$labels['enigmacerts'] = 'S/MIME証明書';
$labels['enigmakeys'] = 'PGPのキー';
$labels['keysfromto'] = '$count の $from から $to へのキー';
$labels['keyname'] = '名前';
$labels['keyid'] = 'キーID';
$labels['keyuserid'] = 'ユーザーID';
$labels['keytype'] = 'キーの種類';
$labels['fingerprint'] = 'フィンガープリント';
$labels['subkeys'] = '副キー';
$labels['basicinfo'] = '基本情報';
$labels['userids'] = '追加のユーザー';
$labels['typepublickey'] = '公開鍵';
$labels['typekeypair'] = '鍵ペア';
$labels['keyattfound'] = 'このメッセージは同封したPGPのキーを含んでいます。';
$labels['keyattimport'] = 'キーをインポート';
$labels['typesign'] = '署名';
$labels['typeencrypt'] = '暗号化';
$labels['typecert'] = '証明書';
$labels['typeauth'] = '認証';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'アルゴリズム';
$labels['subkeycreated'] = '作成日時';
$labels['subkeyexpires'] = '期限切れ';
$labels['subkeyusage'] = '使用法';
$labels['expiresnever'] = 'しない';
$labels['unknown'] = '不明';
$labels['uservalid'] = '有効';
$labels['userid'] = 'ID';
$labels['valid'] = '有効';
$labels['supportencryption'] = 'メッセージの暗号化と署名';
$labels['supportsignatures'] = 'メッセージの署名を検証';
$labels['supportdecryption'] = 'メッセージの復号';
$labels['signdefault'] = 'すべてのメッセージを初期設定で署名';
$labels['encryptdefault'] = 'すべてのメッセージを初期設定で暗号化';
$labels['attachpubkeydefault'] = '初期設定で自分の公開鍵を添付';
$labels['passwordtime'] = 'プライベートキーのパスワードを以下の間保持: ';
$labels['nminutes'] = '$m 分';
$labels['wholesession'] = 'セッションの間中';
$labels['createkeys'] = '新しい鍵ペアを作成';
$labels['importkeys'] = 'キーをインポート';
$labels['exportkeys'] = 'キーをエクスポート';
$labels['keyactions'] = 'キーの操作...';
$labels['keyremove'] = '削除';
$labels['keydisable'] = '無効化';
$labels['keyrevoke'] = '廃止';
$labels['keysend'] = 'メッセージ中に公開鍵を送信';
$labels['keychpass'] = 'パスワードを変更';
$labels['newkeyident'] = '識別情報:';
$labels['newkeypass'] = 'パスワード:';
$labels['newkeypassconfirm'] = 'パスワードの確認:';
$labels['newkeysize'] = '鍵の大きさ:';
$labels['key2048'] = '2048ビット(初期設定)';
$labels['key4096'] = '4096ビット(より安全)';
$labels['keygenerating'] = 'キーを精製中...';
$labels['encryptionoptions'] = '暗号のオプション...';
$labels['encryptmsg'] = 'このメッセージを暗号化';
$labels['signmsg'] = 'このメッセージに電子署名';
$labels['enterkeypasstitle'] = 'キーのパスフレーズを入力';
$labels['enterkeypass'] = 'ユーザー: $userの秘密鍵($keyid)の解除にパスフレーズが必要です。';
$labels['arialabelkeyexportoptions'] = 'キーのエクスポートのオプション';
$labels['attachpubkeymsg'] = '公開鍵を添付';
$labels['keyexportprompt'] = '保存したOpenPGPのキーファイルに秘密鍵も含めますか?';
$labels['onlypubkeys'] = '公開鍵だけエクスポート';
$labels['withprivkeys'] = '秘密鍵をエクスポート';
$labels['findkey'] = 'キーサーバーで検索';
$labels['keyimportlabel'] = 'ファイルからインポート';
$labels['keyimportsearchlabel'] = 'キーサーバーで検索';
$messages['sigvalid'] = '$senderからの署名を検証しました。';
$messages['sigvalidpartial'] = '$senderからの署名を検証しましたが、本文の一部は署名されていません。';
$messages['siginvalid'] = '$senderからの署名は正しくありません。';
$messages['sigunverified'] = '署名を検証できません。証明書を検証できません。証明書ID: $keyid';
$messages['signokey'] = '署名を検証できません。次の公開鍵がありません: $keyid';
$messages['sigerror'] = '署名を検証できません。内部エラーです。';
$messages['decryptok'] = 'メッセージを復号しました。';
$messages['decrypterror'] = '復号できませんでした。';
$messages['decryptnokey'] = '復号できませんでした。次のキーIDの秘密鍵がありません: $keyid';
$messages['decryptnopass'] = '復号できませんでした。キーのパスワードが必要です。';
$messages['decryptpartial'] = 'メッセージを復号しました。しかし、本文の一部は暗号化していませんでした。';
$messages['signerror'] = '署名できませんでした。';
$messages['signnokey'] = '署名できませんでした。秘密鍵がありません。';
$messages['signnopass'] = '署名できませんでした。キーのパスワードが必要です。';
$messages['encrypterror'] = '暗号化できませんでした。';
$messages['encryptnokey'] = '暗号化できませんでした。$emailへの公開鍵がありません。';
$messages['nokeysfound'] = 'キーがありません。';
$messages['keynotfound'] = 'キーがありません!';
$messages['keyopenerror'] = 'キーの情報を取得できません! 内部エラーです。';
$messages['keylisterror'] = 'キーの一覧をできません! 内部エラーです。';
$messages['keysimportfailed'] = 'キーをインポートできません! 内部エラーです。';
$messages['keysimportsuccess'] = 'キーをインポートしました。$new個を新規に、$old個は変更していません。';
$messages['keyremoving'] = 'キーを削除中...';
$messages['keyremoveconfirm'] = '本当に! 秘密鍵を削除しますか?';
$messages['keyremovesuccess'] = '鍵を削除しました。';
$messages['keyremoveerror'] = '秘密鍵を削除できません。';
$messages['keyimporttext'] = '秘密鍵と公開鍵、または失効署名はASCII-Armor形式でインポートできます。';
$messages['keyimportsearchtext'] = 'キーの識別子、ユーザー名、電子メールアドレスのいずれかで公開鍵を検索して、直接インポートできます。';
$messages['formerror'] = '項目を入力してください。すべての項目は必須です!';
$messages['passwordsdiffer'] = 'パスワードが一致しません!';
$messages['keygenerateerror'] = '鍵ペアを生成できませんでした。';
$messages['keygeneratesuccess'] = '鍵ペアを生成してインポートしました。';
$messages['keygennosupport'] = 'Webブラウザーが暗号機能をサポートしていません。鍵ペアを生成できません!';
$messages['noidentselected'] = 'キーのための識別情報を少なくとも1つ選択しなければなりません!';
$messages['nonameident'] = '識別情報にはユーザー名が必須です!';
?>
@@ -0,0 +1,19 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['keyname'] = 'სახელი';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = '암호화';
$labels['enigmacerts'] = 'S/MIME 인증서';
$labels['enigmakeys'] = 'PGP 키';
$labels['keysfromto'] = '키 총 $count개 중 $from 번째 부터 $to 번째까지';
$labels['keyname'] = '이름';
$labels['keyid'] = '키 ID';
$labels['keyuserid'] = '사용자 ID';
$labels['keytype'] = '키 유형';
$labels['fingerprint'] = '지문';
$labels['subkeys'] = '하위 키';
$labels['basicinfo'] = '기본 정보';
$labels['userids'] = '추가 사용자';
$labels['typepublickey'] = '공개 키';
$labels['typekeypair'] = '키 페어';
$labels['keyattfound'] = '이 메시지는 첨부된 PGP 키를 포함합니다.';
$labels['keyattimport'] = '키 가져오기';
$labels['typesign'] = '서명';
$labels['typeencrypt'] = '암호화';
$labels['typecert'] = '인증';
$labels['typeauth'] = '인증';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = '알고리즘';
$labels['subkeycreated'] = '생성일';
$labels['subkeyexpires'] = '만료일';
$labels['subkeyusage'] = '사용도';
$labels['expiresnever'] = '하지 않음';
$labels['unknown'] = '알 수 없음';
$labels['uservalid'] = '유효';
$labels['userid'] = 'ID';
$labels['valid'] = '유효';
$labels['supportencryption'] = '메시지 암호화 및 서명 추가 활성화';
$labels['supportsignatures'] = '메시지 서명 검증 활성화';
$labels['supportdecryption'] = '메시지 복호화 활성화';
$labels['signdefault'] = '기본적으로 모든 메시지에 서명 추가';
$labels['encryptdefault'] = '기본적으로 모든 메시지 암호화';
$labels['attachpubkeydefault'] = '내 공개 PGP 키를 기본으로 첨부';
$labels['passwordtime'] = '비공개 키 암호를 다음 기간동안 유지';
$labels['nminutes'] = '$m분';
$labels['wholesession'] = '전체 세션';
$labels['createkeys'] = '새로운 키 페어 생성';
$labels['importkeys'] = '키 가져오기';
$labels['exportkeys'] = '키 내보내기';
$labels['keyactions'] = '키 동작...';
$labels['keyremove'] = '제거';
$labels['keydisable'] = '비활성화';
$labels['keyrevoke'] = '폐기';
$labels['keysend'] = '메시지에 공개 키 전송';
$labels['keychpass'] = '암호 변경';
$labels['newkeyident'] = '신원:';
$labels['newkeypass'] = '암호:';
$labels['newkeypassconfirm'] = '암호 확인:';
$labels['newkeysize'] = '키 크기:';
$labels['key2048'] = '2048 비트 - 기본';
$labels['key4096'] = '4096 비트 - 보안 강화';
$labels['keygenerating'] = '키를 생성하는 중...';
$labels['encryptionoptions'] = '암호화 옵션...';
$labels['encryptmsg'] = '이 메시지를 암호화';
$labels['signmsg'] = '이 메시지에 디지털 서명 추가';
$labels['enterkeypasstitle'] = '키 암호문 입력';
$labels['enterkeypass'] = '다음 사용자에 대한 비밀 키($keyid)의 잠금을 해제하려면 암호문이 필요합니다: $user.';
$labels['arialabelkeyexportoptions'] = '키 내보내기 옵션';
$labels['attachpubkeymsg'] = '내 공개 키 첨부';
$labels['keyexportprompt'] = '암호 키를 저장된 OpenPGP 키 파일에 포함하시겠습니까?';
$labels['onlypubkeys'] = '공개 키만 내보내기';
$labels['withprivkeys'] = '비밀 키 내보내기';
$labels['findkey'] = '키 서버에서 검색';
$labels['keyimportlabel'] = '파일에서 가져오기';
$labels['keyimportsearchlabel'] = '키 서버에서 검색';
$messages['sigvalid'] = '$sender이(가) 보낸 검증된 서명.';
$messages['sigvalidpartial'] = '$sender의 검증된 서명이긴 하나, 본문 일부가 서명되지 않았습니다.';
$messages['siginvalid'] = '$sender이(가) 보낸 검증되지 않은 서명.';
$messages['sigunverified'] = '검증되지 않은 서명. 인증서가 검증되지 않음. 인증서 ID: $keyid.';
$messages['signokey'] = '검증되지 않은 서명. 공개 키를 찾을 수 없습니다. 키 ID: $keyid.';
$messages['sigerror'] = '검증되지 않은 서명. 내부 오류.';
$messages['decryptok'] = '메시지가 복호화됨.';
$messages['decrypterror'] = '복호화에 실패함.';
$messages['decryptnokey'] = '복호화에 실패함. 비공개 키를 찾을 수 없음. 키 ID: $keyid.';
$messages['decryptnopass'] = '복호화에 실패함. 키 암호가 필요합니다.';
$messages['decryptpartial'] = '메시지가 복호화됐지만 본문 일부가 암호화 되지 않았습니다.';
$messages['signerror'] = '서명 추가에 실패함.';
$messages['signnokey'] = '서명 추가에 실패함. 비공개 키를 찾을 수 없음.';
$messages['signnopass'] = '서명 추가에 실패함. 키 암호가 필요합니다.';
$messages['encrypterror'] = '암호화에 실패함.';
$messages['encryptnokey'] = '암호화에 실패함. $email에 대한 공개 키를 찾을 수 없음.';
$messages['nokeysfound'] = '키를 찾을 수 없음';
$messages['keynotfound'] = '키를 발견하지 못함!';
$messages['keyopenerror'] = '키 정보를 얻을 수 없음! 내부 오류.';
$messages['keylisterror'] = '키 목록을 표시할 수 없음! 내부 오류.';
$messages['keysimportfailed'] = '키를 가져올 수 없음! 내부 오류.';
$messages['keysimportsuccess'] = '키를 성공적으로 가져옴. 가져옴: $new개, 변경되지 않음: $old개.';
$messages['keyremoving'] = '키를 제거하는 중...';
$messages['keyremoveconfirm'] = '정말로 선택한 키를 삭제하시겠습니까?';
$messages['keyremovesuccess'] = '키가 성공적으로 삭제되었습니다';
$messages['keyremoveerror'] = '선택한 키를 삭제하지 못함.';
$messages['keyimporttext'] = '비공개 및 공개 키 또는 폐기 서명을 ASCII-Armor 형식으로 가져올 수 있습니다.';
$messages['keyimportsearchtext'] = '키 식별자, 사용자명 또는 이메일 주소로 공개 키를 검색하신 후에, 직접 가져오실 수 있습니다.';
$messages['formerror'] = '양식을 작성해주세요. 모든 필드가 채워져야 합니다!';
$messages['passwordsdiffer'] = '암호가 일치하지 않음!';
$messages['keygenerateerror'] = '키 페어 생성을 실패함';
$messages['keygeneratesuccess'] = '키 페어가 성공적으로 생성되었고 가져왔습니다.';
$messages['keygennosupport'] = '웹 브라우저가 암호화를 지원하지 않습니다. 키 페어를 생성하지 못함!';
$messages['noidentselected'] = '적어도 키에 대한 하나 이상의 신원을 선택하셔야 합니다!';
$messages['nonameident'] = '신원에는 사용자명이 정의되어야 합니다!';
?>
@@ -0,0 +1,120 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Šifravimas';
$labels['enigmacerts'] = 'S/MIME liudijimai';
$labels['enigmakeys'] = 'PGP raktai';
$labels['keysfromto'] = '$from – $to raktai iš $count';
$labels['keyname'] = 'Vardas';
$labels['keyid'] = 'Rakto ID';
$labels['keyuserid'] = 'Naudotojo ID';
$labels['keytype'] = 'Rakto tipas';
$labels['fingerprint'] = 'Kontrolinis kodas';
$labels['subkeys'] = 'Porakčiai';
$labels['basicinfo'] = 'Pagrindinė informacija';
$labels['userids'] = 'Papildomi naudotojai';
$labels['typepublickey'] = 'viešasis raktas';
$labels['typekeypair'] = 'raktų pora';
$labels['keyattfound'] = 'Šiame laiške aptiktas PGP raktas (raktai).';
$labels['keyattimport'] = 'Importuoti raktą (raktus)';
$labels['typesign'] = 'Pasirašyti';
$labels['typeencrypt'] = 'Šifruoti';
$labels['typecert'] = 'Liudyti';
$labels['typeauth'] = 'Autentikacija';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmas';
$labels['subkeycreated'] = 'Sukurtas';
$labels['subkeyexpires'] = 'Galioja iki';
$labels['subkeyusage'] = 'Naudotinas';
$labels['expiresnever'] = 'neterminuotai';
$labels['unknown'] = 'nežinoma';
$labels['uservalid'] = 'Galioja';
$labels['userid'] = 'ID';
$labels['valid'] = 'galioja';
$labels['supportencryption'] = 'Įgalinti laiškų šifravimą ir pasirašymą';
$labels['supportsignatures'] = 'Įgalinti laiškų parašų tikrinimą';
$labels['supportdecryption'] = 'Įgalinti laiškų dešifravimą';
$labels['signdefault'] = 'Numatytai pasirašinėti visus laiškus';
$labels['encryptdefault'] = 'Numatytai šifruoti visus laiškus';
$labels['attachpubkeydefault'] = 'Visada prisegti mano viešąjį raktą prie laiško.';
$labels['passwordtime'] = 'Saugoti privačiųjų raktų slaptažodžius';
$labels['nminutes'] = '$m min.';
$labels['wholesession'] = 'visą seanso laiką';
$labels['createkeys'] = 'Kurti naują raktų porą';
$labels['importkeys'] = 'Importuoti raktus';
$labels['exportkeys'] = 'Eksportuoti raktus';
$labels['keyactions'] = 'Raktų veiksmai…';
$labels['keyremove'] = 'Šalinti';
$labels['keydisable'] = 'Išjungti';
$labels['keyrevoke'] = 'Atšaukti';
$labels['keysend'] = 'Siųsti viešąjį raktą kartu su laišku';
$labels['keychpass'] = 'Keisti slaptažodį';
$labels['newkeyident'] = 'Tapatybė:';
$labels['newkeypass'] = 'Slaptažodis:';
$labels['newkeypassconfirm'] = 'Patvirtinkite slaptažodį:';
$labels['newkeysize'] = 'Rakto dydis:';
$labels['key2048'] = '2048 bitai – numatytasis';
$labels['key4096'] = '4096 bitai – saugesnis';
$labels['keygenerating'] = 'Raktai generuojami…';
$labels['encryptionoptions'] = 'Šifravimo parinktys…';
$labels['encryptmsg'] = 'Šifruoti šį laišką';
$labels['signmsg'] = 'Pasirašyti šį laišką';
$labels['enterkeypasstitle'] = 'Įveskite rakto slaptafrazę';
$labels['enterkeypass'] = 'Naudotojo $user slaptajam raktui ($keyid) atrakinti reikalinga slaptafrazė.';
$labels['arialabelkeyexportoptions'] = 'Raktų eksportavimo parinktys';
$labels['attachpubkeymsg'] = 'Prisegti mano viešąjį raktą';
$labels['keyexportprompt'] = 'Ar norite įkelti privačiuosius raktus, saugojamus OpenPGP raktų faile?';
$labels['onlypubkeys'] = 'Eksportuoti tik viešuosius raktus';
$labels['withprivkeys'] = 'Eksportuoti privačiuosius raktus';
$labels['findkey'] = 'Ieškoti raktų serveryje(-iuose)';
$labels['keyimportlabel'] = 'Importuoti iš failo';
$labels['keyimportsearchlabel'] = 'Ieškoti raktų serveryje(-iuose)';
$messages['sigvalid'] = 'Galiojantis $sender parašas.';
$messages['sigvalidpartial'] = '$sender parašas patvirtintas, bet už dalį laiško nebuvo pasirašyta.';
$messages['siginvalid'] = 'Negaliojantis $sender parašas.';
$messages['sigunverified'] = 'Parašo galiojimas nepatikrintas. Nepatvirtintas liudijimas. Liudijimo ID: $keyid.';
$messages['signokey'] = 'Parašo galiojimas nepatikrintas. Nerastas viešasis raktas. Rakto ID: $keyid.';
$messages['sigerror'] = 'Parašo galiojimas nepatikrintas. Įvyko vidinė klaida.';
$messages['decryptok'] = 'Laiškas iššifruotas.';
$messages['decrypterror'] = 'Iššifruoti nepavyko.';
$messages['decryptnokey'] = 'Iššifruoti nepavyko. Nerastas privatusis raktas. Rakto ID: $keyid.';
$messages['decryptnopass'] = 'Nepavyko dešifruoti, reikalingas rakto slaptažodis.';
$messages['decryptpartial'] = 'Laiškas dešifruotas, nors dalis laiško ir nebuvo užšifruota.';
$messages['signerror'] = 'Pasirašyti nepavyko.';
$messages['signnokey'] = 'Pasirašyti nepavyko. Nerastas privatusis raktas.';
$messages['signnopass'] = 'Nepavyko pasirašyti, reikalingas rakto slaptažodis.';
$messages['encrypterror'] = 'Užšifruoti nepavyko.';
$messages['encryptnokey'] = 'Užšifruoti nepavyko. Nerastas viešasis $email raktas.';
$messages['nokeysfound'] = 'Raktų nerasta';
$messages['keynotfound'] = 'Raktas nerastas!';
$messages['keyopenerror'] = 'Nepavyko gauti rakto duomenų! Įvyko vidinė klaida.';
$messages['keylisterror'] = 'Nepavyko išvardinti raktų! Įvyko vidinė klaida.';
$messages['keysimportfailed'] = 'Nepavyko importuoti rakto (raktų)! Įvyko vidinė klaida.';
$messages['keysimportsuccess'] = 'Raktai importuoti sėkmingai. Nauji raktai: $new, nepakitę: $old.';
$messages['keyremoving'] = 'Raktų šalinimas…';
$messages['keyremoveconfirm'] = 'Ar tikrai norite pašalinti pažymėtus raktus?';
$messages['keyremovesuccess'] = 'Raktai sėkmingai pašalinti';
$messages['keyremoveerror'] = 'Pasirinktų raktų pašalinti nepavyko.';
$messages['keyimporttext'] = 'Galite importuoti „ASCII-Armor“ formato privačiuosius ir viešuosius raktus bei atšaukimo liudijimus.';
$messages['keyimportsearchtext'] = 'Galite ieškoti viešųjų raktų pagal rakto identifikatorių, vartotojo vardą arba el. pašto adresą ir juos tiesiogiai importuoti.';
$messages['formerror'] = 'Prašome užpildyti formą. Visi laukai privalomi!';
$messages['passwordsdiffer'] = 'Slaptažodžiai nesutampa!';
$messages['keygenerateerror'] = 'Nepavyko sugeneruoti raktų poros.';
$messages['keygeneratesuccess'] = 'Raktų pora sėkmingai sugeneruota ir importuota.';
$messages['keygennosupport'] = 'Jūsų naršyklėje kriptografija nepalaikoma. Raktų poros sugeneruoti nepavyko!';
$messages['nonameident'] = 'Tapatybei turi būti nurodytas naudotojo vardas!';
?>
@@ -0,0 +1,112 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Šifrēšana';
$labels['enigmacerts'] = 'S/MIME sertifikāti';
$labels['enigmakeys'] = 'PGP atslēgas';
$labels['keysfromto'] = 'Atslēgas $from līdz $to no $count';
$labels['keyname'] = 'Vārds';
$labels['keyid'] = 'Atslēgas ID';
$labels['keyuserid'] = 'Lietotāja ID';
$labels['keytype'] = 'Atslēgas tips';
$labels['fingerprint'] = 'Pirksta nospiedums';
$labels['subkeys'] = 'Apakšatslēgas';
$labels['basicinfo'] = 'Pamatinformācija';
$labels['userids'] = 'Papildus lietotāji';
$labels['typepublickey'] = 'publiskā atslēga';
$labels['typekeypair'] = 'atslēgu pāris';
$labels['keyattfound'] = 'Šis e-pasts satur pievienotu PGP atslēgu(as);';
$labels['keyattimport'] = 'Importēt atslēgu(as).';
$labels['typesign'] = 'Paraksts';
$labels['typeencrypt'] = 'Šifrēt';
$labels['typecert'] = 'Sertifikāts';
$labels['typeauth'] = 'Autentifikācija';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritms';
$labels['subkeycreated'] = 'Izveidots';
$labels['subkeyexpires'] = 'Termiņš';
$labels['subkeyusage'] = 'Pielietojums';
$labels['expiresnever'] = 'nekad';
$labels['unknown'] = 'neiznāms';
$labels['uservalid'] = 'Derīgs';
$labels['userid'] = 'ID';
$labels['valid'] = 'derīgs';
$labels['supportencryption'] = 'Ieslēgt e-pastu šifrēšanu un parakstīšanu';
$labels['supportsignatures'] = 'Ieslēgt e-pastu parakstu pārbaudi';
$labels['supportdecryption'] = 'Ieslēgt e-pastu atšifrēšanu';
$labels['signdefault'] = 'Pēc noklusējuma parakstīt visus e-pastus';
$labels['encryptdefault'] = 'Pēc noklusējuma šifrēt visas vēstules';
$labels['attachpubkeydefault'] = 'Pēc noklusējuma pievienot manu publisko PGP atslēgu';
$labels['passwordtime'] = 'Saglabāt privāto atslēgu paroles';
$labels['nminutes'] = '$m minūte(s)';
$labels['wholesession'] = 'visai sessijai';
$labels['createkeys'] = 'Izveidot jaunu atslēgu pāri';
$labels['importkeys'] = 'Importēt atslēgu(as).';
$labels['exportkeys'] = 'Eksportēt atslēgu(as)';
$labels['keyactions'] = 'Darbības ar atslēgu ...';
$labels['keyremove'] = 'Dzēst';
$labels['keydisable'] = 'Atspējot';
$labels['keyrevoke'] = 'Atsaukt';
$labels['keysend'] = 'Ar e-pastu sūtīt arī publisko atslēgu';
$labels['keychpass'] = 'Mainīt paroli';
$labels['newkeyident'] = 'Identitāte:';
$labels['newkeypass'] = 'Parole:';
$labels['newkeypassconfirm'] = 'Apstiprināt paroli:';
$labels['newkeysize'] = 'Atslēgas stiprums:';
$labels['key2048'] = '2048 biti - pec noklusējuma';
$labels['key4096'] = '4096 biti - papildus drošība';
$labels['keygenerating'] = 'Ģenerē atslēgas...';
$labels['encryptionoptions'] = 'Šifrēšanas iestatījumi...';
$labels['encryptmsg'] = 'Šifrēt šo e-pastu';
$labels['signmsg'] = 'Digitāli parakstīt šo e-pastu';
$labels['enterkeypasstitle'] = 'Ievadiet atslēgas paroli';
$labels['enterkeypass'] = 'Lai atbloķētu lietotāja $user šifrēto atslēgu ($keyid), ir nepieciešama parole.';
$labels['arialabelkeyexportoptions'] = 'Atslēgu eksportēšanas iestatījumi';
$labels['attachpubkeymsg'] = 'Pievienot manu publisko atslēgu';
$messages['sigvalid'] = 'Pārbaudīts $sender paraksts.';
$messages['sigvalidpartial'] = 'Pārbaudīts $sender paraksts, bet daļa no e-pasta nav parakstīta.';
$messages['siginvalid'] = 'Nederīgs paraksts no $sender.';
$messages['sigunverified'] = 'Nepārbaudīts paraksts. Sertifikāts nav pārbaudīts. Sertifikāta ID: $keyid.';
$messages['signokey'] = 'Nepārbaudīts paraksts. Publiskā atslēga nav atrasta. Atslēgas ID: $keyid.';
$messages['sigerror'] = 'Nepārbaudīts paraksts. Iekšējā kļūda.';
$messages['decryptok'] = 'E-pasts atšifrēts.';
$messages['decrypterror'] = 'Atšifrēšana neizdevās.';
$messages['decryptnokey'] = 'Atšifrēšana neizdevās. Privātā atslēga netika atrasta. Atslēgas ID: $keyid.';
$messages['decryptnopass'] = 'Atšifrēšana neizdevās. Nepieciešama atslēgas parole.';
$messages['decryptpartial'] = 'E-pasts ir atšifrēts, bet daļa no tā nemaz nebija šifrēta.';
$messages['signerror'] = 'Sūtīšana neizdevās.';
$messages['signnokey'] = 'Nosūtīt neizdevās. Nav atrasta privātā atslēga.';
$messages['signnopass'] = 'Nosūtīt neizdevās. Ir nepieciešama atslēgas parole.';
$messages['encrypterror'] = 'Šifrēšana neizdevās.';
$messages['encryptnokey'] = 'Šifrēšana neizdevās. Epastam $email netika atrasta publiskā atslēga.';
$messages['nokeysfound'] = 'Nav atrasta neviena atslēga';
$messages['keyopenerror'] = 'Nav iespējams iegūt atslēgas informāciju! Iekšējā kļūda.';
$messages['keylisterror'] = 'Nav iespējams parādīt atslēgu sarakstu! Iekšējā kļūda.';
$messages['keysimportfailed'] = 'Nav iespējams ieimportēt atslēgu(s)! Iekšējā kļūda.';
$messages['keysimportsuccess'] = 'Atslēgas ieimportētas veiksmīgi. Ieimportēts: $new, nemainīts: $old.';
$messages['keyremoving'] = 'Dzēš atslēgu(as)...';
$messages['keyremoveconfirm'] = 'Vai Jūs esat pārliecināti ka gribat dzēst atzīmētās astlēgas?';
$messages['keyremovesuccess'] = 'Atslēga(s) nodzēsta veiksmīgi.';
$messages['keyremoveerror'] = 'Atzīmēto atslēgu(as) neizdevās nodzēst.';
$messages['keyimporttext'] = 'Jūs varat importēt privātās un publiskās atslēgas vai anulēšanas parakstus ASCII-Armor formātā.';
$messages['formerror'] = 'Lūdzu aipildiet formu. Visi lauki ir obligāti!';
$messages['passwordsdiffer'] = 'Paroles nesakrīt!';
$messages['keygenerateerror'] = 'Neizdevās uzģenerēt atslēgu pāri.';
$messages['keygeneratesuccess'] = 'Atslēgu pāris veiksmīgi uzģenerēts un ieimportēts.';
$messages['keygennosupport'] = 'Nav iespējams uzģenerēt atslēgu pāri, jo Jūsu tīmekļa pārlūks neatbalsta kriptogrāfijas iespējas!';
$messages['nonameident'] = 'Identitātei jābūt ar definētu lietotāja vārdu!';
?>
@@ -0,0 +1,21 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['keyname'] = 'Naam';
$labels['subkeycreated'] = 'Aangemaakt';
$labels['keychpass'] = 'Wijzig wachtwoord';
?>
@@ -0,0 +1,120 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Versleuteling';
$labels['enigmacerts'] = 'S/MIME-certificaten';
$labels['enigmakeys'] = 'PGP-sleutels';
$labels['keysfromto'] = 'Sleutels $from t/m $to van $count';
$labels['keyname'] = 'Naam';
$labels['keyid'] = 'Sleutel-ID';
$labels['keyuserid'] = 'Gebruiker-ID';
$labels['keytype'] = 'Sleuteltype';
$labels['fingerprint'] = 'Vingerafdruk';
$labels['subkeys'] = 'Subsleutels';
$labels['basicinfo'] = 'Algemene informatie';
$labels['userids'] = 'Extra gebruikers';
$labels['typepublickey'] = 'publieke sleutel';
$labels['typekeypair'] = 'sleutelpaar';
$labels['keyattfound'] = 'Dit bericht bevat bijgevoegde PGP-sleutel(s).';
$labels['keyattimport'] = 'Importeer sleutel(s)';
$labels['typesign'] = 'Onderteken';
$labels['typeencrypt'] = 'Versleutel';
$labels['typecert'] = 'Certificeren';
$labels['typeauth'] = 'Authenticatie';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritme';
$labels['subkeycreated'] = 'Aangemaakt';
$labels['subkeyexpires'] = 'Verloopt';
$labels['subkeyusage'] = 'Gebruik';
$labels['expiresnever'] = 'nooit';
$labels['unknown'] = 'onbekend';
$labels['uservalid'] = 'Geldig';
$labels['userid'] = 'ID';
$labels['valid'] = 'geldig';
$labels['supportencryption'] = 'Berichtversleuteling en -ondertekening inschakelen';
$labels['supportsignatures'] = 'Verificatie van berichtondertekening inschakelen';
$labels['supportdecryption'] = 'Berichtontsleuteling inschakelen';
$labels['signdefault'] = 'Onderteken standaard alle berichten';
$labels['encryptdefault'] = 'Versleutel standaard alle berichten';
$labels['attachpubkeydefault'] = 'Voeg mijn publieke PGP-sleutel standaard bij';
$labels['passwordtime'] = 'Onthoud geheime sleutelwachtwoorden voor';
$labels['nminutes'] = '$m minuten';
$labels['wholesession'] = 'de hele sessie';
$labels['createkeys'] = 'Maak een nieuw sleutelpaar aan';
$labels['importkeys'] = 'Importeer sleutel(s)';
$labels['exportkeys'] = 'Exporteer sleutel(s)';
$labels['keyactions'] = 'Sleutelacties...';
$labels['keyremove'] = 'Verwijderen';
$labels['keydisable'] = 'Uitschakelen';
$labels['keyrevoke'] = 'Intrekken';
$labels['keysend'] = 'Verstuur publieke sleutel in een bericht';
$labels['keychpass'] = 'Wijzig wachtwoord';
$labels['newkeyident'] = 'Identiteit:';
$labels['newkeypass'] = 'Wachtwoord:';
$labels['newkeypassconfirm'] = 'Bevestig wachtwoord:';
$labels['newkeysize'] = 'Sleutelgrootte:';
$labels['key2048'] = '2048 bits - standaard';
$labels['key4096'] = '4096 bits - veiliger';
$labels['keygenerating'] = 'Sleutels genereren...';
$labels['encryptionoptions'] = 'Versleutelingsopties...';
$labels['encryptmsg'] = 'Versleutel dit bericht';
$labels['signmsg'] = 'Onderteken dit bericht digitaal';
$labels['enterkeypasstitle'] = 'Voer sleutelwachtwoord in';
$labels['enterkeypass'] = 'Een wachtwoord is vereist om de geheime sleutel ($keyid) te openen voor gebruiker: $user.';
$labels['arialabelkeyexportoptions'] = 'Opties voor sleutels exporteren';
$labels['attachpubkeymsg'] = 'Voeg mijn publieke sleutel bij';
$labels['keyexportprompt'] = 'Wilt u geheime sleutels bewaren in het opgeslagen OpenPGP-sleutelbestand?';
$labels['onlypubkeys'] = 'Alleen publieke sleutels exporteren';
$labels['withprivkeys'] = 'Geheime sleutels exporteren';
$labels['findkey'] = 'Zoek op keyserver(s)';
$labels['keyimportlabel'] = 'Importeer van bestand';
$labels['keyimportsearchlabel'] = 'Zoek op keyserver(s)';
$messages['sigvalid'] = 'Ondertekening van $sender geverifieerd.';
$messages['sigvalidpartial'] = 'Ondertekening van $sender geverifieerd, maar een deel van de inhoud was niet ondertekend.';
$messages['siginvalid'] = 'Ongeldige ondertekening van $sender.';
$messages['sigunverified'] = 'Niet-geverifieerde ondertekening. Certificaat niet geverifieerd. Certificaat-ID: $keyid.';
$messages['signokey'] = 'Niet-geverifieerde ondertekening. Publieke sleutel niet gevonden. Sleutel-ID: $keyid.';
$messages['sigerror'] = 'Niet-geverifieerde ondertekening. Interne fout.';
$messages['decryptok'] = 'Bericht ontsleuteld.';
$messages['decrypterror'] = 'Ontsleutelen mislukt.';
$messages['decryptnokey'] = 'Ontsleutelen mislukt. Geheime sleutel niet gevonden. Sleutel-ID: $keyid.';
$messages['decryptnopass'] = 'Ontsleutelen mislukt. Sleutelwachtwoord vereist.';
$messages['decryptpartial'] = 'Bericht ontsleuteld, maar een deel van de inhoud was niet versleuteld.';
$messages['signerror'] = 'Ondertekenen mislukt.';
$messages['signnokey'] = 'Ondertekenen mislukt. Geheime sleutel niet gevonden.';
$messages['signnopass'] = 'Ondertekenen mislukt. Sleutelwachtwoord vereist.';
$messages['encrypterror'] = 'Versleutelen mislukt.';
$messages['encryptnokey'] = 'Onsleutelen mislukt. Publieke sleutel niet gevonden voor $email.';
$messages['nokeysfound'] = 'Geen sleutels gevonden';
$messages['keynotfound'] = 'Sleutel niet gevonden';
$messages['keyopenerror'] = 'Sleutelinformatie kan niet worden opgehaald! Interne fout.';
$messages['keylisterror'] = 'Sleutels kunnen niet worden weergegeven! Interne fout.';
$messages['keysimportfailed'] = 'Sleutel(s) kunnen niet worden geïmporteerd! Interne fout.';
$messages['keysimportsuccess'] = 'Sleutel(s) succesvol geïmporteerd. Geïmporteerd: $new, ongewijzigd: $old.';
$messages['keyremoving'] = 'Sleutel(s) verwijderen...';
$messages['keyremoveconfirm'] = 'Weet u zeker dat u de geselecteerde sleutel(s) wilt verwijderen?';
$messages['keyremovesuccess'] = 'Sleutel(s) succesvol verwijderd';
$messages['keyremoveerror'] = 'Geselecteerde sleutel(s) kunnen niet worden verwijderd.';
$messages['keyimporttext'] = 'U kunt geheime en publieke sleutel(s) of intrek-ondertekeningen importeren in ASCII-Armor formaat.';
$messages['keyimportsearchtext'] = 'U kunt naar publieke sleutels zoeken op basis van sleutel identifier, gebruikersnaam of e-mailadres en ze vervolgens direct importeren.';
$messages['formerror'] = 'Vul alstublieft het formulier in. Alle velden zijn vereist!';
$messages['passwordsdiffer'] = 'Wachtwoorden komen niet overeen!';
$messages['keygenerateerror'] = 'Genereren van een sleutelpaar is mislukt';
$messages['keygeneratesuccess'] = 'Een sleutelpaar is succesvol gegenereerd en geïmporteerd.';
$messages['keygennosupport'] = 'Uw webbrowser ondersteunt geen cryptografie. Sleutelpaar genereren is mislukt!';
$messages['nonameident'] = 'Identiteit moet een gebruikersnaam hebben!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Szyfrowanie';
$labels['enigmacerts'] = 'Certyfikaty S/MIME';
$labels['enigmakeys'] = 'Klucze PGP';
$labels['keysfromto'] = 'Klucze od $from do $to z $count';
$labels['keyname'] = 'Nazwa';
$labels['keyid'] = 'Id klucza';
$labels['keyuserid'] = 'Id użytkownika';
$labels['keytype'] = 'Typ klucza';
$labels['fingerprint'] = 'Odcisk palca';
$labels['subkeys'] = 'Podklucze';
$labels['basicinfo'] = 'Informacje podstawowe';
$labels['userids'] = 'Dodatkowi użytkownicy';
$labels['typepublickey'] = 'klucz publiczny';
$labels['typekeypair'] = 'para kluczy';
$labels['keyattfound'] = 'Ta wiadomość zawiera załączone klucze PGP.';
$labels['keyattimport'] = 'Importuj klucz(e)';
$labels['typesign'] = 'Podpisz';
$labels['typeencrypt'] = 'Szyfruj';
$labels['typecert'] = 'Certyfikuj';
$labels['typeauth'] = 'Uwierzytelnianie';
$labels['subkeyid'] = 'Id';
$labels['subkeyalgo'] = 'Algorytm';
$labels['subkeycreated'] = 'Utworzony';
$labels['subkeyexpires'] = 'Wygasa';
$labels['subkeyusage'] = 'Zastosowanie';
$labels['expiresnever'] = 'nigdy';
$labels['unknown'] = 'nieznany';
$labels['uservalid'] = 'Ważny';
$labels['userid'] = 'Id';
$labels['valid'] = 'ważny';
$labels['supportencryption'] = 'Włącz szyfrowanie i podpisywanie wiadomości';
$labels['supportsignatures'] = 'Włącz weryfikację podpisów wiadomości';
$labels['supportdecryption'] = 'Włącz rozszyfrowywanie wiadomości';
$labels['signdefault'] = 'Domyślnie podpisuj wiadomości';
$labels['encryptdefault'] = 'Domyślnie szyfruj wiadomości';
$labels['attachpubkeydefault'] = 'Zawsze załączaj mój klucz publiczny PGP';
$labels['passwordtime'] = 'Przechowuj hasła kluczy prywatnych przez';
$labels['nminutes'] = '$m minut';
$labels['wholesession'] = 'cała sesja';
$labels['createkeys'] = 'Utwórz nową parę kluczy';
$labels['importkeys'] = 'Importuj klucz(e)';
$labels['exportkeys'] = 'Eksportuj klucz(e)';
$labels['keyactions'] = 'Akcje kluczy...';
$labels['keyremove'] = 'Usuń';
$labels['keydisable'] = 'Wyłącz';
$labels['keyrevoke'] = 'Unieważnij';
$labels['keysend'] = 'Wyślij klucz publiczny w wiadomości';
$labels['keychpass'] = 'Zmień hasło';
$labels['newkeyident'] = 'Tożsamość:';
$labels['newkeypass'] = 'Hasło:';
$labels['newkeypassconfirm'] = 'Potwierdź hasło:';
$labels['newkeysize'] = 'Rozmiar klucza:';
$labels['key2048'] = '2048 bitów - domyślnie';
$labels['key4096'] = '4096 bitów - bardziej bezpiecznie';
$labels['keygenerating'] = 'Generowanie kluczy...';
$labels['encryptionoptions'] = 'Opcje szyfrowania...';
$labels['encryptmsg'] = 'Szyfruj wiadomość';
$labels['signmsg'] = 'Podpisz wiadomość';
$labels['enterkeypasstitle'] = 'Wprowadź hasło klucza';
$labels['enterkeypass'] = 'Wymagane jest hasło do klucza ($keyid) użytkownika: $user.';
$labels['arialabelkeyexportoptions'] = 'Opcje eksportu kluczy';
$labels['attachpubkeymsg'] = 'Załącz mój klucz publiczny';
$labels['keyexportprompt'] = 'Czy chcesz dołączyć klucze prywatne do utworzonego pliku kluczy PGP?';
$labels['onlypubkeys'] = 'Eksportuj tylko klucze publiczne';
$labels['withprivkeys'] = 'Eksportuj klucze prywatne';
$labels['findkey'] = 'Wyszukaj na serwerach kluczy';
$labels['keyimportlabel'] = 'Import z pliku';
$labels['keyimportsearchlabel'] = 'Wyszukiwanie na serwerach kluczy';
$messages['sigvalid'] = 'Zweryfikowany podpis nadawcy $sender.';
$messages['sigvalidpartial'] = 'Zweryfikowany podpis od $sender, ale część wiadomości nie została podpisana.';
$messages['siginvalid'] = 'Błędny podpis nadawcy $sender.';
$messages['sigunverified'] = 'Podpis niezweryfikowany. Certyfikat niezweryfikowany. ID certyfikatu: $keyid.';
$messages['signokey'] = 'Podpis niezweryfikowany. Brak klucza publicznego. ID klucza: $keyid.';
$messages['sigerror'] = 'Podpis niezweryfikowany. Błąd wewnętrzny.';
$messages['decryptok'] = 'Wiadomość odszyfrowana.';
$messages['decrypterror'] = 'Nie udało się odszyfrować wiadomości.';
$messages['decryptnokey'] = 'Odszyfrowanie nie powiodło się. Brak klucza prywatnego. ID klucza: $keyid.';
$messages['decryptnopass'] = 'Odszyfrowanie nie powiodło się. Hasło jest wymagane.';
$messages['decryptpartial'] = 'Wiadomość odszyfrowana, ale jej część nie była zaszyfrowana.';
$messages['signerror'] = 'Błąd podpisywania.';
$messages['signnokey'] = 'Błąd podpisywania. Nie znaleziono klucza prywatnego.';
$messages['signnopass'] = 'Błąd podpisywania. Wymagane hasło klucza.';
$messages['encrypterror'] = 'Błąd szyfrowania.';
$messages['encryptnokey'] = 'Błąd szyfrowania. Nie znaleziono klucza publicznego dla $email.';
$messages['nokeysfound'] = 'Nie znaleziono kluczy';
$messages['keynotfound'] = 'Nie znaleziono klucza!';
$messages['keyopenerror'] = 'Nie można odczytać informacji o kluczu! Błąd wewnętrzny.';
$messages['keylisterror'] = 'Nie można odczytać listy kluczy! Błąd wewnętrzny.';
$messages['keysimportfailed'] = 'Nie można zapisać kluczy! Błąd wewnętrzny.';
$messages['keysimportsuccess'] = 'Klucze zostały zapisane. Dodane: $new, bez zmian: $old.';
$messages['keyremoving'] = 'Usuwanie kluczy...';
$messages['keyremoveconfirm'] = 'Czy na pewno chcesz usunąć wybrane klucze?';
$messages['keyremovesuccess'] = 'Klucze zostały usunięte.';
$messages['keyremoveerror'] = 'Nie można usunąć wybranych kluczy.';
$messages['keyimporttext'] = 'Możesz zaimportować klucze prywatne i publiczne oraz sygnatury unieważniające w formacie ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Możesz wyszukiwać przy użyciu identyfikatora klucza, nazwy użytkownika lub adresu email, a następnie bezpośrednio zaimportować wyszukane klucze.';
$messages['formerror'] = 'Proszę wypełnić formularz. Wszystkie pola są wymagane!';
$messages['passwordsdiffer'] = 'Hasła nie pasują!';
$messages['keygenerateerror'] = 'Generowanie pary kluczy nie powiodło się';
$messages['keygeneratesuccess'] = 'Para kluczy została zapisana.';
$messages['keygennosupport'] = 'Twoja przeglądarka nie obsługuje kryptografii. Nie można wygenerować kluczy!';
$messages['noidentselected'] = 'Należy wybrać przynajmniej jedną tożsamość!';
$messages['nonameident'] = 'Tożsamość musi zawierać nazwę użytkownika!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Criptografação';
$labels['enigmacerts'] = 'Certificados S/MIME';
$labels['enigmakeys'] = 'Chaves PGP';
$labels['keysfromto'] = ' $count chaves de $from para $to';
$labels['keyname'] = 'Nome';
$labels['keyid'] = 'ID da chave';
$labels['keyuserid'] = 'ID do usuário';
$labels['keytype'] = 'Tipo de chave';
$labels['fingerprint'] = 'Autenticação digital';
$labels['subkeys'] = 'Subchaves';
$labels['basicinfo'] = 'Informação básica';
$labels['userids'] = 'Usuários adicionais';
$labels['typepublickey'] = 'chave pública';
$labels['typekeypair'] = 'par de chave';
$labels['keyattfound'] = 'Essa mensagem contém chave(s) PGP em anexo.';
$labels['keyattimport'] = 'Importa chave(s)';
$labels['typesign'] = 'Assinatura';
$labels['typeencrypt'] = 'Criptografar';
$labels['typecert'] = 'Certificado';
$labels['typeauth'] = 'Autenticação';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritimo';
$labels['subkeycreated'] = 'Criado';
$labels['subkeyexpires'] = 'Expira';
$labels['subkeyusage'] = 'Uso';
$labels['expiresnever'] = 'nunca';
$labels['unknown'] = 'desconhecido';
$labels['uservalid'] = 'Válido';
$labels['userid'] = 'ID';
$labels['valid'] = 'válido';
$labels['supportencryption'] = 'Habilitar mensagens criptografadas e assinaturas';
$labels['supportsignatures'] = 'Habilitar verificação de mensagens assinadas';
$labels['supportdecryption'] = 'habilita descriptografia de mensagens';
$labels['signdefault'] = 'Assinar todas as mensagens por padrão';
$labels['encryptdefault'] = 'Criptografar todas as mensagens por padrão';
$labels['attachpubkeydefault'] = 'Anexar minha chave PGP pública';
$labels['passwordtime'] = 'Mantenha senhas de chave privada para';
$labels['nminutes'] = '$m minuto(s)';
$labels['wholesession'] = 'toda a sessão';
$labels['createkeys'] = 'Criar novo par de chaves';
$labels['importkeys'] = 'importar chave(s)';
$labels['exportkeys'] = 'Exportar chave(s)';
$labels['keyactions'] = 'Principais ações ...';
$labels['keyremove'] = 'Remover';
$labels['keydisable'] = 'Desabilitar';
$labels['keyrevoke'] = 'Revogar';
$labels['keysend'] = 'Mandar chave pública em uma mensagem';
$labels['keychpass'] = 'Trocar senha';
$labels['newkeyident'] = 'identificação:';
$labels['newkeypass'] = 'Senha:';
$labels['newkeypassconfirm'] = 'Confirmar senha:';
$labels['newkeysize'] = 'Tamanho da chave:';
$labels['key2048'] = '2048 bits - padrão';
$labels['key4096'] = '4096 bits - maise seguro';
$labels['keygenerating'] = 'Gerando chaves...';
$labels['encryptionoptions'] = 'Opções de criptografia...';
$labels['encryptmsg'] = 'Criptografar essa mensagem';
$labels['signmsg'] = 'Assinar digitalmente essa mensagem';
$labels['enterkeypasstitle'] = 'Digite a frase secreta da chave';
$labels['enterkeypass'] = 'Uma frase secreta é necessária para desbloquear a chave ($keyid) para o usuário: $user.';
$labels['arialabelkeyexportoptions'] = 'Opções de exportação das chaves';
$labels['attachpubkeymsg'] = 'Anexar minha chave pública';
$labels['keyexportprompt'] = 'Deseja incluir chaves secretas no arquivo de chaves OpenPGP salva?';
$labels['onlypubkeys'] = 'Exportar somente Chaves Públicas';
$labels['withprivkeys'] = 'Exportar Chaves Secretas';
$labels['findkey'] = 'Procurar no(s) servidor(es) de chaves';
$labels['keyimportlabel'] = 'Importar do arquivo';
$labels['keyimportsearchlabel'] = 'Procurar no(s) servidor(es) de chaves';
$messages['sigvalid'] = 'Verificar assinatura de $sender.';
$messages['sigvalidpartial'] = 'Verificar assinatura de $sender, mas parte do corpo não foi assinada.';
$messages['siginvalid'] = 'Assinatura inválida de $sender.';
$messages['sigunverified'] = 'Assinatura não verificada. Certificado não verificado. Certificado de ID: $keyid.';
$messages['signokey'] = 'Assinatura não verificada. Chave pública não encontrada. Chave de ID: $keyid.';
$messages['sigerror'] = 'Assinatura não verificada. Erro interno.';
$messages['decryptok'] = 'Mensagem descriptografada';
$messages['decrypterror'] = 'Falha ao descriptografar.';
$messages['decryptnokey'] = 'Falha ao descriptografar. Chave privada não encontrada. Chave de ID: $keyid.';
$messages['decryptnopass'] = 'Falha ao descriptografar. Senha chave requerida.';
$messages['decryptpartial'] = 'Mensagem descriptografada, mas parte do corpo não foi encriptado.';
$messages['signerror'] = 'Assinatura falhou.';
$messages['signnokey'] = 'Assinatura falhou. Chave privada não encontrada.';
$messages['signnopass'] = 'Assinatura falhou. Senha chave requerida.';
$messages['encrypterror'] = 'Falha ao criptografar.';
$messages['encryptnokey'] = 'Falha ao criptografar. Chave pública não encontrada para $email.';
$messages['nokeysfound'] = 'Nenhuma chave encontrada';
$messages['keynotfound'] = 'Chave não encontrada!';
$messages['keyopenerror'] = 'Não é possível obter informações da chave! Erro interno.';
$messages['keylisterror'] = 'Não é possível listar as chaves! Erro interno.';
$messages['keysimportfailed'] = 'Não é possível importar chave(s)! Erro interno.';
$messages['keysimportsuccess'] = 'Chave(s) importada(s) com sucesso. Importado: $new, mantido: $old.';
$messages['keyremoving'] = 'Removendo chave(s)...';
$messages['keyremoveconfirm'] = 'Tem a certeza, de que deseja excluir a seleção de chave(s)?';
$messages['keyremovesuccess'] = 'Chave(s) deletada com sucvesso';
$messages['keyremoveerror'] = 'Não é possível excluir a seleção de chave(s).';
$messages['keyimporttext'] = 'Você pode importar chaves privadas e publicas ou assinaturas de revogação em formato ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Você pode procurar por chaves públicas pelo identificador de chaves, nome do usuário ou e-mail, e então importá-las diretamente.';
$messages['formerror'] = 'Por favor, preencha o formulário. Todos os campos são necessários!';
$messages['passwordsdiffer'] = 'Senhas não conferem!';
$messages['keygenerateerror'] = 'Falha ao gerar um par de chaves';
$messages['keygeneratesuccess'] = 'Um par de chaves foi gerado e importado com sucesso.';
$messages['keygennosupport'] = 'Seu navegador não suporta criptografia. Não é possível gerar um par de chaves!';
$messages['noidentselected'] = 'Você tem que selecionar ao menos uma identidade para a chave!';
$messages['nonameident'] = 'A identificação deve ter um nome de usuário definido!';
?>
@@ -0,0 +1,123 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Encriptação';
$labels['enigmacerts'] = 'Certificados S/MIME';
$labels['enigmakeys'] = 'Chaves PGP';
$labels['keysfromto'] = 'Chave de $from a $to de $count';
$labels['keyname'] = 'Nome';
$labels['keyid'] = 'ID da Chave';
$labels['keyuserid'] = 'ID do Utilizador';
$labels['keytype'] = 'Tipo de chave';
$labels['fingerprint'] = 'Impressão digital';
$labels['subkeys'] = 'Sub-chaves';
$labels['basicinfo'] = 'Informação básica';
$labels['userids'] = 'Utilizadores adicionais';
$labels['typepublickey'] = 'chave publica';
$labels['typekeypair'] = 'par de chaves';
$labels['keyattfound'] = 'Esta mensagem contém chave(s) PGP anexada(s).';
$labels['keyattimport'] = 'Importar chave(s)';
$labels['typesign'] = 'Assinar';
$labels['typeencrypt'] = 'Encriptar';
$labels['typecert'] = 'Certificar';
$labels['typeauth'] = 'Autenticação';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmo';
$labels['subkeycreated'] = 'Criado';
$labels['subkeyexpires'] = 'Expira';
$labels['subkeyusage'] = 'Uso';
$labels['expiresnever'] = 'nunca';
$labels['unknown'] = 'desconhecido';
$labels['uservalid'] = 'Válido';
$labels['userid'] = 'ID';
$labels['valid'] = 'válido';
$labels['supportencryption'] = 'Activar a encriptação de mensagens e assinatura';
$labels['supportsignatures'] = 'Activar a verificação de assinaturas de mensagens';
$labels['supportdecryption'] = 'Activar desencriptação de mensagem';
$labels['signdefault'] = 'Assinar todas as mensagens por defeito';
$labels['encryptdefault'] = 'Encriptar todas as mensagens por defeito';
$labels['attachpubkeydefault'] = 'Anexar a minha chave pública PGP por defeito';
$labels['passwordtime'] = 'Manter palavras-passe de chave privada para';
$labels['nminutes'] = '$m minuto(s)';
$labels['wholesession'] = 'toda a sessão';
$labels['createkeys'] = 'Criar um novo par de chaves';
$labels['importkeys'] = 'Importar chave(s)';
$labels['exportkeys'] = 'Exportar chave(s)';
$labels['keyactions'] = 'Acções das chaves...';
$labels['keyremove'] = 'Remover';
$labels['keydisable'] = 'Desactivar';
$labels['keyrevoke'] = 'Revogar';
$labels['keysend'] = 'Enviar chave pública numa mensagem';
$labels['keychpass'] = 'Alterar palavra-passe';
$labels['newkeyident'] = 'Identidade:';
$labels['newkeypass'] = 'Palavra-passe:';
$labels['newkeypassconfirm'] = 'Confirmar palavra-passe:';
$labels['newkeysize'] = 'Tamanho da chave:';
$labels['key2048'] = '2048 bits - predefinição';
$labels['key4096'] = '4096 bits - mais seguro';
$labels['keygenerating'] = 'A gerar chaves...';
$labels['encryptionoptions'] = 'Opções de encriptação...';
$labels['encryptmsg'] = 'Encriptar esta mensagem';
$labels['signmsg'] = 'Assinar digitalmente esta mensagem';
$labels['enterkeypasstitle'] = 'Digite chave de frase de acesso';
$labels['enterkeypass'] = 'É necessária uma frase de acesso para desbloquear a chave secreta ($keyid) do utilizador: $user.';
$labels['arialabelkeyexportoptions'] = 'Opções de exportação de chaves';
$labels['attachpubkeymsg'] = 'Anexar a minha chave pública';
$labels['keyexportprompt'] = 'Deseja incluir as chaves secretas no ficheiro, guardado, de chaves OpenPGP?';
$labels['onlypubkeys'] = 'Exportar apenas Chaves Públicas';
$labels['withprivkeys'] = 'Exportar chaves secretas';
$labels['findkey'] = 'Pesquisar no(s) servidor(es) de chaves';
$labels['keyimportlabel'] = 'Importar do ficheiro';
$labels['keyimportsearchlabel'] = 'Pesquisar no(s) servidor(es) de chaves';
$messages['sigvalid'] = 'Assinatura verificada de $sender.';
$messages['sigvalidpartial'] = 'Assinatura verificada a partir de $sender, mas parte do corpo não foi assinado.';
$messages['siginvalid'] = 'Assinatura inválida de $sender.';
$messages['sigunverified'] = 'Assinatura não verificada. Certificado não verificado. ID do certificado: $keyid.';
$messages['signokey'] = 'Assinatura não verificada. Chave pública não encontrada. ID da chave: $keyid.';
$messages['sigerror'] = 'Assinatura não verificada. Erro interno.';
$messages['decryptok'] = 'Mensagem desencriptada.';
$messages['decrypterror'] = 'A desencriptação falhou.';
$messages['decryptnokey'] = 'A desencriptação falhou. Chave privada não encontrada. ID da chave: $keyid.';
$messages['decryptbadpass'] = 'A desencriptação falhou. Palavra-passe inválida.';
$messages['decryptnopass'] = 'A desencriptação falhou. Chave necessária.';
$messages['decryptpartial'] = 'Mensagem desencriptada, mas parte do corpo não foi encriptado.';
$messages['signerror'] = 'A assinatura falhou.';
$messages['signnokey'] = 'A assinatura falhou. Chave privada não encontrada.';
$messages['signbadpass'] = 'A assinatura falhou. Palavra-passe inválida.';
$messages['signnopass'] = 'A assinatura falhou. Chave necessária.';
$messages['encrypterror'] = 'A encriptação falhou.';
$messages['encryptnokey'] = 'A encriptação falhou. Chave pública não encontrada para $email.';
$messages['nokeysfound'] = 'Não foram encontradas chaves';
$messages['keynotfound'] = 'Chave não encontrada!';
$messages['keyopenerror'] = 'Não foi possível obter informações sobre a chave! Erro interno.';
$messages['keylisterror'] = 'Não foi possível listar as chaves! Erro interno.';
$messages['keysimportfailed'] = 'Não foi possível importar a(s) chave(s)! Erro interno.';
$messages['keysimportsuccess'] = 'Chave(s) importada(s) com sucesso. Importada: $new, inalterada: $old.';
$messages['keyremoving'] = 'A remover chave(s)...';
$messages['keyremoveconfirm'] = 'Tem a certeza que pretende eliminar a(s) chave(s) selecionada(s)?';
$messages['keyremovesuccess'] = 'Chave(s) eliminada(s) com sucesso.';
$messages['keyremoveerror'] = 'Não foi possível eliminar a(s) chave(s) selecionada(s).';
$messages['keyimporttext'] = 'Pode importar chaves privadas e públicas ou de revogação de assinaturas em formato ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Pode procurar por chaves públicas através de identificadores de chave, nome de utilizador ou endereço de e-mail e, em seguida, importá-las directamente.';
$messages['formerror'] = 'Por favor, preencha o formulário. Todos os campos são obrigatórios!';
$messages['passwordsdiffer'] = 'As palavras-passe não coincidem!';
$messages['keygenerateerror'] = 'Falha ao gerar o par de chaves';
$messages['keygeneratesuccess'] = 'Foi gerado e importado, com sucesso, um par de chaves.';
$messages['keygennosupport'] = 'O seu navegador não suporta criptografia. Não foi possível gerar um par de chaves!';
$messages['noidentselected'] = 'Tem de seleccionar pelo menos uma identidade para a chave!';
$messages['nonameident'] = 'A identidade deve ter um nome de utilizador definido!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Шифрование';
$labels['enigmacerts'] = 'Сертификаты S/MIME';
$labels['enigmakeys'] = 'Ключи PGP';
$labels['keysfromto'] = 'Ключи с $from по $to из $count';
$labels['keyname'] = 'Имя';
$labels['keyid'] = 'ID ключа';
$labels['keyuserid'] = 'ID пользователя';
$labels['keytype'] = 'Тип ключа';
$labels['fingerprint'] = 'Отпечаток';
$labels['subkeys'] = 'Подключи';
$labels['basicinfo'] = 'Базовая информация';
$labels['userids'] = 'Дополнительные ключи';
$labels['typepublickey'] = 'открытый ключ';
$labels['typekeypair'] = 'пара ключей';
$labels['keyattfound'] = 'Это сообщение содержит прикреплённый(е) PGP ключ(и).';
$labels['keyattimport'] = 'Импортировать ключ(и)';
$labels['typesign'] = 'Подписать';
$labels['typeencrypt'] = 'Зашифровать';
$labels['typecert'] = 'Удостоверить';
$labels['typeauth'] = 'Аутентификация';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Алгоритм';
$labels['subkeycreated'] = 'Создан';
$labels['subkeyexpires'] = 'Срок действия';
$labels['subkeyusage'] = 'Использование';
$labels['expiresnever'] = 'никогда';
$labels['unknown'] = 'неизвестно';
$labels['uservalid'] = 'Действительный';
$labels['userid'] = 'ID';
$labels['valid'] = 'действительный';
$labels['supportencryption'] = 'Включить шифрование и подписание сообщений';
$labels['supportsignatures'] = 'Включить проверку подписанных сообщений';
$labels['supportdecryption'] = 'Включить расшифровывание сообщений';
$labels['signdefault'] = 'Подписывать все сообщения по умолчанию';
$labels['encryptdefault'] = 'Шифровать все сообщения по умолчанию';
$labels['attachpubkeydefault'] = 'Прикрепить мой открытый ключ по умолчанию';
$labels['passwordtime'] = 'Хранить пароль закрытого ключа';
$labels['nminutes'] = '$m минут(ы)';
$labels['wholesession'] = 'весь сеанс';
$labels['createkeys'] = 'Создать новую пару ключей';
$labels['importkeys'] = 'Импортировать ключ(и)';
$labels['exportkeys'] = 'Экспортировать ключ(и)';
$labels['keyactions'] = 'Действия с ключами...';
$labels['keyremove'] = 'Удалить';
$labels['keydisable'] = 'Отключить';
$labels['keyrevoke'] = 'Отозвать';
$labels['keysend'] = 'Отправить открытый ключ в сообщении';
$labels['keychpass'] = 'Изменить пароль';
$labels['newkeyident'] = 'Профиль:';
$labels['newkeypass'] = 'Пароль:';
$labels['newkeypassconfirm'] = 'Подтвердите пароль:';
$labels['newkeysize'] = 'Размер ключа:';
$labels['key2048'] = '2048 бит - по умолчанию';
$labels['key4096'] = '4096 бит - более безопасный';
$labels['keygenerating'] = 'Создание ключей...';
$labels['encryptionoptions'] = 'Настройки шифрования...';
$labels['encryptmsg'] = 'Зашифровать это сообщение';
$labels['signmsg'] = 'Подписать это сообщение';
$labels['enterkeypasstitle'] = 'Введите фразу-пароль ключа';
$labels['enterkeypass'] = 'Фраза-пароль нужна для разблокировки секретного ключа ($keyid) пользователя: $user.';
$labels['arialabelkeyexportoptions'] = 'Параметры экспорта ключей';
$labels['attachpubkeymsg'] = 'Прикрепить мой открытый ключ';
$labels['keyexportprompt'] = 'Вы хотите включить закрытые ключи в файл сохранения ключей OpenPGP?';
$labels['onlypubkeys'] = 'Экспортировать только открытые ключи';
$labels['withprivkeys'] = 'Экспортировать закрытые ключи';
$labels['findkey'] = 'Поиск на сервере(-ах) ключей';
$labels['keyimportlabel'] = 'Импортировать из файла';
$labels['keyimportsearchlabel'] = 'Поиск на сервере(-ах) ключей';
$messages['sigvalid'] = 'Проверенная подпись $sender.';
$messages['sigvalidpartial'] = 'Проверенная подпись $sender, но часть сообщения не подписана.';
$messages['siginvalid'] = 'Недействительная подпись $sender.';
$messages['sigunverified'] = 'Непроверенная подпись. Сертификат не проверен. ID сертификата: $keyid.';
$messages['signokey'] = 'Непроверенная подпись. Открытый ключ не найден. ID ключа: $keyid.';
$messages['sigerror'] = 'Непроверенная подпись. Внутренняя ошибка.';
$messages['decryptok'] = 'Сообщение расшифровано.';
$messages['decrypterror'] = 'Сбой расшифровки.';
$messages['decryptnokey'] = 'Сбой расшифровки. Закрытый ключ не найден. ID ключа: $keyid.';
$messages['decryptnopass'] = 'Сбой расшифровки. Требуется ключ пароля.';
$messages['decryptpartial'] = 'Сообщение расшифровано, но часть сообщения не была зашифрована.';
$messages['signerror'] = 'Сбой подписания.';
$messages['signnokey'] = 'Сбой подписания. Закрытый ключ не найден.';
$messages['signnopass'] = 'Сбой подписания. Требуется ключ пароля.';
$messages['encrypterror'] = 'Сбой шифрования.';
$messages['encryptnokey'] = 'Сбой шифрования. Не найден открытый ключ для $email.';
$messages['nokeysfound'] = 'Ключи не найдены';
$messages['keynotfound'] = 'Ключ не найден!';
$messages['keyopenerror'] = 'Невозможно получить информацию о ключе! Внутренняя ошибка.';
$messages['keylisterror'] = 'Невозможно составить список ключей! Внутренняя ошибка.';
$messages['keysimportfailed'] = 'Невозможно импортировать ключ(и)! Внутренняя ошибка.';
$messages['keysimportsuccess'] = 'Ключ(и) успешно импортирован(ы) . Импортировано: $new, без изменений: $old.';
$messages['keyremoving'] = 'Удаление ключа(ей)...';
$messages['keyremoveconfirm'] = 'Вы уверенны, что хотите удалить выделенный(е) ключ(и)?';
$messages['keyremovesuccess'] = 'Ключ(и) успешно удален(ы)';
$messages['keyremoveerror'] = 'Невозможно удалить выделенный(е) ключ(и).';
$messages['keyimporttext'] = 'Вы можете импортировать закрытый и открытый ключ(и) или подписи отзыва в формате ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Вы можете искать открытые ключи по идентификатору ключа, имени пользователя или адресу электронной почты, а затем импортировать их напрямую.';
$messages['formerror'] = 'Заполните форму. Все поля обязательны!';
$messages['passwordsdiffer'] = 'Пароли не совпадают!';
$messages['keygenerateerror'] = 'Не удалось создать пару ключей';
$messages['keygeneratesuccess'] = 'Пара ключей создана и успешно импортирована.';
$messages['keygennosupport'] = 'Ваш браузер не поддерживает шифрование. Невозможно создать пару ключей!';
$messages['noidentselected'] = 'Вы должны выбрать по крайней мере один профиль для ключа!';
$messages['nonameident'] = 'У профиля должно быть определено имя пользователя!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Šifrovanie';
$labels['enigmacerts'] = 'Certifikáty S/MIME';
$labels['enigmakeys'] = 'Kľúče PGP';
$labels['keysfromto'] = 'Kľúče $from až $to z počtu: $count';
$labels['keyname'] = 'Názov';
$labels['keyid'] = 'ID kľúča';
$labels['keyuserid'] = 'ID používateľa';
$labels['keytype'] = 'Typ kľúča';
$labels['fingerprint'] = 'Odtlačok';
$labels['subkeys'] = 'Podradené kľúče';
$labels['basicinfo'] = 'Základná informácia';
$labels['userids'] = 'Ďalší používatelia';
$labels['typepublickey'] = 'verejný kľúč';
$labels['typekeypair'] = 'pár kľúčov';
$labels['keyattfound'] = 'Táto správa obsahuje priložené kľúče PGP.';
$labels['keyattimport'] = 'Importovať kľúč(e)';
$labels['typesign'] = 'Podpísať';
$labels['typeencrypt'] = 'Zašifrovať';
$labels['typecert'] = 'Certifikovať';
$labels['typeauth'] = 'Autentifikácia';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritmus';
$labels['subkeycreated'] = 'Vytvorené';
$labels['subkeyexpires'] = 'Expiruje';
$labels['subkeyusage'] = 'Využitie';
$labels['expiresnever'] = 'nikdy';
$labels['unknown'] = 'neznáme';
$labels['uservalid'] = 'Platné';
$labels['userid'] = 'ID';
$labels['valid'] = 'platné';
$labels['supportencryption'] = 'Zapnúť šifrovanie a podpisovanie správ';
$labels['supportsignatures'] = 'Zapnúť overovanie podpisov v správe';
$labels['supportdecryption'] = 'Zapnúť dešifrovanie správ';
$labels['signdefault'] = 'Predvolene podpisovať všetky správy';
$labels['encryptdefault'] = 'Predvolene šifrovať všetky správy';
$labels['attachpubkeydefault'] = 'Predvolene pripájať môj verejný PGP kľúč';
$labels['passwordtime'] = 'Uchovávať heslá súkromného kľúča počas';
$labels['nminutes'] = '$m minút/minúty';
$labels['wholesession'] = 'celej relácie';
$labels['createkeys'] = 'Vytvoriť nový pár kľúčov';
$labels['importkeys'] = 'Importovať kľúč(e)';
$labels['exportkeys'] = 'Exportovať kľúč(e)';
$labels['keyactions'] = 'Akcie kľúča...';
$labels['keyremove'] = 'Odstrániť';
$labels['keydisable'] = 'Vypnúť';
$labels['keyrevoke'] = 'Odvolať';
$labels['keysend'] = 'Odoslať verejný kľúč v správe';
$labels['keychpass'] = 'Zmeniť heslo';
$labels['newkeyident'] = 'Identita:';
$labels['newkeypass'] = 'Heslo:';
$labels['newkeypassconfirm'] = 'Potvrdiť heslo:';
$labels['newkeysize'] = 'Veľkosť kľúča:';
$labels['key2048'] = '2048 bitov – predvolené';
$labels['key4096'] = '4096 bitov - bezpečnejšie';
$labels['keygenerating'] = 'Generovanie kľúčov...';
$labels['encryptionoptions'] = 'Nastavenia šifrovania...';
$labels['encryptmsg'] = 'Zašifrovať túto správu';
$labels['signmsg'] = 'Digitálne podpísať túto správu';
$labels['enterkeypasstitle'] = 'Zadať kľúčovú frázu';
$labels['enterkeypass'] = 'Na odomknutie tajného kľúča je potrebná kľúčová fráza ($keyid) pre používateľa: $user.';
$labels['arialabelkeyexportoptions'] = 'Nastavenia exportu kľúčov';
$labels['attachpubkeymsg'] = 'Pripojiť môj verejný kľúč';
$labels['keyexportprompt'] = 'Chcete do uloženého súboru s kľúčmi OpenPGP zahrnúť aj tajné kľúče?';
$labels['onlypubkeys'] = 'Exportovať len verejné kľúče';
$labels['withprivkeys'] = 'Exportovať tajné kľúče';
$labels['findkey'] = 'Hľadať na serveri/serveroch s kľúčom';
$labels['keyimportlabel'] = 'Importovať zo súboru';
$labels['keyimportsearchlabel'] = 'Hľadať na serveri/serveroch s kľúčom';
$messages['sigvalid'] = 'Overený podpis od $sender.';
$messages['sigvalidpartial'] = 'Overený podpis od $sender, ale časť tela podpísaná nebola.';
$messages['siginvalid'] = 'Neplatný podpis od $sender.';
$messages['sigunverified'] = 'Neoverený podpis, certifikát nebol overený. ID certifikátu: $keyid.';
$messages['signokey'] = 'Neoverený podpis. Verejný kľúč sa nenašiel. ID kľúča: $keyid.';
$messages['sigerror'] = 'Neoverený podpis. Interná chyba.';
$messages['decryptok'] = 'Správa bola dešifrovaná.';
$messages['decrypterror'] = 'Dešifrovanie nebolo úspešné.';
$messages['decryptnokey'] = 'Dešifrovanie nebolo úspešné. Súkromný kľúč sa nenašiel. ID kľúča: $keyid.';
$messages['decryptnopass'] = 'Dešifrovanie nebolo úspešné. Vyžaduje sa kľúčové heslo.';
$messages['decryptpartial'] = 'Správa bola dešifrovaná, ale časť jej tela nebola zašifrovaná.';
$messages['signerror'] = 'Vloženie podpisu bolo neúspešné.';
$messages['signnokey'] = 'Vloženie podpisu bolo neúspešné. Nenašiel sa súkromný kľúč.';
$messages['signnopass'] = 'Vloženie podpisu nebolo úspešné. Vyžaduje sa kľúčové heslo.';
$messages['encrypterror'] = 'Šifrovanie nebolo úspešné.';
$messages['encryptnokey'] = 'Šifrovanie nebolo úspešné. Nenašiel sa verejný kľúč pre $email.';
$messages['nokeysfound'] = 'Nenašli sa žiadne kľúče';
$messages['keynotfound'] = 'Kľúč sa nenašiel!';
$messages['keyopenerror'] = 'Nemožno získať informácie o kľúči! Interná chyba.';
$messages['keylisterror'] = 'Nemožno zostaviť zoznam kľúčov! Interná chyba.';
$messages['keysimportfailed'] = 'Nemožno naimportovať kľúč(e)! Interná chyba.';
$messages['keysimportsuccess'] = 'Import kľúča (kľúčov) bol úspešný.Naimportované položky: $new, bez zmeny: $old.';
$messages['keyremoving'] = 'Odstraňovanie kľúča (kľúčov)...';
$messages['keyremoveconfirm'] = 'Naozaj chcete vymazať vybraný kľúč/kľúče?';
$messages['keyremovesuccess'] = 'Vymazanie kľúča (kľúčov) bolo úspešné.';
$messages['keyremoveerror'] = 'Nemožno vymazať vybraný kľúč (vybrané kľúče).';
$messages['keyimporttext'] = 'Môžete naimportovať súkromné a verejné kľúče alebo podpisy pre odvolanie vo formáte ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Verejné kľúče môžete vyhľadávať podľa identifikátora kľúča, mena používateľa alebo e-mailovej adresy a potom ich priamo importovať.';
$messages['formerror'] = 'Prosím vyplňte formulár. Je nutné vyplniť všetky polia!';
$messages['passwordsdiffer'] = 'Heslá sa nezhodujú!';
$messages['keygenerateerror'] = 'Nepodarilo sa vygenerovať pár kľúčov';
$messages['keygeneratesuccess'] = 'Pár kľúčov bol úspešne vygenerovaný a naimportovaný.';
$messages['keygennosupport'] = 'Váš internetový prehliadač nepodporuje kryptografiu. Nemožno vygenerovať pár kľúčov!';
$messages['noidentselected'] = 'Pre tento kľúč si musíte vybrať aspoň jednu identitu!';
$messages['nonameident'] = 'Identita musí mať definované meno používateľa!';
?>
@@ -0,0 +1,123 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Fshehtëzim';
$labels['enigmacerts'] = 'Dëshmi S/MIME';
$labels['enigmakeys'] = 'Kyçe PGP';
$labels['keysfromto'] = 'Kyçat nga $from deri në $to nga $count gjithsej';
$labels['keyname'] = 'Emër';
$labels['keyid'] = 'ID Kyçi';
$labels['keyuserid'] = 'ID Përdoruesi';
$labels['keytype'] = 'Lloj kyçi';
$labels['fingerprint'] = 'Shenja gishtash';
$labels['subkeys'] = 'Nënkyç';
$labels['basicinfo'] = 'Informacion bazë';
$labels['userids'] = 'Përdorues Shtesë';
$labels['typepublickey'] = 'kyç publik';
$labels['typekeypair'] = 'çift kyçesh';
$labels['keyattfound'] = 'Ky mesazh përmban kyçin(et) PGP të bashkëngjitur.';
$labels['keyattimport'] = 'Importo kyç(e)';
$labels['typesign'] = 'Nënshkruaje';
$labels['typeencrypt'] = 'Fshehtëzoje';
$labels['typecert'] = 'Dëshmoje';
$labels['typeauth'] = 'Mirëfilltësim';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritëm';
$labels['subkeycreated'] = 'Krijuar më';
$labels['subkeyexpires'] = 'Skadon më';
$labels['subkeyusage'] = 'Përdorim';
$labels['expiresnever'] = 'kurrë';
$labels['unknown'] = 'i panjohur';
$labels['uservalid'] = 'I vlefshëm';
$labels['userid'] = 'ID';
$labels['valid'] = 'i vlefshëm';
$labels['supportencryption'] = 'Aktivizo fshehtëzim dhe nënshkrim mesazhesh';
$labels['supportsignatures'] = 'Aktivizo verifikim nënshkrimesh mesazhi';
$labels['supportdecryption'] = 'Aktivizo çfshehtëzim mesazhi';
$labels['signdefault'] = 'Si parazgjedhje, nënshkruaji krejt mesazhet';
$labels['encryptdefault'] = 'Si parazgjedhje, fshehtëzoji krejt mesazhet';
$labels['attachpubkeydefault'] = 'Bashkëngjite kyçin tim publik, si parazgjedhje';
$labels['passwordtime'] = 'Fjalëkalimet e kyçeve privatë mbaji për';
$labels['nminutes'] = '$m minutë(a)';
$labels['wholesession'] = 'krejt sesionin';
$labels['createkeys'] = 'Krijoni një çift të ri kyçesh';
$labels['importkeys'] = 'Importo kyç(e)';
$labels['exportkeys'] = 'Eksporto kyç(e)';
$labels['keyactions'] = 'Veprime kyçesh…';
$labels['keyremove'] = 'Hiqe';
$labels['keydisable'] = 'Çaktivizoje';
$labels['keyrevoke'] = 'Shfuqizoje';
$labels['keysend'] = 'Dërgo kyç publik në mesazh';
$labels['keychpass'] = 'Ndryshoni fjalëkalimin';
$labels['newkeyident'] = 'Identitet';
$labels['newkeypass'] = 'Fjalëkalim:';
$labels['newkeypassconfirm'] = 'Ripohoni fjalëkalimin:';
$labels['newkeysize'] = 'Madhësi kyçi:';
$labels['key2048'] = '2048 bite - parazgjedhje';
$labels['key4096'] = '4096 bite - më i sigurt';
$labels['keygenerating'] = 'Po prodhohen kyçe…';
$labels['encryptionoptions'] = 'Mundësi fshehtëzimi…';
$labels['encryptmsg'] = 'Fshehtëzoje këtë mesazj';
$labels['signmsg'] = 'Nënshkruaje në mënyrë dixhitale këtë mesazh';
$labels['enterkeypasstitle'] = 'Jepni frazëkalim kyçi';
$labels['enterkeypass'] = 'Frazëkalimi është i nevojshëm për të zhbllokuar kyçin e fshehtë ($keyid) për përdoruesin: $user.';
$labels['arialabelkeyexportoptions'] = 'Mundësi eksportimi kyçesh';
$labels['attachpubkeymsg'] = 'Bashkëngjite kyçin tim publik';
$labels['keyexportprompt'] = 'Doni të përfshihen kyçe të fshehtë te skedari i ruajtur për kyçe OpenPGP?';
$labels['onlypubkeys'] = 'Eksporto Vetëm Kyçe Publikë';
$labels['withprivkeys'] = 'Eksporto Kyçe të Fshehtë';
$labels['findkey'] = 'Kërko në shërbyes kyçesh';
$labels['keyimportlabel'] = 'Importo prej skedari';
$labels['keyimportsearchlabel'] = 'Kërko në shërbyes kyçesh';
$messages['sigvalid'] = 'Nënshkrim nga $sender i verifikuar.';
$messages['sigvalidpartial'] = 'Nënshkrim nga $sender i verifikuar, por s’pati të nënshkruar pjesë lënde.';
$messages['siginvalid'] = 'Nënshkrim i pavlefshëm nga $sender.';
$messages['sigunverified'] = 'Nënshkrim i paverifikuar. Dëshmia s’u verifikua. ID Dëshmie: $keyid.';
$messages['signokey'] = 'Nënshkrim i paverifikuar. S’u gjet kyç. ID Kyçi: $keyid.';
$messages['sigerror'] = 'Nënshkrim i paverifikuar. Gabim i brendshëm.';
$messages['decryptok'] = 'Mesazhi u çfshehtëzua.';
$messages['decrypterror'] = 'Çfshehtëzimi dështoi.';
$messages['decryptnokey'] = 'Çfshehtëzimi dështoi. S’u gjet kyç privat. ID Kyçi: $keyid.';
$messages['decryptbadpass'] = 'Shfshehtëzimi dështoi. Fjalëkalim i pavlefshëm.';
$messages['decryptnopass'] = 'Çfshehtëzimi dështoi. Lypset fjalëkalim kyçi.';
$messages['decryptpartial'] = 'Mesazhi u çfshehtëzua, por një pjesë e lëndë s’u çfshehtëzua.';
$messages['signerror'] = 'Nënshkrimi dështoi.';
$messages['signnokey'] = 'Nënshkrimi dështoi. S’u gjet kyç privat.';
$messages['signbadpass'] = 'Hyrja dështoi. Fjalëkalim i pavlefshëm.';
$messages['signnopass'] = 'Nënshkrimi dështoi. Lypset fjalëkalim kyçi.';
$messages['encrypterror'] = 'Fshehtëzimi dështoi.';
$messages['encryptnokey'] = 'Fshehtëzimi dështoi. S’u gjet kyç publik për $email';
$messages['nokeysfound'] = 'S’u gjetën kyçe';
$messages['keynotfound'] = 'S’u gjet kyç!';
$messages['keyopenerror'] = 'I pazoti të marrë të dhëna kyçi! Gabim i brendshëm.';
$messages['keylisterror'] = 'I pazoti të paraqesë kyçe! Gabim i brendshëm.';
$messages['keysimportfailed'] = 'I pazoti të importojë kyç(e)! Gabim i brendshëm.';
$messages['keysimportsuccess'] = 'Kyçi(et) u importuan me sukses. Të importuar: $new, të pandryshuar: $old.';
$messages['keyremoving'] = 'Po hiqet kyçi(et)…';
$messages['keyremoveconfirm'] = 'Jeni i sigurt se doni të fshihet kyçi(et) i përzgjedhur?';
$messages['keyremovesuccess'] = 'Kyçi(et) u fshi me sukses';
$messages['keyremoveerror'] = 'I pazoti të fshijë kyçin(et) e përzgjedhur?';
$messages['keyimporttext'] = 'Mund të importoni kyç(e) privatë dhe publikë ose nënshkrime shfuqizimesh në formatin ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Për kyçe publikë mund të kërkoni sipas identifikuesi kyçi, emri përdoruesi ose adrese email dhe mandej t’i importoni ata drejtpërsëdrejti.';
$messages['formerror'] = 'Ju lutemi, plotësoni formularin. Janë të domosdoshme krejt fushat!';
$messages['passwordsdiffer'] = 'Fjalëkalimet nuk përputhen!';
$messages['keygenerateerror'] = 'Dështoi prodhimi i një çifti kyçesh';
$messages['keygeneratesuccess'] = 'U prodhua dhe importua me sukses një çift kyçesh.';
$messages['keygennosupport'] = 'Shfletuesi juaj nuk e mbulon kriptografinë. I pazoti të prodhojë një çift kyçesh!';
$messages['noidentselected'] = 'Duhet të përzgjidhni të paktën një identitet për kyçin!';
$messages['nonameident'] = 'Identiteti duhet të ketë të përkufizuar një emër përdoruesi!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Kryptering';
$labels['enigmacerts'] = 'S/MIME-certifikat';
$labels['enigmakeys'] = 'PGP-nycklar';
$labels['keysfromto'] = 'Nyckel $from till $to av $count';
$labels['keyname'] = 'Namn';
$labels['keyid'] = 'Nyckel-ID';
$labels['keyuserid'] = 'Användar-ID';
$labels['keytype'] = 'Nyckeltyp';
$labels['fingerprint'] = 'Fingeravtryck';
$labels['subkeys'] = 'Undernycklar';
$labels['basicinfo'] = 'Grundläggande information';
$labels['userids'] = 'Ytterligare användare';
$labels['typepublickey'] = 'offentlig nyckel';
$labels['typekeypair'] = 'nyckelpar';
$labels['keyattfound'] = 'Meddelandet innehåller en eller flera bifogade PGP-nycklar.';
$labels['keyattimport'] = 'Importera nyckel';
$labels['typesign'] = 'Signera';
$labels['typeencrypt'] = 'Kryptera';
$labels['typecert'] = 'Intyga';
$labels['typeauth'] = 'Autentisering';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Algoritm';
$labels['subkeycreated'] = 'Skapad';
$labels['subkeyexpires'] = 'Utgår';
$labels['subkeyusage'] = 'Användning';
$labels['expiresnever'] = 'aldrig';
$labels['unknown'] = 'okänd';
$labels['uservalid'] = 'Giltig';
$labels['userid'] = 'ID';
$labels['valid'] = 'giltig';
$labels['supportencryption'] = 'Aktivera kryptering och signering av meddelanden';
$labels['supportsignatures'] = 'Aktivera signaturverifiering i meddelanden';
$labels['supportdecryption'] = 'Aktivera dekryptering av meddelanden';
$labels['signdefault'] = 'Signera alla meddelanden';
$labels['encryptdefault'] = 'Kryptera alla meddelanden';
$labels['attachpubkeydefault'] = 'Bifoga alltid min offentliga nyckel';
$labels['passwordtime'] = 'Använd lösenord till privat nyckel under';
$labels['nminutes'] = '$m min';
$labels['wholesession'] = 'Hela sessionen';
$labels['createkeys'] = 'Nytt nyckelpar ';
$labels['importkeys'] = 'Importera nycklar';
$labels['exportkeys'] = 'Exportera nycklar';
$labels['keyactions'] = 'Hantera nycklar...';
$labels['keyremove'] = 'Ta bort';
$labels['keydisable'] = 'Deaktivera';
$labels['keyrevoke'] = 'Upphäv';
$labels['keysend'] = 'Skicka offentlig nyckel i meddelande';
$labels['keychpass'] = 'Ändra lösenord';
$labels['newkeyident'] = 'Identitet';
$labels['newkeypass'] = 'Lösenord';
$labels['newkeypassconfirm'] = 'Bekräfta lösenord';
$labels['newkeysize'] = 'Nyckelstorlek';
$labels['key2048'] = '2048 bitar - standard';
$labels['key4096'] = '4096 bitar - säkrare';
$labels['keygenerating'] = 'Skapar nycklar...';
$labels['encryptionoptions'] = 'Krypteringsalternativ...';
$labels['encryptmsg'] = 'Kryptera meddelandet';
$labels['signmsg'] = 'Signera meddelandet';
$labels['enterkeypasstitle'] = 'Ange nyckelns lösenord';
$labels['enterkeypass'] = 'Lösenord behövs för att låsa upp den privata nyckeln ($keyid) för användare $user.';
$labels['arialabelkeyexportoptions'] = 'Exportalternativ för nycklar';
$labels['attachpubkeymsg'] = 'Bifoga min offentliga nyckel';
$labels['keyexportprompt'] = 'Inkludera privata nycklar i den sparade nyckelfilen för OpenPGP?';
$labels['onlypubkeys'] = 'Exportera endast offentliga nycklar';
$labels['withprivkeys'] = 'Exportera privata nycklar';
$labels['findkey'] = 'Sök nyckel på en eller flera servrar';
$labels['keyimportlabel'] = 'Importera från fil';
$labels['keyimportsearchlabel'] = 'Sök nyckel på en eller flera servrar';
$messages['sigvalid'] = 'Signatur verifierad för $sender.';
$messages['sigvalidpartial'] = 'Signatur verifierad för $sender, men meddelandet var delvis osignerat.';
$messages['siginvalid'] = 'Ogiltig signatur från $sender.';
$messages['sigunverified'] = 'Overifierad signatur. Certifikatet är inte verifierat. Certifikat-ID: $keyid.';
$messages['signokey'] = 'Overifierad signatur. Offentlig nyckel otillgänglig. Nyckel-ID: $keyid.';
$messages['sigerror'] = 'Overifierad signatur. Internt fel.';
$messages['decryptok'] = 'Meddelandet är dekrypterat.';
$messages['decrypterror'] = 'Dekrypteringen misslyckades.';
$messages['decryptnokey'] = 'Dekrypteringen misslyckades. Privat nyckel otillgänglig. Nyckel-ID: $keyid.';
$messages['decryptnopass'] = 'Dekrypteringen misslyckades. Ange nyckelns lösenord.';
$messages['decryptpartial'] = 'Meddelandet är dekrypterat, men meddelandet var delvis okrypterat.';
$messages['signerror'] = 'Signeringen misslyckades.';
$messages['signnokey'] = 'Signeringen misslyckades. Privat nyckel otillgänglig.';
$messages['signnopass'] = 'Signeringen misslyckades. Ange nyckelns lösenord.';
$messages['encrypterror'] = 'Krypteringen misslyckades.';
$messages['encryptnokey'] = 'Krypteringen misslyckades. Offentlig nyckel otillgänglig för $email.';
$messages['nokeysfound'] = 'Inga nycklar hittades.';
$messages['keynotfound'] = 'Nyckeln hittades inte!';
$messages['keyopenerror'] = 'Nyckelinformation kunde inte hämtas. Internt fel.';
$messages['keylisterror'] = 'Nycklar kunde inte listas. Internt fel.';
$messages['keysimportfailed'] = 'Nycklar kunde inte importeras. Internt fel.';
$messages['keysimportsuccess'] = 'Nycklar har importerats. Importerade: $new, oförändrade: $old.';
$messages['keyremoving'] = 'Tar bort nycklar...';
$messages['keyremoveconfirm'] = 'Vill du ta bort markerade nycklar?';
$messages['keyremovesuccess'] = 'Nycklar borttagna.';
$messages['keyremoveerror'] = 'Nycklarna kunde inte tas bort.';
$messages['keyimporttext'] = 'Privata och offentliga nycklar eller återkallande av signaturer kan importeras i formatet ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Offentlig nyckel kan sökas genom att ange identifierare, användarnamn eller mailadress, för att sedan importeras direkt.';
$messages['formerror'] = 'Fyll i formulärets samtliga fält.';
$messages['passwordsdiffer'] = 'Bekräftelsen av lösenordet stämmer inte.';
$messages['keygenerateerror'] = 'Nyckelpar kunde inte skapas';
$messages['keygeneratesuccess'] = 'Nyckelpar skapat och importerat.';
$messages['keygennosupport'] = 'Webbläsaren saknar krypteringsfunktion. Nyckelpar kunde inte skapas.';
$messages['noidentselected'] = 'Minst en identitet till nyckeln måste väljas!';
$messages['nonameident'] = 'Användarnamn måste anges.';
?>
@@ -0,0 +1,123 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Şifreleme';
$labels['enigmacerts'] = 'S/MIME Sertifikaları';
$labels['enigmakeys'] = 'PGP Anahtarları';
$labels['keysfromto'] = 'Anahtarlar $from - $to / $count';
$labels['keyname'] = 'Ad';
$labels['keyid'] = 'Anahtar Kodu';
$labels['keyuserid'] = 'Kullanıcı Kodu';
$labels['keytype'] = 'Anahtar türü';
$labels['fingerprint'] = 'Parmak izi';
$labels['subkeys'] = 'Alt anahtarlar';
$labels['basicinfo'] = 'Temel Bilgiler';
$labels['userids'] = 'Ek Kullanıcılar';
$labels['typepublickey'] = 'Genel Anahtar';
$labels['typekeypair'] = 'Anahtar çifti';
$labels['keyattfound'] = 'İleti ekinde PGP anahtarları var.';
$labels['keyattimport'] = 'Anahtar(lar)ı içe aktar.';
$labels['typesign'] = 'İmza';
$labels['typeencrypt'] = 'Şifrele';
$labels['typecert'] = 'Belgele';
$labels['typeauth'] = 'Kimlik Doğrulaması';
$labels['subkeyid'] = 'Kod';
$labels['subkeyalgo'] = 'Algoritma';
$labels['subkeycreated'] = 'Oluşturuldu';
$labels['subkeyexpires'] = 'Geçerlilik süresi';
$labels['subkeyusage'] = 'Kullanım';
$labels['expiresnever'] = 'asla';
$labels['unknown'] = 'bilinmeyen';
$labels['uservalid'] = 'Geçerli';
$labels['userid'] = 'Kod';
$labels['valid'] = 'geçerli';
$labels['supportencryption'] = 'İletiler şifrelensin ve imzalansın';
$labels['supportsignatures'] = 'İleti imzaları doğrulansın';
$labels['supportdecryption'] = 'İleti şifreleri çözülsün';
$labels['signdefault'] = 'Varsayılan olarak tüm iletiler imzalansın';
$labels['encryptdefault'] = 'Varsayılan olarak tüm iletiler şifrelensin';
$labels['attachpubkeydefault'] = 'Varsayılan olarak PGP anahtarı eklensin';
$labels['passwordtime'] = 'Parolalar için özel anahtarları tut';
$labels['nminutes'] = '$m dakika';
$labels['wholesession'] = 'tüm oturum';
$labels['createkeys'] = 'Yeni anahtar çifti oluştur';
$labels['importkeys'] = 'Anahtar(lar)ı içe aktar';
$labels['exportkeys'] = 'Anahtar(lar)ı dışa aktar';
$labels['keyactions'] = 'Anahtar işlemler...';
$labels['keyremove'] = 'Kaldır';
$labels['keydisable'] = 'Devre dışı';
$labels['keyrevoke'] = 'Geri al';
$labels['keysend'] = 'İletiyle birlikte ortak anahtar gönderilsin';
$labels['keychpass'] = 'Parolayı değiştir';
$labels['newkeyident'] = 'Kimlik:';
$labels['newkeypass'] = 'Parola:';
$labels['newkeypassconfirm'] = 'Parola Onayı:';
$labels['newkeysize'] = 'Anahtar uzunluğu:';
$labels['key2048'] = '2048 bit-Varsayılan';
$labels['key4096'] = '4096 bit- daha güvenli';
$labels['keygenerating'] = 'Anahtarlar oluştur...';
$labels['encryptionoptions'] = 'Şifreleme ayarları...';
$labels['encryptmsg'] = 'Bu iletiyi şifrele';
$labels['signmsg'] = 'İletiyi dijital imzala';
$labels['enterkeypasstitle'] = 'Anahtar sözcüğünüzü yazın';
$labels['enterkeypass'] = 'Gizli anahtarı ($keyid) açmak için $user kullanıcısının anahtar sözcüğü gerekli.';
$labels['arialabelkeyexportoptions'] = 'Anahtar dışa aktarma ayarları';
$labels['attachpubkeymsg'] = 'Genel anahtarımı ekle';
$labels['keyexportprompt'] = 'OpenPGP anahtar dosyasına gizli anahtarları da kaydetmek istiyor musunuz?';
$labels['onlypubkeys'] = 'Yalnız Genel Anahtarları Dışa Aktar';
$labels['withprivkeys'] = 'Gizli Anahtarları Dışa Aktar';
$labels['findkey'] = 'Anahtarı sunucu(lar)da ara';
$labels['keyimportlabel'] = 'Dosyadan içe aktar';
$labels['keyimportsearchlabel'] = 'Anahtarı sunucu(lar)da ara';
$messages['sigvalid'] = '$sender imzası geçerli.';
$messages['sigvalidpartial'] = '$sender imzası doğrulandı, ancak metnin tümü imzalanmamış.';
$messages['siginvalid'] = '$sender imzası geçersiz.';
$messages['sigunverified'] = 'İmza doğrulanmamış. Sertifika doğrulanmamış. Sertifika Kodu: $keyid.';
$messages['signokey'] = 'İmza doğrulanmamış. Genel anahtar bulunamadı. Anahtar Kodu: $keyid.';
$messages['sigerror'] = 'Sorun var! İmza doğrulanmamış.';
$messages['decryptok'] = 'İleti şifresi çözüldü.';
$messages['decrypterror'] = 'Şifre çözülemedi.';
$messages['decryptnokey'] = 'Şifre çözülemedi. Özel anahtar bulunamadı. Anahtar Kodu: $keyid.';
$messages['decryptbadpass'] = 'Şifre çözülemedi. Parola geçersiz.';
$messages['decryptnopass'] = 'Şifre çözülemedi. Anahtar parola gerekli.';
$messages['decryptpartial'] = 'İletinin şifresi çözüldü, fakat metnin tümü şifrelenmemiş.';
$messages['signerror'] = 'İmzalama geçersiz.';
$messages['signnokey'] = 'İmzalanamadı. Özel anahtar bulunamadı.';
$messages['signbadpass'] = 'İmzalanamadı. Parola geçersiz.';
$messages['signnopass'] = 'İmzalanamadı. Anahtar parola gerekli.';
$messages['encrypterror'] = 'Şifrelenemedi.';
$messages['encryptnokey'] = 'Şifrelenemedi. Genel anahtar $email içinde bulunamadı.';
$messages['nokeysfound'] = 'Anahtarlar bulunamadı';
$messages['keynotfound'] = 'Anahtar buunamadı!';
$messages['keyopenerror'] = 'Sorun var! Anahtar bilgileri alınamıyor.';
$messages['keylisterror'] = 'Sorun var! Anahtar listesi yok.';
$messages['keysimportfailed'] = 'Sorun var! Anahtar(lar) aktarılamıyor.';
$messages['keysimportsuccess'] = 'Anahtar(lar) içe aktarıldı. İçe Aktarılan: $new, Değişmeyen: $old.';
$messages['keyremoving'] = 'Anahtar(lar) kaldırılıyor...';
$messages['keyremoveconfirm'] = 'Seçilmiş anahtar(lar)ı silmek istediğinize emin misiniz?';
$messages['keyremovesuccess'] = 'Anahtar(lar) silindi';
$messages['keyremoveerror'] = 'Anahtar(lar) silinemedi.';
$messages['keyimporttext'] = 'Özel ve genel anahtar(lar)ı içe aktarabilir ya da ASCII-Armor biçimindeki imzanızı geri çekebilirsiniz.';
$messages['keyimportsearchtext'] = 'Genel anahtarları, anahtar tanımlayıcı, e-posta ya da kullanıcı adına göre arayarak doğrudan içe aktarabilirsiniz.';
$messages['formerror'] = 'Formun doldurun. Tüm alanlar zorunludur!';
$messages['passwordsdiffer'] = 'Parola ile onayı aynı değil!';
$messages['keygenerateerror'] = 'Anahtar çifti oluşturulamadı.';
$messages['keygeneratesuccess'] = 'Anahtar çiftiniz oluşturuldu ve içe aktarıldı.';
$messages['keygennosupport'] = 'Tarayıcınız şifrelemeyi desteklemiyor. Anahtar çifti oluşturulamıyor.';
$messages['noidentselected'] = 'Anahtar için en az bir kimlik seçmelisiniz!';
$messages['nonameident'] = 'Kimlik için bir kullanıcı adı belirtmelisiniz!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = 'Шифрування';
$labels['enigmacerts'] = 'Сертифікати S/MIME';
$labels['enigmakeys'] = 'PGP-ключі';
$labels['keysfromto'] = 'Ключі з $from до $to з $count';
$labels['keyname'] = 'Ім\'я';
$labels['keyid'] = 'ID ключа';
$labels['keyuserid'] = 'ID користувача';
$labels['keytype'] = 'Тип ключа';
$labels['fingerprint'] = 'Відбиток';
$labels['subkeys'] = 'Субключі';
$labels['basicinfo'] = 'Базова інформація';
$labels['userids'] = 'Додаткові користувачі';
$labels['typepublickey'] = 'публічний ключ';
$labels['typekeypair'] = 'пара ключів';
$labels['keyattfound'] = 'Це повідомлення містить прикріплений PGP-ключ(і).';
$labels['keyattimport'] = 'Імпортувати ключ(і)';
$labels['typesign'] = 'Підписати';
$labels['typeencrypt'] = 'Шифрувати';
$labels['typecert'] = 'Сертифікувати';
$labels['typeauth'] = 'Автентифікація';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = 'Алгоритм';
$labels['subkeycreated'] = 'Створено';
$labels['subkeyexpires'] = 'Закінчується';
$labels['subkeyusage'] = 'Використання';
$labels['expiresnever'] = 'ніколи';
$labels['unknown'] = 'невідомо';
$labels['uservalid'] = 'Дійсний';
$labels['userid'] = 'ID';
$labels['valid'] = 'дійсний';
$labels['supportencryption'] = 'Увімкнути шифрування і підписання повідомлень';
$labels['supportsignatures'] = 'Увімкнути верифікацію підписів повідомленьй';
$labels['supportdecryption'] = 'Увімкнути розшифрування повідомлень';
$labels['signdefault'] = 'Підписувати усі листи за замовчуванням';
$labels['encryptdefault'] = 'Шифрувати усі повідомлення за замовчуванням';
$labels['attachpubkeydefault'] = 'Приєднати мій публічний PGP ключ по замовчуванню';
$labels['passwordtime'] = 'Зберігати паролі приватних ключів';
$labels['nminutes'] = '$n хвилин(и)';
$labels['wholesession'] = 'усю сесію';
$labels['createkeys'] = 'Створити нову пару ключів';
$labels['importkeys'] = 'Імпортувати ключ(і)';
$labels['exportkeys'] = 'Експортувати ключ(і)';
$labels['keyactions'] = 'Ключові дії...';
$labels['keyremove'] = 'Вилучити';
$labels['keydisable'] = 'Вимкнути';
$labels['keyrevoke'] = 'Відкликати';
$labels['keysend'] = 'Надіслати публічний ключ в повідомленні';
$labels['keychpass'] = 'Змінити пароль';
$labels['newkeyident'] = 'Профіль:';
$labels['newkeypass'] = 'Пароль:';
$labels['newkeypassconfirm'] = 'Підтвердіть пароль:';
$labels['newkeysize'] = 'Розмір ключа:';
$labels['key2048'] = '2048 бітів — дефолтно';
$labels['key4096'] = '4096 бітів — безпечніше';
$labels['keygenerating'] = 'Генерування ключів…';
$labels['encryptionoptions'] = 'Опції шифрування…';
$labels['encryptmsg'] = 'Шифрувати це повідомлення';
$labels['signmsg'] = 'Поставити цифровий підпис під повідомленням';
$labels['enterkeypasstitle'] = 'Введіть фразу-пароль ключа';
$labels['enterkeypass'] = 'Необхідна фраза-пароль для відімкнення секретного ключа ($keyid) для користувача: $user.';
$labels['arialabelkeyexportoptions'] = 'Опції експорту ключів';
$labels['attachpubkeymsg'] = 'Приєднати мій публічний ключ';
$labels['keyexportprompt'] = 'Бажаєте включити приватні ключі у файл-ключів OpenPGP?';
$labels['onlypubkeys'] = 'Експортувати публічні ключі';
$labels['withprivkeys'] = 'Експортувати приватні ключі';
$labels['findkey'] = 'Пошук по ключовому(вих) серверах';
$labels['keyimportlabel'] = 'Імпортувати з файлу';
$labels['keyimportsearchlabel'] = 'Пошук по ключовому(вих) серверах';
$messages['sigvalid'] = 'Перевірений підпис від $sender.';
$messages['sigvalidpartial'] = 'Перевірений підпис від $sender, але частина тіла повідомлення не було підписано.';
$messages['siginvalid'] = 'Недійсний підпис від $sender.';
$messages['sigunverified'] = 'Неперевірений підпис. Сертифікат не перевірено. ID сертифіката: $keyid.';
$messages['signokey'] = 'Неперевірений підпис. Публічний ключ не знайдено. ID ключа: $keyid.';
$messages['sigerror'] = 'Неперевірений підпис. Внутрішня помилка.';
$messages['decryptok'] = 'Повідомлення розшифровано.';
$messages['decrypterror'] = 'Розшифрування не вдалося.';
$messages['decryptnokey'] = 'Розшифрування не вдалося. Приватний ключ не знайдено. ID ключа: $keyid.';
$messages['decryptnopass'] = 'Розшифрування не вдалося. Потрібен пароль ключа.';
$messages['decryptpartial'] = 'Повідомлення розшифроване, але частина тіла не було зашифроване.';
$messages['signerror'] = 'Підписання не вдалося.';
$messages['signnokey'] = 'Підписання не вдалося. Приватний ключ не знайдено.';
$messages['signnopass'] = 'Підписання не вдалося. Потрібен пароль ключа.';
$messages['encrypterror'] = 'Шифрування не вдалося. ';
$messages['encryptnokey'] = 'Шифрування не вдалося. Публічний ключ не знайдено для $email.';
$messages['nokeysfound'] = 'Не знайдено ключів';
$messages['keynotfound'] = 'Ключ не знайдено!';
$messages['keyopenerror'] = 'Не вдалося отримати інформацію про ключ! Внутрішня помилка.';
$messages['keylisterror'] = 'Не вдалося вивести перелік ключів! Внутрішня помилка.';
$messages['keysimportfailed'] = 'Не вдалося імпортувати ключ(і)! Внутрішня помилка.';
$messages['keysimportsuccess'] = 'Ключ(і) імпотровано успішно. Імпортовано: $new, без змін: $old.';
$messages['keyremoving'] = 'Вилучення ключа(-ів)…';
$messages['keyremoveconfirm'] = 'Ви дійсно хочете видалити обраний(-і) ключ(і)?';
$messages['keyremovesuccess'] = 'Ключ(і) вилучено успішно';
$messages['keyremoveerror'] = 'Не вдалося вилучити обраний(-і) ключ(і).';
$messages['keyimporttext'] = 'Ви можете імпортувати приватні та публічні ключі чи підписи скасування у форматі ASCII-Armor.';
$messages['keyimportsearchtext'] = 'Ви можете здійснювати пошук відкритих ключів за допомогою ідентифікатора ключа, ім\'я користувача або адреси електронної пошти, а потім імпортувати їх.';
$messages['formerror'] = 'Будь ласка, заповніть форму. Усі поля обов\'язкові!';
$messages['passwordsdiffer'] = 'Паролі не співпадають!';
$messages['keygenerateerror'] = 'Не вдалося згенерувати пару ключів';
$messages['keygeneratesuccess'] = 'Пару ключів успішно згенеровано й імпортовано.';
$messages['keygennosupport'] = 'Ваш веб-браузер не підтримує криптографію. Не вдалося згенерувати пару ключів!';
$messages['noidentselected'] = 'Ви повинні вибрати принаймні, один ідентифікатор для ключа!';
$messages['nonameident'] = 'Профіль повинен мати вказане ім\'я користувача!';
?>
@@ -0,0 +1,121 @@
<?php
/**
+-----------------------------------------------------------------------+
| plugins/enigma/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2016, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/
*/
$labels['encryption'] = '加密';
$labels['enigmacerts'] = 'S/MIME 证书';
$labels['enigmakeys'] = 'PGP 密钥';
$labels['keysfromto'] = '从 $from 到 $to,共计 $count 个密钥';
$labels['keyname'] = '名称';
$labels['keyid'] = '密钥 ID';
$labels['keyuserid'] = '用户 ID';
$labels['keytype'] = '密钥类型';
$labels['fingerprint'] = '指纹';
$labels['subkeys'] = '子密钥';
$labels['basicinfo'] = '基本信息';
$labels['userids'] = '其他用户';
$labels['typepublickey'] = '公钥';
$labels['typekeypair'] = '密钥对';
$labels['keyattfound'] = '此消息包含附加的 PGP 密钥。';
$labels['keyattimport'] = '导入密钥';
$labels['typesign'] = '签名';
$labels['typeencrypt'] = '加密';
$labels['typecert'] = '证明';
$labels['typeauth'] = '身份验证';
$labels['subkeyid'] = 'ID';
$labels['subkeyalgo'] = '算法';
$labels['subkeycreated'] = '创建于';
$labels['subkeyexpires'] = '过期时间';
$labels['subkeyusage'] = '用法';
$labels['expiresnever'] = '从不';
$labels['unknown'] = '未知';
$labels['uservalid'] = '有效';
$labels['userid'] = 'ID';
$labels['valid'] = '有效';
$labels['supportencryption'] = '启用邮件加密和签名';
$labels['supportsignatures'] = '启用邮件签名验证';
$labels['supportdecryption'] = '启用邮件解密';
$labels['signdefault'] = '默认签名所有邮件';
$labels['encryptdefault'] = '默认加密所有邮件';
$labels['attachpubkeydefault'] = '默认附加我的公共 PGP 密钥';
$labels['passwordtime'] = '保持私钥密码';
$labels['nminutes'] = '$m 分钟';
$labels['wholesession'] = '整个会话';
$labels['createkeys'] = '创建新密钥对';
$labels['importkeys'] = '导入密钥';
$labels['exportkeys'] = '加密密钥';
$labels['keyactions'] = '密钥操作...';
$labels['keyremove'] = '移除';
$labels['keydisable'] = '禁用';
$labels['keyrevoke'] = '废除';
$labels['keysend'] = '在邮件中发送公钥';
$labels['keychpass'] = '修改密码';
$labels['newkeyident'] = '身份:';
$labels['newkeypass'] = '密码:';
$labels['newkeypassconfirm'] = '确认密码:';
$labels['newkeysize'] = '密钥大小:';
$labels['key2048'] = '2048 位 - 默认';
$labels['key4096'] = '4096 位 - 更安全';
$labels['keygenerating'] = '正在生成密钥...';
$labels['encryptionoptions'] = '加密选项...';
$labels['encryptmsg'] = '加密此邮件';
$labels['signmsg'] = '数字签名此邮件';
$labels['enterkeypasstitle'] = '请输入密钥口令';
$labels['enterkeypass'] = '需要口令解锁私钥 ($keyid),用户:$user。';
$labels['arialabelkeyexportoptions'] = '密钥导出选项';
$labels['attachpubkeymsg'] = '附加我的公钥';
$labels['keyexportprompt'] = '您要在保存的 OpenPGP 密钥文件中包含私钥吗?';
$labels['onlypubkeys'] = '仅导出公钥';
$labels['withprivkeys'] = '导出私钥';
$labels['findkey'] = '搜索密钥服务器';
$labels['keyimportlabel'] = '从文件导入';
$labels['keyimportsearchlabel'] = '在密钥服务器上搜索';
$messages['sigvalid'] = '已验证来自 $sender 的签名。';
$messages['sigvalidpartial'] = '已验证来自 $sender 的签名,但主体部分未被签名。';
$messages['siginvalid'] = '无效的来自 $sender 的签名。';
$messages['sigunverified'] = '未验证签名。证书未验证。证书 ID: $keyid。';
$messages['signokey'] = '未验证签名。公钥未找到。密钥 ID: $keyid。';
$messages['sigerror'] = '未验证签名。内部错误。';
$messages['decryptok'] = '邮件已解密';
$messages['decrypterror'] = '解密失败。';
$messages['decryptnokey'] = '解密失败。私钥未找到。密钥 ID: $keyid。';
$messages['decryptnopass'] = '解密失败。需要密钥密码。';
$messages['decryptpartial'] = '邮件已解密,但主体部分未被加密。';
$messages['signerror'] = '签名失败。';
$messages['signnokey'] = '签名失败。私钥未找到。';
$messages['signnopass'] = '签名失败。需要密钥密码。';
$messages['encrypterror'] = '加密失败。';
$messages['encryptnokey'] = '加密失败。用于 $email 的公钥未找到。';
$messages['nokeysfound'] = '没有找到密钥';
$messages['keynotfound'] = '密钥未找到!';
$messages['keyopenerror'] = '无法获取密钥信息!内部错误。';
$messages['keylisterror'] = '无法列出密钥。内部错误。';
$messages['keysimportfailed'] = '无法导入密钥!内部错误。';
$messages['keysimportsuccess'] = '密钥导入成功。已导入 $new 项,未变更 $old 项。';
$messages['keyremoving'] = '正在移除密钥...';
$messages['keyremoveconfirm'] = '您确定吗,确定删除选定密钥?';
$messages['keyremovesuccess'] = '密钥删除成功';
$messages['keyremoveerror'] = '无法删除选定密钥。';
$messages['keyimporttext'] = '您可以导入私钥和公钥或废除 ASCII-Armor 格式的签名。';
$messages['keyimportsearchtext'] = '您可以根据密钥标识符、用户名或电子邮件地址搜索公钥和直接导入它们。';
$messages['formerror'] = '请填写表单。所有字段都为必填!';
$messages['passwordsdiffer'] = '密码不匹配!';
$messages['keygenerateerror'] = '生成密钥对失败';
$messages['keygeneratesuccess'] = '密钥对生成和导入成功。';
$messages['keygennosupport'] = '您的网页浏览器不支持加密。无法生成密钥对!';
$messages['noidentselected'] = '您必须为该密钥选择至少一个身份!';
$messages['nonameident'] = '身份必须有一个用户名!';
?>
+27
View File
@@ -0,0 +1,27 @@
/**
* OpenPGP.js - v1.6.2
*
* @source https://github.com/openpgpjs/openpgpjs/blob/v1.6.2/dist/openpgp.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in this file.
*
* Copyright (c) OpenPGP Development Team
*
* The JavaScript code in this page is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*/
/*! OpenPGPjs.org this is LGPL licensed code, see LICENSE/our website for more information.- v1.6.2 - 2016-06-08 */!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.openpgp=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./promise/promise").Promise,e=a("./promise/polyfill").polyfill;c.Promise=d,c.polyfill=e},{"./promise/polyfill":5,"./promise/promise":6}],2:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){e(a,b)}}function e(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&f(g.then)?g.then(d(j),c):e(j,g)})}var e=a("./utils").isArray,f=a("./utils").isFunction;c.all=d},{"./utils":10}],3:[function(a,b,c){(function(a,b){"use strict";function d(){return function(){a.nextTick(g)}}function e(){var a=0,b=new k(g),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function f(){return function(){l.setTimeout(g,1)}}function g(){for(var a=0;a<m.length;a++){var b=m[a],c=b[0],d=b[1];c(d)}m=[]}function h(a,b){var c=m.push([a,b]);1===c&&i()}var i,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof b?b:void 0===this?window:this,m=[];i="undefined"!=typeof a&&"[object process]"==={}.toString.call(a)?d():k?e():f(),c.asap=h}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:11}],4:[function(a,b,c){"use strict";function d(a,b){return 2!==arguments.length?e[a]:void(e[a]=b)}var e={instrument:!1};c.config=e,c.configure=d},{}],5:[function(a,b,c){(function(b){"use strict";function d(){var a;a="undefined"!=typeof b?b:"undefined"!=typeof window&&window.document?window:self;var c="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();c||(a.Promise=e)}var e=a("./promise").Promise,f=a("./utils").isFunction;c.polyfill=d}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./promise":6,"./utils":10}],6:[function(a,b,c){"use strict";function d(a){if(!q(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof d))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],e(a,this)}function e(a,b){function c(a){j(b,a)}function d(a){l(b,a)}try{a(c,d)}catch(e){d(e)}}function f(a,b,c,d){var e,f,g,h,k=q(c);if(k)try{e=c(d),g=!0}catch(m){h=!0,f=m}else e=d,g=!0;i(b,e)||(k&&g?j(b,e):h?l(b,f):a===y?j(b,e):a===z&&l(b,e))}function g(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+y]=c,e[f+z]=d}function h(a,b){for(var c,d,e=a._subscribers,g=a._detail,h=0;h<e.length;h+=3)c=e[h],d=e[h+b],f(b,c,d,g);a._subscribers=null}function i(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(p(b)&&(d=b.then,q(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?j(a,d):k(a,d)))},function(b){return c?!0:(c=!0,void l(a,b))}),!0}catch(e){return c?!0:(l(a,e),!0)}return!1}function j(a,b){a===b?k(a,b):i(a,b)||k(a,b)}function k(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(m,a))}function l(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(n,a))}function m(a){h(a,a._state=y)}function n(a){h(a,a._state=z)}var o=a("./config").config,p=(a("./config").configure,a("./utils").objectOrFunction),q=a("./utils").isFunction,r=(a("./utils").now,a("./all").all),s=a("./race").race,t=a("./resolve").resolve,u=a("./reject").reject,v=a("./asap").asap;o.async=v;var w=void 0,x=0,y=1,z=2;d.prototype={constructor:d,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;o.async(function(){f(c._state,d,e[c._state-1],c._detail)})}else g(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},d.all=r,d.race=s,d.resolve=t,d.reject=u,c.Promise=d},{"./all":2,"./asap":3,"./config":4,"./race":7,"./reject":8,"./resolve":9,"./utils":10}],7:[function(a,b,c){"use strict";funcLine truncated
32&e&&a(Error("fdict flag is not supported")),this.B=new m(b,{index:this.c,bufferSize:c.bufferSize,bufferType:c.bufferType,resize:c.resize})}function s(a,b){this.input=a,this.a=new(x?Uint8Array:Array)(32768),this.h=ea.k;var c,d={};!b&&(b={})||"number"!=typeof b.compressionType||(this.h=b.compressionType);for(c in b)d[c]=b[c];d.outputBuffer=this.a,this.A=new f(this.input,d)}function t(a,c){var d,e,f,g;if(Object.keys)d=Object.keys(c);else for(e in d=[],f=0,c)d[f++]=e;for(f=0,g=d.length;g>f;++f)e=d[f],b(a+"."+e,c[e])}var u=void 0,v=!0,w=this,x="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array&&"undefined"!=typeof DataView;c.prototype.f=function(){var a,b=this.buffer,c=b.length,d=new(x?Uint8Array:Array)(c<<1);if(x)d.set(b);else for(a=0;c>a;++a)d[a]=b[a];return this.buffer=d},c.prototype.d=function(a,b,c){var d,e=this.buffer,f=this.index,g=this.i,h=e[f];if(c&&b>1&&(a=b>8?(D[255&a]<<24|D[a>>>8&255]<<16|D[a>>>16&255]<<8|D[a>>>24&255])>>32-b:D[a]>>8-b),8>b+g)h=h<<b|a,g+=b;else for(d=0;b>d;++d)h=h<<1|a>>b-d-1&1,8===++g&&(g=0,e[f++]=D[h],h=0,f===e.length&&(e=this.f()));e[f]=h,this.buffer=e,this.i=g,this.index=f},c.prototype.finish=function(){var a,b=this.buffer,c=this.index;return 0<this.i&&(b[c]<<=8-this.i,b[c]=D[b[c]],c++),x?a=b.subarray(0,c):(b.length=c,a=b),a};var y,z=new(x?Uint8Array:Array)(256);for(y=0;256>y;++y){for(var A=y,B=A,C=7,A=A>>>1;A;A>>>=1)B<<=1,B|=1&A,--C;z[y]=(B<<C&255)>>>0}var D=z;d.prototype.getParent=function(a){return 2*((a-2)/4|0)},d.prototype.push=function(a,b){var c,d,e,f=this.buffer;for(c=this.length,f[this.length++]=b,f[this.length++]=a;c>0&&(d=this.getParent(c),f[c]>f[d]);)e=f[c],f[c]=f[d],f[d]=e,e=f[c+1],f[c+1]=f[d+1],f[d+1]=e,c=d;return this.length},d.prototype.pop=function(){var a,b,c,d,e,f=this.buffer;for(b=f[0],a=f[1],this.length-=2,f[0]=f[this.length],f[1]=f[this.length+1],e=0;(d=2*e+2,!(d>=this.length))&&(d+2<this.length&&f[d+2]>f[d]&&(d+=2),f[d]>f[e]);)c=f[e],f[e]=f[d],f[d]=c,c=f[e+1],f[e+1]=f[d+1],f[d+1]=c,e=d;return{index:a,value:b,length:this.length}};var E,F=2,G={NONE:0,r:1,k:F,O:3},H=[];for(E=0;288>E;E++)switch(v){case 143>=E:H.push([E+48,8]);break;case 255>=E:H.push([E-144+400,9]);break;case 279>=E:H.push([E-256+0,7]);break;case 287>=E:H.push([E-280+192,8]);break;default:a("invalid literal: "+E)}f.prototype.j=function(){var b,d,e,f,g=this.input;switch(this.h){case 0:for(e=0,f=g.length;f>e;){d=x?g.subarray(e,e+65535):g.slice(e,e+65535),e+=d.length;var i=d,k=e===f,m=u,n=u,o=u,p=u,q=u,r=this.a,s=this.b;if(x){for(r=new Uint8Array(this.a.buffer);r.length<=s+i.length+5;)r=new Uint8Array(r.length<<1);r.set(this.a)}if(m=k?1:0,r[s++]=0|m,n=i.length,o=~n+65536&65535,r[s++]=255&n,r[s++]=n>>>8&255,r[s++]=255&o,r[s++]=o>>>8&255,x)r.set(i,s),s+=i.length,r=r.subarray(0,s);else{for(p=0,q=i.length;q>p;++p)r[s++]=i[p];r.length=s}this.b=s,this.a=r}break;case 1:var t=new c(x?new Uint8Array(this.a.buffer):this.a,this.b);t.d(1,1,v),t.d(1,2,v);var w,y,z,A=h(this,g);for(w=0,y=A.length;y>w;w++)if(z=A[w],c.prototype.d.apply(t,H[z]),z>256)t.d(A[++w],A[++w],v),t.d(A[++w],5),t.d(A[++w],A[++w],v);else if(256===z)break;this.a=t.finish(),this.b=this.a.length;break;case F:var B,C,D,E,G,I,J,K,L,M,N,O,P,Q,R,S=new c(x?new Uint8Array(this.a.buffer):this.a,this.b),T=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],U=Array(19);for(B=F,S.d(1,1,v),S.d(B,2,v),C=h(this,g),I=j(this.M,15),J=l(I),K=j(this.L,7),L=l(K),D=286;D>257&&0===I[D-1];D--);for(E=30;E>1&&0===K[E-1];E--);var V,W,X,Y,Z,$,_=D,aa=E,ba=new(x?Uint32Array:Array)(_+aa),ca=new(x?Uint32Array:Array)(316),da=new(x?Uint8Array:Array)(19);for(V=W=0;_>V;V++)ba[W++]=I[V];for(V=0;aa>V;V++)ba[W++]=K[V];if(!x)for(V=0,Y=da.length;Y>V;++V)da[V]=0;for(V=Z=0,Y=ba.length;Y>V;V+=W){for(W=1;Y>V+W&&ba[V+W]===ba[V];++W);if(X=W,0===ba[V])if(3>X)for(;0<X--;)ca[Z++]=0,da[0]++;else for(;X>0;)$=138>X?X:138,$>X-3&&X>$&&($=X-3),10>=$?(ca[Z++]=17,ca[Z++]=$-3,da[17]++):(ca[Z++]=18,ca[Z++]=$-11,da[18]++),X-=$;else if(ca[Z++]=ba[V],da[ba[V]]++,X--,3>X)for(;0<X--;)ca[Z++]=ba[V],da[ba[V]]++;else for(;X>0;)$=6>X?X:6,$>X-3&&X>$&&($=X-3),ca[Z++]=16,ca[Z++]=$-3,da[16]++,X-=$}for(b=x?ca.subarray(0,Z):ca.slice(0,Z),M=j(da,7),Q=0;19>Q;Q++)U[Q]=M[T[Q]];for(G=19;G>4&&0===U[G-1];G--);for(N=l(M),S.d(D-257,5,v),S.d(E-1,5,v),S.d(G-4,4,v),Q=0;G>Q;Q++)S.d(U[Q],3,v);for(Q=0,R=b.length;R>Q;Q++)if(O=b[Q],S.d(N[O],M[O],v),O>=16){switch(Q++,O){case 16:P=2;break;case 17:P=3;break;case 18:P=7;break;default:a("invalid code: "+O)}S.d(b[Q],P,v)}var ea,fa,ga,ha,ia,ja,ka,la,ma=[J,I],na=[L,K];for(ia=ma[0],ja=ma[1],ka=na[0],la=na[1],ea=0,fa=C.length;fa>ea;++ea)if(ga=C[ea],S.d(ia[ga],ja[ga],v),ga>256)S.d(C[++ea],C[++ea],v),ha=C[++ea],S.d(ka[ha],la[ha],v),S.d(C[++ea],C[++ea],v);else if(256===ga)break;this.a=S.finish(),this.b=this.a.length;break;default:a("invalid compression type")}return this.a};var I=function(){function b(b){switch(v){case 3===b:return[257,b-3,0];case 4===b:return[258,b-4,0];case 5===b:return[259,b-5,0];case 6===b:return[260,b-6,0];case 7===b:return[261,bLine truncated
d.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],d.prototype.NN=16,d.prototype._clean=function(a){if(0>a){var b=2147483647&a;a=b+2147483648}return a},d.prototype._F=function(a){var b,c,d,e,f;return e=255&a,a>>>=8,d=255&a,a>>>=8,c=255&a,a>>>=8,b=255&a,f=this.sboxes[0][b]+this.sboxes[1][c],f^=this.sboxes[2][d],f+=this.sboxes[3][e]},d.prototype._encrypt_block=function(a){var b,c=a[0],d=a[1];for(b=0;b<this.NN;++b){c^=this.parray[b],d=this._F(c)^d;var e=c;c=d,d=e}c^=this.parray[this.NN+0],d^=this.parray[this.NN+1],a[0]=this._clean(d),a[1]=this._clean(c)},d.prototype.encrypt_block=function(a){var b,c=[0,0],d=this.BLOCKSIZE/2;for(b=0;b<this.BLOCKSIZE/2;++b)c[0]=c[0]<<8|255&a[b+0],c[1]=c[1]<<8|255&a[b+d];this._encrypt_block(c);var e=[];for(b=0;b<this.BLOCKSIZE/2;++b)e[b+0]=c[0]>>>24-8*b&255,e[b+d]=c[1]>>>24-8*b&255;return e},d.prototype._decrypt_block=function(a){var b,c=a[0],d=a[1];for(b=this.NN+1;b>1;--b){c^=this.parray[b],d=this._F(c)^d;var e=c;c=d,d=e}c^=this.parray[1],d^=this.parray[0],a[0]=this._clean(d),a[1]=this._clean(c)},d.prototype.init=function(a){var b,c=0;for(this.parray=[],b=0;b<this.NN+2;++b){var d,e=0;for(d=0;4>d;++d)e=e<<8|255&a[c],++c>=a.length&&(c=0);this.parray[b]=this.PARRAY[b]^e}for(this.sboxes=[],b=0;4>b;++b)for(this.sboxes[b]=[],c=0;256>c;++c)this.sboxes[b][c]=this.SBOXES[b][c];var f=[0,0];for(b=0;b<this.NN+2;b+=2)this._encrypt_block(f),this.parray[b+0]=f[0],this.parray[b+1]=f[1];for(b=0;4>b;++b)for(c=0;256>c;c+=2)this._encrypt_block(f),this.sboxes[b][c+0]=f[0],this.sboxes[b][c+1]=f[1]};var f=a("../../util.js");b.exports=e,b.exports.keySize=e.prototype.keySize=16,b.exports.blockSize=e.prototype.blockSize=16},{"../../util.js":76}],21:[function(a,b,c){function d(){function a(a,b,c){var d=b+a,e=d<<c|d>>>32-c;return(f[0][e>>>24]^f[1][e>>>16&255])-f[2][e>>>8&255]+f[3][255&e]}function b(a,b,c){var d=b^a,e=d<<c|d>>>32-c;return f[0][e>>>24]-f[1][e>>>16&255]+f[2][e>>>8&255]^f[3][255&e]}function c(a,b,c){var d=b-a,e=d<<c|d>>>32-c;return(f[0][e>>>24]+f[1][e>>>16&255]^f[2][e>>>8&255])-f[3][255&e]}this.BlockSize=8,this.KeySize=16,this.setKey=function(a){if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),a.length!=this.KeySize)throw new Error("CAST-128: keys must be 16 bytes");return this.keySchedule(a),!0},this.reset=function(){for(var a=0;16>a;a++)this.masking[a]=0,this.rotate[a]=0},this.getBlockSize=function(){return BlockSize},this.encrypt=function(d){for(var e=new Array(d.length),f=0;f<d.length;f+=8){var g,h=d[f]<<24|d[f+1]<<16|d[f+2]<<8|d[f+3],i=d[f+4]<<24|d[f+5]<<16|d[f+6]<<8|d[f+7];g=i,i=h^a(i,this.masking[0],this.rotate[0]),h=g,g=i,i=h^b(i,this.masking[1],this.rotate[1]),h=g,g=i,i=h^c(i,this.masking[2],this.rotate[2]),h=g,g=i,i=h^a(i,this.masking[3],this.rotate[3]),h=g,g=i,i=h^b(i,this.masking[4],this.rotate[4]),h=g,g=i,i=h^c(i,this.masking[5],this.rotate[5]),h=g,g=i,i=h^a(i,this.masking[6],this.rotate[6]),h=g,g=i,i=h^b(i,this.masking[7],this.rotate[7]),h=g,g=i,i=h^c(i,this.masking[8],this.rotate[8]),h=g,g=i,i=h^a(i,this.masking[9],this.rotate[9]),h=g,g=i,i=h^b(i,this.masking[10],this.rotate[10]),h=g,g=i,i=h^c(i,this.masking[11],this.rotate[11]),h=g,g=i,i=h^a(i,this.masking[12],this.rotate[12]),h=g,g=i,i=h^b(i,this.masking[13],this.rotate[13]),h=g,g=i,i=h^c(i,this.masking[14],this.rotate[14]),h=g,g=i,i=h^a(i,this.masking[15],this.rotate[15]),h=g,e[f]=i>>>24&255,e[f+1]=i>>>16&255,e[f+2]=i>>>8&255,e[f+3]=255&i,e[f+4]=h>>>24&255,e[f+5]=h>>>16&255,e[f+6]=h>>>8&255,e[f+7]=255&h}return e},this.decrypt=function(d){for(var e=new Array(d.length),f=0;f<d.length;f+=8){var g,h=d[f]<<24|d[f+1]<<16|d[f+2]<<8|d[f+3],i=d[f+4]<<24|d[f+5]<<16|d[f+6]<<8|d[f+7];g=i,i=h^a(i,this.masking[15],this.rotate[15]),h=g,g=i,i=h^c(i,this.masking[14],this.rotate[14]),h=g,g=i,i=h^b(i,this.masking[13],this.rotate[13]),h=g,g=i,i=h^a(i,this.masking[12],this.rotate[12]),h=g,g=i,i=h^c(i,this.masking[11],this.rotate[11]),h=g,g=i,i=h^b(i,this.masking[10],this.rotate[10]),h=g,g=i,i=h^a(i,this.masking[9],this.rotate[9]),h=g,g=i,i=h^c(i,this.masking[8],this.rotate[8]),h=g,g=i,i=h^b(i,this.masking[7],this.rotate[7]),h=g,g=i,i=h^a(i,this.masking[6],this.rotate[6]),h=g,g=i,i=h^c(i,this.masking[5],this.rotate[5]),h=g,g=i,i=h^b(i,this.masking[4],this.rotate[4]),h=g,g=i,i=h^a(i,this.masking[3],this.rotate[3]),h=g,g=i,i=h^c(i,this.masking[2],this.rotate[2]),h=g,g=i,i=h^b(i,this.masking[1],this.rotate[1]),h=g,g=i,i=h^a(i,this.masking[0],this.rotate[0]),h=g,e[f]=i>>>24&255,e[f+1]=i>>>16&255,e[f+2]=i>>>8&255,e[f+3]=255&i,e[f+4]=h>>>24&255,e[f+5]=h>>16&255,e[f+6]=h>>8&255,e[f+7]=255&h}return e};var d=new Array(4);d[0]=new Array(4),d[0][0]=new Array(4,0,13,15,12,14,8),d[0][1]=new Array(5,2,16,18,17,19,10),d[0][2]=new Array(6,3,23,22,21,20,9),d[0][3]=new Array(7,1,26,25,27,24,11),d[1]=new Array(4),d[1][0]=new Array(0,6,21,23,20,22,16),d[1][1]=new Array(1,4,0,2,1,3,18),d[1]Line truncated
p=3==H?c?new Array(0,32,2):new Array(30,-2,-2):c?new Array(0,32,2,62,30,-2,64,96,2):new Array(94,62,-2,32,64,2,30,-2,-2),c&&(b=f(b,h),F=b.length);var I="",J="";for(1==d&&(q=e.charCodeAt(E++)<<24|e.charCodeAt(E++)<<16|e.charCodeAt(E++)<<8|e.charCodeAt(E++),s=e.charCodeAt(E++)<<24|e.charCodeAt(E++)<<16|e.charCodeAt(E++)<<8|e.charCodeAt(E++),E=0);F>E;){for(n=b.charCodeAt(E++)<<24|b.charCodeAt(E++)<<16|b.charCodeAt(E++)<<8|b.charCodeAt(E++),o=b.charCodeAt(E++)<<24|b.charCodeAt(E++)<<16|b.charCodeAt(E++)<<8|b.charCodeAt(E++),1==d&&(c?(n^=q,o^=s):(r=q,t=s,q=n,s=o)),k=252645135&(n>>>4^o),o^=k,n^=k<<4,k=65535&(n>>>16^o),o^=k,n^=k<<16,k=858993459&(o>>>2^n),n^=k,o^=k<<2,k=16711935&(o>>>8^n),n^=k,o^=k<<8,k=1431655765&(n>>>1^o),o^=k,n^=k<<1,n=n<<1|n>>>31,o=o<<1|o>>>31,j=0;H>j;j+=3){for(u=p[j+1],v=p[j+2],i=p[j];i!=u;i+=v)l=o^a[i],m=(o>>>4|o<<28)^a[i+1],k=n,n=o,o=k^(x[l>>>24&63]|z[l>>>16&63]|B[l>>>8&63]|D[63&l]|w[m>>>24&63]|y[m>>>16&63]|A[m>>>8&63]|C[63&m]);k=n,n=o,o=k}n=n>>>1|n<<31,o=o>>>1|o<<31,k=1431655765&(n>>>1^o),o^=k,n^=k<<1,k=16711935&(o>>>8^n),n^=k,o^=k<<8,k=858993459&(o>>>2^n),n^=k,o^=k<<2,k=65535&(n>>>16^o),o^=k,n^=k<<16,k=252645135&(n>>>4^o),o^=k,n^=k<<4,1==d&&(c?(q=n,s=o):(n^=r,o^=t)),J+=String.fromCharCode(n>>>24,n>>>16&255,n>>>8&255,255&n,o>>>24,o>>>16&255,o>>>8&255,255&o),G+=8,512==G&&(I+=J,J="",G=0)}return I+=J,c||(I=g(I,h)),I}function e(a){for(var b,c,d,e=new Array(0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964),f=new Array(0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697),g=new Array(0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272),h=new Array(0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144),i=new Array(0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256),j=new Array(0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488),k=new Array(0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746),l=new Array(0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568),m=new Array(0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578),n=new Array(0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488),o=new Array(0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800),p=new Array(0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744),q=new Array(0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128),r=new Array(0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261),s=a.length>8?3:1,t=new Array(32*s),u=new Array(0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0),v=0,w=0,x=0;s>x;x++){var y=a.charCodeAt(v++)<<24|a.charCodeAt(v++)<<16|a.charCodeAt(v++)<<8|a.charCodeAt(v++),z=a.charCodeAt(v++)<<24|a.charCodeAt(v++)<<16|a.charCodeAt(v++)<<8|a.charCodeAt(v++);d=252645135&(y>>>4^z),z^=d,y^=d<<4,d=65535&(z>>>-16^y),y^=d,z^=d<<-16,d=858993459&(y>>>2^z),z^=d,y^=d<<2,d=65535&(z>>>-16^y),y^=d,z^=d<<-16,d=1431655765&(y>>>1^z),z^=d,y^=d<<1,d=16711935&(z>>>8^y),y^=d,z^=d<<8,d=1431655765&(y>>>1^z),z^=d,y^=d<<1,d=y<<8|z>>>20&240,y=z<<24|z<<8&16711680|z>>>8&65280|z>>>24&240,z=d;for(var A=0;A<u.length;A++)u[A]?(y=y<<2|y>>>26,z=z<<2|z>>>26):(y=y<<1|y>>>27,z=z<<1|z>>>27),y&=-15,z&=-15,b=e[y>>>28]|f[y>>>24&15]|g[y>>>20&15]|h[y>>>16&15]|i[y>>>12&15]|j[y>>>8&15]|k[y>>>4&15],c=l[z>>>28]|m[z>>>24&15]|n[z>>>20&15]|o[z>>>16&15]|p[z>>>12&15]|q[z>>>8&15]|r[z>>>4&15],d=65535&(c>>>16^b),t[w++]=b^d,t[w++]=c^d<<16}return t}function f(a,b){var c=8-a.length%8;return 2==b&&8>c?a+=" ".substr(0,c):1==b?a+=String.fromCharCode(c,c,c,c,c,c,c,c).substr(0,c):!b&&8>c&&(a+="\x00\x00\x00\x00\x00\x00\x00\x00".substr(0,c)),a}function g(a,b){if(2==b)a=a.replace(/ *$/g,"");else if(1==b){var c=a.charCodeAt(a.length-1);a=a.substr(0,a.length-c)}else b||(a=a.replace(/\0*$/g,""));return a}function h(a){this.key=[];for(var b=0;3>b;b++)this.key.push(a.substr(8*b,8));this.encrypt=function(a){return j.str2bin(d(e(this.key[2]),d(e(this.key[1]),d(e(this.key[0]),j.bin2str(a),!0,0,null,null),!1,0,null,null),!0,0,null,null))}}function i(a){this.key=a,this.encrypt=function(a,b){var c=e(this.key);return j.str2bin(d(c,j.bin2str(a),!0,0,null,b))},this.decrypt=function(a,b){var c=e(this.key);return j.str2bin(d(c,j.bin2str(a),!1,0,null,b))}}var j=a("../../util.js");h.keySize=h.prototype.keySize=24,h.blockSize=h.prototype.blockSize=8,b.exports={des:h,originalDes:i}},{"../../util.js":76}],23:[function(a,b,c){var d=a("./des.js");b.exports={deLine truncated
var f,g,h,i;return f=(65535&a.lowOrder)+(65535&b.lowOrder)+(65535&c.lowOrder)+(65535&e.lowOrder),g=(a.lowOrder>>>16)+(b.lowOrder>>>16)+(c.lowOrder>>>16)+(e.lowOrder>>>16)+(f>>>16),h=(65535&g)<<16|65535&f,f=(65535&a.highOrder)+(65535&b.highOrder)+(65535&c.highOrder)+(65535&e.highOrder)+(g>>>16),g=(a.highOrder>>>16)+(b.highOrder>>>16)+(c.highOrder>>>16)+(e.highOrder>>>16)+(f>>>16),i=(65535&g)<<16|65535&f,new d(i,h)},G=function(a,b,c,e,f){var g,h,i,j;return g=(65535&a.lowOrder)+(65535&b.lowOrder)+(65535&c.lowOrder)+(65535&e.lowOrder)+(65535&f.lowOrder),h=(a.lowOrder>>>16)+(b.lowOrder>>>16)+(c.lowOrder>>>16)+(e.lowOrder>>>16)+(f.lowOrder>>>16)+(g>>>16),i=(65535&h)<<16|65535&g,g=(65535&a.highOrder)+(65535&b.highOrder)+(65535&c.highOrder)+(65535&e.highOrder)+(65535&f.highOrder)+(h>>>16),h=(a.highOrder>>>16)+(b.highOrder>>>16)+(c.highOrder>>>16)+(e.highOrder>>>16)+(f.highOrder>>>16)+(g>>>16),j=(65535&h)<<16|65535&g,new d(j,i)},H=function(a,b){var c,d,e,f,g,h,i,k,l,m=[],n=p,q=o,s=r,t=j,u=B,v=D,w=[1732584193,4023233417,2562383102,271733878,3285377520],x=[1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1518500249,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,1859775393,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,2400959708,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782,3395469782];for(a[b>>5]|=128<<24-b%32,a[(b+65>>9<<4)+15]=b,l=a.length,i=0;l>i;i+=16){for(c=w[0],d=w[1],e=w[2],f=w[3],g=w[4],k=0;80>k;k+=1)16>k?m[k]=a[k+i]:m[k]=t(m[k-3]^m[k-8]^m[k-14]^m[k-16],1),h=20>k?v(t(c,5),n(d,e,f),g,x[k],m[k]):40>k?v(t(c,5),q(d,e,f),g,x[k],m[k]):60>k?v(t(c,5),s(d,e,f),g,x[k],m[k]):v(t(c,5),q(d,e,f),g,x[k],m[k]),g=f,f=e,e=t(d,30),d=c,c=h;w[0]=u(c,w[0]),w[1]=u(d,w[1]),w[2]=u(e,w[2]),w[3]=u(f,w[3]),w[4]=u(g,w[4])}return w},I=function(a,b,c){var e,f,g,h,i,j,k,l,m,n,o,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z=[];for("SHA-224"===c||"SHA-256"===c?(H=64,I=(b+65>>9<<4)+15,L=16,M=1,W=Number,N=B,O=C,P=D,Q=x,R=z,S=t,T=v,V=r,U=p,X=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o="SHA-224"===c?[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]:[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]):("SHA-384"===c||"SHA-512"===c)&&(H=80,I=(b+128>>10<<5)+31,L=32,M=2,W=d,N=E,O=F,P=G,Q=y,R=A,S=u,T=w,V=s,U=q,X=[new W(1116352408,3609767458),new W(1899447441,602891725),new W(3049323471,3964484399),new W(3921009573,2173295548),new W(961987163,4081628472),new W(1508970993,3053834265),new W(2453635748,2937671579),new W(2870763221,3664609560),new W(3624381080,2734883394),new W(310598401,1164996542),new W(607225278,1323610764),new W(1426881987,3590304994),new W(1925078388,4068182383),new W(2162078206,991336113),new W(2614888103,633803317),new W(3248222580,3479774868),new W(3835390401,2666613458),new W(4022224774,944711139),new W(264347078,2341262773),new W(604807628,2007800933),new W(770255983,1495990901),new W(1249150122,1856431235),new W(1555081692,3175218132),new W(1996064986,2198950837),new W(2554220882,3999719339),new W(2821834349,766784016),new W(2952996808,2566594879),new W(3210313671,3203337956),new W(3336571891,1034457026),new W(3584528711,2466948901),new W(113926993,3758326383),new W(338241895,168717936),new W(666307205,1188179964),new W(773529912,1546045734),new W(1294757372,1522805485),new W(1396182291,2643833823),new W(1695183700,2343527390),new W(1986661051,1014477480),new W(2177026350,1206759142),new W(2456956037,344077627),new W(2730485921,1290863460),new W(2820302411,3158454273),new W(3259730800,3505952657),new W(3345764771,106217008),new W(3516065817,3606008344),new W(3600352804,1432725776),new W(4094571909,1467031594),new W(275423344,851169720),new W(430227734,3100823752),new W(506948616,1363258195),nLine truncated
}this.nextBytes=a}function e(a,b,c){return m=m.bitLength()===b.bitLength()?m.square().mod(b):j.getRandomBigIntegerInRange(h.TWO,b),l=m.modInverse(b).modPow(c,b),a.multiply(l).mod(b)}function f(a,b){return a.multiply(m).mod(b)}function g(){function a(a,b,c,d,g,j,l){k.rsa_blinding&&(a=e(a,b,c));var m=a.mod(g).modPow(d.mod(g.subtract(h.ONE)),g),n=a.mod(j).modPow(d.mod(j.subtract(h.ONE)),j);i.print_debug("rsa.js decrypt\nxpn:"+i.hexstrdump(m.toMPI())+"\nxqn:"+i.hexstrdump(n.toMPI()));var o=n.subtract(m);return 0===o[0]?(o=m.subtract(n),o=o.multiply(l).mod(j),o=j.subtract(o)):o=o.multiply(l).mod(j),o=o.multiply(g).add(m),k.rsa_blinding&&(o=f(o,b)),o}function b(a,b,c){return a.modPowInt(b,c)}function c(a,b,c){return a.modPow(b,c)}function g(a,b,c){return a.modPowInt(b,c)}function j(){this.n=null,this.e=0,this.ee=null,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.u=null}function l(a,b){function c(a){var b=g.exportKey("jwk",a.privateKey);return"function"!=typeof b.then&&(b=f(b,"Error exporting RSA key pair.")),b}function e(a){function c(a){var b=a.replace(/\-/g,"+").replace(/_/g,"/"),c=i.hexstrdump(atob(b));return new h(c,16)}var d=new j;return d.n=c(a.n),d.ee=new h(b,16),d.d=c(a.d),d.p=c(a.p),d.q=c(a.q),d.u=d.p.modInverse(d.q),d}function f(a,b){return new Promise(function(c,d){a.onerror=function(a){d(new Error(b))},a.oncomplete=function(a){c(a.target.result)}})}var g=i.getWebCrypto();if(g){var k,l,m=new Uint32Array([parseInt(b,16)]),n=new Uint8Array(m.buffer);return window.crypto&&window.crypto.webkitSubtle?(k={name:"RSA-OAEP",modulusLength:a,publicExponent:n.subarray(0,3)},l=g.generateKey(k,!0,["encrypt","decrypt"])):(k={name:"RSASSA-PKCS1-v1_5",modulusLength:a,publicExponent:n.subarray(0,3),hash:{name:"SHA-1"}},l=g.generateKey(k,!0,["sign","verify"]),"function"!=typeof l.then&&(l=f(l,"Error generating RSA key pair."))),l.then(c).then(function(a){return e(a instanceof ArrayBuffer?JSON.parse(String.fromCharCode.apply(null,new Uint8Array(a))):a)})}return new Promise(function(c){var e=new j,f=new d,g=a>>1;for(e.e=parseInt(b,16),e.ee=new h(b,16);;){for(;e.p=new h(a-g,1,f),0!==e.p.subtract(h.ONE).gcd(e.ee).compareTo(h.ONE)||!e.p.isProbablePrime(10););for(;e.q=new h(g,1,f),0!==e.q.subtract(h.ONE).gcd(e.ee).compareTo(h.ONE)||!e.q.isProbablePrime(10););if(e.p.compareTo(e.q)<=0){var i=e.p;e.p=e.q,e.q=i}var k=e.p.subtract(h.ONE),l=e.q.subtract(h.ONE),m=k.multiply(l);if(0===m.gcd(e.ee).compareTo(h.ONE)){e.n=e.p.multiply(e.q),e.d=e.ee.modInverse(m),e.dmp1=e.d.mod(k),e.dmq1=e.d.mod(l),e.u=e.p.modInverse(e.q);break}}c(e)})}this.encrypt=b,this.decrypt=a,this.verify=g,this.sign=c,this.generate=l,this.keyObject=j}var h=a("./jsbn.js"),i=a("../../util.js"),j=a("../random.js"),k=a("../../config"),l=h.ZERO,m=h.ZERO;b.exports=g},{"../../config":17,"../../util.js":76,"../random.js":39,"./jsbn.js":37}],39:[function(a,b,c){function d(){this.buffer=null,this.size=null}var e=a("../type/mpi.js"),f=null;"undefined"==typeof window&&(f=a("crypto")),b.exports={getRandomBytes:function(a){for(var b="",c=0;a>c;c++)b+=String.fromCharCode(this.getSecureRandomOctet());return b},getSecureRandom:function(a,b){for(var c=this.getSecureRandomUint(),d=(b-a).toString(2).length;(c&Math.pow(2,d)-1)>b-a;)c=this.getSecureRandomUint();return a+Math.abs(c&Math.pow(2,d)-1)},getSecureRandomOctet:function(){var a=new Uint8Array(1);return this.getRandomValues(a),a[0]},getSecureRandomUint:function(){var a=new Uint8Array(4),b=new DataView(a.buffer);return this.getRandomValues(a),b.getUint32(0)},getRandomValues:function(a){if(!(a instanceof Uint8Array))throw new Error("Invalid type: buf not an Uint8Array");if("undefined"!=typeof window&&window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(a);else if("undefined"!=typeof window&&"object"==typeof window.msCrypto&&"function"==typeof window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(a);else if(f){var b=f.randomBytes(a.length);a.set(b)}else{if(!this.randomBuffer.buffer)throw new Error("No secure random number generator available.");this.randomBuffer.get(a)}},getRandomBigInteger:function(a){if(1>a)throw new Error("Illegal parameter value: bits < 1");var b=Math.floor((a+7)/8),c=this.getRandomBytes(b);a%8>0&&(c=String.fromCharCode(Math.pow(2,a%8)-1&c.charCodeAt(0))+c.substring(1));var d=new e;return d.fromBytes(c),d.toBigInteger()},getRandomBigIntegerInRange:function(a,b){if(b.compareTo(a)<=0)throw new Error("Illegal parameter value: max <= min");for(var c=b.subtract(a),d=this.getRandomBigInteger(c.bitLength());d.compareTo(c)>0;)d=this.getRandomBigInteger(c.bitLength());return a.add(d)},randomBuffer:new d},d.prototype.init=function(a){this.buffer=new Uint8Array(a),this.size=0},d.prototype.set=function(a){if(!this.buffer)throw new Error("RandomBuffer is not initialized");if(!(a instanceof Uint8Array))throw new Error("Invalid type: buf not an Uint8Array");var b=this.buffer.length-this.size;a.length>b&&(a=a.subarray(0,b)),this.buffer.set(a,this.size),this.size+=a.length}Line truncated
key:a})){if(!this.selfCertifications[c].isExpired()){b=o.keyStatus.valid;break}b=o.keyStatus.expired}else b=o.keyStatus.invalid;return b},i.prototype.update=function(a,b){var c=this;h(a,this,"selfCertifications",function(a){return a.verified||a.verify(b,{userid:c.userId||c.userAttribute,key:b})}),h(a,this,"otherCertifications"),h(a,this,"revocationCertifications")},j.prototype.toPacketlist=function(){var a=new n.List;return a.push(this.subKey),a.push(this.revocationSignature),a.push(this.bindingSignature),a},j.prototype.isValidEncryptionKey=function(a){return this.verify(a)==o.keyStatus.valid&&e(this.subKey,this.bindingSignature)},j.prototype.isValidSigningKey=function(a){return this.verify(a)==o.keyStatus.valid&&f(this.subKey,this.bindingSignature)},j.prototype.verify=function(a){return this.revocationSignature&&!this.revocationSignature.isExpired()&&(this.revocationSignature.verified||this.revocationSignature.verify(a,{key:a,bind:this.subKey}))?o.keyStatus.revoked:3==this.subKey.version&&0!==this.subKey.expirationTimeV3&&Date.now()>this.subKey.created.getTime()+24*this.subKey.expirationTimeV3*3600*1e3?o.keyStatus.expired:this.bindingSignature?this.bindingSignature.isExpired()?o.keyStatus.expired:this.bindingSignature.verified||this.bindingSignature.verify(a,{key:a,bind:this.subKey})?4==this.subKey.version&&this.bindingSignature.keyNeverExpires===!1&&Date.now()>this.subKey.created.getTime()+1e3*this.bindingSignature.keyExpirationTime?o.keyStatus.expired:o.keyStatus.valid:o.keyStatus.invalid:o.keyStatus.invalid},j.prototype.getExpirationTime=function(){return g(this.subKey,this.bindingSignature)},j.prototype.update=function(a,b){if(a.verify(b)!==o.keyStatus.invalid){if(this.subKey.getFingerprint()!==a.subKey.getFingerprint())throw new Error("SubKey update method: fingerprints of subkeys not equal");this.subKey.tag===o.packet.publicSubkey&&a.subKey.tag===o.packet.secretSubkey&&(this.subKey=a.subKey),!this.bindingSignature&&a.bindingSignature&&(a.bindingSignature.verified||a.bindingSignature.verify(b,{key:b,bind:this.subKey}))&&(this.bindingSignature=a.bindingSignature),this.revocationSignature||!a.revocationSignature||a.revocationSignature.isExpired()||!a.revocationSignature.verified&&!a.revocationSignature.verify(b,{key:b,bind:this.subKey})||(this.revocationSignature=a.revocationSignature)}},c.Key=d,c.readArmored=k,c.generate=l,c.getPreferredSymAlgo=m},{"./config":17,"./encoding/armor.js":41,"./enums.js":43,"./packet":55,"./util":76}],48:[function(a,b,c){b.exports=a("./keyring.js"),b.exports.localstore=a("./localstore.js")},{"./keyring.js":49,"./localstore.js":50}],49:[function(a,b,c){function d(b){this.storeHandler=b||new(a("./localstore.js")),this.publicKeys=new e(this.storeHandler.loadPublic()),this.privateKeys=new e(this.storeHandler.loadPrivate())}function e(a){this.keys=a}function f(a,b){a=a.toLowerCase();for(var c=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=new RegExp("<"+c+">"),e=b.getUserIds(),f=0;f<e.length;f++){var g=e[f].toLowerCase();if(a===g||d.test(g))return!0}return!1}function g(a,b){return 16===a.length?a===b.getKeyId().toHex():a===b.getFingerprint()}var h=(a("../enums.js"),a("../key.js"));a("../util.js");b.exports=d,d.prototype.store=function(){this.storeHandler.storePublic(this.publicKeys.keys),this.storeHandler.storePrivate(this.privateKeys.keys)},d.prototype.clear=function(){this.publicKeys.keys=[],this.privateKeys.keys=[]},d.prototype.getKeysForId=function(a,b){var c=[];return c=c.concat(this.publicKeys.getForId(a,b)||[]),c=c.concat(this.privateKeys.getForId(a,b)||[]),c.length?c:null},d.prototype.removeKeysForId=function(a){var b=[];return b=b.concat(this.publicKeys.removeForId(a)||[]),b=b.concat(this.privateKeys.removeForId(a)||[]),b.length?b:null},d.prototype.getAllKeys=function(){return this.publicKeys.keys.concat(this.privateKeys.keys)},e.prototype.getForAddress=function(a){for(var b=[],c=0;c<this.keys.length;c++)f(a,this.keys[c])&&b.push(this.keys[c]);return b},e.prototype.getForId=function(a,b){for(var c=0;c<this.keys.length;c++){if(g(a,this.keys[c].primaryKey))return this.keys[c];if(b&&this.keys[c].subKeys)for(var d=0;d<this.keys[c].subKeys.length;d++)if(g(a,this.keys[c].subKeys[d].subKey))return this.keys[c]}return null},e.prototype.importKey=function(a){var b=h.readArmored(a),c=this;return b.keys.forEach(function(a){var b=a.primaryKey.getKeyId().toHex(),d=c.getForId(b);d?d.update(a):c.push(a)}),b.err?b.err:null},e.prototype.push=function(a){return this.keys.push(a)},e.prototype.removeForId=function(a){for(var b=0;b<this.keys.length;b++)if(g(a,this.keys[b].primaryKey))return this.keys.splice(b,1)[0];return null}},{"../enums.js":43,"../key.js":47,"../util.js":76,"./localstore.js":50}],50:[function(a,b,c){function d(b){b=b||"openpgp-",this.publicKeysItem=b+this.publicKeysItem,this.privateKeysItem=b+this.privateKeysItem,"undefined"!=typeof window&&window.localStorage?this.storage=window.localStorage:this.storage=new(a("node-localstorage").LocalStorage)(g.node_store)}function e(a,b)Line truncated
this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyId=new k,this.notation=null,this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserId=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.verified=!1}function e(a,b){var c="";return c+=g.writeSimpleLength(b.length+1),c+=String.fromCharCode(a),c+=b}b.exports=d;var f=a("../util.js"),g=a("./packet.js"),h=a("../enums.js"),i=a("../crypto"),j=a("../type/mpi.js"),k=a("../type/keyid.js");d.prototype.read=function(a){function b(a){for(var b=f.readNumber(a.substr(0,2)),c=2;2+b>c;){var d=g.readSimpleLength(a.substr(c));c+=d.offset,this.read_sub_packet(a.substr(c,d.len)),c+=d.len}return c}var c=0;switch(this.version=a.charCodeAt(c++),this.version){case 3:5!=a.charCodeAt(c++)&&f.print_debug("packet/signature.js\ninvalid One-octet length of following hashed material.MUST be 5. @:"+(c-1));var d=c;this.signatureType=a.charCodeAt(c++),this.created=f.readDate(a.substr(c,4)),c+=4,this.signatureData=a.substring(d,c),this.issuerKeyId.read(a.substring(c,c+8)),c+=8,this.publicKeyAlgorithm=a.charCodeAt(c++),this.hashAlgorithm=a.charCodeAt(c++);break;case 4:this.signatureType=a.charCodeAt(c++),this.publicKeyAlgorithm=a.charCodeAt(c++),this.hashAlgorithm=a.charCodeAt(c++),c+=b.call(this,a.substr(c),!0),this.signatureData=a.substr(0,c);var e=c;c+=b.call(this,a.substr(c),!1),this.unhashedSubpackets=a.substr(e,c-e);break;default:throw new Error("Version "+this.version+" of the signature is unsupported.")}this.signedHashValue=a.substr(c,2),c+=2,this.signature=a.substr(c)},d.prototype.write=function(){var a="";switch(this.version){case 3:a+=String.fromCharCode(3),a+=String.fromCharCode(5),a+=this.signatureData,a+=this.issuerKeyId.write(),a+=String.fromCharCode(this.publicKeyAlgorithm),a+=String.fromCharCode(this.hashAlgorithm);break;case 4:a+=this.signatureData,a+=this.unhashedSubpackets?this.unhashedSubpackets:f.writeNumber(0,2)}return a+=this.signedHashValue+this.signature},d.prototype.sign=function(a,b){var c=h.write(h.signature,this.signatureType),d=h.write(h.publicKey,this.publicKeyAlgorithm),e=h.write(h.hash,this.hashAlgorithm),f=String.fromCharCode(4);f+=String.fromCharCode(c),f+=String.fromCharCode(d),f+=String.fromCharCode(e),this.issuerKeyId=a.getKeyId(),f+=this.write_all_sub_packets(),this.signatureData=f;var g=this.calculateTrailer(),j=this.toSign(c,b)+this.signatureData+g,k=i.hash.digest(e,j);this.signedHashValue=k.substr(0,2),this.signature=i.signature.sign(e,d,a.mpi,j)},d.prototype.write_all_sub_packets=function(){var a=h.signatureSubpacket,b="",c="";if(null!==this.created&&(b+=e(a.signature_creation_time,f.writeDate(this.created))),null!==this.signatureExpirationTime&&(b+=e(a.signature_expiration_time,f.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&(b+=e(a.exportable_certification,String.fromCharCode(this.exportable?1:0))),null!==this.trustLevel&&(c=String.fromCharCode(this.trustLevel)+String.fromCharCode(this.trustAmount),b+=e(a.trust_signature,c)),null!==this.regularExpression&&(b+=e(a.regular_expression,this.regularExpression)),null!==this.revocable&&(b+=e(a.revocable,String.fromCharCode(this.revocable?1:0))),null!==this.keyExpirationTime&&(b+=e(a.key_expiration_time,f.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(c=f.bin2str(this.preferredSymmetricAlgorithms),b+=e(a.preferred_symmetric_algorithms,c)),null!==this.revocationKeyClass&&(c=String.fromCharCode(this.revocationKeyClass),c+=String.fromCharCode(this.revocationKeyAlgorithm),c+=this.revocationKeyFingerprint,b+=e(a.revocation_key,c)),this.issuerKeyId.isNull()||(b+=e(a.issuer,this.issuerKeyId.write())),null!==this.notation)for(var d in this.notation)if(this.notation.hasOwnProperty(d)){var g=this.notation[d];c=String.fromCharCode(128),c+=String.fromCharCode(0),c+=String.fromCharCode(0),c+=String.fromCharCode(0),c+=f.writeNumber(d.length,2),c+=f.writeNumber(g.length,2),c+=d+g,b+=e(a.notation_data,c)}return null!==this.preferredHashAlgorithms&&(c=f.bin2str(this.preferredHashAlgorithms),b+=e(a.preferred_hash_algorithms,c)),null!==this.preferredCompressionAlgorithms&&(c=f.bin2str(this.preferredCompressionAlgorithms),b+=e(a.preferred_compression_algorithms,c)),null!==this.keyServerPreferences&&(c=f.bin2str(this.keyServerPreferences),b+=e(a.key_server_preferences,c)),null!==this.preferredKeyServer&&(b+=e(a.preferred_key_server,this.preferredKeyServer)),null!==this.isPrimaryUserID&&(b+=e(a.primary_user_id,String.fromCharCode(this.isPrimaryUserID?1:0))),null!==this.policyURI&&(b+=e(a.policy_uri,this.policyURI)),null!==this.Line truncated
@@ -0,0 +1,226 @@
/*** Style for Enigma plugin ***/
/***** Messages displaying *****/
#enigma-message,
/* fixes border-top */
#messagebody div #enigma-message
{
margin: 0;
margin-bottom: 5px;
min-height: 20px;
padding: 10px 10px 6px 46px;
}
div.enigmaerror,
/* fixes border-top */
#messagebody div.enigmaerror
{
background: url(enigma_error.png) 6px 1px no-repeat;
background-color: #EF9398;
border: 1px solid #DC5757;
}
div.enigmanotice,
/* fixes border-top */
#messagebody div.enigmanotice
{
background: url(enigma.png) 6px 1px no-repeat;
background-color: #A6EF7B;
border: 1px solid #76C83F;
}
div.enigmawarning,
/* fixes border-top */
#messagebody div.enigmawarning
{
background: url(enigma.png) 6px 1px no-repeat;
background-color: #F7FDCB;
border: 1px solid #C2D071;
}
#enigma-message a
{
color: #666666;
padding-left: 10px;
}
#enigma-message a:hover
{
color: #333333;
}
p.enigmaattachment
{
margin: 0.5em 1em;
border: 1px solid #999;
border-radius: 4px;
width: auto;
}
p.enigmaattachment a
{
display: block;
background: url(key_add.png) 10px center no-repeat;
padding: 1em 0.5em 1em 50px;
}
/***** E-mail Compose Page *****/
#messagetoolbar a.button.enigma {
text-indent: -5000px;
background: url(enigma.png) 0 0 no-repeat;
}
/***** Keys/Certs Management *****/
#mainscreen.enigma
{
top: 80px;
}
div.enigmascreen
{
position: absolute;
top: 40px;
right: 0;
bottom: 0;
left: 0;
}
.enigma #quicksearchbar
{
top: 10px;
right: 0;
}
#enigmacontent-box
{
position: absolute;
top: 0px;
left: 290px;
right: 0px;
bottom: 0px;
border: 1px solid #999999;
overflow: hidden;
}
#enigmakeyslist
{
position: absolute;
top: 0;
bottom: 0;
left: 0;
border: 1px solid #999999;
background-color: #F9F9F9;
overflow: hidden;
}
#keylistcountbar
{
margin-top: 4px;
margin-left: 4px;
}
#keys-table
{
width: 100%;
table-layout: fixed;
}
#keys-table td
{
cursor: default;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
#key-details table td.title
{
font-weight: bold;
text-align: right;
}
#key-details table {
width: 100%;
}
#key-details table td,
#key-details table th {
border: 0;
}
#keyimportform fieldset div {
color: #666;
padding: 5px 0px;
}
#keycreateform td > label {
display: block;
}
#keystoolbar
{
position: absolute;
top: 0;
left: 10px;
height: 35px;
}
#keystoolbar a
{
padding-right: 10px;
}
#keystoolbar a.button,
#keystoolbar a.buttonPas,
#keystoolbar span.separator {
display: block;
float: left;
width: 32px;
height: 32px;
padding: 0;
margin: 0 5px;
overflow: hidden;
background: url(keys_toolbar.png) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
#keystoolbar a.buttonPas {
opacity: 0.35;
}
#keystoolbar a.createSel {
background-position: 0 -32px;
}
#keystoolbar a.create {
background-position: 0 0;
}
#keystoolbar a.importSel {
background-position: -64px -32px;
}
#keystoolbar a.import {
background-position: -64px 0;
}
#keystoolbar a.exportSel {
background-position: -96px -32px;
}
#keystoolbar a.export {
background-position: -96px 0;
}
#keystoolbar a.keymenu {
background-position: -128px 0;
width: 36px;
}
#keystoolbar span.separator {
width: 5px;
background-position: -166px 0;
}
@@ -0,0 +1 @@
#enigma-message,#messagebody div #enigma-message{margin:0;margin-bottom:5px;min-height:20px;padding:10px 10px 6px 46px}div.enigmaerror,#messagebody div.enigmaerror{background:url(enigma_error.png) 6px 1px no-repeat;background-color:#ef9398;border:1px solid #dc5757}div.enigmanotice,#messagebody div.enigmanotice{background:url(enigma.png) 6px 1px no-repeat;background-color:#a6ef7b;border:1px solid #76c83f}div.enigmawarning,#messagebody div.enigmawarning{background:url(enigma.png) 6px 1px no-repeat;background-color:#f7fdcb;border:1px solid #c2d071}#enigma-message a{color:#666;padding-left:10px}#enigma-message a:hover{color:#333}p.enigmaattachment{margin:.5em 1em;border:1px solid #999;border-radius:4px;width:auto}p.enigmaattachment a{display:block;background:url(key_add.png) 10px center no-repeat;padding:1em .5em 1em 50px}#messagetoolbar a.button.enigma{text-indent:-5000px;background:url(enigma.png) 0 0 no-repeat}#mainscreen.enigma{top:80px}div.enigmascreen{position:absolute;top:40px;right:0;bottom:0;left:0}.enigma #quicksearchbar{top:10px;right:0}#enigmacontent-box{position:absolute;top:0;left:290px;right:0;bottom:0;border:1px solid #999;overflow:hidden}#enigmakeyslist{position:absolute;top:0;bottom:0;left:0;border:1px solid #999;background-color:#f9f9f9;overflow:hidden}#keylistcountbar{margin-top:4px;margin-left:4px}#keys-table{width:100%;table-layout:fixed}#keys-table td{cursor:default;text-overflow:ellipsis;-o-text-overflow:ellipsis}#key-details table td.title{font-weight:bold;text-align:right}#key-details table{width:100%}#key-details table td,#key-details table th{border:0}#keyimportform fieldset div{color:#666;padding:5px 0}#keycreateform td>label{display:block}#keystoolbar{position:absolute;top:0;left:10px;height:35px}#keystoolbar a{padding-right:10px}#keystoolbar a.button,#keystoolbar a.buttonPas,#keystoolbar span.separator{display:block;float:left;width:32px;height:32px;padding:0;margin:0 5px;overflow:hidden;background:url(keys_toolbar.png) 0 0 no-repeat transparent;opacity:.99}#keystoolbar a.buttonPas{opacity:.35}#keystoolbar a.createSel{background-position:0 -32px}#keystoolbar a.create{background-position:0 0}#keystoolbar a.importSel{background-position:-64px -32px}#keystoolbar a.import{background-position:-64px 0}#keystoolbar a.exportSel{background-position:-96px -32px}#keystoolbar a.export{background-position:-96px 0}#keystoolbar a.keymenu{background-position:-128px 0;width:36px}#keystoolbar span.separator{width:5px;background-position:-166px 0}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,22 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<div id="keyimport-title" class="boxtitle"><roundcube:label name="enigma.createkeys" /></div>
<div id="import-form" class="boxcontent">
<roundcube:object name="keyform" id="keycreateform" class="propform" size="40" textareacols="40" textarearows="6" />
<div id="formfooter">
<div class="footerleft">
<roundcube:button command="plugin.enigma-key-save" type="input" class="button mainaction" label="save" />
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<div id="keyimport-title" class="boxtitle"><roundcube:label name="enigma.importkeys" /></div>
<div id="import-form" class="boxcontent">
<roundcube:object name="importform" id="keyimportform" />
</div>
</body>
</html>
@@ -0,0 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<div id="keyinfo-title" class="boxtitle"><roundcube:object name="keyname" part="name" /></div>
<div id="key-details" class="boxcontent">
<roundcube:object name="keydata" />
</div>
</body>
</html>
@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<script type="text/javascript" src="/functions.js"></script>
<script type="text/javascript" src="/splitter.js"></script>
<style type="text/css">
#enigmakeyslist { width: <roundcube:exp expression="!empty(cookie:enigmaviewsplitter) ? cookie:enigmaviewsplitter-5 : 210" />px; }
#enigmacontent-box { left: <roundcube:exp expression="!empty(cookie:enigmaviewsplitter) ? cookie:enigmaviewsplitter+5 : 220" />px;
<roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:enigmaeviewsplitter) ? cookie:enigmaviewsplitter+5 : 220).')+\\'px\\');') : ''" />
}
</style>
</head>
<body>
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />
<div id="mainscreen" class="enigma">
<div id="keystoolbar">
<roundcube:button command="plugin.enigma-key-create" type="link" class="buttonPas create" classAct="button create" classSel="button createSel" title="enigma.createkeys" content=" " />
<roundcube:button command="plugin.enigma-key-import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="enigma.importkeys" content=" " />
<span class="dropbutton">
<roundcube:button command="plugin.enigma-key-export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="enigma.exportkeys" content=" " />
<span id="exportmenulink" onclick="rcmail_ui.show_popup('exportmenu');return false"></span>
</span>
<roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button keymenu" title="enigma.keyactions" onclick="rcmail_ui.show_popup('messagemenu');return false" content=" " />
</div>
<div id="quicksearchbar">
<roundcube:button name="searchmenulink" id="searchmenulink" image="/images/icons/glass.png" />
<roundcube:object name="searchform" id="quicksearchbox" />
<roundcube:button command="reset-search" id="searchreset" image="/images/icons/reset.gif" title="resetsearch" />
</div>
<div class="enigmascreen">
<div id="enigmakeyslist">
<div class="boxtitle"><roundcube:label name="enigma.keyname" /></div>
<div class="boxlistcontent">
<roundcube:object name="keyslist" id="keys-table" class="records-table" cellspacing="0" noheader="true" />
</div>
<div class="boxfooter">
<div id="keylistcountbar" class="pagenav">
<roundcube:button command="firstpage" type="link" class="buttonPas firstpage" classAct="button firstpage" classSel="button firstpageSel" title="firstpage" content=" " />
<roundcube:button command="previouspage" type="link" class="buttonPas prevpage" classAct="button prevpage" classSel="button prevpageSel" title="previouspage" content=" " />
<roundcube:object name="countdisplay" style="padding:0 .5em; float:left" />
<roundcube:button command="nextpage" type="link" class="buttonPas nextpage" classAct="button nextpage" classSel="button nextpageSel" title="nextpage" content=" " />
<roundcube:button command="lastpage" type="link" class="buttonPas lastpage" classAct="button lastpage" classSel="button lastpageSel" title="lastpage" content=" " />
</div>
</div>
</div>
<script type="text/javascript">
var enigmaviewsplit = new rcube_splitter({id:'enigmaviewsplitter', p1: 'enigmakeyslist', p2: 'enigmacontent-box', orientation: 'v', relative: true, start: 215});
rcmail.add_onload('enigmaviewsplit.init()');
</script>
<div id="enigmacontent-box">
<roundcube:object name="keyframe" id="keyframe" width="100%" height="100%" frameborder="0" src="/watermark.html" />
</div>
</div>
</div>
<div id="messagemenu" class="popupmenu">
<ul>
<li><roundcube:button class="deletelink" command="plugin.enigma-key-delete" label="enigma.keyremove" classAct="deletelink active" /></li>
<!--
<li><roundcube:button class="disablelink" command="plugin.enigma-key-disable" label="enigma.keydisable" classAct="disablelink active" /></li>
<li><roundcube:button class="revokelink" command="plugin.enigma-key-revoke" label="enigma.keyrevoke" classAct="revokelink active" /></li>
<li class="separator_below"><roundcube:button class="sendlink" command="plugin.enigma-key-send" label="enigma.keysend" classAct="sendlink active" /></li>
<li><roundcube:button class="chpasslink" command="plugin.enigma-key-chpass" label="enigma.keychpass" classAct="chpasslink active" /></li>
-->
</ul>
</div>
<div id="exportmenu" class="popupmenu">
<ul>
<li><roundcube:button command="plugin.enigma-key-export" label="exportall" prop="sub" classAct="exportalllink active" class="exportalllink" /></li>
<li><roundcube:button command="plugin.enigma-key-export-selected" label="exportsel" prop="sub" classAct="exportsellink active" class="exportsellink" /></li>
</ul>
</div>
<script type="text/javascript">
rcube_init_mail_ui();
</script>
</body>
</html>
@@ -0,0 +1,177 @@
/*** Style for Enigma plugin ***/
/***** Messages displaying *****/
#enigma-message,
#messagebody div #enigma-message
{
margin: 0;
margin-bottom: 5px;
padding: 6px 12px 6px 30px;
font-weight: bold;
}
div.enigmaerror,
#messagebody div.enigmaerror
{
background: url(enigma_icons.png) 3px -201px no-repeat #f2cccd;
border: 1px solid #c00005;
color: #c00005;
}
div.enigmanotice,
#messagebody div.enigmanotice
{
background: url(enigma_icons.png) 3px -171px no-repeat #c9e6d3;
border: 1px solid #008a2e;
color: #008a2e;
}
div.enigmawarning,
#messagebody div.enigmawarning
{
background: url(enigma_icons.png) 3px -231px no-repeat #fef893;
border: 1px solid #ffdf0e;
color: #960;
}
#enigma-message a
{
color: #666666;
padding-left: 10px;
}
#enigma-message a:hover
{
color: #333333;
}
p.enigmaattachment {
margin: 0.5em 1em;
width: auto;
background: #f9f9f9;
border: 1px solid #d3d3d3;
border-radius: 4px;
box-shadow: 0 0 2px #ccc;
-webkit-box-shadow: 0 0 2px #ccc;
}
p.enigmaattachment a {
display: block;
background: url(enigma_icons.png) 8px -78px no-repeat;
padding: 1em 0.5em 1em 46px;
}
/***** E-mail Compose Page *****/
#messagetoolbar a.button.enigma {
background-image: url(enigma_icons.png);
background-position: center -122px;
background-repeat: no-repeat;
}
#enigmamenu {
color: white;
padding: 2px 5px;
}
/***** Keys/Certs Management *****/
#settings-sections .enigma.keys a {
background-image: url(enigma_icons.png);
background-position: 7px -345px;
background-repeat: no-repeat;
}
#settings-sections .enigma.keys.selected a {
background-image: url(enigma_icons.png);
background-position: 7px -368px;
background-repeat: no-repeat;
}
#sections-table #rcmrowenigma .section {
background-image: url(enigma_icons.png);
background-position: 5px -297px;
background-repeat: no-repeat;
}
#sections-table #rcmrowenigma.selected .section {
background-image: url(enigma_icons.png);
background-position: 5px -321px;
background-repeat: no-repeat;
}
#mainscreen.enigma #settings-sections,
#mainscreen.enigma #settings-right
{
top: 44px;
}
#enigmacontent-box
{
position: absolute;
top: 0px;
left: 272px;
right: 0px;
bottom: 0px;
}
#enigmakeyslist
{
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 260px;
}
#keylistcountbar
{
margin-top: 4px;
margin-left: 4px;
}
#keys-table
{
width: 100%;
table-layout: fixed;
}
#keys-table td
{
text-overflow: ellipsis;
}
#keyimportform fieldset div
{
background-color: #eee;
padding: 10px;
}
#keycreateform td > label {
display: block;
}
#keystoolbar
{
position: absolute;
top: -6px;
left: 0;
height: 40px;
white-space: nowrap;
z-index: 10;
}
#keystoolbar a.button
{
background: url(enigma_icons.png) 0 0 no-repeat transparent;
}
#keystoolbar a.import {
background-position: center 0;
}
#keystoolbar a.export {
background-position: center -40px;
}
+1
View File
@@ -0,0 +1 @@
#enigma-message,#messagebody div #enigma-message{margin:0;margin-bottom:5px;padding:6px 12px 6px 30px;font-weight:bold}div.enigmaerror,#messagebody div.enigmaerror{background:url(enigma_icons.png) 3px -201px no-repeat #f2cccd;border:1px solid #c00005;color:#c00005}div.enigmanotice,#messagebody div.enigmanotice{background:url(enigma_icons.png) 3px -171px no-repeat #c9e6d3;border:1px solid #008a2e;color:#008a2e}div.enigmawarning,#messagebody div.enigmawarning{background:url(enigma_icons.png) 3px -231px no-repeat #fef893;border:1px solid #ffdf0e;color:#960}#enigma-message a{color:#666;padding-left:10px}#enigma-message a:hover{color:#333}p.enigmaattachment{margin:.5em 1em;width:auto;background:#f9f9f9;border:1px solid #d3d3d3;border-radius:4px;box-shadow:0 0 2px #ccc;-webkit-box-shadow:0 0 2px #ccc}p.enigmaattachment a{display:block;background:url(enigma_icons.png) 8px -78px no-repeat;padding:1em .5em 1em 46px}#messagetoolbar a.button.enigma{background-image:url(enigma_icons.png);background-position:center -122px;background-repeat:no-repeat}#enigmamenu{color:white;padding:2px 5px}#settings-sections .enigma.keys a{background-image:url(enigma_icons.png);background-position:7px -345px;background-repeat:no-repeat}#settings-sections .enigma.keys.selected a{background-image:url(enigma_icons.png);background-position:7px -368px;background-repeat:no-repeat}#sections-table #rcmrowenigma .section{background-image:url(enigma_icons.png);background-position:5px -297px;background-repeat:no-repeat}#sections-table #rcmrowenigma.selected .section{background-image:url(enigma_icons.png);background-position:5px -321px;background-repeat:no-repeat}#mainscreen.enigma #settings-sections,#mainscreen.enigma #settings-right{top:44px}#enigmacontent-box{position:absolute;top:0;left:272px;right:0;bottom:0}#enigmakeyslist{position:absolute;top:0;bottom:0;left:0;width:260px}#keylistcountbar{margin-top:4px;margin-left:4px}#keys-table{width:100%;table-layout:fixed}#keys-table td{text-overflow:ellipsis}#keyimportform fieldset div{background-color:#eee;padding:10px}#keycreateform td>label{display:block}#keystoolbar{position:absolute;top:-6px;left:0;height:40px;white-space:nowrap;z-index:10}#keystoolbar a.button{background:url(enigma_icons.png) 0 0 no-repeat transparent}#keystoolbar a.import{background-position:center 0}#keystoolbar a.export{background-position:center -40px}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

@@ -0,0 +1,22 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<h1 class="boxtitle"><roundcube:label name="enigma.createkeys" /></h1>
<div id="key-details" class="boxcontent">
<roundcube:object name="keyform" id="keycreateform" class="propform" size="40" textareacols="40" textarearows="6" />
</div>
<div class="footerleft formbuttons">
<roundcube:button command="plugin.enigma-key-save" type="input" class="button mainaction" label="save" />
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
@@ -0,0 +1,18 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<h1 class="boxtitle"><roundcube:label name="enigma.importkeys" /></h1>
<div id="import-form" class="boxcontent">
<roundcube:object name="importform" class="propform" id="keyimportform" />
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
@@ -0,0 +1,18 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<h1 class="boxtitle"><roundcube:object name="keyname" part="name" /></h1>
<div id="key-details" class="boxcontent propform">
<roundcube:object name="keydata" class="propform" />
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
@@ -0,0 +1,91 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<roundcube:if condition="env:extwin" /><body class="noscroll extwin"><roundcube:else /><body class="noscroll"><roundcube:endif />
<roundcube:include file="/includes/header.html" />
<div id="mainscreen" class="enigma">
<h1 class="voice"><roundcube:label name="settings" /> : <roundcube:label name="enigma.enigmakeys" /></h1>
<!-- toolbar -->
<h2 id="aria-label-toolbar" class="voice"><roundcube:label name="arialabeltoolbar" /></h2>
<div id="keystoolbar" class="toolbar" role="toolbar" aria-labelledby="aria-label-toolbar">
<roundcube:button command="plugin.enigma-key-import" type="link" class="button import disabled" classAct="button import" classSel="button import pressed" label="import" title="enigma.importkeys" />
<span class="dropbutton">
<roundcube:button command="plugin.enigma-key-export" type="link" class="button export disabled" classAct="button export" classSel="button export pressed" label="export" title="enigma.exportkeys" />
<a href="#export" class="dropbuttontip" id="exportmenulink" onclick="return UI.toggle_popup('exportmenu',event)" aria-haspopup="true" aria-expanded="false" aria-owns="exportmenu-menu" tabindex="0"><roundcube:label name="enigma.arialabelkeyexportoptions" /></a>
</span>
</div>
<div id="exportmenu" class="popupmenu" aria-hidden="true">
<h3 id="aria-label-exportmenu" class="voice"><roundcube:label name="enigma.arialabelkeyexportoptions" /></h3>
<ul id="exportmenu-menu" class="toolbarmenu" role="menu" aria-labelledby="aria-label-exportmenu">
<roundcube:button type="link-menuitem" command="plugin.enigma-key-export" label="exportall" prop="sub" class="exportalllink" classAct="exportalllink active" />
<roundcube:button type="link-menuitem" command="plugin.enigma-key-export-selected" label="exportsel" prop="sub" class="exportsellink" classAct="exportsellink active" />
</ul>
</div>
<div id="quicksearchbar" class="searchbox" role="search" aria-labelledby="aria-label-searchform">
<h2 id="aria-label-searchform" class="voice"><roundcube:label name="enigma.arialabelkeysearchform" /></h2>
<label for="quicksearchbox" class="voice"><roundcube:label name="arialabelmailquicksearchbox" /></label>
<roundcube:object name="searchform" id="quicksearchbox" />
<a id="searchmenulink" class="iconbutton searchicon" > </a>
<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
<roundcube:include file="/includes/settingstabs.html" />
<div id="settings-right" role="main" aria-labelledby="aria-label-enigmakeyslist">
<div id="enigmakeyslist" class="uibox listbox" role="navigation" aria-labelledby="enigmakeyslist-header">
<div id="enigmakeyslist-header" class="boxtitle"><roundcube:label name="enigma.enigmakeys" /></div>
<div class="scroller withfooter">
<roundcube:object name="keyslist" id="keys-table" class="listing" role="listbox" cellspacing="0" noheader="true" />
</div>
<div class="boxpagenav">
<roundcube:button command="firstpage" type="link" class="icon firstpage disabled" classAct="icon firstpage" title="firstpage" label="first" />
<roundcube:button command="previouspage" type="link" class="icon prevpage disabled" classAct="icon prevpage" title="previouspage" label="previous" />
<roundcube:button command="nextpage" type="link" class="icon nextpage disabled" classAct="icon nextpage" title="nextpage" label="next" />
<roundcube:button command="lastpage" type="link" class="icon lastpage disabled" classAct="icon lastpage" title="lastpage" label="last" />
</div>
<div class="boxfooter">
<roundcube:button command="plugin.enigma-key-create" type="link" title="enigma.createkeys" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" label="enigma.keyadd" /><roundcube:button name="moreactions" id="keyoptionslink" type="link" title="enigma.keyactions" class="listbutton groupactions" onclick="return UI.toggle_popup('keyoptions',event)" innerClass="inner" label="enigma.arialabelkeyoptions" aria-haspopup="true" aria-expanded="false" aria-owns="keyoptionsmenu" />
<span class="countdisplay" aria-live="polite" aria-relevant="text">
<span class="voice"><roundcube:label name="enigma.enigmakeys" /></span>
<roundcube:object name="countdisplay" />
</span>
</div>
</div>
<div id="enigmacontent-box" class="uibox">
<div class="iframebox">
<roundcube:object name="keyframe" id="keyframe" width="100%" height="100%" frameborder="0" src="/watermark.html" />
</div>
</div>
</div>
</div>
<div id="keyoptions" class="popupmenu">
<ul class="toolbarmenu">
<li><roundcube:button class="deletelink" command="plugin.enigma-key-delete" label="enigma.keyremove" target="_blank" classAct="deletelink active" /></li>
<!--
<li><roundcube:button class="disablelink" command="enigma.key-disable" label="enigma.keydisable" target="_blank" classAct="disablelink active" /></li>
<li><roundcube:button class="revokelink" command="enigma.key-revoke" label="enigma.keyrevoke" classAct="revokelink active" /></li>
<li class="separator_below"><roundcube:button class="sendlink" command="enigma.key-send" label="enigma.keysend" classAct="sendlink active" /></li>
<li><roundcube:button class="chpasslink" command="enigma.key-chpass" label="enigma.keychpass" classAct="chpasslink active" /></li>
-->
</ul>
</div>
<roundcube:include file="/includes/footer.html" />
<script type="text/javascript">
new rcube_splitter({ id:'enigmakeyssplitter', p1:'#enigmakeyslist', p2:'#enigmacontent-box',
orientation:'v', relative:true, start:266, min:180, size:12 }).init();
</script>
</body>
</html>
@@ -0,0 +1,23 @@
<?php
class Enigma_Plugin extends PHPUnit_Framework_TestCase
{
function setUp()
{
include_once __DIR__ . '/../enigma.php';
}
/**
* Plugin object construction test
*/
function test_constructor()
{
$rcube = rcube::get_instance();
$plugin = new enigma($rcube->api);
$this->assertInstanceOf('enigma', $plugin);
$this->assertInstanceOf('rcube_plugin', $plugin);
}
}