policymanagement/policyengine/policyengineserver/inc/XACMLconstants.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:07:52 +0200
changeset 0 b497e44ab2fc
child 5 3f7d9dbe57c8
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2000 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: Implementation of policymanagement components
*
*/


#ifndef XACML_CONSTANTS_HEADER__
#define XACML_CONSTANTS_HEADER__

#include "PolicyEngineXACML.h"


namespace PolicyLanguage
{
	namespace Constants
	{
		//namespace attributes
//		_LIT8( NamespaceAttr,						"target-namespace");
//		_LIT8( CertificateAttr,						"certificate_attr");
		_LIT8( ValidCertificateAttr,				"valid_certificate");
		_LIT8( PolicyTargetAttr,					"policy_target");
		_LIT8( TargetTrustedSubject,				"target_trusted_subject");
	
		_LIT8( MetaPolicySetNamespace,				"meta_policy_set_namespace");
		_LIT8( SettingSetNamespace,					"setting_set_namespace");
	
		_LIT8( SettingControlNamespace,				"setting_control_namespace");
	
		_LIT8( CorporateMetaPolicy,					"corporate_meta_policy");


		_LIT8( AddPolicy,							"add");
		_LIT8( RemovePolicy,						"remove");
		_LIT8( ReplacePolicy,						"replace");

		//Pre-defined policies and policy sets
		_LIT8( RootElement,							"root_element");
		_LIT8( RolesMappingPolicy,					"roles_mapping_policy");
		_LIT8( CertMappingPolicy,					"cert_mapping_policy");
		_LIT8( AutoCertificate,						"auto_certificate");
		const TInt AutoCertificateLength			= 16;
		
		//Pre-defined policies for setting enforcement
		_LIT8( EMailEnforcementPolicy,				"email_enforcement_policy");		
		_LIT8( EWLANEnforcementPolicy,				"wlan_enforcement_policy");		
		_LIT8( EAPEnforcementPolicy,				"ap_enforcement_policy");		
		_LIT8( EDataSyncEnforcementPolicy,			"datasync_enforcement_policy");		
		_LIT8( ESyncMLEnforcementPolicy,			"syncml_enforcement_policy");		
		_LIT8( EIMEnforcementPolicy,				"im_enforcement_policy");		

		//values used in RuleTargetCheck functions
		_LIT8( Any,									"any");			
		_LIT8( Subject,								"subject");			
		_LIT8( Resource,							"resource");			
		_LIT8( Action,								"action");			
		_LIT8( Environment,							"environment");			
		
	}
	
	namespace XACML
	{	
		_LIT8(CharacterSetUTF8,							"UTF-8");


	

		namespace AttributeDesignators
		{	
		_LIT8(SubjectAttributeDesignator,		"SubjectAttributeDesignator"); 
		_LIT8(ActionAttributeDesignator,		"ActionAttributeDesignator"); 
		_LIT8(ResourceAttributeDesignator,		"ResourceAttributeDesignator"); 
		_LIT8(EnvironmentAttributeDesignator,	"EnvironmentAttributeDesignator"); 

		_LIT8(AttributeId,						"AttributeId"); 
		_LIT8(DataType,							"DataType"); 
		}

		namespace AttributeValues
		{	
		_LIT8(AttributeValue,					"AttributeValue");
		_LIT8(DataType,							"DataType"); 
		}
	
		namespace MatchObject
		{	
		_LIT8(SubjectMatch,						"SubjectMatch");
		_LIT8(ActionMatch,						"ActionMatch");
		_LIT8(EnvironmentMatch,					"EnvironmentMatch");
		_LIT8(ResourceMatch,					"ResourceMatch");
		_LIT8(MatchId,							"MatchId");
		}	
		
		namespace MatchContainers
		{
		_LIT8(Subject,							"Subject");
		_LIT8(Subjects,							"Subjects");
		_LIT8(Action,							"Action");
		_LIT8(Actions,							"Actions");
		_LIT8(Environment,						"Environment");
		_LIT8(Environments,						"Environments");
		_LIT8(Resource,							"Resource");	
		_LIT8(Resources,						"Resources");	
		}
		
