summaryrefslogtreecommitdiff
path: root/src/lib/libtls
diff options
context:
space:
mode:
authorbeck <>2024-03-24 11:30:12 +0000
committerbeck <>2024-03-24 11:30:12 +0000
commit0f167a53fa3e19b7e6bb0620e16c6d11f07f10ca (patch)
treeaf867a635253990b4a88720849f04a8a6bb5d8b3 /src/lib/libtls
parenta1fcde383f7ab72e64fc36b664d4358d5915f2c1 (diff)
downloadopenbsd-0f167a53fa3e19b7e6bb0620e16c6d11f07f10ca.tar.gz
openbsd-0f167a53fa3e19b7e6bb0620e16c6d11f07f10ca.tar.bz2
openbsd-0f167a53fa3e19b7e6bb0620e16c6d11f07f10ca.zip
Convert libressl to use the BoringSSL style time conversions
This gets rid of our last uses of timegm and gmtime in the library and things that ship with it. It includes a bit of refactoring in ocsp_cl.c to remove some obvious ugly. ok tb@
Diffstat (limited to 'src/lib/libtls')
-rw-r--r--src/lib/libtls/tls_conninfo.c26
-rw-r--r--src/lib/libtls/tls_ocsp.c5
2 files changed, 22 insertions, 9 deletions
diff --git a/src/lib/libtls/tls_conninfo.c b/src/lib/libtls/tls_conninfo.c
index 90fdfacad3..08f8714ecd 100644
--- a/src/lib/libtls/tls_conninfo.c
+++ b/src/lib/libtls/tls_conninfo.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_conninfo.c,v 1.24 2023/11/13 10:51:49 tb Exp $ */ 1/* $OpenBSD: tls_conninfo.c,v 1.25 2024/03/24 11:30:12 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2015 Bob Beck <beck@openbsd.org> 4 * Copyright (c) 2015 Bob Beck <beck@openbsd.org>
@@ -19,12 +19,27 @@
19#include <stdio.h> 19#include <stdio.h>
20#include <string.h> 20#include <string.h>
21 21
22#include <openssl/posix_time.h>
22#include <openssl/x509.h> 23#include <openssl/x509.h>
23 24
24#include <tls.h> 25#include <tls.h>
25#include "tls_internal.h" 26#include "tls_internal.h"
26 27
27int ASN1_time_tm_clamp_notafter(struct tm *tm); 28static int
29tls_convert_notafter(struct tm *tm, time_t *out_time)
30{
31 int64_t posix_time;
32
33 /* OPENSSL_timegm() fails if tm is not representable in a time_t */
34 if (OPENSSL_timegm(tm, out_time))
35 return 1;
36 if (!OPENSSL_tm_to_posix(tm, &posix_time))
37 return 0;
38 if (posix_time < INT32_MIN)
39 return 0;
40 *out_time = (posix_time > INT32_MAX) ? INT32_MAX : posix_time;
41 return 1;
42}
28 43
29int 44int
30tls_hex_string(const unsigned char *in, size_t inlen, char **out, 45tls_hex_string(const unsigned char *in, size_t inlen, char **out,
@@ -121,13 +136,10 @@ tls_get_peer_cert_times(struct tls *ctx, time_t *notbefore,
121 goto err; 136 goto err;
122 if (!ASN1_TIME_to_tm(after, &after_tm)) 137 if (!ASN1_TIME_to_tm(after, &after_tm))
123 goto err; 138 goto err;
124 if (!ASN1_time_tm_clamp_notafter(&after_tm)) 139 if (!tls_convert_notafter(&after_tm, notafter))
125 goto err; 140 goto err;
126 if ((*notbefore = timegm(&before_tm)) == -1) 141 if (!OPENSSL_timegm(&before_tm, notbefore))
127 goto err; 142 goto err;
128 if ((*notafter = timegm(&after_tm)) == -1)
129 goto err;
130
131 return (0); 143 return (0);
132 144
133 err: 145 err:
diff --git a/src/lib/libtls/tls_ocsp.c b/src/lib/libtls/tls_ocsp.c
index c7eb3e5986..f7d7ba9199 100644
--- a/src/lib/libtls/tls_ocsp.c
+++ b/src/lib/libtls/tls_ocsp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_ocsp.c,v 1.24 2023/11/13 10:56:19 tb Exp $ */ 1/* $OpenBSD: tls_ocsp.c,v 1.25 2024/03/24 11:30:12 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2015 Marko Kreen <markokr@gmail.com> 3 * Copyright (c) 2015 Marko Kreen <markokr@gmail.com>
4 * Copyright (c) 2016 Bob Beck <beck@openbsd.org> 4 * Copyright (c) 2016 Bob Beck <beck@openbsd.org>
@@ -25,6 +25,7 @@
25 25
26#include <openssl/err.h> 26#include <openssl/err.h>
27#include <openssl/ocsp.h> 27#include <openssl/ocsp.h>
28#include <openssl/posix_time.h>
28#include <openssl/x509.h> 29#include <openssl/x509.h>
29 30
30#include <tls.h> 31#include <tls.h>
@@ -68,7 +69,7 @@ tls_ocsp_asn1_parse_time(struct tls *ctx, ASN1_GENERALIZEDTIME *gt, time_t *gt_t
68 return -1; 69 return -1;
69 if (!ASN1_TIME_to_tm(gt, &tm)) 70 if (!ASN1_TIME_to_tm(gt, &tm))
70 return -1; 71 return -1;
71 if ((*gt_time = timegm(&tm)) == -1) 72 if (!OPENSSL_timegm(&tm, gt_time))
72 return -1; 73 return -1;
73 return 0; 74 return 0;
74} 75}