This commit is contained in:
the-djmaze 2023-02-02 12:39:21 +01:00
parent af3cecb2e1
commit a52881fb67
43 changed files with 79 additions and 11 deletions

View file

@ -12,8 +12,15 @@ import { OpenPgpKeyPopupView } from 'View/Popup/OpenPgpKey';
import { AskPopupView } from 'View/Popup/Ask';
const
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') =>
await AskPopupView.password('GnuPG key<br>' + privateKey.id + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt),
passphrases = new Map(),
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => {
const key = privateKey.id,
pass = passphrases.has(key)
? {password:passphrases.get(key), remember:false}
: await AskPopupView.password('GnuPG key<br>' + key + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt);
pass && pass.remember && passphrases.set(key, pass.password);
return pass.password;
},
findGnuPGKey = (keys, query/*, sign*/) =>
keys.find(key =>

View file

@ -18,15 +18,21 @@ const
key.emails.includes(query) || query == key.id || query == key.fingerprint
),
passphrases = new Map(),
decryptKey = async (privateKey, btnTxt = 'LABEL_SIGN') => {
if (privateKey.key.isDecrypted()) {
return privateKey.key;
}
const passphrase = await AskPopupView.password(
'OpenPGP.js key<br>' + privateKey.id + ' ' + privateKey.emails[0],
'OPENPGP/'+btnTxt
);
if (null !== passphrase) {
const key = privateKey.id,
pass = passphrases.has(key)
? {password:passphrases.get(key), remember:false}
: await AskPopupView.password(
'OpenPGP.js key<br>' + privateKey.id + ' ' + privateKey.emails[0],
'OPENPGP/'+btnTxt
);
if (pass) {
pass.remember && passphrases.set(key, pass.password);
let passphrase = pass.password;
return await openpgp.decryptKey({
privateKey: privateKey.key,
passphrase

View file

@ -14,7 +14,9 @@ export class AskPopupView extends AbstractViewPopup {
username: '',
askUsername: false,
passphrase: '',
askPass: false
askPass: false,
remember: true,
askRemeber: false
});
this.fYesAction = null;
@ -46,8 +48,10 @@ export class AskPopupView extends AbstractViewPopup {
this.askDesc(sAskDesc || '');
this.askUsername(ask & 2);
this.askPass(ask & 1);
this.askRemeber(ask & 4);
this.username('');
this.passphrase('');
this.remember(true);
this.yesButton(i18n(btnText || 'GLOBAL/YES'));
this.noButton(i18n(ask ? 'GLOBAL/CANCEL' : 'GLOBAL/NO'));
this.fYesAction = fYesFunc;
@ -86,10 +90,10 @@ AskPopupView.password = function(sAskDesc, btnText) {
return new Promise(resolve => {
this.showModal([
sAskDesc,
view => resolve(view.passphrase()),
view => resolve({password:view.passphrase(), remember:view.remember()}),
() => resolve(null),
true,
1,
5,
btnText
]);
});
@ -99,7 +103,7 @@ AskPopupView.credentials = function(sAskDesc, btnText) {
return new Promise(resolve => {
this.showModal([
sAskDesc,
view => resolve({username:view.username(), password:view.passphrase()}),
view => resolve({username:view.username(), password:view.passphrase(), remember:view.remember()}),
() => resolve(null),
true,
3,

View file

@ -201,10 +201,16 @@ class SmtpClient extends \MailSo\Net\NetClient
$sCmd .= ' SIZE='.$iSizeIfSupported;
}
// RFC 3461
if ($bDsn && $this->hasCapability('DSN')) {
$sCmd .= ' RET=HDRS';
}
// RFC 6152
if ($this->hasCapability('8BITMIME')) {
// $sCmd .= ' BODY=8BITMIME';
}
// RFC 8689
if ($bRequireTLS && $this->hasCapability('REQUIRETLS')) {
$sCmd .= ' REQUIRETLS';

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "ليست رسائل غير مرغوب فيها",
"USERNAME": "اسم المستخدم",
"PASSWORD": "كلمة السر",
"REMEMBER": "Remember",
"REPLY_TO": "الرد-الى",
"SAVE": "حفظ",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Не е спам",
"USERNAME": "Потребителско име",
"PASSWORD": "Парола",
"REMEMBER": "Remember",
"REPLY_TO": "Отговори на",
"SAVE": "Запази",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Není to spam",
"USERNAME": "Uživatelské jméno",
"PASSWORD": "Heslo",
"REMEMBER": "Remember",
"REPLY_TO": "Adresa odpovědi",
"SAVE": "Uložit",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ikke uønsket",
"USERNAME": "Brugernavn",
"PASSWORD": "Adgangskode",
"REMEMBER": "Remember",
"REPLY_TO": "Svar til",
"SAVE": "Gem",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Kein Spam",
"USERNAME": "Nutzername",
"PASSWORD": "Passwort",
"REMEMBER": "Remember",
"REPLY_TO": "Antwort an",
"SAVE": "Speichern",
"SAVE_CHANGES": "Änderungen speichern?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Όχι ανεπιθύμητο",
"USERNAME": "Όνομα χρήστη",
"PASSWORD": "Κωδικός πρόσβασης",
"REMEMBER": "Remember",
"REPLY_TO": "Απάντηση στον",
"SAVE": "Αποθήκευση",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "Password",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Save",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "Password",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Save",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Correo no deseado",
"USERNAME": "Nombre de usuario",
"PASSWORD": "Contraseña",
"REMEMBER": "Remember",
"REPLY_TO": "Responder",
"SAVE": "Guardar",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ei ole rämpspost",
"USERNAME": "Kasutajanimi",
"PASSWORD": "Salasõna",
"REMEMBER": "Remember",
"REPLY_TO": "Vastuse saaja",
"SAVE": "Salvesta",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ez da spama",
"USERNAME": "Erabiltzaile-izena",
"PASSWORD": "Pasahitza",
"REMEMBER": "Remember",
"REPLY_TO": "Erantzun",
"SAVE": "Gorde",
"SAVE_CHANGES": "Aldaketak gorde?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "هرزنامه نیست",
"USERNAME": "نام کاربری",
"PASSWORD": "گذرواژه",
"REMEMBER": "Remember",
"REPLY_TO": "پاسخ به",
"SAVE": "ذخیره کن",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ei roskapostia",
"USERNAME": "Käyttäjätunnus",
"PASSWORD": "Salasana",
"REMEMBER": "Remember",
"REPLY_TO": "Vastaa",
"SAVE": "Tallenna",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Acceptable",
"USERNAME": "Nom d'utilisateur",
"PASSWORD": "Mot de passe",
"REMEMBER": "Remember",
"REPLY_TO": "Répondre à",
"SAVE": "Enregistrer",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Nem szemét",
"USERNAME": "Felhasználónév",
"PASSWORD": "Jelszó",
"REMEMBER": "Remember",
"REPLY_TO": "Válaszcím",
"SAVE": "Mentés",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Bukan Spam",
"USERNAME": "Nama belakang",
"PASSWORD": "Sandi",
"REMEMBER": "Remember",
"REPLY_TO": "Balas-Ke",
"SAVE": "Simpan",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ekki ruslpóstur",
"USERNAME": "Notendanafn",
"PASSWORD": "Lykilorð",
"REMEMBER": "Remember",
"REPLY_TO": "Svara-til",
"SAVE": "Vista",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Segnala come non spam",
"USERNAME": "Nome utente",
"PASSWORD": "Parola d'ordine",
"REMEMBER": "Remember",
"REPLY_TO": "Rispondi a",
"SAVE": "Salva",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "迷惑メールを解除",
"USERNAME": "ユーザー名",
"PASSWORD": "パスワード",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "保存",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "스팸 아님",
"USERNAME": "사용자 이름",
"PASSWORD": "비밀번호",
"REMEMBER": "Remember",
"REPLY_TO": "회신 주소",
"SAVE": "저장",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ne šlamštas",
"USERNAME": "Vartotojo vardas",
"PASSWORD": "Slaptažodis",
"REMEMBER": "Remember",
"REPLY_TO": "Kam atsakyti",
"SAVE": "Išsaugoti",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Not Spam",
"USERNAME": "Lietotājvārds",
"PASSWORD": "Parole",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Saglabāt",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ikke søppelpost",
"USERNAME": "Brukernavn",
"PASSWORD": "Passord",
"REMEMBER": "Remember",
"REPLY_TO": "Svar til",
"SAVE": "Lagre",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Geen ongewenste e-mail",
"USERNAME": "Gebruikersnaam",
"PASSWORD": "Wachtwoord",
"REMEMBER": "Onthouden",
"REPLY_TO": "Antwoordadres",
"SAVE": "Opslaan",
"SAVE_CHANGES": "Wijzigingen opslaan?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Oznacz jako pożądane",
"USERNAME": "Nazwa użytkownika",
"PASSWORD": "Hasło",
"REMEMBER": "Remember",
"REPLY_TO": "Odpisz do",
"SAVE": "Zapisz",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Não é Lixo Eletrônico",
"USERNAME": "Nome de usuário",
"PASSWORD": "Senha",
"REMEMBER": "Remember",
"REPLY_TO": "Responder para",
"SAVE": "Salvar",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Não é spam",
"USERNAME": "Nome de usuário",
"PASSWORD": "Palavra-passe",
"REMEMBER": "Remember",
"REPLY_TO": "Resp.-Para",
"SAVE": "Guardar",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Não é spam",
"USERNAME": "Nome de usuário",
"PASSWORD": "Palavra-passe",
"REMEMBER": "Remember",
"REPLY_TO": "Resp.-Para",
"SAVE": "Guardar",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Not SPAM",
"USERNAME": "Nume de utilizator",
"PASSWORD": "Parolă",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Salvează",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Не спам",
"USERNAME": "Имя пользователя",
"PASSWORD": "Пароль",
"REMEMBER": "Remember",
"REPLY_TO": "Ответить-на",
"SAVE": "Сохранить",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Nie je spam",
"USERNAME": "Používateľské men",
"PASSWORD": "Heslo",
"REMEMBER": "Remember",
"REPLY_TO": "Adresa pre odpoveď",
"SAVE": "Uložiť",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Ni vsiljena pošta",
"USERNAME": "Uporabniško ime",
"PASSWORD": "Geslo",
"REMEMBER": "Remember",
"REPLY_TO": "Odgovor na",
"SAVE": "Shrani",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Inte spam",
"USERNAME": "Användarnamn",
"PASSWORD": "Lösenord",
"REMEMBER": "Remember",
"REPLY_TO": "Svara till",
"SAVE": "Spara",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Spam Değil",
"USERNAME": "Kullanıcı adı",
"PASSWORD": "Şifre",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Kaydet",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Не спам",
"USERNAME": "Ім'я користувача",
"PASSWORD": "Пароль",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "Зберегти",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Không phải thư rác",
"USERNAME": "Tên tài khoản",
"PASSWORD": "Mật khẩu",
"REMEMBER": "Remember",
"REPLY_TO": "Nhận thư phản hồi về",
"SAVE": "Lưu",
"SAVE_CHANGES": "Save changes?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "非垃圾邮件",
"USERNAME": "用户名",
"PASSWORD": "密码",
"REMEMBER": "Remember",
"REPLY_TO": "回复",
"SAVE": "保存",
"SAVE_CHANGES": "是否保存修改?",

View file

@ -22,6 +22,7 @@
"NOT_SPAM": "Not Spam",
"USERNAME": "用户名",
"PASSWORD": "密碼",
"REMEMBER": "Remember",
"REPLY_TO": "Reply-To",
"SAVE": "保存",
"SAVE_CHANGES": "Save changes?",

View file

@ -9,6 +9,13 @@
<label data-i18n="GLOBAL/PASSWORD"></label>
<input type="password" data-bind="value: passphrase">
</div>
<div data-bind="visible: askRemeber, component: {
name: 'Checkbox',
params: {
label: 'GLOBAL/REMEMBER',
value: remember
}
}"></div>
</form>
</div>
<footer>