Skip to content

SFrame media end-to-end encryption

Crypto - sframe-media

CRY-04 - status: draft - audio, video, group

Per-frame end-to-end AEAD sealing of media payloads, applied above SRTP so the relay only forwards ciphertext.

  • Each media frame MUST be sealed with an SFrame-style AEAD before transport.
  • The sealed frame carries an authenticated header (key id + monotonic frame counter) over a payload encrypted under a per-participant SFrame key derived from the call key.
  • The frame counter MUST NOT repeat under a given key.
  • The relay MUST be unable to recover plaintext; it only forwards sealed frames.
  • Group calls use per-sender keys.

Requires: srtp-master-key
Breakdown: call-key, group-call-crypto

Implemented by

Flavor Status Source Notes
whatsapp-rust working history - blame - commits 674e851
zapo-caller working

Annotation wacrg:CRY-04 — a flavor marks its implementation site in source with this comment; a script clones the source, finds it, and attaches the commit blame/permalink.

Contributors

Contributor Role
Rajeh Taher Rajeh Taher wrote initial spec

protocol history / diff - blame

Open questions - Exact AEAD suite, nonce construction, and header varint layout. - Group-call key distribution and rotation.

Changelog

  • 2026-06-21 — Initial spec entry.

Back to the full spec