diff -r 000000000000 -r 33413c0669b9 vpnengine/ikeutils/inc/pfkeymsg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vpnengine/ikeutils/inc/pfkeymsg.h Thu Dec 17 09:14:51 2009 +0200 @@ -0,0 +1,250 @@ +/* +* Copyright (c) 1999-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: Key management daemon PFKEY message module. +* +*/ + +#ifndef PFKEYMSG_H +#define PFKEYMSG_H + +#include +#include +#include + +#include +#include + +// +// Classes for handling PFKEY structures. +// + +class TPfkeyBase + { +public: + const struct sadb_msg* iMsg; + TPfkeyBase(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyAssociation + { +public: + const struct sadb_sa* iExt; + TPfkeyAssociation(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyLifetime + { +public: + const struct sadb_lifetime* iExt; + TPfkeyLifetime(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyAddress + { +public: + const struct sadb_address* iExt; + const TInetAddr* iAddr; + TPfkeyAddress(); + IMPORT_C const TInetAddr& Address() const; + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyKey + { +public: + const struct sadb_key* iExt; + TPtrC8 iData; + TPfkeyKey(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyIdentity + { +public: + const struct sadb_ident* iExt; + TPtrC8 iData; + TPfkeyIdentity(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeySensitivity + { +public: + const struct sadb_sens* iExt; + TPtrC8 iSensBitmap; + TPtrC8 iIntegBitmap; + TPfkeySensitivity(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeyProposal + { +public: + const struct sadb_prop* iExt; + const struct sadb_comb* iComb; + TInt iNumComb; + TPfkeyProposal(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfkeySupported + { +public: + const struct sadb_supported* iExt; + const struct sadb_alg* iAlg; + TInt iNumAlg; + TPfkeySupported(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + virtual void AlgString( TDes &aStr, + TUint8 aAlg ) const = 0; + }; + +class TPfkeySupportedAuth : public TPfkeySupported + { +public: + void AlgString( TDes &aStr, + TUint8 aAlg ) const; + static void Alg2String( TDes &aStr, + TUint8 aAlg ); + }; + +class TPfkeySupportedEncrypt : public TPfkeySupported + { +public: + void AlgString( TDes &aStr, + TUint8 aAlg ) const; + static void Alg2String( TDes &aStr, + TUint8 aAlg ); + }; + +class TPfkeySpirange + { +public: + const struct sadb_spirange* iExt; + TPfkeySpirange(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + +class TPfKeySelector: public sadb_x_selector + { +public: + TInetAddr iSrc; + TInetAddr iDst; + }; + +class TPfkeyTs + { +public: + const struct sadb_x_ts* iExt; + TPfkeyTs(); + IMPORT_C TInt SelectorCount() const; + IMPORT_C const TPfKeySelector& Selector( TInt aIndex ) const; + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + + +class TPFkeyPrivExt + { +public: + const struct sadb_gen_ext* iExt; + TPtrC8 iData; + TPFkeyPrivExt(); + +#ifdef _DEBUG + void String( TDes &aStr, + const TDesC &aLabel ) const; +#endif + }; + + +// +// Internal presentation of the PF_KEY message +// +class TPfkeyMessage + { +public: + // + // Construct internal presentation from the PFKEY bytestream message + TPfkeyMessage( TPfkeyRecvMsg& aMsg ); + TPfkeyMessage(); + TInt iError; // == KErrNone, if message format valid. + TPfkeyBase iBase; + TPfkeyAssociation iSa; + TPfkeyLifetime iCurrent; + TPfkeyLifetime iHard; + TPfkeyLifetime iSoft; + TPfkeyAddress iSrcAddr; + TPfkeyAddress iDstAddr; + TPfkeyAddress iProxyAddr; + TPfkeyKey iAuthKey; + TPfkeyKey iEncryptKey; + TPfkeyIdentity iSrcIdent; + TPfkeyIdentity iDstIdent; + TPfkeySensitivity iSensitivity; + TPfkeyProposal iProposal; + TPfkeySupportedAuth iAuthAlgs; + TPfkeySupportedEncrypt iEncryptAlgs; + TPfkeySpirange iSpirange; + TPfkeyTs iTs; + TPFkeyPrivExt iPrivateExtension; // For ESP UDP encapsulation + }; + +#endif // PFKEYMSG_H