diff options
Diffstat (limited to 'sm/verify.c')
-rw-r--r-- | sm/verify.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sm/verify.c b/sm/verify.c index 581cafeef..5b3a5a848 100644 --- a/sm/verify.c +++ b/sm/verify.c @@ -136,6 +136,28 @@ print_integer (unsigned char *p) } } +static void +print_time (time_t t) +{ + + if (!t) + log_printf ("none"); + else if ( t == (time_t)(-1) ) + log_printf ("error"); + else + { + struct tm *tp; + + tp = gmtime (&t); + log_printf ("%04d-%02d-%02d %02d:%02d:%02d", + 1900+tp->tm_year, tp->tm_mon+1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec); + assert (!tp->tm_isdst); + } +} + + + static void hash_data (int fd, GCRY_MD_HD md) @@ -316,6 +338,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd) { char *issuer = NULL; char *sigval = NULL; + time_t sigtime; unsigned char *serial; char *msgdigest = NULL; size_t msgdigestlen; @@ -328,6 +351,17 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd) print_integer (serial); log_printf ("\n"); + err = ksba_cms_get_signing_time (cms, signer, &sigtime); + if (err) + { + log_debug ("error getting signing time: %s\n", ksba_strerror (err)); + sigtime = (time_t)-1; + } + log_debug ("signer %d - sigtime: ", signer); + print_time (sigtime); + log_printf ("\n"); + + err = ksba_cms_get_message_digest (cms, signer, &msgdigest, &msgdigestlen); if (err) |