git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix DISABLE_DKIM build & test. Fix build on systems lacking MAX in standard includes.
[exim.git]
/
src
/
src
/
tlscert-openssl.c
diff --git
a/src/src/tlscert-openssl.c
b/src/src/tlscert-openssl.c
index 4d45ad9f91b7dd127fcba16085fadf3075bac9fd..690f9508148609b4572c587c02388c9ca4509215 100644
(file)
--- a/
src/src/tlscert-openssl.c
+++ b/
src/src/tlscert-openssl.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2014 - 201
5
*/
+/* Copyright (c) Jeremy Harris 2014 - 201
6
*/
/* This module provides TLS (aka SSL) support for Exim using the OpenSSL
library. It is #included into the tls.c file when that library is used.
/* This module provides TLS (aka SSL) support for Exim using the OpenSSL
library. It is #included into the tls.c file when that library is used.
@@
-17,6
+17,10
@@
library. It is #included into the tls.c file when that library is used.
#include <openssl/rand.h>
#include <openssl/x509v3.h>
#include <openssl/rand.h>
#include <openssl/x509v3.h>
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+# define EXIM_HAVE_ASN1_MACROS
+#endif
+
/*****************************************************
* Export/import a certificate, binary/printable
/*****************************************************
* Export/import a certificate, binary/printable
@@
-119,7
+123,7
@@
int len;
if (!bp)
return badalloc();
len = ASN1_TIME_print(bp, asntime);
if (!bp)
return badalloc();
len = ASN1_TIME_print(bp, asntime);
-len = len > 0 ? (int) BIO_get_mem_data(bp, &s) : 0;
+len = len > 0 ? (int) BIO_get_mem_data(bp,
CSS
&s) : 0;
if (mod && Ustrcmp(mod, "raw") == 0) /* native ASN */
s = string_copyn(s, len);
if (mod && Ustrcmp(mod, "raw") == 0) /* native ASN */
s = string_copyn(s, len);
@@
-137,7
+141,7
@@
else
/*XXX %Z might be glibc-specific? Solaris has it, at least*/
/*XXX should we switch to POSIX locale for this? */
tm.tm_isdst = 0;
/*XXX %Z might be glibc-specific? Solaris has it, at least*/
/*XXX should we switch to POSIX locale for this? */
tm.tm_isdst = 0;
- if (!strptime(CCS s, "%b %e %T %Y %Z", &tm))
+ if (!
len || !
strptime(CCS s, "%b %e %T %Y %Z", &tm))
expand_string_message = US"failed time conversion";
else
expand_string_message = US"failed time conversion";
else
@@
-314,9
+318,13
@@
uschar * cp3;
if (!bp) return badalloc();
if (!bp) return badalloc();
+#ifdef EXIM_HAVE_ASN1_MACROS
+ASN1_STRING_print(bp, adata);
+#else
M_ASN1_OCTET_STRING_print(bp, adata);
M_ASN1_OCTET_STRING_print(bp, adata);
-/* binary data, DER encoded */
+#endif
+/* binary data, DER encoded */
/* just dump for now */
len = BIO_get_mem_data(bp, &cp1);
cp3 = cp2 = store_get(len*3+1);
/* just dump for now */
len = BIO_get_mem_data(bp, &cp1);
cp3 = cp2 = store_get(len*3+1);