# RFC 6189 coverage matrix
This crate focuses on the ZRTP protocol core in RFC 6189. It intentionally does **not** implement a full SIP/RTP application stack.
## Implemented
- ZRTP packet framing and CRC32C validation
- Hello / HelloACK / Commit / DHPart1 / DHPart2 / Confirm1 / Confirm2 / Conf2ACK
- Error / ErrorACK / GoClear / ClearACK / SASrelay / RelayACK / Ping / PingACK
- algorithm negotiation helpers for hash, cipher, auth tag, key agreement, and SAS types
- retained-secret cache primitives and retained-secret ID matching
- HVI / transcript hashing helpers
- DH / ECDH key exchange helpers including EC52
- Confirm encryption / MAC helpers
- session secret derivation and SAS rendering surfaces
- retransmission helpers and handshake state machine
- packet-pumped initiator/responder example that reaches secure state with matching SAS output
## Partial
- Optional signature-related wire fields are present, but the crate does not provide a full PKI or signature-validation stack
- PBX / intermediary / disclosure-related fields exist on the wire, but the crate does not model a full network-wide policy engine around them
- `SASrelay` and `GoClear` are supported at the message level, but higher-level application policy remains the responsibility of the embedding app
## Out of scope for this crate
- SIP signaling transport and call setup
- SDP offer/answer handling and `a=zrtp-hash` signaling integration
- RTP/SRTP packet transport and media session management
- ZID-to-AOR mapping policy
- certificate provisioning and trust-store management
## Feature coverage
- Default builds enable the `crypto` feature and include the full protocol/crypto foundation listed above.
- `--no-default-features` is intentionally wire-focused: it keeps parsing, framing, negotiation data structures, retransmission helpers, and cache primitives available, while crypto-backed KDF, DH/ECDH, Confirm encryption/MAC, and SAS rendering APIs return `Unsupported`.
## Adjacent RFCs to keep in view
- **RFC 3550** — RTP transport assumptions and packet flow
- **RFC 3711** — SRTP keying and protection model
- **RFC 3261** — SIP signaling, only if you add signaling integration examples
- **RFC 4566** — SDP, only if you add discovery or offer/answer integration
## Guidance
If you want a usable crate now, keep the public API centered on RFC 6189 primitives and provide a small transport-agnostic example. If you later want a SIP/RTP demo, put it in a separate example or companion crate rather than expanding the core library.