Make tor-print-ed-signing-cert output RFC1123 and unix timestamps as well

This commit is contained in:
rl1987 2019-07-10 11:36:26 +03:00
parent 5303dbe624
commit ffce19a9ec
3 changed files with 17 additions and 0 deletions

4
changes/ticket31012 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (operator tools):
- Make tor-print-ed-signing-cert(1) print certificate expiration date in
RFC 1123 and UNIX timestamp formats, to make output machine readable.
Fixes bug 31012; bugfix on 0.3.5.1-alpha.

View File

@ -21,6 +21,12 @@ DESCRIPTION
**tor-print-ed-signing-cert** is utility program for Tor relay operators to **tor-print-ed-signing-cert** is utility program for Tor relay operators to
check expiration date of ed25519 signing certificate. check expiration date of ed25519 signing certificate.
Expiration date is printed in three formats:
* Human-readable timestamp, localized to current timezone.
* RFC 1123 timestamp (at GMT timezone).
* Unix time value.
SEE ALSO SEE ALSO
-------- --------
**tor**(1) + **tor**(1) +

View File

@ -10,11 +10,13 @@
#include "lib/cc/torint.h" /* TOR_PRIdSZ */ #include "lib/cc/torint.h" /* TOR_PRIdSZ */
#include "lib/crypt_ops/crypto_format.h" #include "lib/crypt_ops/crypto_format.h"
#include "lib/malloc/malloc.h" #include "lib/malloc/malloc.h"
#include "lib/encoding/time_fmt.h"
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
ed25519_cert_t *cert = NULL; ed25519_cert_t *cert = NULL;
char rfc1123_buf[RFC1123_TIME_LEN+1] = "";
if (argc != 2) { if (argc != 2) {
fprintf(stderr, "Usage:\n"); fprintf(stderr, "Usage:\n");
@ -59,6 +61,11 @@ main(int argc, char **argv)
printf("Expires at: %s", ctime(&expires_at)); printf("Expires at: %s", ctime(&expires_at));
format_rfc1123_time(rfc1123_buf, expires_at);
printf("RFC 1123 timestamp: %s\n", rfc1123_buf);
printf("UNIX timestamp: %ld\n", (long int)expires_at);
ed25519_cert_free(cert); ed25519_cert_free(cert);
return 0; return 0;