mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Work around openssl declaring x509_get_not{Before,After} as functions
Now that x509_get_not{Before,After} are functions in OpenSSL 1.1 (not yet releasesd), we need to define a variant that takes a const pointer to X509 and returns a const pointer to ASN1_time. Part of 17237. I'm not convinced this is an openssl bug or a tor bug. It might be just one of those things.
This commit is contained in:
parent
f7ce93d979
commit
1eb838b303
2 changed files with 13 additions and 4 deletions
4
changes/bug17237_027
Normal file
4
changes/bug17237_027
Normal file
|
@ -0,0 +1,4 @@
|
|||
o Minor features (compilation):
|
||||
- Repair compilation with the most recent (unreleased, alpha)
|
||||
vesions of OpenSSL 1.1. Fixes the 0.2.7-related part of
|
||||
ticket 17237.
|
|
@ -75,6 +75,11 @@
|
|||
#include "container.h"
|
||||
#include <string.h>
|
||||
|
||||
#define X509_get_notBefore_const(cert) \
|
||||
((const ASN1_TIME*) X509_get_notBefore((X509 *)cert))
|
||||
#define X509_get_notAfter_const(cert) \
|
||||
((const ASN1_TIME*) X509_get_notAfter((X509 *)cert))
|
||||
|
||||
/* Enable the "v2" TLS handshake.
|
||||
*/
|
||||
#define V2_HANDSHAKE_SERVER
|
||||
|
@ -2203,7 +2208,7 @@ log_cert_lifetime(int severity, const X509 *cert, const char *problem)
|
|||
if (!(bio = BIO_new(BIO_s_mem()))) {
|
||||
log_warn(LD_GENERAL, "Couldn't allocate BIO!"); goto end;
|
||||
}
|
||||
if (!(ASN1_TIME_print(bio, X509_get_notBefore(cert)))) {
|
||||
if (!(ASN1_TIME_print(bio, X509_get_notBefore_const(cert)))) {
|
||||
tls_log_errors(NULL, LOG_WARN, LD_NET, "printing certificate lifetime");
|
||||
goto end;
|
||||
}
|
||||
|
@ -2211,7 +2216,7 @@ log_cert_lifetime(int severity, const X509 *cert, const char *problem)
|
|||
s1 = tor_strndup(buf->data, buf->length);
|
||||
|
||||
(void)BIO_reset(bio);
|
||||
if (!(ASN1_TIME_print(bio, X509_get_notAfter(cert)))) {
|
||||
if (!(ASN1_TIME_print(bio, X509_get_notAfter_const(cert)))) {
|
||||
tls_log_errors(NULL, LOG_WARN, LD_NET, "printing certificate lifetime");
|
||||
goto end;
|
||||
}
|
||||
|
@ -2374,12 +2379,12 @@ check_cert_lifetime_internal(int severity, const X509 *cert,
|
|||
now = time(NULL);
|
||||
|
||||
t = now + future_tolerance;
|
||||
if (X509_cmp_time(X509_get_notBefore(cert), &t) > 0) {
|
||||
if (X509_cmp_time(X509_get_notBefore_const(cert), &t) > 0) {
|
||||
log_cert_lifetime(severity, cert, "not yet valid");
|
||||
return -1;
|
||||
}
|
||||
t = now - past_tolerance;
|
||||
if (X509_cmp_time(X509_get_notAfter(cert), &t) < 0) {
|
||||
if (X509_cmp_time(X509_get_notAfter_const(cert), &t) < 0) {
|
||||
log_cert_lifetime(severity, cert, "already expired");
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue