AC_DEFUN([tinc_OPENSSL],
[
+ case $host_os in
+ *mingw*)
+ ;;
+ *)
+ AC_CHECK_FUNC(dlopen,
+ [],
+ [AC_CHECK_LIB(dl, dlopen,
+ [LIBS="$LIBS -ldl"],
+ [AC_MSG_ERROR([OpenSSL depends on libdl.]); break]
+ )]
+ )
+ ;;
+ esac
+
AC_ARG_WITH(openssl,
AS_HELP_STRING([--with-openssl=DIR], [OpenSSL base directory, or:]),
[openssl="$withval"
LDFLAGS="$LDFLAGS -L$withval"]
)
- AC_CHECK_HEADERS(openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h openssl/engine.h,
+ AC_CHECK_HEADERS([openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h openssl/engine.h openssl/ecdh.h openssl/ec.h],
[],
[AC_MSG_ERROR([OpenSSL header files not found.]); break]
)
-case $host_os in
- *mingw*)
- AC_CHECK_LIB(crypto, SHA1_version,
- [LIBS="$LIBS -lcrypto -lgdi32 -lcrypt32"],
- [AC_MSG_ERROR([OpenSSL libraries not found.])]
- )
- ;;
- *)
- AC_CHECK_LIB(crypto, SHA1_version,
- [LIBS="$LIBS -lcrypto"],
- [AC_MSG_ERROR([OpenSSL libraries not found.])]
- )
-
- AC_CHECK_FUNC(dlopen,
- [],
- [AC_CHECK_LIB(dl, dlopen,
- [LIBS="$LIBS -ldl"],
- [AC_MSG_ERROR([OpenSSL depends on libdl.]); break]
- )]
- )
- ;;
-esac
-
- AC_CHECK_FUNCS([RAND_pseudo_bytes EVP_EncryptInit_ex], ,
+ AC_CHECK_LIB(crypto, EVP_EncryptInit_ex,
+ [LIBS="-lcrypto $LIBS"],
+ [AC_MSG_ERROR([OpenSSL libraries not found.])]
+ )
+
+ AC_CHECK_FUNCS([RAND_pseudo_bytes EVP_EncryptInit_ex ECDH_compute_key ECDSA_verify], ,
[AC_MSG_ERROR([Missing OpenSSL functionality, make sure you have installed the latest version.]); break],
)