summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/a_time_tm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/a_time_tm.c')
-rw-r--r--src/lib/libcrypto/asn1/a_time_tm.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/a_time_tm.c b/src/lib/libcrypto/asn1/a_time_tm.c
index f0afc00be4..48f9f8b5e1 100644
--- a/src/lib/libcrypto/asn1/a_time_tm.c
+++ b/src/lib/libcrypto/asn1/a_time_tm.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_time_tm.c,v 1.12 2017/05/06 17:12:59 beck Exp $ */ 1/* $OpenBSD: a_time_tm.c,v 1.13 2017/08/13 19:47:49 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2015 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2015 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -58,6 +58,22 @@ ASN1_time_tm_cmp(struct tm *tm1, struct tm *tm2) {
58 return 0; 58 return 0;
59} 59}
60 60
61int
62ASN1_time_tm_clamp_notafter(struct tm *tm)
63{
64#ifdef SMALL_TIME_T
65 struct tm broken_os_epoch_tm;
66 time_t broken_os_epoch_time = INT_MAX;
67
68 if (gmtime_r(&broken_os_epoch_time, &broken_os_epoch_tm) == NULL)
69 return 0;
70
71 if (ASN1_time_tm_cmp(tm, &broken_os_epoch_tm) == 1)
72 memcpy(tm, &broken_os_epoch_tm, sizeof(*tm));
73#endif
74 return 1;
75}
76
61/* Format a time as an RFC 5280 format Generalized time */ 77/* Format a time as an RFC 5280 format Generalized time */
62char * 78char *
63gentime_string_from_tm(struct tm *tm) 79gentime_string_from_tm(struct tm *tm)