From eb748f159ab9cd426da065d7c1f1a2b3423854b7 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Thu, 22 Jan 2015 16:34:18 +0100
Subject: [PATCH] BoringSSL: detected by configure, switches off NTLM

---
 configure.ac     | 13 +++++++++++--
 lib/curl_setup.h |  7 ++++++-
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index 04727acbf7..2cfe7dd754 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1579,7 +1579,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
               ])
 
     dnl these can only exist if openssl exists
-    dnl yassl doesn't have SSL_get_shutdown
+    dnl Cyassl doesn't have SSL_get_shutdown
+    dnl BoringSSL doesn't have DES_set_odd_parity
 
     AC_CHECK_FUNCS( RAND_status \
                     RAND_screen \
@@ -1587,7 +1588,8 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
                     ENGINE_cleanup \
                     CRYPTO_cleanup_all_ex_data \
                     SSL_get_shutdown \
-                    SSLv2_client_method )
+                    SSLv2_client_method \
+                    DES_set_odd_parity )
 
     dnl Make an attempt to detect if this is actually yassl's headers and
     dnl OpenSSL emulation layer. We still leave everything else believing
@@ -1612,6 +1614,13 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
     ],[
       AC_MSG_RESULT([no])
     ])
+    AC_MSG_CHECKING([for BoringSSL])
+    if test "x$ac_cv_func_des_set_odd_parity" != "xyes"; then
+      curl_ssl_msg="enabled (BoringSSL)"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
   fi
 
   if test "$OPENSSL_ENABLED" = "1"; then
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index b046b77d34..103938cc15 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -7,7 +7,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -625,9 +625,14 @@ int netware_init(void);
 #if defined(USE_SSLEAY) || defined(USE_WINDOWS_SSPI) || \
     defined(USE_GNUTLS) || defined(USE_NSS) || defined(USE_DARWINSSL) || \
     defined(USE_OS400CRYPTO) || defined(USE_WIN32_CRYPTO)
+
+#if defined(USE_SSLEAY) && !defined(HAVE_DES_SET_ODD_PARITY)
+/* BoringSSL, not NTLM capable */
+#else
 #define USE_NTLM
 #endif
 #endif
+#endif
 
 /* non-configure builds may define CURL_WANTS_CA_BUNDLE_ENV */
 #if defined(CURL_WANTS_CA_BUNDLE_ENV) && !defined(CURL_CA_BUNDLE)
-- 
GitLab