aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2017-12-01 12:21:34 +0000
committerAndre Heinecke <[email protected]>2017-12-01 12:21:34 +0000
commit8e2d6c28a5e923f829b5a26d19d9d897949aa1fe (patch)
tree556dba232e59825e775507b68dd5cc6ef3995464 /lang/cpp/src
parentFix uid parsing for ldap keyserver (diff)
downloadgpgme-8e2d6c28a5e923f829b5a26d19d9d897949aa1fe.tar.gz
gpgme-8e2d6c28a5e923f829b5a26d19d9d897949aa1fe.zip
cpp: Wrap create_key and create_subkey
* lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::startCreateKey) (Context::createKey, Context::createSubkey) (Context::startCreateSubkey): New.
Diffstat (limited to '')
-rw-r--r--lang/cpp/src/context.cpp50
-rw-r--r--lang/cpp/src/context.h26
2 files changed, 76 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp
index 77962d89..135e4d56 100644
--- a/lang/cpp/src/context.cpp
+++ b/lang/cpp/src/context.cpp
@@ -1404,6 +1404,38 @@ Error Context::setTofuPolicyStart(const Key &k, unsigned int policy)
k.impl(), to_tofu_policy_t(policy)));
}
+Error Context::startCreateKey (const char *userid,
+ const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ const Key &certkey,
+ unsigned int flags)
+{
+ return Error(d->lasterr = gpgme_op_createkey_start(d->ctx,
+ userid,
+ algo,
+ reserved,
+ expires,
+ certkey.impl(),
+ flags));
+}
+
+Error Context::createKey (const char *userid,
+ const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ const Key &certkey,
+ unsigned int flags)
+{
+ return Error(d->lasterr = gpgme_op_createkey(d->ctx,
+ userid,
+ algo,
+ reserved,
+ expires,
+ certkey.impl(),
+ flags));
+}
+
Error Context::addUid(const Key &k, const char *userid)
{
return Error(d->lasterr = gpgme_op_adduid(d->ctx,
@@ -1428,6 +1460,24 @@ Error Context::startRevUid(const Key &k, const char *userid)
k.impl(), userid, 0));
}
+Error Context::createSubkey(const Key &k, const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ unsigned int flags)
+{
+ return Error(d->lasterr = gpgme_op_createsubkey(d->ctx,
+ k.impl(), algo, reserved, expires, flags));
+}
+
+Error Context::startCreateSubkey(const Key &k, const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ unsigned int flags)
+{
+ return Error(d->lasterr = gpgme_op_createsubkey_start(d->ctx,
+ k.impl(), algo, reserved, expires, flags));
+}
+
// Engine Spawn stuff
Error Context::spawn(const char *file, const char *argv[],
Data &input, Data &output, Data &err,
diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h
index bec4e39a..4cd5b307 100644
--- a/lang/cpp/src/context.h
+++ b/lang/cpp/src/context.h
@@ -214,12 +214,38 @@ public:
GpgME::Error edit(const Key &key, std::unique_ptr<EditInteractor> function, Data &out);
GpgME::Error startEditing(const Key &key, std::unique_ptr<EditInteractor> function, Data &out);
+
+ //
+ // Modern Interface actions. Require 2.1.x
+ //
+ Error startCreateKey (const char *userid,
+ const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ const Key &certkey,
+ unsigned int flags);
+ Error createKey (const char *userid,
+ const char *algo,
+ unsigned long reserved,
+ unsigned long expires,
+ const Key &certkey,
+ unsigned int flags);
+
Error addUid(const Key &key, const char *userid);
Error startAddUid(const Key &key, const char *userid);
Error revUid(const Key &key, const char *userid);
Error startRevUid(const Key &key, const char *userid);
+ Error createSubkey(const Key &key, const char *algo,
+ unsigned long reserved = 0,
+ unsigned long expires = 0,
+ unsigned int flags = 0);
+ Error startCreateSubkey(const Key &key, const char *algo,
+ unsigned long reserved = 0,
+ unsigned long expires = 0,
+ unsigned int flags = 0);
+
// using TofuInfo::Policy
Error setTofuPolicy(const Key &k, unsigned int policy);
Error setTofuPolicyStart(const Key &k, unsigned int policy);