summaryrefslogtreecommitdiff
path: root/contrib/pgcrypto/openssl.c
diff options
context:
space:
mode:
authorHeikki Linnakangas2016-09-15 19:29:39 +0000
committerHeikki Linnakangas2016-09-15 19:52:51 +0000
commit5c6df67e0c961f68e73e7c1e6312211ed59da00a (patch)
tree83959fc3c32e01bbdb2f4610efff86c0ab5c4c42 /contrib/pgcrypto/openssl.c
parentffccee473682ed18a27d667b7a4f45d802dd61c4 (diff)
Fix building with LibreSSL.
LibreSSL defines OPENSSL_VERSION_NUMBER to claim that it is version 2.0.0, but it doesn't have the functions added in OpenSSL 1.1.0. Add autoconf checks for the individual functions we need, and stop relying on OPENSSL_VERSION_NUMBER. Backport to 9.5 and 9.6, like the patch that broke this. In the back-branches, there are still a few OPENSSL_VERSION_NUMBER checks left, to check for OpenSSL 0.9.8 or 0.9.7. I left them as they were - LibreSSL has all those functions, so they work as intended. Per buildfarm member curculio. Discussion: <2442.1473957669@sss.pgh.pa.us>
Diffstat (limited to 'contrib/pgcrypto/openssl.c')
-rw-r--r--contrib/pgcrypto/openssl.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/contrib/pgcrypto/openssl.c b/contrib/pgcrypto/openssl.c
index e264aa49df6..851cb616cb1 100644
--- a/contrib/pgcrypto/openssl.c
+++ b/contrib/pgcrypto/openssl.c
@@ -914,10 +914,6 @@ px_find_cipher(const char *name, PX_Cipher **res)
static int openssl_random_init = 0;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
-#define RAND_OpenSSL RAND_SSLeay
-#endif
-
/*
* OpenSSL random should re-feeded occasionally. From /dev/urandom
* preferably.
@@ -926,7 +922,13 @@ static void
init_openssl_rand(void)
{
if (RAND_get_rand_method() == NULL)
+ {
+#ifdef HAVE_RAND_OPENSSL
RAND_set_rand_method(RAND_OpenSSL());
+#else
+ RAND_set_rand_method(RAND_SSLeay());
+#endif
+ }
openssl_random_init = 1;
}