20#ifndef CRYPTOCONTEXT_H
21#define CRYPTOCONTEXT_H
23#include <commoncpp/config.h>
28#define REPLAY_WINDOW_SIZE 64
40#ifndef CRYPTOCONTEXTCTRL_H
45#include <ccrtp/crypto/SrtpSymCrypto.h>
174 int32 masterKeyLength,
176 int32 masterSaltLength,
365 int64 key_deriv_rate;
368 uint64 replay_window;
371 uint32 master_key_length;
372 uint32 master_key_srtp_use_nb;
373 uint32 master_key_srtcp_use_nb;
375 uint32 master_salt_length;
396 SrtpSymCrypto* cipher;
397 SrtpSymCrypto* f8Cipher;
const int SrtpEncryptionTWOF8
Definition CryptoContext.h:38
const int SrtpEncryptionAESF8
Definition CryptoContext.h:36
const int SrtpEncryptionAESCM
Definition CryptoContext.h:35
const int SrtpAuthenticationSkeinHmac
Definition CryptoContext.h:32
const int SrtpEncryptionNull
Definition CryptoContext.h:34
const int SrtpEncryptionTWOCM
Definition CryptoContext.h:37
const int SrtpAuthenticationSha1Hmac
Definition CryptoContext.h:31
const int SrtpAuthenticationNull
Definition CryptoContext.h:30
The implementation for a SRTP cryptographic context.
Definition CryptoContext.h:82
uint64 guessIndex(uint16 newSeqNumber)
Compute (guess) the new SRTP index based on the sequence number of a received RTP packet.
uint32 getRoc() const
Get the Roll-Over-Counter.
Definition CryptoContext.h:210
int32 getMkiLength() const
Get the length of the MKI in bytes.
Definition CryptoContext.h:320
void srtpEncrypt(RTPPacket *rtp, uint64 index, uint32 ssrc)
Perform SRTP encryption.
void srtpAuthenticate(RTPPacket *rtp, uint32 roc, uint8 *tag)
Compute the authentication tag.
CryptoContext(uint32 ssrc)
Constructor for empty SRTP cryptographic context.
void setRoc(uint32 r)
Set the Roll-Over-Counter.
Definition CryptoContext.h:198
CryptoContext * newCryptoContextForSSRC(uint32 ssrc, int roc, int64 keyDerivRate)
Derive a new Crypto Context for use with a new SSRC.
uint32 getSsrc() const
Get the SSRC of this SRTP Cryptograhic context.
Definition CryptoContext.h:329
~CryptoContext()
Destructor.
void update(uint16 newSeqNumber)
Update the SRTP packet index.
int32 getTagLength() const
Get the length of the SRTP authentication tag in bytes.
Definition CryptoContext.h:310
bool checkReplay(uint16 newSeqNumber)
Check for packet replay.
void deriveSrtpKeys(uint64 index)
Perform key derivation according to SRTP specification.
CryptoContext(uint32 ssrc, int32 roc, int64 keyDerivRate, const int32 ealg, const int32 aalg, uint8 *masterKey, int32 masterKeyLength, uint8 *masterSalt, int32 masterSaltLength, int32 ekeyl, int32 akeyl, int32 skeyl, int32 tagLength)
Constructor for an active SRTP cryptographic context.
A base class for both IncomingRTPPkt and OutgoingRTPPkt.
Definition rtppkt.h:73