aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--lang/cpp/src/context.cpp50
-rw-r--r--lang/cpp/src/context.h26
3 files changed, 80 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index aee3f100..83c8f5f2 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,10 @@ Noteworthy changes in version 1.10.0 (unreleased)
cpp: DecryptionResult::isDeVs NEW.
cpp: Signature::isDeVs NEW.
cpp: EngineInfo::Version::operator> NEW.
+ cpp: Context::createKey NEW.
+ cpp: Context::startCreateKey NEW.
+ cpp: Context::createSubkey NEW.
+ cpp: Context::startCreateSubkey NEW.
py: DecryptResult EXTENDED: New boolean field 'is_de_vs'.
py: Signature EXTENDED: New boolean field 'is_de_vs'.
py: GpgError EXTENDED: Partial results in 'results'.
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);