cpp: Add proper gpgme_op_createkey
authorAndre Heinecke <aheinecke@intevation.de>
Fri, 8 Jun 2018 14:19:47 +0000 (16:19 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Fri, 8 Jun 2018 14:19:47 +0000 (16:19 +0200)
* lang/cpp/src/context.cpp, lang/cpp/src/context.h
(Context::createKeyEx): New.

--
The createKeyEx function follows the usual pattern that the
synchronous call returns a result directly while for the
async an extra call is neccessary.

NEWS
lang/cpp/src/context.cpp
lang/cpp/src/context.h

diff --git a/NEWS b/NEWS
index e70b9a9..6c33c25 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ Noteworthy changes in version 1.11.2 (unreleased)
  cpp: Data::rewind                          NEW.
  cpp: Context::setFlag                      NEW.
  cpp: Context::getFlag                      NEW.
+ cpp: Context::createKeyEx                  NEW.
 
 
 Noteworthy changes in version 1.11.1 (2018-04-20)
index 8fde84a..aab22cd 100644 (file)
@@ -1436,6 +1436,23 @@ Error Context::createKey (const char *userid,
                  flags));
 }
 
+KeyGenerationResult Context::createKeyEx (const char *userid,
+                                          const char *algo,
+                                          unsigned long reserved,
+                                          unsigned long expires,
+                                          const Key &certkey,
+                                          unsigned int flags)
+{
+    d->lasterr = gpgme_op_createkey(d->ctx,
+                 userid,
+                 algo,
+                 reserved,
+                 expires,
+                 certkey.impl(),
+                 flags);
+    return KeyGenerationResult(d->ctx, Error(d->lasterr));
+}
+
 Error Context::addUid(const Key &k, const char *userid)
 {
     return Error(d->lasterr = gpgme_op_adduid(d->ctx,
index 8cccff5..a14625e 100644 (file)
@@ -234,6 +234,14 @@ public:
                      const Key &certkey,
                      unsigned int flags);
 
+    // Same as create key but returning a result
+    GpgME::KeyGenerationResult createKeyEx (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);