[][src]Crate srtp2_sys

Structs

bitvector_t
srtp_aes_expanded_key_t
srtp_auth_t
srtp_auth_test_case_t
srtp_auth_type_t
srtp_cipher_t
srtp_cipher_test_case_t
srtp_cipher_type_t
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_debug_module_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_key_limit_ctx_t
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_rdb_t
srtp_rdbx_t
srtp_session_keys_t
srtp_ssrc_t

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

srtp_stream_ctx_t_

Constants

direction_t_dir_srtp_receiver
direction_t_dir_srtp_sender
direction_t_dir_unknown
srtp_cipher_direction_t_srtp_direction_any

< encryption or decryption

srtp_cipher_direction_t_srtp_direction_decrypt

< decryption (convert ciphertext to plaintext)

srtp_cipher_direction_t_srtp_direction_encrypt

< encryption (convert plaintext to ciphertext)

srtp_err_reporting_level_t_srtp_err_level_debug
srtp_err_reporting_level_t_srtp_err_level_error
srtp_err_reporting_level_t_srtp_err_level_info
srtp_err_reporting_level_t_srtp_err_level_warning
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_key_event_t_srtp_key_event_hard_limit
srtp_key_event_t_srtp_key_event_normal
srtp_key_event_t_srtp_key_event_soft_limit
srtp_key_state_t_srtp_key_state_expired
srtp_key_state_t_srtp_key_state_normal
srtp_key_state_t_srtp_key_state_past_soft_limit
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_aes_decrypt
srtp_aes_encrypt
srtp_aes_expand_decryption_key
srtp_aes_expand_encryption_key
srtp_append_salt_to_key

@brief appends the salt to the key

srtp_auth_get_key_length
srtp_auth_get_prefix_length
srtp_auth_get_tag_length
srtp_auth_type_self_test
srtp_auth_type_test
srtp_cipher_bits_per_second
srtp_cipher_dealloc
srtp_cipher_decrypt
srtp_cipher_encrypt
srtp_cipher_get_key_length
srtp_cipher_get_tag
srtp_cipher_init
srtp_cipher_output
srtp_cipher_set_aad
srtp_cipher_set_iv
srtp_cipher_type_alloc
srtp_cipher_type_self_test
srtp_cipher_type_test
srtp_cleanse
srtp_create

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

srtp_crypto_alloc
srtp_crypto_free
srtp_crypto_kernel_alloc_auth
srtp_crypto_kernel_alloc_cipher
srtp_crypto_kernel_init
srtp_crypto_kernel_list_debug_modules
srtp_crypto_kernel_load_auth_type
srtp_crypto_kernel_load_cipher_type
srtp_crypto_kernel_load_debug_module
srtp_crypto_kernel_set_debug_module
srtp_crypto_kernel_shutdown
srtp_crypto_kernel_status
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_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_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_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_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_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_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_err_report
srtp_err_reporting_init
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
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_index_advance
srtp_index_guess
srtp_index_init
srtp_init

@brief srtp_init() initializes the srtp library.

srtp_install_err_report_handler
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_key_limit_check
srtp_key_limit_clone
srtp_key_limit_set
srtp_key_limit_update
srtp_list_debug_modules

@brief srtp_list_debug_modules() outputs a list of debugging modules

srtp_octet_string_hex_string
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_rdb_add_index
srtp_rdb_check
srtp_rdb_get_value
srtp_rdb_increment
srtp_rdb_init
srtp_rdbx_add_index
srtp_rdbx_check
srtp_rdbx_dealloc
srtp_rdbx_estimate_index
srtp_rdbx_get_packet_index
srtp_rdbx_get_roc
srtp_rdbx_get_window_size
srtp_rdbx_init
srtp_rdbx_set_roc
srtp_rdbx_set_roc_seq
srtp_remove_stream

@brief srtp_remove_stream() deallocates an SRTP stream.

srtp_replace_auth_type
srtp_replace_cipher_type
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_steam_init_all_master_keys
srtp_stream_init
srtp_stream_init_keys
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

__int32_t
__uint8_t
__uint16_t
__uint32_t
__uint64_t
direction_t
srtp_auth_alloc_func
srtp_auth_compute_func
srtp_auth_dealloc_func
srtp_auth_init_func
srtp_auth_pointer_t
srtp_auth_start_func
srtp_auth_type_id_t

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

srtp_auth_update_func
srtp_cipher_alloc_func_t
srtp_cipher_dealloc_func_t
srtp_cipher_direction_t
srtp_cipher_encrypt_func_t
srtp_cipher_get_tag_func_t
srtp_cipher_init_func_t
srtp_cipher_pointer_t
srtp_cipher_set_aad_func_t
srtp_cipher_set_iv_func_t
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_report_handler_func_t
srtp_err_reporting_level_t

@}

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_key_event_t
srtp_key_limit_t
srtp_key_state_t
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_sequence_number_t
srtp_ssrc_type_t

@brief srtp_ssrc_type_t describes the type of an SSRC.

srtp_stream_ctx_t
srtp_stream_t
srtp_t

@brief An srtp_t points to an SRTP session structure.

srtp_xtd_seq_num_t

Unions

v128_t