bZRTP
bZRTP is an opensource implementation of ZRTP keys exchange protocol
|
The zrtp context of a channel. More...
#include <typedef.h>
The zrtp context of a channel.
uint8_t bzrtpChannelContext_struct::authTagAlgo |
srtp authentication tag algorithm agreed on after Hello packet exchange, stored using integer mapping defined in cryptoUtils.h
uint8_t bzrtpChannelContext_struct::cipherAlgo |
cipher algorithm agreed on after Hello packet exchange, stored using integer mapping defined in cryptoUtils.h
void(* bzrtpChannelContext_struct::cipherDecryptionFunction) (const uint8_t *key, const uint8_t *IV, const uint8_t *input, size_t inputLength, uint8_t *output) |
function pointer to the agreed cipher block function, decryption mode
void(* bzrtpChannelContext_struct::cipherEncryptionFunction) (const uint8_t *key, const uint8_t *IV, const uint8_t *input, size_t inputLength, uint8_t *output) |
function pointer to the agreed cipher block function, encryption mode
uint8_t bzrtpChannelContext_struct::cipherKeyLength |
the length in bytes of the key needed by the agreed cipher block algo
void* bzrtpChannelContext_struct::clientData |
this is a pointer provided by the client which is then resent as a parameter of the callbacks functions. Usefull to store RTP session context for example
uint8_t bzrtpChannelContext_struct::hashAlgo |
hash algorithm agreed on after Hello packet exchange, stored using integer mapping defined in cryptoUtils.h
void(* bzrtpChannelContext_struct::hashFunction) (const uint8_t *input, size_t inputLength, uint8_t hashLength, uint8_t *output) |
function pointer to the agreed hash function
uint8_t bzrtpChannelContext_struct::hashLength |
the length in bytes of a hash generated with the agreed hash algo
void(* bzrtpChannelContext_struct::hmacFunction) (const uint8_t *key, size_t keyLength, const uint8_t *input, size_t inputLength, uint8_t hmacLength, uint8_t *output) |
function pointer to the agreed hmacFunction
fragmentReassembly_t bzrtpChannelContext_struct::incomingFragmentedPacket |
uint8_t bzrtpChannelContext_struct::initiatorAuxsecretID[8] |
initiator auxiliary secret Hash
uint8_t bzrtpChannelContext_struct::isMainChannel |
This flag is set for the firt channel only, allow to distinguish channel to be secured using DHM or multiStream
uint8_t bzrtpChannelContext_struct::isSecure |
This flag is set to 1 when the ZRTP negociation ends and SRTP secrets are generated and confirmed for this channel
uint8_t* bzrtpChannelContext_struct::KDFContext |
defined in rfc section 4.4
uint16_t bzrtpChannelContext_struct::KDFContextLength |
length of the KDF context, is 24 + output length of the selected hash algo
uint8_t bzrtpChannelContext_struct::keyAgreementAlgo |
key agreement algorithm agreed on after Hello packet exchange, stored using integer mapping defined in cryptoUtils.h
uint8_t* bzrtpChannelContext_struct::mackeyi |
the initiator mackey as defined in rfc section 4.5.3 - have a length of hashLength
uint8_t* bzrtpChannelContext_struct::mackeyr |
the responder mackey as defined in rfc section 4.5.3 - have a length of hashLength
uint8_t bzrtpChannelContext_struct::peerH[4][32] |
Store peer 256 bits Hash images H0-H3 used to check messages authenticity
uint8_t* bzrtpChannelContext_struct::peerHelloHash |
peer hello hash - SHA256 of peer Hello packet, given through signaling, shall be a 32 bytes buffer
bzrtpPacket_t* bzrtpChannelContext_struct::peerPackets[PACKET_STORAGE_CAPACITY] |
Hello, Commit and DHPart packet received from peer
uint16_t bzrtpChannelContext_struct::peerSequenceNumber |
Sequence number of the last valid received packet
bzrtpPacket_t* bzrtpChannelContext_struct::pingPacket |
Temporary stores a ping packet when received to be used to create the pingACK response
uint8_t bzrtpChannelContext_struct::responderAuxsecretID[8] |
responder auxiliary secret Hash
uint8_t bzrtpChannelContext_struct::role |
can be INITIATOR or RESPONDER, is set to INITIATOR at creation, may switch to responder later
uint8_t* bzrtpChannelContext_struct::s0 |
the s0 as describred rfc section 4.4 - have a length of hashLength
uint8_t bzrtpChannelContext_struct::sasAlgo |
sas rendering algorithm agreed on after Hello packet exchange, stored using integer mapping defined in cryptoUtils.h
void(* bzrtpChannelContext_struct::sasFunction) (uint32_t sas, char *output, int outputSize) |
function pointer to the agreed sas rendering function
uint8_t bzrtpChannelContext_struct::sasLength |
length of the SAS depends on the algorithm agreed
uint8_t bzrtpChannelContext_struct::selfH[4][32] |
Store self 256 bits Hash images H0-H3 used to generate messages MAC
uint16_t bzrtpChannelContext_struct::selfMessageSequenceNumber |
is used as messageId for fragmented packets, is incremented on new message creation, not packet sending
bzrtpPacket_t* bzrtpChannelContext_struct::selfPackets[PACKET_STORAGE_CAPACITY] |
Hello, Commit and DHPart packet locally generated
uint16_t bzrtpChannelContext_struct::selfSequenceNumber |
Sequence number of the next packet to be sent
uint32_t bzrtpChannelContext_struct::selfSSRC |
A context is identified by his own SSRC and the peer one
bzrtpSrtpSecrets_t bzrtpChannelContext_struct::srtpSecrets |
the secrets keys and salt needed by SRTP
bzrtpStateMachine_t bzrtpChannelContext_struct::stateMachine |
The state machine function, holds the current state of the channel: points to the current state function
bzrtpTimer_t bzrtpChannelContext_struct::timer |
a timer used to manage packets retransmission
uint8_t* bzrtpChannelContext_struct::zrtpkeyi |
the initiator mackey as defined in rfc section 4.5.3 - have a length of cipherKeyLength
uint8_t* bzrtpChannelContext_struct::zrtpkeyr |
the responder mackey as defined in rfc section 4.5.3 - have a length of cipherKeyLength