--- a/messageviewer/src/viewer/objecttreeparser.cpp
+++ b/messageviewer/src/viewer/objecttreeparser.cpp
@@ -696,29 +696,36 @@
signatureFound = verifyResult.signatures().size() > 0;
signatures = verifyResult.signatures();
bDecryptionOk = !decryptResult.error();
- passphraseError = decryptResult.error().isCanceled()
- || decryptResult.error().code() == GPG_ERR_NO_SECKEY;
- actuallyEncrypted = decryptResult.error().code() != GPG_ERR_NO_DATA;
- partMetaData.errorText = QString::fromLocal8Bit(decryptResult.error().asString());
partMetaData.auditLogError = m->auditLogError();
partMetaData.auditLog = m->auditLogAsHtml();
- partMetaData.isEncrypted = actuallyEncrypted;
- if (actuallyEncrypted && decryptResult.numRecipients() > 0) {
- partMetaData.keyId = decryptResult.recipient(0).keyID();
- }
-
- qCDebug(MESSAGEVIEWER_LOG) << "ObjectTreeParser::decryptMIME: returned from CRYPTPLUG";
- if (bDecryptionOk) {
+ if (!bDecryptionOk && signatureFound) {
+ //Only a signed part
+ actuallyEncrypted = false;
+ bDecryptionOk = true;
decryptedData = plainText;
- } else if (htmlWriter() && showWarning) {
- decryptedData = "
"
- + errorMsg.toUtf8()
- + "
";
- if (!passphraseError)
- partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName)
- + QLatin1String("
")
- + i18n("Error: %1", partMetaData.errorText);
+ } else {
+ passphraseError = decryptResult.error().isCanceled()
+ || decryptResult.error().code() == GPG_ERR_NO_SECKEY;
+ actuallyEncrypted = decryptResult.error().code() != GPG_ERR_NO_DATA;
+ partMetaData.errorText = QString::fromLocal8Bit(decryptResult.error().asString());
+ partMetaData.isEncrypted = actuallyEncrypted;
+ if (actuallyEncrypted && decryptResult.numRecipients() > 0) {
+ partMetaData.keyId = decryptResult.recipient(0).keyID();
+ }
+
+ qCDebug(MESSAGEVIEWER_LOG) << "ObjectTreeParser::decryptMIME: returned from CRYPTPLUG";
+ if (bDecryptionOk) {
+ decryptedData = plainText;
+ } else if (htmlWriter() && showWarning) {
+ decryptedData = ""
+ + errorMsg.toUtf8()
+ + "
";
+ if (!passphraseError) {
+ partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName)
+ + QLatin1String("
")
+ + i18n("Error: %1", partMetaData.errorText);
+ }
+ }
}
}
}