feat(http/unstable): add RFC 9530 digest fields#7238
Open
tomas-zijdemans wants to merge 14 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds an unstable
@std/http/unstable-digest-fieldsmodule for creating and verifying RFC 9530Content-DigestandRepr-Digestfield values.RFC 9530, an IETF standards-track RFC from Feb 2024, replaces the legacy RFC 3230
Digestfield with Structured Fields based digest headers for HTTP content and representation integrity. These helpers support creating digest values from strings, bytes, or streams, and verifyingRequest/Responsebodies without consuming the original body.This is also useful with HTTP Message Signatures (RFC 9421), where a signed digest field can bind the signature to the message body. The implementation is small and browser-compatible, reusing existing
@stdprimitives:timing-safe-equal,unstable-structured-fields, andto-bytes.Note
Recreates #7037, which was closed automatically when I accidentally deleted the head fork. The branch is identical to the original PR head.