From: Wouter Wijngaards Date: Thu, 8 Jun 2017 08:17:38 +0000 (+0000) Subject: - Detect chacha for dnscrypt at configure time. X-Git-Tag: release-1.6.4rc1~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=33de42e7296fd2b310e4b3f401b87a3c2e6a7472;p=thirdparty%2Funbound.git - Detect chacha for dnscrypt at configure time. git-svn-id: file:///svn/unbound/trunk@4215 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/config.h.in b/config.h.in index 20fdf9861..04aa762c5 100644 --- a/config.h.in +++ b/config.h.in @@ -673,6 +673,9 @@ /* Define to 1 to enable dnscrypt support */ #undef USE_DNSCRYPT +/* Define to 1 to enable dnscrypt with xchacha20 support */ +#undef USE_DNSCRYPT_XCHACHA20 + /* Define to 1 to enable dnstap support */ #undef USE_DNSTAP diff --git a/configure b/configure index c27c35d76..c45f9ba8d 100755 --- a/configure +++ b/configure @@ -643,6 +643,7 @@ IPSECMOD_OBJ DNSCRYPT_OBJ DNSCRYPT_SRC ENABLE_DNSCRYPT +ENABLE_DNSCRYPT_XCHACHA20 DNSTAP_OBJ DNSTAP_SRC opt_dnstap_socket_path @@ -20371,6 +20372,73 @@ else as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5 fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm" >&5 +$as_echo_n "checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm... " >&6; } +if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypto_box_curve25519xchacha20poly1305_beforenm (); +int +main () +{ +return crypto_box_curve25519xchacha20poly1305_beforenm (); + ; + return 0; +} +_ACEOF +for ac_lib in '' sodium; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then : + break +fi +done +if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then : + +else + ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&5 +$as_echo "$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&6; } +ac_res=$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + ENABLE_DNSCRYPT_XCHACHA20=1 + + +$as_echo "#define USE_DNSCRYPT_XCHACHA20 1" >>confdefs.h + + +else + + ENABLE_DNSCRYPT_XCHACHA20=0 + + +fi + $as_echo "#define USE_DNSCRYPT 1" >>confdefs.h @@ -20384,6 +20452,8 @@ $as_echo "#define USE_DNSCRYPT 1" >>confdefs.h else + ENABLE_DNSCRYPT_XCHACHA20=0 + ENABLE_DNSCRYPT=0 diff --git a/dnscrypt/dnscrypt.h b/dnscrypt/dnscrypt.h index 236a09561..26c2bb21d 100644 --- a/dnscrypt/dnscrypt.h +++ b/dnscrypt/dnscrypt.h @@ -35,10 +35,6 @@ #define DNSCRYPT_REPLY_HEADER_SIZE \ (DNSCRYPT_MAGIC_HEADER_LEN + crypto_box_HALF_NONCEBYTES * 2 + crypto_box_MACBYTES) -#ifdef crypto_box_curve25519xchacha20poly1305_MACBYTES -# define HAVE_XCHACHA20 1 -#endif - struct sldns_buffer; struct config_file; struct comm_reply; diff --git a/dnscrypt/dnscrypt.m4 b/dnscrypt/dnscrypt.m4 index 077d28221..7193519fc 100644 --- a/dnscrypt/dnscrypt.m4 +++ b/dnscrypt/dnscrypt.m4 @@ -18,8 +18,19 @@ AC_DEFUN([dnsc_DNSCRYPT], ]) AC_SEARCH_LIBS([sodium_init], [sodium], [], AC_MSG_ERROR([The sodium library was not found. Please install sodium!])) + AC_SEARCH_LIBS([crypto_box_curve25519xchacha20poly1305_beforenm], [sodium], + [ + AC_SUBST([ENABLE_DNSCRYPT_XCHACHA20], [1]) + AC_DEFINE( + [USE_DNSCRYPT_XCHACHA20], [1], + [Define to 1 to enable dnscrypt with xchacha20 support]) + ], + [ + AC_SUBST([ENABLE_DNSCRYPT_XCHACHA20], [0]) + ]) $1 else + AC_SUBST([ENABLE_DNSCRYPT_XCHACHA20], [0]) $2 fi ]) diff --git a/doc/Changelog b/doc/Changelog index d3e447385..0a3e01002 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +8 June 2017: Wouter + - Detect chacha for dnscrypt at configure time. + 7 June 2017: Wouter - Fix that unbound-control can set val_clean_additional and val_permissive_mode. - Add dnscrypt XChaCha20 tests.