13 KiB
The different cache types
The envelope key MUST NOT be cached
The envelope key MUST be cached
The envelope key MUST be cached, but only to be used for the specific CSB.
The encryption algorithm used to encrypt the Encr data field
no encryption
AES-CM using a 128-bit key
AES Key Wrap using a 128-bit key
The key validity type
No specific usage rule
The key is associated with the SPI/MKI
The key has a start and expiration time
The type of key.
a TEK Generation Key
Traffic-Encrypting Key
Specifies the authentication algorithm used
no authentication
HMAC-SHA-1-160
Specifies the method of uniquely mapping Crypto Sessions to the security protocol sessions.
Structure holding the information of the MIKEY message
Make a new MIKEY message.
Returns
a new MIKEYMessage
on success
Make a new MIKEYMessage
from bytes
.
bytes
a glib::Bytes
info
a MIKEYDecryptInfo
Returns
a new MIKEYMessage
Makes mikey message including:
- Security Policy Payload
- Key Data Transport Payload
- Key Data Sub-Payload
caps
a gst::Caps
, including SRTP parameters (srtp/srtcp cipher, authorization, key data)
Returns
a MIKEYMessage
,
or None
if there is no srtp information in the caps.
Parse size
bytes from data
into a MIKEYMessage
. info
contains the
parameters to decrypt and verify the data.
data
bytes to read
size
length of data
info
MIKEYDecryptInfo
Returns
a MIKEYMessage
on success or None
when parsing failed and
error
will be set.
Add a Crypto policy for SRTP to self
.
policy
The security policy applied for the stream with ssrc
ssrc
the SSRC that must be used for the stream
roc
current rollover counter
Returns
true
on success
Add a new payload to self
.
payload
a MIKEYPayload
Returns
true
on success
Add a new PKE payload to self
with the given parameters.
C
envelope key cache indicator
data_len
the length of data
data
the encrypted envelope key
Returns
true
on success
Add a new RAND payload to self
with the given parameters.
len
the length of rand
rand
random data
Returns
true
on success
Add a new RAND payload to self
with len
random bytes.
len
length
Returns
true
on success
Add a new T payload to self
with the given parameters.
type_
specifies the timestamp type used
ts_value
The timestamp value of the specified type_
Returns
true
on success
Add a new T payload to self
that contains the current time
in NTP-UTC format.
Returns
true
on success
Returns
a gchar
, base64-encoded data
Find the nth
occurence of the payload with type_
in self
.
type_
a MIKEYPayloadType
nth
payload to find
Returns
the nth
MIKEYPayload
of type_
.
Get the policy information of self
at idx
.
idx
an index
Returns
a MIKEYMapSRTP
Get the number of crypto sessions in self
.
Returns
the number of crypto sessions
Get the number of payloads in self
.
Returns
the number of payloads in self
Get the MIKEYPayload
at idx
in self
idx
an index
Returns
the MIKEYPayload
at idx
. The payload
remains valid for as long as it is part of self
.
Insert a Crypto Session map for SRTP in self
at idx
When idx
is -1, the policy will be appended.
idx
the index to insert at
map
the map info
Returns
true
on success
Insert the payload
at index idx
in self
. If idx
is -1, the payload
will be appended to self
.
idx
an index
payload
a MIKEYPayload
Returns
true
on success
Remove the SRTP policy at idx
.
idx
the index to remove
Returns
true
on success
Remove the payload in self
at idx
idx
an index
Returns
true
on success
Replace a Crypto Session map for SRTP in self
at idx
with map
.
idx
the index to insert at
map
the map info
Returns
true
on success
Replace the payload at idx
in self
with payload
.
idx
an index
payload
a MIKEYPayload
Returns
true
on success
Set the information in self
.
version
a version
type_
a MIKEYType
V
verify flag
prf_func
the MIKEYPRFFunc
function to use
CSB_id
the Crypto Session Bundle id
map_type
the GstMIKEYCSIDMapType
Returns
true
on success
Convert self
to a glib::Bytes
.
info
a MIKEYEncryptInfo
Returns
a new glib::Bytes
for self
.
Feature: v1_8_1
caps
a gst::Caps
to be filled with SRTP parameters (srtp/srtcp cipher, authorization, key data)
Returns
true
on success
The PRF function that has been/will be used for key derivation
MIKEY-1 PRF function
Hold the common fields for all payloads
Make a new MIKEYPayload
with type_
.
type_
a MIKEYPayloadType
Returns
a new MIKEYPayload
or None
on failure.
Add a new sub payload to self
.
newpay
a MIKEYPayload
to add
Returns
true
on success.
Get the number of sub payloads of self
. self
should be of type
MIKEYPayloadType::Kemac
.
Returns
the number of sub payloads in self
Get the sub payload of self
at idx
. self
should be of type
MIKEYPayloadType::Kemac
.
idx
an index
Returns
the MIKEYPayload
at idx
.
Remove the sub payload at idx
in self
.
idx
the index to remove
Returns
true
on success.
Set the KEMAC parameters. self
should point to a MIKEYPayloadType::Kemac
payload.
enc_alg
the MIKEYEncAlg
mac_alg
a MIKEYMacAlg
Returns
true
on success
Set the key validity period in the MIKEYPayloadType::KeyData
self
.
vf_len
the length of vf_data
vf_data
the Valid From data
vt_len
the length of vt_data
vt_data
the Valid To data
Returns
true
on success
Set key_len
bytes of key_data
of type key_type
as the key for the
MIKEYPayloadType::KeyData
self
.
key_type
a MIKEYKeyDataType
key_len
the length of key_data
key_data
the key of type key_type
Returns
true
on success
Set the salt key data. If salt_len
is 0 and salt_data
is None
, the
salt data will be removed.
salt_len
the length of salt_data
salt_data
the salt
Returns
true
on success
Set the SPI/MKI validity in the MIKEYPayloadType::KeyData
self
.
spi_len
the length of spi_data
spi_data
the SPI/MKI data
Returns
true
on success
Set the PKE values in self
. self
must be of type
MIKEYPayloadType::Pke
.
C
envelope key cache indicator
data_len
the length of data
data
the encrypted envelope key
Returns
true
on success
Set the random values in a MIKEYPayloadType::Rand
self
.
len
the length of rand
rand
random values
Returns
true
on success
Add a new parameter to the MIKEYPayloadType::Sp
self
with type_
, len
and val
.
type_
a type
len
a length
val
len
bytes of data
Returns
true
on success
Get the number of security policy parameters in a MIKEYPayloadType::Sp
self
.
Returns
the number of parameters in self
Get the Security Policy parameter in a MIKEYPayloadType::Sp
self
at idx
.
idx
an index
Returns
the MIKEYPayloadSPParam
at idx
in self
Remove the Security Policy parameters from a MIKEYPayloadType::Sp
self
at idx
.
idx
an index
Returns
true
on success
Set the Security Policy parameters for self
.
policy
the policy number
proto
a MIKEYSecProto
Returns
true
on success
Set the timestamp in a MIKEYPayloadType::T
self
.
type_
the MIKEYTSType
ts_value
the timestamp value
Returns
true
on success
Different MIKEY Payload types.
Last payload
Key data transport payload
Envelope data payload
DH data payload
Signature payload
Timestamp payload
ID payload
Certificate Payload
Cert hash payload
Verfication message payload
Security Policy payload
RAND payload
Error payload
Key data sub-payload
General Extension Payload
Specifies the security protocol
This policy specifies the parameters for SRTP and SRTCP
Encryption algorithm
Session Encr. key length
Authentication algorithm
Session Auth. key length
Session Salt key length
SRTP Pseudo Random Function
Key derivation rate
SRTP encryption off/on, 0 if off, 1 if on
SRTCP encryption off/on, 0 if off, 1 if on
sender's FEC order
SRTP authentication off/on, 0 if off, 1 if on
Authentication tag length
SRTP prefix length
Specifies the timestamp type.
an NTP time in UTC timezone
an NTP time
a counter
Different MIKEY data types.
Invalid type
Initiator's pre-shared key message
Verification message of a Pre-shared key message
Initiator's public-key transport message
Verification message of a public-key message
Initiator's DH exchange message
Responder's DH exchange message
Error message