os/security/cryptoservices/certificateandkeymgmt/tpkixcert/testspecs.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of the License "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: 
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
#include "testspecs.h"
sl@0
    20
sl@0
    21
//test chain superclass
sl@0
    22
CTestChain::CTestChain()
sl@0
    23
	{
sl@0
    24
	}
sl@0
    25
sl@0
    26
CTestChain::~CTestChain()
sl@0
    27
	{
sl@0
    28
	delete iServerCerts;
sl@0
    29
	delete iRootCerts;
sl@0
    30
	delete iExtraCerts;
sl@0
    31
	}
sl@0
    32
sl@0
    33
void CTestChain::ConstructL()
sl@0
    34
	{
sl@0
    35
	iServerCerts = new(ELeave) CDesCArrayFlat (1);
sl@0
    36
	iRootCerts = new(ELeave) CDesCArrayFlat (1);
sl@0
    37
	iExtraCerts = new(ELeave) CDesCArrayFlat (1);
sl@0
    38
	}
sl@0
    39
sl@0
    40
//test build class		
sl@0
    41
CTestChainBuild* CTestChainBuild::NewL()
sl@0
    42
	{
sl@0
    43
	CTestChainBuild* self = CTestChainBuild::NewLC();
sl@0
    44
	CleanupStack::Pop();
sl@0
    45
	return self;
sl@0
    46
	}
sl@0
    47
sl@0
    48
CTestChainBuild* CTestChainBuild::NewLC()
sl@0
    49
	{
sl@0
    50
	CTestChainBuild* self = new(ELeave) CTestChainBuild;
sl@0
    51
	CleanupStack::PushL(self);
sl@0
    52
	self->ConstructL();
sl@0
    53
	return self;
sl@0
    54
	}
sl@0
    55
sl@0
    56
CTestChainBuild::~CTestChainBuild()
sl@0
    57
	{
sl@0
    58
	delete iCorrectChain;
sl@0
    59
	}
sl@0
    60
sl@0
    61
//test chain validate class
sl@0
    62
CTestChainValidate* CTestChainValidate::NewL()
sl@0
    63
	{
sl@0
    64
	CTestChainValidate* self = CTestChainValidate::NewLC();
sl@0
    65
	CleanupStack::Pop();
sl@0
    66
	return self;
sl@0
    67
	}
sl@0
    68
sl@0
    69
CTestChainValidate* CTestChainValidate::NewLC()
sl@0
    70
	{
sl@0
    71
	CTestChainValidate* self = new(ELeave) CTestChainValidate;
sl@0
    72
	CleanupStack::PushL(self);
sl@0
    73
	self->ConstructL();
sl@0
    74
	return self;
sl@0
    75
	}
sl@0
    76
sl@0
    77
void CTestChainValidate::ConstructL()
sl@0
    78
	{
sl@0
    79
	CTestChain::ConstructL();
sl@0
    80
	iWarnings = new(ELeave)CArrayFixFlat<TValidationStatus> (1);
sl@0
    81
	iPolicies = new(ELeave) CDesCArrayFlat (1);
sl@0
    82
	}
sl@0
    83
sl@0
    84
CTestChainValidate::~CTestChainValidate()
sl@0
    85
	{
sl@0
    86
	delete iError;
sl@0
    87
	delete iWarnings;
sl@0
    88
	delete iPolicies;
sl@0
    89
	};
sl@0
    90
sl@0
    91
//test specs
sl@0
    92
TestSpec::TestSpec()
sl@0
    93
	{
sl@0
    94
	}
sl@0
    95
sl@0
    96
CTestChainBuild* TestSpec::TestBuildSpec1()
sl@0
    97
	{
sl@0
    98
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
    99
	ret->iServerCerts->AppendL(KEE);
sl@0
   100
	ret->iServerCerts->AppendL(KCA1);
sl@0
   101
	ret->iServerCerts->AppendL(KCA2);
sl@0
   102
	ret->iRootCerts->AppendL(KRoot);
sl@0
   103
	const TPtrC name(KCorrectFile1);
sl@0
   104
	ret->iCorrectChain = name.AllocL();
sl@0
   105
	CleanupStack::Pop(); 
sl@0
   106
	return ret;
sl@0
   107
	}
