diff -r 000000000000 -r 307788aac0a8 ipappprotocols_plat/srtp_api/inc/srtpdef.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipappprotocols_plat/srtp_api/inc/srtpdef.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,102 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Contains SRTP definitions and constants. +* +*/ + + + + +#ifndef __SRTP_DEF_H__ +#define __SRTP_DEF_H__ + +// INCLUDES +#include +#include + +// CONSTANTS +//Block size of the 128 bit AES-CM in bytes +const TInt KAESCM128BlockSizeInBytes = 0x10; + +const TInt KMinSizeRtpHeader = 12; // 96 bits in header, 96/8 = 12 +const TInt KMinSizeRtcpHeader = 8; // 96 bits in header, 96/8 = 12 + +// The 80 bit length of the HMAC-SHA1 authentication tag (n_tag) +const TUint KSRTPAuthTagLength80 = 80; + +//recommending to use in RCCm1 or RCCm2 as 14 octets +const TUint KSRTPAuthTagLength112 = 112; +// 4 octets32 bits +const TUint KSRTPROCLength4 = 4; + +// The 32 bit length of the HMAC-SHA1 authentication tag (n_tag) +// Also recommending in RCCm3 as 4 octects +const TUint KSRTPAuthTagLength32 = 32; + +// The default bit length of the HMAC-SHA1 authentication tag (n_tag) +const TUint KSRTPAuthTagDefaultLength = KSRTPAuthTagLength80; + +// The default length of the SRTP prefix +const TUint KSRTPPrefixLength = 0; + +// default SRTP key derivation rate: 0 +const TUint16 KSRTPDefaultKeyDerivationRate = 0x00; + +// default SRTP ROC Transmission rate: 1 +const TUint16 KSRTPDefaultROCTransRate = 0x01; + +const TUint KSRTCPPacketIndexLength4 = 4; +// default label values +const TUint KSRTPEncryptionLabel = 0x00; +const TUint KSRTPAuthenticationLabel = 0x01; +const TUint KSRTPSaltingLabel = 0x02; +const TUint KSRTCPEncryptionLabel = 0x03; +const TUint KSRTCPAuthenticationLabel = 0x04; +const TUint KSRTCPSaltingLabel = 0x05; + +// default SRTP SESSION key lengths: +// default bit length (n_e) for session encryption key (k_e): +// 128 bits (16 octets) +const TUint KSRTPDefSessionEncryptionKeyLength = 0x80; +// default bit length (n_s) for session salt key (k_s): +// 112 bits (14 octets) +const TUint KSRTPDefSessionSaltingKeyLength = 0x70; +// default bit length (n_a) for session authentication key (k_a): +// 160 bits (20 octets) +const TUint KSRTPDefSessionAuthenticationKeyLength = 0xa0; + +// default SRTP MASTER key lengths: +// default bit length for SRTP master key (128-bit AES): +// 128 bits (16 octets) +const TUint16 KSRTPDefaultMasterKeyLength = 0x80; +// default bit length for SRTP master salt +// 112 bits (14 octets) +const TUint16 KSRTPDefaultMasterSaltLength = 0x70; + +// SRTP limit values +// max SRTP plain/cipher text length is 2^23 == 0x80000 +// since we use 8 bit descriptors, divide this with 2 +const TUint KSRTPMaxTextLength = 0x40000; +// max SRTP keystream 128 bit blocks is 2^16 == 0x10000 +// for an IV value we can not create more keystream blocks +// KSRTPMaxKeyStreamBlocks * 128 equals KSRTPMaxTextLength * 2 +const TUint KSRTPMaxKeyStreamBlocks = 0x10000; + +const TInt KReplayWindowSize = 64; +//2^48 -1 for SRTP +const TUint64 KSRTPMasterKeysLifeTime = 0xFFFFFFFFFFFF; +const TUint32 KLeftNumOfPacketBeforeReKey = 0x64; +//2^31 -1 for SRTCP +const TUint64 KSRTCPMaterKeysLifeTime = 0x7FFFFFFF; +#endif // __SRTP_DEF_H__