aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-09-16 14:54:07 +0000
committerAndre Heinecke <[email protected]>2016-09-16 14:58:39 +0000
commit4d384d7bfef044094695271576ca233625bb520a (patch)
tree8958953d169ca91452e32df9b295821a1c8aff50
parentcpp: Declare sizes of tofu-info enums (diff)
downloadgpgme-4d384d7bfef044094695271576ca233625bb520a.tar.gz
gpgme-4d384d7bfef044094695271576ca233625bb520a.zip
cpp: Add support for gpgme_op_tofu_policy
* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart): New.
Diffstat (limited to '')
-rw-r--r--lang/cpp/src/context.cpp31
-rw-r--r--lang/cpp/src/context.h4
2 files changed, 35 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp
index 1e134a02..00f397b4 100644
--- a/lang/cpp/src/context.cpp
+++ b/lang/cpp/src/context.cpp
@@ -41,6 +41,7 @@
#include "data_p.h"
#include "context_p.h"
#include "util.h"
+#include "tofuinfo.h"
#include <gpgme.h>
@@ -1329,6 +1330,36 @@ Error Context::setPinentryMode(PinentryMode which)
return Error(d->lasterr = gpgme_set_pinentry_mode(d->ctx, mode));
}
+static gpgme_tofu_policy_t to_tofu_policy_t(unsigned int policy)
+{
+ switch (policy) {
+ case TofuInfo::PolicyNone:
+ return GPGME_TOFU_POLICY_NONE;
+ case TofuInfo::PolicyAuto:
+ return GPGME_TOFU_POLICY_AUTO;
+ case TofuInfo::PolicyGood:
+ return GPGME_TOFU_POLICY_GOOD;
+ case TofuInfo::PolicyBad:
+ return GPGME_TOFU_POLICY_BAD;
+ case TofuInfo::PolicyAsk:
+ return GPGME_TOFU_POLICY_ASK;
+ case TofuInfo::PolicyUnknown:
+ return GPGME_TOFU_POLICY_UNKNOWN;
+ }
+}
+
+Error Context::setTofuPolicy(const Key &k, unsigned int policy)
+{
+ return Error(d->lasterr = gpgme_op_tofu_policy(d->ctx,
+ k.impl(), to_tofu_policy_t(policy)));
+}
+
+Error Context::setTofuPolicyStart(const Key &k, unsigned int policy)
+{
+ return Error(d->lasterr = gpgme_op_tofu_policy_start(d->ctx,
+ k.impl(), to_tofu_policy_t(policy)));
+}
+
// 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 f5e2b958..b1e4f5ff 100644
--- a/lang/cpp/src/context.h
+++ b/lang/cpp/src/context.h
@@ -214,6 +214,10 @@ 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);
+ // using TofuInfo::Policy
+ Error setTofuPolicy(const Key &k, unsigned int policy);
+ Error setTofuPolicyStart(const Key &k, unsigned int policy);
+
EditInteractor *lastEditInteractor() const;
std::unique_ptr<EditInteractor> takeLastEditInteractor();