|
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 |