7#include "verifyopaquebodypartmemento.h"
9#include <QGpgME/KeyListJob>
10#include <QGpgME/VerifyOpaqueJob>
12#include <gpgme++/keylistresult.h>
16using namespace QGpgME;
18using namespace MimeTreeParser;
20VerifyOpaqueBodyPartMemento::VerifyOpaqueBodyPartMemento(VerifyOpaqueJob *job, KeyListJob *klj,
const QByteArray &signature)
21 : m_signature(signature)
28VerifyOpaqueBodyPartMemento::~VerifyOpaqueBodyPartMemento()
34 m_keylistjob->slotCancel();
38bool VerifyOpaqueBodyPartMemento::start()
42 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento started";
44 if (
const Error err = m_job->start(m_signature)) {
45 m_vr = VerificationResult(err);
47 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento stopped with error";
51 connect(m_job.data(), &VerifyOpaqueJob::result,
this, &VerifyOpaqueBodyPartMemento::slotResult);
56void VerifyOpaqueBodyPartMemento::exec()
62 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento execed";
64 saveResult(m_job->exec(m_signature, plainText), plainText);
66 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento after execed";
70 if (canStartKeyListJob()) {
71 std::vector<GpgME::Key> keys;
72 m_keylistjob->exec(keyListPattern(),
false, keys);
78 m_keylistjob->deleteLater();
80 m_keylistjob =
nullptr;
84bool VerifyOpaqueBodyPartMemento::canStartKeyListJob()
const
89 const char *
const fpr = m_vr.signature(0).fingerprint();
93QStringList VerifyOpaqueBodyPartMemento::keyListPattern()
const
95 assert(canStartKeyListJob());
99void VerifyOpaqueBodyPartMemento::saveResult(
const VerificationResult &vr,
const QByteArray &plainText)
102#ifdef DEBUG_SIGNATURE
103 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento::saveResult called";
106 m_plainText = plainText;
107 setAuditLog(m_job->auditLogError(), m_job->auditLogAsHtml());
110void VerifyOpaqueBodyPartMemento::slotResult(
const VerificationResult &vr,
const QByteArray &plainText)
112#ifdef DEBUG_SIGNATURE
113 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento::slotResult called";
115 saveResult(vr, plainText);
117 if (canStartKeyListJob() && startKeyListJob()) {
118#ifdef DEBUG_SIGNATURE
119 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento: canStartKeyListJob && startKeyListJob";
124 m_keylistjob->deleteLater();
126 m_keylistjob =
nullptr;
131bool VerifyOpaqueBodyPartMemento::startKeyListJob()
133 assert(canStartKeyListJob());
134 if (
const GpgME::Error err = m_keylistjob->start(keyListPattern())) {
137 connect(m_keylistjob.data(), &Job::done,
this, &VerifyOpaqueBodyPartMemento::slotKeyListJobDone);
138 connect(m_keylistjob.data(), &KeyListJob::nextKey,
this, &VerifyOpaqueBodyPartMemento::slotNextKey);
142void VerifyOpaqueBodyPartMemento::slotNextKey(
const GpgME::Key &key)
144#ifdef DEBUG_SIGNATURE
145 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento::slotNextKey called";
150void VerifyOpaqueBodyPartMemento::slotKeyListJobDone()
152#ifdef DEBUG_SIGNATURE
153 qCDebug(MIMETREEPARSER_LOG) <<
"tokoe: VerifyOpaqueBodyPartMemento::slotKeyListJobDone called";
155 m_keylistjob =
nullptr;
160#include "moc_verifyopaquebodypartmemento.cpp"
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QString fromLatin1(QByteArrayView str)