gpg: print fingerprint regardless of keyid-format
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Thu, 8 Sep 2016 12:47:04 +0000 (14:47 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 9 Sep 2016 06:17:49 +0000 (08:17 +0200)
* 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
keyid-format.

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:

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

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
g10/keylist.c

index a34ef64..dea9b17 100644 (file)
@@ -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);
 }