The AlgoVoi RFC 9421 signer produces signed HTTP requests conforming to RFC 9421 (HTTP Message Signatures) and RFC 9530 (Digest Fields for HTTP). It pairs with the RFC 9421 Verifier: sign on the client, verify on the server — both sides produce the same signing base, byte-reproducibly.Documentation Index
Fetch the complete documentation index at: https://docs.algovoi.co.uk/llms.txt
Use this file to discover all available pages before exploring further.
Python (PyPI)
pip install algovoi-rfc9421-signerTypeScript (npm)
npm install @algovoi/rfc9421-signerWhat the signer produces
A singlesign_request() / signRequest() call returns three headers ready to attach
to your HTTP request:
| Header | RFC | Purpose |
|---|---|---|
Signature-Input | RFC 9421 §2.1 | Declares covered components and signature parameters |
Signature | RFC 9421 §4 | Base64url-encoded Ed25519 signature over the signing base |
Content-Digest | RFC 9530 | SHA-256 digest of the request body |
@method is case-preserved (uppercase for HTTP),
and a final @signature-params line is appended. This is the format expected by
algovoi-rfc9421-verifier v0.3.0+ and any other RFC 9421-compliant verifier.
Quick start
Python
TypeScript
Signing a /compliance/screen request
The AlgoVoi gateway verifies inbound request signatures on /compliance/screen
when Signature-Input, Signature, and X-Signer-Pubkey are present.
The response includes request_signature_verified: true when the signature checks out:
request_signature_verified is null when the
signature headers are absent.
Covered components
By default,sign_request() covers:
@method, @authority, @path, content-digest, created.
This matches the coverage used in the conformance vector set
and the AlgoVoi gateway’s verifier expectations.
Cross-implementation parity
Python uses PyNaCl; TypeScript uses@noble/ed25519. Both derive the same public key
from the same Ed25519 seed and produce byte-identical signatures for the same signing base.
Test seed: 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae3d55
Derived public key: 700e2ce7c4b674427eab27ba820bcf6f0faebe68e09fe8564292114e41dc6a41
This keypair is used throughout the signer and verifier test suites for
byte-reproducible fixture generation.
See also
- RFC 9421 Verifier — companion verifier package
- Canonicalisation substrate — JCS RFC 8785 discipline
- Conformance vectors — cross-implementation vector corpus
- Compliance gate — gateway compliance enforcement