diff options
author | Werner Koch <[email protected]> | 2020-07-15 12:10:32 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2020-07-15 12:11:17 +0000 |
commit | c8048bf8eb988f22b20215197f4739bedafc4264 (patch) | |
tree | 0000825d7b32ca831032a4bf34c105de0d0ac892 /lang/cpp/src | |
parent | python: Workaround for a regression in GnuPG 2.2.21 (diff) | |
download | gpgme-c8048bf8eb988f22b20215197f4739bedafc4264.tar.gz gpgme-c8048bf8eb988f22b20215197f4739bedafc4264.zip |
core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP.
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New.
* src/gpgme-json.c (op_keylist): New flag "keygrip".
* src/engine-gpg.c (gpg_keylist_build_options): Pass the options.
* lang/cpp/src/global.h (WithKeygrip): New.
* lang/cpp/src/context.cpp: Add check.
* lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip.
* lang/cpp/src/verificationresult.cpp: Ditto.
* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto.
--
GnuPG-bug-id: 4939
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'lang/cpp/src')
-rw-r--r-- | lang/cpp/src/context.cpp | 1 | ||||
-rw-r--r-- | lang/cpp/src/global.h | 3 | ||||
-rw-r--r-- | lang/cpp/src/key.cpp | 3 | ||||
-rw-r--r-- | lang/cpp/src/util.h | 3 | ||||
-rw-r--r-- | lang/cpp/src/verificationresult.cpp | 3 |
5 files changed, 10 insertions, 3 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index c0a1dc21..002b20f5 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -1615,6 +1615,7 @@ std::ostream &operator<<(std::ostream &os, KeyListMode mode) CHECK(Validate); CHECK(Ephemeral); CHECK(WithTofu); + CHECK(WithKeygrip); #undef CHECK return os << ')'; } diff --git a/lang/cpp/src/global.h b/lang/cpp/src/global.h index d5c2e135..7a88dc32 100644 --- a/lang/cpp/src/global.h +++ b/lang/cpp/src/global.h @@ -65,7 +65,8 @@ enum KeyListMode { SignatureNotations = 0x8, Validate = 0x10, Ephemeral = 0x20, - WithTofu = 0x40 + WithTofu = 0x40, + WithKeygrip = 0x80 }; enum SignatureMode { NormalSignatureMode, Detached, Clearsigned }; diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 73045fb3..c422fcc5 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -358,7 +358,8 @@ void Key::update() KeyListMode::Signatures | KeyListMode::SignatureNotations | KeyListMode::Validate | - KeyListMode::WithTofu); + KeyListMode::WithTofu | + KeyListMode::WithKeygrip); Error err; auto newKey = ctx->key(primaryFingerprint(), err, true); // Not secret so we get the information from the pubring. diff --git a/lang/cpp/src/util.h b/lang/cpp/src/util.h index 4495cc02..1c0477f4 100644 --- a/lang/cpp/src/util.h +++ b/lang/cpp/src/util.h @@ -81,6 +81,9 @@ static inline gpgme_keylist_mode_t add_to_gpgme_keylist_mode_t(unsigned int oldm if (newmodes & GpgME::WithTofu) { oldmode |= GPGME_KEYLIST_MODE_WITH_TOFU; } + if (newmodes & GpgME::WithKeygrip) { + oldmode |= GPGME_KEYLIST_MODE_WITH_KEYGRIP; + } #ifndef NDEBUG if (newmodes & ~(GpgME::Local | GpgME::Extern | GpgME::Signatures | GpgME::SignatureNotations | GpgME::Ephemeral | GpgME::Validate)) { //std::cerr << "GpgME::Context: keylist mode must be one of Local, " diff --git a/lang/cpp/src/verificationresult.cpp b/lang/cpp/src/verificationresult.cpp index 1e9f81f5..bfe82e30 100644 --- a/lang/cpp/src/verificationresult.cpp +++ b/lang/cpp/src/verificationresult.cpp @@ -413,7 +413,8 @@ GpgME::Key GpgME::Signature::key(bool search, bool update) const KeyListMode::Signatures | KeyListMode::SignatureNotations | KeyListMode::Validate | - KeyListMode::WithTofu); + KeyListMode::WithTofu | + KeyListMode::WithKeygrip); Error e; ret = d->keys[idx] = ctx->key(fingerprint(), e, false); delete ctx; |