///
///
import { Hmac } from "crypto";
import { CipherAesBase } from "../cipher";
import { Profile } from "../const";
export declare class Context {
masterKey: Buffer;
masterSalt: Buffer;
profile: Profile;
srtpSSRCStates: {
[ssrc: number]: SrtpSsrcState;
};
srtpSessionKey: Buffer;
srtpSessionSalt: Buffer;
srtpSessionAuthTag: Buffer;
srtpSessionAuth: Hmac;
srtcpSSRCStates: {
[ssrc: number]: SrtcpSSRCState;
};
srtcpSessionKey: Buffer;
srtcpSessionSalt: Buffer;
srtcpSessionAuthTag: Buffer;
srtcpSessionAuth: Hmac;
cipher: CipherAesBase;
constructor(masterKey: Buffer, masterSalt: Buffer, profile: Profile);
generateSessionKey(label: number): Buffer;
generateSessionSalt(label: number): Buffer;
generateSessionAuthTag(label: number): Buffer;
getSrtpSsrcState(ssrc: number): SrtpSsrcState;
getSrtcpSsrcState(ssrc: number): SrtcpSSRCState;
updateRolloverCount(sequenceNumber: number, s: SrtpSsrcState): void;
generateSrtpAuthTag(buf: Buffer, roc: number): Buffer;
index(ssrc: number): number;
setIndex(ssrc: number, index: number): void;
}
export interface SrtpSsrcState {
ssrc: number;
rolloverCounter: number;
rolloverHasProcessed?: boolean;
lastSequenceNumber: number;
}
export type SrtcpSSRCState = {
srtcpIndex: number;
ssrc: number;
};