commit a64c96c497064092cdf8bbc66e60bac7e3f3ffac
parent 2fd1a01fe010ea47654fd6b3053af619fb96dc37
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Mon, 25 Jul 2022 19:46:09 +0300
MHD_FEATURE_*: added some values related to Digest Auth
Diffstat:
2 files changed, 90 insertions(+), 3 deletions(-)
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
@@ -96,7 +96,7 @@ extern "C"
* they are parsed as decimal numbers.
* Example: 0x01093001 = 1.9.30-1.
*/
-#define MHD_VERSION 0x00097526
+#define MHD_VERSION 0x00097527
/* If generic headers don't work on your platform, include headers
which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',
@@ -5708,8 +5708,57 @@ enum MHD_FEATURE
* MHD versions before 0x00097514 always support cookie parsing.
* @note Available since #MHD_VERSION 0x00097514
*/
- MHD_FEATURE_HTTPS_COOKIE_PARSING = 24
-} _MHD_FIXED_ENUM;
+ MHD_FEATURE_HTTPS_COOKIE_PARSING = 24,
+
+ /**
+ * Get whether the early version the Digest Authorization (RFC 2069) is
+ * supported.
+ * Currently it is always not supported if Digest Auth module is built.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_RFC2069 = 25,
+
+ /**
+ * Get whether the MD5-based hashing algorithms are supported for Digest
+ * Authorization.
+ * Currently it is always not supported if Digest Auth module is built.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_MD5 = 26,
+
+ /**
+ * Get whether the SHA-256-based hashing algorithms are supported for Digest
+ * Authorization.
+ * It it always supported since #MHD_VERSION 0x00096200 if Digest Auth
+ * module is built.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_SHA256 = 27,
+
+ /**
+ * Get whether QOP with value 'auth-int' (authentication with integrity
+ * protection) is supported for Digest Authorization.
+ * Currently it is always not supported if Digest Auth module is built.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_AUTH_INT = 28,
+
+ /**
+ * Get whether 'session' algorithms (like 'MD5-sess') are supported for Digest
+ * Authorization.
+ * Currently it is always not supported.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_ALGO_SESSION = 29,
+
+ /**
+ * Get whether 'userhash' is supported for Digest Authorization.
+ * It it always supported since #MHD_VERSION 0x00097526 if Digest Auth
+ * module is built.
+ * @note Available since #MHD_VERSION 0x00097527
+ */
+ MHD_FEATURE_DIGEST_AUTH_USERHASH = 30
+};
/**
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
@@ -8379,7 +8379,45 @@ MHD_is_feature_supported (enum MHD_FEATURE feature)
#else
return MHD_NO;
#endif
+ case MHD_FEATURE_DIGEST_AUTH_RFC2069:
+#ifdef DAUTH_SUPPORT
+ return MHD_NO;
+#else
+ return MHD_NO;
+#endif
+ case MHD_FEATURE_DIGEST_AUTH_MD5:
+#ifdef DAUTH_SUPPORT
+ return MHD_YES;
+#else
+ return MHD_NO;
+#endif
+ case MHD_FEATURE_DIGEST_AUTH_SHA256:
+#ifdef DAUTH_SUPPORT
+ return MHD_YES;
+#else
+ return MHD_NO;
+#endif
+ case MHD_FEATURE_DIGEST_AUTH_AUTH_INT:
+#ifdef DAUTH_SUPPORT
+ return MHD_NO;
+#else
+ return MHD_NO;
+#endif
+ case MHD_FEATURE_DIGEST_AUTH_ALGO_SESSION:
+#ifdef DAUTH_SUPPORT
+ return MHD_NO;
+#else
+ return MHD_NO;
+#endif
+ case MHD_FEATURE_DIGEST_AUTH_USERHASH:
+#ifdef DAUTH_SUPPORT
+ return MHD_YES;
+#else
+ return MHD_NO;
+#endif
+ default:
+ break;
}
return MHD_NO;
}