Namespace SipLib.Dtls
Classes required to support encryption and decryption of media (audio, video and Real Time Text) using the Datagram Transport Layer Security DTLS specified in RFC 5763 and RFC 5764. The classes in this namespace are used by the RtpChannel class for encrypting and decrypting RTP media data. Users of the SipLib class library do not normally need to use the classes in this namespace.
Classes
DtlsClientUdpTransport
Class for performing the client side of the DTLS handshake for DTLS-SRTP. This class uses a .NET UdpClient to communicate with the DTLS-SRTP server.
This class should be used to perform the DTLS-SRTP handshake only. At the end of the DTLS-SRTP handshake both the client and the server will have exchanged the SRTP keying material. Call the Close() method when the handshake is completed. The Close() method closes the UdpClient object so it is necessary to create a new UdpClient object to communicate with the server for transporting SRTP media packets.
After calling the constructor, call the DoHandshake() method of the DtlsSrtpTransport object to start the DTLS-SRTP handshake process.
DtlsServerUdpTransport
Class for performing the server side of the DTLS handshake for DTLS-SRTP. This class uses a .NET UdpClient to communicate with the DTLS-SRTP client.
This class should be used to perform the DTLS-SRTP handshake only. At the end of the DTLS-SRTP handshake both the client and the server will have exchanged the SRTP keying material. Call the Close() method when the handshake is completed. The Close() method closes the UdpClient object so it is necessary to create a new UdpClient object to communicate with the client for transporting SRTP media packets.
After calling the constructor, call the DoHandshake() method of the DtlsSrtpTransport object to start the DTLS-SRTP handshake process.
DtlsSrtpClient
Class for a DTLS-SRTP handshake client.
DtlsSrtpServer
Class for a DTLS-SRTP handshake server
DtlsSrtpTransport
Class for managing the transport logic for a DTLS SRTP client or a server.
DtlsUtils
This class provides various utility functions for the Datagram Transport Layer Security (DTLS) protocol.
NetConvert
This class provides various static functions for fixing Little-Endian/Big-Endian byte ordering issues.
RTCDtlsFingerprint
Represents a fingerprint of a certificate used to authenticate WebRTC communications.
RawPacket
When using a TransformConnector, a RTP/RTCP packet is represented using RawPacket. RawPacket stores the buffer holding the RTP/RTCP packet, as well as the inner offset and length of RTP/RTCP packet data.
After transformation, data is also stored in RawPacket objects, either the original RawPacket (in place transformation), or a newly created RawPacket.
SrtcpCryptoContext
SRTPCryptoContext class is the core class of SRTP implementation. There can be multiple SRTP sources in one SRTP session. And each SRTP stream has a corresponding SRTPCryptoContext object, identified by SSRC. In this way, different sources can be protected independently.
SrtpPolicy
SrtpPolicy holds the SRTP encryption / authentication policy of a SRTP session.
Author: Bing SU (nova.su@gmail.com)
SrtpTransformEngine
Implementation of the SRTP Transform Engine
SrtpTransformer
SRTPTransformer implements IPacketTransformer and provides implementations for RTP packet to SRTP packet transformation and SRTP packet to RTP packet transformation logic.
It will first find the corresponding SRTPCryptoContext for each packet based on their SSRC and then invoke the context object to perform the transformation and reverse transformation operation.
Interfaces
IDtlsSrtpPeer
Definition of the interface that must be implement by the DtlsSrtpClient and the DtlsSrtpServer
IPacketTransformer
Interface for transforming a non-secure packet.
ITransformEngine
Interface for the transform engine.
Enums
AlertLevelsEnum
Enumeration of the protocol alert levels
AlertTypesEnum
Enumeration of the protocol Alert types