Commit Graph
4631 Commits
Author SHA1 Message Date
Evgeny Grin (Karlson2k) f708f54c03 test_digestauth2: added testing of RFC2069 mode 2022-07-30 22:28:44 +03:00
Evgeny Grin (Karlson2k) fff9fa7832 digestauth: implemented support for RFC 2069
The old Digest Auth specification, but still supported by many clients.
2022-07-30 22:28:44 +03:00
Evgeny Grin (Karlson2k) 7727073aab test_digestauth2: added testing of Auth v2 API 2022-07-30 22:28:44 +03:00
Evgeny Grin (Karlson2k) 3d75094b41 test_digestauth2: added testing of 'userdigest' 2022-07-30 22:28:43 +03:00
Evgeny Grin (Karlson2k) 0b70234172 test_digestauth2: test the new option 2022-07-30 22:28:43 +03:00
Evgeny Grin (Karlson2k) 3213c703dd daemon.c: changed fill value for unused members 2022-07-30 22:28:43 +03:00
Evgeny Grin (Karlson2k) 0ecad853ed Added new MHD_OPTION_DIGEST_AUTH_RANDOM_COPY option 2022-07-30 22:28:43 +03:00
Evgeny Grin (Karlson2k) 653376caa5 microhttpd: improved description for MHD_OPTION_DIGEST_AUTH_RANDOM 2022-07-30 22:28:43 +03:00
Evgeny Grin (Karlson2k) c3b626ed22 microhttpd: improved description for MHD_OPTION_NONCE_NC_SIZE 2022-07-30 22:28:42 +03:00
Evgeny Grin (Karlson2k) 41dfd74cd4 configure: control more parameters with 'build-type' 2022-07-30 22:28:42 +03:00
Evgeny Grin (Karlson2k) 3f583074e6 configure: report in summary whether static and shared version will be built 2022-07-30 22:28:42 +03:00
Evgeny Grin (Karlson2k) d1b181d4dc configure: cosmetics 2022-07-30 22:28:42 +03:00
Evgeny Grin (Karlson2k) 5aa16f7e31 digestauth: added dynamic detection and use of the algo specified by client 2022-07-30 22:28:41 +03:00
Christian Grothoff 9eb7b4de64 -fix typos 2022-07-28 22:05:12 +02:00
Evgeny Grin (Karlson2k) 2949c070e6 Makefile: cosmetics 2022-07-28 07:21:37 +03:00
Evgeny Grin (Karlson2k) a64c96c497 MHD_FEATURE_*: added some values related to Digest Auth 2022-07-28 07:21:37 +03:00
Evgeny Grin (Karlson2k) 2fd1a01fe0 test_digestauth2: added new group of tests for Digest Auth checking 2022-07-28 07:21:36 +03:00
Evgeny Grin (Karlson2k) c03c57c9d2 Added MHD_queue_auth_required_response3(); Refactored public Digest Auth API v3
Added brand new function with more complete support for RFC 7616
features. New function implemented from scratch. Old functions became
wrappers for the new function, so fixes are inherited.

Fixes:
* All user values are properly quoted
Features:
* Added support for optional 'domain' Digest auth parameter
* Realm now optional
* Added userhash support
* Added charset support

For other Digest Auth v3 functions:
* Added more parameters for complete control of Auth process from
  application side.
