bZRTP
bZRTP is an opensource implementation of ZRTP keys exchange protocol
Loading...
Searching...
No Matches
Data Fields
bzrtpContext_struct Struct Reference

structure of the ZRTP engine context Store current state, timers, HMAC and encryption keys More...

#include <typedef.h>

Data Fields

bctbx_rng_context_t * RNGContext
 
void * keyAgreementContext
 
uint8_t keyAgreementAlgo
 
uint8_t isInitialised
 
uint8_t isSecure
 
uint8_t peerSupportMultiChannel
 
uint64_t timeReference
 
bzrtpCallbacks_t zrtpCallbacks
 
bzrtpChannelContext_tchannelContext [ZRTP_MAX_CHANNEL_NUMBER]
 
uint8_t hc
 
uint8_t supportedHash [7]
 
uint8_t cc
 
uint8_t supportedCipher [7]
 
uint8_t ac
 
uint8_t supportedAuthTag [7]
 
uint8_t kc
 
uint8_t supportedKeyAgreement [7]
 
uint8_t sc
 
uint8_t supportedSas [7]
 
void * zidCache
 
bctbx_mutex_t * zidCacheMutex
 
int zuid
 
char * selfURI
 
uint8_t selfZID [12]
 
char * peerURI
 
uint8_t peerZID [12]
 
uint32_t peerBzrtpVersion
 
cachedSecrets_t cachedSecret
 
cachedSecretsHash_t initiatorCachedSecretHash
 
cachedSecretsHash_t responderCachedSecretHash
 
uint8_t cacheMismatchFlag
 
uint8_t peerPVS
 
uint8_ttransientAuxSecret
 
size_t transientAuxSecretLength
 
uint8_tZRTPSess
 
uint8_t ZRTPSessLength
 
uint8_texportedKey
 
uint8_t exportedKeyLength
 
uint8_t ZRTPSessContext [24]
 
size_t mtu
 

Detailed Description

structure of the ZRTP engine context Store current state, timers, HMAC and encryption keys

Field Documentation

◆ ac

uint8_t bzrtpContext_struct::ac

auth tag count - set to 0 mean we support only HMAC-SHA1-32 (4 bits)

◆ cachedSecret

cachedSecrets_t bzrtpContext_struct::cachedSecret

the local cached secrets

◆ cacheMismatchFlag

uint8_t bzrtpContext_struct::cacheMismatchFlag

Flag set in case of cache mismatch(detected in DHM mode when DH part packet arrives)

◆ cc

uint8_t bzrtpContext_struct::cc

cipher count - set to 0 means we support only AES128-CFB128 (4 bits)

◆ channelContext

bzrtpChannelContext_t* bzrtpContext_struct::channelContext[ZRTP_MAX_CHANNEL_NUMBER]

All the context data needed for a channel are stored in a dedicated structure

◆ exportedKey

uint8_t* bzrtpContext_struct::exportedKey

computed as in rfc section 4.5.2 only if needed

◆ exportedKeyLength

uint8_t bzrtpContext_struct::exportedKeyLength

length of previous buffer, shall be channel[0]->hashLength

◆ hc

uint8_t bzrtpContext_struct::hc

hash count -zrtpPacket set to 0 means we support only HMAC-SHA256 (4 bits)

◆ initiatorCachedSecretHash

cachedSecretsHash_t bzrtpContext_struct::initiatorCachedSecretHash

The hash of cached secret from initiator side, computed as described in rfc section 4.3.1

◆ isInitialised

uint8_t bzrtpContext_struct::isInitialised

this flag is set once the context was initialised : self ZID retrieved from cache or generated, used to unlock the creation of addtional channels

◆ isSecure

uint8_t bzrtpContext_struct::isSecure

this flag is set to 1 after the first channel have completed the ZRTP protocol exchange(i.e. when the responder have sent the conf2ACK message), must be set in order to start an additional channel

◆ kc

uint8_t bzrtpContext_struct::kc

key agreement count - set to 0 means we support only Diffie-Hellman-Merkle 3072 (4 bits)

◆ keyAgreementAlgo

uint8_t bzrtpContext_struct::keyAgreementAlgo

key agreement algorithm agreed on the first channel, the one performing key exchange, stored using integer mapping defined in cryptoUtils.h,

◆ keyAgreementContext

