[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] 07/20: digestauth: do not use "algorithm" in response he
From: |
gnunet |
Subject: |
[libmicrohttpd] 07/20: digestauth: do not use "algorithm" in response header in RFC2069 mode |
Date: |
Mon, 15 Aug 2022 20:38:33 +0200 |
This is an automated email from the git hooks/post-receive script.
karlson2k pushed a commit to branch master
in repository libmicrohttpd.
commit 477f6149478083cb37bf6a4ce8ac0d14f518b4de
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Sun Aug 14 18:11:16 2022 +0300
digestauth: do not use "algorithm" in response header in RFC2069 mode
---
src/microhttpd/digestauth.c | 52 ++++++++++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 22 deletions(-)
diff --git a/src/microhttpd/digestauth.c b/src/microhttpd/digestauth.c
index 3efc0288..2ff3cd7f 100644
--- a/src/microhttpd/digestauth.c
+++ b/src/microhttpd/digestauth.c
@@ -2966,13 +2966,17 @@ MHD_queue_auth_required_response3 (struct
MHD_Connection *connection,
buf_size += MHD_STATICSTR_LEN_ (MHD_TOKEN_AUTH_);
}
/* 'algorithm="xxxx", ' */
- buf_size += MHD_STATICSTR_LEN_ (prefix_algo) + 2; /* 2 for ', ' */
- if (MHD_DIGEST_AUTH_ALGO3_MD5 == s_algo)
- buf_size += MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN);
- else if (MHD_DIGEST_AUTH_ALGO3_SHA256 == s_algo)
- buf_size += MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN);
- else
- mhd_assert (0);
+ if (((MHD_DIGEST_AUTH_MULT_QOP_NONE) != mqop) ||
+ (0 == (((unsigned int) s_algo) & MHD_DIGEST_BASE_ALGO_MD5)))
+ {
+ buf_size += MHD_STATICSTR_LEN_ (prefix_algo) + 2; /* 2 for ', ' */
+ if (MHD_DIGEST_AUTH_ALGO3_MD5 == s_algo)
+ buf_size += MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN);
+ else if (MHD_DIGEST_AUTH_ALGO3_SHA256 == s_algo)
+ buf_size += MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN);
+ else
+ mhd_assert (0);
+ }
/* 'nonce="xxxx", ' */
buf_size += MHD_STATICSTR_LEN_ (prefix_nonce) + 3; /* 3 for '", ' */
buf_size += NONCE_STD_LEN (digest_get_size (&da)); /* Escaping not needed */
@@ -3048,23 +3052,27 @@ MHD_queue_auth_required_response3 (struct
MHD_Connection *connection,
buf[p++] = ' ';
}
/* 'algorithm="xxxx", ' */
- memcpy (buf + p, prefix_algo,
- MHD_STATICSTR_LEN_ (prefix_algo));
- p += MHD_STATICSTR_LEN_ (prefix_algo);
- if (MHD_DIGEST_AUTH_ALGO3_MD5 == s_algo)
+ if (((MHD_DIGEST_AUTH_MULT_QOP_NONE) != mqop) ||
+ (0 == (((unsigned int) s_algo) & MHD_DIGEST_BASE_ALGO_MD5)))
{
- memcpy (buf + p, _MHD_MD5_TOKEN,
- MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN));
- p += MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN);
- }
- else if (MHD_DIGEST_AUTH_ALGO3_SHA256 == s_algo)
- {
- memcpy (buf + p, _MHD_SHA256_TOKEN,
- MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN));
- p += MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN);
+ memcpy (buf + p, prefix_algo,
+ MHD_STATICSTR_LEN_ (prefix_algo));
+ p += MHD_STATICSTR_LEN_ (prefix_algo);
+ if (MHD_DIGEST_AUTH_ALGO3_MD5 == s_algo)
+ {
+ memcpy (buf + p, _MHD_MD5_TOKEN,
+ MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN));
+ p += MHD_STATICSTR_LEN_ (_MHD_MD5_TOKEN);
+ }
+ else if (MHD_DIGEST_AUTH_ALGO3_SHA256 == s_algo)
+ {
+ memcpy (buf + p, _MHD_SHA256_TOKEN,
+ MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN));
+ p += MHD_STATICSTR_LEN_ (_MHD_SHA256_TOKEN);
+ }
+ buf[p++] = ',';
+ buf[p++] = ' ';
}
- buf[p++] = ',';
- buf[p++] = ' ';
/* 'nonce="xxxx", ' */
memcpy (buf + p, prefix_nonce,
MHD_STATICSTR_LEN_ (prefix_nonce));
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [libmicrohttpd] branch master updated (9a18a4f8 -> c63be03c), gnunet, 2022/08/15
- [libmicrohttpd] 04/20: digestauth: add log warning for empty random data, gnunet, 2022/08/15
- [libmicrohttpd] 01/20: digestauth: use internal header for mutex instead of system header, gnunet, 2022/08/15
- [libmicrohttpd] 06/20: digestauth: warn about RFC2069 used with SHA-256, gnunet, 2022/08/15
- [libmicrohttpd] 05/20: digestauth: corrected log message for RFC2069 mode, gnunet, 2022/08/15
- [libmicrohttpd] 16/20: test_digestauth2: minor improvements, gnunet, 2022/08/15
- [libmicrohttpd] 18/20: test_digestauth_concurrent: added debug print, gnunet, 2022/08/15
- [libmicrohttpd] 12/20: test_digestauth2: added testing with two requests, gnunet, 2022/08/15
- [libmicrohttpd] 08/20: digestauth: added log messages if realm is rejected due to its size, gnunet, 2022/08/15
- [libmicrohttpd] 03/20: daemon.c: cosmetics, gnunet, 2022/08/15
- [libmicrohttpd] 07/20: digestauth: do not use "algorithm" in response header in RFC2069 mode,
gnunet <=
- [libmicrohttpd] 11/20: Added MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE to control how to generate and check nonces for Digest Auth, gnunet, 2022/08/15
- [libmicrohttpd] 10/20: daemon.c: fixed and simplified sockaddr alignment handling, gnunet, 2022/08/15
- [libmicrohttpd] 02/20: microhttpd: minor doxy improvement, gnunet, 2022/08/15
- [libmicrohttpd] 17/20: digestauth: minor comment correction, gnunet, 2022/08/15
- [libmicrohttpd] 15/20: test_digestauth2: added third request with new connection, gnunet, 2022/08/15
- [libmicrohttpd] 19/20: digestauth: updated the method of nonce generation in default mode, gnunet, 2022/08/15
- [libmicrohttpd] 20/20: calculate_nonce(): added comments, minor code corrections, gnunet, 2022/08/15
- [libmicrohttpd] 09/20: mhd_str: added function for bin to hex without zero-termination, gnunet, 2022/08/15
- [libmicrohttpd] 14/20: test_digestauth2: reuse the same connection for the second request, gnunet, 2022/08/15
- [libmicrohttpd] 13/20: test_digestauth2: added testing of nonce bind options, gnunet, 2022/08/15