terminalsecurity/inc/TerminalControlClient.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/terminalsecurity/inc/TerminalControlClient.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,374 @@
+/*
+* 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 __TERMINALCONTROLCLIENT_H__
+#define __TERMINALCONTROLCLIENT_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <ssl.h>
+#include "TerminalControl.h"
+#include "TerminalControlClientServer.h"
+
+// CONSTANTS
+_LIT8( KTCPathCDrive, "c:\\" );
+
+// MACROS
+
+// DATA TYPES
+typedef TBuf8<sizeof(TFileName)> TFileName8;
+
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+// CLASS DECLARATION
+
+/**
+*  RTerminalControlSession class to handle terminal control sessions
+*/
+	
+class RTerminalControlSession : public RSubSessionBase
+{
+	public: 
+		//Session management		
+	    /**
+		* Connect Open client side session
+		* @param aServer Reference to connected RTerminalControl
+	    * @return KErrNone Symbian error code
+        */
+		IMPORT_C TInt Open(RTerminalControl &aServer, TCertInfo &aCertification );
+		
+		/**
+		* Close Close session
+        */
+		IMPORT_C void Close();
+
+		/**
+		* Scan files
+        */
+		IMPORT_C TInt FileScan( const TDesC8& aStartPath = KTCPathCDrive(), TBool aRecursive=EFalse );
+		
+		/**
+		* Get file scan results
+        */
+        IMPORT_C TInt FileScanResultsL( CBufFlat* aBuffer );
+        
+		/**
+		* Get file scan results size
+        */
+		IMPORT_C TInt FileScanResultsSize( TInt &aSize );
+		
+		/**
+		* Get file scan results size
+        */
+		IMPORT_C TInt FileScanResultsSize( TDes8 &aSize );
+		
+		/**		
+		* Delete file
+        */
+		IMPORT_C TInt DeleteFile( const TDesC8& aFileName );
+		
+		/**
+		* Set device lock autolock period
+        */
+		IMPORT_C TInt SetAutolockPeriod( TInt32 aPeriod );
+
+		/**
+		* Get device lock autolock period
+        */
+		IMPORT_C TInt GetAutolockPeriod( TInt32 &aPeriod );
+
+		/**
+		* Set maximum device lock autolock period
+        */
+		IMPORT_C TInt SetMaxAutolockPeriod( TInt32 aPeriod );
+
+		/**
+		* Get maximum device lock autolock period
+        */
+		IMPORT_C TInt GetMaxAutolockPeriod( TInt32 &aPeriod );
+		
+		/**
+		* Set device lock level
+        */
+		IMPORT_C TInt SetDeviceLockLevel( TInt32 aLevel );
+
+		/**
+		* Get device lock level
+        */
+		IMPORT_C TInt GetDeviceLockLevel( TInt32 &aLevel );
+		
+		/**
+		* Set lock code
+        */
+		IMPORT_C TInt SetDeviceLockCode( const TDesC8 &aCode );
+
+		/**
+		* Get lock code
+        */
+		IMPORT_C TInt GetDeviceLockCode( TDesC8 &aCode );
+
+		/**
+		* Wipe device (factory reset)
+        */
+		IMPORT_C TInt DeviceWipe( );
+		
+		
+// --------- Enhanced features BEGIN ------------------
+//#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS
+		
+		/**
+		* Set the minimum length for passcode.
+		* 4-256 characters
+		*/
+		IMPORT_C TInt SetPasscodeMinLength( TInt32 aMinLength );
+		
+		/**
+		* Get the minimum length for passcode.
+		* 4-256 characters
+		*/
+		IMPORT_C TInt GetPasscodeMinLength( TInt32& aMinLength );
+		
+		/**
+		* Set the maximum length for passcode 
+		*/
+		IMPORT_C TInt SetPasscodeMaxLength( TInt32 aMinLength );
+		
+		/**
+		* Get the maximum length for passcode 
+		*/
+		IMPORT_C TInt GetPasscodeMaxLength( TInt32& aMinLength );
+		
+		
+		/**
+		* Set if upper and lower case letter are required in the passcode
+		*/
+		IMPORT_C TInt SetPasscodeRequireUpperAndLower( TBool aRequire );
+		
+		/**
+		* Get if upper and lower case letter are required in the passcode
+		*/
+		IMPORT_C TInt GetPasscodeRequireUpperAndLower( TBool& aRequire );
+		
+		/**
+		* Set if chars and numbers are required in the passcode
+		*/
+		IMPORT_C TInt SetPasscodeRequireCharsAndNumbers( TBool aRequire );
+		
+		/**
+		* Get if chars and numbers are required in the passcode
+		*/
+		IMPORT_C TInt GetPasscodeRequireCharsAndNumbers( TBool& aRequire );
+		
+		/**
+		* Set the amount of maximum repeated characters in the passcode.
+		* 0 = No restriction
+		* 1-4 = A single character cannot be used more than X times in the password
+		*/
+		IMPORT_C TInt SetPasscodeMaxRepeatedCharacters( TInt32 aMaxChars );
+		
+		/**
+		* Get the amount of maximum repeated characters in the passcode
+		* 0 = No restriction
+		* 1-4 = A single character cannot be used more than X times in the password
+		*/
+		IMPORT_C TInt GetPasscodeMaxRepeatedCharacters( TInt32& aMaxChars );
+		
+		
+		/**
+		* Set the length of the passcode history buffer.
+		* The new password cannot match the previous X passwords.
+		*/
+		IMPORT_C TInt SetPasscodeHistoryBuffer( TInt32 aBufferLength );
+		
+		/**
+		* Get the length of the passcode history buffer
+		* The new password cannot match the previous X passwords.
+		*/
+		IMPORT_C TInt GetPasscodeHistoryBuffer( TInt32& aBufferLength );
+		
+		
+		/**
+		* Set passcode expiration time. The password expires after X days.
+		* 0 = No restriction.
+		* 1-365 = The password expires after X days.
+		* -1 = password expires immediately
+		*/
+		IMPORT_C TInt SetPasscodeExpiration( TInt32 aExpiration );
+		
+		/**
+		* Get passcode expiration time. The password expires after X days.
+		* 0 = No restriction.
+		* 1-365 = The password expires after X days.
+		*/
+		IMPORT_C TInt GetPasscodeExpiration( TInt32& aExpiration );
+		
+		
+		/**
+		* Set the minumum change tolerance for passcode change.
+		* The user can change the password only X times before 
+		* PasscodeMinChangeInterval hours have passed.
+		*/
+		IMPORT_C TInt SetPasscodeMinChangeTolerance( TInt32 aMinTolerance );
+		
+		/**
+		* Get the minumum change tolerance for passcode change.
+		* The user can change the password only X times before 
+		* PasscodeMinChangeInterval hours have passed.
+		*/
+		IMPORT_C TInt GetPasscodeMinChangeTolerance( TInt32& aMinTolerance );
+		
+		/**
+		* Set passcode minumum change iterval.
+		* 0 = No restriction.
+		* 1-1000 = The user cannot change the password more than 
+		* 		   PasscodeMinChangeTolerance times before X hours 
+		*		   have passed since the previous change.
+		*/
+		IMPORT_C TInt SetPasscodeMinChangeInterval( TInt32 aMinInterval);
+		
+		/**
+		* Get passcode minumum change iterval.
+		* 0 = No restriction.
+		* 1-1000 = The user cannot change the password more than 
+		* 		   PasscodeMinChangeTolerance times before X hours 
+		*		   have passed since the previous change.
+		*/
+		IMPORT_C TInt GetPasscodeMinChangeInterval( TInt32& aMinInterval );
+		
+		
+		/**
+		* Set if the passcode is checked not to contain specific strings.
+		*/
+		IMPORT_C TInt SetPasscodeCheckSpecificStrings( TBool aCheckSpecificStrings );
+		
+		/**
+		* Check if the passcode is checked not to contain specific strings.
+		*/
+		IMPORT_C TInt GetPasscodeCheckSpecificStrings( TBool& aCheckSpecificStrings );
+		
+		
+		/**
+		* Disallow the specific string/strings given.
+		* Individual strings can be separated with ";".
+		*/
+		IMPORT_C TInt DisallowSpecificPasscodeString( const TDesC8 &aString );
+		
+		
+		/**
+		* Re-allow the specific string/strings given.
+		* Individual strings can be separated with ";".
+		*/
+		IMPORT_C TInt AllowSpecificPasscodeString( const TDesC8 &aString );
+		
+
+		/**
+		* Clears the specific passcode strings.
+		*/
+		IMPORT_C TInt ClearSpecificPasscodeStrings();
+		
+		
+		/**
+		* Set the amount how many times the user may attempt to enter the passcode.
+		* 0 = No restriction
+		* 3-100 = The device is "hard" reset after the user has consecutively 
+		* failed X times to answer the password query
+		*/
+		IMPORT_C TInt SetPasscodeMaxAttempts( TInt32 aMaxAttempts );
+		
+		/**
+		* Set the amount how many times the user may attempt to enter the passcode.
+		* 0 = No restriction
+		* 3-100 = The device is "hard" reset after the user has consecutively 
+		* failed X times to answer the password query
+		*/
+		IMPORT_C TInt GetPasscodeMaxAttempts( TInt32& aMaxAttempts );
+		
+		/**
+		* 0 = No restriction, 1 = The password cannot contain two consecutive numbers
+		*/
+		IMPORT_C TInt SetPasscodeConsecutiveNumbers( TBool aConsecutiveNumbers );
+		
+		/**
+		* 0 = No restriction, 1 = The password cannot contain two consecutive numbers
+		*/
+		IMPORT_C TInt GetPasscodeConsecutiveNumbers( TBool& aConsecutiveNumbers );
+
+        /**
+        * Set the amount of minimum special characters in the passcode.
+        * 0 = No restriction
+        * 1-255 = Password should contain at least X number of special characters.
+        */
+        IMPORT_C TInt SetPasscodeMinSpecialCharacters( TInt32 aMinChars );
+        
+        /**
+        * Get the amount of minimum special characters in the passcode.
+        * 0 = No restriction
+        * 1-255 = Password should contain at least X number of special characters.
+        */
+        IMPORT_C TInt GetPasscodeMinSpecialCharacters( TInt32& aMinChars );
+        /**
+        * 0 = No restriction, 1 = The password cannot be a simple string
+        */
+        IMPORT_C TInt SetPasscodeDisallowSimple( TBool aDisallowSimple );
+        		
+        /**
+        * 0 = No restriction, 1 = The password cannot be a simple string
+        */
+        IMPORT_C TInt GetPasscodeDisallowSimple( TBool& aDisallowSimple );
+//#endif
+// --------- Enhanced features END --------------------
+		
+
+        /**
+		* Get process list
+        */
+		IMPORT_C TInt GetProcessListL( CBufFlat* aBuffer );
+
+        /**
+		* Get process list size
+        */
+		IMPORT_C TInt GetProcessListSize( TInt &aSize );
+
+        /**
+		* Get process list size
+        */
+		IMPORT_C TInt GetProcessListSize( TDes8 &aSizeBuf );
+
+        /**
+		* Get process information
+        */
+		IMPORT_C TInt GetProcessDataL( CBufFlat* aBuffer, const TDesC8& aProcessName, const TDesC8 &aData );
+
+        /**
+		* Reboot device, restart actually happens after subsession is closed
+        */
+		IMPORT_C TInt RebootDevice( TBool aRestartDevice=ETrue );
+
+        /**
+		* Start local operation (new process)
+        */
+		IMPORT_C TInt StartNewProcess( TBool aIsUid, const TDesC8& aProcessName );
+
+        /**
+		* Stop local operation (in process list)
+        */
+		IMPORT_C TInt StopProcess( TBool aIsUid, const TDesC8& aProcessName );
+
+};
+
+#endif //__TERMINALCONTROLCLIENT_H__