diff -r 000000000000 -r bde4ae8d615e os/persistentdata/featuremgmt/featuremgr/src/serverexe/featmgrsecuritypolicy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/featuremgmt/featuremgr/src/serverexe/featmgrsecuritypolicy.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,115 @@ +/* +* Copyright (c) 2007-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: +* +*/ + + + +#ifndef FEATMGR_SECURITY_POLICY_H +#define FEATMGR_SECURITY_POLICY_H + + +/** + * Number of different IPC ranges + */ +const TUint KFeatMgrPlatSecRangeCount = 3; + + +#ifndef EXTENDED_FEATURE_MANAGER_TEST +// +// NORMAL +// The security ranges for messages in the framework. +// See also featmgrclientserver.h for message enum TFeatMgrServRequest +// + +/** + * IPC ranges segmented into groups based on their capability requirements + */ +const TInt KFeatMgrPlatSecRanges[KFeatMgrPlatSecRangeCount] = + { + 0, // IPC 0-7 Always passed + 8, // IPC 8-19 WriteDeviceData + 20 // IPC Not supported: 20 = 16 messages + 4 "resource check" messages + }; + + +/** + * IPC segments and their capability requirements + */ +const TUint8 KFeatMgrPlatSecElementsIndex[KFeatMgrPlatSecRangeCount] = + { + CPolicyServer::EAlwaysPass, // IPC 0-3 + 0, // IPC 8-19 + CPolicyServer::ENotSupported // IPC 20 -> + }; + +#else +// +// CONFIGURED test server has debug only API(s) built into the framework. +// e.g. EFeatMgrNumberOfNotifyFeatures which will return debug information about +// the server for testing purposes. Consequently, the platform security setup +// for the test server differs slightly to allow these specific debug only message(s). +// + +/** + * IPC ranges segmented into groups based on their capability requirements + */ +const TInt KFeatMgrPlatSecRanges[KFeatMgrPlatSecRangeCount] = + { + 0, // IPC 0-9 Always passed + 10, // IPC 10-21 WriteDeviceData + 22 // IPC Not supported 22 -> + }; +/** + * IPC segments and their capability requirements + */ +const TUint8 KFeatMgrPlatSecElementsIndex[KFeatMgrPlatSecRangeCount] = + { + CPolicyServer::EAlwaysPass, // IPC 0-3 + 0, // IPC 10-21 + CPolicyServer::ENotSupported // IPC 22 -> + }; + +#endif + + +/** + * Capability sets and the action performed in case of failure + */ +const CPolicyServer::TPolicyElement KFeatMgrPlatSecElements[] = + { + + { + _INIT_SECURITY_POLICY_C1( ECapabilityWriteDeviceData ), + CPolicyServer::EFailClient + } + + }; + + +/** + * Platform security policy that Feature Manager server uses. + */ +const CPolicyServer::TPolicy KFeatMgrPlatSecPolicy = + { + CPolicyServer::EAlwaysPass, // Specifies all connect attempts should pass + KFeatMgrPlatSecRangeCount, // Number of IPC ranges + KFeatMgrPlatSecRanges, // IPC Ranges + KFeatMgrPlatSecElementsIndex, // Policy to IPC mapping array + KFeatMgrPlatSecElements // Policies used in Feature Manager Server + }; + + +#endif