summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-11-12 09:18:14 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-11-12 09:18:14 +0000
commit94043b11508b9a4bf1fbee9ea17ef658c6413d9d (patch)
tree48d11ab65947de4a993afa6d4de38327cc3a6f34
parent1b02ad5e8a35ccd682429e387ccb63022ca2339a (diff)
downloadcurl-94043b11508b9a4bf1fbee9ea17ef658c6413d9d.tar.gz
Dan Fandrich added the --disable-crypto-auth option to configure to allow
libcurl to build without Digest support. (I figure it should also explicitly disable Negotiate and NTLM.)
-rw-r--r--configure.ac19
-rw-r--r--lib/http.c14
-rw-r--r--lib/http_digest.c2
-rw-r--r--lib/md5.c4
-rw-r--r--lib/url.c2
5 files changed, 36 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac
index 611d0c162..1021ceeff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1473,6 +1473,25 @@ AC_HELP_STRING([--disable-debug],[Disable debug options]),
AC_MSG_RESULT(no)
)
+dnl ************************************************************
+dnl disable cryptographic authentication
+dnl
+AC_MSG_CHECKING([whether to enable cryptographic authentication methods])
+AC_ARG_ENABLE(crypto-auth,
+AC_HELP_STRING([--enable-crypto-auth],[Enable cryptographic authentication])
+AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]),
+[ case "$enableval" in
+ no)
+ AC_MSG_RESULT(no)
+ AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication])
+ AC_SUBST(CURL_DISABLE_CRYPTO_AUTH)
+ ;;
+ *) AC_MSG_RESULT(yes)
+ ;;
+ esac ],
+ AC_MSG_RESULT(yes)
+)
+
AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes)
AC_CONFIG_FILES([Makefile \
diff --git a/lib/http.c b/lib/http.c
index cdc3e1d8c..20cd1c15f 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -330,6 +330,7 @@ Curl_http_output_auth(struct connectdata *conn,
}
data->state.authproxy.done = TRUE;
}
+#ifndef CURL_DISABLE_CRYPTO_AUTH
else if(data->state.authproxy.want == CURLAUTH_DIGEST) {
auth=(char *)"Digest";
result = Curl_output_digest(conn,
@@ -339,7 +340,7 @@ Curl_http_output_auth(struct connectdata *conn,
if(result)
return result;
}
-
+#endif
infof(data, "Proxy auth using %s with user '%s'\n",
auth, conn->proxyuser?conn->proxyuser:"");
}
@@ -373,6 +374,7 @@ Curl_http_output_auth(struct connectdata *conn,
else
#endif
{
+#ifndef CURL_DISABLE_CRYPTO_AUTH
if(data->state.authhost.picked == CURLAUTH_DIGEST) {
auth=(char *)"Digest";
result = Curl_output_digest(conn,
@@ -381,8 +383,9 @@ Curl_http_output_auth(struct connectdata *conn,
(unsigned char *)path);
if(result)
return result;
- }
- else if(data->state.authhost.picked == CURLAUTH_BASIC) {
+ } else
+#endif
+ if(data->state.authhost.picked == CURLAUTH_BASIC) {
if(conn->bits.user_passwd &&
!checkheaders(data, "Authorization:")) {
auth=(char *)"Basic";
@@ -489,6 +492,7 @@ CURLcode Curl_http_input_auth(struct connectdata *conn,
}
else
#endif
+#ifndef CURL_DISABLE_CRYPTO_AUTH
if(checkprefix("Digest", start)) {
CURLdigest dig;
*availp |= CURLAUTH_DIGEST;
@@ -504,7 +508,9 @@ CURLcode Curl_http_input_auth(struct connectdata *conn,
data->state.authproblem = TRUE;
}
}
- else if(checkprefix("Basic", start)) {
+ else
+#endif
+ if(checkprefix("Basic", start)) {
*availp |= CURLAUTH_BASIC;
authp->avail |= CURLAUTH_BASIC;
if(authp->picked == CURLAUTH_BASIC) {
diff --git a/lib/http_digest.c b/lib/http_digest.c
index 20f5dc47b..5baccfe58 100644
--- a/lib/http_digest.c
+++ b/lib/http_digest.c
@@ -22,7 +22,7 @@
***************************************************************************/
#include "setup.h"
-#ifndef CURL_DISABLE_HTTP
+#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_CRYPTO_AUTH)
/* -- WIN32 approved -- */
#include <stdio.h>
#include <string.h>
diff --git a/lib/md5.c b/lib/md5.c
index 269726b96..1847c3cd1 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -23,6 +23,8 @@
#include "setup.h"
+#ifndef CURL_DISABLE_CRYPTO_AUTH
+
#ifndef USE_SSLEAY
/* This code segment is only used if OpenSSL is not provided, as if it is
we use the MD5-function provided there instead. No good duplicating
@@ -346,3 +348,5 @@ void Curl_md5it(unsigned char *outbuffer, /* 16 bytes */
MD5_Update(&ctx, input, strlen((char *)input));
MD5_Final(outbuffer, &ctx);
}
+
+#endif
diff --git a/lib/url.c b/lib/url.c
index 5d0e801b5..78224df0e 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -250,8 +250,10 @@ CURLcode Curl_close(struct SessionHandle *data)
}
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
+#ifndef CURL_DISABLE_CRYPTO_AUTH
Curl_digest_cleanup(data);
#endif
+#endif
/* free the connection cache */
free(data->state.connects);