diff -r 000000000000 -r af10295192d8 networksecurity/tlsprovider/Test/src/TlsProvTestStep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networksecurity/tlsprovider/Test/src/TlsProvTestStep.h Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,261 @@ +/** +* Copyright (c) 2003-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: +* +*/ + + + +/** + @file TlsProvTestStep.h +*/ +#if (!defined __TLSPROV_STEP_H__) +#define __TLSPROV_STEP_H__ +#include +#include "TlsProvServer.h" + +#include "tlstypedef.h" +#include "tlsprovinterface.h" +#include +#include +#include + +// common constants +#define KServer1 _L8("192.168.30.2") +#define KServer2 _L8("192.168.10.11") + +#define KServer3 _L8("192.168.10.210") + +#define KSupportedCipherCount (11+1+2) //Including test ciphers + +#define KSessionId1 _L8("11111111112222222222333333333322") +#define KSessionId2 _L8("222222222233333333334444444444") +#define KSessionId3 _L8("33333333334444444444555555555522") +#define KSessionId4 _L8("444444444455555555556666666666") +#define KSessionId5 _L8("55555555556666666666777777777722") +#define KSessionId6 _L8("66666666667777777777888888888822") + +// forward declarations: +class CTlsProvStep; + +class CTlsProvTestActive : public CActive + { +public: + CTlsProvTestActive( CTestExecuteLogger& aLogger ); + ~CTlsProvTestActive(); + + + TVerdict doTest2_0L( CTlsProvStep* aStep ); + TVerdict doTest4_0L( CTlsProvStep* aStep ); + TVerdict doTest4_1L( CTlsProvStep* aStep ); + TVerdict doTest4_2L( CTlsProvStep* aStep ); + TVerdict doTest4_3L( CTlsProvStep* aStep ); + TVerdict doTest4_4L( CTlsProvStep* aStep ); + TVerdict doTest4_5L( CTlsProvStep* aStep ); + TVerdict doTest4_6L( CTlsProvStep* aStep ); + TVerdict doTest5_2L( CTlsProvStep* aStep ); + TVerdict doTest5_3L( CTlsProvStep* aStep ); + TVerdict doTest5_4L( CTlsProvStep* aStep ); + TVerdict doTest5_5L( CTlsProvStep* aStep ); + + TVerdict doTest7_0L( CTlsProvStep* aStep ); + TVerdict doTest7_1L( CTlsProvStep* aStep ); + TVerdict doTest7_2L( CTlsProvStep* aStep ); + TVerdict doTest7_3L( CTlsProvStep* aStep ); + + + + TVerdict doTest8_1L( CTlsProvStep* aStep ); + + TVerdict doTest9_0L( CTlsProvStep* aStep ); + + TVerdict doTest10_0L( CTlsProvStep* aStep ); + TVerdict doTest10_1L( CTlsProvStep* aStep ); + + //*************************************Provider Tests***************************************** + + //Tests for obtaining the list of ciphersuites + TVerdict doTest1_0L( CTlsProvStep* aStep ); + TVerdict doTest1_1L( CTlsProvStep* aStep ); + + //Tests for invalid paramers from handshake, selecting a token, certificate,session resumption, etc + TVerdict TestProvider_3_0L( CTlsProvStep* aStep ); + TVerdict TestProvider_3_1L( CTlsProvStep* aStep ); + TVerdict TestProvider_3_2L( CTlsProvStep* aStep ); + TVerdict TestProvider_3_3L( CTlsProvStep* aStep ); + + //Tests for verifying a server certificate in both valid and invalid modes + TVerdict doTest5_0L( CTlsProvStep* aStep ); + TVerdict doTest5_1L( CTlsProvStep* aStep ); + + //Tests for Encryption, Decryption, MAC computation and export Key generation + TVerdict TestProvider_6_0L( CTlsProvStep* aStep ); + TVerdict TestProvider_6_1L( CTlsProvStep* aStep ); + TVerdict TestProvider_6_2L( CTlsProvStep* aStep ); + TVerdict TestProvider_6_3L( CTlsProvStep* aStep ); + TVerdict EncryptAndDecryptL(CTLSSession* aPtrTlsSession, CTlsProvStep* aStep); + + + //Helper functions + void ConfigureTLS(TBool aIsExport, CTlsProvStep* aStep); + void ConfigureSSL(TBool aIsExport, CTlsProvStep* aStep); + TVerdict InitProviderL(CTLSProvider*& aPtrProvider,CTLSSession*& aPtrSession,CTlsCryptoAttributes*& aTlsCryptoAttributes, + TBool aIsTls, TBool aIsExport,CTlsProvStep* aStep); + TInt StandardTestInitL( CTlsProvStep* aStep, + CTlsCryptoAttributes* tlsCryptoAttributes, + HBufC8*& aEncServerCert); + TBool CacheSessionL(CTlsProvStep* aStep, + CTLSSession* aSessionObj); + + void DeleteFileL(); + void WriteDialogRecordL(RFileWriteStream& aStream, TSecurityDialogOperation aOp, const TDesC& aLabelSpec,const TDesC& aResponse1, const TDesC& aResponse2); + + //******************************************************************************************** + + + //Active + void DoCancel() { return; }; + void RunL(); + void AddDNL(); + + CTestExecuteLogger& Logger(){return iLogger;} + //Log buffer + TBuf<150> iLogInfo; + CTestExecuteLogger& iLogger; + TBool iDialogNonAttendedMode; + TPtrC iExpectedResult; + RFs iFs; + RFile iFile; + RPointerArray iDNs; + TPtrC iIssuerName; + TPtrC iKeyDerivation128; + TPtrC iKeyDerivation64; +private: + + }; + + +class CTlsProvStep : public CTestStep + { +public: + CTlsProvStep(const TDesC& aStepName); + ~CTlsProvStep(); + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + virtual TVerdict doTestStepL(); + TInt ReadDataForCreateL(CTlsCryptoAttributes*& aTlsCryptoAttributes, + HBufC8*& aSrvCert); + TInt ReadDataForSrvFinishedL(HBufC8*& aVerifySrvFinInput, + HBufC8*& aSrvFinishedMsg ); + TInt ReadDataForClntFinishedL(HBufC8*& aClntFinInput, + HBufC8*& aClntFinishedMsg ); + TInt ReadClientKeyExchL(HBufC8*& aClientKeyExchMsg ); + +public: + TPtrC iServerRnd; + TPtrC iClientRnd; + TPtrC iKeyParam1; + TPtrC iKeyParam2; + TPtrC iKeyParam3; + TPtrC iServerCertChain; + TPtrC iHandshakeMsgsServer; + TPtrC iSrvFinishedCheckOutput; + TPtrC iHandshakeMsgsClient; + TPtrC iClntFinishedCheckOutput; + TPtrC iPremaster; + TPtrC iClientKeyExch; +private: + TVerdict verdict; + }; + + +class CTlsTestRandom : public CRandom + { +public: + virtual void GenerateBytesL(TDes8& aDest); + }; + + +class CTlsProvStep1 : public CTestStep + { +public: + CTlsProvStep1(); + ~CTlsProvStep1(); + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + virtual TVerdict doTestStepL(); +private: + }; + +class CTlsProvStep2 : public CTestStep + { +public: + CTlsProvStep2(); + ~CTlsProvStep2(); + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + virtual TVerdict doTestStepL(); +private: + + }; + + + +_LIT(KTlsTestStep1,"TlsTestStep1"); +_LIT(KTlsTestStep2,"TlsTestStep2"); + +_LIT(KTlsTestStep1_0,"TlsTestStep1.0"); +_LIT(KTlsTestStep1_1,"TlsTestStep1.1"); + +_LIT(KTlsTestStep2_0,"TlsTestStep2.0"); +_LIT(KTlsTestStep3_0,"TlsTestStep3.0"); +_LIT(KTlsTestStep3_1,"TlsTestStep3.1"); +_LIT(KTlsTestStep3_2,"TlsTestStep3.2"); +_LIT(KTlsTestStep3_3,"TlsTestStep3.3"); + +_LIT(KTlsTestStep4_0,"TlsTestStep4.0"); +_LIT(KTlsTestStep4_1,"TlsTestStep4.1"); +_LIT(KTlsTestStep4_2,"TlsTestStep4.2"); +_LIT(KTlsTestStep4_3,"TlsTestStep4.3"); +_LIT(KTlsTestStep4_4,"TlsTestStep4.4"); +_LIT(KTlsTestStep4_5,"TlsTestStep4.5"); +_LIT(KTlsTestStep4_6,"TlsTestStep4.6"); + +_LIT(KTlsTestStep5_0,"TlsTestStep5.0"); +_LIT(KTlsTestStep5_1,"TlsTestStep5.1"); + +_LIT(KTlsTestStep5_2,"TlsTestStep5.2"); +_LIT(KTlsTestStep5_3,"TlsTestStep5.3"); +_LIT(KTlsTestStep5_4,"TlsTestStep5.4"); +_LIT(KTlsTestStep5_5,"TlsTestStep5.5"); +_LIT(KTlsTestStep6_0,"TlsTestStep6.0"); +_LIT(KTlsTestStep6_1,"TlsTestStep6.1"); +_LIT(KTlsTestStep6_2,"TlsTestStep6.2"); +_LIT(KTlsTestStep6_3,"TlsTestStep6.3"); + +_LIT(KTlsTestStep7_0,"TlsTestStep7.0"); +_LIT(KTlsTestStep7_1,"TlsTestStep7.1"); +_LIT(KTlsTestStep7_2,"TlsTestStep7.2"); +_LIT(KTlsTestStep7_3,"TlsTestStep7.3"); +//_LIT(KTlsTestStep8_0,"TlsTestStep8.0"); - covered by 5.2 +_LIT(KTlsTestStep8_1,"TlsTestStep8.1"); +//_LIT(KTlsTestStep8_2,"TlsTestStep8.2"); - covered by 5.4 +_LIT(KTlsTestStep9_0,"TlsTestStep9.0"); + +_LIT(KTlsTestStep10_0,"TlsTestStep10.0"); +_LIT(KTlsTestStep10_1,"TlsTestStep10.1"); + +_LIT(KTlsSecureConnectionTestStep,"TSecureConnection"); + +#endif