From e587910bcb2b260878b7c49d9cb5df5402864eed Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 7 Dec 2017 16:14:29 +0100 Subject: Revamped security border coloring and popup message --- framework/src/domain/mime/partmodel.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'framework') diff --git a/framework/src/domain/mime/partmodel.cpp b/framework/src/domain/mime/partmodel.cpp index c4e002b7..0b95ecbd 100644 --- a/framework/src/domain/mime/partmodel.cpp +++ b/framework/src/domain/mime/partmodel.cpp @@ -242,21 +242,22 @@ QVariant PartModel::data(const QModelIndex &index, int role) const case SecurityLevelRole: { auto signature = messagePart->signatureState(); auto encryption = messagePart->encryptionState(); - bool signatureIsOk = signature == MimeTreeParser::KMMsgPartiallySigned || - signature == MimeTreeParser::KMMsgFullySigned; - bool encryptionIsOk = encryption == MimeTreeParser::KMMsgPartiallyEncrypted || - encryption == MimeTreeParser::KMMsgFullyEncrypted; - bool isSigned = signature != MimeTreeParser::KMMsgNotSigned; - bool isEncrypted = encryption != MimeTreeParser::KMMsgNotEncrypted; - //Something is wonky - if ((isSigned && !signatureIsOk) || (isEncrypted && !encryptionIsOk)) { - if (signature == MimeTreeParser::KMMsgSignatureProblematic || encryption == MimeTreeParser::KMMsgEncryptionProblematic) { + bool messageIsSigned = signature == MimeTreeParser::KMMsgPartiallySigned || + signature == MimeTreeParser::KMMsgFullySigned; + bool messageIsEncrypted = encryption == MimeTreeParser::KMMsgPartiallyEncrypted || + encryption == MimeTreeParser::KMMsgFullyEncrypted; + + if (messageIsSigned) { + auto sigInfo = std::unique_ptr{signatureInfo(messagePart)}; + if (!sigInfo->signatureIsGood || sigInfo->keyRevoked) { return "bad"; } - return "notsogood"; + if (sigInfo->keyMissing || sigInfo->keyExpired) { + return "notsogood"; + } } //All good - if (signatureIsOk || encryptionIsOk) { + if (messageIsSigned || messageIsEncrypted) { return "good"; } //No info -- cgit v1.2.3