[Pkg-gnupg-commit] [gpgme] 192/412: Cpp: Add support for pinentry_mode

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 22 21:26:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit d75c118aae18e20f08dbbb69c7998e1f3694ccd0
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Mon Jul 4 11:25:40 2016 +0200

    Cpp: Add support for pinentry_mode
    
    * lang/cpp/src/context.cpp (Context::pinentryMode): Return mode.
    (Context::setPinentryMode): Set mode.
    * lang/cpp/src/context.h (PinentryMode): Add enum.
---
 lang/cpp/src/context.cpp | 40 ++++++++++++++++++++++++++++++++++++++++
 lang/cpp/src/context.h   | 10 ++++++++++
 2 files changed, 50 insertions(+)

diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp
index 085b835..9e31b6a 100644
--- a/lang/cpp/src/context.cpp
+++ b/lang/cpp/src/context.cpp
@@ -1255,6 +1255,46 @@ Error Context::lastError() const
     return Error(d->lasterr);
 }
 
+Context::PinentryMode Context::pinentryMode() const
+{
+    switch (gpgme_get_pinentry_mode (d->ctx)) {
+        case GPGME_PINENTRY_MODE_ASK:
+            return PinentryAsk;
+        case GPGME_PINENTRY_MODE_CANCEL:
+            return PinentryCancel;
+        case GPGME_PINENTRY_MODE_ERROR:
+            return PinentryError;
+        case GPGME_PINENTRY_MODE_LOOPBACK:
+            return PinentryLoopback;
+        case GPGME_PINENTRY_MODE_DEFAULT:
+        default:
+            return PinentryDefault;
+    }
+}
+
+Error Context::setPinentryMode(PinentryMode which)
+{
+    gpgme_pinentry_mode_t mode;
+    switch (which) {
+        case PinentryAsk:
+            mode = GPGME_PINENTRY_MODE_ASK;
+            break;
+        case PinentryCancel:
+            mode = GPGME_PINENTRY_MODE_CANCEL;
+            break;
+        case PinentryError:
+            mode = GPGME_PINENTRY_MODE_ERROR;
+            break;
+        case PinentryLoopback:
+            mode = GPGME_PINENTRY_MODE_LOOPBACK;
+            break;
+        case PinentryDefault:
+        default:
+            mode = GPGME_PINENTRY_MODE_DEFAULT;
+    }
+    return Error(d->lasterr = gpgme_set_pinentry_mode(d->ctx, mode));
+}
+
 std::ostream &operator<<(std::ostream &os, Protocol proto)
 {
     os << "GpgME::Protocol(";
diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h
index a8112d6..c9c2af7 100644
--- a/lang/cpp/src/context.h
+++ b/lang/cpp/src/context.h
@@ -117,6 +117,16 @@ public:
     GpgME::Error setEngineFileName(const char *filename);
     GpgME::Error setEngineHomeDirectory(const char *filename);
 
+    enum PinentryMode{
+        PinentryDefault = 0,
+        PinentryAsk = 1,
+        PinentryCancel = 2,
+        PinentryError = 3,
+        PinentryLoopback = 4
+    };
+    GpgME::Error setPinentryMode(PinentryMode which);
+    PinentryMode pinentryMode() const;
+
 private:
     friend class ::GpgME::EventLoopInteractor;
     void installIOCallbacks(gpgme_io_cbs *iocbs);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list