diff -r 000000000000 -r 1bce908db942 ipappsrv_plat/media_control_api/inc/mmccsrtpcryptoparams.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipappsrv_plat/media_control_api/inc/mmccsrtpcryptoparams.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,129 @@ +/* +* Copyright (c) 2006 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: Class is used for configuring mcc srtp crypto params +* +*/ + + + + +#ifndef MMCCSRTPCRYPTOPARAMS_H +#define MMCCSRTPCRYPTOPARAMS_H + +// INCLUDES +#include + + +// CONSTANTS +// The default bit length of the HMAC-SHA1 authentication tag +const TUint KMccSRTPAuthTagDefaultLength = 80; + +// default SRTP key derivation rate: 0 +const TUint16 KMccSRTPDefaultKeyDerivationRate = 0x00; + +// The default length of the SRTP prefix +const TUint KMccSRTPPrefixLength = 0; + +const TInt KMccReplayWindowSize = 64; + +// default SRTP ROC Transmission rate: 1 +const TUint16 KMccSRTPDefaultROCTransRate = 0x01; + +// The 80 bit length of the HMAC-SHA1 authentication tag (n_tag) +const TUint KMccSRTPAuthTagLength80 = 80; + +// The 32 bit length of the HMAC-SHA1 authentication tag (n_tag) +// Also recommending in RCCm3 as 4 octects +const TUint KMccSRTPAuthTagLength32 = 32; + +//recommending to use in RCCm1 or RCCm2 as 14 octets +const TUint KMccSRTPAuthTagLength112 = 112; + +/** + * Encyption algorithms. + */ +enum TMccSRTPEncAlg + { + ESrtpNullAlg = 0, + ESrtpEncAES_CM + }; + +/** + * Authentication algorithms. + * With RCCm1, RCCm2 and RCCm3, ROC will be synchronized if SEQ%R==0 + */ +enum TMccSRTPAuthAlg + { + ESrtpAuthNull = 0, + ESrtpAuthHMAC_SHA1, + ESrtpAuthRCCm1, + ESrtpAuthRCCm2, + ESrtpAuthRCCm3 + }; + +/** + * The TMccSrtpCryptoParams captures the MCC SRTP crypto params + * into one class + * + * @lib N/A + * @since Series 60 3.2 + */ +class TMccSrtpCryptoParams + { + +public: + + //IF any of the following param changes it will cause the caculation changes. + inline TMccSrtpCryptoParams::TMccSrtpCryptoParams() : + iSrtpEncAlg( ESrtpEncAES_CM ), + iSrtcpEncAlg( ESrtpEncAES_CM ), + iSrtpAuthAlg( ESrtpAuthHMAC_SHA1 ), + iSrtcpAuthAlg(ESrtpAuthHMAC_SHA1 ), + iSrtpAuthTagLen( KMccSRTPAuthTagDefaultLength ), + iSrtcpAuthTagLen(KMccSRTPAuthTagDefaultLength ), + iSrtpKeyDervRate( KMccSRTPDefaultKeyDerivationRate ), + iSrtcpKeyDervRate( KMccSRTPDefaultKeyDerivationRate ), + iPrefixLen( KMccSRTPPrefixLength ), + iSrtpReplayProtection( ETrue ), + iSrtcpReplayProtection( ETrue), + iROCTransRate( KMccSRTPDefaultROCTransRate ), + iMasterKeysLifeTime ( 0 ), + iReplayWindowSizeHint ( KMccReplayWindowSize ), + iIsRCCm3Sync( EFalse ) + { + }; + + TMccSRTPEncAlg iSrtpEncAlg; //encoding algorithm + TMccSRTPEncAlg iSrtcpEncAlg; + TMccSRTPAuthAlg iSrtpAuthAlg; // authentication algorithm + TMccSRTPAuthAlg iSrtcpAuthAlg; + TUint iSrtpAuthTagLen; + TUint iSrtcpAuthTagLen; + TUint iSrtpKeyDervRate; //The key derivation rate + TUint iSrtcpKeyDervRate; + TUint iPrefixLen; // prefix length must be 0 + TBool iSrtpReplayProtection; // replay protection on/off + TBool iSrtcpReplayProtection; + TUint16 iROCTransRate; // Integrity transform parameter + TUint64 iMasterKeysLifeTime; //Set both for SRTP/SRTCP otherwise use default + TInt iReplayWindowSizeHint; //Set both for SRTP/SRTCP otherwise use default + TBool iIsRCCm3Sync; // using in RCCm3 only defined in RFC srtp-rcc04 Section 4 + }; + + +typedef TPckgBuf TMccSrtpCryptoParamsPckg; + +#endif /* MMCCSRTPCRYPTOPARAMS_H */ + +// End of File