diff --git a/dev/Stores/User/GnuPG.js b/dev/Stores/User/GnuPG.js index 57c95d7e8..f42053b2f 100644 --- a/dev/Stores/User/GnuPG.js +++ b/dev/Stores/User/GnuPG.js @@ -15,9 +15,10 @@ const askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => await AskPopupView.password('GnuPG key
' + privateKey.id + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt), - findGnuPGKey = (keys, query, sign) => + findGnuPGKey = (keys, query/*, sign*/) => keys.find(key => - key[sign ? 'can_sign' : 'can_decrypt'] +// key[sign ? 'can_sign' : 'can_decrypt'] + (key.can_sign || key.can_decrypt) && (key.emails.includes(query) || key.subkeys.find(key => query == key.keyid || query == key.fingerprint)) ); diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index 13c2824a1..df0f93263 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -529,16 +529,18 @@ export class MailMessageView extends AbstractViewRight { pgpDecrypt() { const oMessage = currentMessage(); PgpUserStore.decrypt(oMessage).then(result => { - if (result?.data) { - oMessage.pgpDecrypted(true); - MimeToMessage(result.data, oMessage); - oMessage.html() ? oMessage.viewHtml() : oMessage.viewPlain(); - if (result.signatures?.length) { - oMessage.pgpSigned(true); - oMessage.pgpVerified({ - signatures: result.signatures, - success: !!result.signatures.length - }); + if (result) { + if (result.data) { + oMessage.pgpDecrypted(true); + MimeToMessage(result.data, oMessage); + oMessage.html() ? oMessage.viewHtml() : oMessage.viewPlain(); + if (result.signatures?.length) { + oMessage.pgpSigned(true); + oMessage.pgpVerified({ + signatures: result.signatures, + success: !!result.signatures.length + }); + } } } else { // TODO: translate @@ -553,6 +555,8 @@ export class MailMessageView extends AbstractViewRight { PgpUserStore.verify(oMessage).then(result => { if (result) { oMessage.pgpVerified(result); + } else { + alert('Verification failed or no valid public key found'); } /* if (result?.success) {