• Articles
  • Api Documentation
Search Results for

    Show / Hide Table of Contents
    • SipLib.Body
      • BodyParser
      • ContentTypes
      • MessageContentsContainer
      • MultipartBinaryBodyBuilder
      • SipBodyBuilder
    • SipLib.Channels
      • AcceptCertificateDelegate
      • AcceptConnectionDelegate
      • DscpSettings
      • LogInvalidSipMessageDelegate
      • LogSipRequestDelegate
      • LogSipResponseDelegate
      • Qos
      • SIPChannel
      • SIPConnection
      • SIPConnectionDisconnectedDelegate
      • SIPConnectionsEnum
      • SIPMessageReceivedDelegate
      • SIPTCPChannel
      • SIPTLSChannel
      • SIPUDPChannel
      • SipConnectionFailedDelegate
      • SipRequestReceivedDelegate
      • SipResponseReceivedDelegate
      • SipTransactionCompleteDelegate
      • WindowsQos
    • SipLib.Collections
      • ThreadSafeGenericList<T>
    • SipLib.Core
      • ByteBufferInfo
      • CallProperties
      • Crypto
      • HTTPDigest
      • IPSocket
      • SIPAuthenticationHeader
      • SIPAuthorisationDigest
      • SIPAuthorisationHeadersEnum
      • SIPCallInfoHeader
      • SIPConstants
      • SIPContactHeader
      • SIPEndPoint
      • SIPEscape
      • SIPFrag
      • SIPFromHeader
      • SIPGeolocationHeader
      • SIPHeader
      • SIPHeaders
      • SIPMessage
      • SIPMessageTypesEnum
      • SIPMethods
      • SIPMethodsEnum
      • SIPPaiHeader
      • SIPParameters
      • SIPPpiHeader
      • SIPProtocolsEnum
      • SIPProtocolsType
      • SIPReplacesParameter
      • SIPRequest
      • SIPResponse
      • SIPResponseStatusCodes
      • SIPResponseStatusCodesEnum
      • SIPRoute
      • SIPRouteSet
      • SIPSchemesEnum
      • SIPSchemesType
      • SIPToHeader
      • SIPURI
      • SIPUserField
      • SIPValidationException
      • SIPValidationFieldsEnum
      • SIPViaHeader
      • SIPViaSet
      • SipUtils
      • TypeExtensions
    • SipLib.Dtls
      • AlertLevelsEnum
      • AlertTypesEnum
      • DtlsClientUdpTransport
      • DtlsServerUdpTransport
      • DtlsSrtpClient
      • DtlsSrtpServer
      • DtlsSrtpTransport
      • DtlsUtils
      • IDtlsSrtpPeer
      • IPacketTransformer
      • ITransformEngine
      • NetConvert
      • RTCDtlsFingerprint
      • RawPacket
      • SrtcpCryptoContext
      • SrtpPolicy
      • SrtpTransformEngine
      • SrtpTransformer
    • SipLib.Logging
      • SipLogger
    • SipLib.Media
      • ALawDecoder
      • ALawEncoder
      • AudioDestination
      • AudioDestinationDelegate
      • AudioSampleData
      • AudioSamplesReadyDelegate
      • AudioSource
      • Band
      • DtmfDigitReceivedDelegate
      • FileAudioSource
      • G722Codec
      • G722CodecState
      • G722Decoder
      • G722Encoder
      • G722Flags
      • HighResolutionTimer
      • HighResolutionTimerDelegate
      • IAudioDecoder
      • IAudioEncoder
      • IAudioSampleSource
      • MediaPortManager
      • MediaPortSettings
      • MediaTypes
      • MsrpEncryptionEnum
      • MuLawDecoder
      • MuLawEncoder
      • PcmaDecoder
      • PcmaEncoder
      • PcmuDecoder
      • PcmuEncoder
      • PortRange
      • RtpEncryptionEnum
    • SipLib.Msrp
      • ByteRangeHeader
      • CpimMessage
      • MsrpCompletionStatus
      • MsrpConnection
      • MsrpConnectionStatusDelegate
      • MsrpMessage
      • MsrpMessageDeliveryFailedDelegate
      • MsrpMessageReceivedDelegate
      • MsrpMessageSentDelegate
      • MsrpMessageType
      • MsrpPathHeader
      • MsrpStatusHeader
      • MsrpStreamParser
      • MsrpTextMessageReceivedDelegate
      • MsrpUri
      • ReportReceivedDelegate
    • SipLib.Network
      • IpUtils
    • SipLib.RealTimeText
      • RttCharactersReceivedDelegate
      • RttParameters
      • RttReceiver
      • RttRtpSendDelegate
      • RttSender
    • SipLib.Rtp
      • ByePacket
      • DtlsHandshakeFailedDelegate
      • DtmfEventEnum
      • DtmfPacket
      • JitterStatistics
      • MeanOpinionScore
      • ReceiveStatisticsReadyDelegate
      • ReceiverReport
      • ReportBlock
      • RtcpCompoundPacket
      • RtcpHeader
      • RtcpPacketReceivedDelegate
      • RtcpPacketSentDelegate
      • RtcpPacketType
      • RtpChannel
      • RtpPacket
      • RtpPacketReceivedDelegate
      • RtpPacketSentDelegate
      • RtpReceiveStatistics
      • RtpUtils
      • SdesChunk
      • SdesItem
      • SdesItemType
      • SdesPacket
      • SenderInfo
      • SenderReport
    • SipLib.RtpCrypto
      • AesFunctions
      • CryptoAttribute
      • CryptoContext
      • CryptoSuites
      • InlineParams
      • MasterKeys
      • RocVals
      • RocValues
      • SRtpErrorsEnum
      • SRtpUtils
      • SessionKeys
      • SrtpDecryptor
      • SrtpEncryptor
      • SrtpLabelItem
      • SrtpTransformBase
    • SipLib.Sdp
      • ConnectionData
      • MediaDescription
      • MediaDirectionEnum
      • Origin
      • RtpMapAttribute
      • Sdp
      • SdpAnswerSettings
      • SdpAttribute
      • SdpUtils
      • SetupType
    • SipLib.Threading
      • QueuedActionWorkerTask
    • SipLib.Transactions
      • ClientInviteTransaction
      • ClientNonInviteTransaction
      • ServerInviteTransaction
      • ServerNonInviteTransaction
      • SipTimers
      • SipTransactionBase
      • SipTransport
      • TransactionRequestReceivedDelegate
      • TransactionResponseReceivedDelegate
      • TransactionStateEnum
      • TransactionTerminationReasonEnum
    • SipLib.Video
      • H264Depacketiser
      • H264Packetiser
      • H264Packetiser.H264Nal
      • H264RtpReceiver
      • H264RtpSender
      • RtpSendDelegate
      • RtpVP8Header
      • VP8RtpReceiver
      • VP8RtpSender
      • VideoRtpReceiver
      • VideoRtpSender

    Class DtlsSrtpClient

    Class for a DTLS-SRTP handshake client.

    Inheritance
    object
    AbstractTlsPeer
    AbstractTlsClient
    DefaultTlsClient
    DtlsSrtpClient
    Implements
    TlsClient
    TlsPeer
    IDtlsSrtpPeer
    Inherited Members
    DefaultTlsClient.mDHVerifier
    DefaultTlsClient.GetCipherSuites()
    DefaultTlsClient.GetKeyExchange()
    DefaultTlsClient.CreateDHKeyExchange(int)
    DefaultTlsClient.CreateDheKeyExchange(int)
    DefaultTlsClient.CreateECDHKeyExchange(int)
    DefaultTlsClient.CreateECDheKeyExchange(int)
    DefaultTlsClient.CreateRsaKeyExchange()
    AbstractTlsClient.mCipherFactory
    AbstractTlsClient.mContext
    AbstractTlsClient.mSupportedSignatureAlgorithms
    AbstractTlsClient.mNamedCurves
    AbstractTlsClient.mClientECPointFormats
    AbstractTlsClient.mServerECPointFormats
    AbstractTlsClient.mSelectedCipherSuite
    AbstractTlsClient.mSelectedCompressionMethod
    AbstractTlsClient.AllowUnexpectedServerExtension(int, byte[])
    AbstractTlsClient.CheckForUnexpectedServerExtension(IDictionary, int)
    AbstractTlsClient.Init(TlsClientContext)
    AbstractTlsClient.GetCompressionMethods()
    AbstractTlsClient.NotifySessionID(byte[])
    AbstractTlsClient.NotifySelectedCipherSuite(int)
    AbstractTlsClient.NotifySelectedCompressionMethod(byte)
    AbstractTlsClient.ProcessServerSupplementalData(IList)
    AbstractTlsClient.GetClientSupplementalData()
    AbstractTlsClient.GetCompression()
    AbstractTlsClient.GetCipher()
    AbstractTlsClient.NotifyNewSessionTicket(NewSessionTicket)
    AbstractTlsClient.ClientHelloRecordLayerVersion
    AbstractTlsClient.IsFallback
    AbstractTlsPeer.Cancel()
    AbstractTlsPeer.NotifyCloseHandle(TlsCloseable)
    AbstractTlsPeer.GetHandshakeTimeoutMillis()
    AbstractTlsPeer.ShouldUseGmtUnixTime()
    AbstractTlsPeer.NotifySecureRenegotiation(bool)
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: SipLib.Dtls
    Assembly: SipLib.dll
    Syntax
    public class DtlsSrtpClient : DefaultTlsClient, TlsClient, TlsPeer, IDtlsSrtpPeer

    Constructors

    | Edit this page View Source

    DtlsSrtpClient()

    Constructor. Creates a self-signed certificate.

    Declaration
    public DtlsSrtpClient()
    | Edit this page View Source

    DtlsSrtpClient(Certificate, AsymmetricKeyParameter)

    Constructor

    Declaration
    public DtlsSrtpClient(Certificate certificateChain, AsymmetricKeyParameter privateKey)
    Parameters
    Type Name Description
    Certificate certificateChain
    AsymmetricKeyParameter privateKey
    | Edit this page View Source

    DtlsSrtpClient(Certificate, AsymmetricKeyParameter, UseSrtpData)

    Constructor

    Declaration
    public DtlsSrtpClient(Certificate certificateChain, AsymmetricKeyParameter privateKey, UseSrtpData clientSrtpData)
    Parameters
    Type Name Description
    Certificate certificateChain

    Contains at least one X.509 certificate. If null, then a self-signed certificate will be automatically created.

    AsymmetricKeyParameter privateKey

    Private key for the certificate

    UseSrtpData clientSrtpData

    BouncyCastle UseSrtpData object to use. May be null. If null the a UseSrtpData object will be created. The UseSrtpData class contains the SRTP protection profiles and the Master Key Index that will be negotiated during the DTLS handshake process.

    | Edit this page View Source

    DtlsSrtpClient(UseSrtpData)

    Constructor

    Declaration
    public DtlsSrtpClient(UseSrtpData clientSrtpData)
    Parameters
    Type Name Description
    UseSrtpData clientSrtpData
    | Edit this page View Source

    DtlsSrtpClient(X509Certificate2)

    Constructor. Creates a self-signed certificate from a .NET X509Certificate2

    Declaration
    public DtlsSrtpClient(X509Certificate2 certificate)
    Parameters
    Type Name Description
    X509Certificate2 certificate

    Input certificate

    | Edit this page View Source

    DtlsSrtpClient(string, string)

    Constructor.

    Declaration
    public DtlsSrtpClient(string certificatePath, string keyPath)
    Parameters
    Type Name Description
    string certificatePath

    File path to the certificate file

    string keyPath

    File path to the private key file

    | Edit this page View Source

    DtlsSrtpClient(string[], string)

    Constructor

    Declaration
    public DtlsSrtpClient(string[] certificatesPath, string keyPath)
    Parameters
    Type Name Description
    string[] certificatesPath
    string keyPath

    Fields

    | Edit this page View Source

    mSession

    Contains the Org.BouncyCastle.Crypto.Tls.TlsSession

    Declaration
    protected TlsSession? mSession
    Field Value
    Type Description
    TlsSession

    Properties

    | Edit this page View Source

    ClientVersion

    Gets the protcol version for this client

    Declaration
    public override ProtocolVersion ClientVersion { get; }
    Property Value
    Type Description
    ProtocolVersion
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.ClientVersion
    | Edit this page View Source

    Fingerprint

    Gets the fingerprint of the X.509 certificate used by this client

    Declaration
    public RTCDtlsFingerprint? Fingerprint { get; }
    Property Value
    Type Description
    RTCDtlsFingerprint
    | Edit this page View Source

    ForceUseExtendedMasterSecret

    Gets or sets a flag to indicate whether or not to force the use of the extended MasterSecret. Defaults to true.

    Declaration
    public bool ForceUseExtendedMasterSecret { get; set; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    MinimumVersion

    Gets the minimum version support by this client

    Declaration
    public override ProtocolVersion MinimumVersion { get; }
    Property Value
    Type Description
    ProtocolVersion
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.MinimumVersion
    | Edit this page View Source

    ServerCertificate

    Gets the Certificate received from the server.

    Declaration
    public Certificate ServerCertificate { get; }
    Property Value
    Type Description
    Certificate

    Methods

    | Edit this page View Source

    GetAuthentication()

    Gets the authentication information

    Declaration
    public override TlsAuthentication GetAuthentication()
    Returns
    Type Description
    TlsAuthentication
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.GetAuthentication()
    | Edit this page View Source

    GetClientExtensions()

    Gets the DTLS extensions for this DTLS-SRTP client.

    Declaration
    public override IDictionary GetClientExtensions()
    Returns
    Type Description
    IDictionary

    Returns a dictionary containing the client DTLS extensions

    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.GetClientExtensions()
    | Edit this page View Source

    GetKeyingMaterial(int)

    Gets the keying material (master keys and master salts)

    Declaration
    protected byte[] GetKeyingMaterial(int length)
    Parameters
    Type Name Description
    int length
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetKeyingMaterial(string, byte[], int)

    Gets the keying material (master keys and master salts)

    Declaration
    protected virtual byte[] GetKeyingMaterial(string asciiLabel, byte[] context_value, int length)
    Parameters
    Type Name Description
    string asciiLabel
    byte[] context_value
    int length
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetRemoteCertificate()

    Gets the Certificate of the server

    Declaration
    public Certificate GetRemoteCertificate()
    Returns
    Type Description
    Certificate
    | Edit this page View Source

    GetSessionToResume()

    Gets the DTLS-SRTP session to resume

    Declaration
    public override TlsSession GetSessionToResume()
    Returns
    Type Description
    TlsSession
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.GetSessionToResume()
    | Edit this page View Source

    GetSrtcpPolicy()

    Gets the SRTCP encryption and authenticaion policy information for the DTLS-SRTP session

    Declaration
    public virtual SrtpPolicy GetSrtcpPolicy()
    Returns
    Type Description
    SrtpPolicy
    | Edit this page View Source

    GetSrtpMasterClientKey()

    Gets the client's master key

    Declaration
    public virtual byte[] GetSrtpMasterClientKey()
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetSrtpMasterClientSalt()

    Gets the client's master salt

    Declaration
    public virtual byte[] GetSrtpMasterClientSalt()
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetSrtpMasterServerKey()

    Gets the server's master key for SRTP

    Declaration
    public virtual byte[] GetSrtpMasterServerKey()
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetSrtpMasterServerSalt()

    Gets the server's master salt

    Declaration
    public virtual byte[] GetSrtpMasterServerSalt()
    Returns
    Type Description
    byte[]
    | Edit this page View Source

    GetSrtpPolicy()

    Gets the SRTP encryption and authentication policy information for the DTLS-SRTP session

    Declaration
    public virtual SrtpPolicy GetSrtpPolicy()
    Returns
    Type Description
    SrtpPolicy
    | Edit this page View Source

    IsClient()

    Always returns true because this object is the DTLS client

    Declaration
    public bool IsClient()
    Returns
    Type Description
    bool
    | Edit this page View Source

    NotifyAlertRaised(byte, byte, string, Exception)

    Called by the transport if a DTLS-SRTP protocol alert has been raised.

    Declaration
    public override void NotifyAlertRaised(byte alertLevel, byte alertDescription, string message, Exception cause)
    Parameters
    Type Name Description
    byte alertLevel
    byte alertDescription
    string message
    Exception cause
    Overrides
    AbstractTlsPeer.NotifyAlertRaised(byte, byte, string, Exception)
    | Edit this page View Source

    NotifyAlertReceived(byte, byte)

    Called if a protocol Alert was received

    Declaration
    public override void NotifyAlertReceived(byte alertLevel, byte alertDescription)
    Parameters
    Type Name Description
    byte alertLevel
    byte alertDescription
    Overrides
    AbstractTlsPeer.NotifyAlertReceived(byte, byte)
    | Edit this page View Source

    NotifyHandshakeComplete()

    Called when the DTLS handshake is completed

    Declaration
    public override void NotifyHandshakeComplete()
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsPeer.NotifyHandshakeComplete()
    | Edit this page View Source

    NotifyServerVersion(ProtocolVersion)

    Called during the protocol handshake to set the protocol version of the server

    Declaration
    public override void NotifyServerVersion(ProtocolVersion serverVersion)
    Parameters
    Type Name Description
    ProtocolVersion serverVersion
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.NotifyServerVersion(Org.BouncyCastle.Crypto.Tls.ProtocolVersion)
    | Edit this page View Source

    PrepareSrtpSharedSecret()

    Prepares the SRTP-DTLS shared secret for the DTLS-SRTP handshake

    Declaration
    protected virtual void PrepareSrtpSharedSecret()
    | Edit this page View Source

    ProcessServerExtensions(IDictionary)

    Processes the DTLS handshake extensions received from the DTLS server

    Declaration
    public override void ProcessServerExtensions(IDictionary clientExtensions)
    Parameters
    Type Name Description
    IDictionary clientExtensions
    Overrides
    AbstractTlsClient.ProcessServerExtensions(IDictionary)
    | Edit this page View Source

    RequiresExtendedMasterSecret()

    Returns true if an extended master secret is required.

    Declaration
    public override bool RequiresExtendedMasterSecret()
    Returns
    Type Description
    bool
    Overrides
    Org.BouncyCastle.Crypto.Tls.AbstractTlsPeer.RequiresExtendedMasterSecret()

    Events

    | Edit this page View Source

    OnAlert

    Event that is fired when an Alert is received from the server during the DTLS handshake

    Declaration
    public event Action<AlertLevelsEnum, AlertTypesEnum, string>? OnAlert
    Event Type
    Type Description
    Action<AlertLevelsEnum, AlertTypesEnum, string>

    Implements

    Org.BouncyCastle.Crypto.Tls.TlsClient
    Org.BouncyCastle.Crypto.Tls.TlsPeer
    IDtlsSrtpPeer
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX