blob: 82ea456b73cd5b60e72a49b98ee37346299e15f6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
From 59cc22b8d65669da599f1c435fdfe35d4e07db0e Mon Sep 17 00:00:00 2001
From: Ravi Kant Sharma <ravi.kant.sharma@canonical.com>
Date: Thu, 4 Jun 2026 12:49:44 +0200
Subject: [PATCH] crypto-openssl: use ASN1_TIME_to_tm
Introduced in openssl-1.1.1 and is required for openssl-4.
[Dropped ChangeLog hunk]
---
diff --git a/lib/_pkcs11h-crypto-openssl.c b/lib/_pkcs11h-crypto-openssl.c
index 05af65e1..aa58722c 100644
--- a/lib/_pkcs11h-crypto-openssl.c
+++ b/lib/_pkcs11h-crypto-openssl.c
@@ -148,21 +148,15 @@ __pkcs11h_crypto_openssl_certificate_get_expiration (
notBefore != NULL &&
notAfter != NULL &&
X509_cmp_current_time (notBefore) <= 0 &&
- X509_cmp_current_time (notAfter) >= 0 &&
- notAfter->length >= 12
+ X509_cmp_current_time (notAfter) >= 0
) {
struct tm tm1;
memset (&tm1, 0, sizeof (tm1));
- tm1.tm_year = (notAfter->data[ 0] - '0') * 10 + (notAfter->data[ 1] - '0') + 100;
- tm1.tm_mon = (notAfter->data[ 2] - '0') * 10 + (notAfter->data[ 3] - '0') - 1;
- tm1.tm_mday = (notAfter->data[ 4] - '0') * 10 + (notAfter->data[ 5] - '0');
- tm1.tm_hour = (notAfter->data[ 6] - '0') * 10 + (notAfter->data[ 7] - '0');
- tm1.tm_min = (notAfter->data[ 8] - '0') * 10 + (notAfter->data[ 9] - '0');
- tm1.tm_sec = (notAfter->data[10] - '0') * 10 + (notAfter->data[11] - '0');
-
- *expiration = mktime (&tm1);
- *expiration += (int)(mktime (localtime (expiration)) - mktime (gmtime (expiration)));
+ if (ASN1_TIME_to_tm (notAfter, &tm1)) {
+ *expiration = mktime (&tm1);
+ *expiration += (int)(mktime (localtime (expiration)) - mktime (gmtime (expiration)));
+ }
}
cleanup:
|