2022-07-28 07:21:35 +03:00
Evgeny Grin (Karlson2k) 4baec145d4 Digest Auth public structs: removed redundant member
Added one more check for data validity.
2022-07-28 07:21:33 +03:00
Evgeny Grin (Karlson2k) 13db035fc9 MHD_add_response_entry(): refactoring + added internal function 2022-07-28 07:21:33 +03:00
Evgeny Grin (Karlson2k) 012a2d3bb1 Updated Digest Auth enums in the header 2022-07-28 07:21:33 +03:00
Evgeny Grin (Karlson2k) 0194db857c test_digestauth_concurrent: fixed compiler warnings 2022-07-25 16:20:50 +03:00
Evgeny Grin (Karlson2k) 99c44002a9 tests_digestauth*: added workarounds for libcurl bug 2022-07-25 16:20:50 +03:00
Evgeny Grin (Karlson2k) aa49d6053c test_digestauth_emu_ext: cosmetics, additional check 2022-07-25 16:20:50 +03:00
Evgeny Grin (Karlson2k) 5da848a157 test_digestauth{,_sha256,_with_aguments}: moved back to Digest Auth APIv2
Fixed compiler warnings
2022-07-25 16:20:49 +03:00
Evgeny Grin (Karlson2k) 50828ba77d digestauth: term correction in comment 2022-07-25 16:20:49 +03:00
Evgeny Grin (Karlson2k) 5866b68fa7 Updated doxy for old Digest Auth API function
This function supports new functionality now (extended notation) and
this functionality is automatically available without rebuilding
application.
2022-07-25 16:20:49 +03:00
Evgeny Grin (Karlson2k) 961635da2a digest_auth_check(): added check for too large realm value 2022-07-25 16:20:49 +03:00
Evgeny Grin (Karlson2k) 7e5206cc03 digest_auth_check(): added support for userhash 2022-07-25 16:20:48 +03:00
Evgeny Grin (Karlson2k) c024f7c8ad digest_auth_check(): reduced scope of one-time variable 2022-07-25 16:20:48 +03:00
Evgeny Grin (Karlson2k) 658e94e110 gen_auth: cosmetics 2022-07-25 16:20:48 +03:00
Evgeny Grin (Karlson2k) 8714ba41f7 gen_auth: fixed detection of userhash in Digest Auth requests 2022-07-25 16:20:48 +03:00
Evgeny Grin (Karlson2k) 7ace1e11a3 digestauth: fixed copy-paste error in request algo parsing 2022-07-25 16:20:33 +03:00
Evgeny Grin (Karlson2k) 2279673589 Added test for Digest Auth with username in extended notation
As libcurl does not support extended notation, it is not completely
real test. Pregenerated fake nonce, cnonce and response are used so
only parsing of request header and checking request header are tested.
No real authorisation.
2022-07-21 15:07:08 +03:00
Evgeny Grin (Karlson2k) aac0cc55ea digestauth: added support for extended notation for old API 2022-07-21 15:07:07 +03:00
Evgeny Grin (Karlson2k) c7ac9d80a5 digestauth: do not allocate extra space for extended notation 2022-07-21 15:07:07 +03:00
Evgeny Grin (Karlson2k) 57a5fcfac7 digestauth: fixed username extraction with the new API 2022-07-21 15:07:07 +03:00
Evgeny Grin (Karlson2k) 69aec9dc33 digest_auth_check(): updated the order of parameters check
If more than one parameter is wrong, then the first checked wrong
parameter will be reported, so check the most important parameters
first.
2022-07-21 15:07:07 +03:00
Evgeny Grin (Karlson2k) b528bec9c1 digest_auth_check(): added support for username in extended notation 2022-07-21 15:07:06 +03:00
Evgeny Grin (Karlson2k) e1e5a39568 digestauth: removed usage of variable-length arrays
This should improve efficiency, size and security:
* Code works just fine with fixed size arrays.
* The resulting binary size is smaller when fixed size arrays are used.
* GCC stack protector cannot be used with functions with variable-length
  arrays.
2022-07-21 15:07:06 +03:00
Evgeny Grin (Karlson2k) c63e7544d8 digest calculations: further simplified code, removed some local variables 2022-07-21 15:07:06 +03:00
Evgeny Grin (Karlson2k) 76813be7bf digest_auth_check(): removed one more large local variable 2022-07-21 15:07:06 +03:00
Evgeny Grin (Karlson2k) 98ade6e6fe digestauth: added sanity check for digest macros 2022-07-21 15:07:06 +03:00
Evgeny Grin (Karlson2k) 984f72a201 digestauth: simplified internal function call 2022-07-21 15:07:05 +03:00
Evgeny Grin (Karlson2k) 348da88b86 digestauth: added small helper function to simplify the code 2022-07-21 15:07:05 +03:00
Evgeny Grin (Karlson2k) e916620931 test_digest: improved test URI 2022-07-21 15:07:05 +03:00
Evgeny Grin (Karlson2k) 755b338ba5 test_basicauth: Fixed doxy 2022-07-21 15:07:05 +03:00
Christian Grothoff bd88a19e2d -typo 2022-07-20 21:04:25 +02:00
Evgeny Grin (Karlson2k) 76b5b1952c microhttpd.h: formatted some deprecation warnings 2022-07-19 17:50:07 +03:00
Evgeny Grin (Karlson2k) d39ad79ab6 digest_auth_check(): check and report wrong algorithm 2022-07-19 17:50:07 +03:00