Quellcode durchsuchen

MHD_FEATURE_*: added some values related to Digest Auth

Evgeny Grin (Karlson2k) vor 3 Jahren
Ursprung
Commit
a64c96c497
2 geänderte Dateien mit 90 neuen und 3 gelöschten Zeilen
  1. 52 3
      src/include/microhttpd.h
  2. 38 0
      src/microhttpd/daemon.c

+ 52 - 3
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
+};
 
 
 /**

+ 38 - 0
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;
 }