First public contribution.
2 * Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "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".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
19 #include "testspecs.h"
21 //test chain superclass
22 CTestChain::CTestChain()
26 CTestChain::~CTestChain()
33 void CTestChain::ConstructL()
35 iServerCerts = new(ELeave) CDesCArrayFlat (1);
36 iRootCerts = new(ELeave) CDesCArrayFlat (1);
37 iExtraCerts = new(ELeave) CDesCArrayFlat (1);
41 CTestChainBuild* CTestChainBuild::NewL()
43 CTestChainBuild* self = CTestChainBuild::NewLC();
48 CTestChainBuild* CTestChainBuild::NewLC()
50 CTestChainBuild* self = new(ELeave) CTestChainBuild;
51 CleanupStack::PushL(self);
56 CTestChainBuild::~CTestChainBuild()
61 //test chain validate class
62 CTestChainValidate* CTestChainValidate::NewL()
64 CTestChainValidate* self = CTestChainValidate::NewLC();
69 CTestChainValidate* CTestChainValidate::NewLC()
71 CTestChainValidate* self = new(ELeave) CTestChainValidate;
72 CleanupStack::PushL(self);
77 void CTestChainValidate::ConstructL()
79 CTestChain::ConstructL();
80 iWarnings = new(ELeave)CArrayFixFlat<TValidationStatus> (1);
81 iPolicies = new(ELeave) CDesCArrayFlat (1);
84 CTestChainValidate::~CTestChainValidate()
96 CTestChainBuild* TestSpec::TestBuildSpec1()
98 CTestChainBuild* ret = CTestChainBuild::NewLC();
99 ret->iServerCerts->AppendL(KEE);
100 ret->iServerCerts->AppendL(KCA1);
101 ret->iServerCerts->AppendL(KCA2);
102 ret->iRootCerts->AppendL(KRoot);
103 const TPtrC name(KCorrectFile1);
104 ret->iCorrectChain = name.AllocL();
109 CTestChainBuild* TestSpec::TestBuildSpec2()
111 CTestChainBuild* ret = CTestChainBuild::NewLC();
112 ret->iServerCerts->AppendL(KEE);
113 ret->iServerCerts->AppendL(KCA2);
114 ret->iServerCerts->AppendL(KCA1);
115 ret->iRootCerts->AppendL(KRoot);
116 const TPtrC name(KCorrectFile1);
117 ret->iCorrectChain = name.AllocL();
122 CTestChainBuild* TestSpec::TestBuildSpec3()
124 CTestChainBuild* ret = CTestChainBuild::NewLC();
125 ret->iServerCerts->AppendL(KEE);
126 ret->iServerCerts->AppendL(KCA1);
127 ret->iExtraCerts->AppendL(KCA2);
128 ret->iRootCerts->AppendL(KRoot);
129 const TPtrC name(KCorrectFile1);
130 ret->iCorrectChain = name.AllocL();
135 CTestChainBuild* TestSpec::TestBuildSpec4()
137 CTestChainBuild* ret = CTestChainBuild::NewLC();
138 ret->iServerCerts->AppendL(KEE);
139 ret->iServerCerts->AppendL(KCA2);
140 ret->iExtraCerts->AppendL(KCA1);
141 ret->iRootCerts->AppendL(KRoot);
142 const TPtrC name(KCorrectFile1);
143 ret->iCorrectChain = name.AllocL();
148 CTestChainBuild* TestSpec::TestBuildSpec5()
150 CTestChainBuild* ret = CTestChainBuild::NewLC();
151 ret->iServerCerts->AppendL(KEE);
152 ret->iServerCerts->AppendL(KCA1);
153 ret->iServerCerts->AppendL(KCA2);
154 ret->iServerCerts->AppendL(KRoot);
155 ret->iRootCerts->AppendL(KRoot);
156 const TPtrC name(KCorrectFile1);
157 ret->iCorrectChain = name.AllocL();
162 CTestChainBuild* TestSpec::TestBuildSpec6()
164 CTestChainBuild* ret = CTestChainBuild::NewLC();
165 ret->iServerCerts->AppendL(KEE);
166 ret->iServerCerts->AppendL(KRoot);
167 ret->iServerCerts->AppendL(KCA2);
168 ret->iServerCerts->AppendL(KCA1);
169 ret->iRootCerts->AppendL(KRoot);
170 const TPtrC name(KCorrectFile1);
171 ret->iCorrectChain = name.AllocL();
176 CTestChainBuild* TestSpec::TestBuildSpec7()
178 CTestChainBuild* ret = CTestChainBuild::NewLC();
179 ret->iServerCerts->AppendL(KEE);
180 ret->iServerCerts->AppendL(KCA1);
181 ret->iServerCerts->AppendL(KCA2SameDN);
182 ret->iServerCerts->AppendL(KCA2);
183 ret->iRootCerts->AppendL(KRoot);
184 const TPtrC name(KCorrectFile1);
185 ret->iCorrectChain = name.AllocL();
190 CTestChainBuild* TestSpec::TestBuildSpec8()
192 CTestChainBuild* ret = CTestChainBuild::NewLC();
193 ret->iServerCerts->AppendL(KEE);
194 ret->iServerCerts->AppendL(KCA2SameDN);
195 ret->iServerCerts->AppendL(KCA1);
196 ret->iServerCerts->AppendL(KCA2);
197 ret->iRootCerts->AppendL(KRoot);
198 const TPtrC name(KCorrectFile1);
199 ret->iCorrectChain = name.AllocL();
204 CTestChainBuild* TestSpec::TestBuildSpec9()
206 CTestChainBuild* ret = CTestChainBuild::NewLC();
207 ret->iServerCerts->AppendL(KEE);
208 ret->iServerCerts->AppendL(KCA1);
209 ret->iServerCerts->AppendL(KCA2SameDN);
210 ret->iExtraCerts->AppendL(KCA2);
211 ret->iRootCerts->AppendL(KRoot);
212 const TPtrC name(KCorrectFile1);
213 ret->iCorrectChain = name.AllocL();
218 CTestChainBuild* TestSpec::TestBuildSpec10()
220 CTestChainBuild* ret = CTestChainBuild::NewLC();
221 ret->iServerCerts->AppendL(KEE);
222 ret->iServerCerts->AppendL(KCA1);
223 ret->iServerCerts->AppendL(KCA2);
224 ret->iExtraCerts->AppendL(KCA2SameDN);
225 ret->iRootCerts->AppendL(KRoot);
226 const TPtrC name(KCorrectFile1);
227 ret->iCorrectChain = name.AllocL();
232 CTestChainBuild* TestSpec::TestBuildSpec11()
234 CTestChainBuild* ret = CTestChainBuild::NewLC();
235 ret->iServerCerts->AppendL(KEE);
236 ret->iServerCerts->AppendL(KCA2);
237 ret->iServerCerts->AppendL(KCA1);
238 ret->iExtraCerts->AppendL(KCA1SameDN);
239 ret->iRootCerts->AppendL(KRoot);
240 const TPtrC name(KCorrectFile1);
241 ret->iCorrectChain = name.AllocL();
246 CTestChainBuild* TestSpec::TestBuildSpec12()
248 CTestChainBuild* ret = CTestChainBuild::NewLC();
249 ret->iServerCerts->AppendL(KEE);
250 ret->iServerCerts->AppendL(KCA2);
251 ret->iServerCerts->AppendL(KCA1SameDN);
252 ret->iExtraCerts->AppendL(KCA1);
253 ret->iRootCerts->AppendL(KRoot);
254 const TPtrC name(KCorrectFile1);
255 ret->iCorrectChain = name.AllocL();
261 CTestChainValidate* TestSpec::TestValidateSpec1()
263 CTestChainValidate* ret = CTestChainValidate::NewLC();
264 ret->iServerCerts->AppendL(KFortezzaCA1EE1);
265 ret->iServerCerts->AppendL(KFortezzaPCA1);
266 ret->iServerCerts->AppendL(KFortezzaCA1);
267 ret->iRootCerts->AppendL(KFortezzaPAA1);
268 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
269 ret->iError = status;
274 CTestChainValidate* TestSpec::TestValidateSpec2()
276 CTestChainValidate* ret = CTestChainValidate::NewLC();
277 ret->iServerCerts->AppendL(KFortezzaCA1EE2);
278 ret->iServerCerts->AppendL(KFortezzaPCA1);
279 ret->iServerCerts->AppendL(KFortezzaCA1);
280 ret->iRootCerts->AppendL(KFortezzaPAA1);
281 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
282 ret->iError = status;
287 CTestChainValidate* TestSpec::TestValidateSpec3()
289 CTestChainValidate* ret = CTestChainValidate::NewLC();
290 ret->iServerCerts->AppendL(KFortezzaExpired);
291 ret->iServerCerts->AppendL(KFortezzaPCA1);
292 ret->iServerCerts->AppendL(KFortezzaCA1);
293 ret->iRootCerts->AppendL(KFortezzaPAA1);
294 TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
295 ret->iError = status;
300 CTestChainValidate* TestSpec::TestValidateSpec4()
302 CTestChainValidate* ret = CTestChainValidate::NewLC();
303 ret->iServerCerts->AppendL(KFortezzaFuture);
304 ret->iServerCerts->AppendL(KFortezzaPCA1);
305 ret->iServerCerts->AppendL(KFortezzaCA1);
306 ret->iRootCerts->AppendL(KFortezzaPAA1);
307 TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
308 ret->iError = status;
313 CTestChainValidate* TestSpec::TestValidateSpec5()
315 CTestChainValidate* ret = CTestChainValidate::NewLC();
316 ret->iServerCerts->AppendL(KFortezzaInvalidSig);
317 ret->iServerCerts->AppendL(KFortezzaPCA1);
318 ret->iServerCerts->AppendL(KFortezzaCA1);
319 ret->iRootCerts->AppendL(KFortezzaPAA1);
320 TValidationStatus* status = new(ELeave) TValidationStatus(ESignatureInvalid, 0);
321 ret->iError = status;
326 CTestChainValidate* TestSpec::TestValidateSpec6()
328 CTestChainValidate* ret = CTestChainValidate::NewLC();
329 ret->iServerCerts->AppendL(KFortezzaKeyCompromise);
330 ret->iServerCerts->AppendL(KFortezzaPCA1);
331 ret->iServerCerts->AppendL(KFortezzaCA1);
332 ret->iRootCerts->AppendL(KFortezzaPAA1);
333 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
334 ret->iError = status;
339 CTestChainValidate* TestSpec::TestValidateSpec7()
341 CTestChainValidate* ret = CTestChainValidate::NewLC();
342 ret->iServerCerts->AppendL(KFortezzaBadSubjName2);
343 ret->iServerCerts->AppendL(KFortezzaPCA1);
344 ret->iServerCerts->AppendL(KFortezzaTestCA2);
345 ret->iRootCerts->AppendL(KFortezzaPAA1);
346 TValidationStatus* status = new(ELeave) TValidationStatus(ENameIsExcluded, 0);
347 ret->iError = status;
352 CTestChainValidate* TestSpec::TestValidateSpec8()
354 CTestChainValidate* ret = CTestChainValidate::NewLC();
355 ret->iServerCerts->AppendL(KFortezzaBadSubjName1);
356 ret->iServerCerts->AppendL(KFortezzaPCA1);
357 ret->iServerCerts->AppendL(KFortezzaTestCA2);
358 ret->iRootCerts->AppendL(KFortezzaPAA1);
359 TValidationStatus* status = new(ELeave) TValidationStatus(ENameNotPermitted, 0);
360 ret->iError = status;
366 CTestChainValidate* TestSpec::TestValidateSpec9()
368 CTestChainValidate* ret = CTestChainValidate::NewLC();
369 ret->iServerCerts->AppendL(KFortezzaPathLen);
370 ret->iServerCerts->AppendL(KFortezzaPCA1);
371 ret->iServerCerts->AppendL(KFortezzaTestCA2);
372 ret->iServerCerts->AppendL(KFortezzaTestSubCA2);
373 ret->iRootCerts->AppendL(KFortezzaPAA1);
374 TValidationStatus* status = new(ELeave) TValidationStatus(EPathTooLong, 0);
375 ret->iError = status;
380 CTestChainValidate* TestSpec::TestValidateSpec10()
382 CTestChainValidate* ret = CTestChainValidate::NewLC();
383 ret->iServerCerts->AppendL(KFortezzaInvalidCAUser1);
384 ret->iServerCerts->AppendL(KFortezzaPCA1);
385 ret->iServerCerts->AppendL(KFortezzaBadCA1);
386 ret->iRootCerts->AppendL(KFortezzaPAA1);
387 TValidationStatus* status = new(ELeave) TValidationStatus(ENotCACert, 1);
388 ret->iError = status;
393 CTestChainValidate* TestSpec::TestValidateSpec11()
395 CTestChainValidate* ret = CTestChainValidate::NewLC();
396 ret->iServerCerts->AppendL(KFortezzaInvalidCAUser2);
397 ret->iServerCerts->AppendL(KFortezzaPCA1);
398 ret->iServerCerts->AppendL(KFortezzaBadCA2);
399 ret->iRootCerts->AppendL(KFortezzaPAA1);
400 TValidationStatus* status = new(ELeave) TValidationStatus(EBadKeyUsage, 1);
401 ret->iError = status;
406 CTestChainValidate* TestSpec::TestValidateSpec12()
408 CTestChainValidate* ret = CTestChainValidate::NewLC();
409 ret->iServerCerts->AppendL(KFortezzaCA2EE1);
410 ret->iServerCerts->AppendL(KFortezzaPCA2);
411 ret->iServerCerts->AppendL(KFortezzaCA2);
412 ret->iRootCerts->AppendL(KFortezzaPAA2);
413 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
414 ret->iError = status;
419 CTestChainValidate* TestSpec::TestValidateSpec13()
421 CTestChainValidate* ret = CTestChainValidate::NewLC();
422 ret->iServerCerts->AppendL(KFortezzaCA2BadAltName);
423 ret->iServerCerts->AppendL(KFortezzaPCA2);
424 ret->iServerCerts->AppendL(KFortezzaCA2);
425 ret->iRootCerts->AppendL(KFortezzaPAA2);
426 TValidationStatus* status = new(ELeave) TValidationStatus(ENameIsExcluded, 0);
427 ret->iError = status;
432 CTestChainValidate* TestSpec::TestValidateSpec14()
434 CTestChainValidate* ret = CTestChainValidate::NewLC();
435 ret->iServerCerts->AppendL(KDashnet);
436 ret->iRootCerts->AppendL(KRSASSCA);
437 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
438 ret->iError = status;
444 CTestChainValidate* TestSpec::TestValidateSpec15()
446 CTestChainValidate* ret = CTestChainValidate::NewLC();
447 ret->iServerCerts->AppendL(K3Do);
448 ret->iRootCerts->AppendL(KRSASSCA);
449 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
450 ret->iError = status;
455 CTestChainValidate* TestSpec::TestValidateSpec16()
457 CTestChainValidate* ret = CTestChainValidate::NewLC();
458 ret->iServerCerts->AppendL(KDashnet);
459 ret->iRootCerts->AppendL(KRSASSCA_OLD);
460 TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
461 ret->iError = status;
466 CTestChainValidate* TestSpec::TestValidateSpec17()
468 CTestChainValidate* ret = CTestChainValidate::NewLC();
469 ret->iServerCerts->AppendL(K3Do);
470 ret->iRootCerts->AppendL(KRSASSCA_OLD);
471 TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
472 ret->iError = status;
477 CTestChainValidate* TestSpec::TestValidateSpec18()
479 CTestChainValidate* ret = CTestChainValidate::NewLC();
480 ret->iServerCerts->AppendL(KLloyds);
481 ret->iServerCerts->AppendL(KVSignServer3);
482 ret->iRootCerts->AppendL(KVSignCA3);
483 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
484 ret->iError = status;
489 CTestChainValidate* TestSpec::TestValidateSpec19()
491 CTestChainValidate* ret = CTestChainValidate::NewLC();
492 ret->iServerCerts->AppendL(KRoot);
493 ret->iRootCerts->AppendL(KRoot);
494 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
495 ret->iError = status;
500 CTestChainValidate* TestSpec::TestValidateSpec20()
502 CTestChainValidate* ret = CTestChainValidate::NewLC();
503 ret->iServerCerts->AppendL(KRoot);
504 ret->iRootCerts->AppendL(KVSignCA3);
505 TValidationStatus* status = new(ELeave) TValidationStatus(EChainHasNoRoot, 0);
506 ret->iError = status;
511 //n.b. this test should leave with KErrArgument
512 CTestChainValidate* TestSpec::TestValidateSpec21()
514 CTestChainValidate* ret = CTestChainValidate::NewLC();
515 TValidationStatus* status = new(ELeave) TValidationStatus(EChainHasNoRoot, 0);
516 ret->iError = status;
521 CTestChainValidate* TestSpec::TestValidateSpec22()
523 CTestChainValidate* ret = CTestChainValidate::NewLC();
524 ret->iServerCerts->AppendL(KMedCA1EE1);
525 ret->iServerCerts->AppendL(KMedCA1);
526 ret->iRootCerts->AppendL(KMedRootCA);
527 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
528 ret->iError = status;
533 CTestChainValidate* TestSpec::TestValidateSpec23()
535 CTestChainValidate* ret = CTestChainValidate::NewLC();
536 ret->iServerCerts->AppendL(KMedCA1EE2);
537 ret->iServerCerts->AppendL(KMedCA1);
538 ret->iRootCerts->AppendL(KMedRootCA);
539 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
540 ret->iError = status;
546 CTestChainValidate* TestSpec::TestValidateSpec24()
548 CTestChainValidate* ret = CTestChainValidate::NewLC();
549 ret->iServerCerts->AppendL(KFINEIDLipponenSign);
550 ret->iRootCerts->AppendL(KFINEIDCitizenCA);
551 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
552 ret->iError = status;
557 CTestChainValidate* TestSpec::TestValidateSpec25()
559 CTestChainValidate* ret = CTestChainValidate::NewLC();
560 ret->iServerCerts->AppendL(KFINEIDLipponenEncrypt);
561 ret->iRootCerts->AppendL(KFINEIDCitizenCA);
562 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
563 ret->iError = status;
568 CTestChainValidate* TestSpec::TestValidateSpec26()
570 CTestChainValidate* ret = CTestChainValidate::NewLC();
571 ret->iServerCerts->AppendL(KFINEIDHelsinkiSign);
572 ret->iRootCerts->AppendL(KFINEIDTestCA3);
573 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
574 ret->iError = status;
579 CTestChainValidate* TestSpec::TestValidateSpec27()
581 CTestChainValidate* ret = CTestChainValidate::NewLC();
582 ret->iServerCerts->AppendL(KFINEIDHelsinkiEncrypt);
583 ret->iRootCerts->AppendL(KFINEIDTestCA3);
584 TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
585 ret->iError = status;
590 //test warning generated when cert not self signed
591 CTestChainValidate* TestSpec::TestValidateSpec28()
593 CTestChainValidate* ret = CTestChainValidate::NewLC();
594 ret->iServerCerts->AppendL(KLloyds);
595 ret->iRootCerts->AppendL(KVSignServer3);//not self signed
596 TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
597 TValidationStatus warning(ERootCertNotSelfSigned, 0);
599 ret->iWarnings->AppendL(warning);
604 //test case with OpenSSL default certs
605 CTestChainValidate* TestSpec::TestValidateSpec29()
607 CTestChainValidate* ret = CTestChainValidate::NewLC();
608 ret->iRootCerts->AppendL(KApacheRSARoot);
609 ret->iServerCerts->AppendL(KApacheRSAServer);
610 TValidationStatus* error = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
616 CTestChainValidate* TestSpec::TestValidateSpec30()
618 CTestChainValidate* ret = CTestChainValidate::NewLC();
619 ret->iRootCerts->AppendL(KApacheDSARoot);
620 ret->iServerCerts->AppendL(KApacheDSAServer);
621 TValidationStatus* error = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
627 //normal chain, supply policy in chain, should work
628 CTestChainValidate* TestSpec::TestValidateSpec31()
630 CTestChainValidate* ret = CTestChainValidate::NewLC();
631 ret->iRootCerts->AppendL(KFortezzaPAA1);
632 ret->iServerCerts->AppendL(KFortezzaCA1EE1);
633 ret->iServerCerts->AppendL(KFortezzaCA1);
634 ret->iServerCerts->AppendL(KFortezzaPCA1);
635 ret->iPolicies->AppendL(KX22Policy);
636 TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
642 //normal chain, supply policy not in chain, should fail
643 CTestChainValidate* TestSpec::TestValidateSpec32()
645 CTestChainValidate* ret = CTestChainValidate::NewLC();
646 ret->iRootCerts->AppendL(KFortezzaPAA1);
647 ret->iServerCerts->AppendL(KFortezzaCA1EE1);
648 ret->iServerCerts->AppendL(KFortezzaCA1);
649 ret->iServerCerts->AppendL(KFortezzaPCA1);
650 ret->iPolicies->AppendL(KExtraBogusPolicy);
651 TValidationStatus* error = new(ELeave) TValidationStatus(ERequiredPolicyNotFound, 0);
657 //chain with policy mapping, supply first policy, should work
658 CTestChainValidate* TestSpec::TestValidateSpec33()
660 CTestChainValidate* ret = CTestChainValidate::NewLC();
661 ret->iRootCerts->AppendL(KFortezzaPAA1);
662 ret->iServerCerts->AppendL(KFortezzaCA2EE1);
663 ret->iServerCerts->AppendL(KFortezzaCA2);
664 ret->iServerCerts->AppendL(KFortezzaPCA2);
665 ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
666 ret->iPolicies->AppendL(KX22Policy);
667 TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
673 //chain with policy mapping, supply second policy, should work
674 CTestChainValidate* TestSpec::TestValidateSpec34()
676 CTestChainValidate* ret = CTestChainValidate::NewLC();
677 ret->iRootCerts->AppendL(KFortezzaPAA1);
678 ret->iServerCerts->AppendL(KFortezzaCA2EE1);
679 ret->iServerCerts->AppendL(KFortezzaCA2);
680 ret->iServerCerts->AppendL(KFortezzaPCA2);
681 ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
682 ret->iPolicies->AppendL(KRNPolicy);
683 TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
689 //chain with policy mappng, supply different policy, should fail
690 CTestChainValidate* TestSpec::TestValidateSpec35()
692 CTestChainValidate* ret = CTestChainValidate::NewLC();
693 ret->iRootCerts->AppendL(KFortezzaPAA1);
694 ret->iServerCerts->AppendL(KFortezzaCA2EE1);
695 ret->iServerCerts->AppendL(KFortezzaCA2);
696 ret->iServerCerts->AppendL(KFortezzaPCA2);
697 ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
698 ret->iPolicies->AppendL(KExtraBogusPolicy);
699 TValidationStatus* error = new(ELeave) TValidationStatus(ERequiredPolicyNotFound, 0);