bluetoothengine/bthid/common/inc/genericserversecuritypolicy.h
changeset 0 f63038272f30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/bthid/common/inc/genericserversecuritypolicy.h	Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2008 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:
+*
+*/
+
+
+/**
+ @file
+ */
+#ifndef __GENERICSERVERSECURITYPOLICY_H__
+#define __GENERICSERVERSECURITYPOLICY_H__
+
+const TUint KGenericServerRangeCount = 2; //16;
+
+const TInt KGenericServerRanges[KGenericServerRangeCount] =
+    {
+    0, 16
+    };
+/*
+ EGenericCreateHostResolverSubSession,	//	0	=	Alway fail
+ EGenericCreateRegistrySubSession,		//	1	=	Local Services
+ EGenericRegistrySearch,				//	2	=	Always pass
+ EBTRegistryRetrieveDevice,			//	3	=	Always fail
+ EBTRegistryAddDevice,				//	4	=	Always pass
+ EBTRegistryModifyBluetoothName,		//	5	=	Write Device Data
+ EBTRegistryModifyFriendlyName,		//	6	=	Always pass
+ EBTRegistryModifyNamelessDevice,	//	7	=	Write Device Data
+ EBTRegistryDeleteDevices,			//	8	=	Always pass
+ EBTRegistryDeleteLinkKey,			//	9	=	Write Device Data
+ EBTRegistryCloseView,				//	10	=	Always pass
+ EBTRegistryUpdateLocalDevice,		//	11	=	Write Device Data
+ EBTRegistryGetCommPortSettings,		//	12	=	Always pass
+ EBTHostResolverDeviceRequest,		//	13	=	Always fail
+ EGenericSetHeapFailure,				//	14	=	Local Services
+ //	If new function enums are added, the following value needs to
+ //	increase to be <last function number> + 1.
+ //	This defines a final range that extends from the first invalid
+ //	function number to KMaxTInt, and protects against attempts to
+ //	attack the server with invalid functions.
+ 
+ EGenericSubSessionCount+1				//	15	=	CPolicyServer::ENotSupported for all other fns.
+ };
+ */
+
+/** Index numbers into KGenericServerElements[] */
+const TInt KPolicyAlwaysFail = 0;
+const TInt KPolicyLocalServices = 1;
+const TInt KPolicyAlwaysPass = 2;
+const TInt KPolicyWriteDeviceData = 3;
+
+/**Mapping IPCs to policy element */
+const TUint8 KGenericServerElementsIndex[KGenericServerRangeCount] =
+    {
+    KPolicyAlwaysPass, KPolicyAlwaysPass
+
+    //	KPolicyAlwaysFail,				/**	EGenericCreateHostResolverSubSession	*/
+        //	KPolicyLocalServices,			/**	EGenericCreateRegistrySubSession	*/
+        /**	EGenericCreateCommPortSettingsSubSession	*/
+        /**	EGenericCreateLocalDeviceSubSession	*/
+        //	KPolicyAlwaysPass,				/**	EGenericRegistrySearch	*/
+        /**	EGenericExtractRegistryDataIntoServer	*/
+        /**	EGenericRetrieveRegistryData	*/
+        /**	EGenericCloseSubSession	*/
+        /**	EGenericCancelRequest	*/
+        //	KPolicyAlwaysFail,				/**	EBTRegistryRetrieveDevice	*/
+        //	KPolicyAlwaysPass,				/**	EBTRegistryAddDevice	*/
+        /**	EBTRegistryGetNamelessDevice	*/
+        //	KPolicyWriteDeviceData,			/**	EBTRegistryModifyBluetoothName	*/
+        //	KPolicyAlwaysPass,				/**	EBTRegistryModifyFriendlyName	*/
+        //	KPolicyWriteDeviceData,			/**	EBTRegistryModifyNamelessDevice	*/
+        //	KPolicyAlwaysPass,				/**	EBTRegistryDeleteDevices	*/
+        //	KPolicyWriteDeviceData,			/**	EBTRegistryDeleteLinkKey	*/
+        /**	EBTRegistryUnpairView	*/
+        //	KPolicyAlwaysPass,				/**	EBTRegistryCloseView	*/
+        /**	EBTRegistryGetLocalDevice	*/
+        //	KPolicyWriteDeviceData,			/**	EBTRegistryUpdateLocalDevice	*/
+        //	KPolicyAlwaysPass,				/**	EBTRegistryGetCommPortSettings	*/
+        /**	EBTRegistryUpdateCommPortSettings	*/
+        /**	EBTRegistryDeleteCommPortSettings	*/
+        //	KPolicyAlwaysFail,				/**	EBTHostResolverDeviceRequest	*/
+        /**	EBTHostResolverGetNextDeviceRequest	*/
+        /**	EBTHostResolverDeviceModifyDevice	*/
+        /**	EBTHostResolverNotifyRequest	*/
+        //	KPolicyLocalServices,			/**	EGenericSetHeapFailure	*/
+        /**	EGenericSubSessionCount	*/
+        //	CPolicyServer::ENotSupported	/**	EGenericCreateSecManSubSession	*/
+        /**	EGenericCreateSecuritySettingsSubSession	*/
+        /**	EGenericCreateBasebandSecuritySubSession	*/
+        /**	EBTSecManAccessRequest	*/
+        /**	EBTSecuritySettingsRegister	*/
+        /**	EBTSecuritySettingsUnregister	*/
+        /**	EBTBasebandSecurityLinkKeyRequest	*/
+        /**	EBTBasebandSecurityNewLinkKey	*/
+        /**	EBTBasebandSecurityPinRequest	*/
+        /**	EBTBasebandSecurityNewLinkState	*/
+        /**	EBTBasebandSecurityHCIRequestHandler	*/
+        /**	EBTBasebandSecurityNameRequestResponse	*/
+        /**	...and onwards to KMaxTInt	*/
+        };
+
+/** Individual policy elements */
+const CPolicyServer::TPolicyElement KGenericServerElements[] =
+    {
+    /** the EFailClient means that the if the check fails the CheckFailed method with return KErrPermissionDenied */
+        {
+        _INIT_SECURITY_POLICY_FAIL
+        }, /**	policyAlwaysFail	*/
+        {
+                _INIT_SECURITY_POLICY_C1(ECapabilityLocalServices),
+                CPolicyServer::EFailClient
+        }, /**	policyLocalService	*/
+        {
+        _INIT_SECURITY_POLICY_PASS
+        }, /**	policyAlwaysPass	*/
+        {
+                _INIT_SECURITY_POLICY_C1(ECapabilityWriteDeviceData),
+                CPolicyServer::EFailClient
+        } /**	policyWriteDevData	*/
+    };
+
+/** Main policy */
+const CPolicyServer::TPolicy KGenericServerPolicy =
+    {
+            CPolicyServer::EAlwaysPass, /** Specifies all connect attempts should pass */
+            KGenericServerRangeCount,
+            KGenericServerRanges,
+            KGenericServerElementsIndex,
+            KGenericServerElements,
+    };
+
+#endif	//__GENERICSERVERSECURITYPOLICY_H__