summaryrefslogtreecommitdiff
path: root/cf/crypto.m4
diff options
context:
space:
mode:
Diffstat (limited to 'cf/crypto.m4')
-rw-r--r--cf/crypto.m435
1 files changed, 30 insertions, 5 deletions
diff --git a/cf/crypto.m4 b/cf/crypto.m4
index 075568b1b..b8b011dd1 100644
--- a/cf/crypto.m4
+++ b/cf/crypto.m4
@@ -67,8 +67,23 @@ AC_DEFUN([KRB_CRYPTO],[
AC_ARG_WITH([hcrypto-default-backend],
AS_HELP_STRING([--with-hcrypto-default-backend=cc|pkcs11_hcrypto|ossl|w32crypto|hcrypto],
[specify the default hcrypto backend]),
- [CFLAGS="${CFLAGS} -DHCRYPTO_DEF_PROVIDER=${withval}"],
+ [
+ CFLAGS="${CFLAGS} -DHCRYPTO_DEF_PROVIDER=${withval}"
+ case "$withval" in
+ cc) AC_DEFINE(HCRYPTO_DEF_PROVIDER, [cc], [Define to one of cc, pkcs11, ossl, w32crypto, or hcrypto to set a default hcrypto provider]);;
+ pkcs11_hcrypto) AC_DEFINE(HCRYPTO_DEF_PROVIDER, [pkcs11_hcrypto], [Define to one of cc, pkcs11, ossl, w32crypto, or hcrypto to set a default hcrypto provider]);;
+ ossl) AC_DEFINE(HCRYPTO_DEF_PROVIDER, [ossl], [Define to one of cc, pkcs11, ossl, w32crypto, or hcrypto to set a default hcrypto provider]);;
+ w32crypto) AC_DEFINE(HCRYPTO_DEF_PROVIDER, [w32crypto], [Define to one of cc, pkcs11, ossl, w32crypto, or hcrypto to set a default hcrypto provider]);;
+ hcrypto) AC_DEFINE(HCRYPTO_DEF_PROVIDER, [hcrypto], [Define to one of cc, pkcs11, ossl, w32crypto, or hcrypto to set a default hcrypto provider]);;
+ *) echo "Invalid hcrypto provider name ($withval)"; exit 5;;
+ esac
+ ],
[])
+AC_ARG_WITH([hcrypto-fallback],
+ AS_HELP_STRING([--without-hcrypto-fallback],
+ [disable fallback on hcrypto for unavailable algorithms]),
+ [AC_DEFINE([HCRYPTO_FALLBACK],0,[Set to 1 to allow fallback to hcrypto for unavailable algorithms])],
+ [AC_DEFINE([HCRYPTO_FALLBACK],1,[Set to 1 to allow fallback to hcrypto for unavailable algorithms])])
AC_WITH_ALL([openssl])
AC_MSG_CHECKING([for crypto library])
@@ -79,18 +94,22 @@ if test "$with_openssl" = "yes"; then
with_openssl=/usr
fi
if test "$with_openssl" != "no"; then
+ saved_CFLAGS="${CFLAGS}"
+ saved_LDFLAGS="${LDFLAGS}"
INCLUDE_openssl_crypto=
LIB_openssl_crypto=
if test "$with_openssl_include" != ""; then
- INCLUDE_openssl_crypto="${with_openssl_include}"
+ INCLUDE_openssl_crypto="-I${with_openssl_include}"
else
- INCLUDE_openssl_crypto="${with_openssl}/include"
+ INCLUDE_openssl_crypto="-I${with_openssl}/include"
fi
if test "$with_openssl_lib" != ""; then
LIB_openssl_crypto="-L${with_openssl_lib}"
+ elif test "${with_openssl}" != "/usr" -a -d "${with_openssl}/lib"; then
+ LIB_openssl_crypto="-L${with_openssl}/lib"
fi
- CFLAGS="-DHAVE_HCRYPTO_W_OPENSSL -I${INCLUDE_openssl_crypto} ${CFLAGS}"
- # XXX What about rpath? Yeah...
+ CFLAGS="-DHAVE_HCRYPTO_W_OPENSSL ${INCLUDE_openssl_crypto} ${CFLAGS}"
+ LDFLAGS="${LIB_openssl_crypto} ${LDFLAGS}"
AC_CHECK_LIB([crypto], [OPENSSL_init],
[LIB_openssl_crypto="${LIB_openssl_crypto} -lcrypto"; openssl=yes], [openssl=no], [])
# These cases are just for static linking on older OSes,
@@ -107,6 +126,12 @@ if test "$with_openssl" != "no"; then
AC_CHECK_LIB([crypto], [OPENSSL_init],
[LIB_openssl_crypto="${LIB_openssl_crypto} -lcrypto -ldl -lnsl -lsocket"; openssl=yes], [openssl=no], [-ldl -lnsl -lsocket])
fi
+ if test "$openssl" = "no"; then
+ INCLUDE_openssl_crypto=
+ LIB_openssl_crypto=
+ fi
+ CFLAGS="${saved_CFLAGS}"
+ LDFLAGS="${saved_LDFLAGS}"
fi
LIB_hcrypto='$(top_builddir)/lib/hcrypto/libhcrypto.la'