Expand description
The DTLS handshake itself, over the media socket.
Experimental (A-8): behind the dtls feature, which is off by default. sipx-call reaches
it only after an application explicitly selects DTLS-SRTP; enabling the feature alone changes
no call. super says the same of what it keys; this module says it on its own page because a
reader who lands here should not have to go up a level to find out (A-8’s rule).
Everything RFC 5764 decides is in super and is compiled whatever the features say. This
module is only the record layer and the handshake, and it is behind the dtls feature because
it is where the C dependency lives.
Why not a pure-Rust one: there is no DTLS implementation in Rust with comparable scrutiny, and
a hand-rolled handshake for a security-critical protocol is the kind of liability this project
declines elsewhere — the same reasoning that has SRTP’s AES come from RustCrypto rather than
from here. OpenSSL is also where use_srtp (RFC 5764 §4.1.1) and the RFC 5705 exporter have
been exercised against every other implementation for a decade, which is what a keying
mechanism needs most.
Structs§
- Identity
- A self-signed certificate to present on the media path, and its fingerprint.
- Session
- A DTLS-SRTP handshake over a media socket.
Enums§
- Dtls
Error - Why a handshake could not be run.