|
bZRTP
bZRTP is an opensource implementation of ZRTP keys exchange protocol
|
structure of the ZRTP engine context Store current state, timers, HMAC and encryption keys More...
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_t * | channelContext [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_t * | transientAuxSecret |
| size_t | transientAuxSecretLength |
| uint8_t * | ZRTPSess |
| uint8_t | ZRTPSessLength |
| uint8_t * | exportedKey |
| uint8_t | exportedKeyLength |
| uint8_t | ZRTPSessContext [24] |
| size_t | mtu |
structure of the ZRTP engine context Store current state, timers, HMAC and encryption keys
| uint8_t bzrtpContext_struct::ac |
auth tag count - set to 0 mean we support only HMAC-SHA1-32 (4 bits)
| cachedSecrets_t bzrtpContext_struct::cachedSecret |
the local cached secrets
| uint8_t bzrtpContext_struct::cacheMismatchFlag |
Flag set in case of cache mismatch(detected in DHM mode when DH part packet arrives)
| uint8_t bzrtpContext_struct::cc |
cipher count - set to 0 means we support only AES128-CFB128 (4 bits)
| bzrtpChannelContext_t* bzrtpContext_struct::channelContext[ZRTP_MAX_CHANNEL_NUMBER] |
All the context data needed for a channel are stored in a dedicated structure
| uint8_t* bzrtpContext_struct::exportedKey |
computed as in rfc section 4.5.2 only if needed
| uint8_t bzrtpContext_struct::exportedKeyLength |
length of previous buffer, shall be channel[0]->hashLength
| uint8_t bzrtpContext_struct::hc |
hash count -zrtpPacket set to 0 means we support only HMAC-SHA256 (4 bits)
| cachedSecretsHash_t bzrtpContext_struct::initiatorCachedSecretHash |
The hash of cached secret from initiator side, computed as described in rfc section 4.3.1
| 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
| 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
| uint8_t bzrtpContext_struct::kc |
key agreement count - set to 0 means we support only Diffie-Hellman-Merkle 3072 (4 bits)
| 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,
| 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
| size_t bzrtpContext_struct::mtu |
Maximum size in bytes of a ZRTP packet generated locally, has a low limit of BZRTP_MINIMUM_MTU
| 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
| 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
| 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
| char* bzrtpContext_struct::peerURI |
a null terminated string storing the peer user URI
| uint8_t bzrtpContext_struct::peerZID[12] |
The ZRTP Identifier of the peer ZRTP end point - given by the Hello packet
| cachedSecretsHash_t bzrtpContext_struct::responderCachedSecretHash |
The hash of cached secret from responder side, computed as described in rfc section 4.3.1
| bctbx_rng_context_t* bzrtpContext_struct::RNGContext |
context for random number generation
| uint8_t bzrtpContext_struct::sc |
sas count - set to 0 means we support only base32 (4 bits)
| char* bzrtpContext_struct::selfURI |
a null terminated string storing the local user URI
| uint8_t bzrtpContext_struct::selfZID[12] |
The ZRTP Identifier of this ZRTP end point - a random if running cache less
| uint8_t bzrtpContext_struct::supportedAuthTag[7] |
list of supported SRTP authentication tag algorithms mapped to uint8_t
| uint8_t bzrtpContext_struct::supportedCipher[7] |
list of supported cipher algorithms mapped to uint8_t
| uint8_t bzrtpContext_struct::supportedHash[7] |
list of supported hash algorithms mapped to uint8_t
| uint8_t bzrtpContext_struct::supportedKeyAgreement[7] |
list of supported key agreement algorithms mapped to uint8_t
| uint8_t bzrtpContext_struct::supportedSas[7] |
list of supported Sas representations mapped to uint8_t
| 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
| uint8_t* bzrtpContext_struct::transientAuxSecret |
an auxiliary secret not stored in cache, provided after context creation and before the main channel is started
| size_t bzrtpContext_struct::transientAuxSecretLength |
size of the previous buffer
| void* bzrtpContext_struct::zidCache |
an empty pointer always set to NULL when cache is disabled
| bctbx_mutex_t* bzrtpContext_struct::zidCacheMutex |
lock access to the cache if provided
| 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
| uint8_t* bzrtpContext_struct::ZRTPSess |
ZRTP session key as described in rfc section 4.5.2
| 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)
| uint8_t bzrtpContext_struct::ZRTPSessLength |
length of ZRTP session key depends on agreed hash algorithm
| int bzrtpContext_struct::zuid |
internal id used to address zid cache SIP/ZID pair binding
1.8.11