mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-05 15:37:03 +03:00
S/MIME allow changing private key passphrase due to #1505
This commit is contained in:
parent
570c7e1a1a
commit
b98b21c1c6
44 changed files with 198 additions and 21 deletions
|
|
@ -251,14 +251,14 @@ export class AppUser extends AbstractApp {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AskPopupView.password = function(sAskDesc, btnText) {
|
AskPopupView.password = function(sAskDesc, btnText, ask) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
this.showModal([
|
this.showModal([
|
||||||
sAskDesc,
|
sAskDesc,
|
||||||
view => resolve({password:view.passphrase(), remember:view.remember()}),
|
view => resolve({password:view.passphrase(), remember:view.remember()}),
|
||||||
() => resolve(null),
|
() => resolve(null),
|
||||||
true,
|
true,
|
||||||
5,
|
ask || 5,
|
||||||
btnText
|
btnText
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ export class IdentityModel extends AbstractModel {
|
||||||
|
|
||||||
addComputablesTo(this, {
|
addComputablesTo(this, {
|
||||||
smimeKeyEncrypted: () => this.smimeKey().includes('-----BEGIN ENCRYPTED PRIVATE KEY-----'),
|
smimeKeyEncrypted: () => this.smimeKey().includes('-----BEGIN ENCRYPTED PRIVATE KEY-----'),
|
||||||
smimeKeyValid: () => /^-----BEGIN (ENCRYPTED )?PRIVATE KEY-----/.test(this.smimeKey()),
|
smimeKeyValid: () => /^-----BEGIN (ENCRYPTED |RSA )?PRIVATE KEY-----/.test(this.smimeKey()),
|
||||||
smimeCertificateValid: () => /^-----BEGIN CERTIFICATE-----/.test(this.smimeCertificate())
|
smimeCertificateValid: () => /^-----BEGIN CERTIFICATE-----/.test(this.smimeCertificate())
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,26 +42,54 @@ export class IdentityPopupView extends AbstractViewPopup {
|
||||||
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
||||||
|
|
||||||
this.createSelfSigned = this.createSelfSigned.bind(this);
|
this.createSelfSigned = this.createSelfSigned.bind(this);
|
||||||
|
this.setSMimeKeyPass = this.setSMimeKeyPass.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
async createSelfSigned() {
|
createSelfSigned() {
|
||||||
const identity = this.identity(),
|
AskPopupView.password('', 'CRYPTO/CREATE_SELF_SIGNED').then(pass => {
|
||||||
pass = await AskPopupView.password('', 'CRYPTO/CREATE_SELF_SIGNED');
|
if (pass) {
|
||||||
if (pass) {
|
const identity = this.identity();
|
||||||
Remote.request('SMimeCreateCertificate', (iError, oData) => {
|
Remote.request('SMimeCreateCertificate', (iError, oData) => {
|
||||||
if (oData.Result.x509) {
|
if (oData.Result.x509) {
|
||||||
identity.smimeKey(oData.Result.pkey);
|
identity.smimeKey(oData.Result.pkey);
|
||||||
identity.smimeCertificate(oData.Result.x509);
|
identity.smimeCertificate(oData.Result.x509);
|
||||||
} else {
|
} else {
|
||||||
this.submitError(oData.ErrorMessage);
|
this.submitError(oData.ErrorMessage);
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
name: identity.name(),
|
name: identity.name(),
|
||||||
email: identity.email(),
|
email: identity.email(),
|
||||||
privateKey: identity.smimeKey(),
|
privateKey: identity.smimeKey(),
|
||||||
passphrase: pass.password
|
passphrase: pass.password
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async setSMimeKeyPass() {
|
||||||
|
const identity = this.identity();
|
||||||
|
let old = null
|
||||||
|
if (identity.smimeKeyEncrypted()) {
|
||||||
|
old = await AskPopupView.password(i18n('CRYPTO/CURRENT_PASS'), 'CRYPTO/DECRYPT', 1);
|
||||||
|
if (!old) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
AskPopupView.password(i18n('CRYPTO/NEW_PASS'), 'GLOBAL/SAVE', 1).then(pass => {
|
||||||
|
if (pass) {
|
||||||
|
Remote.request('SMimeExportPrivateKey', (iError, oData) => {
|
||||||
|
if (oData.Result) {
|
||||||
|
identity.smimeKey(oData.Result);
|
||||||
|
} else {
|
||||||
|
this.submitError(oData.ErrorMessage);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
privateKey: identity.smimeKey(),
|
||||||
|
oldPassphrase: old?.password,
|
||||||
|
newPassphrase: pass.password
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
submitForm(form) {
|
submitForm(form) {
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,20 @@ trait SMime
|
||||||
return $this->DefaultResponse($result ?: false);
|
return $this->DefaultResponse($result ?: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function DoSMimeExportPrivateKey() : array
|
||||||
|
{
|
||||||
|
$SMIME = $this->SMIME();
|
||||||
|
$SMIME->setPrivateKey(
|
||||||
|
$this->GetActionParam('privateKey'),
|
||||||
|
new \SnappyMail\SensitiveString($this->GetActionParam('oldPassphrase', ''))
|
||||||
|
);
|
||||||
|
$result = $SMIME->exportPrivateKey(
|
||||||
|
new \SnappyMail\SensitiveString($this->GetActionParam('newPassphrase', ''))
|
||||||
|
);
|
||||||
|
|
||||||
|
return $this->DefaultResponse($result);
|
||||||
|
}
|
||||||
|
|
||||||
public function DoSMimeDecryptMessage() : array
|
public function DoSMimeDecryptMessage() : array
|
||||||
{
|
{
|
||||||
$sFolderName = $this->GetActionParam('folder', '');
|
$sFolderName = $this->GetActionParam('folder', '');
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ class OpenSSL
|
||||||
private string $homedir;
|
private string $homedir;
|
||||||
private array $headers = [];
|
private array $headers = [];
|
||||||
private int $flags = 0;
|
private int $flags = 0;
|
||||||
private int $cipher_algo = \OPENSSL_CIPHER_AES_128_CBC;
|
private int $cipher_algo = \OPENSSL_CIPHER_AES_128_CBC; // \OPENSSL_CIPHER_AES_256_CBC
|
||||||
private ?string $untrusted_certificates_filename = null;
|
private ?string $untrusted_certificates_filename = null;
|
||||||
|
|
||||||
// Used for sign and decrypt
|
// Used for sign and decrypt
|
||||||
|
|
@ -144,6 +144,22 @@ class OpenSSL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function exportPrivateKey(?\SnappyMail\SensitiveString $passphrase = null): string
|
||||||
|
{
|
||||||
|
if (!$this->privateKey) {
|
||||||
|
throw new \RuntimeException('OpenSSL exportPrivateKey: key not loaded');
|
||||||
|
}
|
||||||
|
$options = [
|
||||||
|
'encrypt_key' => true,
|
||||||
|
'encrypt_key_cipher' => \OPENSSL_CIPHER_AES_256_CBC
|
||||||
|
];
|
||||||
|
$output = '';
|
||||||
|
if (!\openssl_pkey_export($this->privateKey, $output, $passphrase/*, $options*/)) {
|
||||||
|
throw new \RuntimeException('OpenSSL exportPrivateKey: ' . \openssl_error_string());
|
||||||
|
}
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public function asn1parse(/*string|Temporary* / $input) : ?string
|
public function asn1parse(/*string|Temporary* / $input) : ?string
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valable jusque",
|
"VALID_UNTIL": "Valable jusque",
|
||||||
"PRIVATE_KEY": "Clé privée",
|
"PRIVATE_KEY": "Clé privée",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Zelfondertekend certificaat aanmaken",
|
"CREATE_SELF_SIGNED": "Zelfondertekend certificaat aanmaken",
|
||||||
"VALID_UNTIL": "Geldig tot",
|
"VALID_UNTIL": "Geldig tot",
|
||||||
"PRIVATE_KEY": "Privésleutel",
|
"PRIVATE_KEY": "Privésleutel",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Utwórz samodzielnie podpisany certyfikat",
|
"CREATE_SELF_SIGNED": "Utwórz samodzielnie podpisany certyfikat",
|
||||||
"VALID_UNTIL": "Ważny do",
|
"VALID_UNTIL": "Ważny do",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
||||||
"VALID_UNTIL": "Válido até",
|
"VALID_UNTIL": "Válido até",
|
||||||
"PRIVATE_KEY": "Chave privada",
|
"PRIVATE_KEY": "Chave privada",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
||||||
"VALID_UNTIL": "Válido até",
|
"VALID_UNTIL": "Válido até",
|
||||||
"PRIVATE_KEY": "Chave privada",
|
"PRIVATE_KEY": "Chave privada",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,9 @@
|
||||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||||
"VALID_UNTIL": "Valid until",
|
"VALID_UNTIL": "Valid until",
|
||||||
"PRIVATE_KEY": "Private key",
|
"PRIVATE_KEY": "Private key",
|
||||||
|
"CHANGE_PASS": "Change passphrase",
|
||||||
|
"CURRENT_PASS": "Current passphrase",
|
||||||
|
"NEW_PASS": "New passphrase",
|
||||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||||
},
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,11 @@
|
||||||
<label data-i18n="CRYPTO/PRIVATE_KEY"></label>
|
<label data-i18n="CRYPTO/PRIVATE_KEY"></label>
|
||||||
<textarea name="smimeKey" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeKey"></textarea>
|
<textarea name="smimeKey" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeKey"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div class="control-group" data-bind="visible:smimeKeyValid() && !smimeKeyEncrypted()"> -->
|
||||||
|
<div class="control-group" data-bind="visible:smimeKeyValid">
|
||||||
|
<label></label>
|
||||||
|
<button type="button" data-bind="click: $root.setSMimeKeyPass" data-i18n="CRYPTO/CHANGE_PASS"></button>
|
||||||
|
</div>
|
||||||
<div class="control-group" data-bind="css: {'error': smimeCertificate() && !smimeCertificateValid()}">
|
<div class="control-group" data-bind="css: {'error': smimeCertificate() && !smimeCertificateValid()}">
|
||||||
<label data-i18n="SMIME/CERTIFICATE"></label>
|
<label data-i18n="SMIME/CERTIFICATE"></label>
|
||||||
<textarea name="smimeCertificate" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeCertificate"></textarea>
|
<textarea name="smimeCertificate" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeCertificate"></textarea>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue