diff -r eb9b28acd381 -r 2f10d260163b contentmgmt/cafstreamingsupport/inc/keyassociation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentmgmt/cafstreamingsupport/inc/keyassociation.h Mon Mar 15 12:46:43 2010 +0200 @@ -0,0 +1,75 @@ +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// + +/** + @file + @publishedPartner + @released +*/ + +#include + +#ifndef KEYASSOCIATION_H +#define KEYASSOCIATION_H + +namespace StreamAccess + { + /** + Defines the key association abstraction. In streaming protection, keys can be used slightly differently + for different protection layers. In IPSec they are used as a part of SA (Security Associations), while in SRTP they + are used as the Master Key - used for deriving the decryption and the authentication keys. + */ + class CKeyAssociation : public CBase + { + public: + IMPORT_C virtual ~CKeyAssociation(); + }; + + + /** + Defines a key association for the IPSec protocol. + */ + class CIpSecKeyAssociation : public CKeyAssociation + { + friend class CIpSecKeyStreamSink; + public: + /** Constructs a new key association for IPSec. + @param aSpi The SPI (security parameter index) to be used. + @param aEncryptionKey The encryption key to be used in this association. Please note that the ownership on aEncryptionKey is passed to the newly created object. + @param aAuthenticationKey The authentication key to be used in this association. Please note that the ownership on aAuthenticationKey is passed to the newly created object. + @leave One of the system-wide error codes. + */ + IMPORT_C static CIpSecKeyAssociation* NewL(TInt32 aSpi, HBufC8* aEncryptionKey, HBufC8* aAuthenticationKey); + + /** + @see CIpSecKeyAssociation::NewL + */ + IMPORT_C static CIpSecKeyAssociation* NewLC(TInt32 aSpi, HBufC8* aEncryptionKey, HBufC8* aAuthenticationKey); + + private: + TInt32 GetSpiL() const; + const HBufC8* GetEncryptionKeyL() const; + const HBufC8* GetAuthenticationKeyL() const; + private: + CIpSecKeyAssociation(TInt32 aSpi, HBufC8* aEncryptionKey, HBufC8* aAuthenticationKey); + private: + TInt32 iSpi; + HBufC8 *iEncryptionKey; + HBufC8 *iAuthenticationKey; + }; + + } // namespace StreamAccess +#endif // KEYASSOCIATION_H +