--- /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__