aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-05-08 09:18:42 +0000
committerWerner Koch <[email protected]>2020-05-08 09:18:42 +0000
commit004fdf61c8b94f646409f4d5855adf8e43b29627 (patch)
tree7376b60ee55bcb93e2a52e827cc96fef8b43adba
parenttests, json: Do not check for keygrip of pubkeys (diff)
downloadgpgme-004fdf61c8b94f646409f4d5855adf8e43b29627.tar.gz
gpgme-004fdf61c8b94f646409f4d5855adf8e43b29627.zip
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
-rw-r--r--doc/gpgme.texi3
-rw-r--r--src/engine-gpg.c5
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)