Files
v/examples
David LegrandandAlexander Medvednikov ca7389b7d9 net.http.signature: add HTTP Message Signatures (RFC 9421) module (#27113)
* net.http.signature: add HTTP Message Signatures (RFC 9421) module

* net.http.signature: pad ECDSA private scalar to curve width when parsing PEM

* net.http.signature: strip default ports from @authority per RFC 9421 §2.2.3

* net.http.signature: reconstruct absolute @target-uri for origin-form requests

* net.http.signature: gate the tests on OpenSSL, like the example and crypto.ecdsa

* net.http.signature: preserve canonical request inputs

* net.http.signature: harden request serialization

* net.http.signature: match transmitted request values

* net.http.signature: align request wire semantics

* net.http.signature: cover effective wire fields

* net.http.signature: validate signing inputs

* net.http.signature: finalize effective message fields

* net.http.signature: validate Ed25519 verification keys

* net.http.signature: validate effective responses

* net.http.signature: reject ambiguous signed messages

* net.http.signature: validate stable wire fields

* net.http.signature: handle remaining wire forms

* net.http.signature: canonicalize repeated inputs

* net.http.signature: validate structured metadata

* net.http.signature: preserve verified message values

* net.http.signature: align status and list parsing

* net.http.signature: tighten parameter parsing

* net.http.signature: preserve extension and empty values

* net.http.signature: preflight transport header changes

* net.http.signature: preserve covered cookie fields

* net.http.signature: trim derived host authority

* net.http.signature: enforce verification coverage

* net.http: preserve wire authorities

* net.http.signature: validate covered fields

* net.http.signature: preserve effective field values

* net.http.signature: enforce verification time bounds

* net.http.signature: align proxy and h2 coverage

* net.http.signature: protect response body defaults

* net.http.signature: protect request body defaults

* net.http.signature: reject invalid response status

* net.http: reject unframed trace bodies

* net.http.signature: load ECDSA public keys from raw coordinates

* net.http.signature: rename a local that collides with hash.crc32's q const

* net.http.signature: make the default digest policy independent of the received body

* net.http.signature: refuse to synthesize a forbidden Content-Length

* net.http.signature: run the tests on the default crypto backend

* net.http.signature: make the quick start verifiable

* net.http.signature: reformat structured_field.v with the current vfmt

* net.http.signature: sharpen the Content-Length diagnostics and document their limits

* net.http.signature: check header capacity at every step of the signing mutations

* net.http.signature: opt the HTTP/2 coverage tests into enable_http2

HTTPS requests default to HTTP/1.1 since #28996, so the tests for covered
fields that HTTP/2 negotiation would change have to enable HTTP/2 themselves.

* net.http: pass the remote address in the new h2 server test

serve_h2_conn takes the remote address since master's HTTP/2 server changes.

---------

Co-authored-by: Alexander Medvednikov <alexander@medvednikov.com>
2026-09-29 17:35:23 +03:00
..
2026-09-17 10:47:56 +03:00
2026-04-13 04:18:00 +03:00
2026-04-13 04:18:00 +03:00
2026-09-17 10:47:56 +03:00
2026-04-13 04:18:00 +03:00
2026-09-17 10:47:56 +03:00
2026-04-13 04:18:00 +03:00
2026-09-17 10:47:56 +03:00
2026-06-20 17:27:07 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2026-04-13 04:18:00 +03:00
2026-04-13 04:18:00 +03:00
2026-09-17 10:47:56 +03:00
2026-04-17 23:41:56 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2026-04-13 04:18:00 +03:00
2026-09-17 10:47:56 +03:00
2026-09-17 10:47:56 +03:00
2021-03-06 18:09:28 +01:00
2021-03-29 11:17:00 +02:00
2025-08-23 13:50:45 +03:00
2026-09-17 10:47:56 +03:00
2023-11-25 10:02:51 +03:00
2020-03-21 09:47:38 +01:00
2026-04-17 23:41:56 +03:00
2026-04-17 23:41:56 +03:00
2026-04-13 04:18:00 +03:00
2026-04-17 23:41:56 +03:00
2023-11-25 10:02:51 +03:00
2022-11-05 10:46:40 +03:00
2026-09-17 10:47:56 +03:00
2023-11-25 10:02:51 +03:00
2025-05-18 11:54:56 +03:00
2021-02-23 20:21:50 +02:00
2022-10-16 22:57:38 +03:00