crypto/weakcryptospi/test/tsymmetric/cryptotestaction.h
changeset 8 35751d3474b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crypto/weakcryptospi/test/tsymmetric/cryptotestaction.h	Thu Sep 10 14:01:51 2009 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 1998-2009 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: 
+*
+*/
+
+
+#ifndef __CRYPTOTESTACTION_H__
+#define __CRYPTOTESTACTION_H__
+
+#include "t_testaction.h"
+#include "t_input.h"
+
+_LIT8(KVectorStart, "<vector>");
+_LIT8(KVectorEnd, "</vector>");
+_LIT8(KIncrementalStart, "<incremental>");
+_LIT8(KIncrementalEnd, "</incremental>");
+_LIT8(KKeyStart, "<key>");
+_LIT8(KKeyEnd, "</key>");
+_LIT8(KInputStart, "<input>");
+_LIT8(KInputEnd, "</input>");
+_LIT8(KOutputStart, "<output>");
+_LIT8(KOutputEnd, "</output>");
+_LIT8(KCipherTypeStart, "<ciphertype>");
+_LIT8(KCipherTypeEnd, "</ciphertype>");
+_LIT8(KIVStart, "<iv>");
+_LIT8(KIVEnd, "</iv>");
+_LIT8(KMonteCarloStart, "<MonteCarlo>");
+_LIT8(KMonteCarloEnd, "</MonteCarlo>");
+_LIT8(KEffKeyLenStart, "<effectiveKeyLength>");
+_LIT8(KEffKeyLenEnd, "</effectiveKeyLength>");
+_LIT8(KIterationsStart, "<iterations>");
+_LIT8(KIterationsEnd, "</iterations>");
+_LIT8(KRandDataSizeStart, "<randDataSize>"); //Used specifically in performance tests where random data is used rather than specific input and output data pairs
+_LIT8(KRandDataSizeEnd, "</randDataSize>");  //Used specifically in performance tests where random data is used rather than specific input and output data pairs
+
+
+class CCryptoTestAction : public CTestAction
+{
+public:
+	CCryptoTestAction(RFs& aFs, CConsoleBase& aConsole, Output& aOut);
+	~CCryptoTestAction();
+public:
+	virtual void ConstructL(const TTestActionSpec& aTestActionSpec);
+	virtual void DoPerformPrerequisite(TRequestStatus& aStatus);
+	virtual void DoPerformPostrequisite(TRequestStatus& aStatus);
+	virtual void PerformAction(TRequestStatus& aStatus);
+	virtual void DoReportAction(void);
+	virtual void DoCheckResult(TInt);
+	virtual void Reset(){}
+protected:	
+	virtual void DoPerformPrerequisiteL() = 0;
+	virtual void DoPerformActionL() = 0;
+	virtual void DoPerformPostrequisiteL() {}
+protected:
+	void Hex(HBufC8& string);
+	void DoInputParseL(TDesC8& aScriptBuffer);
+protected:
+	enum TCipherType
+	{
+		EDESECB,
+		EDESCBC,
+		E3DESECB,
+		E3DESCBC,
+		EAESECB,
+		EAESCBC,
+		EAESMonteCarloEncryptECB,	//	These extra categories have been added
+		EAESMonteCarloDecryptECB,	//	because the Monte-Carlo tests have to be
+		EAESMonteCarloEncryptCBC,	//	split between encrypt and decrypt scripts 
+		EAESMonteCarloDecryptCBC,	//	(too big for test framework in one chunk)
+		ERC2ECB,
+		ERC2CBC,
+		ERC4,
+		ECipherNull
+	};
+protected:
+	RFs& iFs;
+	HBufC8* iBody;
+	HBufC8* iKey;
+	HBufC8* iInput;
+	HBufC8* iOutput;
+	HBufC8* iIV;
+	HBufC8* iEResult;
+	HBufC8* iDResult;
+	TInt iEffectiveKeyLen;
+	TInt iIterationTime;
+	TInt iEncryptIterations;
+	TInt iDecryptIterations;
+	TCipherType iCipherType;
+	TTimeIntervalMicroSeconds iEncryptorCreateTime;
+	TTimeIntervalMicroSeconds iDecryptorCreateTime;
+	TInt iExpectedWeakResult;
+	TInt iRandDataSize;
+};
+
+#endif	//	__CRYPTOTESTACTION_H__