--- /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 <e32base.h>
+#include "TerminalControlClient.h"
+#include <SCPClient.h>
+
+
+// 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<TTcProcessInfo>* iProcessInfoArray;
+
+ RSCPClient iSCPClient;
+ };
+
+#endif //__TERMINALCONTROL_SERVER_H__