|
Lines 3115-3142
size_t
Link Here
|
| 3115 |
sshkey_format_cert_validity(const struct sshkey_cert *cert, char *s, size_t l) |
3115 |
sshkey_format_cert_validity(const struct sshkey_cert *cert, char *s, size_t l) |
| 3116 |
{ |
3116 |
{ |
| 3117 |
char from[32], to[32], ret[128]; |
3117 |
char from[32], to[32], ret[128]; |
| 3118 |
time_t tt; |
|
|
| 3119 |
struct tm *tm; |
| 3120 |
|
3118 |
|
| 3121 |
*from = *to = '\0'; |
3119 |
*from = *to = '\0'; |
| 3122 |
if (cert->valid_after == 0 && |
3120 |
if (cert->valid_after == 0 && |
| 3123 |
cert->valid_before == 0xffffffffffffffffULL) |
3121 |
cert->valid_before == 0xffffffffffffffffULL) |
| 3124 |
return strlcpy(s, "forever", l); |
3122 |
return strlcpy(s, "forever", l); |
| 3125 |
|
3123 |
|
| 3126 |
if (cert->valid_after != 0) { |
3124 |
if (cert->valid_after != 0) |
| 3127 |
/* XXX revisit INT_MAX in 2038 :) */ |
3125 |
format_absolute_time(cert->valid_after, from, sizeof(from)); |
| 3128 |
tt = cert->valid_after > INT_MAX ? |
3126 |
if (cert->valid_before != 0xffffffffffffffffULL) |
| 3129 |
INT_MAX : cert->valid_after; |
3127 |
format_absolute_time(cert->valid_before, to, sizeof(to)); |
| 3130 |
tm = localtime(&tt); |
|
|
| 3131 |
strftime(from, sizeof(from), "%Y-%m-%dT%H:%M:%S", tm); |
| 3132 |
} |
| 3133 |
if (cert->valid_before != 0xffffffffffffffffULL) { |
| 3134 |
/* XXX revisit INT_MAX in 2038 :) */ |
| 3135 |
tt = cert->valid_before > INT_MAX ? |
| 3136 |
INT_MAX : cert->valid_before; |
| 3137 |
tm = localtime(&tt); |
| 3138 |
strftime(to, sizeof(to), "%Y-%m-%dT%H:%M:%S", tm); |
| 3139 |
} |
| 3140 |
|
3128 |
|
| 3141 |
if (cert->valid_after == 0) |
3129 |
if (cert->valid_after == 0) |
| 3142 |
snprintf(ret, sizeof(ret), "before %s", to); |
3130 |
snprintf(ret, sizeof(ret), "before %s", to); |