networkprotocolmodules/suplprotocolmodule/LbsPskAPI/inc/lbspskbase.h
changeset 36 b47902b73a93
parent 0 9cfd9a3ee49c
--- /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 <e32base.h>
+
+//-------------------------------------------------------------------------------
+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