sl@0
   108
sl@0
   109
CTestChainBuild* TestSpec::TestBuildSpec2()
sl@0
   110
	{
sl@0
   111
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   112
	ret->iServerCerts->AppendL(KEE);
sl@0
   113
	ret->iServerCerts->AppendL(KCA2);
sl@0
   114
	ret->iServerCerts->AppendL(KCA1);
sl@0
   115
	ret->iRootCerts->AppendL(KRoot);
sl@0
   116
	const TPtrC name(KCorrectFile1);
sl@0
   117
	ret->iCorrectChain = name.AllocL();
sl@0
   118
	CleanupStack::Pop(); 
sl@0
   119
	return ret;
sl@0
   120
	}
sl@0
   121
sl@0
   122
CTestChainBuild* TestSpec::TestBuildSpec3()
sl@0
   123
	{
sl@0
   124
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   125
	ret->iServerCerts->AppendL(KEE);
sl@0
   126
	ret->iServerCerts->AppendL(KCA1);
sl@0
   127
	ret->iExtraCerts->AppendL(KCA2);
sl@0
   128
	ret->iRootCerts->AppendL(KRoot);
sl@0
   129
	const TPtrC name(KCorrectFile1);
sl@0
   130
	ret->iCorrectChain = name.AllocL();
sl@0
   131
	CleanupStack::Pop(); 
sl@0
   132
	return ret;
sl@0
   133
	}
sl@0
   134
sl@0
   135
CTestChainBuild* TestSpec::TestBuildSpec4()
sl@0
   136
	{
sl@0
   137
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   138
	ret->iServerCerts->AppendL(KEE);
sl@0
   139
	ret->iServerCerts->AppendL(KCA2);
sl@0
   140
	ret->iExtraCerts->AppendL(KCA1);
sl@0
   141
	ret->iRootCerts->AppendL(KRoot);
sl@0
   142
	const TPtrC name(KCorrectFile1);
sl@0
   143
	ret->iCorrectChain = name.AllocL();
sl@0
   144
	CleanupStack::Pop(); 
sl@0
   145
	return ret;
sl@0
   146
	}
sl@0
   147
sl@0
   148
CTestChainBuild* TestSpec::TestBuildSpec5()
sl@0
   149
	{
sl@0
   150
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   151
	ret->iServerCerts->AppendL(KEE);
sl@0
   152
	ret->iServerCerts->AppendL(KCA1);
sl@0
   153
	ret->iServerCerts->AppendL(KCA2);
sl@0
   154
	ret->iServerCerts->AppendL(KRoot);
sl@0
   155
	ret->iRootCerts->AppendL(KRoot);
sl@0
   156
	const TPtrC name(KCorrectFile1);
sl@0
   157
	ret->iCorrectChain = name.AllocL();
sl@0
   158
	CleanupStack::Pop(); 
sl@0
   159
	return ret;
sl@0
   160
	}
sl@0
   161
sl@0
   162
CTestChainBuild* TestSpec::TestBuildSpec6()
sl@0
   163
	{
sl@0
   164
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   165
	ret->iServerCerts->AppendL(KEE);
sl@0
   166
	ret->iServerCerts->AppendL(KRoot);
sl@0
   167
	ret->iServerCerts->AppendL(KCA2);
sl@0
   168
	ret->iServerCerts->AppendL(KCA1);
sl@0
   169
	ret->iRootCerts->AppendL(KRoot);
sl@0
   170
	const TPtrC name(KCorrectFile1);
sl@0
   171
	ret->iCorrectChain = name.AllocL();
sl@0
   172
	CleanupStack::Pop(); 
sl@0
   173
	return ret;
sl@0
   174
	}
sl@0
   175
sl@0
   176
CTestChainBuild* TestSpec::TestBuildSpec7()
sl@0
   177
	{
sl@0
   178
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   179
	ret->iServerCerts->AppendL(KEE);
sl@0
   180
	ret->iServerCerts->AppendL(KCA1);
sl@0
   181
	ret->iServerCerts->AppendL(KCA2SameDN);
sl@0
   182
	ret->iServerCerts->AppendL(KCA2);
sl@0
   183
	ret->iRootCerts->AppendL(KRoot);
sl@0
   184
	const TPtrC name(KCorrectFile1);
sl@0
   185
	ret->iCorrectChain = name.AllocL();
sl@0
   186
	CleanupStack::Pop(); 
sl@0
   187
	return ret;
sl@0
   188
	}
