ZRTP Sessions are configured with a profile scheme. Each profile is defined by a structure of the given type. zrtp_profile_t contains a set of preferences for crypto components and other protocol parameters. More...
#include <zrtp_types.h>
Data Fields | |
uint8_t | allowclear |
Allowclear mode flag. | |
uint8_t | autosecure |
ZRTP "autosecure" mode flag. | |
uint8_t | disclose_bit |
Disclose bit. | |
uint8_t | discovery_optimization |
Enabled Discovery Optimization. | |
uint32_t | cache_ttl |
Cache time-to-live. | |
uint8_t | sas_schemes [ZRTP_MAX_COMP_COUNT+1] |
SAS calculation scheme preferences. | |
uint8_t | cipher_types [ZRTP_MAX_COMP_COUNT+1] |
Cipher type preferences. | |
uint8_t | pk_schemes [ZRTP_MAX_COMP_COUNT+1] |
Public key exchange scheme preferences. | |
uint8_t | auth_tag_lens [ZRTP_MAX_COMP_COUNT+1] |
Auth tag length preferences. | |
uint8_t | hash_schemes [ZRTP_MAX_COMP_COUNT+1] |
Hash calculation scheme preferences. |
ZRTP Sessions are configured with a profile scheme. Each profile is defined by a structure of the given type. zrtp_profile_t contains a set of preferences for crypto components and other protocol parameters.
The Crypto component choosing mechanism is as follows: both sides communicated their supported components during the "discovery phase". After that the initiator chooses the optimal intersection of components.
For components identification the numerical values of the following types are used: zrtp_hash_id_t, zrtp_cipher_id_t, zrtp_atl_id_t, and zrtp_sas_id_t. The profile field responsible for components of a particular type setting is an integer-valued array where component identifiers should be placed in order of priority. 0-element is of the first priority. The list should end with ZRTP_COMP_UNKN=0.
The values in the profile may be filled either by libzrtp zrtp_profile_defaults() or by the user manually.
The profile is applied to the stream context on allocation by zrtp_session_init().
uint8_t allowclear |
Allowclear mode flag.
This option means that the ZRTP peer allows SRTP termination. If allowclear is disabled, the ZRTP peer must stay in protected mode until the moment the ZRTP stream is shut down. When not in "allowclear" mode, libzrtp will reject all incoming GoClear packages and will not generate its own.
Setting the value equal to 1 turns "allowclear" on, and 0 turns "allowclear" off. If "allowclear" is disabled zrtp_stream_clear() returns zrtp_status_fail.
uint8_t autosecure |
ZRTP "autosecure" mode flag.
In "autosecure" mode, a protected connection will be initiated automatically just after stream start-up. If the option "autosecure" is switched off, then a secure connection can be initialized only by calling zrtp_stream_secure().
uint32_t cache_ttl |
Cache time-to-live.
The time interval libzrtp should retain secrets. This parameter sets the secret's time to live in seconds. This option is global for all connections processed by the library. It is used together with zrtp_session_info_t::cache_ttl.
ZRTP_CACHE_DEFAULT_TTL value is used by default.
uint8_t disclose_bit |
Disclose bit.
This field MUST be set by user application if it's going to disclose stream keys.
uint8_t discovery_optimization |
Enabled Discovery Optimization.
ZRTP protocol specification allows to speed-up the discovery process by sending Commit instead of HelloAck. This is the default behavior for most of ZRTP endpoints. It allows to eliminate one unnecessary exchange.
At other hand, this optimization may cose some problems on slow devices: using this option, the endpoint starts to compute DH value right after receiving remote Hello. It may take seginificent amount of time on slow device (of is the device is busy on other calculations). As all libzrtp messages are processed in single thread, while local endpoint computing DH it be unable to response on remote Hello-s and remote side may switch to NO_ZRTP state.
Not use this option is you running libzrtp on slow device or your software supports HQ video conferences. Enabled by default.
uint8_t hash_schemes[ZRTP_MAX_COMP_COUNT+1] |
Hash calculation scheme preferences.