Go to the documentation of this file.
21 #ifndef CRYPTOCONTEXT_H
22 #define CRYPTOCONTEXT_H
24 #include <commoncpp/config.h>
29 #define REPLAY_WINDOW_SIZE 64
41 #ifndef CRYPTOCONTEXTCTRL_H
46 #include <ccrtp/crypto/SrtpSymCrypto.h>
175 int32 masterKeyLength,
177 int32 masterSaltLength,
366 int64 key_deriv_rate;
369 uint64 replay_window;
372 uint32 master_key_length;
373 uint32 master_key_srtp_use_nb;
374 uint32 master_key_srtcp_use_nb;
376 uint32 master_salt_length;
397 SrtpSymCrypto* cipher;
398 SrtpSymCrypto* f8Cipher;
void srtpEncrypt(RTPPacket *rtp, uint64 index, uint32 ssrc)
Perform SRTP encryption.
uint32 getRoc() const
Get the Roll-Over-Counter.
Definition: CryptoContext.h:211
const int SrtpAuthenticationSkeinHmac
Definition: CryptoContext.h:33
uint64 guessIndex(uint16 newSeqNumber)
Compute (guess) the new SRTP index based on the sequence number of a received RTP packet.
The implementation for a SRTP cryptographic context.
Definition: CryptoContext.h:83
const int SrtpEncryptionAESCM
Definition: CryptoContext.h:36
void setRoc(uint32 r)
Set the Roll-Over-Counter.
Definition: CryptoContext.h:199
CryptoContext(uint32 ssrc)
Constructor for empty SRTP cryptographic context.
const int SrtpEncryptionTWOCM
Definition: CryptoContext.h:38
void update(uint16 newSeqNumber)
Update the SRTP packet index.
const int SrtpAuthenticationSha1Hmac
Definition: CryptoContext.h:32
int32 getTagLength() const
Get the length of the SRTP authentication tag in bytes.
Definition: CryptoContext.h:311
uint32 getSsrc() const
Get the SSRC of this SRTP Cryptograhic context.
Definition: CryptoContext.h:330
const int SrtpEncryptionTWOF8
Definition: CryptoContext.h:39
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.
CryptoContext * newCryptoContextForSSRC(uint32 ssrc, int roc, int64 keyDerivRate)
Derive a new Crypto Context for use with a new SSRC.
~CryptoContext()
Destructor.
const int SrtpEncryptionNull
Definition: CryptoContext.h:35
int32 getMkiLength() const
Get the length of the MKI in bytes.
Definition: CryptoContext.h:321
const int SrtpEncryptionAESF8
Definition: CryptoContext.h:37
bool checkReplay(uint16 newSeqNumber)
Check for packet replay.
A base class for both IncomingRTPPkt and OutgoingRTPPkt.
Definition: rtppkt.h:74
void deriveSrtpKeys(uint64 index)
Perform key derivation according to SRTP specification.
const int SrtpAuthenticationNull
Definition: CryptoContext.h:31
void srtpAuthenticate(RTPPacket *rtp, uint32 roc, uint8 *tag)
Compute the authentication tag.