sl@0
   189
sl@0
   190
CTestChainBuild* TestSpec::TestBuildSpec8()
sl@0
   191
	{
sl@0
   192
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   193
	ret->iServerCerts->AppendL(KEE);
sl@0
   194
	ret->iServerCerts->AppendL(KCA2SameDN);
sl@0
   195
	ret->iServerCerts->AppendL(KCA1);
sl@0
   196
	ret->iServerCerts->AppendL(KCA2);
sl@0
   197
	ret->iRootCerts->AppendL(KRoot);
sl@0
   198
	const TPtrC name(KCorrectFile1);
sl@0
   199
	ret->iCorrectChain = name.AllocL();
sl@0
   200
	CleanupStack::Pop(); 
sl@0
   201
	return ret;
sl@0
   202
	}
sl@0
   203
sl@0
   204
CTestChainBuild* TestSpec::TestBuildSpec9()
sl@0
   205
	{
sl@0
   206
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   207
	ret->iServerCerts->AppendL(KEE);
sl@0
   208
	ret->iServerCerts->AppendL(KCA1);
sl@0
   209
	ret->iServerCerts->AppendL(KCA2SameDN);
sl@0
   210
	ret->iExtraCerts->AppendL(KCA2);
sl@0
   211
	ret->iRootCerts->AppendL(KRoot);
sl@0
   212
	const TPtrC name(KCorrectFile1);
sl@0
   213
	ret->iCorrectChain = name.AllocL();
sl@0
   214
	CleanupStack::Pop(); 
sl@0
   215
	return ret;
sl@0
   216
	}
sl@0
   217
sl@0
   218
CTestChainBuild* TestSpec::TestBuildSpec10()
sl@0
   219
	{
sl@0
   220
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   221
	ret->iServerCerts->AppendL(KEE);
sl@0
   222
	ret->iServerCerts->AppendL(KCA1);
sl@0
   223
	ret->iServerCerts->AppendL(KCA2);
sl@0
   224
	ret->iExtraCerts->AppendL(KCA2SameDN);
sl@0
   225
	ret->iRootCerts->AppendL(KRoot);
sl@0
   226
	const TPtrC name(KCorrectFile1);
sl@0
   227
	ret->iCorrectChain = name.AllocL();
sl@0
   228
	CleanupStack::Pop(); 
sl@0
   229
	return ret;
sl@0
   230
	}
sl@0
   231
sl@0
   232
CTestChainBuild* TestSpec::TestBuildSpec11()
sl@0
   233
	{
sl@0
   234
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   235
	ret->iServerCerts->AppendL(KEE);
sl@0
   236
	ret->iServerCerts->AppendL(KCA2);
sl@0
   237
	ret->iServerCerts->AppendL(KCA1);
sl@0
   238
	ret->iExtraCerts->AppendL(KCA1SameDN);
sl@0
   239
	ret->iRootCerts->AppendL(KRoot);
sl@0
   240
	const TPtrC name(KCorrectFile1);
sl@0
   241
	ret->iCorrectChain = name.AllocL();
sl@0
   242
	CleanupStack::Pop(); 
sl@0
   243
	return ret;
sl@0
   244
	}
sl@0
   245
sl@0
   246
CTestChainBuild* TestSpec::TestBuildSpec12()
sl@0
   247
	{
sl@0
   248
	CTestChainBuild* ret = CTestChainBuild::NewLC();
sl@0
   249
	ret->iServerCerts->AppendL(KEE);
sl@0
   250
	ret->iServerCerts->AppendL(KCA2);
sl@0
   251
	ret->iServerCerts->AppendL(KCA1SameDN);
sl@0
   252
	ret->iExtraCerts->AppendL(KCA1);
sl@0
   253
	ret->iRootCerts->AppendL(KRoot);
sl@0
   254
	const TPtrC name(KCorrectFile1);
sl@0
   255
	ret->iCorrectChain = name.AllocL();
sl@0
   256
	CleanupStack::Pop(); 
sl@0
   257
	return ret;
sl@0
   258
	}
