libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/include/microhttpd.h | 55++++++++++++++++++++++++++++++++++++++++++++++++++++---
Msrc/microhttpd/daemon.c | 38++++++++++++++++++++++++++++++++++++++
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; }