relay-proto: the link's shared types, joining, recipient hashing and sealing #244

Merged
jcoffey-dev merged 1 commits from relay/proto into main 2026-10-30 03:14:56 +00:00
Owner

First code for inbuxa-relay: a new crate, crates/relay-proto, shared by the relay and the server. JMAP envelope and RFC 8887 frames, the relay types, the join token and proof (RL-8), recipient hashing and lookup (RL-1, RL-11), and HPKE sealing of the inbound spool (RL-21), checked against the RFC 9180 A.2.1 vectors. 20 tests. Nothing uses it yet, so the server build is unchanged.

First code for inbuxa-relay: a new crate, `crates/relay-proto`, shared by the relay and the server. JMAP envelope and RFC 8887 frames, the relay types, the join token and proof (RL-8), recipient hashing and lookup (RL-1, RL-11), and HPKE sealing of the inbound spool (RL-21), checked against the RFC 9180 A.2.1 vectors. 20 tests. Nothing uses it yet, so the server build is unchanged.
jcoffey-dev added 1 commit 2026-10-30 02:54:12 +00:00
relay-proto: the link's shared types, joining, recipient hashing and sealing
ci / fork-checks (pull_request) Skipped
ci / build (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 8m45s
4f77c4672c
The first code for inbuxa-relay (docs/spec/features/relay.md), shared by
the relay and the server:

- jmap: requests, responses, RFC 8887 WebSocket frames, the session,
  and the relay's method names
- types: Relay settings and status, RecipientDomain, Inbound with its
  RFC 8621 Envelope and session, Verdict, RelayEvent
- token: the join token and its HMAC proof (RL-8)
- recipient: normalizing, hashing and deciding recipients (RL-1, RL-11)
- seal: HPKE base mode (X25519, HKDF-SHA256, ChaCha20-Poly1305) over a
  chunked stream bound to the message id (RL-21), checked against
  RFC 9180 A.2.1
- pin, time: key pins and JMAP UTCDate

Depends only on aws-lc-rs, base64 and serde, all already in the tree.
jcoffey-dev merged commit 4a80bc6dac into main 2026-10-30 03:14:56 +00:00
jcoffey-dev deleted branch relay/proto 2026-10-30 03:15:00 +00:00
Sign in to join this conversation.