aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-09-01 14:34:08 +0000
committerWerner Koch <[email protected]>2016-09-01 14:39:41 +0000
commitfde9fa81d3d3b25a929b532cc1960d9d9f454a0c (patch)
treea8390cdbea206b0f3a2029f564738fa003d374c1
parentgpg: Add new function write_status_printf. (diff)
downloadgnupg-fde9fa81d3d3b25a929b532cc1960d9d9f454a0c.tar.gz
gnupg-fde9fa81d3d3b25a929b532cc1960d9d9f454a0c.zip
gpg: Simplify code to print VALIDSIG.
* g10/mainproc.c (check_sig_and_print): Use hexfingerprint and write_status_printf. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--g10/mainproc.c49
1 files changed, 20 insertions, 29 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 716363f4c..7bb43502b 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -2104,35 +2104,26 @@ check_sig_and_print (CTX c, kbnode_t node)
}
/* For good signatures print the VALIDSIG status line. */
- if (!rc && is_status_enabled ())
- {
- if (pk)
- {
- byte array[MAX_FINGERPRINT_LEN], *p;
- char buf[MAX_FINGERPRINT_LEN*4+90], *bufp;
- size_t i, n;
-
- bufp = buf;
- fingerprint_from_pk (pk, array, &n);
- p = array;
- for(i=0; i < n ; i++, p++, bufp += 2)
- sprintf (bufp, "%02X", *p );
- /* TODO: Replace the reserved '0' in the field below
- with bits for status flags (policy url, notation,
- etc.). Remember to make the buffer larger to match! */
- sprintf (bufp, " %s %lu %lu %d 0 %d %d %02X ",
- strtimestamp( sig->timestamp ),
- (ulong)sig->timestamp,(ulong)sig->expiredate,
- sig->version,sig->pubkey_algo,sig->digest_algo,
- sig->sig_class);
- bufp = bufp + strlen (bufp);
- if (!pk->flags.primary)
- fingerprint_from_pk (mainpk, array, &n);
- p = array;
- for (i=0; i < n ; i++, p++, bufp += 2)
- sprintf(bufp, "%02X", *p );
- write_status_text (STATUS_VALIDSIG, buf);
- }
+ if (!rc && is_status_enabled () && pk)
+ {
+ char pkhex[MAX_FINGERPRINT_LEN*2+1];
+ char mainpkhex[MAX_FINGERPRINT_LEN*2+1];
+
+ hexfingerprint (pk, pkhex, sizeof pkhex);
+ hexfingerprint (mainpk, mainpkhex, sizeof mainpkhex);
+
+ /* TODO: Replace the reserved '0' in the field below with
+ bits for status flags (policy url, notation, etc.). */
+ write_status_printf (STATUS_VALIDSIG,
+ "%s %s %lu %lu %d 0 %d %d %02X %s",
+ pkhex,
+ strtimestamp (sig->timestamp),
+ (ulong)sig->timestamp,
+ (ulong)sig->expiredate,
+ sig->version, sig->pubkey_algo,
+ sig->digest_algo,
+ sig->sig_class,
+ mainpkhex);
}
/* For good signatures compute and print the trust information.