aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src/key.cpp
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2017-01-11 15:14:45 +0000
committerAndre Heinecke <[email protected]>2017-01-11 15:14:45 +0000
commite416f9961837039f259558edf41fccbc181ad128 (patch)
treecda46bb7f429259f65dc11af864f23922f4785c1 /lang/cpp/src/key.cpp
parentFix Qgpgme build for macos (diff)
downloadgpgme-e416f9961837039f259558edf41fccbc181ad128.tar.gz
gpgme-e416f9961837039f259558edf41fccbc181ad128.zip
cpp: Add revuid and adduid support
* lang/cpp/src/context.cpp (Context::revUid, Context::startRevUid), (Context::addUid, Context::startAddUid): New. * lang/cpp/src/context.h: Declare new functions. * lang/cpp/src/key.cpp (Key::UserID::revoke) (Key::addUid): Idomatic helpers. lang/cpp/src/key.h: Declare new functions. * NEWS: Update accordingly.
Diffstat (limited to 'lang/cpp/src/key.cpp')
-rw-r--r--lang/cpp/src/key.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp
index 4f7ec54b..3cc26a77 100644
--- a/lang/cpp/src/key.cpp
+++ b/lang/cpp/src/key.cpp
@@ -906,6 +906,34 @@ std::string UserID::addrSpec() const
return uid->address;
}
+Error UserID::revoke()
+{
+ if (isNull()) {
+ return Error::fromCode(GPG_ERR_GENERAL);
+ }
+ auto ctx = Context::createForProtocol(parent().protocol());
+ if (!ctx) {
+ return Error::fromCode(GPG_ERR_INV_ENGINE);
+ }
+ Error ret = ctx->revUid(key, id());
+ delete ctx;
+ return ret;
+}
+
+Error Key::addUid(const char *uid)
+{
+ if (isNull()) {
+ return Error::fromCode(GPG_ERR_GENERAL);
+ }
+ auto ctx = Context::createForProtocol(protocol());
+ if (!ctx) {
+ return Error::fromCode(GPG_ERR_INV_ENGINE);
+ }
+ Error ret = ctx->addUid(key, uid);
+ delete ctx;
+ return ret;
+}
+
std::ostream &operator<<(std::ostream &os, const UserID &uid)
{
os << "GpgME::UserID(";