Repository navigation
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
v2.0: Modernization (M1-M6, 44 tasks) #374
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
v2.0: Modernization (M1-M6, 44 tasks) #374
Changes from 1 commit
40790f148a70a5e97361f4e202dd97bd08e87783178e1d00fd4ad72df252f55ecf7a0ea0b6f7c2ecb0f72e803edd32dfe39e57364096424dfdee3d734d5de7ed3a78be870063dd9df4d35b5ef0203780ffa63d3387185eac26c3739c2d2f19ef16bb4fd12c6d272e7806ad39972a2ed3948052a65fda97e448c3586195d6e257ee973c6e13d97a4217b790e95e0abd52172190647feee65e08f68a3cb3c15d5d70cab974fcd2e2dee530ae3a46ca063f980bcce191c9ea7f6a7c20cde199c139864a361f8258d4e0caed6d06447ee3d70a4d1ae1ace2a397a82a37e9e97768d69b86e8fed85a1c9789710bdb682312bcbb8ce13c96e64e416332c5ee427ac9228bd5b6dc24b7c9fbd5b1a6536679cb548e846b40c761b0ec142a74f29a8eb257bfb1444dd3f9f4e6c5e1605f1a9046983d537c8fe8a5b92edb09c5feaa97ab51cbf21e9a5697a2c658b9968b3858dfde317e71d563f86d4a9a2b5a0475f4041a37fdee984cedcaafbd4fe603d9f26c352a06e0e07b20b625fb58970077b012ef21cc60be486f288956f23cf3b4343398bf1aee3a719904da8fd4ff7a93318b214df74e83bd43a592d6f25270a4ba0938d9fb169d3fb9311d9660a1bbb4a033c04292ecdb14a4630ec0d9a03c15df6da8101806d03f7f3cd3e2086fd23f75fed8082af786efecb170811fecd6ffd51a8398c1572dc1ad4cb8bb73db4ee83b2492f62bf87ddf444c3f49cbf9daffea1b7fa0f2a9c8615b045039c330b7070439f844391a54a556b2ae79c72c9dcec307210ee5cf931cf3d2b20a17fdb7980acd34510a479d616f20d3152901b9c04bdb5d6ccb4435403865c840395443f69bb42a7467dc663ad7c0e807125b5d8bea8f93556fcc14dc2e36a25b0bc08387d7fc123d963b9f19608ee9b50b12c435774639615c390e057e70c80b61086ace33d77d98d65b631428683b2b81b9fc7294836b2141a43aeb81742ac27d283355fd4cda1303343d6cf0b47c37470082d134fb73d5ec732667ee0463a3e53f39af15a1de0c3340136578dcee7a22e73dcb0d698e129d5148e203e7c685ea52c70b4d9b596fc81f9a82e21296ace6af49fa5bf11651403081bb47bdc7b969fef48ed26c2eec3741faf4dc3f1414da820158e3399ee0498900eaf550d59a6e4ae4fd96c8f1e7aa5d7385603d4ee6bc48e03b80bc43ece6984c5978eea7163ea3e67c973064cfb875dc8a3fd54ff7ba77File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Six v2 digest-auth integ tests (digest_auth[_wrong_pass], digest_auth_with_ha1_{md5,sha256}[_wrong_pass], digest_user_cache_with_auth) were previously observationally indistinguishable from static-challenge pins because libcurl's CURLAUTH_DIGEST owned the nonce/opaque computation. That hid the HA1-precomputed AC: libcurl always recomputes HA1 from the cleartext password it was given, so "server validates against configured HA1, not against re-derived MD5/SHA-256 of cleartext" was unobservable. Add a header-only RFC 7616 client helper at test/integ/digest_client.hpp with inline public-domain MD5 (RFC 1321) and SHA-256 (FIPS 180-4), a WWW-Authenticate parser, and cleartext + precomputed-HA1 response-compute paths. Pin the helper in test/unit/digest_client_self_test.cpp against the FIPS canonical "abc"/empty vectors and the RFC 7616 §3.9.1 worked example for both MD5 (8ca523f5...) and SHA-256 (753927fa...). Convert each of the six tests to a two-round flow: round 1 captures the challenge via CURLOPT_HEADERFUNCTION, round 2 ships a hand-built `Authorization: Digest ...` header. Wrong-password variants now assert 401 on the SECOND request, not on the initial challenge. HA1 variants sign with the configured 16/32-byte HA1 directly -- cleartext never leaves the test, so a 200 response proves the server validates against the configured HA1. The wrong-HA1 negative variants (signing with md5/sha256("user:realm:totallywrong")) strengthen the proof. Migrate digest_user_cache_resource from the legacy `unauthorized("Digest", "testrealm", "FAIL")` static overload to the RFC 7616 digest_challenge factory so the handshake can complete; digest_user_cache_with_auth now asserts "USER:testuser" (reaching the cache-hit code path). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.