+# -----------------------------------------------------------
+# Check whether OpenSSL is available
+# -----------------------------------------------------------
+AC_MSG_CHECKING([for OpenSSL])
+dnl The following uses quadrigraphs:
+dnl '@<:@' = '['
+dnl '@:>@' = ']'
+AC_ARG_WITH(openssl,
+ AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
+ [with_openssl_directory=${withval}])
+
+if test "x$with_openssl_directory" != "x"; then
+ OPENSSL_LIBS="-lssl -lcrypto"
+ OPENSSL_INC=""
+
+ if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
+ OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
+ OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
+ fi
+
+ saved_LIBS="${LIBS}"
+ saved_CFLAGS="${CFLAGS}"
+ LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
+ CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
+
+ AC_TRY_LINK([ #include <openssl/ssl.h> ],
+ [ CRYPTO_set_id_callback(NULL); ],
+ [
+ support_tls="yes"
+ support_crypto="yes"
+ ],
+ [ support_tls="no" ]
+ )
+
+ AC_TRY_LINK([ #include <openssl/evp.h> ],
+ [ EVP_sha512(); ],
+ [ ac_cv_openssl_sha2="yes" ],
+ [ ac_cv_openssl_sha2="no" ]
+ )
+
+ # Solaris disables greater than 128+ bit encryption in their OpenSSL
+ # implementation, presumably for export reasons. If 192bit AES
+ # is available, we assume that we're running with a 'non-export'
+ # openssl library.
+ AC_TRY_LINK([ #include <openssl/evp.h> ],
+ [ EVP_aes_192_cbc(); ],
+ [ ac_cv_openssl_export="no" ],
+ [ ac_cv_openssl_export="yes" ]
+ )
+
+ LIBS="${saved_LIBS}"
+ CFLAGS="${saved_CFLAGS}"
+
+ if test "$support_tls" = "yes"; then
+ AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
+ AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
+ AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
+ fi
+
+ if test "$ac_cv_openssl_sha2" = "yes"; then
+ AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
+ fi
+
+ if test "$ac_cv_openssl_export" = "yes"; then
+ AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
+ fi
+else
+ support_tls="no"
+ support_crypto="no"
+ OPENSSL_LIBS=""
+ OPENSSL_INC=""
+fi
+
+AC_MSG_RESULT([$support_tls])
+AC_SUBST(OPENSSL_LIBS)
+AC_SUBST(OPENSSL_INC)
+
+
+# -----------------------------------------------------------
+# Python and OpenSSL are using dlopen
+# -----------------------------------------------------------
+
+if test "$support_python" = "yes" -o "$support_tls" = "yes"; then
+ AC_SEARCH_LIBS(dlopen, [dl])
+fi
+