gstsdp.c.types

C types for gstsdp1 library

Types 34

The different cache types

None = 0The envelope key MUST NOT be cached
Always = 1The envelope key MUST be cached
ForCsb = 2The envelope key MUST be cached, but only to be used for the specific CSB.

The encryption algorithm used to encrypt the Encr data field

Null = 0no encryption
AesCm128 = 1AES-CM using a 128-bit key
AesKw128 = 2AES Key Wrap using a 128-bit key
AesGcm128 = 6AES-GCM using a 128-bit key (Since: 1.16)

The key validity type

Null = 0No specific usage rule
Spi = 1The key is associated with the SPI/MKI
Interval = 2The key has a start and expiration time

The type of key.

Tgk = 0a TEK Generation Key
Tek = 2Traffic-Encrypting Key

Specifies the authentication algorithm used

Null = 0no authentication
HmacSha1160 = 1HMAC-SHA-1-160

Specifies the method of uniquely mapping Crypto Sessions to the security protocol sessions.

MikeyMapTypeSrtp = 0SRTP

The PRF function that has been/will be used for key derivation

MikeyPrfMikey1 = 0MIKEY-1 PRF function

Different MIKEY Payload types.

Last = 0Last payload
Kemac = 1Key data transport payload
Pke = 2Envelope data payload
Dh = 3DH data payload
Sign = 4Signature payload
T = 5Timestamp payload
Id = 6ID payload
Cert = 7Certificate Payload
Chash = 8Cert hash payload
V = 9Verification message payload
Sp = 10Security Policy payload
Rand = 11RAND payload
Err = 12Error payload
KeyData = 20Key data sub-payload
GenExt = 21General Extension Payload

Specifies the security protocol

MikeySecProtoSrtp = 0SRTP

This policy specifies the parameters for SRTP and SRTCP

EncAlg = 0Encryption algorithm
EncKeyLen = 1Session Encr. key length
AuthAlg = 2Authentication algorithm
AuthKeyLen = 3Session Auth. key length
SaltKeyLen = 4Session Salt key length
Prf = 5SRTP Pseudo Random Function
KeyDerivRate = 6Key derivation rate
SrtpEnc = 7SRTP encryption off/on, 0 if off, 1 if on
SrtcpEnc = 8SRTCP encryption off/on, 0 if off, 1 if on
FecOrder = 9sender's FEC order
SrtpAuth = 10SRTP authentication off/on, 0 if off, 1 if on
AuthTagLen = 11Authentication tag length
SrtpPrefixLen = 12SRTP prefix length
AeadAuthTagLen = 20AEAD authentication tag length (Since: 1.16)

Specifies the timestamp type.

NtpUtc = 0an NTP time in UTC timezone
Ntp = 1an NTP time
Counter = 2a counter

Different MIKEY data types.

Invalid = - 1Invalid type
PskInit = 0Initiator's pre-shared key message
PskVerify = 1Verification message of a Pre-shared key message
PkInit = 2Initiator's public-key transport message
PkVerify = 3Verification message of a public-key message
DhInit = 4Initiator's DH exchange message
DhResp = 5Responder's DH exchange message
Error = 6Error message

Return values for the SDP functions.

Ok = 0A successful return value
Einval = - 1a function was given invalid parameters

The Security policy Map item for SRTP

Fields
ubyte policyThe security policy applied for the stream with @ssrc
uint ssrcthe SSRC that must be used for the stream
uint roccurrent rollover counter

Structure holding the information of the MIKEY message

Fields
GstMiniObject miniObject
ubyte version_the version
GstMIKEYType typethe #GstMIKEYType message type
gboolean Vverify flag
GstMIKEYPRFFunc prfFunca #GstMIKEYPRFFunc
uint CSBIdIdentifies the Crypto Session Bundle
GstMIKEYMapType mapTypea #GstMIKEYMapType
GArray * mapInfomap info array of type depending on @map_type
GArray * payloadsthe payload array of #GstMIKEYPayload

Hold the common fields for all payloads

Fields
GstMiniObject miniObject
GstMIKEYPayloadType typethe payload type
uint lenlength of the payload

A structure holding the KEMAC payload

Fields
GstMIKEYPayload ptthe common #GstMIKEYPayload
GstMIKEYEncAlg encAlgthe #GstMIKEYEncAlg
GstMIKEYMacAlg macAlgthe #GstMIKEYMacAlg
GArray * subpayloadsthe subpayloads

The Key data payload contains key material. It should be added as sub payload to the KEMAC.

