aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/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/cpp/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/cpp/src')
-rw-r--r--lang/cpp/src/context.cpp10
-rw-r--r--lang/cpp/src/context.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp
index 7d04e9cc..57f92394 100644
--- a/lang/cpp/src/context.cpp
+++ b/lang/cpp/src/context.cpp
@@ -1799,6 +1799,16 @@ Error Context::startRevokeSignature(const Key &key, const Key &signingKey,
key.impl(), signingKey.impl(), uids.c_str(), flags));
}
+Error Context::addAdsk(const Key &k, const char *adsk)
+{
+ return Error(d->lasterr = gpgme_op_createsubkey(d->ctx, k.impl(), adsk, 0, 0, GPGME_CREATE_ADSK));
+}
+
+Error Context::startAddAdsk(const Key &k, const char *adsk)
+{
+ return Error(d->lasterr = gpgme_op_createsubkey_start(d->ctx, k.impl(), adsk, 0, 0, GPGME_CREATE_ADSK));
+}
+
Error Context::setFlag(const char *name, const char *value)
{
return Error(d->lasterr = gpgme_set_ctx_flag(d->ctx, name, value));
diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h
index 4d7fedf0..c4f968f4 100644
--- a/lang/cpp/src/context.h
+++ b/lang/cpp/src/context.h
@@ -324,6 +324,9 @@ public:
Error startRevokeSignature(const Key &key, const Key &signingKey,
const std::vector<UserID> &userIds = std::vector<UserID>());
+ Error addAdsk(const Key &k, const char *adsk);
+ Error startAddAdsk(const Key &k, const char *adsk);
+
// using TofuInfo::Policy
Error setTofuPolicy(const Key &k, unsigned int policy);
Error setTofuPolicyStart(const Key &k, unsigned int policy);