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.
This commit is contained in:
Andre Heinecke 2017-12-01 13:21:34 +01:00
parent 651b3d8207
commit 8e2d6c28a5
No known key found for this signature in database
GPG Key ID: 2978E9D40CBABA5C
3 changed files with 80 additions and 0 deletions

4
NEWS
View File

@ -15,6 +15,10 @@ Noteworthy changes in version 1.10.0 (unreleased)
cpp: DecryptionResult::isDeVs NEW. cpp: DecryptionResult::isDeVs NEW.
cpp: Signature::isDeVs NEW. cpp: Signature::isDeVs NEW.
cpp: EngineInfo::Version::operator> 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: DecryptResult EXTENDED: New boolean field 'is_de_vs'.
py: Signature EXTENDED: New boolean field 'is_de_vs'. py: Signature EXTENDED: New boolean field 'is_de_vs'.
py: GpgError EXTENDED: Partial results in 'results'. py: GpgError EXTENDED: Partial results in 'results'.

View File

@ -1404,6 +1404,38 @@ Error Context::setTofuPolicyStart(const Key &k, unsigned int policy)
k.impl(), to_tofu_policy_t(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) Error Context::addUid(const Key &k, const char *userid)
{ {
return Error(d->lasterr = gpgme_op_adduid(d->ctx, 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)); 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 // Engine Spawn stuff
Error Context::spawn(const char *file, const char *argv[], Error Context::spawn(const char *file, const char *argv[],
Data &input, Data &output, Data &err, Data &input, Data &output, Data &err,

View File

@ -214,12 +214,38 @@ public:
GpgME::Error edit(const Key &key, std::unique_ptr<EditInteractor> function, Data &out); 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); 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 addUid(const Key &key, const char *userid);
Error startAddUid(const Key &key, const char *userid); Error startAddUid(const Key &key, const char *userid);
Error revUid(const Key &key, const char *userid); Error revUid(const Key &key, const char *userid);
Error startRevUid(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 // using TofuInfo::Policy
Error setTofuPolicy(const Key &k, unsigned int policy); Error setTofuPolicy(const Key &k, unsigned int policy);
Error setTofuPolicyStart(const Key &k, unsigned int policy); Error setTofuPolicyStart(const Key &k, unsigned int policy);