[][src]Crate srtp2_sys

Structs

srtp_crypto_policy_t

@brief srtp_crypto_policy_t describes a particular crypto policy that can be applied to an SRTP stream.

srtp_ctx_t_
srtp_ekt_policy_ctx_t
srtp_ekt_stream_ctx_t
srtp_event_data_t

@brief srtp_event_data_t is the structure passed as a callback to the event handler function

srtp_master_key_t

@brief srtp_master_key_t represents a master key. There will be a Master Key Index and the Master Key associated with the Master Key Index. Need to also keep track of the Master Key Index Size to correctly read it from a packet.

srtp_policy_t

@brief represents the policy for an SRTP session.

srtp_ssrc_t

@brief An srtp_ssrc_t represents a particular SSRC value, or a `wildcard' SSRC.

Constants

SRTCP_E_BIT
SRTCP_E_BYTE_BIT
SRTCP_INDEX_MASK
SRTP_AEAD_SALT_LEN
SRTP_AES_128_KEY_LEN
SRTP_AES_192_KEY_LEN
SRTP_AES_256_KEY_LEN
SRTP_AES_GCM_128_KEY_LEN_WSALT
SRTP_AES_GCM_192_KEY_LEN_WSALT
SRTP_AES_GCM_256_KEY_LEN_WSALT
SRTP_AES_ICM_128_KEY_LEN_WSALT
SRTP_AES_ICM_192_KEY_LEN_WSALT
SRTP_AES_ICM_256_KEY_LEN_WSALT
SRTP_MASTER_KEY_LEN
SRTP_MAX_KEY_LEN
SRTP_MAX_MKI_LEN
SRTP_MAX_NUM_MASTER_KEYS
SRTP_MAX_TAG_LEN
SRTP_MAX_TRAILER_LEN
SRTP_SALT_LEN
srtp_err_status_t_srtp_err_status_algo_fail

< algorithm failed test routine

srtp_err_status_t_srtp_err_status_alloc_fail

< couldn't allocate memory

srtp_err_status_t_srtp_err_status_auth_fail

< authentication failure

srtp_err_status_t_srtp_err_status_bad_mki

< error MKI present in packet is */

srtp_err_status_t_srtp_err_status_bad_param

< unsupported parameter

srtp_err_status_t_srtp_err_status_cant_check

< unable to perform desired */

srtp_err_status_t_srtp_err_status_cipher_fail

< cipher failure

srtp_err_status_t_srtp_err_status_dealloc_fail

< couldn't deallocate properly

srtp_err_status_t_srtp_err_status_encode_err

< error encoding data

srtp_err_status_t_srtp_err_status_fail

< unspecified failure

srtp_err_status_t_srtp_err_status_init_fail

< couldn't initialize

srtp_err_status_t_srtp_err_status_key_expired

< can't use key any more

srtp_err_status_t_srtp_err_status_no_ctx

< no appropriate context found

srtp_err_status_t_srtp_err_status_no_such_op

< unsupported operation

srtp_err_status_t_srtp_err_status_nonce_bad

< nonce check failed

srtp_err_status_t_srtp_err_status_ok

< nothing to report

srtp_err_status_t_srtp_err_status_parse_err

< error parsing data

srtp_err_status_t_srtp_err_status_pfkey_err

< error while using pfkey

srtp_err_status_t_srtp_err_status_pkt_idx_adv

< packet index advanced, reset */

srtp_err_status_t_srtp_err_status_pkt_idx_old

< packet index is too old to */

srtp_err_status_t_srtp_err_status_read_fail

< couldn't read data

srtp_err_status_t_srtp_err_status_replay_fail

< replay check failed (bad index)

srtp_err_status_t_srtp_err_status_replay_old

< replay check failed (index too */

srtp_err_status_t_srtp_err_status_semaphore_err

< error while using semaphores

srtp_err_status_t_srtp_err_status_signal_err

< error in use POSIX signals

srtp_err_status_t_srtp_err_status_socket_err

< error in use of socket

srtp_err_status_t_srtp_err_status_terminus

< can't process as much data as */

srtp_err_status_t_srtp_err_status_write_fail

< couldn't write data

srtp_event_t_event_key_hard_limit

< An SRTP stream reached the hard */

srtp_event_t_event_key_soft_limit

< An SRTP stream reached the soft key */

srtp_event_t_event_packet_index_limit

< An SRTP stream reached the hard */

srtp_event_t_event_ssrc_collision

< An SSRC collision occured.

srtp_log_level_t_srtp_log_level_debug

< log level is reporting a debug message

srtp_log_level_t_srtp_log_level_error

< log level is reporting an error message

srtp_log_level_t_srtp_log_level_info

< log level is reporting an info message

srtp_log_level_t_srtp_log_level_warning

< log level is reporting a warning message

srtp_profile_t_srtp_profile_aead_aes_128_gcm
srtp_profile_t_srtp_profile_aead_aes_256_gcm
srtp_profile_t_srtp_profile_aes128_cm_sha1_32
srtp_profile_t_srtp_profile_aes128_cm_sha1_80
srtp_profile_t_srtp_profile_null_sha1_32
srtp_profile_t_srtp_profile_null_sha1_80
srtp_profile_t_srtp_profile_reserved
srtp_sec_serv_t_sec_serv_auth

< authentication

srtp_sec_serv_t_sec_serv_conf

< confidentiality

srtp_sec_serv_t_sec_serv_conf_and_auth

< confidentiality and authentication

srtp_sec_serv_t_sec_serv_none

< no services

srtp_ssrc_type_t_ssrc_any_inbound

< Indicates any inbound SSRC value */

srtp_ssrc_type_t_ssrc_any_outbound

< Indicates any outbound SSRC value */

srtp_ssrc_type_t_ssrc_specific

< Indicates a specific SSRC value

srtp_ssrc_type_t_ssrc_undefined

< Indicates an undefined SSRC type.

Functions

srtp_add_stream

@brief srtp_add_stream() allocates and initializes an SRTP stream within a given SRTP session.

srtp_append_salt_to_key

@brief appends the salt to the key

srtp_create

@brief srtp_create() allocates and initializes an SRTP session.

srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32

@brief srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32() sets a crypto policy structure to a short-authentication tag policy

srtp_crypto_policy_set_aes_cm_128_null_auth

@brief srtp_crypto_policy_set_aes_cm_128_null_auth() sets a crypto policy structure to an encryption-only policy

srtp_crypto_policy_set_aes_cm_192_hmac_sha1_32

@brief srtp_crypto_policy_set_aes_cm_192_hmac_sha1_32() sets a crypto policy structure to a short-authentication tag policy using AES-192 encryption.

srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80

@brief srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80() sets a crypto policy structure to a encryption and authentication policy using AES-192 for RTP protection.

srtp_crypto_policy_set_aes_cm_192_null_auth

@brief srtp_crypto_policy_set_aes_cm_192_null_auth() sets a crypto policy structure to an encryption-only policy

srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32

@brief srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32() sets a crypto policy structure to a short-authentication tag policy using AES-256 encryption.

srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80

@brief srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80() sets a crypto policy structure to a encryption and authentication policy using AES-256 for RTP protection.

srtp_crypto_policy_set_aes_cm_256_null_auth

@brief srtp_crypto_policy_set_aes_cm_256_null_auth() sets a crypto policy structure to an encryption-only policy

srtp_crypto_policy_set_aes_gcm_128_8_auth

@brief srtp_crypto_policy_set_aes_gcm_128_8_auth() sets a crypto policy structure to an AEAD encryption policy.

srtp_crypto_policy_set_aes_gcm_128_8_only_auth

@brief srtp_crypto_policy_set_aes_gcm_128_8_only_auth() sets a crypto policy structure to an AEAD authentication-only policy

srtp_crypto_policy_set_aes_gcm_128_16_auth

@brief srtp_crypto_policy_set_aes_gcm_128_16_auth() sets a crypto policy structure to an AEAD encryption policy.

srtp_crypto_policy_set_aes_gcm_256_8_auth

@brief srtp_crypto_policy_set_aes_gcm_256_8_auth() sets a crypto policy structure to an AEAD encryption policy

srtp_crypto_policy_set_aes_gcm_256_8_only_auth

@brief srtp_crypto_policy_set_aes_gcm_256_8_only_auth() sets a crypto policy structure to an AEAD authentication-only policy

srtp_crypto_policy_set_aes_gcm_256_16_auth

@brief srtp_crypto_policy_set_aes_gcm_256_16_auth() sets a crypto policy structure to an AEAD encryption policy

srtp_crypto_policy_set_from_profile_for_rtcp

@brief srtp_crypto_policy_set_from_profile_for_rtcp() sets a crypto policy structure to the appropriate value for RTCP based on an srtp_profile_t

srtp_crypto_policy_set_from_profile_for_rtp

@brief srtp_crypto_policy_set_from_profile_for_rtp() sets a crypto policy structure to the appropriate value for RTP based on an srtp_profile_t

srtp_crypto_policy_set_null_cipher_hmac_null

@brief srtp_crypto_policy_set_null_cipher_hmac_null() sets a crypto policy structure to use no encryption or authentication.

srtp_crypto_policy_set_null_cipher_hmac_sha1_80

@brief srtp_crypto_policy_set_null_cipher_hmac_sha1_80() sets a crypto policy structure to an authentication-only policy

srtp_crypto_policy_set_rtcp_default

@brief srtp_crypto_policy_set_rtcp_default() sets a crypto policy structure to the SRTP default policy for RTCP protection.

srtp_crypto_policy_set_rtp_default

@brief srtp_crypto_policy_set_rtp_default() sets a crypto policy structure to the SRTP default policy for RTP protection.

srtp_dealloc

@brief srtp_dealloc() deallocates storage for an SRTP session context.

srtp_get_protect_rtcp_trailer_length

@brief srtp_get_protect_rtcp_trailer_length(session, use_mki, mki_index, length)

srtp_get_protect_trailer_length

@brief srtp_get_protect_trailer_length(session, use_mki, mki_index, length)

srtp_get_stream_roc

@brief srtp_get_stream_roc(session, ssrc, roc)

srtp_get_user_data

@brief srtp_get_user_data() retrieves the pointer to the custom data previously stored with srtp_set_user_data().

srtp_get_version

@brief Returns the numeric representation of the library version.

srtp_get_version_string

@brief Returns the version string of the library.

srtp_init

@brief srtp_init() initializes the srtp library.

srtp_install_event_handler

@brief sets the event handler to the function supplied by the caller.

srtp_install_log_handler

@brief sets the log handler to the function supplied by the caller.

srtp_list_debug_modules

@brief srtp_list_debug_modules() outputs a list of debugging modules

srtp_profile_get_master_key_length

@brief returns the master key length for a given SRTP profile

srtp_profile_get_master_salt_length

@brief returns the master salt length for a given SRTP profile

srtp_protect

@brief srtp_protect() is the Secure RTP sender-side packet processing function.

srtp_protect_mki

@brief srtp_protect_mki() is the Secure RTP sender-side packet processing function that can utilize MKI.

srtp_protect_rtcp

@brief srtp_protect_rtcp() is the Secure RTCP sender-side packet processing function.

srtp_protect_rtcp_mki

@brief srtp_protect_rtcp_mki() is the Secure RTCP sender-side packet processing function that can utilize mki.

srtp_remove_stream

@brief srtp_remove_stream() deallocates an SRTP stream.

srtp_set_debug_module

@brief srtp_set_debug_module(mod_name, v)

srtp_set_stream_roc

@brief srtp_set_stream_roc(session, ssrc, roc)

srtp_set_user_data

@brief srtp_set_user_data() stores the given pointer into the SRTP session for later retrieval.

srtp_shutdown

@brief srtp_shutdown() de-initializes the srtp library.

srtp_unprotect

@brief srtp_unprotect() is the Secure RTP receiver-side packet processing function.

srtp_unprotect_mki

@brief srtp_unprotect_mki() is the Secure RTP receiver-side packet processing function that checks for MKI.

srtp_unprotect_rtcp

@brief srtp_unprotect_rtcp() is the Secure RTCP receiver-side packet processing function.

srtp_unprotect_rtcp_mki

@brief srtp_unprotect_rtcp() is the Secure RTCP receiver-side packet processing function.

srtp_update

@brief srtp_update() udpates all streams in the session.

srtp_update_stream

@brief srtp_update_stream() udpates a SRTP stream.

Type Definitions

__uint32_t
srtp_auth_type_id_t

@brief An srtp_auth_type_id_t is an identifier for a particular authentication function.

srtp_cipher_type_id_t

@brief A srtp_cipher_type_id_t is an identifier for a particular cipher type.

srtp_ctx_t
srtp_ekt_policy_t

@brief points to an EKT policy

srtp_ekt_stream_t

@brief points to EKT stream data

srtp_err_status_t

@brief srtp_err_status_t defines error codes.

srtp_event_handler_func_t

@brief srtp_event_handler_func_t is the function prototype for the event handler.

srtp_event_t

@brief srtp_event_t defines events that need to be handled

srtp_log_handler_func_t

@brief srtp_log_handler_func_t is the function prototype for the log handler.

srtp_log_level_t

@brief srtp_log_level_t defines log levels.

srtp_profile_t
srtp_sec_serv_t

@brief srtp_sec_serv_t describes a set of security services.

srtp_ssrc_type_t

@brief srtp_ssrc_type_t describes the type of an SSRC.

srtp_t

@brief An srtp_t points to an SRTP session structure.