		namespace Rule
		{
		_LIT8(Rule,								"Rule");
		_LIT8(RuleId,							"RuleId");
		_LIT8(Effect,							"Effect");
		_LIT8(Permit,							"Permit");
		_LIT8(Deny,								"Deny");
		
		_LIT8(Target,							"Target");
		}
		
		namespace Policy
		{
		_LIT8(Policy,							"Policy");
		_LIT8(PolicyId,							"PolicyId");
		_LIT8(RuleCombiningAlgId,				"RuleCombiningAlgId");
		}
		
		namespace PolicySet
		{
		_LIT8(PolicySet,						"PolicySet");
		_LIT8(PolicySetId,						"PolicySetId");
		_LIT8(PolicyCombiningAlgId,				"PolicyCombiningAlgId");
		}
		
		namespace Expressions
		{
		_LIT8(Apply,							"Apply");
		_LIT8(Condition,						"Condition");
		_LIT8(FunctionId,						"FunctionId");
		}
		
		namespace Functions
		{
			_LIT8(TrustedRoleMatch,				"urn:nokia:names:s60:corporate:1.0:function:TrustedRoleMatch");
			_LIT8(TrustedSubjectMatch,			"urn:nokia:names:s60:corporate:1.0:function:TrustedSubjectMatch");
												 
			_LIT8(FunctionStringEqualId,		"urn:oasis:names:tc:xacml:1.0:function:string-equal");
			_LIT8(FunctionStringNotEqualId,		"urn:oasis:names:tc:xacml:1.0:function:string-not-equal");
			_LIT8(FunctionBooleanEqualId,		"urn:oasis:names:tc:xacml:1.0:function:boolean-equal");

			_LIT8(FunctionOr,					"urn:oasis:names:tc:xacml:1.0:function:or");
			_LIT8(FunctionAnd,					"urn:oasis:names:tc:xacml:1.0:function:and");
			_LIT8(FunctionNot,					"urn:oasis:names:tc:xacml:1.0:function:not");

			_LIT8(FunctionCertificatedSession,	"urn:nokia:names:s60:corporate:1.0:function:CertificatedSession");
			_LIT8(FunctionUserAcceptCorpPolicy, "urn:nokia:names:s60:corporate:1.0:function:user-accepts-initial-trustedadmin-policy");
			_LIT8(FunctionRuleTargetStructure, 	"urn:nokia:names:s60:corporate:1.0:function:rule-target-structure");

		}
		
		namespace CombiningAlgorithms
		{
			_LIT8(RuleDenyOverrides,			"urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:deny-overrides");
			_LIT8(PolicyDenyOverrides,			"urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides");
			_LIT8(RulePermitOverrides,			"urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides");
			_LIT8(PolicyPermitOverrides,		"urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:permit-overrides");
		}
		
		namespace Description
		{
			_LIT8(Description,					"Description");
		}
	}

	namespace NativeLanguage
	{	
		namespace AttributeDesignators
		{	
		_LIT8(SubjectAttributeDesignator,		"sa"); 
		_LIT8(ActionAttributeDesignator,		"aa"); 
		_LIT8(ResourceAttributeDesignator,		"ra"); 
		_LIT8(EnvironmentAttributeDesignator,	"ea"); 

		_LIT8(AttributeId,						"aid"); 
		_LIT8(DataType,							"dt"); 
		}

		namespace AttributeValues
		{	
		_LIT8(AttributeValue,					"av");
		_LIT8(DataType,							"dt"); 
		
		_LIT8(StringDataType,					"str");
		_LIT8(BooleanDataType,					"boo");
		_LIT8(BooleanTrue,						"tru");
		_LIT8(BooleanFalse,						"fal");
		}
	
		namespace MatchObject
		{	
		_LIT8(SubjectMatch,						"sm");
		_LIT8(ActionMatch,						"am");
		_LIT8(EnvironmentMatch,					"em");
		_LIT8(ResourceMatch,					"rm");
		_LIT8(MatchId,							"mid");
		}
		
		
		namespace MatchContainers
		{
		_LIT8(Subject,							"su");
		_LIT8(Subjects,							"sus");
		_LIT8(Action,							"ac");
		_LIT8(Actions,							"acs");
		_LIT8(Environment,						"en");
		_LIT8(Environments,						"ens");
		_LIT8(Resource,							"re");	
		_LIT8(Resources,						"res");		
		}

