- Detect chacha for dnscrypt at configure time.

git-svn-id: file:///svn/unbound/trunk@4215 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
Wouter Wijngaards 2017-06-08 08:17:38 +00:00
parent b3b854072b
commit 33de42e729
5 changed files with 87 additions and 4 deletions

View file

@ -673,6 +673,9 @@
/* Define to 1 to enable dnscrypt support */ /* Define to 1 to enable dnscrypt support */
#undef USE_DNSCRYPT #undef USE_DNSCRYPT
/* Define to 1 to enable dnscrypt with xchacha20 support */
#undef USE_DNSCRYPT_XCHACHA20
/* Define to 1 to enable dnstap support */ /* Define to 1 to enable dnstap support */
#undef USE_DNSTAP #undef USE_DNSTAP

70
configure vendored
View file

@ -643,6 +643,7 @@ IPSECMOD_OBJ
DNSCRYPT_OBJ DNSCRYPT_OBJ
DNSCRYPT_SRC DNSCRYPT_SRC
ENABLE_DNSCRYPT ENABLE_DNSCRYPT
ENABLE_DNSCRYPT_XCHACHA20
DNSTAP_OBJ DNSTAP_OBJ
DNSTAP_SRC DNSTAP_SRC
opt_dnstap_socket_path opt_dnstap_socket_path
@ -20371,6 +20372,73 @@ else
as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5 as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5
fi 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 $as_echo "#define USE_DNSCRYPT 1" >>confdefs.h
@ -20384,6 +20452,8 @@ $as_echo "#define USE_DNSCRYPT 1" >>confdefs.h
else else
ENABLE_DNSCRYPT_XCHACHA20=0
ENABLE_DNSCRYPT=0 ENABLE_DNSCRYPT=0

View file

@ -35,10 +35,6 @@
#define DNSCRYPT_REPLY_HEADER_SIZE \ #define DNSCRYPT_REPLY_HEADER_SIZE \
(DNSCRYPT_MAGIC_HEADER_LEN + crypto_box_HALF_NONCEBYTES * 2 + crypto_box_MACBYTES) (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 sldns_buffer;
struct config_file; struct config_file;
struct comm_reply; struct comm_reply;

View file

@ -18,8 +18,19 @@ AC_DEFUN([dnsc_DNSCRYPT],
]) ])
AC_SEARCH_LIBS([sodium_init], [sodium], [], AC_SEARCH_LIBS([sodium_init], [sodium], [],
AC_MSG_ERROR([The sodium library was not found. Please install 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 $1
else else
AC_SUBST([ENABLE_DNSCRYPT_XCHACHA20], [0])
$2 $2
fi fi
]) ])

View file

@ -1,3 +1,6 @@
8 June 2017: Wouter
- Detect chacha for dnscrypt at configure time.
7 June 2017: Wouter 7 June 2017: Wouter
- Fix that unbound-control can set val_clean_additional and val_permissive_mode. - Fix that unbound-control can set val_clean_additional and val_permissive_mode.
- Add dnscrypt XChaCha20 tests. - Add dnscrypt XChaCha20 tests.