aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/src/qgpgmeexportjob.cpp
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2022-01-04 14:38:49 +0000
committerIngo Klöcker <[email protected]>2022-01-04 14:44:16 +0000
commit4e80563fabfdf1d1c136d65252e5353fdd1e9092 (patch)
treef1edc3ecd890387f94e2bb5ef4b14b88f4394906 /lang/qt/src/qgpgmeexportjob.cpp
parentcpp: Allow export of secret keys (diff)
downloadgpgme-4e80563fabfdf1d1c136d65252e5353fdd1e9092.tar.gz
gpgme-4e80563fabfdf1d1c136d65252e5353fdd1e9092.zip
qt: Use QGpgMEExportJob also for export of secret keys
* lang/qt/src/protocol.h (Protocol::secretKeyExportJob): Document charset argument as ignored. * lang/qt/src/protocol_p.h (Protocol::secretKeyExportJob): Use QGpgMEExportJob instead of QGpgMESecretKeyExportJob. * lang/qt/src/qgpgmeexportjob.h (class QGpgMEExportJob): Add c'tor taking an export mode. Add member m_exportMode. Rename member m_flags to m_additionalExportModeFlags. (QGpgMEExportJob::~QGpgMEExportJob): Mark as override. * lang/qt/src/qgpgmeexportjob.cpp (QGpgMEExportJob::QGpgMEExportJob): Delegate to new c'tor. Implement new c'tor. (QGpgMEExportJob::~QGpgMEExportJob): Use default. (export_qba): Rename argument flags to mode. (QGpgMEExportJob::start): Pass combination of export mode and additional mode flags to export_qba. (QGpgMEExportJob::setExportFlags): Adapt to renaming of member. * lang/qt/tests/run-exportjob.cpp: New. -- This change makes it possible to export secret OpenPGP keys. GnuPG-bug-id: 5757
Diffstat (limited to 'lang/qt/src/qgpgmeexportjob.cpp')
-rw-r--r--lang/qt/src/qgpgmeexportjob.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/lang/qt/src/qgpgmeexportjob.cpp b/lang/qt/src/qgpgmeexportjob.cpp
index bf3297a7..e9bc0a4d 100644
--- a/lang/qt/src/qgpgmeexportjob.cpp
+++ b/lang/qt/src/qgpgmeexportjob.cpp
@@ -5,6 +5,8 @@
Copyright (c) 2004,2008 Klarälvdalens Datakonsult AB
Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik
Software engineering by Intevation GmbH
+ Copyright (c) 2022 by g10 Code GmbH
+ Software engineering by Ingo Klöcker <[email protected]>
QGpgME is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -52,23 +54,28 @@ using namespace QGpgME;
using namespace GpgME;
QGpgMEExportJob::QGpgMEExportJob(Context *context)
- : mixin_type(context),
- m_flags(0)
+ : QGpgMEExportJob{context, 0}
+{
+}
+
+QGpgMEExportJob::QGpgMEExportJob(Context *context, unsigned int forcedMode)
+ : mixin_type{context}
+ , m_exportMode{forcedMode}
+ , m_additionalExportModeFlags{0}
{
lateInitialization();
}
-QGpgMEExportJob::~QGpgMEExportJob() {}
+QGpgMEExportJob::~QGpgMEExportJob() = default;
-static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList &patterns, unsigned int flags)
+static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList &patterns, unsigned int mode)
{
-
const _detail::PatternConverter pc(patterns);
QGpgME::QByteArrayDataProvider dp;
Data data(&dp);
- const Error err = ctx->exportPublicKeys(pc.patterns(), data, flags);
+ const Error err = ctx->exportKeys(pc.patterns(), data, mode);
Error ae;
const QString log = _detail::audit_log_as_html(ctx, ae);
return std::make_tuple(err, dp.data(), log, ae);
@@ -76,13 +83,14 @@ static QGpgMEExportJob::result_type export_qba(Context *ctx, const QStringList &
Error QGpgMEExportJob::start(const QStringList &patterns)
{
- run(std::bind(&export_qba, std::placeholders::_1, patterns, m_flags));
+ auto mode = m_exportMode | m_additionalExportModeFlags;
+ run(std::bind(&export_qba, std::placeholders::_1, patterns, mode));
return Error();
}
void QGpgMEExportJob::setExportFlags(unsigned int flags)
{
- m_flags = flags;
+ m_additionalExportModeFlags = flags;
}
/* For ABI compat not pure virtual. */