diff -r a2efdd544abf -r b47902b73a93 networkprotocolmodules/suplprotocolmodule/LbsPskAPI/inc/lbspskbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocolmodules/suplprotocolmodule/LbsPskAPI/inc/lbspskbase.h Fri Jun 04 10:34:15 2010 +0100 @@ -0,0 +1,114 @@ +// Copyright (c) 2008-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: +// Location Based Services PSK API +// Note this file is not exported and remains in prototype status. +// +// + +/** + @file + @publishedPartner + @prototype +*/ +#ifndef LBS_PSK_BASE_H +#define LBS_PSK_BASE_H + + +//------------------------------------------------------------------------------- +#include + +//------------------------------------------------------------------------------- +class TLbsPskParams; + + +//------------------------------------------------------------------------------- +/** +The CLbsPskBase is the abstract interface to a licensee specific PSK plug-in responsible for +deciding which PSK identity and value should be used to secure a connection. + +It is normally used by the LBS SUPL Protocol Module to secure connections to SUPL Servers. + +An actual implementation of a PSK plug-in will derive from CLbsPskBase to provide the specific +implementation of the interface methods. + +Not yet supported/implemented. +*/ +class CLbsPskBase : public CBase + { +public: +#pragma message("NOTE: Location of the UID TBD. Possibly in the SUPL PM Central Rep file") +#pragma message("NOTE: OR there should be only one PSK plug-in? TBD") + + /** Creates an instance of the CLbsPskBase implementation with the given Uid. + + @param aImplementationUid [In] Identifies the plug-in to load. + @param aParams [In] The parameters passed to the plug-in when it is instantiated. + Currently not used. + + */ + IMPORT_C static CLbsPskBase* NewL(TUid aImplementationUid, TLbsPskParams& aParams); + + /** Called during the TLS PSK handshake to get the PSK identity and value to be used to secure the connection. + + @param aHostNameAddress [In] A pointer to a string containing an address of a server. + The pointer may be NULL if the address is unknown. Data ownership is not passed. + @param aPskIdentityHint [In] A pointer to a string containing a "PSK identity hint". + The pointer may be NULL if the hint is unknown. Data ownership is not passed. + @param aPskIdentity [Out] NULL passed in, must be set to an HBufC8 containing the PSK Identity to be used. + Data ownership is passed back to the caller. + @param aPskKey [Out] NULL passed in, must be set to an HBufC8 containing the PSK key value to be used. + Data ownership is passed back to the caller. + + Note that the meaning of the PSK identity hint is NOT defined by the TLS standard, therefore any application + using PSK must previously agree the source of the PSK to be used and the interpretation of the (optional) PSK identity + hint.*/ + virtual void GetPskL(const TDesC8* aHostNameAddress, const TDesC8* aPskIdentityHint, HBufC8*& aPskIdentity, HBufC8*& aPskKey) = 0; + + + /** + Standard destructor that handles the ECom destruction. + The LBS subsystem invokes the destructor when it wishes to + unload the module. */ + IMPORT_C ~CLbsPskBase(); + + /** Currently not implemented */ + IMPORT_C virtual TAny* ExtendedInterface(TInt aFunctionNumber, TAny* aPtr1, TAny* aPtr2); + +private: + //** Prohibit copy constructor */ + CLbsPskBase(const CLbsPskBase&); + //** Prohibit assigment operator */ + CLbsPskBase& operator= (const CLbsPskBase&); + +private: + /** Reserved for future use */ + TAny* iReserved; + + /** Instance identifier key */ + TUid iDtor_ID_Key; + }; + + +//------------------------------------------------------------------------------- +/** Reserved for future use */ +class TLbsPskParams + { + /** Default constructor */ + IMPORT_C TLbsPskParams(); + +private: + TUint8 iReserved[16]; + }; + +#endif //LBS_PSK_BASE_H