diff options
author | Werner Koch <[email protected]> | 2016-08-24 18:10:36 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-08-24 18:10:54 +0000 |
commit | 38798fee5b539d6153a8a7856152959412ee59b5 (patch) | |
tree | 67ade1b8e64d8e3feee2d4530703d0c6e05100e4 | |
parent | core: Set the 'encrcount' field in gpgme_tofu_info_t. (diff) | |
download | gpgme-38798fee5b539d6153a8a7856152959412ee59b5.tar.gz gpgme-38798fee5b539d6153a8a7856152959412ee59b5.zip |
core: Adjust for TOFU_STATS change in gnupg 2.1.16.
* src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen'
to a timestamp value.
* src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX.
--
Using an unsigned long here is okay: We will never get an error and
even on machines where unsigned long is 32 bit (e.g. Windows64) this
allows us to operate until 2106. By then Windows will be a footnote
in history or Windows128 has changed that type to something larger
than 32 bit ;-)
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | src/gpgme.h.in | 8 | ||||
-rw-r--r-- | src/verify.c | 6 |
2 files changed, 5 insertions, 9 deletions
diff --git a/src/gpgme.h.in b/src/gpgme.h.in index c07cac8d..79a7b9fd 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -648,10 +648,10 @@ struct _gpgme_tofu_info /* Number of encryptions done with this binding. Capped at USHRT_MAX. */ unsigned short encrcount; - /* Number of seconds since the first and the most recently seen - * message was verified. */ - unsigned int firstseen; - unsigned int lastseen; + /* Number of seconds since Epoch when the first and the most + * recently seen message were verified. 0 means unknown. */ + unsigned long firstseen; + unsigned long lastseen; /* If non-NULL a human readable string summarizing the TOFU data. */ char *description; diff --git a/src/verify.c b/src/verify.c index e573b016..92eb3334 100644 --- a/src/verify.c +++ b/src/verify.c @@ -818,20 +818,16 @@ parse_tofu_stats (gpgme_signature_t sig, char *args) if (nfields == 4) return 0; /* No more optional fields. */ - /* Parse first and last seen (none or both are required). */ + /* Parse first and last seen timestamps (none or both are required). */ if (nfields < 6) return trace_gpg_error (GPG_ERR_INV_ENGINE); /* "tm2" missing. */ err = _gpgme_strtoul_field (field[4], &uval); if (err) return trace_gpg_error (GPG_ERR_INV_ENGINE); - if (uval > UINT_MAX) - uval = UINT_MAX; ti->firstseen = uval; err = _gpgme_strtoul_field (field[5], &uval); if (err) return trace_gpg_error (GPG_ERR_INV_ENGINE); - if (uval > UINT_MAX) - uval = UINT_MAX; ti->lastseen = uval; return 0; |