From 6054ee4a24193c28bd6160fde555c4a5e1f044a4 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 16 Jul 2018 02:46:48 +0200 Subject: Lacking a key to verify the signature is not "bad". --- framework/src/domain/mime/mimetreeparser/messagepart.cpp | 9 ++++++++- framework/src/domain/mime/partmodel.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/framework/src/domain/mime/mimetreeparser/messagepart.cpp b/framework/src/domain/mime/mimetreeparser/messagepart.cpp index 611a04c5..256b7588 100644 --- a/framework/src/domain/mime/mimetreeparser/messagepart.cpp +++ b/framework/src/domain/mime/mimetreeparser/messagepart.cpp @@ -696,7 +696,14 @@ static QString prettifyDN(const char *uid) void SignedMessagePart::sigStatusToMetaData(const Signature &signature) { - mMetaData.isGoodSignature = signature.status == GPG_ERR_NO_ERROR; + mMetaData.isGoodSignature = signature.status.errorCode() == GPG_ERR_NO_ERROR; + if (!mMetaData.isGoodSignature) { + if (signature.status.errorCode() == GPG_ERR_NO_PUBKEY) { + qWarning() << "No public key to verify signature."; + } else { + qWarning() << "Is no good signature" << signature.status; + } + } // save extended signature status flags auto summary = signature.summary; mMetaData.keyMissing = summary & GPGME_SIGSUM_KEY_MISSING; diff --git a/framework/src/domain/mime/partmodel.cpp b/framework/src/domain/mime/partmodel.cpp index bbafbc7c..ca8856fd 100644 --- a/framework/src/domain/mime/partmodel.cpp +++ b/framework/src/domain/mime/partmodel.cpp @@ -267,12 +267,12 @@ QVariant PartModel::data(const QModelIndex &index, int role) const if (messageIsSigned) { auto sigInfo = std::unique_ptr{signatureInfo(messagePart)}; - if (!sigInfo->signatureIsGood || sigInfo->keyRevoked) { + if (!sigInfo->signatureIsGood) { + if (sigInfo->keyMissing || sigInfo->keyExpired) { + return "notsogood"; + } return "bad"; } - if (sigInfo->keyMissing || sigInfo->keyExpired) { - return "notsogood"; - } } //All good if (messageIsSigned || messageIsEncrypted) { -- cgit v1.2.3