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
commit5176ab31ca58949fc78b5b06b23adf63a83b9c44 (patch)
treeaf867a635253990b4a88720849f04a8a6bb5d8b3 /src/lib/libtls
parentc84d6a97971ee756cdbcf3936caaeaa66a6d2289 (diff)
downloadopenbsd-5176ab31ca58949fc78b5b06b23adf63a83b9c44.tar.gz
openbsd-5176ab31ca58949fc78b5b06b23adf63a83b9c44.tar.bz2
openbsd-5176ab31ca58949fc78b5b06b23adf63a83b9c44.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}