multimediacommsengine/mmcesrv/mmceserver/inc/mcecsplatsecpolicy.h
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/mmcesrv/mmceserver/inc/mcecsplatsecpolicy.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,102 @@
+/*
+* Copyright (c) 2005 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:    The security policy for MCE Server
+*
+*/
+
+
+
+
+#ifndef TMCECSPLATSECPOLICY_H
+#define TMCECSPLATSECPOLICY_H
+
+/**
+ * Number of different IPC ranges 
+ */
+const TUint KMceCSPlatSecRangeCount = 13;
+
+
+/**
+ * IPC ranges segmented into groups based on their capability requirements
+ */
+const TInt TMceCSPlatSecRanges[KMceCSPlatSecRangeCount] =
+	{
+	0,  // IPC message 0
+	1,	// IPC message 1 - 14
+	15, // IPC message 15 - 20
+	21, // IPC message 21
+	22, // IPC message 22 - 24
+	25, // IPC message 25 - 32
+	33, // IPC message 33
+	34,	// IPC message 34 - 35
+	36, // IPC message 36
+	37, // IPC message 37 - 41
+	42, // IPC message 42 - 49
+    50, // IPC messages 50 - 150
+	150 // Not Supported 150 -> 	
+	};
+
+/**
+ * IPC segments and their capability requirements
+ */
+const TUint8 TMceCSPlatSecElementsIndex[KMceCSPlatSecRangeCount] =
+	{
+	CPolicyServer::EAlwaysPass,// Security policy for IPC 0
+	0,						   // Security policy for IPC message 1 - 14 (NetworkServices)
+	CPolicyServer::EAlwaysPass,// Security policy for IPC message 15 - 20 (None)
+	0,						   // Security policy for IPC message 21 (NetworkServices)
+	CPolicyServer::EAlwaysPass,// Security policy for IPC message 22 - 24 (None)
+	0,						   // Security policy for IPC message 25 - 32 (NetworkServices)
+	1, 						   // Security policy for IPC message 33 (WriteDeviceData)
+	CPolicyServer::EAlwaysPass,// Security policy for IPC message 34 - 35 (None)	
+	1,						   // Security policy for IPC message 36 (WriteDeviceData)
+	CPolicyServer::EAlwaysPass,// Security policy for IPC message 37 - 41 (None)
+	2,                         // Security policy for IPC message 42 - 49 (MultimediaDD)
+	CPolicyServer::EAlwaysPass,// Security policy for IPC message 50 - 150 (None) 
+	CPolicyServer::ENotSupported // Not Supported  ->
+	};
+	
+/**
+ * Capability sets and the action performed in case of failure
+ */	
+const CPolicyServer::TPolicyElement TMceCSPlatSecElements[3] =
+	{
+	// Requires the user to have NetworkServices capability, otherwise the message is 
+	// completed with KErrPermissionDenied
+	{ _INIT_SECURITY_POLICY_C1(ECapabilityNetworkServices), CPolicyServer::EFailClient },
+	
+	// Requires the user to have WriteDeviceData capability, otherwise the message is 
+	// completed with KErrPermissionDenied
+	{ _INIT_SECURITY_POLICY_C1(ECapabilityWriteDeviceData), CPolicyServer::EFailClient },
+	
+	
+	// Requires the user to have MultimediaDD capability, otherwise the message is 
+	// completed with KErrPermissionDenied
+	{ _INIT_SECURITY_POLICY_C1(ECapabilityMultimediaDD), CPolicyServer::EFailClient }	
+	
+	};
+	
+/**
+ * Platform security policy that MCE Server uses. 
+ */	
+const CPolicyServer::TPolicy TMceCSPlatSecPolicy =
+	{
+	CPolicyServer::EAlwaysPass, 	// Specifies all connect attempts should pass
+	KMceCSPlatSecRangeCount,		// Number of ITC ranges
+	TMceCSPlatSecRanges,			// ITC Ranges
+	TMceCSPlatSecElementsIndex,		// Policy to ITC mapping array
+	TMceCSPlatSecElements			// Policies used in MCE Server
+	};
+						
+#endif//TMCECSPLATSECPOLICY_H