diff -r 000000000000 -r 2c201484c85f crypto/weakcrypto/test/tpbe/texternpbeparams.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crypto/weakcrypto/test/tpbe/texternpbeparams.h Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,99 @@ +/* +* 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 +#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