diff -r 000000000000 -r b497e44ab2fc terminalsecurity/server/inc/TerminalControlServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/terminalsecurity/server/inc/TerminalControlServer.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,181 @@ +/* +* 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 terminalsecurity components +* +*/ + + +#ifndef __TERMINALCONTROL_SERVER_H__ +#define __TERMINALCONTROL_SERVER_H__ + + +// INCLUDES + +#include +#include "TerminalControlClient.h" +#include + + +// CONSTANTS + +// ---------------------------------------------------------------------------------------- +// TerminalControl server panic codes +// ---------------------------------------------------------------------------------------- +enum TTerminalControlPanic + { + EPanicGeneral, + EBadSubsessionHandle, + EPanicIllegalFunction, + EBadDescriptor + }; + + +// MACROS +// DATA TYPES +// FUNCTION PROTOTYPES + +void PanicClient(const RMessagePtr2& aMessage,TTerminalControlPanic aPanic); + +// FORWARD DECLARATIONS +// CLASS DECLARATION + +/** +* CTerminalControlServer +* Description. +*/ + +class CTerminalControlServer : public CPolicyServer + { + friend class CTerminalControlSession; + +public: + class TTcProcessInfo + { + public: + TFullName iProcessName; + TFileName iFileName; + TInt iHandle; + TProcessId iId; + TModuleMemoryInfo iMemoryInfo; + TBool iCodeInRom; + TSecureId iSecureId; + TBool iProtected; + }; + +public: + ~CTerminalControlServer(); + + static CServer2* NewLC ( ); + void AddSession ( ); + void DropSession ( ); + CObjectCon* NewContainerL ( ); + void Panic ( TInt aPanicCode ); + +private: + CTerminalControlServer(); + + void ConstructL (); + CSession2* NewSessionL (const TVersion& aVersion, + const RMessage2& aMessage) const; + + //From CPolicyServer + CPolicyServer::TCustomResult + CustomSecurityCheckL (const RMessage2& aMsg, + TInt& aAction, + TSecurityInfo& aMissing); + + TTcProcessInfo FindLocalProcessInfoL ( const TDesC8 &aProcessName ); + +protected: + // + // Services + // + void DeleteFileL ( const TDesC8 &aFileName ); + void WipeDeviceL ( ); + void DeepFactoryResetL ( ); + void RebootDeviceL ( ); + CBufFlat* GetRunningProcessesL ( ); + CBufFlat* GetProcessDataL ( const TDesC8 &aProcessName, TDesC8 &aDataName ); + TInt GetLockLevelL ( ); + TInt GetLockTimeoutL ( ); + TInt GetLockMaxTimeoutL ( ); + void SetLockLevelL ( TInt aValue ); + void SetLockTimeoutL ( TInt aValue ); + void SetLockMaxTimeoutL ( TInt aValue ); + void SetLockCodeL ( TDesC8& aCode ); +// --------- Enhanced features BEGIN ------------------ +//#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS + void SetPasscodeMinLengthL ( TInt aMinLength ); + TInt GetPasscodeMinLengthL (); + void SetPasscodeMaxLengthL ( TInt aMaxLength ); + TInt GetPasscodeMaxLengthL (); + void SetPasscodeRequireUpperAndLowerL ( TInt aRequire ); + TInt GetPasscodeRequireUpperAndLowerL (); + void SetPasscodeRequireCharsAndNumbersL ( TInt aRequire ); + TInt GetPasscodeRequireCharsAndNumbersL (); + void SetPasscodeMaxRepeatedCharactersL ( TInt aMax ); + TInt GetPasscodeMaxRepeatedCharactersL (); + void SetPasscodeHistoryBufferL ( TInt aBufferLength ); + TInt GetPasscodeHistoryBufferL (); + void SetPasscodeExpirationL ( TInt aExpiration ); + TInt GetPasscodeExpirationL (); + void SetPasscodeMinChangeToleranceL ( TInt aTolerance ); + TInt GetPasscodeMinChangeToleranceL (); + void SetPasscodeMinChangeIntervalL ( TInt aInterval ); + TInt GetPasscodeMinChangeIntervalL (); + void SetPasscodeCheckSpecificStringsL ( TInt aChoice ); + TInt GetPasscodeCheckSpecificStringsL (); + void DisallowSpecificPasscodesL( const TDesC8& aString ); + void AllowSpecificPasscodesL( const TDesC8& aString ); + void ClearSpecificPasscodeStringsL(); + void SetPasscodeMaxAttemptsL ( TInt aAttempts ); + TInt GetPasscodeMaxAttemptsL (); + void SetConsecutiveNumbersL ( TInt aConsecutiveNumbers ); + TInt GetConsecutiveNumbersL (); + void SetPasscodeMinSpecialCharactersL ( TInt aMin ); + TInt GetPasscodeMinSpecialCharactersL (); + void SetDisallowSimpleL ( TInt aDisallowSimple ); + TInt GetDisallowSimpleL (); + +// ----- enhanced features END ---------------- +//#endif + void StartProcessByUidL ( const TUid& aUID ); + void StartProcessByUidL ( const TDesC8& aUID ); + void StartProcessByFullNameL ( const TDesC8& aName ); + void StopProcessByUidL ( const TUid& aUID ); + void StopProcessByUidL ( const TDesC8 &aUID ); + void StopProcessByFullNameL ( const TDesC8& aName ); + TBool GetPasscodePolicyL ( ); + void SetPasscodePolicyL ( TBool aIsSet ); + +private: + void SetIntValueL( TInt avalue, TInt aSCPCommandEnum ); + TInt GetIntValueL( TInt aSCPCommandEnum ); +private: + TInt iSessionCount; + CObjectConIx *iContainerIndex; + + // Server policy + #define TC_NUMBER_OF_POLICIES 3 + static const CPolicyServer::TPolicy iTcConnectionPolicy; + static const TInt iTcRanges [TC_NUMBER_OF_POLICIES]; + static const TUint8 iTcElementsIndex [TC_NUMBER_OF_POLICIES]; + static const CPolicyServer::TPolicyElement iTcElements[TC_NUMBER_OF_POLICIES]; + + CArrayFix* iProcessInfoArray; + + RSCPClient iSCPClient; + }; + +#endif //__TERMINALCONTROL_SERVER_H__