		namespace Rule
		{
		_LIT8(Rule,								"ru");
		_LIT8(RuleId,							"ruid");
		_LIT8(Effect,							"ef");
		_LIT8(Permit,							"pe");
		_LIT8(Deny,								"de");
		
		_LIT8(Target,							"ta");
		}
		
		namespace Policy
		{
		_LIT8(Policy,							"po");
		_LIT8(PolicyId,							"poid");
		_LIT8(RuleCombiningAlgId,				"rcaid");
		}

		namespace PolicySet
		{
		_LIT8(PolicySet,						"ps");
		_LIT8(PolicySetId,						"psid");
		_LIT8(PolicyCombiningAlgId,				"pcid");
		}

		namespace Expressions
		{
		_LIT8(Apply,							"app");
		_LIT8(FunctionId,						"fid");
		_LIT8(Condition,						"con");
		}


		namespace Functions
		{
			_LIT8(TrustedRoleMatch,				"trm");
			_LIT8(TrustedSubjectMatch,			"tsm");

			_LIT8(FunctionStringEqualId,		"seid");
			_LIT8(FunctionStringNotEqualId,		"sneid");
			_LIT8(FunctionBooleanEqualId,		"beid");

			_LIT8(FunctionOr,					"orid");
			_LIT8(FunctionAnd,					"andid");
			_LIT8(FunctionNot,					"notid");

			_LIT8(FunctionCertificatedSession,	"csid");
			_LIT8(FunctionUserAcceptCorpPolicy, "uaicpid");
			_LIT8(FunctionRuleTargetStructure, 	"rtsid");
		}
		
		namespace CombiningAlgorithms
		{
			_LIT8(RuleDenyOverrides,			"rdor");
			_LIT8(PolicyDenyOverrides,			"pdor");
			_LIT8(RulePermitOverrides,			"rpor");
			_LIT8(PolicyPermitOverrides,		"ppor");
		}			
		
		namespace Description
		{
			_LIT8(Description,					"desc");
		}								
	}	

	namespace AttributeDesignators
	{
	const TPtrC8 SubjectAttributeDesignator[2] = 
	{ XACML::AttributeDesignators::SubjectAttributeDesignator(), NativeLanguage::AttributeDesignators::SubjectAttributeDesignator()};
	const TPtrC8 ActionAttributeDesignator[2] = 
	{ XACML::AttributeDesignators::ActionAttributeDesignator(), NativeLanguage::AttributeDesignators::ActionAttributeDesignator()};
	const TPtrC8 ResourceAttributeDesignator[2] = 
	{ XACML::AttributeDesignators::ResourceAttributeDesignator(), NativeLanguage::AttributeDesignators::ResourceAttributeDesignator()};
	const TPtrC8 EnvironmentAttributeDesignator[2] = 
	{ XACML::AttributeDesignators::EnvironmentAttributeDesignator(), NativeLanguage::AttributeDesignators::EnvironmentAttributeDesignator()};
	const TPtrC8 AttributeId[2] = 
	{ XACML::AttributeDesignators::AttributeId(), NativeLanguage::AttributeDesignators::AttributeId()};
	const TPtrC8 DataType[2] = 
	{ XACML::AttributeDesignators::DataType(), NativeLanguage::AttributeDesignators::DataType()};
	}
	
