diff -r 000000000000 -r 33413c0669b9 vpnengine/ikev2lib/inc/ikev2proposal.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vpnengine/ikev2lib/inc/ikev2proposal.h Thu Dec 17 09:14:51 2009 +0200 @@ -0,0 +1,73 @@ +/* +* Copyright (c) 2003-2009 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: IKEv2 Proposal handling. +* +*/ + + +#ifndef __IKEV2PROPOSAL_H_ +#define __IKEV2PROPOSAL_H_ +#include +#include "ikepolparser.h" +#include "ikemsgheader.h" + +class CIkev2Payloads; +class TPayloadIkev2; +class TProposalIkev2; +class TTransformIkev2; +class CIkeV2Identity; +class TIkev2SAData; +class TIkeV2IpsecSAData; + +class Ikev2Proposal +{ +public: + static HBufC8* FromPolicyToProposaL(TIkev2SAData& aIkeSaData, + const TDesC8& aRekeySpi, + TInt aDHGroupGuess, + TBool aRekey=EFalse); + static HBufC8* BuildSaResponseL(TProposalIkev2* aAcceptedProp, CIkev2Payloads* aAcceptedTrans); + static TBool GetSelectedProposalData(TIkev2SAData& aIkev2SaData, + TIkeV2IpsecSAData& aChildSaData, + const CIkev2Payloads& aAcceptedProp, + const TProposalIkev2& aProp); + static TBool VerifySaResponseL(TIkev2SAData& aIkeSaData, + TIkeV2IpsecSAData& aIpsecSaData, + const TDesC8& aReferenceSaData, + const CIkev2Payloads& aRespProp); + static TBool VerifySaRequestAndGetProposedSaBufferL(TIkev2SAData& aIkeSaData, + TIkeV2IpsecSAData& aIpsecSaData, + const TDesC8& aReferenceSaData, + const CIkev2Payloads& aProposed, + HBufC8*& aProposedSaBuffer); + static TBool VerifyProposaL(CIkev2Payloads* aReference, TProposalIkev2* aProposal, TIkev2SAData& aIkev2SaData); + static TBool CompareTransforms(CArrayFixFlat* aRefTrans, + CArrayFixFlat* aTrans); + static HBufC8* GetPSKFromPolicyL(CIkeData* aHostData); + static TBool IkeSaRekey(CIkev2Payloads* aIkeMsg); + static TBool GetRekeySpi(CIkev2Payloads* aIkeMsg, TIkeSPI& aSPI); + static void ChangeSpiInProposal(HBufC8* aSaBfr, TIkeSPI& aSPI); + static TUint16 GetDHGroup(TInt aDHGroup); + static CIkeV2Identity* GetRemoteIdentityL(CIkeData* aHostData); + + static inline TBool PkiServiceNeeded(CIkeData* aHostData) + { + ASSERT(aHostData); + if ( aHostData->iCAList && aHostData->iCAList->Count() ) + return ETrue; + else return EFalse; + } +}; + +#endif