aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/src
diff options
context:
space:
mode:
authorTobias Fella <[email protected]>2024-01-08 10:33:28 +0000
committerTobias Fella <[email protected]>2024-05-22 11:08:50 +0000
commit15718cb2954d9df9af979f574cec859feb2ba052 (patch)
tree218052823b45aa63fe9cc70e8156316744fb1b9b /lang/qt/src
parentcore: Implement adding ADSKs through gpgme_createsubkey (diff)
downloadgpgme-15718cb2954d9df9af979f574cec859feb2ba052.tar.gz
gpgme-15718cb2954d9df9af979f574cec859feb2ba052.zip
qt,cpp: Implement adding ADSKs to existing keys
* lang/cpp/src/context.cpp: Add functions for adding ADSKs. * lang/cpp/src/context.h: Ditto. * lang/qt/src/qgpgmequickjob.cpp: Add implementation of ADSK job. * lang/qt/src/qgpgmequickjob.h: Ditto. * lang/qt/src/quickjob.h: Add job for adding ADSKs.
Diffstat (limited to 'lang/qt/src')
-rw-r--r--lang/qt/src/qgpgmequickjob.cpp11
-rw-r--r--lang/qt/src/qgpgmequickjob.h1
-rw-r--r--lang/qt/src/quickjob.h3
3 files changed, 15 insertions, 0 deletions
diff --git a/lang/qt/src/qgpgmequickjob.cpp b/lang/qt/src/qgpgmequickjob.cpp
index 33f1178a..1c6023a4 100644
--- a/lang/qt/src/qgpgmequickjob.cpp
+++ b/lang/qt/src/qgpgmequickjob.cpp
@@ -109,6 +109,12 @@ static QGpgMEQuickJob::result_type revokeSignatureWorker(Context *ctx,
return std::make_tuple(err, QString(), Error());
}
+static QGpgMEQuickJob::result_type addAdskWorker(Context *ctx, const Key &key, const char *adsk)
+{
+ const auto err = ctx->addAdsk(key, adsk);
+ return std::make_tuple(err, QString(), Error());
+}
+
void QGpgMEQuickJob::startCreate(const QString &uid,
const char *algo,
const QDateTime &expires,
@@ -142,4 +148,9 @@ void QGpgMEQuickJob::startRevokeSignature(const Key &key, const Key &signingKey,
run(std::bind(&revokeSignatureWorker, std::placeholders::_1, key, signingKey, userIds));
}
+void QGpgMEQuickJob::startAddAdsk(const GpgME::Key &key, const char *adsk)
+{
+ run(std::bind(&addAdskWorker, std::placeholders::_1, key, adsk));
+}
+
#include "qgpgmequickjob.moc"
diff --git a/lang/qt/src/qgpgmequickjob.h b/lang/qt/src/qgpgmequickjob.h
index 2f59d8d4..07b89e18 100644
--- a/lang/qt/src/qgpgmequickjob.h
+++ b/lang/qt/src/qgpgmequickjob.h
@@ -71,6 +71,7 @@ public:
unsigned int flags = 0) override;
void startRevokeSignature(const GpgME::Key &key, const GpgME::Key &signingKey,
const std::vector<GpgME::UserID> &userIds = std::vector<GpgME::UserID>()) override;
+ void startAddAdsk(const GpgME::Key &key, const char *adsk) override;
};
}
diff --git a/lang/qt/src/quickjob.h b/lang/qt/src/quickjob.h
index 612a53d0..2d159bbe 100644
--- a/lang/qt/src/quickjob.h
+++ b/lang/qt/src/quickjob.h
@@ -85,6 +85,9 @@ public:
virtual void startRevokeSignature(const GpgME::Key &key, const GpgME::Key &signingKey,
const std::vector<GpgME::UserID> &userIds = std::vector<GpgME::UserID>()) = 0;
+ /** Start --quick-add-adsk */
+ virtual void startAddAdsk(const GpgME::Key &key, const char *adsk) = 0;
+
Q_SIGNALS:
void result(const GpgME::Error &error,
const QString &auditLogAsHtml = QString(), const GpgME::Error &auditLogError = GpgME::Error());