crypto/weakcrypto/test/tpbe/texternpbeparams.h
changeset 71 dd83586b62d6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crypto/weakcrypto/test/tpbe/texternpbeparams.h	Fri Jun 11 15:32:35 2010 +0300
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) 2006-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: 
+* Defines class used for testing pbe param internalization and externalization.
+*
+*/
+
+
+
+
+/**
+ @file
+*/
+
+#ifndef TEXTERNPBEPARAMS_H
+#define TEXTERNPBEPARAMS_H
+
+#include <pbedata.h>
+#include "t_testaction.h"
+#include "t_input.h"
+
+class CExternPbeParams : public CTestAction
+/**
+	This class tests thatn encryption parameters can be
+	successfully externalized and restored.  It is also used
+	to ensure pre-PKSC#12 parameters can be read when PKCS#12
+	is enabled.
+ */
+	{
+public:
+	static CTestAction* NewL(
+		RFs& aFs, CConsoleBase& aConsole,
+		Output& aOut, const TTestActionSpec& aTestActionSpec);
+	virtual ~CExternPbeParams();
+	
+	// implement CTestAction
+	virtual void PerformAction(TRequestStatus& aStatus);
+	virtual void DoReportAction();
+	virtual void DoCheckResult(TInt aError);
+	
+	// override CTestAction
+	virtual void DoPerformPrerequisite(TRequestStatus& aStatus);
+	virtual void DoPerformPostrequisite(TRequestStatus& aStatus);
+	
+private:
+	CExternPbeParams(CConsoleBase& aConsole, Output& aOut, RFs& aFs);
+	void ConstructL(const TTestActionSpec& aTestActionSpec);
+	
+	void DoPerformPrerequisiteL();
+	
+	static HBufC8* ReadHexStringL(const TDesC8& aBody, const TDesC8& aTag);
+	static TInt ReadDecStringL(const TDesC8& aBody, const TDesC8& aTag);
+	static HBufC8* ReadStringLC(const TDesC8& aBody, const TDesC8& aTag);
+	
+	CPBEncryptParms* InternalizeEncryptionParamsLC(const TDesC& aFileName);
+	void CompareAgainstTestFileL(const TDesC& aFileName, const CPBEncryptParms& aParams);
+	void TestDecodeMatchesScriptL(const TDesC& aFileName);
+	void TestReExternMatchesL(const TDesC& aFileName);
+	void TestScratchExternL(const TDesC& aFileName);
+	
+private:
+	/** File server session used to write params to, and read params from, files. */
+	RFs& iFs;
+	
+	/** Element body text. */
+	HBufC8* iBody;
+
+	/** Original externalized filename. */
+	HBufC8* iOrigFileName;
+	/** Numeric value of expected cipher. */
+	TInt iExpCipher;
+	/** Expected salt. */
+	HBufC8* iExpSalt;
+	/** Expected IV. */
+	HBufC8* iExpIv;
+	/** Expected iteration count. */
+	TInt iExpIterCount;
+	/**
+		Expected key derivation function.  This is not stored
+		as CPBEncryptParms::TKdf, which is not available when
+		SYMBIAN_PKCS12 is not defined.
+	 */
+	TInt iExpKdf;
+	};
+
+#endif	// #ifndef TEXTERNPBEPARAMS_H
+