	namespace AttributeValues
	{	
	const TPtrC8 AttributeValue[2] = 
	{ XACML::AttributeValues::AttributeValue(), NativeLanguage::AttributeValues::AttributeValue()};
	const TPtrC8 DataType[2] = 
	{ XACML::AttributeValues::DataType(), NativeLanguage::AttributeValues::DataType()};
	const TPtrC8 StringDataType[2] = 
	{ PolicyEngineXACML::KStringDataType(), NativeLanguage::AttributeValues::StringDataType()};
	const TPtrC8 BooleanDataType[2] = 
	{ PolicyEngineXACML::KBooleanDataType(), NativeLanguage::AttributeValues::BooleanDataType()};
	const TPtrC8 BooleanTrue[2] = 
	{ PolicyEngineXACML::KBooleanTrue(), NativeLanguage::AttributeValues::BooleanTrue()};
	const TPtrC8 BooleanFalse[2] = 
	{ PolicyEngineXACML::KBooleanFalse(), NativeLanguage::AttributeValues::BooleanFalse()};
	}

	namespace MatchObject
	{	
	const TPtrC8 SubjectMatch[2] = 
	{ XACML::MatchObject::SubjectMatch(), NativeLanguage::MatchObject::SubjectMatch()};
	const TPtrC8 ActionMatch[2] = 
	{ XACML::MatchObject::ActionMatch(), NativeLanguage::MatchObject::ActionMatch()};
	const TPtrC8 EnvironmentMatch[2] = 
	{ XACML::MatchObject::EnvironmentMatch(), NativeLanguage::MatchObject::EnvironmentMatch()};
	const TPtrC8 ResourceMatch[2] = 
	{ XACML::MatchObject::ResourceMatch(), NativeLanguage::MatchObject::ResourceMatch()};
	const TPtrC8 MatchId[2] = 
	{ XACML::MatchObject::MatchId(), NativeLanguage::MatchObject::MatchId()};
	}
	
	namespace MatchContainers
	{
	const TPtrC8 Subject[2] = 
	{ XACML::MatchContainers::Subject(), NativeLanguage::MatchContainers::Subject()};
	const TPtrC8 Subjects[2] = 
	{ XACML::MatchContainers::Subjects(), NativeLanguage::MatchContainers::Subjects()};
	const TPtrC8 Action[2] = 
	{ XACML::MatchContainers::Action(), NativeLanguage::MatchContainers::Action()};
	const TPtrC8 Actions[2] = 
	{ XACML::MatchContainers::Actions(), NativeLanguage::MatchContainers::Actions()};
	const TPtrC8 Environment[2] = 
	{ XACML::MatchContainers::Environment(), NativeLanguage::MatchContainers::Environment()};
	const TPtrC8 Environments[2] = 
	{ XACML::MatchContainers::Environments(), NativeLanguage::MatchContainers::Environments()};
	const TPtrC8 Resource[2] = 
	{ XACML::MatchContainers::Resource(), NativeLanguage::MatchContainers::Resource()};
	const TPtrC8 Resources[2] = 
	{ XACML::MatchContainers::Resources(), NativeLanguage::MatchContainers::Resources()};
	}	

	namespace Rule
	{
	const TPtrC8 Rule[2] = 
	{ XACML::Rule::Rule(), NativeLanguage::Rule::Rule()};
	const TPtrC8 RuleId[2] = 
	{ XACML::Rule::RuleId(), NativeLanguage::Rule::RuleId()};
	const TPtrC8 Effect[2] = 
	{ XACML::Rule::Effect(), NativeLanguage::Rule::Effect()};
	const TPtrC8 Permit[2] = 
	{ XACML::Rule::Permit(), NativeLanguage::Rule::Permit()};
	const TPtrC8 Deny[2] = 
	{ XACML::Rule::Deny(), NativeLanguage::Rule::Deny()};
	const TPtrC8 Target[2] = 
	{ XACML::Rule::Target(), NativeLanguage::Rule::Target()};
	}

	namespace Policy
	{
	const TPtrC8 Policy[2] = 
	{ XACML::Policy::Policy(), NativeLanguage::Policy::Policy()};
	const TPtrC8 PolicyId[2] = 
	{ XACML::Policy::PolicyId(), NativeLanguage::Policy::PolicyId()};
	const TPtrC8 RuleCombiningAlgId[2] = 
	{ XACML::Policy::RuleCombiningAlgId(), NativeLanguage::Policy::RuleCombiningAlgId()};
	}

