AC_MSG_NOTICE([])
AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS])
AC_MSG_NOTICE([])
+AS_IF([test "x$openssl_ecdsa" == "xyes"],
+ [AC_MSG_NOTICE([OpenSSL ecdsa support: yes])],
+ [AC_MSG_NOTICE([OpenSSL ecdsa support: no])]
+)
AS_IF([test "x$needsqlite3" != "x"],
[AC_MSG_NOTICE([SQLite3 support: yes])],
[AC_MSG_NOTICE([SQLite3 support: no])]
[AC_LANG_PROGRAM([#include <openssl/crypto.h>], [CRYPTO_free(NULL)])],
[
AC_MSG_RESULT([yes])
+ openssl_ecdsa=yes
+ AC_CHECK_FUNC(ECDSA_do_sign,
+ [
+ AC_CHECK_DECLS([NID_X9_62_prime256v1, NID_secp384r1], [ : ], [ openssl_ecdsa=no ], [AC_INCLUDES_DEFAULT
+#include <openssl/evp.h>
+ ])
+ ], [
+ openssl_ecdsa=no
+ ])
+ AS_IF([test "x$openssl_ecdsa" = "xyes"], [
+ AC_DEFINE([OPENSSL_USE_ECDSA], [1], [define to 1 if OpenSSL ecdsa support is avalable.])
+ ])
$1
], [
AC_MSG_RESULT([no])
#include "config.h"
#endif
#include <openssl/obj_mac.h>
+#ifdef OPENSSL_USE_ECDSA
#include <openssl/ecdsa.h>
+#endif
#include <openssl/sha.h>
#include <openssl/rand.h>
#include <openssl/rsa.h>
d_key = key;
}
+#ifdef OPENSSL_USE_ECDSA
class OpenSSLECDSADNSCryptoKeyEngine : public DNSCryptoKeyEngine
{
public:
EC_POINT_free(pub_key);
}
+#endif
namespace {
DNSCryptoKeyEngine::report(7, &OpenSSLRSADNSCryptoKeyEngine::maker);
DNSCryptoKeyEngine::report(8, &OpenSSLRSADNSCryptoKeyEngine::maker);
DNSCryptoKeyEngine::report(10, &OpenSSLRSADNSCryptoKeyEngine::maker);
+#ifdef OPENSSL_USE_ECDSA
DNSCryptoKeyEngine::report(13, &OpenSSLECDSADNSCryptoKeyEngine::maker);
DNSCryptoKeyEngine::report(14, &OpenSSLECDSADNSCryptoKeyEngine::maker);
+#endif
}
} loaderOpenSSL;
}