From 0a8e20c4c639f0c491e2af5ac5fb97005196422b Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 8 Aug 2017 13:04:12 +0200 Subject: [PATCH] sm: Always print the keygrip in colon mode. * sm/keylist.c (list_cert_colon): Always print the keygrip as described in the manual. Signed-off-by: Werner Koch --- doc/tools.texi | 10 ++++++---- sm/keylist.c | 14 +++++++------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/tools.texi b/doc/tools.texi index d05018b63..332fb01b3 100644 --- a/doc/tools.texi +++ b/doc/tools.texi @@ -1189,10 +1189,12 @@ gpg-preset-passphrase [options] [command] @var{cacheid} @var{cacheid} is either a 40 character keygrip of hexadecimal characters identifying the key for which the passphrase should be set or cleared. The keygrip is listed along with the key when running the -command: @code{gpgsm --dump-secret-keys}. Alternatively an arbitrary -string may be used to identify a passphrase; it is suggested that such -a string is prefixed with the name of the application (e.g -@code{foo:12346}). +command: @code{gpgsm --with-keygrip --list-secret-keys}. +Alternatively an arbitrary string may be used to identify a +passphrase; it is suggested that such a string is prefixed with the +name of the application (e.g @code{foo:12346}). Scripts should always +use the option @option{--with-colons}, which provides the keygrip in a +"grp" line (cf. @file{doc/DETAILS})/ @noindent One of the following command options must be given: diff --git a/sm/keylist.c b/sm/keylist.c index abec049b7..24c86e18a 100644 --- a/sm/keylist.c +++ b/sm/keylist.c @@ -541,16 +541,16 @@ list_cert_colon (ctrl_t ctrl, ksba_cert_t cert, unsigned int validity, xfree (fpr); fpr = NULL; chain_id = NULL; xfree (chain_id_buffer); chain_id_buffer = NULL; - if (opt.with_key_data) + /* Always print the keygrip. */ + if ( (p = gpgsm_get_keygrip_hexstring (cert))) { - if ( (p = gpgsm_get_keygrip_hexstring (cert))) - { - es_fprintf (fp, "grp:::::::::%s:\n", p); - xfree (p); - } - print_key_data (cert, fp); + es_fprintf (fp, "grp:::::::::%s:\n", p); + xfree (p); } + if (opt.with_key_data) + print_key_data (cert, fp); + kludge_uid = NULL; for (idx=0; (p = ksba_cert_get_subject (cert,idx)); idx++) {