aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Malmberg <wb8tyw@qsl.net>2015-07-01 20:54:09 -0500
committerJay Satiro <raysatiro@yahoo.com>2015-07-14 01:25:36 -0400
commit79416fb2d6d906210c93e6f5710cea201bdf6b0e (patch)
tree53ccb87492c6631f093e614a2c9ec0e5a52a0008
parent8f0178a56b72325a3906c0678a029cd33cfec84d (diff)
openssl: VMS support for SHA256
setup-vms.h: More symbols for SHA256, hacks for older VAX openssl.h: Use OpenSSL OPENSSL_NO_SHA256 macro to allow building on VAX. openssl.c: Use OpenSSL version checks and OPENSSL_NO_SHA256 macro to allow building on VAX and 64 bit VMS.
-rw-r--r--lib/setup-vms.h8
-rw-r--r--lib/vtls/openssl.c8
-rw-r--r--lib/vtls/openssl.h2
3 files changed, 15 insertions, 3 deletions
diff --git a/lib/setup-vms.h b/lib/setup-vms.h
index 79844daa4..520a35daa 100644
--- a/lib/setup-vms.h
+++ b/lib/setup-vms.h
@@ -249,7 +249,9 @@ char * unix_path;
#define MD5_Init MD5_INIT
#define MD5_Update MD5_UPDATE
#define OPENSSL_add_all_algo_noconf OPENSSL_ADD_ALL_ALGO_NOCONF
+#ifndef __VAX
#define OPENSSL_load_builtin_modules OPENSSL_LOAD_BUILTIN_MODULES
+#endif
#define PEM_read_X509 PEM_READ_X509
#define PEM_write_bio_X509 PEM_WRITE_BIO_X509
#define PKCS12_PBE_add PKCS12_PBE_ADD
@@ -353,6 +355,12 @@ char * unix_path;
#define sk_pop SK_POP
#define sk_pop_free SK_POP_FREE
#define sk_value SK_VALUE
+#ifdef __VAX
+#define OPENSSL_NO_SHA256
+#endif
+#define SHA256_Final SHA256_FINAL
+#define SHA256_Init SHA256_INIT
+#define SHA256_Update SHA256_UPDATE
#define USE_UPPERCASE_GSSAPI 1
#define gss_seal GSS_SEAL
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index e41499f90..beebdc1b7 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -68,7 +68,7 @@
#include <openssl/pkcs12.h>
#endif
-#ifndef HAVE_BORINGSSL
+#if (OPENSSL_VERSION_NUMBER >= 0x0090808fL) && !defined(OPENSSL_IS_BORINGSSL)
#include <openssl/ocsp.h>
#endif
@@ -136,8 +136,8 @@
#define CONF_modules_load_file(a,b,c)
#endif
-#ifdef OPENSSL_IS_BORINGSSL
-/* not present in BoringSSL */
+#if (OPENSSL_VERSION_NUMBER < 0x0090808fL) || defined(OPENSSL_IS_BORINGSSL)
+/* not present in BoringSSL or older OpenSSL */
#define OPENSSL_load_builtin_modules(x)
#endif
@@ -3183,6 +3183,7 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */
MD5_Final(md5sum, &MD5pw);
}
+#ifndef OPENSSL_NO_SHA256
void Curl_ossl_sha256sum(const unsigned char *tmp, /* input */
size_t tmplen,
unsigned char *sha256sum /* output */,
@@ -3194,6 +3195,7 @@ void Curl_ossl_sha256sum(const unsigned char *tmp, /* input */
SHA256_Update(&SHA256pw, tmp, tmplen);
SHA256_Final(sha256sum, &SHA256pw);
}
+#endif
bool Curl_ossl_cert_status_request(void)
{
diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h
index ebac542b7..a1f347a05 100644
--- a/lib/vtls/openssl.h
+++ b/lib/vtls/openssl.h
@@ -108,7 +108,9 @@ bool Curl_ossl_cert_status_request(void);
#define curlssl_data_pending(x,y) Curl_ossl_data_pending(x,y)
#define curlssl_random(x,y,z) Curl_ossl_random(x,y,z)
#define curlssl_md5sum(a,b,c,d) Curl_ossl_md5sum(a,b,c,d)
+#ifndef OPENSSL_NO_SHA256
#define curlssl_sha256sum(a,b,c,d) Curl_ossl_sha256sum(a,b,c,d)
+#endif
#define curlssl_cert_status_request() Curl_ossl_cert_status_request()
#define DEFAULT_CIPHER_SELECTION \