01e1152003-03-12Niels Möller AC_INIT(nettle.cmod)
bfd43f2003-03-13Niels Möller AC_CONFIG_HEADER(nettle_config.h)
01e1152003-03-12Niels Möller  AC_SET_MAKE AC_MODULE_INIT()
3b73682004-02-27Henrik Grubbström (Grubba) if test "$with_nettle" = "no"; then
2c22ff2013-12-02Martin Nilsson  PIKE_FEATURE_WITHOUT(Nettle)
3b73682004-02-27Henrik Grubbström (Grubba) else AC_CHECK_LIB(gmp, mpz_init) AC_CHECK_LIB(gmp, __mpz_init) AC_CHECK_LIB(gmp, __gmpz_init)
c317452007-03-20Henrik Grubbström (Grubba)  AC_MSG_CHECKING(CryptAcquireContext in -ladvapi32) AC_CACHE_VAL(pike_cv_nettle_advapi32_CryptAcquireContext, [ OLDLIBS="$LIBS" LIBS="-ladvapi32 $LIBS" AC_TRY_LINK([#ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0400 #endif #include <windows.h> #include <wincrypt.h> ],[CryptAcquireContext(0,0,0,0,0);], [pike_cv_nettle_advapi32_CryptAcquireContext=yes], [pike_cv_nettle_advapi32_CryptAcquireContext=no]) LIBS="$OLDLIBS" ]) AC_MSG_RESULT($pike_cv_nettle_advapi32_CryptAcquireContext) if test x"$pike_cv_nettle_advapi32_CryptAcquireContext" = xyes; then LIBS="-ladvapi32 $LIBS" fi
3b73682004-02-27Henrik Grubbström (Grubba)  AC_CHECK_LIB(nettle, nettle_md5_init) AC_CHECK_LIB(nettle, md5_init)
d5f6892013-11-24Martin Nilsson  AC_CHECK_LIB(hogweed, nettle_dsa_generate_keypair)
01e1152003-03-12Niels Möller 
3b73682004-02-27Henrik Grubbström (Grubba)  AC_SUBST(IDEA_OBJ)
c4fce42004-02-26Martin Nilsson 
3b73682004-02-27Henrik Grubbström (Grubba)  if test "x$ac_cv_lib_nettle_nettle_md5_init" = "xyes" -o \ "x$ac_cv_lib_nettle_md5_init" = "xyes"; then PIKE_FEATURE_OK(Nettle)
fe0ca62004-02-26Henrik Grubbström (Grubba) 
3b73682004-02-27Henrik Grubbström (Grubba)  # md4 is available in later versions of nettle
650f102011-12-23Henrik Grubbström (Grubba)  # camellia is available in Nettle 2.1 and later.
dcb2802013-11-30Martin Nilsson  AC_CHECK_HEADERS(nettle/camellia.h nettle/md4.h nettle/sha3.h \
e928b32014-01-05Henrik Grubbström (Grubba)  nettle/arctwo.h nettle/ripemd160.h nettle/gosthash94.h \
4bf09f2013-12-27Henrik Grubbström (Grubba)  nettle/ctr.h nettle/gcm.h nettle/ecdsa.h)
3b73682004-02-27Henrik Grubbström (Grubba)  AC_CHECK_FUNCS(nettle_md4_init)
fe0ca62004-02-26Henrik Grubbström (Grubba) 
3b73682004-02-27Henrik Grubbström (Grubba)  AC_MSG_CHECKING([for idea.c]) # Have the patent-encumbered idea files been purged? if test -f "$srcdir/idea.c" ; then
fe0ca62004-02-26Henrik Grubbström (Grubba)  AC_MSG_RESULT([found]) AC_DEFINE([WITH_IDEA], 1, [idea.c available])
c4fce42004-02-26Martin Nilsson  IDEA_OBJ=idea.o
3b73682004-02-27Henrik Grubbström (Grubba)  else
c4fce42004-02-26Martin Nilsson  AC_MSG_RESULT([no]) IDEA_OBJ=""
3b73682004-02-27Henrik Grubbström (Grubba)  fi
776b502009-07-02Henrik Grubbström (Grubba)  # These might have been purged from the Nettle lib to avoid GPL # contamination. AC_CHECK_FUNCS(nettle_blowfish_decrypt nettle_serpent_decrypt) # This is the recomended interface in Nettle 2.0. AC_CHECK_FUNCS(nettle_yarrow256_slow_reseed)
df35cc2013-11-01Henrik Grubbström (Grubba)  # This wasn't present in old Nettles.
52e8792013-11-27Arne Goedeke  AC_CHECK_FUNCS(nettle_salsa20_crypt nettle_sha224_init)
df35cc2013-11-01Henrik Grubbström (Grubba) 
776b502009-07-02Henrik Grubbström (Grubba)  AC_MSG_CHECKING([for struct yarrow256_ctx.seed_file]) AC_CACHE_VAL(pike_cv_nettle_struct_yarrow256_ctx_seed_file, [ pike_cv_nettle_struct_yarrow256_ctx_seed_file=no AC_TRY_COMPILE([ #include <nettle/yarrow.h> ], [ struct yarrow256_ctx ctx; return !sizeof(ctx.seed_file); ], [ pike_cv_nettle_struct_yarrow256_ctx_seed_file=yes ]) ]) AC_MSG_RESULT($pike_cv_nettle_struct_yarrow256_ctx_seed_file); if test "x$pike_cv_nettle_struct_yarrow256_ctx_seed_file" = "xyes"; then AC_DEFINE(HAVE_STRUCT_YARROW256_CTX_SEED_FILE) fi
4df9fb2009-07-02Henrik Grubbström (Grubba)  AC_MSG_CHECKING([whether nettle_crypt_func is a pointer type]) AC_CACHE_VAL(pike_cv_nettle_crypt_func_is_pointer, [ pike_cv_nettle_crypt_func_is_pointer=no AC_TRY_COMPILE([
61d4242009-07-02Henrik Grubbström (Grubba) /* Note: Old Nettles had the nettle_crypt_func typedef directly * in <nettle/nettle-meta.h> while more modern have it in * <nettle/nettle-types.h>. Since <nettle/nettle-meta.h> * pulls in <nettle/nettle-types.h> it should be sufficient. */ #include <nettle/nettle-meta.h>
4df9fb2009-07-02Henrik Grubbström (Grubba)  ], [ nettle_crypt_func foo = (nettle_crypt_func)(void *)0; return (int)foo; ], [ pike_cv_nettle_crypt_func_is_pointer=yes ]) ]) AC_MSG_RESULT($pike_cv_nettle_crypt_func_is_pointer); if test "x$pike_cv_nettle_crypt_func_is_pointer" = "xyes"; then AC_DEFINE(HAVE_NETTLE_CRYPT_FUNC_IS_POINTER) fi
3b73682004-02-27Henrik Grubbström (Grubba)  else
b5ab692013-06-11Martin Nilsson  AC_ERROR([Cannot compile --with-nettle without the Nettle library.
ce23652004-10-05Martin Stjernholm It is highly recommended that you install a working Nettle library on your system as that will add features to Pike required by many applications. These features include ciphers, hash algorithms and random generators. If you know that you do not need cryptographic functions, you can re-run configure with the option --without-nettle instead. Nettle is available at http://www.lysator.liu.se/~nisse/nettle/.
3b73682004-02-27Henrik Grubbström (Grubba)  ]) PIKE_FEATURE_NODEP(Nettle) fi
c20d152004-02-06Niels Möller fi
01e1152003-03-12Niels Möller AC_OUTPUT(Makefile,echo FOO >stamp-h )