AC_DEFUN([SASL_DES_CHK], [
AC_ARG_WITH(des, [ --with-des=DIR with DES (look in DIR) [yes] ],
with_des=$withval,
with_des=yes)
LIB_DES=""
if test "$with_des" != no; then
if test -d $with_des; then
CPPFLAGS="$CPPFLAGS -I${with_des}/include"
LDFLAGS="$LDFLAGS -L${with_des}/lib"
fi
AC_CHECK_LIB(crypto, des_cbc_encrypt, [
AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation])
LIB_DES="-lcrypto";
with_des=yes],
with_des=no)],
with_des=no, $LIB_RSAREF)
if test "$with_des" = no; then
AC_CHECK_LIB(crypto, DES_cbc_encrypt, [
AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation])
LIB_DES="-lcrypto";
with_des=yes],
with_des=no)],
with_des=no, $LIB_RSAREF)
fi
if test "$with_des" = no; then
AC_CHECK_LIB(des, des_cbc_encrypt, [LIB_DES="-ldes";
with_des=yes], with_des=no)
fi
if test "$with_des" = no; then
AC_CHECK_LIB(des425, des_cbc_encrypt, [LIB_DES="-ldes425";
with_des=yes], with_des=no)
fi
if test "$with_des" = no; then
AC_CHECK_LIB(des524, des_cbc_encrypt, [LIB_DES="-ldes524";
with_des=yes], with_des=no)
fi
if test "$with_des" = no; then
LIB_RSAREF=""
AC_CHECK_LIB(rsaref, RSAPublicEncrypt,
LIB_RSAREF="-lRSAglue -lrsaref"; cmu_have_rsaref=yes,
cmu_have_rsaref=no)
AC_CHECK_LIB(crypto, des_cbc_encrypt, [
AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation])
LIB_DES="-lcrypto";
with_des=yes],
with_des=no)],
with_des=no, $LIB_RSAREF)
fi
fi
if test "$with_des" != no; then
AC_DEFINE(WITH_DES,[],[Use DES])
fi
AC_SUBST(LIB_DES)
])
AC_DEFUN([SASL_KERBEROS_V4_CHK], [
AC_REQUIRE([SASL_DES_CHK])
AC_ARG_ENABLE(krb4, [ --enable-krb4 enable KERBEROS_V4 authentication [yes] ],
krb4=$enableval,
krb4=no)
if test "$krb4" != no; then
AC_CHECK_LIB(resolv,res_search)
if test -d ${krb4}; then
AC_CACHE_CHECK(for Kerberos includes, cyrus_krbinclude, [
for krbhloc in include/kerberosIV include/kerberos include
do
if test -f ${krb4}/${krbhloc}/krb.h ; then
cyrus_krbinclude=${krb4}/${krbhloc}
break
fi
done
])
if test -n "${cyrus_krbinclude}"; then
CPPFLAGS="$CPPFLAGS -I${cyrus_krbinclude}"
fi
LDFLAGS="$LDFLAGS -L$krb4/lib"
fi
if test "$with_des" != no; then
AC_CHECK_HEADER(krb.h, [
AC_CHECK_LIB(com_err, com_err, [
AC_CHECK_LIB(krb, krb_mk_priv,
[COM_ERR="-lcom_err"; SASL_KRB_LIB="-lkrb"; krb4lib="yes"],
krb4lib=no, $LIB_DES -lcom_err)], [
AC_CHECK_LIB(krb, krb_mk_priv,
[COM_ERR=""; SASL_KRB_LIB="-lkrb"; krb4lib="yes"],
krb4lib=no, $LIB_DES)])], krb4="no")
if test "$krb4" != "no" -a "$krb4lib" = "no"; then
AC_CHECK_LIB(krb4, krb_mk_priv,
[COM_ERR=""; SASL_KRB_LIB="-lkrb4"; krb4=yes],
krb4=no, $LIB_DES)
fi
if test "$krb4" = no; then
AC_WARN(No Kerberos V4 found)
fi
else
AC_WARN(No DES library found for Kerberos V4 support)
krb4=no
fi
fi
if test "$krb4" != no; then
cmu_save_LIBS="$LIBS"
LIBS="$LIBS $SASL_KRB_LIB"
AC_CHECK_FUNCS(krb_get_err_text)
LIBS="$cmu_save_LIBS"
fi
AC_MSG_CHECKING(KERBEROS_V4)
if test "$krb4" != no; then
AC_MSG_RESULT(enabled)
SASL_MECHS="$SASL_MECHS libkerberos4.la"
SASL_STATIC_OBJS="$SASL_STATIC_OBJS ../plugins/kerberos4.o"
AC_DEFINE(STATIC_KERBEROS4,[],[User KERBEROS_V4 Staticly])
AC_DEFINE(HAVE_KRB,[],[Do we have Kerberos 4 Support?])
SASL_KRB_LIB="$SASL_KRB_LIB $LIB_DES $COM_ERR"
else
AC_MSG_RESULT(disabled)
fi
AC_SUBST(SASL_KRB_LIB)
])