diff options
Diffstat (limited to 'lang/cpp/src/context.cpp')
-rw-r--r-- | lang/cpp/src/context.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 085b835f..9e31b6a9 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("; |