• 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 AesFunctions

    This class contains static fuctions for performing AES encryption and decryption operations for SRTP and SRTCP.

    Inheritance
    object
    AesFunctions
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: SipLib.RtpCrypto
    Assembly: SipLib.dll
    Syntax
    public static class AesFunctions

    Methods

    | Edit this page View Source

    AesCounterModeTransform(byte[], byte[], byte[], byte[])

    Encrypts or decrypts a block of bytes using AES in Counter Mode. RFC 3711 defines the AES Counter Mode algorithm for SRTP and SRTCP.

    Declaration
    public static void AesCounterModeTransform(byte[] key, byte[] salt, byte[] Input, byte[] Output)
    Parameters
    Type Name Description
    byte[] key

    Encryption key. The array length must be a valid length for the AES algorithm. Valid lengths are: 16 bytes (AES-128), 24 bytes (AES-192) or 32 bytes (AES-256).

    byte[] salt

    Salt value to use. This must be 16 bytes (128 bits) long.

    byte[] Input

    Input byte array to encrypt or decrypt.

    byte[] Output

    Output encrypted or decrypted byte array. Must be the same length or longer than the Input input array.

    Remarks

    This function can be used to either encrypt an input array or to produce a key stream which can then be used to encrypt some data.To encrypt data, pass the data into the Input array.

    To generate a key stream, pass in an array of 0s in the Input array and the Output array will contain the key stream.. Then XOR the key stream in the Output array with the data to be encrypted.

    The encryption and decryption operations are symetric. To encrypt a packet, pass in the plain text as the input. To decrypt a packet, pass in the encrypted packet as the input.

    | Edit this page View Source

    AesCounterModeTransform(byte[], byte[], byte[], int, int, byte[])

    Encrypts or decrypts a block of bytes using AES in Counter Mode. RFC 3711 defines the AES Counter Mode algorithm for SRTP and SRTCP.

    Declaration
    public static void AesCounterModeTransform(byte[] key, byte[] salt, byte[] Input, int StartIdx, int NumInputBytes, byte[] Output)
    Parameters
    Type Name Description
    byte[] key

    Encryption key. The array length must be a valid length for the AES algorithm. Valid lengths are: 16 bytes (AES-128), 24 bytes (AES-192) or 32 bytes (AES-256).

    byte[] salt

    Salt value to use. This must be 16 bytes (128 bits) long.

    byte[] Input

    Input byte array to encrypt or decrypt.

    int StartIdx

    Starting index in the Input array.

    int NumInputBytes

    Number of bytes in the input array to process.

    byte[] Output

    Output encrypted or decrypted byte array. Must be the same length or longer than NumInputBytes

    Remarks

    This function can be used to either encrypt an input array or to produce a key stream which can then be used to encrypt some data.To encrypt data, pass the data into the Input array.

    To generate a key stream, pass in an array of 0s in the Input array and the Output array will contain the key stream.. Then XOR the key stream in the Output array with the data to be encrypted.

    The encryption and decryption operations are symetric. To encrypt a packet, pass in the plain text as the input. To decrypt a packet, pass in the encrypted packet as the input.

    | Edit this page View Source

    AesF8ModeTransform(byte[], byte[], byte[], byte[], byte[])

    Encrypts or Decrypts a block of bytes using the AES in F8 mode. Section 4.1.2.1 of RFC 3711 specifies the AES in F8 mode algorithm. This algorithm only supports AES-128.

    Declaration
    public static void AesF8ModeTransform(byte[] k_e, byte[] k_s, byte[] IV, byte[] Input, byte[] Output)
    Parameters
    Type Name Description
    byte[] k_e

    Encryption key. Must be 16 bytes (128 bits) long.

    byte[] k_s

    Salt value to use.

    byte[] IV

    Initialization Vector (IV) to use. Must be the same length as the k_e input array.

    byte[] Input

    Input byte array to encrypt or decrypt.

    byte[] Output

    Output encrypted or decrypted byte array. Must be the same length or longer than the Input input array.

    Remarks

    This function can be used to either encrypt an input array or to produce a key stream which can then be used to encrypt some data.To encrypt data, pass the data into the Input array.

    To generate a key stream, pass in an array of 0s in the Input array and the Output array will contain the key stream.. Then XOR the key stream in the Output array with the data to be encrypted.

    The encryption and decryption operations are symetric. To encrypt a packet, pass in the plain text as the input. To decrypt a packet, pass in the encrypted packet as the input.

    | Edit this page View Source

    AesF8ModeTransform(byte[], byte[], byte[], byte[], int, int, byte[])

    Encrypts or Decrypts a block of bytes using the AES in F8 mode. Section 4.1.2.1 of RFC 3711 specifies the AES in F8 mode algorithm. This algorithm only supports AES-128.

    Declaration
    public static void AesF8ModeTransform(byte[] k_e, byte[] k_s, byte[] IV, byte[] Input, int StartIdx, int NumInputBytes, byte[] Output)
    Parameters
    Type Name Description
    byte[] k_e

    Encryption key. Must be 16 bytes (128 bits) long.

    byte[] k_s

    Salt value to use.

    byte[] IV

    Initialization Vector (IV) to use. Must be the same length as the k_e input array.

    byte[] Input

    Input byte array to encrypt or decrypt.

    int StartIdx

    The index in the Input array to start processing at.

    int NumInputBytes

    The number of bytes in the Input array to process.

    byte[] Output

    Output encrypted or decrypted byte array. Must be the same length or longer than the Input input array.

    Remarks

    This function can be used to either encrypt an input array or to produce a key stream which can then be used to encrypt some data.To encrypt data, pass the data into the Input array.

    To generate a key stream, pass in an array of 0s in the Input array and the Output array will contain the key stream.. Then XOR the key stream in the Output array with the data to be encrypted.

    The encryption and decryption operations are symetric. To encrypt a packet, pass in the plain text as the input. To decrypt a packet, pass in the encrypted packet as the input.

    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX