Page MenuHome GnuPG

No OneTemporary

diff --git a/src/resolver/resolver.cpp b/src/resolver/resolver.cpp
index ab40019..8158e04 100644
--- a/src/resolver/resolver.cpp
+++ b/src/resolver/resolver.cpp
@@ -1,128 +1,128 @@
/* Copyright (C) 2018 by Intevation GmbH <info@intevation.de>
*
* This file is Free Software under the GNU GPL (v>=2)
* and comes with ABSOLUTELY NO WARRANTY!
* See LICENSE.txt for details.
*/
#include "resolver.h"
#include "util/overlay.h"
#include <QApplication>
#include <QCommandLineParser>
#include <QDebug>
#include <Libkleo/Enum>
#include <Libkleo/KeyResolver>
#include <iostream>
class Resolver::Private
{
public:
Private(Resolver *qq): q(qq) {
}
void printResolvedKeys(const Kleo::KeyResolver *kr) {
const auto sigMap = kr->signingKeys();
for (const auto fmt: sigMap.keys()) {
for (const auto key: sigMap[fmt]) {
std::string fmtStr;
if (fmt & Kleo::AnySMIME) {
fmtStr = "smime";
} else {
fmtStr = "openpgp";
}
std::cout << "sig:" << fmtStr << ":"
<< key.primaryFingerprint() << std::endl;
}
}
const auto encMap = kr->encryptionKeys();
for (const auto fmt: encMap.keys()) {
for (const auto mbox: encMap[fmt].keys()) {
for (const auto key: encMap[fmt][mbox]) {
std::string fmtStr;
if (fmt & Kleo::AnySMIME) {
fmtStr = "smime";
} else {
fmtStr = "openpgp";
}
std::cout << "enc:" << fmtStr << ":"
<< key.primaryFingerprint() << std::endl;
}
}
}
}
void newOverlay(WId wid, const QString &text)
{
m_overlay = std::shared_ptr<Overlay>(new Overlay(wid, text));
}
void newResolver(const QCommandLineParser &parser) {
const auto proto = parser.value(QStringLiteral("protocol")).toLower();
Kleo::CryptoMessageFormat format;
if (proto == QStringLiteral("cms")) {
format = Kleo::AnySMIME;
} else if (proto == QStringLiteral("pgp")) {
format = Kleo::AnyOpenPGP;
} else {
format = Kleo::AutoFormat;
}
const auto recps = parser.positionalArguments();
auto *kr = new Kleo::KeyResolver (!recps.isEmpty() || parser.isSet(QStringLiteral("encrypt")) /* encrypt */,
parser.isSet(QStringLiteral("sign")) /*sign*/,
format /* CryptoMesssageFormat */,
false /* AllowMixed */);
kr->setRecipients(recps);
kr->setSender(parser.value("sender"));
kr->enableNagging(true);
connect (kr, &Kleo::KeyResolver::keysResolved, q, [this, kr] (bool success, bool sendUnencrypted) {
if (!success) {
std::cout << "cancel" << std::endl;
} else if (sendUnencrypted) {
std::cout << "unencrypted" << std::endl;
} else {
printResolvedKeys(kr);
}
delete kr;
qApp->quit();
});
kr->setDialogWindowFlags(Qt::Window |
Qt::CustomizeWindowHint |
Qt::WindowTitleHint |
Qt::WindowCloseButtonHint);
kr->start(parser.isSet(QStringLiteral("alwaysShow")), m_overlay.get());
}
Resolver *q;
std::shared_ptr<Overlay> m_overlay;
};
Resolver::Resolver(int &argc, char *argv[]) :
QApplication(argc, argv),
d(new Private(this))
{
}
QString Resolver::newInstance(const QCommandLineParser &parser,
const QString &workingDirectry)
{
const auto hwnd = parser.value(QStringLiteral("hwnd"));
if (!hwnd.isEmpty()) {
bool ok;
WId id = (WId) hwnd.toInt(&ok);
if (!ok) {
std::cerr << "invalid hwnd value" << std::endl;
- qApp->exit(EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
d->newOverlay(id, parser.value(QStringLiteral("overlayText")));
}
-
d->newResolver(parser);
+
return QString();
}

File Metadata

Mime Type
text/x-diff
Expires
Fri, Dec 5, 5:53 PM (1 d, 22 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
99/f1/d70976cd82d187af27cf4d841bd6

Event Timeline