pkiutilities/ocsp/test/command.h
changeset 0 164170e6151a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/ocsp/test/command.h	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,168 @@
+// Copyright (c) 2005-2009 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:
+// Takes a line from a script file representing a command and its parameters,
+// interprets it and applies them to the engine
+// 
+//
+
+/**
+ @file 
+ @internalTechnology
+*/
+
+#ifndef __TOCSP_COMMAND_H__
+#define __TOCSP_COMMAND_H__
+
+#include <e32base.h>
+#include <ocsp.h>
+#include "t_input.h"
+
+class CTOCSPEngine;
+class CTOCSPResult;
+class CTOCSPLogger;
+class RFs;
+
+class CTOCSPCommand : public CActive
+	{
+public:
+	static CTOCSPCommand* NewL(CTOCSPLogger& aLog,
+							   CTOCSPResult& aResult,
+							   TInt aTransaction = 0);
+	~CTOCSPCommand();
+
+	// Return False means abort, True means carry on as normal
+	TBool ProcessCommand(const TDesC& aLine, TRequestStatus& aStatus);
+
+    // Reset internal state after processing a whole script
+	// Need to call this to make sure last test result is recorded
+    void ResetL();
+
+    // Get the index of the current transaction we're processing
+    TInt CurrentTransaction() const;
+
+	/** Set whether to print informational messages. */
+	void SetVerbose(TBool aVerbose);
+
+private:
+	void RunL();
+	void DoCancel();
+    TInt RunError(TInt aError);
+
+private:
+	CTOCSPCommand(CTOCSPLogger& aLog,
+				  CTOCSPResult& aResult,
+				  TInt aTransaction);
+
+	void ConstructL();
+
+	TBool DoProcessCommandL(const TDesC& aLine);    
+	TBool ProcessTestCommandL(const TDesC& command);
+
+	// Command functions
+	void UnknownCommandL(const TDesC& aCommand);
+	void PrintCommandL(const TDesC& aMess);
+
+	void StartCommandL();
+	void EndCommandL();
+	void SetURICommandL();
+
+
+	void CertCommandL();
+	void SetTransportCommandL();
+	void SetTransportRetryCommandL();
+	void SetTransportTimeoutCommandL();
+	void SetNonceCommandL();
+
+	void CancelCommandL();
+
+	void ValidationDateCommandL();
+	void DirectAuthorisationCommandL();
+	void CADelegateAuthorisationCommandL();
+	void CADirectAuthorisationCommandL();
+	void AllAuthorisationSchemesCommandL();
+	void SetMaxStatusAgeCommandL();
+	void SetFilterParamsCommandL();
+	void CheckCommand();
+	void TestCancelCommand();
+	void TestSummaryCommandL();
+	void TestOutcomeCommandL();
+	void TestTransportCommandL();
+	void TestTransportRetryCommandL();
+
+	void LogResponseCommandL();
+	void LogRequestCommandL();
+
+	void LogCommandL(const TDesC& line);
+	
+	void FinishedTestL();
+
+	void WrongNumberOfArgumentsL();
+
+	TTime ParseTimeL(TInt aStartToken);
+	
+	void SetResponderCertCheck();
+	void AddCertToStoreL();
+	void SetCheckCertsWithAiaOnly();
+	void SetUseAIAL();
+	
+	void InvalidArgumentL(const TDesC& aCommand, const TDesC& aCommandOptions);
+	void InvalidArgumentL(const TDesC& aCommand);
+	void LogErrorL();
+	
+private:
+	enum TState 
+		{
+		EEngineStart,
+		EEngineEnd,
+		EDirectAuthorisationCommand,
+		ECheckCommand
+		};
+
+private:
+	TState iState;
+	TRequestStatus* iOriginalRequestStatus;
+
+	CTOCSPResult& iResult;
+
+	CTOCSPLogger& iLog;
+
+	CTOCSPEngine* iEngine;
+
+	RArray<TPtrC> iTokens;
+
+	TInt iSkipping;
+
+	TBool iInsideTest;
+    TInt iTestIndex;
+    TInt iTestToProcess;
+
+	TBool iTestResult;
+
+	TPtrC iCert;
+	TPtrC iLabel;
+
+	TBool iVerbose;
+	TBool iTransportSet;
+
+	// Contains result of cancellation (ETrue if revocation successfully cancelled)
+	TBool iCheckCancelled;
+	TInt iError;
+	TBuf<128> iTmsId;
+
+	};
+
+/** Use direct authorisation without supplying an authorising cert. */
+_LIT(KAuthCertNone, "AUTHCERTNONE");
+
+#endif