void* bzrtpContext_struct::keyAgreementContext

context for the key agreement operations. Only one key agreement computation may be done during a call, so this belongs to the general context and not the channel one

◆ mtu

size_t bzrtpContext_struct::mtu

Maximum size in bytes of a ZRTP packet generated locally, has a low limit of BZRTP_MINIMUM_MTU

◆ peerBzrtpVersion

uint32_t bzrtpContext_struct::peerBzrtpVersion

The Bzrtp library version used by peer, retrieved from the peer Hello packet Client identifier and used for backward compatibility in exported key computation

◆ peerPVS

uint8_t bzrtpContext_struct::peerPVS

used to store value of PVS flag sent by peer in the confirm packet on first channel only, then used to compute the PVS value sent to the application

◆ peerSupportMultiChannel

uint8_t bzrtpContext_struct::peerSupportMultiChannel

this flag is set to 1 when the first valid HELLO packet from peer arrives if it support Multichannel ZRTP

◆ peerURI

char* bzrtpContext_struct::peerURI

a null terminated string storing the peer user URI

◆ peerZID

uint8_t bzrtpContext_struct::peerZID[12]

The ZRTP Identifier of the peer ZRTP end point - given by the Hello packet

◆ responderCachedSecretHash

cachedSecretsHash_t bzrtpContext_struct::responderCachedSecretHash

The hash of cached secret from responder side, computed as described in rfc section 4.3.1

◆ RNGContext

bctbx_rng_context_t* bzrtpContext_struct::RNGContext

context for random number generation

◆ sc

uint8_t bzrtpContext_struct::sc

sas count - set to 0 means we support only base32 (4 bits)

◆ selfURI

char* bzrtpContext_struct::selfURI

a null terminated string storing the local user URI

◆ selfZID

uint8_t bzrtpContext_struct::selfZID[12]

The ZRTP Identifier of this ZRTP end point - a random if running cache less

◆ supportedAuthTag

uint8_t bzrtpContext_struct::supportedAuthTag[7]

list of supported SRTP authentication tag algorithms mapped to uint8_t

◆ supportedCipher

uint8_t bzrtpContext_struct::supportedCipher[7]

list of supported cipher algorithms mapped to uint8_t

◆ supportedHash

uint8_t bzrtpContext_struct::supportedHash[7]

list of supported hash algorithms mapped to uint8_t

◆ supportedKeyAgreement

uint8_t bzrtpContext_struct::supportedKeyAgreement[7]

list of supported key agreement algorithms mapped to uint8_t

◆ supportedSas

uint8_t bzrtpContext_struct::supportedSas[7]

list of supported Sas representations mapped to uint8_t

◆ timeReference

uint64_t bzrtpContext_struct::timeReference

in ms. This field will set at each channel State Machine start and updated at each tick after creation of the context, it is used to set the firing time of a channel timer

◆ transientAuxSecret

uint8_t* bzrtpContext_struct::transientAuxSecret

an auxiliary secret not stored in cache, provided after context creation and before the main channel is started

◆ transientAuxSecretLength

size_t bzrtpContext_struct::transientAuxSecretLength

size of the previous buffer

◆ zidCache

void* bzrtpContext_struct::zidCache

an empty pointer always set to NULL when cache is disabled

◆ zidCacheMutex

bctbx_mutex_t* bzrtpContext_struct::zidCacheMutex

lock access to the cache if provided

◆ zrtpCallbacks

bzrtpCallbacks_t bzrtpContext_struct::zrtpCallbacks

structure holding all the pointers to callbacks functions needed by the ZRTP engine. Functions are set by client using the bzrtp_setCallback function

◆ ZRTPSess

uint8_t* bzrtpContext_struct::ZRTPSess

ZRTP session key as described in rfc section 4.5.2

◆ ZRTPSessContext

uint8_t bzrtpContext_struct::ZRTPSessContext[24]

computed at the same time as the commit - useful only when a GoClear is sent - described in rfc section 4.7.2.1 -> (ZIDi||ZIDr)

◆ ZRTPSessLength

uint8_t bzrtpContext_struct::ZRTPSessLength

length of ZRTP session key depends on agreed hash algorithm

◆ zuid

int bzrtpContext_struct::zuid

internal id used to address zid cache SIP/ZID pair binding


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