# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 8
+#serial 8 (PowerDNS modified)
AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL])
AC_DEFUN([AX_CHECK_OPENSSL], [
# then use that information and don't search ssldirs
AC_PATH_PROG([PKG_CONFIG], [pkg-config])
if test x"$PKG_CONFIG" != x""; then
- OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
+ OPENSSL_LDFLAGS=`$PKG_CONFIG libcryptol --libs-only-L 2>/dev/null`
if test $? = 0; then
- OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
- OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
+ OPENSSL_LIBS=`$PKG_CONFIG libcrypto --libs-only-l 2>/dev/null`
+ OPENSSL_INCLUDES=`$PKG_CONFIG libcrypto --cflags-only-I 2>/dev/null`
found=true
fi
fi
if ! $found; then
OPENSSL_INCLUDES=
for ssldir in $ssldirs; do
- AC_MSG_CHECKING([for openssl/ssl.h in $ssldir])
- if test -f "$ssldir/include/openssl/ssl.h"; then
+ AC_MSG_CHECKING([for openssl/crypto.h in $ssldir])
+ if test -f "$ssldir/include/openssl/crypto.h"; then
OPENSSL_INCLUDES="-I$ssldir/include"
OPENSSL_LDFLAGS="-L$ssldir/lib"
- OPENSSL_LIBS="-lssl -lcrypto"
+ OPENSSL_LIBS="-lcrypto"
found=true
AC_MSG_RESULT([yes])
break
LIBS="$OPENSSL_LIBS $LIBS"
CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([#include <openssl/ssl.h>], [SSL_new(NULL)])],
+ [AC_LANG_PROGRAM([#include <openssl/crypto.h>], [CRYPTO_free(NULL)])],
[
AC_MSG_RESULT([yes])
$1
AC_SUBST([OPENSSL_LIBS])
AC_SUBST([OPENSSL_LDFLAGS])
])
-
#include "dns_random.hh"
-/* pthread OpemSSL locking */
+/* pthread locking */
static pthread_mutex_t *locks;
OPENSSL_free(locks);
}
+
+/* seeding PRNG */
+
void openssl_seed()
-{
+{
std::string entropy;
entropy.reserve(1024);
-
+
unsigned int r;
for(int i=0; i<1024; i+=4) {
r=dns_random(0xffffffff);
entropy.append((const char*)&r, 4);
}
-
+
RAND_seed((const unsigned char*)entropy.c_str(), 1024);
}