zrtp_profile_t Struct Reference
[Types and DefinitionsInitalization and Configuration]

ZRTP session profile

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.


Detailed Description

ZRTP session profile

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().

See also:
XXX

Field Documentation

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.

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.

Note:
ZRTP_HASH_SHA256 is only one hash algorithm supported by current version of libzrtp.


The documentation for this struct was generated from the following file:

Generated on Wed Dec 9 17:31:06 2009 for libzrtp  zfone