Expand description
DTLS-SRTP: keying SRTP on the media path (RFC 5764).
SDES (sipx_sdp::crypto, RFC 4568) puts the master key in the SDP. That works and it means
every element that reads the signalling — every proxy, every session border controller that
terminates the TLS — has held the key. DTLS-SRTP does not: the two endpoints handshake on the
media path, derive the SRTP keys from the DTLS master secret, and the signalling carries only
a hash of the certificate that will appear (sipx_sdp::fingerprint, RFC 8122).
This module is the parts of RFC 5764 that are sipx’s own: telling a DTLS record from an RTP
packet on one port (§5.1.2), the protection profiles and their key sizes (§4.1.2), and turning
the exported keying material into the two SRTP contexts a session needs (§4.2). The handshake
itself is a DTLS implementation’s job and is reached through Handshake.
Supported: sipx-call now selects this protocol, key-derivation and handshake surface for
explicit DTLS-SRTP call policy (M-28), so an upper-layer caller has constrained its shape. The
optional dtls::openssl implementation remains experimental; enabling that feature only
makes the explicit selection available and never changes a call’s default.
Modules§
- openssl
- The DTLS handshake itself, over the media socket.
Structs§
- Keys
- The two SRTP contexts a session needs: one to protect with, one to unprotect with.
- Verified
Keys - DTLS-SRTP keys whose peer certificate and protection profile were verified.
Enums§
- Arriving
- What a datagram arriving on a media port is (RFC 5764 §5.1.2).
- Error
- Why a keyed media path could not be established.
- KeyError
- Why keying material could not be turned into SRTP contexts.
- Profile
- An SRTP protection profile (RFC 5764 §4.1.2).
- Role
- Which end of the DTLS connection this endpoint is.
Constants§
- EXPORTER_
LABEL - The TLS exporter label RFC 5764 §4.2 fixes for this use.
Traits§
- Handshake
- A DTLS handshake on the media path, as much of one as RFC 5764 needs.
Functions§
- classify
- Classify a datagram by its first byte (RFC 5764 §5.1.2).
- establish
- Handshake, verify the peer against the fingerprint from its SDP, and derive the SRTP keys.
- establish_
verified - Handshake, verify and return key material carrying proof that verification ran.
- keys_
from_ exported - Split exported keying material into the two SRTP contexts (RFC 5764 §4.2).