123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690 |
- #***************************************************************************
- # _ _ ____ _
- # Project ___| | | | _ \| |
- # / __| | | | |_) | |
- # | (__| |_| | _ <| |___
- # \___|\___/|_| \_\_____|
- #
- # Copyright (C) 1998 - 2021, Daniel Stenberg, <[email protected]>, et al.
- #
- # This software is licensed as described in the file COPYING, which
- # you should have received as part of this distribution. The terms
- # are also available at https://curl.se/docs/copyright.html.
- #
- # You may opt to use, copy, modify, merge, publish, distribute and/or sell
- # copies of the Software, and permit persons to whom the Software is
- # furnished to do so, under the terms of the COPYING file.
- #
- # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- # KIND, either express or implied.
- #
- #***************************************************************************
- # File version for 'aclocal' use. Keep it a single number.
- # serial 5
- dnl CURL_CHECK_OPENSSL_API_HEADERS
- dnl -------------------------------------------------
- dnl Find out OpenSSL headers API version, as reported
- dnl by OPENSSL_VERSION_NUMBER. No runtime checks
- dnl allowed here for cross-compilation support.
- dnl HAVE_OPENSSL_API_HEADERS is defined as appropriate
- dnl only for systems which actually run the configure
- dnl script. Config files generated manually or in any
- dnl other way shall not define this.
- AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
- #
- tst_api="unknown"
- #
- AC_MSG_CHECKING([for OpenSSL headers version])
- CURL_CHECK_DEF([OPENSSL_VERSION_NUMBER], [
- # ifdef USE_OPENSSL
- # include <openssl/crypto.h>
- # else
- # include <crypto.h>
- # endif
- ], [silent])
- CURL_CHECK_DEF([OPENSSL_VERSION_STR], [
- # include <openssl/crypto.h>
- ], [silent])
- if test "$curl_cv_have_def_OPENSSL_VERSION_NUMBER" = "yes"; then
- tst_verlen=`expr "$curl_cv_def_OPENSSL_VERSION_NUMBER" : '.*'`
- case "x$tst_verlen" in
- x6)
- tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3`
- tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 4`
- tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5`
- tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
- ;;
- x11|x10)
- tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3`
- tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5`
- tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7`
- tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
- ;;
- *)
- if test "$curl_cv_have_def_OPENSSL_VERSION_STR" = "yes"; then
- ver=`echo $curl_cv_def_OPENSSL_VERSION_STR | sed 's/"//g'`;
- tst_vermaj=`echo $ver | cut -d. -f1`
- tst_vermin=`echo $ver | cut -d. -f2`
- tst_verfix=`echo $ver | cut -d. -f3`
- tst_show="$ver"
- tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
- else
- tst_api="unknown"
- fi
- ;;
- esac
- case $tst_api in
- 0x111) tst_show="1.1.1" ;;
- 0x110) tst_show="1.1.0" ;;
- 0x102) tst_show="1.0.2" ;;
- 0x101) tst_show="1.0.1" ;;
- 0x100) tst_show="1.0.0" ;;
- 0x099) tst_show="0.9.9" ;;
- 0x098) tst_show="0.9.8" ;;
- 0x097) tst_show="0.9.7" ;;
- 0x096) tst_show="0.9.6" ;;
- 0x095) tst_show="0.9.5" ;;
- 0x094) tst_show="0.9.4" ;;
- 0x093) tst_show="0.9.3" ;;
- 0x092) tst_show="0.9.2" ;;
- 0x091) tst_show="0.9.1" ;;
- *)
- if test -z "$tst_show"; then
- tst_show="unknown"
- fi
- ;;
- esac
- tst_show="$tst_show - $tst_api"
- else
- tst_show="unknown"
- fi
- AC_MSG_RESULT([$tst_show])
- #
- dnl if test "$tst_api" != "unknown"; then
- dnl AC_DEFINE_UNQUOTED(HAVE_OPENSSL_API_HEADERS, $tst_api,
- dnl [OpenSSL headers configure time API. Defined only by configure script.
- dnl No matter what, do not ever define this manually or by any other means.])
- dnl fi
- curl_openssl_api_headers=$tst_api
- ])
- dnl CURL_CHECK_OPENSSL_API_LIBRARY
- dnl -------------------------------------------------
- dnl Find out OpenSSL library API version, performing
- dnl only link tests in order to avoid getting fooled
- dnl by mismatched OpenSSL headers. No runtime checks
- dnl allowed here for cross-compilation support.
- dnl HAVE_OPENSSL_API_LIBRARY is defined as appropriate
- dnl only for systems which actually run the configure
- dnl script. Config files generated manually or in any
- dnl other way shall not define this.
- dnl
- dnl Most probably we should not bother attempting to
- dnl detect OpenSSL library development API versions
- dnl 0.9.9 and 1.1.0. For our intended use, detecting
- dnl released versions should be good enough.
- dnl
- dnl Given that currently we are not using the result
- dnl of this check, except for informative purposes,
- dnl lets try to figure out everything.
- AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
- #
- tst_api="unknown"
- #
- AC_MSG_CHECKING([for OpenSSL library version])
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CTX_load_verify_dir])
- ],[
- tst_api="0x300"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([ERR_clear_last_mark])
- ],[
- tst_api="0x111"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- case $host in
- *-*-vms*)
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_not_resumbl_sess_cb])
- ],[
- tst_api="0x110"
- ])
- ;;
- *)
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_not_resumable_session_callback])
- ],[
- tst_api="0x110"
- ])
- ;;
- esac
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CONF_CTX_new])
- ],[
- tst_api="0x102"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_renegotiate_abbreviated])
- ],[
- tst_api="0x101"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([OBJ_add_sigid])
- ],[
- tst_api="0x100"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([ERR_set_mark])
- ],[
- tst_api="0x098"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([ERR_peek_last_error])
- ],[
- tst_api="0x097"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([c2i_ASN1_OBJECT])
- ],[
- tst_api="0x096"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_purpose])
- ],[
- tst_api="0x095"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([OBJ_obj2txt])
- ],[
- tst_api="0x094"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_get_verify_depth])
- ],[
- tst_api="0x093"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_library_init])
- ],[
- tst_api="0x092"
- ])
- fi
- if test "$tst_api" = "unknown"; then
- AC_LINK_IFELSE([
- AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_cipher_list])
- ],[
- tst_api="0x091"
- ])
- fi
- case $tst_api in
- 0x300) tst_show="3.0.0" ;;
- 0x111) tst_show="1.1.1" ;;
- 0x110) tst_show="1.1.0" ;;
- 0x102) tst_show="1.0.2" ;;
- 0x101) tst_show="1.0.1" ;;
- 0x100) tst_show="1.0.0" ;;
- 0x099) tst_show="0.9.9" ;;
- 0x098) tst_show="0.9.8" ;;
- 0x097) tst_show="0.9.7" ;;
- 0x096) tst_show="0.9.6" ;;
- 0x095) tst_show="0.9.5" ;;
- 0x094) tst_show="0.9.4" ;;
- 0x093) tst_show="0.9.3" ;;
- 0x092) tst_show="0.9.2" ;;
- 0x091) tst_show="0.9.1" ;;
- *) tst_show="unknown" ;;
- esac
- AC_MSG_RESULT([$tst_show])
- #
- dnl if test "$tst_api" != "unknown"; then
- dnl AC_DEFINE_UNQUOTED(HAVE_OPENSSL_API_LIBRARY, $tst_api,
- dnl [OpenSSL library link time API. Defined only by configure script.
- dnl No matter what, do not ever define this manually or by any other means.])
- dnl fi
- curl_openssl_api_library=$tst_api
- ])
- dnl CURL_CHECK_OPENSSL_API
- dnl -------------------------------------------------
- AC_DEFUN([CURL_CHECK_OPENSSL_API], [
- #
- CURL_CHECK_OPENSSL_API_HEADERS
- CURL_CHECK_OPENSSL_API_LIBRARY
- #
- tst_match="yes"
- #
- AC_MSG_CHECKING([for OpenSSL headers and library versions matching])
- if test "$curl_openssl_api_headers" = "unknown" ||
- test "$curl_openssl_api_library" = "unknown"; then
- tst_match="fail"
- tst_warns="Can not compare OpenSSL headers and library versions."
- elif test "$curl_openssl_api_headers" != "$curl_openssl_api_library"; then
- tst_match="no"
- tst_warns="OpenSSL headers and library versions do not match."
- fi
- AC_MSG_RESULT([$tst_match])
- if test "$tst_match" != "yes"; then
- AC_MSG_WARN([$tst_warns])
- fi
- ])
- dnl **********************************************************************
- dnl Check for OpenSSL libraries and headers
- dnl **********************************************************************
- AC_DEFUN([CURL_WITH_OPENSSL], [
- if test "x$OPT_OPENSSL" != xno; then
- ssl_msg=
- dnl backup the pre-ssl variables
- CLEANLDFLAGS="$LDFLAGS"
- CLEANCPPFLAGS="$CPPFLAGS"
- CLEANLIBS="$LIBS"
- dnl This is for Msys/Mingw
- case $host in
- *-*-msys* | *-*-mingw*)
- AC_MSG_CHECKING([for gdi32])
- my_ac_save_LIBS=$LIBS
- LIBS="-lgdi32 $LIBS"
- AC_LINK_IFELSE([ AC_LANG_PROGRAM([[
- #include <windef.h>
- #include <wingdi.h>
- ]],
- [[
- GdiFlush();
- ]])],
- [ dnl worked!
- AC_MSG_RESULT([yes])],
- [ dnl failed, restore LIBS
- LIBS=$my_ac_save_LIBS
- AC_MSG_RESULT(no)]
- )
- ;;
- esac
- case "$OPT_OPENSSL" in
- yes)
- dnl --with-openssl (without path) used
- PKGTEST="yes"
- PREFIX_OPENSSL=
- ;;
- *)
- dnl check the given --with-openssl spot
- PKGTEST="no"
- PREFIX_OPENSSL=$OPT_OPENSSL
- dnl Try pkg-config even when cross-compiling. Since we
- dnl specify PKG_CONFIG_LIBDIR we're only looking where
- dnl the user told us to look
- OPENSSL_PCDIR="$OPT_OPENSSL/lib/pkgconfig"
- if test -f "$OPENSSL_PCDIR/openssl.pc"; then
- AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
- PKGTEST="yes"
- fi
- if test "$PKGTEST" != "yes"; then
- # try lib64 instead
- OPENSSL_PCDIR="$OPT_OPENSSL/lib64/pkgconfig"
- if test -f "$OPENSSL_PCDIR/openssl.pc"; then
- AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
- PKGTEST="yes"
- fi
- fi
- if test "$PKGTEST" != "yes"; then
- if test ! -f "$PREFIX_OPENSSL/include/openssl/ssl.h"; then
- AC_MSG_ERROR([$PREFIX_OPENSSL is a bad --with-openssl prefix!])
- fi
- fi
- dnl in case pkg-config comes up empty, use what we got
- dnl via --with-openssl
- LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
- if test "$PREFIX_OPENSSL" != "/usr" ; then
- SSL_LDFLAGS="-L$LIB_OPENSSL"
- SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include"
- fi
- SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl"
- ;;
- esac
- if test "$PKGTEST" = "yes"; then
- CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
- if test "$PKGCONFIG" != "no" ; then
- SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
- $PKGCONFIG --libs-only-l --libs-only-other openssl 2>/dev/null`
- SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
- $PKGCONFIG --libs-only-L openssl 2>/dev/null`
- SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
- $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
- AC_SUBST(SSL_LIBS)
- AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
- AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
- AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
- LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/^-L//'`
- dnl use the values pkg-config reported. This is here
- dnl instead of below with CPPFLAGS and LDFLAGS because we only
- dnl learn about this via pkg-config. If we only have
- dnl the argument to --with-openssl we don't know what
- dnl additional libs may be necessary. Hope that we
- dnl don't need any.
- LIBS="$SSL_LIBS $LIBS"
- fi
- fi
- dnl finally, set flags to use SSL
- CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
- LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
- AC_CHECK_LIB(crypto, HMAC_Update,[
- HAVECRYPTO="yes"
- LIBS="-lcrypto $LIBS"
- ],[
- if test -n "$LIB_OPENSSL" ; then
- LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL"
- fi
- if test "$PKGCONFIG" = "no" -a -n "$PREFIX_OPENSSL" ; then
- # only set this if pkg-config wasn't used
- CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include"
- fi
- # Linking previously failed, try extra paths from --with-openssl or
- # pkg-config. Use a different function name to avoid reusing the earlier
- # cached result.
- AC_CHECK_LIB(crypto, HMAC_Init_ex,[
- HAVECRYPTO="yes"
- LIBS="-lcrypto $LIBS"], [
- dnl still no, but what about with -ldl?
- AC_MSG_CHECKING([OpenSSL linking with -ldl])
- LIBS="-lcrypto $CLEANLIBS -ldl"
- AC_LINK_IFELSE([ AC_LANG_PROGRAM([[
- #include <openssl/err.h>
- ]], [[
- ERR_clear_error();
- ]]) ],
- [
- AC_MSG_RESULT(yes)
- HAVECRYPTO="yes"
- ],
- [
- AC_MSG_RESULT(no)
- dnl ok, so what about both -ldl and -lpthread?
- dnl This may be necessary for static libraries.
- AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
- LIBS="-lcrypto $CLEANLIBS -ldl -lpthread"
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([[
- #include <openssl/err.h>
- ]], [[
- ERR_clear_error();
- ]])],
- [
- AC_MSG_RESULT(yes)
- HAVECRYPTO="yes"
- ],
- [
- AC_MSG_RESULT(no)
- LDFLAGS="$CLEANLDFLAGS"
- CPPFLAGS="$CLEANCPPFLAGS"
- LIBS="$CLEANLIBS"
- ])
- ])
- ])
- ])
- if test X"$HAVECRYPTO" = X"yes"; then
- dnl This is only reasonable to do if crypto actually is there: check for
- dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
- AC_CHECK_LIB(ssl, SSL_connect)
- if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
- AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
- OLIBS=$LIBS
- LIBS="-lRSAglue -lrsaref $LIBS"
- AC_CHECK_LIB(ssl, SSL_connect)
- if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- dnl still no SSL_connect
- AC_MSG_RESULT(no)
- LIBS=$OLIBS
- else
- AC_MSG_RESULT(yes)
- fi
- else
- dnl Have the libraries--check for OpenSSL headers
- AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
- openssl/pem.h openssl/ssl.h openssl/err.h,
- ssl_msg="OpenSSL"
- test openssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
- OPENSSL_ENABLED=1
- AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
- if test $ac_cv_header_openssl_x509_h = no; then
- dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
- dnl since 'err.h' might in fact find a krb4 header with the same
- dnl name
- AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
- if test $ac_cv_header_x509_h = yes &&
- test $ac_cv_header_crypto_h = yes &&
- test $ac_cv_header_ssl_h = yes; then
- dnl three matches
- ssl_msg="OpenSSL"
- OPENSSL_ENABLED=1
- fi
- fi
- fi
- if test X"$OPENSSL_ENABLED" != X"1"; then
- LIBS="$CLEANLIBS"
- fi
- if test X"$OPT_OPENSSL" != Xoff &&
- test "$OPENSSL_ENABLED" != "1"; then
- AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!])
- fi
- fi
- if test X"$OPENSSL_ENABLED" = X"1"; then
- dnl These can only exist if OpenSSL exists
- dnl OpenSSL_version is introduced in 3.0.0
- AC_CHECK_FUNCS( RAND_egd \
- SSLv2_client_method \
- OpenSSL_version )
- AC_MSG_CHECKING([for BoringSSL])
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- #include <openssl/base.h>
- ]],[[
- #ifndef OPENSSL_IS_BORINGSSL
- #error not boringssl
- #endif
- ]])
- ],[
- AC_MSG_RESULT([yes])
- AC_DEFINE_UNQUOTED(HAVE_BORINGSSL, 1,
- [Define to 1 if using BoringSSL.])
- ssl_msg="BoringSSL"
- ],[
- AC_MSG_RESULT([no])
- ])
- AC_MSG_CHECKING([for libressl])
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- #include <openssl/opensslv.h>
- ]],[[
- int dummy = LIBRESSL_VERSION_NUMBER;
- ]])
- ],[
- AC_MSG_RESULT([yes])
- AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1,
- [Define to 1 if using libressl.])
- ssl_msg="libressl"
- ],[
- AC_MSG_RESULT([no])
- ])
- AC_MSG_CHECKING([for OpenSSL >= v3])
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- #include <openssl/opensslv.h>
- ]],[[
- #if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
- return 0;
- #else
- #error older than 3
- #endif
- ]])
- ],[
- AC_MSG_RESULT([yes])
- AC_DEFINE_UNQUOTED(HAVE_OPENSSL3, 1,
- [Define to 1 if using OpenSSL 3 or later.])
- dnl OpenSSLv3 marks the DES functions deprecated but we have no
- dnl replacements (yet) so tell the compiler to not warn for them
- dnl
- dnl Ask OpenSSL to suppress the warnings.
- CPPFLAGS="$CPPFLAGS -DOPENSSL_SUPPRESS_DEPRECATED"
- ssl_msg="OpenSSL v3+"
- ],[
- AC_MSG_RESULT([no])
- ])
- fi
- if test "$OPENSSL_ENABLED" = "1"; then
- if test -n "$LIB_OPENSSL"; then
- dnl when the ssl shared libs were found in a path that the run-time
- dnl linker doesn't search through, we need to add it to CURL_LIBRARY_PATH
- dnl to prevent further configure tests to fail due to this
- if test "x$cross_compiling" != "xyes"; then
- CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$LIB_OPENSSL"
- export CURL_LIBRARY_PATH
- AC_MSG_NOTICE([Added $LIB_OPENSSL to CURL_LIBRARY_PATH])
- fi
- fi
- CURL_CHECK_OPENSSL_API
- check_for_ca_bundle=1
- fi
- test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
- fi
- if test X"$OPT_OPENSSL" != Xno &&
- test "$OPENSSL_ENABLED" != "1"; then
- AC_MSG_NOTICE([OPT_OPENSSL: $OPT_OPENSSL])
- AC_MSG_NOTICE([OPENSSL_ENABLED: $OPENSSL_ENABLED])
- AC_MSG_ERROR([--with-openssl was given but OpenSSL could not be detected])
- fi
- dnl **********************************************************************
- dnl Check for the random seed preferences
- dnl **********************************************************************
- if test X"$OPENSSL_ENABLED" = X"1"; then
- AC_ARG_WITH(egd-socket,
- AS_HELP_STRING([--with-egd-socket=FILE],
- [Entropy Gathering Daemon socket pathname]),
- [ EGD_SOCKET="$withval" ]
- )
- if test -n "$EGD_SOCKET" ; then
- AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET",
- [your Entropy Gathering Daemon socket pathname] )
- fi
- dnl Check for user-specified random device
- AC_ARG_WITH(random,
- AS_HELP_STRING([--with-random=FILE],
- [read randomness from FILE (default=/dev/urandom)]),
- [ RANDOM_FILE="$withval" ],
- [
- if test x$cross_compiling != xyes; then
- dnl Check for random device
- AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] )
- else
- AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling])
- fi
- ]
- )
- if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then
- AC_SUBST(RANDOM_FILE)
- AC_DEFINE_UNQUOTED(RANDOM_FILE, "$RANDOM_FILE",
- [a suitable file to read random data from])
- fi
- fi
- dnl ---
- dnl We require OpenSSL with SRP support.
- dnl ---
- if test "$OPENSSL_ENABLED" = "1"; then
- AC_CHECK_LIB(crypto, SRP_Calc_client_key,
- [
- AC_DEFINE(HAVE_OPENSSL_SRP, 1, [if you have the function SRP_Calc_client_key])
- AC_SUBST(HAVE_OPENSSL_SRP, [1])
- ])
- fi
- dnl ---
- dnl Whether the OpenSSL configuration will be loaded automatically
- dnl ---
- if test X"$OPENSSL_ENABLED" = X"1"; then
- AC_ARG_ENABLE(openssl-auto-load-config,
- AS_HELP_STRING([--enable-openssl-auto-load-config],[Enable automatic loading of OpenSSL configuration])
- AS_HELP_STRING([--disable-openssl-auto-load-config],[Disable automatic loading of OpenSSL configuration]),
- [ if test X"$enableval" = X"no"; then
- AC_MSG_NOTICE([automatic loading of OpenSSL configuration disabled])
- AC_DEFINE(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG, 1, [if the OpenSSL configuration won't be loaded automatically])
- fi
- ])
- fi
- ])
|