summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ne_auth.c12
-rw-r--r--src/ne_md5.h4
2 files changed, 15 insertions, 1 deletions
diff --git a/src/ne_auth.c b/src/ne_auth.c
index 48a0cb5..96f34d3 100644
--- a/src/ne_auth.c
+++ b/src/ne_auth.c
@@ -1616,6 +1616,18 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
protomask |= NE_AUTH_GSSAPI_ONLY | NE_AUTH_SSPI;
}
+ if (protomask | NE_AUTH_DIGEST) {
+ struct ne_md5_ctx *ctx = ne_md5_create_ctx();
+
+ if (ctx) {
+ ne_md5_destroy_ctx(ctx);
+ }
+ else {
+ NE_DEBUG(NE_DBG_HTTPAUTH, "auth: Disabling Digest support without MD5.\n");
+ protomask &= ~NE_AUTH_DIGEST;
+ }
+ }
+
ahs = ne_get_session_private(sess, id);
if (ahs == NULL) {
ahs = ne_calloc(sizeof *ahs);
diff --git a/src/ne_md5.h b/src/ne_md5.h
index 9a625bc..cb850bf 100644
--- a/src/ne_md5.h
+++ b/src/ne_md5.h
@@ -34,7 +34,9 @@ NE_BEGIN_DECLS
*/
struct ne_md5_ctx;
-/* Create structure containing state of computation. */
+/* Create structure containing state of computation. Can return NULL
+ * if the MD5 algorithm is prohibited (such as FIPS-enabled
+ * systems). */
extern struct ne_md5_ctx *ne_md5_create_ctx(void);
/* Starting with the result of former calls of this function (or the