vpnengine/ikev2lib/inc/ikev2proposal.h
changeset 0 33413c0669b9
--- /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 <e32base.h>
+#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<TTransformIkev2*>* aRefTrans,
+								   CArrayFixFlat<TTransformIkev2*>* 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