summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/mime/mailcrypto.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/mime/mailcrypto.cpp')
-rw-r--r--framework/src/domain/mime/mailcrypto.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/framework/src/domain/mime/mailcrypto.cpp b/framework/src/domain/mime/mailcrypto.cpp
index ad161a63..19e81b4f 100644
--- a/framework/src/domain/mime/mailcrypto.cpp
+++ b/framework/src/domain/mime/mailcrypto.cpp
@@ -22,8 +22,10 @@
22#include "mailcrypto.h" 22#include "mailcrypto.h"
23#include <QGpgME/Protocol> 23#include <QGpgME/Protocol>
24#include <QGpgME/SignJob> 24#include <QGpgME/SignJob>
25#include <QGpgME/KeyListJob>
25#include <gpgme++/global.h> 26#include <gpgme++/global.h>
26#include <gpgme++/signingresult.h> 27#include <gpgme++/signingresult.h>
28#include <gpgme++/keylistresult.h>
27#include <QDebug> 29#include <QDebug>
28 30
29/* 31/*
@@ -452,3 +454,28 @@ KMime::Content *MailCrypto::sign(KMime::Content *content, const std::vector<GpgM
452 return nullptr; 454 return nullptr;
453} 455}
454 456
457std::vector<GpgME::Key> MailCrypto::findKeys(const QStringList &filter, bool findPrivate, Protocol protocol)
458{
459 const QGpgME::Protocol *const backend = protocol == SMIME ? QGpgME::smime() : QGpgME::openpgp();
460 Q_ASSERT(backend);
461 QGpgME::KeyListJob *job = backend->keyListJob(false);
462 Q_ASSERT(job);
463
464 std::vector<GpgME::Key> keys;
465 GpgME::KeyListResult res = job->exec(filter, findPrivate, keys);
466
467 Q_ASSERT(!res.error());
468
469 qWarning() << "got keys:" << keys.size();
470
471 for (std::vector< GpgME::Key >::iterator i = keys.begin(); i != keys.end(); ++i) {
472 qWarning() << "key isnull:" << i->isNull() << "isexpired:" << i->isExpired();
473 qWarning() << "key numuserIds:" << i->numUserIDs();
474 for (uint k = 0; k < i->numUserIDs(); ++k) {
475 qWarning() << "userIDs:" << i->userID(k).email();
476 }
477 }
478
479 return keys;
480}
481