Enforce normalization rules during signing #55
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.
For the authority, path, and scheme components, RFC 9421 (by citing Section 4.3.2 of RFC 3968) requires that
This implies that we need to ensure we perform percent decoding to arrive at the normal form, ensuring that percent-encoded URLs and their non-encoded forms are treated as equivalent.
This change adds the necessary requirements and supplies a test for the same.
Note
I'm actually not entirely sure if we must do percent-decoding - I'm discussing this privately with @thibmeu . In the event we discover that percent-decoding is not required, we should still enforce hostname and scheme lowercasing as well as treating an empty path string correctly during signing, which this PR introduces for sure.