summaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2004-02-24 15:15:43 +0100
committerWerner Koch <wk@gnupg.org>2004-02-24 15:15:43 +0100
commit18a212f2c8a75596d6ef39c4d29c018383e6089a (patch)
tree038a4626c7a618c406e43181d1558e2285fb8ebd /sm
parent2004-02-23 Marcus Brinkmann <marcus@g10code.de> (diff)
downloadgnupg2-18a212f2c8a75596d6ef39c4d29c018383e6089a.tar.xz
gnupg2-18a212f2c8a75596d6ef39c4d29c018383e6089a.zip
(list_cert_colon): Print the fingerprint as the
cert-id for root certificates.
Diffstat (limited to 'sm')
-rw-r--r--sm/ChangeLog5
-rw-r--r--sm/keylist.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog
index e543bbcba..30c3d53df 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-24 Werner Koch <wk@gnupg.org>
+
+ * keylist.c (list_cert_colon): Print the fingerprint as the
+ cert-id for root certificates.
+
2004-02-21 Werner Koch <wk@gnupg.org>
* keylist.c (list_internal_keys): Return error codes.
diff --git a/sm/keylist.c b/sm/keylist.c
index 3ebbe3ba3..6d48068b0 100644
--- a/sm/keylist.c
+++ b/sm/keylist.c
@@ -249,21 +249,27 @@ list_cert_colon (ctrl_t ctrl, ksba_cert_t cert, unsigned int validity,
/* FPR record */
fprintf (fp, "fpr:::::::::%s:::", fpr);
- xfree (fpr); fpr = NULL;
/* print chaining ID (field 13)*/
{
ksba_cert_t next;
+ int rc;
- if (!gpgsm_walk_cert_chain (cert, &next))
+ rc = gpgsm_walk_cert_chain (cert, &next);
+ if (!rc) /* We known the issuer's certificate. */
{
p = gpgsm_get_fingerprint_hexstring (next, GCRY_MD_SHA1);
fputs (p, fp);
xfree (p);
ksba_cert_release (next);
}
+ else if (rc == -1) /* We reached the root certificate. */
+ {
+ fputs (fpr, fp);
+ }
}
putc (':', fp);
putc ('\n', fp);
+ xfree (fpr); fpr = NULL;
if (opt.with_key_data)