Parse Digest challenge parameter names case-insensitively

Merged
KL
4d ago
+18-1

Summary

DigestAuth matched challenge parameter names exactly, so Digest Realm="r", Nonce="n" raised ProtocolError, and QOP="auth" or Algorithm=SHA-256 were silently ignored. Whitespace around = also raised. RFC 9110 §11.2 makes auth parameter names case-insensitive and allows whitespace around =.

Checklist

  • I understand that this PR may be closed in case there was no previous discussion. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.

AI Disclaimer

This PR was developed with the assistance of either Claude or Codex. I've reviewed and verified the changes.