added missing files
user: kashif.sayed
added dependencies/AknTaskList.h
added dependencies/DRMEvent.h
added dependencies/DRMEventObserver.h
added dependencies/DRMNotifier.h
added dependencies/SchemeDefs.hrh
added dependencies/SchemeHandler.h
added dependencies/SchemeHandler.inl
added dependencies/aiwcommon.hrh
added dependencies/aiwdialdata.h
added dependencies/drmrightsinfo.h
added dependencies/drmutilitytypes.h
added dependencies/javaattribute.h
added dependencies/javadomainpskeys.h
added dependencies/javaregistry.h
added dependencies/javaregistryapplicationentry.h
added dependencies/javaregistryentry.h
added dependencies/javaregistryentrytype.h
added dependencies/javaregistrypackageentry.h
added dependencies/mjavaattribute.h
added dependencies/swi/bld.inf
added dependencies/swi/sispackagetrust.h
added dependencies/swi/sisregistryentry.h
added dependencies/swi/sisregistrylog.h
added dependencies/swi/sisregistrysession.h
changed .cproject
changed dependencies/S3libs/bld.inf
changed dependencies/bld.inf
/*
* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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: Defines Runtime security manager's core class. Defines
* APIs for runtime bindings and clients to access security
* management functionalities
*
*/
#ifndef _CRTSECMANAGER_H
#define _CRTSECMANAGER_H
#include <e32base.h>
#include <rtsecmgrcommondef.h>
#include <rtsecmgrtrustinfo.h>
class CRTSecMgrScriptSession;
class MSecMgrPromptHandler;
class CRTSecMgrClientProxy;
class CTrustInfo;
class CPermission;
/**
* Core class of the runtime recurity manager component.
*
* Runtime security manager broadly offers
*
* - Policy management functions
* - Script management functions
* - Access permission check
*
* CRTSecManager offers methods to perform policy management functionalities
* such as
* - Registering runtime security access policy
* - Updating the registered security access policy
* - Un-registering the registered security access policy
*
* Similarly, CRTSecManager offers methods for script management such as
* - Registering a runtime script with security manager
* - Un-registering the registered script
* - Obtaining scipt session associated with the registered script
*
* The main functionality of CRTSecManager is to perform access permission
* check using script session functions
*
* @lib rtsecmgrclient.lib
*/
NONSHARABLE_CLASS(CRTSecManager) : public CBase
{
public:
/**
* Two-phased constructor
*
* Constructs a CRTSecManager instance
*
* Initializes client side security manager session. Starts the security
* manager server, if it is not already running.
*
* @return pointer to an instance of CRTSecManager
*/
IMPORT_C static CRTSecManager* NewL();
/**
* Two-phased constructor
*
* Constructs a CRTSecManager instance and leaves the created instance
* onto the cleanupstack.
*
* Initializes client side security manager session. Starts the security
* manager server, if it is not already running.
*
* @return pointer to an instance of CRTSecManager
*/
IMPORT_C static CRTSecManager* NewLC();
/**
* Destructor
*
* Closes client side security manager session
*/
IMPORT_C ~CRTSecManager();
/**
* Registers a runtime security policy. Runtimes should call this function
* to register their security access and trust policies.
*
* @param aSecPolicy RFile Handle to security policy file
*
* @return TPolicyID generated policy identifier if successul; Otherwise one of
* system wide error codes
*
* \note
* Clients should call ShareProtected on the file session object as shown below.
*
* @code *
* RFs fileSession;
* fileSession.Connect();
* fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
*
* RFile secPolicyFile;
* secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );
* TPolicyID policyID = secMgr->SetPolicy(secPolicyFile);
*
* if(policyID <= KErrNone)
* {
* //error..
* }
*
* @endcode
*
*/
IMPORT_C TPolicyID SetPolicy(const RFile& aSecPolicy);
/**
* Registers a runtime security policy. Runtimes should call this function
* to register their security access and trust policies.
*
* @param aPolicyBuffer const TDesC& security policy file buffer
*
* @return TPolicyID generated policy identifier if successul; Otherwise one of
* system wide error codes
*
* \note
* Clients should call ShareProtected on the file session object as shown below.
*
* @code *
* RFs fileSession;
* fileSession.Connect();
* fileSession.ShareProtected(); //Mandatorily call before invoking SetPolicy
*
* RFile secPolicyFile;
* secPolicyFile.Open(fileSession, _L("AccessPolicy.xml"), EFileShareAny );
* HBufC8* fileBuffer = HBufC8::NewL(KFileBufferMaxLen);
* secPolicyFile.Read(*fileBuffer);
*
* TPolicyID policyID = secMgr->SetPolicy(*fileBuffer);
*
* if(policyID <= KErrNone)
* {
* //error..
* }
*
* @endcode
*
*/
IMPORT_C TPolicyID SetPolicy(const TDesC8& aPolicyBuffer);
/**
* UnRegisters a registered security policy. Runtimes should call this function
* to de-register the already registered security policy.
*
* @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
*
* @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
*
*/
IMPORT_C TInt UnSetPolicy(TPolicyID aPolicyID);
/**
* Updates an already registered security policy. Runtimes should call this function
* to update their policy.
*
* @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
* @param aSecPolicy RFile Handle to security policy file
*
* @see SetPolicy for file session pre-conditions
*
* @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
*
*/
IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const RFile& aSecPolicy);
/**
* Updates an already registered security policy. Runtimes should call this function
* to update their policy.
*
* @param aPolicyID TPolicyID Policy identifier previously generated with SetPolicy
* @param aPolicyBuffer const TDesC& security policy file buffer
*
* @see SetPolicy for file session pre-conditions
*
* @return TPolicyID One of sytem wide error codes in case of failure; Otherwise the passed policyID
*
*/
IMPORT_C TPolicyID UpdatePolicy(TPolicyID aPolicyID,const TDesC8& aPolicyBuffer);
/**
* Registers a script/executable. Runtimes should specify the trust information
* of the script to be registered.
*
* @param aPolicyID TPolicyID Runtime's registered policy identifier
* @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
*
* @return TExecutableID generated executable identifier if successul; Otherwise one of
* system wide error codes
*
*/
IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo);
/**
* Registers a script/executable. Runtimes should specify the trust information
* of the script to be registered.
*
* @param aPolicyID TPolicyID Runtime's registered policy identifier
* @param aHashMarker const TDesC& Hash value to identify script when starting script session
* @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
*
* @return TExecutableID generated executable identifier if successul; Otherwise one of
* system wide error codes
*
*/
IMPORT_C TExecutableID RegisterScript(TPolicyID aPolicyID, const TDesC& aHashMarker, const CTrustInfo& aTrustInfo);
/**
* De-Registers a script/executable. Runtimes should pass the previously registered
* script identifier corresponding to the script to be de-registered.
*
* @param aExeID TExecutableID A valid script identifier
*
* @return TInt One of sytem wide error codes in case of failure; Otherwise KErrNone
*
*/
IMPORT_C TInt UnRegisterScript(TExecutableID aExeID, TPolicyID aPolicyID);
/**
* Creates a script session instance. CRTSecMgrScriptSession performs access permission
* check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
* be created for every instance of scripts which could potentially invoke platform service.
*
* @param aPolicyID TPolicyID Valid registered policy identifier
* @param aExeID TExecutableID Script identifier, KAnonymousScript in case of anonymous script session
* @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
* will supply a default prompt handler
*
* @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
* Otherwise NULL
*/
IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, TExecutableID aExecID, MSecMgrPromptHandler* aPromptHdlr=NULL , const TDesC& aHashValue = KNullDesC);
/**
* Creates a script session instance for an unregisterd trusted script. CRTSecMgrScriptSession performs access permission
* check for native platform service invocation.
*
* @param aPolicyID TPolicyID Valid registered policy identifier
* @param aTrustInfo CTrustInfo a valid instance of CTrustInfo object
* @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
* will supply a default prompt handler
*
* @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession;
* NULL in case of invalid policy identifier
*
*
*/
IMPORT_C CRTSecMgrScriptSession* GetScriptSessionL(TPolicyID aPolicyID, const CTrustInfo& aTrustInfo, MSecMgrPromptHandler* aPromptHdlr=NULL);
/**
* Creates a script session instance. CRTSecMgrScriptSession performs access permission
* check for native platform service invocation. A CRTSecMgrScriptSession instance needs to
* be created for every instance of scripts which could potentially invoke platform service.
*
* @param aPolicyID TPolicyID Valid registered policy identifier
* @param aExeID TExecutableID Script identifier, KAnonymousScript in case of anonymous script session
* @param aHashValue TDesC hash value passed while registering the script
* @param aPromptHdlr MSecMgrPromptHandler An optional prompt handler. If not provided, Security manager
* will supply a default prompt handler
*
* @return CRTSecMgrScriptSession* A pointer to the created instance of CRTSecMgrScriptSession if the executableID is valid;
* Otherwise NULL
IMPORT_C CRTSecMgrScriptSession* GetScriptSession(TPolicyID aPolicyID, TExecutableID aExecID, const TDesC& aHashValue, MSecMgrPromptHandler* aPromptHdlr=NULL);*/
private:
//Private default constructor
CRTSecManager();
//Part of second-phase constructor
void ConstructL();
private:
//Proxy to client side session object
CRTSecMgrClientProxy* iClientProxy;
};
#endif //_CRTSECMANAGER_H