From 5cb860c194ae08d560156c35309a0a14794a4bda Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 17 May 2018 21:18:10 +0200 Subject: Re-enable ASCII armoring That was disabled accidentally during the port to gpgme. --- framework/src/domain/mime/crypto.cpp | 2 ++ framework/src/domain/mime/tests/mailtemplatetest.cpp | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/framework/src/domain/mime/crypto.cpp b/framework/src/domain/mime/crypto.cpp index 1b121931..863c4b38 100644 --- a/framework/src/domain/mime/crypto.cpp +++ b/framework/src/domain/mime/crypto.cpp @@ -97,6 +97,8 @@ static std::pair createForProtocol(CryptoProtocol pr Q_ASSERT(false); return std::make_pair(1, nullptr); } + //We want the output to always be ASCII armored + gpgme_set_armor(ctx, 1); return std::make_pair(GPG_ERR_NO_ERROR, ctx); } diff --git a/framework/src/domain/mime/tests/mailtemplatetest.cpp b/framework/src/domain/mime/tests/mailtemplatetest.cpp index 20ea8c5e..508af9aa 100644 --- a/framework/src/domain/mime/tests/mailtemplatetest.cpp +++ b/framework/src/domain/mime/tests/mailtemplatetest.cpp @@ -63,6 +63,17 @@ static QString unquote(const QString &s) class MailTemplateTest : public QObject { Q_OBJECT + + bool validate(KMime::Message::Ptr msg) + { + const auto data = msg->encodedContent(); + //IMAP compat: The ASCII NUL character, %x00, MUST NOT be used at any time. + if (data.contains('\0')) { + return false; + } + return true; + } + private slots: void initTestCase() @@ -268,6 +279,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, false, attachments); QVERIFY(result); + QVERIFY(validate(result)); QCOMPARE(result->subject()->asUnicodeString(), subject); QCOMPARE(result->body(), body.toUtf8()); QVERIFY(result->date(false)->dateTime().isValid()); @@ -289,6 +301,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, true, attachments); QVERIFY(result); + QVERIFY(validate(result)); QCOMPARE(result->subject()->asUnicodeString(), subject); QVERIFY(result->date(false)->dateTime().isValid()); QVERIFY(result->contentType()->isMimeType("multipart/alternative")); @@ -311,6 +324,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, false, attachments); QVERIFY(result); + QVERIFY(validate(result)); QCOMPARE(result->subject()->asUnicodeString(), subject); QVERIFY(result->contentType()->isMimeType("multipart/mixed")); QVERIFY(result->date(false)->dateTime().isValid()); @@ -335,6 +349,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, true, attachments); QVERIFY(result); + QVERIFY(validate(result)); QCOMPARE(result->subject()->asUnicodeString(), subject); QVERIFY(result->contentType()->isMimeType("multipart/mixed")); QVERIFY(result->date(false)->dateTime().isValid()); @@ -360,6 +375,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, false, attachments, keys, {}, keys[0]); QVERIFY(result); + QVERIFY(validate(result)); // qWarning() << "---------------------------------"; // qWarning().noquote() << result->encodedContent(); // qWarning() << "---------------------------------"; @@ -401,6 +417,7 @@ private slots: auto result = MailTemplates::createMessage({}, to, cc, bcc, from, subject, body, false, attachments, Crypto::findKeys({}, true, false)); QVERIFY(result); + QVERIFY(validate(result)); QCOMPARE(result->subject()->asUnicodeString(), subject); QVERIFY(result->date(false)->dateTime().isValid()); -- cgit v1.2.3