libSRTP  2.8.0
srtp.h
1 /*
2  * srtp.h
3  *
4  * interface to libsrtp
5  *
6  * David A. McGrew
7  * Cisco Systems, Inc.
8  */
9 /*
10  *
11  * Copyright (c) 2001-2017, Cisco Systems, Inc.
12  * All rights reserved.
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions
16  * are met:
17  *
18  * Redistributions of source code must retain the above copyright
19  * notice, this list of conditions and the following disclaimer.
20  *
21  * Redistributions in binary form must reproduce the above
22  * copyright notice, this list of conditions and the following
23  * disclaimer in the documentation and/or other materials provided
24  * with the distribution.
25  *
26  * Neither the name of the Cisco Systems, Inc. nor the names of its
27  * contributors may be used to endorse or promote products derived
28  * from this software without specific prior written permission.
29  *
30  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
33  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
34  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
35  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
37  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
40  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41  * OF THE POSSIBILITY OF SUCH DAMAGE.
42  *
43  */
44 
45 #ifndef SRTP_SRTP_H
46 #define SRTP_SRTP_H
47 
48 #include <stdint.h>
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
63 /*
64  * SRTP_MASTER_KEY_LEN is the nominal master key length supported by libSRTP
65  */
66 
67 #define SRTP_MASTER_KEY_LEN 30
68 
69 /*
70  * SRTP_MAX_KEY_LEN is the maximum key length supported by libSRTP
71  */
72 #define SRTP_MAX_KEY_LEN 64
73 
74 /*
75  * SRTP_MAX_TAG_LEN is the maximum tag length supported by libSRTP
76  */
77 
78 #define SRTP_MAX_TAG_LEN 16
79 
84 #define SRTP_MAX_MKI_LEN 128
85 
94 #define SRTP_MAX_TRAILER_LEN (SRTP_MAX_TAG_LEN + SRTP_MAX_MKI_LEN)
95 
100 #define SRTP_SRCTP_INDEX_LEN 4
101 
110 #define SRTP_MAX_SRTCP_TRAILER_LEN \
111  (SRTP_SRCTP_INDEX_LEN + SRTP_MAX_TAG_LEN + SRTP_MAX_MKI_LEN)
112 
118 #define SRTP_MAX_NUM_MASTER_KEYS 16
119 
120 #define SRTP_SALT_LEN 14
121 
122 /*
123  * SRTP_AEAD_SALT_LEN is the length of the SALT values used with
124  * GCM mode. GCM mode requires an IV. The SALT value is used
125  * as part of the IV formation logic applied to each RTP packet.
126  */
127 #define SRTP_AEAD_SALT_LEN 12
128 
129 #define SRTP_AES_128_KEY_LEN 16
130 #define SRTP_AES_192_KEY_LEN 24
131 #define SRTP_AES_256_KEY_LEN 32
132 
133 #define SRTP_AES_ICM_128_KEY_LEN_WSALT (SRTP_SALT_LEN + SRTP_AES_128_KEY_LEN)
134 #define SRTP_AES_ICM_192_KEY_LEN_WSALT (SRTP_SALT_LEN + SRTP_AES_192_KEY_LEN)
135 #define SRTP_AES_ICM_256_KEY_LEN_WSALT (SRTP_SALT_LEN + SRTP_AES_256_KEY_LEN)
136 
137 #define SRTP_AES_GCM_128_KEY_LEN_WSALT \
138  (SRTP_AEAD_SALT_LEN + SRTP_AES_128_KEY_LEN)
139 #define SRTP_AES_GCM_192_KEY_LEN_WSALT \
140  (SRTP_AEAD_SALT_LEN + SRTP_AES_192_KEY_LEN)
141 #define SRTP_AES_GCM_256_KEY_LEN_WSALT \
142  (SRTP_AEAD_SALT_LEN + SRTP_AES_256_KEY_LEN)
143 
156 typedef uint32_t srtp_cipher_type_id_t;
157 
171 typedef uint32_t srtp_auth_type_id_t;
172 
181 typedef enum {
218 
219 typedef struct srtp_ctx_t_ srtp_ctx_t;
220 
228 typedef enum {
234 
244 typedef struct srtp_crypto_policy_t {
245  srtp_cipher_type_id_t cipher_type;
249  srtp_auth_type_id_t auth_type;
258 
265 typedef enum {
275 
285 typedef struct {
287  unsigned int value;
289 } srtp_ssrc_t;
290 
297 typedef struct srtp_master_key_t {
298  unsigned char *key;
299  unsigned char *mki_id;
300  unsigned int mki_size;
302 
329 typedef struct srtp_policy_t {
336  unsigned char *key;
338  srtp_master_key_t **keys;
339  unsigned long num_master_keys;
342  unsigned long window_size;
351  int *enc_xtn_hdr;
354  struct srtp_policy_t *next;
355 } srtp_policy_t;
356 
369 typedef srtp_ctx_t *srtp_t;
370 
378 
385 
426 srtp_err_status_t srtp_protect(srtp_t ctx, void *rtp_hdr, int *len_ptr);
427 
476 srtp_err_status_t srtp_protect_mki(srtp_ctx_t *ctx,
477  void *rtp_hdr,
478  int *pkt_octet_len,
479  unsigned int use_mki,
480  unsigned int mki_index);
481 
522 srtp_err_status_t srtp_unprotect(srtp_t ctx, void *srtp_hdr, int *len_ptr);
523 
571  void *srtp_hdr,
572  int *len_ptr,
573  unsigned int use_mki);
574 
596 srtp_err_status_t srtp_create(srtp_t *session, const srtp_policy_t *policy);
597 
612 srtp_err_status_t srtp_add_stream(srtp_t session, const srtp_policy_t *policy);
613 
635 srtp_err_status_t srtp_remove_stream(srtp_t session, uint32_t ssrc);
636 
661 srtp_err_status_t srtp_update(srtp_t session, const srtp_policy_t *policy);
662 
685  const srtp_policy_t *policy);
686 
706 
726 
741 #define srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(p) \
742  srtp_crypto_policy_set_rtp_default(p)
743 
775 
802 
828 
853 
877 
909 
936 
960 
992 
1019 
1042 
1065 
1088 
1111 
1134 
1157 
1174 
1175 /*
1176  * @brief identifies a particular SRTP profile
1177  *
1178  * An srtp_profile_t enumeration is used to identify a particular SRTP
1179  * profile (that is, a set of algorithms and parameters).
1180  */
1181 typedef enum {
1182  srtp_profile_reserved = 0,
1183  srtp_profile_aes128_cm_sha1_80 = 1,
1184  srtp_profile_aes128_cm_sha1_32 = 2,
1185  srtp_profile_null_sha1_80 = 5,
1186  srtp_profile_null_sha1_32 = 6,
1187  srtp_profile_aead_aes_128_gcm = 7,
1188  srtp_profile_aead_aes_256_gcm = 8
1189 } srtp_profile_t;
1190 
1215  srtp_crypto_policy_t *policy,
1216  srtp_profile_t profile);
1217 
1242  srtp_crypto_policy_t *policy,
1243  srtp_profile_t profile);
1244 
1248 unsigned int srtp_profile_get_master_key_length(srtp_profile_t profile);
1249 
1253 unsigned int srtp_profile_get_master_salt_length(srtp_profile_t profile);
1254 
1266 void srtp_append_salt_to_key(unsigned char *key,
1267  unsigned int bytes_in_key,
1268  unsigned char *salt,
1269  unsigned int bytes_in_salt);
1270 
1332  void *rtcp_hdr,
1333  int *pkt_octet_len);
1334 
1381  void *rtcp_hdr,
1382  int *pkt_octet_len,
1383  unsigned int use_mki,
1384  unsigned int mki_index);
1385 
1425  void *srtcp_hdr,
1426  int *pkt_octet_len);
1427 
1474  void *srtcp_hdr,
1475  int *pkt_octet_len,
1476  unsigned int use_mki);
1477 
1504 void srtp_set_user_data(srtp_t ctx, void *data);
1505 
1521 void *srtp_get_user_data(srtp_t ctx);
1522 
1568 typedef enum {
1576 } srtp_event_t;
1577 
1585 typedef struct srtp_event_data_t {
1586  srtp_t session;
1587  uint32_t ssrc;
1591 
1603 
1617 
1622 const char *srtp_get_version_string(void);
1623 
1628 unsigned int srtp_get_version(void);
1629 
1638 srtp_err_status_t srtp_set_debug_module(const char *mod_name, int v);
1639 
1645 
1653 typedef enum {
1659 
1671  const char *msg,
1672  void *data);
1673 
1689  void *data);
1690 
1703  uint32_t use_mki,
1704  uint32_t mki_index,
1705  uint32_t *length);
1706 
1720  uint32_t use_mki,
1721  uint32_t mki_index,
1722  uint32_t *length);
1723 
1733 srtp_err_status_t srtp_set_stream_roc(srtp_t session,
1734  uint32_t ssrc,
1735  uint32_t roc);
1736 
1746 srtp_err_status_t srtp_get_stream_roc(srtp_t session,
1747  uint32_t ssrc,
1748  uint32_t *roc);
1749 
1765  const srtp_ssrc_t *ssrc,
1766  int enable);
1767 
1772 /* in host order, so outside the #if */
1773 #define SRTCP_E_BIT 0x80000000
1774 
1775 /* for byte-access */
1776 #define SRTCP_E_BYTE_BIT 0x80
1777 #define SRTCP_INDEX_MASK 0x7fffffff
1778 
1779 #ifdef __cplusplus
1780 }
1781 #endif
1782 
1783 #endif /* SRTP_SRTP_H */
Definition: srtp.h:232
Definition: srtp.h:1657
srtp_err_status_t srtp_set_stream_roc(srtp_t session, uint32_t ssrc, uint32_t roc)
srtp_set_stream_roc(session, ssrc, roc)
uint32_t ssrc
Definition: srtp.h:1587
void srtp_append_salt_to_key(unsigned char *key, unsigned int bytes_in_key, unsigned char *salt, unsigned int bytes_in_salt)
appends the salt to the key
Definition: srtp.h:190
srtp_t session
Definition: srtp.h:1586
srtp_err_status_t srtp_dealloc(srtp_t s)
srtp_dealloc() deallocates storage for an SRTP session context.
srtp_err_status_t srtp_protect_rtcp_mki(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len, unsigned int use_mki, unsigned int mki_index)
srtp_protect_rtcp_mki() is the Secure RTCP sender-side packet processing function that can utilize mk...
Definition: srtp.h:193
void( srtp_log_handler_func_t)(srtp_log_level_t level, const char *msg, void *data)
srtp_log_handler_func_t is the function prototype for the log handler.
Definition: srtp.h:1670
Definition: srtp.h:1654
srtp_crypto_policy_t describes a particular crypto policy that can be applied to an SRTP stream...
Definition: srtp.h:244
int cipher_key_len
Definition: srtp.h:247
srtp_err_status_t srtp_shutdown(void)
srtp_shutdown() de-initializes the srtp library.
void * deprecated_ekt
Definition: srtp.h:340
srtp_ssrc_type_t type
Definition: srtp.h:286
Definition: srtp.h:212
srtp_err_status_t srtp_install_log_handler(srtp_log_handler_func_t func, void *data)
sets the log handler to the function supplied by the caller.
int * enc_xtn_hdr
Definition: srtp.h:351
struct srtp_crypto_policy_t srtp_crypto_policy_t
srtp_crypto_policy_t describes a particular crypto policy that can be applied to an SRTP stream...
Definition: srtp.h:203
Definition: srtp.h:201
Definition: srtp.h:216
void( srtp_event_handler_func_t)(srtp_event_data_t *data)
srtp_event_handler_func_t is the function prototype for the event handler.
Definition: srtp.h:1602
unsigned int srtp_get_version(void)
Returns the numeric representation of the library version.
void srtp_crypto_policy_set_null_cipher_hmac_null(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_null_cipher_hmac_null() sets a crypto policy structure to use no encryption or...
srtp_crypto_policy_t rtcp
Definition: srtp.h:335
void srtp_crypto_policy_set_aes_cm_192_null_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_192_null_auth() sets a crypto policy structure to an encryption-only po...
struct srtp_policy_t * next
Definition: srtp.h:354
srtp_event_t event
Definition: srtp.h:1589
Definition: srtp.h:214
void srtp_crypto_policy_set_aes_gcm_128_16_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_128_16_auth() sets a crypto policy structure to an AEAD encryption pol...
srtp_master_key_t represents a master key. There will be a Master Key Index and the Master Key associ...
Definition: srtp.h:297
uint32_t srtp_cipher_type_id_t
A srtp_cipher_type_id_t is an identifier for a particular cipher type.
Definition: srtp.h:156
void srtp_crypto_policy_set_aes_cm_192_hmac_sha1_32(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_192_hmac_sha1_32() sets a crypto policy structure to a short-authentica...
srtp_err_status_t srtp_update_stream(srtp_t session, const srtp_policy_t *policy)
srtp_update_stream() updates a SRTP stream.
srtp_log_level_t
srtp_log_level_t defines log levels.
Definition: srtp.h:1653
void srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32() sets a crypto policy structure to a short-authentica...
srtp_err_status_t srtp_list_debug_modules(void)
srtp_list_debug_modules() outputs a list of debugging modules
struct srtp_master_key_t srtp_master_key_t
srtp_master_key_t represents a master key. There will be a Master Key Index and the Master Key associ...
srtp_err_status_t srtp_set_stream_use_cryptex(srtp_t session, const srtp_ssrc_t *ssrc, int enable)
srtp_set_stream_use_cryptex(session, ssrc, enable)
Definition: srtp.h:268
Definition: srtp.h:229
Definition: srtp.h:185
Definition: srtp.h:210
srtp_err_status_t srtp_crypto_policy_set_from_profile_for_rtcp(srtp_crypto_policy_t *policy, srtp_profile_t profile)
srtp_crypto_policy_set_from_profile_for_rtcp() sets a crypto policy structure to the appropriate valu...
void srtp_crypto_policy_set_aes_gcm_128_8_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_128_8_auth() sets a crypto policy structure to an AEAD encryption poli...
Definition: srtp.h:271
Definition: srtp.h:204
srtp_err_status_t srtp_get_stream_roc(srtp_t session, uint32_t ssrc, uint32_t *roc)
srtp_get_stream_roc(session, ssrc, roc)
void srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80() sets a crypto policy structure to a encryption and a...
Definition: srtp.h:191
Definition: srtp.h:1574
int auth_tag_len
Definition: srtp.h:253
Definition: srtp.h:200
struct srtp_event_data_t srtp_event_data_t
srtp_event_data_t is the structure passed as a callback to the event handler function ...
srtp_err_status_t srtp_create(srtp_t *session, const srtp_policy_t *policy)
srtp_create() allocates and initializes an SRTP session.
struct srtp_policy_t srtp_policy_t
represents the policy for an SRTP session.
void srtp_crypto_policy_set_null_cipher_hmac_sha1_80(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_null_cipher_hmac_sha1_80() sets a crypto policy structure to an authentication...
unsigned char * key
Definition: srtp.h:336
Definition: srtp.h:209
srtp_event_data_t is the structure passed as a callback to the event handler function ...
Definition: srtp.h:1585
srtp_err_status_t srtp_crypto_policy_set_from_profile_for_rtp(srtp_crypto_policy_t *policy, srtp_profile_t profile)
srtp_crypto_policy_set_from_profile_for_rtp() sets a crypto policy structure to the appropriate value...
Definition: srtp.h:230
Definition: srtp.h:192
srtp_event_t
srtp_event_t defines events that need to be handled
Definition: srtp.h:1568
srtp_err_status_t srtp_get_protect_rtcp_trailer_length(srtp_t session, uint32_t use_mki, uint32_t mki_index, uint32_t *length)
srtp_get_protect_rtcp_trailer_length(session, use_mki, mki_index, length)
Definition: srtp.h:197
unsigned int srtp_profile_get_master_key_length(srtp_profile_t profile)
returns the master key length for a given SRTP profile
void srtp_crypto_policy_set_aes_cm_128_null_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_128_null_auth() sets a crypto policy structure to an encryption-only po...
srtp_err_status_t srtp_set_debug_module(const char *mod_name, int v)
srtp_set_debug_module(mod_name, v)
Definition: srtp.h:205
srtp_cipher_type_id_t cipher_type
Definition: srtp.h:245
srtp_crypto_policy_t rtp
Definition: srtp.h:334
srtp_err_status_t srtp_unprotect_rtcp_mki(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len, unsigned int use_mki)
srtp_unprotect_rtcp() is the Secure RTCP receiver-side packet processing function.
srtp_ssrc_type_t
srtp_ssrc_type_t describes the type of an SSRC.
Definition: srtp.h:265
srtp_err_status_t srtp_install_event_handler(srtp_event_handler_func_t func)
sets the event handler to the function supplied by the caller.
Definition: srtp.h:208
unsigned long num_master_keys
Definition: srtp.h:339
uint32_t srtp_auth_type_id_t
An srtp_auth_type_id_t is an identifier for a particular authentication function. ...
Definition: srtp.h:171
srtp_err_status_t srtp_protect_mki(srtp_ctx_t *ctx, void *rtp_hdr, int *pkt_octet_len, unsigned int use_mki, unsigned int mki_index)
srtp_protect_mki() is the Secure RTP sender-side packet processing function that can utilize MKI...
void srtp_crypto_policy_set_aes_gcm_256_16_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_256_16_auth() sets a crypto policy structure to an AEAD encryption pol...
srtp_err_status_t srtp_protect_rtcp(srtp_t ctx, void *rtcp_hdr, int *pkt_octet_len)
srtp_protect_rtcp() is the Secure RTCP sender-side packet processing function.
srtp_ssrc_t ssrc
Definition: srtp.h:330
Definition: srtp.h:206
Definition: srtp.h:188
void srtp_crypto_policy_set_aes_gcm_256_8_only_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_256_8_only_auth() sets a crypto policy structure to an AEAD authentica...
int enc_xtn_hdr_count
Definition: srtp.h:352
void srtp_crypto_policy_set_aes_gcm_256_8_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_256_8_auth() sets a crypto policy structure to an AEAD encryption poli...
srtp_err_status_t srtp_unprotect_mki(srtp_t ctx, void *srtp_hdr, int *len_ptr, unsigned int use_mki)
srtp_unprotect_mki() is the Secure RTP receiver-side packet processing function that checks for MKI...
Definition: srtp.h:184
Definition: srtp.h:1655
srtp_err_status_t
srtp_err_status_t defines error codes.
Definition: srtp.h:181
Definition: srtp.h:186
srtp_auth_type_id_t auth_type
Definition: srtp.h:249
unsigned int srtp_profile_get_master_salt_length(srtp_profile_t profile)
returns the master salt length for a given SRTP profile
srtp_err_status_t srtp_remove_stream(srtp_t session, uint32_t ssrc)
srtp_remove_stream() deallocates an SRTP stream.
srtp_ctx_t * srtp_t
An srtp_t points to an SRTP session structure.
Definition: srtp.h:369
Definition: srtp.h:187
srtp_err_status_t srtp_unprotect_rtcp(srtp_t ctx, void *srtcp_hdr, int *pkt_octet_len)
srtp_unprotect_rtcp() is the Secure RTCP receiver-side packet processing function.
void * srtp_get_user_data(srtp_t ctx)
srtp_get_user_data() retrieves the pointer to the custom data previously stored with srtp_set_user_da...
void srtp_crypto_policy_set_rtcp_default(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_rtcp_default() sets a crypto policy structure to the SRTP default policy for R...
srtp_sec_serv_t
srtp_sec_serv_t describes a set of security services.
Definition: srtp.h:228
void srtp_crypto_policy_set_aes_gcm_128_8_only_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_gcm_128_8_only_auth() sets a crypto policy structure to an AEAD authentica...
Definition: srtp.h:195
srtp_err_status_t srtp_init(void)
srtp_init() initializes the srtp library.
const char * srtp_get_version_string(void)
Returns the version string of the library.
unsigned int value
Definition: srtp.h:287
unsigned long window_size
Definition: srtp.h:342
represents the policy for an SRTP session.
Definition: srtp.h:329
Definition: srtp.h:202
srtp_err_status_t srtp_unprotect(srtp_t ctx, void *srtp_hdr, int *len_ptr)
srtp_unprotect() is the Secure RTP receiver-side packet processing function.
void srtp_crypto_policy_set_aes_cm_256_null_auth(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_256_null_auth() sets a crypto policy structure to an encryption-only po...
Definition: srtp.h:183
Definition: srtp.h:182
Definition: srtp.h:267
Definition: srtp.h:1570
srtp_err_status_t srtp_get_protect_trailer_length(srtp_t session, uint32_t use_mki, uint32_t mki_index, uint32_t *length)
srtp_get_protect_trailer_length(session, use_mki, mki_index, length)
int allow_repeat_tx
Definition: srtp.h:344
void srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32() sets a crypto policy structure to a short-authentica...
Definition: srtp.h:196
Definition: srtp.h:1572
srtp_sec_serv_t sec_serv
Definition: srtp.h:255
void srtp_set_user_data(srtp_t ctx, void *data)
srtp_set_user_data() stores the given pointer into the SRTP session for later retrieval.
void srtp_crypto_policy_set_rtp_default(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_rtp_default() sets a crypto policy structure to the SRTP default policy for RT...
srtp_err_status_t srtp_add_stream(srtp_t session, const srtp_policy_t *policy)
srtp_add_stream() allocates and initializes an SRTP stream within a given SRTP session.
Definition: srtp.h:207
int auth_key_len
Definition: srtp.h:251
Definition: srtp.h:266
Definition: srtp.h:231
void srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80(srtp_crypto_policy_t *p)
srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80() sets a crypto policy structure to a encryption and a...
Definition: srtp.h:1569
srtp_err_status_t srtp_protect(srtp_t ctx, void *rtp_hdr, int *len_ptr)
srtp_protect() is the Secure RTP sender-side packet processing function.
Definition: srtp.h:198
Definition: srtp.h:1656
srtp_err_status_t srtp_update(srtp_t session, const srtp_policy_t *policy)
srtp_update() updates all streams in the session.
An srtp_ssrc_t represents a particular SSRC value, or a `wildcard' SSRC.
Definition: srtp.h:285