Fields
GstMIKEYPayload ptthe payload header
GstMIKEYKeyDataType keyTypethe #GstMIKEYKeyDataType of @key_data
ushort keyLenlength of @key_data
ubyte * keyDatathe key data
ushort saltLenthe length of @salt_data, can be 0
ubyte * saltDatasalt data
GstMIKEYKVType kvTypethe Key Validity type
ubyte[2] kvLenlength of @kv_data
ubyte *[2] kvDatakey validity data

The Envelope data payload contains the encrypted envelope key that is used in the public-key transport to protect the data in the Key data transport payload. The encryption algorithm used is implicit from the certificate/public key used.

Fields
GstMIKEYPayload ptthe common #GstMIKEYPayload
GstMIKEYCacheType Cenvelope key cache indicator
ushort dataLenlength of @data
ubyte * datathe encrypted envelope key

The RAND payload consists of a (pseudo-)random bit-string

Fields
GstMIKEYPayload ptthe payload header
ubyte lenthe length of @rand
ubyte * randrandom values

The Security Policy payload defines a set of policies that apply to a specific security protocol

Fields
GstMIKEYPayload ptthe payload header
uint policythe policy number
GstMIKEYSecProto protothe security protocol
GArray * paramsarray of #GstMIKEYPayloadSPParam

A Type/Length/Value field for security parameters

Fields
ubyte typespecifies the type of the parameter
ubyte lenspecifies the length of @val
ubyte * valspecifies the value of the parameter

The timestamp payload carries the timestamp information

Fields
GstMIKEYPayload ptthe payload header
GstMIKEYTSType typea #GstMIKEYTSType
ubyte * tsValuethe timestamp value

The contents of the SDP "a=" field which contains a key/value pair.

Fields
char * keythe attribute key
char * valuethe attribute value or NULL when it was a property attribute

The contents of the SDP "b=" field which specifies the proposed bandwidth to be used by the session or media.

Fields
char * bwtypethe bandwidth modifier type
uint bandwidththe bandwidth in kilobits per second

The contents of the SDP "c=" field which contains connection data.

Fields
char * nettypethe type of network. "IN" is defined to have the meaning "Internet".
char * addrtypethe type of @address.
char * addressthe address
uint ttlthe time to live of the address
uint addrNumberthe number of layers
structGstSDPKey

The contents of the SDP "k=" field which is used to convey encryption keys.

Fields
char * typethe encryption type
char * datathe encryption data

The contents of the SDP "m=" field with all related fields.

Fields
char * mediathe media type
uint portthe transport port to which the media stream will be sent
uint numPortsthe number of ports or -1 if only one port was specified
char * protothe transport protocol
GArray * fmtsan array of #gchar formats
char * informationthe media title
GArray * connectionsarray of #GstSDPConnection with media connection information
GArray * bandwidthsarray of #GstSDPBandwidth with media bandwidth information
GstSDPKey keythe encryption key
GArray * attributesarray of #GstSDPAttribute with the additional media attributes

The GstSDPMessage helper functions makes it easy to parse and create SDP messages.

Fields
char * version_the protocol version
GstSDPOrigin originowner/creator and session identifier
char * sessionNamesession name
char * informationsession information
char * uriURI of description
GArray * emailsarray of #gchar with email addresses
GArray * phonesarray of #gchar with phone numbers
GstSDPConnection connectionconnection information for the session
GArray * bandwidthsarray of #GstSDPBandwidth with bandwidth information
GArray * timesarray of #GstSDPTime with time descriptions
GArray * zonesarray of #GstSDPZone with time zone adjustments
GstSDPKey keyencryption key
GArray * attributesarray of #GstSDPAttribute with session attributes
GArray * mediasarray of #GstSDPMedia with media descriptions

The contents of the SDP "o=" field which gives the originator of the session (their username and the address of the user's host) plus a session id and session version number.

Fields
char * usernamethe user's login on the originating host, or it is "-" if the originating host does not support the concept of user ids.
char * sessIdis a numeric string such that the tuple of @username, @sess_id, @nettype, @addrtype and @addr form a globally unique identifier for the session.
char * sessVersiona version number for this announcement
char * nettypethe type of network. "IN" is defined to have the meaning "Internet".
char * addrtypethe type of @addr.
char * addrthe globally unique address of the machine from which the session was created.

The contents of the SDP "t=" field which specify the start and stop times for a conference session.

Fields
char * startstart time for the conference. The value is the decimal representation of Network Time Protocol (NTP) time values in seconds
char * stopstop time for the conference. The value is the decimal representation of Network Time Protocol (NTP) time values in seconds
GArray * repeatrepeat times for a session

The contents of the SDP "z=" field which allows the sender to specify a list of time zone adjustments and offsets from the base time.

Fields
char * timethe NTP time that a time zone adjustment happens
char * typedTimethe offset from the time when the session was first scheduled