sl@0
   259
sl@0
   260
//validate tests
sl@0
   261
CTestChainValidate* TestSpec::TestValidateSpec1()
sl@0
   262
	{
sl@0
   263
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   264
	ret->iServerCerts->AppendL(KFortezzaCA1EE1);
sl@0
   265
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   266
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   267
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   268
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   269
	ret->iError = status;
sl@0
   270
	CleanupStack::Pop(); 
sl@0
   271
	return ret;
sl@0
   272
	}
sl@0
   273
sl@0
   274
CTestChainValidate* TestSpec::TestValidateSpec2()
sl@0
   275
	{
sl@0
   276
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   277
	ret->iServerCerts->AppendL(KFortezzaCA1EE2);
sl@0
   278
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   279
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   280
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   281
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   282
	ret->iError = status;
sl@0
   283
	CleanupStack::Pop(); 
sl@0
   284
	return ret;
sl@0
   285
	}
sl@0
   286
sl@0
   287
CTestChainValidate* TestSpec::TestValidateSpec3()
sl@0
   288
	{
sl@0
   289
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   290
	ret->iServerCerts->AppendL(KFortezzaExpired);
sl@0
   291
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   292
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   293
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   294
	TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   295
	ret->iError = status;
sl@0
   296
	CleanupStack::Pop(); 
sl@0
   297
	return ret;
sl@0
   298
	}
sl@0
   299
sl@0
   300
CTestChainValidate* TestSpec::TestValidateSpec4()
sl@0
   301
	{
sl@0
   302
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   303
	ret->iServerCerts->AppendL(KFortezzaFuture);
sl@0
   304
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   305
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   306
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   307
	TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   308
	ret->iError = status;
sl@0
   309
	CleanupStack::Pop(); 
sl@0
   310
	return ret;
sl@0
   311
	}
sl@0
   312
sl@0
   313
CTestChainValidate* TestSpec::TestValidateSpec5()
sl@0
   314
	{
sl@0
   315
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   316
	ret->iServerCerts->AppendL(KFortezzaInvalidSig);
sl@0
   317
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   318
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   319
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   320
	TValidationStatus* status = new(ELeave) TValidationStatus(ESignatureInvalid, 0);
sl@0
   321
	ret->iError = status;
sl@0
   322
	CleanupStack::Pop(); 
sl@0
   323
	return ret;
sl@0
   324
	}
sl@0
   325
sl@0
   326
CTestChainValidate* TestSpec::TestValidateSpec6()
sl@0
   327
	{
sl@0
   328
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   329
	ret->iServerCerts->AppendL(KFortezzaKeyCompromise);
sl@0
   330
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   331
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   332
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   333
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   334
	ret->iError = status;
sl@0
   335
	CleanupStack::Pop(); 
sl@0
   336
	return ret;
sl@0
   337
	}
sl@0
   338
sl@0
   339
CTestChainValidate* TestSpec::TestValidateSpec7()
sl@0
   340
	{
sl@0
   341
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   342
	ret->iServerCerts->AppendL(KFortezzaBadSubjName2);
sl@0
   343
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   344
	ret->iServerCerts->AppendL(KFortezzaTestCA2);
sl@0
   345
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   346
	TValidationStatus* status = new(ELeave) TValidationStatus(ENameIsExcluded, 0);
sl@0
   347
	ret->iError = status;
sl@0
   348
	CleanupStack::Pop(); 
sl@0
   349
	return ret;
sl@0
   350
	}
sl@0
   351
sl@0
   352
CTestChainValidate* TestSpec::TestValidateSpec8()
sl@0
   353
	{
sl@0
   354
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   355
	ret->iServerCerts->AppendL(KFortezzaBadSubjName1);
sl@0
   356
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   357
	ret->iServerCerts->AppendL(KFortezzaTestCA2);
sl@0
   358
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   359
	TValidationStatus* status = new(ELeave) TValidationStatus(ENameNotPermitted, 0);
sl@0
   360
	ret->iError = status;
sl@0
   361
	CleanupStack::Pop(); 
sl@0
   362
	return ret;
sl@0
   363
	}
sl@0
   364
sl@0
   365
//
sl@0
   366