	namespace PolicySet
	{
	const TPtrC8 PolicySet[2] = 
	{ XACML::PolicySet::PolicySet(), NativeLanguage::PolicySet::PolicySet()};
	const TPtrC8 PolicySetId[2] = 
	{ XACML::PolicySet::PolicySetId(), NativeLanguage::PolicySet::PolicySetId()};
	const TPtrC8 PolicyCombiningAlgId[2] = 
	{ XACML::PolicySet::PolicyCombiningAlgId(), NativeLanguage::PolicySet::PolicyCombiningAlgId()};
	}

	namespace Expressions
	{
	const TPtrC8 Apply[2] = 
	{ XACML::Expressions::Apply(), NativeLanguage::Expressions::Apply()};
	const TPtrC8 Condition[2] = 
	{ XACML::Expressions::Condition(), NativeLanguage::Expressions::Condition()};
	const TPtrC8 FunctionId[2] = 
	{ XACML::Expressions::FunctionId(), NativeLanguage::Expressions::FunctionId()};
	}

	namespace Functions
	{
		const TPtrC8 TrustedRoleMatch[2] = 
		{ XACML::Functions::TrustedRoleMatch(), NativeLanguage::Functions::TrustedRoleMatch()};
		const TPtrC8 TrustedSubjectMatch[2] = 
		{ XACML::Functions::TrustedSubjectMatch(), NativeLanguage::Functions::TrustedSubjectMatch()};
		const TPtrC8 FunctionStringEqualId[2] = 
		{ XACML::Functions::FunctionStringEqualId(), NativeLanguage::Functions::FunctionStringEqualId()};
		const TPtrC8 FunctionStringNotEqualId[2] = 
		{ XACML::Functions::FunctionStringNotEqualId(), NativeLanguage::Functions::FunctionStringNotEqualId()};
		const TPtrC8 FunctionBooleanEqualId[2] = 
		{ XACML::Functions::FunctionBooleanEqualId(), NativeLanguage::Functions::FunctionBooleanEqualId()};
	
		const TPtrC8 FunctionOr[2] = 
		{ XACML::Functions::FunctionOr(), NativeLanguage::Functions::FunctionOr()};
		const TPtrC8 FunctionAnd[2] = 
		{ XACML::Functions::FunctionAnd(), NativeLanguage::Functions::FunctionAnd()};
		const TPtrC8 FunctionNot[2] = 
		{ XACML::Functions::FunctionNot(), NativeLanguage::Functions::FunctionNot()};


		const TPtrC8 FunctionCertificatedSession[2] = 
		{ XACML::Functions::FunctionCertificatedSession(), NativeLanguage::Functions::FunctionCertificatedSession()};
		const TPtrC8 FunctionUserAcceptCorpPolicy[2] = 
		{ XACML::Functions::FunctionUserAcceptCorpPolicy(), NativeLanguage::Functions::FunctionUserAcceptCorpPolicy()};
		const TPtrC8 FunctionRuleTargetStructure[2] = 
		{ XACML::Functions::FunctionRuleTargetStructure(), NativeLanguage::Functions::FunctionRuleTargetStructure()};
	}
	
	
	namespace CombiningAlgorithms
	{
		const TPtrC8 RuleDenyOverrides[2] = 
		{ XACML::CombiningAlgorithms::RuleDenyOverrides(), NativeLanguage::CombiningAlgorithms::RuleDenyOverrides	()};
		const TPtrC8 PolicyDenyOverrides[2] = 
		{ XACML::CombiningAlgorithms::PolicyDenyOverrides(), NativeLanguage::CombiningAlgorithms::PolicyDenyOverrides ()};
		const TPtrC8 RulePermitOverrides[2] = 
		{ XACML::CombiningAlgorithms::RulePermitOverrides(), NativeLanguage::CombiningAlgorithms::RulePermitOverrides	()};
		const TPtrC8 PolicyPermitOverrides[2] = 
		{ XACML::CombiningAlgorithms::PolicyPermitOverrides(), NativeLanguage::CombiningAlgorithms::PolicyPermitOverrides ()};
	}
	
	namespace Description
	{
		const TPtrC8 Description[2] = 
		{ XACML::Description::Description(), NativeLanguage::Description::Description()};
	}

}




#endif