networksecurity/tlsprovider/Test/src/TlsProvTestStep.h
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 /**
       
     2 * Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 /**
       
    21  @file TlsProvTestStep.h
       
    22 */
       
    23 #if (!defined __TLSPROV_STEP_H__)
       
    24 #define __TLSPROV_STEP_H__
       
    25 #include <test/testexecutestepbase.h>
       
    26 #include "TlsProvServer.h"
       
    27 
       
    28 #include "tlstypedef.h"
       
    29 #include "tlsprovinterface.h"
       
    30 #include <random.h>
       
    31 #include <s32file.h> 
       
    32 #include <secdlgimpldefs.h>
       
    33 
       
    34 // common constants 
       
    35 #define KServer1  _L8("192.168.30.2")
       
    36 #define KServer2  _L8("192.168.10.11")
       
    37 
       
    38 #define KServer3  _L8("192.168.10.210")
       
    39 
       
    40 #define KSupportedCipherCount  (11+1+2)   //Including test ciphers
       
    41 
       
    42 #define KSessionId1 _L8("11111111112222222222333333333322")
       
    43 #define KSessionId2 _L8("222222222233333333334444444444")
       
    44 #define KSessionId3 _L8("33333333334444444444555555555522")
       
    45 #define KSessionId4 _L8("444444444455555555556666666666")
       
    46 #define KSessionId5 _L8("55555555556666666666777777777722")
       
    47 #define KSessionId6 _L8("66666666667777777777888888888822")
       
    48 
       
    49 // forward declarations:
       
    50 class CTlsProvStep;
       
    51 
       
    52 class CTlsProvTestActive : public CActive
       
    53 	{
       
    54 public:
       
    55 	CTlsProvTestActive( CTestExecuteLogger& aLogger );
       
    56 	~CTlsProvTestActive();
       
    57 	
       
    58 	
       
    59 	TVerdict doTest2_0L( CTlsProvStep* aStep );	
       
    60 	TVerdict doTest4_0L( CTlsProvStep* aStep );
       
    61 	TVerdict doTest4_1L( CTlsProvStep* aStep );
       
    62 	TVerdict doTest4_2L( CTlsProvStep* aStep );
       
    63 	TVerdict doTest4_3L( CTlsProvStep* aStep );
       
    64 	TVerdict doTest4_4L( CTlsProvStep* aStep );
       
    65 	TVerdict doTest4_5L( CTlsProvStep* aStep );
       
    66 	TVerdict doTest4_6L( CTlsProvStep* aStep );	
       
    67 	TVerdict doTest5_2L( CTlsProvStep* aStep );
       
    68 	TVerdict doTest5_3L( CTlsProvStep* aStep );
       
    69 	TVerdict doTest5_4L( CTlsProvStep* aStep );
       
    70 	TVerdict doTest5_5L( CTlsProvStep* aStep );
       
    71 	
       
    72 	TVerdict doTest7_0L( CTlsProvStep* aStep );
       
    73 	TVerdict doTest7_1L( CTlsProvStep* aStep );
       
    74 	TVerdict doTest7_2L( CTlsProvStep* aStep );
       
    75 	TVerdict doTest7_3L( CTlsProvStep* aStep );
       
    76 		
       
    77 
       
    78 	
       
    79 	TVerdict doTest8_1L( CTlsProvStep* aStep );
       
    80 	
       
    81 	TVerdict doTest9_0L( CTlsProvStep* aStep );
       
    82 	
       
    83 	TVerdict doTest10_0L( CTlsProvStep* aStep );
       
    84 	TVerdict doTest10_1L( CTlsProvStep* aStep );
       
    85 
       
    86 	//*************************************Provider Tests*****************************************
       
    87 	
       
    88 	//Tests for obtaining the list of ciphersuites
       
    89 	TVerdict doTest1_0L( CTlsProvStep* aStep );
       
    90 	TVerdict doTest1_1L( CTlsProvStep* aStep );
       
    91 
       
    92 	//Tests for invalid paramers from handshake, selecting a token, certificate,session resumption, etc
       
    93 	TVerdict TestProvider_3_0L( CTlsProvStep* aStep );
       
    94 	TVerdict TestProvider_3_1L( CTlsProvStep* aStep );
       
    95 	TVerdict TestProvider_3_2L( CTlsProvStep* aStep );
       
    96 	TVerdict TestProvider_3_3L( CTlsProvStep* aStep );
       
    97 
       
    98 	//Tests for verifying a server certificate in both valid and invalid modes
       
    99 	TVerdict doTest5_0L( CTlsProvStep* aStep );
       
   100 	TVerdict doTest5_1L( CTlsProvStep* aStep );
       
   101 	
       
   102 	//Tests for Encryption, Decryption, MAC computation and export Key generation
       
   103 	TVerdict TestProvider_6_0L( CTlsProvStep* aStep );
       
   104 	TVerdict TestProvider_6_1L( CTlsProvStep* aStep );
       
   105 	TVerdict TestProvider_6_2L( CTlsProvStep* aStep );
       
   106 	TVerdict TestProvider_6_3L( CTlsProvStep* aStep );
       
   107 	TVerdict EncryptAndDecryptL(CTLSSession* aPtrTlsSession, CTlsProvStep* aStep);
       
   108 
       
   109 	
       
   110 	//Helper functions
       
   111 	void ConfigureTLS(TBool aIsExport, CTlsProvStep* aStep);
       
   112 	void ConfigureSSL(TBool aIsExport, CTlsProvStep* aStep);
       
   113 	TVerdict InitProviderL(CTLSProvider*& aPtrProvider,CTLSSession*& aPtrSession,CTlsCryptoAttributes*& aTlsCryptoAttributes,
       
   114 							TBool aIsTls, TBool aIsExport,CTlsProvStep* aStep);
       
   115 	TInt StandardTestInitL( CTlsProvStep* aStep,
       
   116 							CTlsCryptoAttributes* tlsCryptoAttributes, 
       
   117 							HBufC8*& aEncServerCert);
       
   118 	TBool CacheSessionL(CTlsProvStep* aStep, 
       
   119 						CTLSSession* aSessionObj);
       
   120 
       
   121 	void DeleteFileL();
       
   122 	void WriteDialogRecordL(RFileWriteStream& aStream, TSecurityDialogOperation aOp, const TDesC& aLabelSpec,const TDesC& aResponse1, const TDesC& aResponse2);	
       
   123 	
       
   124 	//********************************************************************************************
       
   125 	
       
   126 	
       
   127 	//Active
       
   128 	void DoCancel() { return; };
       
   129 	void RunL();
       
   130 	void AddDNL();
       
   131 	
       
   132    CTestExecuteLogger& Logger(){return iLogger;}
       
   133 	//Log buffer
       
   134 	TBuf<150> iLogInfo;
       
   135    CTestExecuteLogger& iLogger;
       
   136    TBool iDialogNonAttendedMode;
       
   137    TPtrC iExpectedResult;
       
   138    RFs iFs;
       
   139    RFile iFile;
       
   140 	RPointerArray<HBufC8> iDNs;
       
   141    TPtrC iIssuerName;
       
   142    TPtrC iKeyDerivation128;
       
   143    TPtrC iKeyDerivation64;
       
   144 private:
       
   145 	
       
   146 	};
       
   147 
       
   148 
       
   149 class CTlsProvStep : public CTestStep
       
   150 	{
       
   151 public:
       
   152 	CTlsProvStep(const TDesC& aStepName);
       
   153 	~CTlsProvStep();
       
   154 	virtual TVerdict doTestStepPreambleL();
       
   155 	virtual TVerdict doTestStepPostambleL();
       
   156 	virtual TVerdict doTestStepL();
       
   157 	TInt ReadDataForCreateL(CTlsCryptoAttributes*& aTlsCryptoAttributes,
       
   158 							HBufC8*& aSrvCert);
       
   159 	TInt ReadDataForSrvFinishedL(HBufC8*& aVerifySrvFinInput,
       
   160 								HBufC8*& aSrvFinishedMsg );
       
   161 	TInt ReadDataForClntFinishedL(HBufC8*& aClntFinInput,
       
   162 								HBufC8*& aClntFinishedMsg );
       
   163 	TInt ReadClientKeyExchL(HBufC8*& aClientKeyExchMsg );
       
   164 								
       
   165 public:
       
   166 	TPtrC iServerRnd;
       
   167 	TPtrC iClientRnd;
       
   168 	TPtrC iKeyParam1;
       
   169 	TPtrC iKeyParam2;
       
   170 	TPtrC iKeyParam3;
       
   171 	TPtrC iServerCertChain;
       
   172 	TPtrC iHandshakeMsgsServer;
       
   173 	TPtrC iSrvFinishedCheckOutput;
       
   174 	TPtrC iHandshakeMsgsClient;
       
   175 	TPtrC iClntFinishedCheckOutput;
       
   176 	TPtrC iPremaster;
       
   177 	TPtrC iClientKeyExch;
       
   178 private:
       
   179 	TVerdict verdict;
       
   180 	};
       
   181 
       
   182 
       
   183 class CTlsTestRandom : public CRandom
       
   184 	{
       
   185 public:
       
   186 	virtual void GenerateBytesL(TDes8& aDest);
       
   187 	};
       
   188 	
       
   189 	
       
   190 class CTlsProvStep1 : public CTestStep
       
   191 	{
       
   192 public:
       
   193 	CTlsProvStep1();
       
   194 	~CTlsProvStep1();
       
   195 	virtual TVerdict doTestStepPreambleL();
       
   196 	virtual TVerdict doTestStepPostambleL();
       
   197 	virtual TVerdict doTestStepL();
       
   198 private:
       
   199 	};
       
   200 
       
   201 class CTlsProvStep2 : public CTestStep
       
   202 	{
       
   203 public:
       
   204 	CTlsProvStep2();
       
   205 	~CTlsProvStep2();
       
   206 	virtual TVerdict doTestStepPreambleL();
       
   207 	virtual TVerdict doTestStepPostambleL();
       
   208 	virtual TVerdict doTestStepL();
       
   209 private:
       
   210 	
       
   211 	};
       
   212 	
       
   213 
       
   214 
       
   215 _LIT(KTlsTestStep1,"TlsTestStep1");
       
   216 _LIT(KTlsTestStep2,"TlsTestStep2");
       
   217 
       
   218 _LIT(KTlsTestStep1_0,"TlsTestStep1.0");
       
   219 _LIT(KTlsTestStep1_1,"TlsTestStep1.1");
       
   220 
       
   221 _LIT(KTlsTestStep2_0,"TlsTestStep2.0");
       
   222 _LIT(KTlsTestStep3_0,"TlsTestStep3.0");
       
   223 _LIT(KTlsTestStep3_1,"TlsTestStep3.1");
       
   224 _LIT(KTlsTestStep3_2,"TlsTestStep3.2");
       
   225 _LIT(KTlsTestStep3_3,"TlsTestStep3.3");
       
   226 
       
   227 _LIT(KTlsTestStep4_0,"TlsTestStep4.0");
       
   228 _LIT(KTlsTestStep4_1,"TlsTestStep4.1");
       
   229 _LIT(KTlsTestStep4_2,"TlsTestStep4.2");
       
   230 _LIT(KTlsTestStep4_3,"TlsTestStep4.3");
       
   231 _LIT(KTlsTestStep4_4,"TlsTestStep4.4");
       
   232 _LIT(KTlsTestStep4_5,"TlsTestStep4.5");
       
   233 _LIT(KTlsTestStep4_6,"TlsTestStep4.6");
       
   234 
       
   235 _LIT(KTlsTestStep5_0,"TlsTestStep5.0");
       
   236 _LIT(KTlsTestStep5_1,"TlsTestStep5.1");
       
   237 
       
   238 _LIT(KTlsTestStep5_2,"TlsTestStep5.2");
       
   239 _LIT(KTlsTestStep5_3,"TlsTestStep5.3");
       
   240 _LIT(KTlsTestStep5_4,"TlsTestStep5.4");
       
   241 _LIT(KTlsTestStep5_5,"TlsTestStep5.5");
       
   242 _LIT(KTlsTestStep6_0,"TlsTestStep6.0");
       
   243 _LIT(KTlsTestStep6_1,"TlsTestStep6.1");
       
   244 _LIT(KTlsTestStep6_2,"TlsTestStep6.2");
       
   245 _LIT(KTlsTestStep6_3,"TlsTestStep6.3");
       
   246 
       
   247 _LIT(KTlsTestStep7_0,"TlsTestStep7.0");
       
   248 _LIT(KTlsTestStep7_1,"TlsTestStep7.1");
       
   249 _LIT(KTlsTestStep7_2,"TlsTestStep7.2");
       
   250 _LIT(KTlsTestStep7_3,"TlsTestStep7.3");
       
   251 //_LIT(KTlsTestStep8_0,"TlsTestStep8.0"); - covered by 5.2 
       
   252 _LIT(KTlsTestStep8_1,"TlsTestStep8.1");
       
   253 //_LIT(KTlsTestStep8_2,"TlsTestStep8.2"); - covered by 5.4
       
   254 _LIT(KTlsTestStep9_0,"TlsTestStep9.0");
       
   255 
       
   256 _LIT(KTlsTestStep10_0,"TlsTestStep10.0");
       
   257 _LIT(KTlsTestStep10_1,"TlsTestStep10.1");
       
   258 
       
   259 _LIT(KTlsSecureConnectionTestStep,"TSecureConnection");
       
   260 
       
   261 #endif