CTestChainValidate* TestSpec::TestValidateSpec9()
sl@0
   367
	{
sl@0
   368
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   369
	ret->iServerCerts->AppendL(KFortezzaPathLen);
sl@0
   370
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   371
	ret->iServerCerts->AppendL(KFortezzaTestCA2);
sl@0
   372
	ret->iServerCerts->AppendL(KFortezzaTestSubCA2);
sl@0
   373
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   374
	TValidationStatus* status = new(ELeave) TValidationStatus(EPathTooLong, 0);
sl@0
   375
	ret->iError = status;
sl@0
   376
	CleanupStack::Pop(); 
sl@0
   377
	return ret;
sl@0
   378
	}
sl@0
   379
sl@0
   380
CTestChainValidate* TestSpec::TestValidateSpec10()
sl@0
   381
	{
sl@0
   382
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   383
	ret->iServerCerts->AppendL(KFortezzaInvalidCAUser1);
sl@0
   384
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   385
	ret->iServerCerts->AppendL(KFortezzaBadCA1);
sl@0
   386
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   387
	TValidationStatus* status = new(ELeave) TValidationStatus(ENotCACert, 1);
sl@0
   388
	ret->iError = status;
sl@0
   389
	CleanupStack::Pop(); 
sl@0
   390
	return ret;
sl@0
   391
	}
sl@0
   392
sl@0
   393
CTestChainValidate* TestSpec::TestValidateSpec11()
sl@0
   394
	{
sl@0
   395
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   396
	ret->iServerCerts->AppendL(KFortezzaInvalidCAUser2);
sl@0
   397
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   398
	ret->iServerCerts->AppendL(KFortezzaBadCA2);
sl@0
   399
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   400
	TValidationStatus* status = new(ELeave) TValidationStatus(EBadKeyUsage, 1);
sl@0
   401
	ret->iError = status;
sl@0
   402
	CleanupStack::Pop(); 
sl@0
   403
	return ret;
sl@0
   404
	}
sl@0
   405
sl@0
   406
CTestChainValidate* TestSpec::TestValidateSpec12()
sl@0
   407
	{
sl@0
   408
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   409
	ret->iServerCerts->AppendL(KFortezzaCA2EE1);
sl@0
   410
	ret->iServerCerts->AppendL(KFortezzaPCA2);
sl@0
   411
	ret->iServerCerts->AppendL(KFortezzaCA2);
sl@0
   412
	ret->iRootCerts->AppendL(KFortezzaPAA2);
sl@0
   413
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   414
	ret->iError = status;
sl@0
   415
	CleanupStack::Pop(); 
sl@0
   416
	return ret;
sl@0
   417
	}
sl@0
   418
sl@0
   419
CTestChainValidate* TestSpec::TestValidateSpec13()
sl@0
   420
	{
sl@0
   421
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   422
	ret->iServerCerts->AppendL(KFortezzaCA2BadAltName);
sl@0
   423
	ret->iServerCerts->AppendL(KFortezzaPCA2);
sl@0
   424
	ret->iServerCerts->AppendL(KFortezzaCA2);
sl@0
   425
	ret->iRootCerts->AppendL(KFortezzaPAA2);
sl@0
   426
	TValidationStatus* status = new(ELeave) TValidationStatus(ENameIsExcluded, 0);
sl@0
   427
	ret->iError = status;
sl@0
   428
	CleanupStack::Pop(); 
sl@0
   429
	return ret;
sl@0
   430
	}
sl@0
   431
sl@0
   432
CTestChainValidate* TestSpec::TestValidateSpec14()
sl@0
   433
	{
sl@0
   434
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   435
	ret->iServerCerts->AppendL(KDashnet);
sl@0
   436
	ret->iRootCerts->AppendL(KRSASSCA);
sl@0
   437
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   438
	ret->iError = status;
sl@0
   439
	CleanupStack::Pop(); 
sl@0
   440
	return ret;
sl@0
   441
	}
sl@0
   442
sl@0
   443
sl@0
   444
CTestChainValidate* TestSpec::TestValidateSpec15()
sl@0
   445
	{
sl@0
   446
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   447
	ret->iServerCerts->AppendL(K3Do);
sl@0
   448
	ret->iRootCerts->AppendL(KRSASSCA);
sl@0
   449
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   450
	ret->iError = status;
sl@0
   451
	CleanupStack::Pop(); 
sl@0
   452
	return ret;
sl@0
   453
	}
