]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Detect chacha for dnscrypt at configure time.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 8 Jun 2017 08:17:38 +0000 (08:17 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 8 Jun 2017 08:17:38 +0000 (08:17 +0000)
git-svn-id: file:///svn/unbound/trunk@4215 be551aaa-1e26-0410-a405-d3ace91eadb9

config.h.in
configure
dnscrypt/dnscrypt.h
dnscrypt/dnscrypt.m4
doc/Changelog

index 20fdf98616bcf6a8c29beb9248cc7f2555fba345..04aa762c58a93364990fed9b5f9007de7c034118 100644 (file)
 /* 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
 
index c27c35d76794cf998de9c661b65f05094c5fbd05..c45f9ba8d52f5fc9cb776b9eaa70d36e701c5cac 100755 (executable)
--- 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
 
index 236a09561c42af4a8c439f2a8205cd0b3dc1eadc..26c2bb21d6b6dadc94375e4b7652ed811b93606b 100644 (file)
 #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;
index 077d2822174f6041e37a19ec554838eb35970a54..7193519fcf03a9cb1fd98e0960889a7d3e8c78a0 100644 (file)
@@ -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
 ])
index d3e4473856e39cc7706bcbb1cbf47e4b062ccb2f..0a3e01002620b4e073581f7e7af227b3e3d84af8 100644 (file)
@@ -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.