From 004fdf61c8b94f646409f4d5855adf8e43b29627 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 8 May 2020 11:18:42 +0200 Subject: [PATCH] core: Make sure the keygrip is available in WITH_SECRET mode. * src/engine-gpg.c (gpg_keylist_build_options): Send --with-keygrip if --with-secret is used. -- Since GnuPG 2.2.19 the keygrip was not anymore send if only --with-secret was used in a public key listing. Given that --with-secret requires computation of the keygrip anyway, there is no point in not requesting the keyrip in this case. GnuPG-bug-id: 4820 --- doc/gpgme.texi | 3 ++- src/engine-gpg.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/gpgme.texi b/doc/gpgme.texi index 8cbb1f22..8129bafa 100644 --- a/doc/gpgme.texi +++ b/doc/gpgme.texi @@ -2827,7 +2827,8 @@ The @code{GPGME_KEYLIST_MODE_WITH_SECRET} returns information about the presence of a corresponding secret key in a public key listing. A public key listing with this mode is slower than a standard listing but can be used instead of a second run to list the secret keys. This -is only supported for GnuPG versions >= 2.1. +is only supported for GnuPG versions >= 2.1. Note that using this +option also makes sure that the keygrip is available in the output. @item GPGME_KEYLIST_MODE_EPHEMERAL @since{1.2.0} diff --git a/src/engine-gpg.c b/src/engine-gpg.c index c9928ed9..73e5245a 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -2997,7 +2997,10 @@ gpg_keylist_build_options (engine_gpg_t gpg, int secret_only, err = add_arg (gpg, "--with-tofu-info"); if (!err && (mode & GPGME_KEYLIST_MODE_WITH_SECRET)) - err = add_arg (gpg, "--with-secret"); + { + err = add_arg (gpg, "--with-secret"); + err = add_arg (gpg, "--with-keygrip"); + } if (!err && (mode & GPGME_KEYLIST_MODE_SIGS)