[PATCH] gpg: print fingerprint regardless of keyid-format

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 8 14:47:04 CEST 2016

* g10/keylist.c (print_fingerprint): use compact format independent of
  keyid-format; (print_key_line): always print the fingerprint


The choice of fingerprint display should be independent of the

Currently, the representation of the fingerprint changes depending on
whether the user has specified --keyid-format to anything besides
"none".  (this is common, for example, if someone happens to have
"keyid-format long" in their gpg.conf for interoperability with older
versions of gpg)

With this changeset, keyid-format governs only the format of the
displayed keyID, while the fingerprint display is governed only by the
fingerprint options:

    compact fpr of pubkey only
    human-readable form of fpr of pubkey only
 --with-fingerprint --with-fingerprint::
    human-readable form of pubkey and subkey
    compact fpr for pubkey and subkeys

Signed-off-by: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
 g10/keylist.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/g10/keylist.c b/g10/keylist.c
index a34ef64..dea9b17 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -1677,7 +1677,7 @@ print_fingerprint (estream_t override_fp, PKT_public_key *pk, int mode)
   if (!opt.fingerprint && !opt.with_fingerprint
-      && opt.with_subkey_fingerprint && opt.keyid_format == KF_NONE)
+      && opt.with_subkey_fingerprint)
     compact = 1;
   if (pk->main_keyid[0] == pk->keyid[0]
@@ -1869,7 +1869,10 @@ print_key_line (estream_t fp, PKT_public_key *pk, int secret)
   tty_fprintf (fp, "\n");
-  if (pk->flags.primary && opt.keyid_format == KF_NONE)
+  /* if the user hasn't explicitly asked for human-readable
+     fingerprints, show compact fpr of primary key: */
+  if (pk->flags.primary &&
+      !opt.fingerprint && !opt.with_fingerprint)
     print_fingerprint (fp, pk, 20);

More information about the Gnupg-devel mailing list