gpg: print fingerprint regardless of keyid-format

* 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>
This commit is contained in:
Daniel Kahn Gillmor 2016-09-08 14:47:04 +02:00 committed by Werner Koch
parent 30a9f53a0f
commit d757009a24
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 5 additions and 2 deletions

View 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);
}