Просмотр исходного кода

digestauth: refactored hashing asserts

Evgeny Grin (Karlson2k) 3 лет назад
Родитель
Сommit
281b22da0e
1 измененных файлов с 9 добавлено и 8 удалено
  1. 9 8
      src/microhttpd/digestauth.c

+ 9 - 8
src/microhttpd/digestauth.c

@@ -336,7 +336,7 @@ struct DigestAlgorithm
 #if _DEBUG
   bool setup; /**< The structure was set-up */
   bool inited; /**< The calculation was initialised */
-  bool digest_calculated; /**< The digest was calculated */
+  bool hashing; /**< Some data has been hashed, but digest is not yet finalised */
 #endif /* _DEBUG */
 };
 
@@ -381,7 +381,7 @@ digest_setup (struct DigestAlgorithm *da,
 #ifdef _DEBUG
   da->setup = false;
   da->inited = false;
-  da->digest_calculated = false;
+  da->hashing = false;
 #endif /* _DEBUG */
   if (false
 #ifdef MHD_MD5_SUPPORT
@@ -413,9 +413,8 @@ _MHD_static_inline void
 digest_init (struct DigestAlgorithm *da)
 {
   mhd_assert (da->setup);
-#ifdef _DEBUG
-  da->digest_calculated = false;
-#endif
+  mhd_assert (! da->hashing);
+  mhd_assert (! da->inited);
 #ifdef MHD_MD5_SUPPORT
   if (MHD_DIGEST_BASE_ALGO_MD5 == da->algo)
   {
@@ -467,7 +466,6 @@ digest_update (struct DigestAlgorithm *da,
                size_t length)
 {
   mhd_assert (da->inited);
-  mhd_assert (! da->digest_calculated);
 #ifdef MHD_MD5_SUPPORT
   if (MHD_DIGEST_BASE_ALGO_MD5 == da->algo)
     MHD_MD5_update (&da->ctx.md5_ctx, (const uint8_t *) data, length);
@@ -485,6 +483,9 @@ digest_update (struct DigestAlgorithm *da,
   else
 #endif /* MHD_SHA512_256_SUPPORT */
   mhd_assert (0);   /* May not happen */
+#ifdef _DEBUG
+  da->hashing = true;
+#endif
 }
 
 
@@ -525,7 +526,6 @@ _MHD_static_inline void
 digest_calc_hash (struct DigestAlgorithm *da, uint8_t *digest)
 {
   mhd_assert (da->inited);
-  mhd_assert (! da->digest_calculated);
 #ifdef MHD_MD5_SUPPORT
   if (MHD_DIGEST_BASE_ALGO_MD5 == da->algo)
     MHD_MD5_finish (&da->ctx.md5_ctx, digest);
@@ -543,7 +543,8 @@ digest_calc_hash (struct DigestAlgorithm *da, uint8_t *digest)
 #endif /* MHD_SHA512_256_SUPPORT */
   mhd_assert (0);   /* May not happen */
 #ifdef _DEBUG
-  da->digest_calculated = true;
+  da->hashing = false;
+  da->inited = false;
 #endif
 }