| Top |
| #define | GST_MIKEY_VERSION |
| enum | GstMIKEYType |
| struct | GstMIKEYMessage |
| enum | GstMIKEYPRFFunc |
| enum | GstMIKEYMapType |
| GstMIKEYMapSRTP | |
| enum | GstMIKEYPayloadType |
| struct | GstMIKEYPayload |
| enum | GstMIKEYEncAlg |
| enum | GstMIKEYMacAlg |
| GstMIKEYPayloadKEMAC | |
| enum | GstMIKEYCacheType |
| GstMIKEYPayloadPKE | |
| enum | GstMIKEYTSType |
| GstMIKEYPayloadT | |
| GstMIKEYPayloadRAND | |
| enum | GstMIKEYSecProto |
| enum | GstMIKEYSecSRTP |
| GstMIKEYPayloadSP | |
| GstMIKEYPayloadSPParam |
GstMIKEYMessage *
gst_mikey_message_new (void);
Make a new MIKEY message.
Since: 1.4
GstMIKEYMessage * gst_mikey_message_new_from_bytes (GBytes *bytes,GstMIKEYDecryptInfo *info,GError **error);
Make a new GstMIKEYMessage from bytes
.
Since: 1.4
GstMIKEYMessage *
gst_mikey_message_new_from_caps (GstCaps *caps);
Makes mikey message including:
Security Policy Payload
Key Data Transport Payload
Key Data Sub-Payload
Since: 1.8
GstMIKEYMessage * gst_mikey_message_new_from_data (gconstpointer data,gsize size,GstMIKEYDecryptInfo *info,GError **error);
Parse size
bytes from data
into a GstMIKEYMessage. info
contains the
parameters to decrypt and verify the data.
data |
bytes to read. |
[array length=size][element-type guint8] |
size |
length of |
|
info |
GstMIKEYDecryptInfo |
|
error |
a GError |
Since: 1.4
GBytes * gst_mikey_message_to_bytes (GstMIKEYMessage *msg,GstMIKEYEncryptInfo *info,GError **error);
Convert msg
to a GBytes.
Since: 1.4
gboolean gst_mikey_message_to_caps (const GstMIKEYMessage *msg,GstCaps *caps);
msg |
||
caps |
a GstCaps to be filled with SRTP parameters (srtp/srtcp cipher, authorization, key data) |
Since: 1.8.1
gchar *
gst_mikey_message_base64_encode (GstMIKEYMessage *msg);
Since: 1.8
GstMIKEYMessage *
gst_mikey_message_copy (const GstMIKEYMessage *message);
Create a copy of the given message.
Since: 1.4
GstMIKEYMessage *
gst_mikey_message_ref (GstMIKEYMessage *message);
Increase the refcount of this message.
Since: 1.4
void
gst_mikey_message_unref (GstMIKEYMessage *message);
Decrease the refcount of an message, freeing it if the refcount reaches 0.
Since: 1.4
gboolean gst_mikey_message_set_info (GstMIKEYMessage *msg,guint8 version,GstMIKEYType type,gboolean V,GstMIKEYPRFFunc prf_func,guint32 CSB_id,GstMIKEYMapType map_type);
Set the information in msg
.
msg |
||
version |
a version |
|
type |
||
V |
verify flag |
|
prf_func |
the GstMIKEYPRFFunc function to use |
|
CSB_id |
the Crypto Session Bundle id |
|
map_type |
the GstMIKEYCSIDMapType |
Since: 1.4
guint
gst_mikey_message_get_n_cs (const GstMIKEYMessage *msg);
Get the number of crypto sessions in msg
.
Since: 1.4
const GstMIKEYMapSRTP * gst_mikey_message_get_cs_srtp (const GstMIKEYMessage *msg,guint idx);
Get the policy information of msg
at idx
.
Since: 1.4
gboolean gst_mikey_message_insert_cs_srtp (GstMIKEYMessage *msg,gint idx,const GstMIKEYMapSRTP *map);
Insert a Crypto Session map for SRTP in msg
at idx
When idx
is -1, the policy will be appended.
Since: 1.4
gboolean gst_mikey_message_remove_cs_srtp (GstMIKEYMessage *msg,gint idx);
Remove the SRTP policy at idx
.
Since: 1.4
gboolean gst_mikey_message_replace_cs_srtp (GstMIKEYMessage *msg,gint idx,const GstMIKEYMapSRTP *map);
Replace a Crypto Session map for SRTP in msg
at idx
with map
.
Since: 1.4
gboolean gst_mikey_message_add_cs_srtp (GstMIKEYMessage *msg,guint8 policy,guint32 ssrc,guint32 roc);
Add a Crypto policy for SRTP to msg
.
msg |
||
policy |
The security policy applied for the stream with |
|
ssrc |
the SSRC that must be used for the stream |
|
roc |
current rollover counter |
Since: 1.4
guint
gst_mikey_message_get_n_payloads (const GstMIKEYMessage *msg);
Get the number of payloads in msg
.
Since: 1.4
const GstMIKEYPayload * gst_mikey_message_get_payload (const GstMIKEYMessage *msg,guint idx);
Get the GstMIKEYPayload at idx
in msg
the GstMIKEYPayload at idx
. The payload
remains valid for as long as it is part of msg
.
[transfer none]
Since: 1.4
const GstMIKEYPayload * gst_mikey_message_find_payload (const GstMIKEYMessage *msg,GstMIKEYPayloadType type,guint nth);
Find the nth
occurence of the payload with type
in msg
.
Since: 1.4
gboolean gst_mikey_message_insert_payload (GstMIKEYMessage *msg,guint idx,GstMIKEYPayload *payload);
Insert the payload
at index idx
in msg
. If idx
is -1, the payload
will be appended to msg
.
Since: 1.4
gboolean gst_mikey_message_remove_payload (GstMIKEYMessage *msg,guint idx);
Remove the payload in msg
at idx
Since: 1.4
gboolean gst_mikey_message_replace_payload (GstMIKEYMessage *msg,guint idx,GstMIKEYPayload *payload);
Replace the payload at idx
in msg
with payload
.
Since: 1.4
gboolean gst_mikey_message_add_payload (GstMIKEYMessage *msg,GstMIKEYPayload *payload);
Add a new payload to msg
.
Since: 1.4
GstMIKEYPayload *
gst_mikey_payload_new (GstMIKEYPayloadType type);
Make a new GstMIKEYPayload with type
.
Since: 1.4
GstMIKEYPayload *
gst_mikey_payload_copy (const GstMIKEYPayload *payload);
Create a copy of the given payload.
Since: 1.4
gboolean gst_mikey_payload_key_data_set_interval (GstMIKEYPayload *payload,guint8 vf_len,const guint8 *vf_data,guint8 vt_len,const guint8 *vt_data);
Set the key validity period in the GST_MIKEY_PT_KEY_DATA payload
.
payload |
||
vf_len |
the length of |
|
vf_data |
the Valid From data. |
[array length=vf_data] |
vt_len |
the length of |
|
vt_data |
the Valid To data. |
[array length=vt_len] |
Since: 1.4
gboolean gst_mikey_payload_key_data_set_key (GstMIKEYPayload *payload,GstMIKEYKeyDataType key_type,guint16 key_len,const guint8 *key_data);
Set key_len
bytes of key_data
of type key_type
as the key for the
GST_MIKEY_PT_KEY_DATA payload
.
payload |
||
key_type |
a GstMIKEYKeyDataType |
|
key_len |
the length of |
|
key_data |
the key of type |
[array length=key_len] |
Since: 1.4
gboolean gst_mikey_payload_key_data_set_salt (GstMIKEYPayload *payload,guint16 salt_len,const guint8 *salt_data);
Set the salt key data. If salt_len
is 0 and salt_data
is NULL, the
salt data will be removed.
payload |
||
salt_len |
the length of |
|
salt_data |
the salt. |
[array length=salt_len][allow-none] |
Since: 1.4
gboolean gst_mikey_payload_key_data_set_spi (GstMIKEYPayload *payload,guint8 spi_len,const guint8 *spi_data);
Set the SPI/MKI validity in the GST_MIKEY_PT_KEY_DATA payload
.
Since: 1.4
GstMIKEYPayload *
gst_mikey_payload_ref (GstMIKEYPayload *payload);
Increase the refcount of this payload.
Since: 1.4
void
gst_mikey_payload_unref (GstMIKEYPayload *payload);
Decrease the refcount of an payload, freeing it if the refcount reaches 0.
Since: 1.4
gboolean gst_mikey_payload_kemac_set (GstMIKEYPayload *payload,GstMIKEYEncAlg enc_alg,GstMIKEYMacAlg mac_alg);
Set the KEMAC parameters. payload
should point to a GST_MIKEY_PT_KEMAC
payload.
Since: 1.4
gboolean gst_mikey_payload_kemac_add_sub (GstMIKEYPayload *payload,GstMIKEYPayload *newpay);
Add a new sub payload to payload
.
Since: 1.4
guint
gst_mikey_payload_kemac_get_n_sub (const GstMIKEYPayload *payload);
Get the number of sub payloads of payload
. payload
should be of type
GST_MIKEY_PT_KEMAC.
Since: 1.4
const GstMIKEYPayload * gst_mikey_payload_kemac_get_sub (const GstMIKEYPayload *payload,guint idx);
Get the sub payload of payload
at idx
. payload
should be of type
GST_MIKEY_PT_KEMAC.
Since: 1.4
gboolean gst_mikey_payload_kemac_remove_sub (GstMIKEYPayload *payload,guint idx);
Remove the sub payload at idx
in payload
.
Since: 1.4
gboolean gst_mikey_payload_pke_set (GstMIKEYPayload *payload,GstMIKEYCacheType C,guint16 data_len,const guint8 *data);
Set the PKE values in payload
. payload
must be of type
GST_MIKEY_PT_PKE.
payload |
||
C |
envelope key cache indicator |
|
data_len |
the length of |
|
data |
the encrypted envelope key. |
[array length=data_len] |
Since: 1.4
gboolean gst_mikey_message_add_pke (GstMIKEYMessage *msg,GstMIKEYCacheType C,guint16 data_len,const guint8 *data);
Add a new PKE payload to msg
with the given parameters.
msg |
||
C |
envelope key cache indicator |
|
data_len |
the length of |
|
data |
the encrypted envelope key. |
[array length=data_len] |
Since: 1.4
gboolean gst_mikey_payload_t_set (GstMIKEYPayload *payload,GstMIKEYTSType type,const guint8 *ts_value);
Set the timestamp in a GST_MIKEY_PT_T payload
.
Since: 1.4
gboolean gst_mikey_message_add_t (GstMIKEYMessage *msg,GstMIKEYTSType type,const guint8 *ts_value);
Add a new T payload to msg
with the given parameters.
msg |
||
type |
specifies the timestamp type used |
|
ts_value |
The timestamp value of the specified |
[array] |
Since: 1.4
gboolean
gst_mikey_message_add_t_now_ntp_utc (GstMIKEYMessage *msg);
Add a new T payload to msg
that contains the current time
in NTP-UTC format.
Since: 1.4
gboolean gst_mikey_payload_rand_set (GstMIKEYPayload *payload,guint8 len,const guint8 *rand);
Set the random values in a GST_MIKEY_PT_RAND payload
.
Since: 1.4
gboolean gst_mikey_message_add_rand (GstMIKEYMessage *msg,guint8 len,const guint8 *rand);
Add a new RAND payload to msg
with the given parameters.
Since: 1.4
gboolean gst_mikey_message_add_rand_len (GstMIKEYMessage *msg,guint8 len);
Add a new RAND payload to msg
with len
random bytes.
Since: 1.4
gboolean gst_mikey_payload_sp_set (GstMIKEYPayload *payload,guint policy,GstMIKEYSecProto proto);
Set the Security Policy parameters for payload
.
Since: 1.4
guint
gst_mikey_payload_sp_get_n_params (const GstMIKEYPayload *payload);
Get the number of security policy parameters in a GST_MIKEY_PT_SP
payload
.
Since: 1.4
const GstMIKEYPayloadSPParam * gst_mikey_payload_sp_get_param (const GstMIKEYPayload *payload,guint idx);
Get the Security Policy parameter in a GST_MIKEY_PT_SP payload
at idx
.
Since: 1.4
gboolean gst_mikey_payload_sp_add_param (GstMIKEYPayload *payload,guint8 type,guint8 len,const guint8 *val);
Add a new parameter to the GST_MIKEY_PT_SP payload
with type
, len
and val
.
Since: 1.4
gboolean gst_mikey_payload_sp_remove_param (GstMIKEYPayload *payload,guint idx);
Remove the Security Policy parameters from a GST_MIKEY_PT_SP
payload
at idx
.
Since: 1.4
Different MIKEY data types.
struct GstMIKEYMessage {
guint8 version;
GstMIKEYType type;
gboolean V;
GstMIKEYPRFFunc prf_func;
guint32 CSB_id;
GstMIKEYMapType map_type;
GArray *map_info;
GArray *payloads;
};
Structure holding the information of the MIKEY message
the version |
||
GstMIKEYType |
the GstMIKEYType message type |
|
verify flag |
||
GstMIKEYPRFFunc |
||
Identifies the Crypto Session Bundle |
||
GstMIKEYMapType |
||
map info array of type depending on |
||
the payload array of GstMIKEYPayload |
Specifies the method of uniquely mapping Crypto Sessions to the security protocol sessions.
typedef struct {
guint8 policy;
guint32 ssrc;
guint32 roc;
} GstMIKEYMapSRTP;
The Security policy Map item for SRTP
Different MIKEY Payload types.
struct GstMIKEYPayload {
GstMIKEYPayloadType type;
guint len;
};
Hold the common fields for all payloads
typedef struct {
GstMIKEYPayload pt;
GstMIKEYEncAlg enc_alg;
GstMIKEYMacAlg mac_alg;
GArray *subpayloads;
} GstMIKEYPayloadKEMAC;
A structure holding the KEMAC payload
GstMIKEYPayload |
the common GstMIKEYPayload |
|
GstMIKEYEncAlg |
the GstMIKEYEncAlg |
|
GstMIKEYMacAlg |
the GstMIKEYMacAlg |
|
the subpayloads |
typedef struct {
GstMIKEYPayload pt;
GstMIKEYCacheType C;
guint16 data_len;
guint8 *data;
} GstMIKEYPayloadPKE;
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.
GstMIKEYPayload |
the common GstMIKEYPayload |
|
envelope key cache indicator |
||
length of |
||
the encrypted envelope key |
typedef struct {
GstMIKEYPayload pt;
GstMIKEYTSType type;
guint8 *ts_value;
} GstMIKEYPayloadT;
The timestamp payload carries the timestamp information
typedef struct {
GstMIKEYPayload pt;
guint8 len;
guint8 *rand;
} GstMIKEYPayloadRAND;
The RAND payload consists of a (pseudo-)random bit-string
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 |
typedef struct {
GstMIKEYPayload pt;
guint policy;
GstMIKEYSecProto proto;
GArray *params;
} GstMIKEYPayloadSP;
The Security Policy payload defines a set of policies that apply to a specific security protocol
GstMIKEYPayload |
the payload header |
|
the policy number |
||
GstMIKEYSecProto |
the security protocol |
|
array of GstMIKEYPayloadPSParam |