sl@0
   454
sl@0
   455
CTestChainValidate* TestSpec::TestValidateSpec16()
sl@0
   456
	{
sl@0
   457
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   458
	ret->iServerCerts->AppendL(KDashnet);
sl@0
   459
	ret->iRootCerts->AppendL(KRSASSCA_OLD);
sl@0
   460
	TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   461
	ret->iError = status;
sl@0
   462
	CleanupStack::Pop(); 
sl@0
   463
	return ret;
sl@0
   464
	}
sl@0
   465
sl@0
   466
CTestChainValidate* TestSpec::TestValidateSpec17()
sl@0
   467
	{
sl@0
   468
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   469
	ret->iServerCerts->AppendL(K3Do);
sl@0
   470
	ret->iRootCerts->AppendL(KRSASSCA_OLD);
sl@0
   471
	TValidationStatus* status = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   472
	ret->iError = status;
sl@0
   473
	CleanupStack::Pop(); 
sl@0
   474
	return ret;
sl@0
   475
	}
sl@0
   476
sl@0
   477
CTestChainValidate* TestSpec::TestValidateSpec18()
sl@0
   478
	{
sl@0
   479
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   480
	ret->iServerCerts->AppendL(KLloyds);
sl@0
   481
	ret->iServerCerts->AppendL(KVSignServer3);
sl@0
   482
	ret->iRootCerts->AppendL(KVSignCA3);
sl@0
   483
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   484
	ret->iError = status;
sl@0
   485
	CleanupStack::Pop(); 
sl@0
   486
	return ret;
sl@0
   487
	}
sl@0
   488
sl@0
   489
CTestChainValidate* TestSpec::TestValidateSpec19()
sl@0
   490
	{
sl@0
   491
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   492
	ret->iServerCerts->AppendL(KRoot);
sl@0
   493
	ret->iRootCerts->AppendL(KRoot);
sl@0
   494
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   495
	ret->iError = status;
sl@0
   496
	CleanupStack::Pop(); 
sl@0
   497
	return ret;
sl@0
   498
	}
sl@0
   499
sl@0
   500
CTestChainValidate* TestSpec::TestValidateSpec20()
sl@0
   501
	{
sl@0
   502
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   503
	ret->iServerCerts->AppendL(KRoot);
sl@0
   504
	ret->iRootCerts->AppendL(KVSignCA3);
sl@0
   505
	TValidationStatus* status = new(ELeave) TValidationStatus(EChainHasNoRoot, 0);
sl@0
   506
	ret->iError = status;
sl@0
   507
	CleanupStack::Pop(); 
sl@0
   508
	return ret;
sl@0
   509
	}
sl@0
   510
sl@0
   511
//n.b. this test should leave with KErrArgument
sl@0
   512
CTestChainValidate* TestSpec::TestValidateSpec21()
sl@0
   513
	{
sl@0
   514
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   515
	TValidationStatus* status = new(ELeave) TValidationStatus(EChainHasNoRoot, 0);
sl@0
   516
	ret->iError = status;
sl@0
   517
	CleanupStack::Pop(); 
sl@0
   518
	return ret;
sl@0
   519
	}
sl@0
   520
sl@0
   521
CTestChainValidate* TestSpec::TestValidateSpec22()
sl@0
   522
	{
sl@0
   523
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   524
	ret->iServerCerts->AppendL(KMedCA1EE1);
sl@0
   525
	ret->iServerCerts->AppendL(KMedCA1);
sl@0
   526
	ret->iRootCerts->AppendL(KMedRootCA);
sl@0
   527
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   528
	ret->iError = status;
sl@0
   529
	CleanupStack::Pop(); 
sl@0
   530
	return ret;
sl@0
   531
	}
sl@0
   532
sl@0
   533
CTestChainValidate* TestSpec::TestValidateSpec23()
sl@0
   534
	{
sl@0
   535
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   536
	ret->iServerCerts->AppendL(KMedCA1EE2);
sl@0
   537
	ret->iServerCerts->AppendL(KMedCA1);
sl@0
   538
	ret->iRootCerts->AppendL(KMedRootCA);
sl@0
   539
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   540
	ret->iError = status;
sl@0
   541
	CleanupStack::Pop(); 
sl@0
   542
	return ret;
sl@0
   543
	}
