aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2017-01-04 17:07:42 +0000
committerLuke Dashjr <luke-jr+git@utopios.org>2017-01-04 18:37:37 +0000
commit0388afe69dd85ca9549727ee105ba7017169b464 (patch)
tree2d8193433c62f7a91613f5845e03e5f1a028c594
parentb05b1af10b9a5298bd90bea439f0fd6c636e0cfa (diff)
downloadbitcoin-0388afe69dd85ca9549727ee105ba7017169b464.tar.xz
Let autoconf detect presence of EVP_MD_CTX_new
Fixes LibreSSL compatibility
-rw-r--r--configure.ac7
-rw-r--r--src/qt/paymentrequestplus.cpp4
2 files changed, 9 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index ced258e02e..02af0d638d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -832,6 +832,13 @@ else
fi
fi
+save_CXXFLAGS="${CXXFLAGS}"
+CXXFLAGS="${CXXFLAGS} ${CRYPTO_CFLAGS} ${SSL_CFLAGS}"
+AC_CHECK_DECLS([EVP_MD_CTX_new],,,[AC_INCLUDES_DEFAULT
+#include <openssl/x509_vfy.h>
+])
+CXXFLAGS="${save_CXXFLAGS}"
+
dnl univalue check
need_bundled_univalue=yes
diff --git a/src/qt/paymentrequestplus.cpp b/src/qt/paymentrequestplus.cpp
index 82be4d831f..0d4907bcad 100644
--- a/src/qt/paymentrequestplus.cpp
+++ b/src/qt/paymentrequestplus.cpp
@@ -159,7 +159,7 @@ bool PaymentRequestPlus::getMerchant(X509_STORE* certStore, QString& merchant) c
std::string data_to_verify; // Everything but the signature
rcopy.SerializeToString(&data_to_verify);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if HAVE_DECL_EVP_MD_CTX_NEW
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
if (!ctx) throw SSLVerifyError("Error allocating OpenSSL context.");
#else
@@ -174,7 +174,7 @@ bool PaymentRequestPlus::getMerchant(X509_STORE* certStore, QString& merchant) c
!EVP_VerifyFinal(ctx, (const unsigned char*)paymentRequest.signature().data(), (unsigned int)paymentRequest.signature().size(), pubkey)) {
throw SSLVerifyError("Bad signature, invalid payment request.");
}
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if HAVE_DECL_EVP_MD_CTX_NEW
EVP_MD_CTX_free(ctx);
#endif