sl@0
   544
sl@0
   545
//FINEID test cases
sl@0
   546
CTestChainValidate* TestSpec::TestValidateSpec24()
sl@0
   547
	{
sl@0
   548
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   549
	ret->iServerCerts->AppendL(KFINEIDLipponenSign);
sl@0
   550
	ret->iRootCerts->AppendL(KFINEIDCitizenCA);
sl@0
   551
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   552
	ret->iError = status;
sl@0
   553
	CleanupStack::Pop(); 
sl@0
   554
	return ret;
sl@0
   555
	}
sl@0
   556
sl@0
   557
CTestChainValidate* TestSpec::TestValidateSpec25()
sl@0
   558
	{
sl@0
   559
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   560
	ret->iServerCerts->AppendL(KFINEIDLipponenEncrypt);
sl@0
   561
	ret->iRootCerts->AppendL(KFINEIDCitizenCA);
sl@0
   562
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   563
	ret->iError = status;
sl@0
   564
	CleanupStack::Pop(); 
sl@0
   565
	return ret;
sl@0
   566
	}
sl@0
   567
sl@0
   568
CTestChainValidate* TestSpec::TestValidateSpec26()
sl@0
   569
	{
sl@0
   570
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   571
	ret->iServerCerts->AppendL(KFINEIDHelsinkiSign);
sl@0
   572
	ret->iRootCerts->AppendL(KFINEIDTestCA3);
sl@0
   573
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   574
	ret->iError = status;
sl@0
   575
	CleanupStack::Pop(); 
sl@0
   576
	return ret;
sl@0
   577
	}
sl@0
   578
sl@0
   579
CTestChainValidate* TestSpec::TestValidateSpec27()
sl@0
   580
	{
sl@0
   581
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   582
	ret->iServerCerts->AppendL(KFINEIDHelsinkiEncrypt);
sl@0
   583
	ret->iRootCerts->AppendL(KFINEIDTestCA3);
sl@0
   584
	TValidationStatus* status = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   585
	ret->iError = status;
sl@0
   586
	CleanupStack::Pop(); 
sl@0
   587
	return ret;
sl@0
   588
	}
sl@0
   589
sl@0
   590
//test warning generated when cert not self signed
sl@0
   591
CTestChainValidate* TestSpec::TestValidateSpec28()
sl@0
   592
	{
sl@0
   593
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   594
	ret->iServerCerts->AppendL(KLloyds);
sl@0
   595
	ret->iRootCerts->AppendL(KVSignServer3);//not self signed
sl@0
   596
	TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   597
	TValidationStatus warning(ERootCertNotSelfSigned, 0);
sl@0
   598
	ret->iError = error;
sl@0
   599
	ret->iWarnings->AppendL(warning);
sl@0
   600
	CleanupStack::Pop(); 
sl@0
   601
	return ret;
sl@0
   602
	}
sl@0
   603
sl@0
   604
//test case with OpenSSL default certs
sl@0
   605
CTestChainValidate* TestSpec::TestValidateSpec29()
sl@0
   606
	{
sl@0
   607
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   608
	ret->iRootCerts->AppendL(KApacheRSARoot);
sl@0
   609
	ret->iServerCerts->AppendL(KApacheRSAServer);
sl@0
   610
	TValidationStatus* error = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   611
	ret->iError = error;
sl@0
   612
	CleanupStack::Pop(); 
sl@0
   613
	return ret;
sl@0
   614
	}
sl@0
   615
sl@0
   616
CTestChainValidate* TestSpec::TestValidateSpec30()
sl@0
   617
	{
sl@0
   618
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   619
	ret->iRootCerts->AppendL(KApacheDSARoot);
sl@0
   620
	ret->iServerCerts->AppendL(KApacheDSAServer);
sl@0
   621
	TValidationStatus* error = new(ELeave) TValidationStatus(EDateOutOfRange, 0);
sl@0
   622
	ret->iError = error;
sl@0
   623
	CleanupStack::Pop(); 
sl@0
   624
	return ret;
sl@0
   625
	}
sl@0
   626
sl@0
   627
//normal chain, supply policy in chain, should work
sl@0
   628
CTestChainValidate* TestSpec::TestValidateSpec31()
sl@0
   629
	{
sl@0
   630
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   631
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   632
	ret->iServerCerts->AppendL(KFortezzaCA1EE1);
sl@0
   633
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   634
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   635
	ret->iPolicies->AppendL(KX22Policy);
sl@0
   636
	TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   637
	ret->iError = error;
sl@0
   638
	CleanupStack::Pop(); 
sl@0
   639
	return ret;
sl@0
   640
	}
sl@0
   641
sl@0
   642
//normal chain, supply policy not in chain, should fail
sl@0
   643
CTestChainValidate* TestSpec::TestValidateSpec32()
sl@0
   644
	{
sl@0
   645
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   646
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   647
	ret->iServerCerts->AppendL(KFortezzaCA1EE1);
sl@0
   648
	ret->iServerCerts->AppendL(KFortezzaCA1);
sl@0
   649
	ret->iServerCerts->AppendL(KFortezzaPCA1);
sl@0
   650
	ret->iPolicies->AppendL(KExtraBogusPolicy);
sl@0
   651
	TValidationStatus* error = new(ELeave) TValidationStatus(ERequiredPolicyNotFound, 0);
sl@0
   652
	ret->iError = error;
sl@0
   653
	CleanupStack::Pop(); 
sl@0
   654
	return ret;
sl@0
   655
	}
sl@0
   656
sl@0
   657
//chain with policy mapping, supply first policy, should work
sl@0
   658
CTestChainValidate* TestSpec::TestValidateSpec33()
sl@0
   659
	{
sl@0
   660
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   661
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   662
	ret->iServerCerts->AppendL(KFortezzaCA2EE1);
sl@0
   663
	ret->iServerCerts->AppendL(KFortezzaCA2);
sl@0
   664
	ret->iServerCerts->AppendL(KFortezzaPCA2);
sl@0
   665
	ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
sl@0
   666
	ret->iPolicies->AppendL(KX22Policy);
sl@0
   667
	TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   668
	ret->iError = error;
sl@0
   669
	CleanupStack::Pop(); 
sl@0
   670
	return ret;
sl@0
   671
	}
sl@0
   672
sl@0
   673
//chain with policy mapping, supply second policy, should work
sl@0
   674
CTestChainValidate* TestSpec::TestValidateSpec34()
sl@0
   675
	{
sl@0
   676
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   677
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   678
	ret->iServerCerts->AppendL(KFortezzaCA2EE1);
sl@0
   679
	ret->iServerCerts->AppendL(KFortezzaCA2);
sl@0
   680
	ret->iServerCerts->AppendL(KFortezzaPCA2);
sl@0
   681
	ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
sl@0
   682
	ret->iPolicies->AppendL(KRNPolicy);
sl@0
   683
	TValidationStatus* error = new(ELeave) TValidationStatus(EValidatedOK, 0);
sl@0
   684
	ret->iError = error;
sl@0
   685
	CleanupStack::Pop(); 
sl@0
   686
	return ret;
sl@0
   687
	}
sl@0
   688
sl@0
   689
//chain with policy mappng, supply different policy, should fail
sl@0
   690
CTestChainValidate* TestSpec::TestValidateSpec35()
sl@0
   691
	{
sl@0
   692
	CTestChainValidate* ret = CTestChainValidate::NewLC();
sl@0
   693
	ret->iRootCerts->AppendL(KFortezzaPAA1);
sl@0
   694
	ret->iServerCerts->AppendL(KFortezzaCA2EE1);
sl@0
   695
	ret->iServerCerts->AppendL(KFortezzaCA2);
sl@0
   696
	ret->iServerCerts->AppendL(KFortezzaPCA2);
sl@0
   697
	ret->iServerCerts->AppendL(KFortezzaX22RNCrossCert);
sl@0
   698
	ret->iPolicies->AppendL(KExtraBogusPolicy);
sl@0
   699
	TValidationStatus* error = new(ELeave) TValidationStatus(ERequiredPolicyNotFound, 0);
sl@0
   700
	ret->iError = error;
sl@0
   701
	CleanupStack::Pop(); 
sl@0
   702
	return ret;
sl@0
   703
	}