os/security/securityanddataprivacytools/securitytools/certapp/test/tcertapp/tcertapp.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) 2008-2010 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 <iostream>
sl@0
    20
#include <tools/certapp-api.h>
sl@0
    21
#include "badconfigwriter.h"
sl@0
    22
#include "tcertapp_good.h"
sl@0
    23
#include "tcertapp_bad.h"
sl@0
    24
#include "goodconfigwriter.h"
sl@0
    25
#include <string>
sl@0
    26
#include <sstream>
sl@0
    27
#include <stdlib.h>
sl@0
    28
#include <stdio.h>
sl@0
    29
#include <time.h>
sl@0
    30
#include <sys/timeb.h>
sl@0
    31
#include "logger.h"
sl@0
    32
#include "utils.h"
sl@0
    33
sl@0
    34
using namespace std;
sl@0
    35
sl@0
    36
// Write a pass or fail result for a test case to the TMS log file
sl@0
    37
void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging);
sl@0
    38
sl@0
    39
//Funtions to generate Good/Valid config files for tcertapp
sl@0
    40
void GoodFileCaCertTests(const stringstream &aFilename, int aArray_value);
sl@0
    41
void GoodFileCertClientsTests(const stringstream &aFilename);
sl@0
    42
void GoodSwiCertTests(const stringstream &aFilename, int aArray_value);
sl@0
    43
sl@0
    44
//Functions to generate Good/Valid script files for emulator tests
sl@0
    45
void GenerateGoodCaCertsTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
sl@0
    46
void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
sl@0
    47
void GenerateGoodSwiCertTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
sl@0
    48
sl@0
    49
//Funtions to generate Bad/illegal config files for tcertapp
sl@0
    50
void BadFileCaCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex);
sl@0
    51
void BadFileCertClientsTests(const stringstream &aFilename, int aIndex, stringstream &aTestCaseType, int &aTestIndex);
sl@0
    52
void BadSwiCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex);
sl@0
    53
sl@0
    54
//Function call for RunCertApp api
sl@0
    55
void RunCertAppTool(int argc, char **argv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex);
sl@0
    56
void RunCertAppToolForStoreDump(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); 
sl@0
    57
void RunCertAppToolForBadParams(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); 
sl@0
    58
sl@0
    59
void TestsWithEmptyConfigFile();
sl@0
    60
void CreateFileToAugmentStore();
sl@0
    61
void TestsWithEncodedFileFormats();
sl@0
    62
void TestToDecodeAndEncodeStore();
sl@0
    63
void TestToReviewingAggregateStore();
sl@0
    64
void TestBadConfigFiles(const stringstream &aFilename, bool aBool, stringstream &aTestCaseType, int aTestCaseIndex);
sl@0
    65
void CertClientBadParamsFuncCall(stringstream &aFileName, stringstream &aTestCaseType, int aTestCaseIndex);
sl@0
    66
void decodeEncodeCertAppCall(const char *aArray[]);
sl@0
    67
int CompareFiles(stringstream &aFileName1, stringstream &aFileName2);
sl@0
    68
int Compare(istream &aIstream1, istream &aIstream2);
sl@0
    69
void TestWithUnicodFileName();
sl@0
    70
sl@0
    71
ofstream file; //global file handle to write to output file
sl@0
    72
const char *progress = "progress.txt";  // logs the progress report
sl@0
    73
const char *errors = "error.txt";       // logs the error report
sl@0
    74
sl@0
    75
//some constants used
sl@0
    76
const int KFileArrayIndex = 8;
sl@0
    77
const int KSwicertIndex = 10;
sl@0
    78
const int KSwiBadcertIndex = 11;
sl@0
    79
const int KFileBadcertIndex = 9;
sl@0
    80
const int KAppUidIndex = 4; 
sl@0
    81
const int KIndex = 4;
sl@0
    82
sl@0
    83
// to get the count of passed and failed test cases
sl@0
    84
static int failCount = 0, passCount = 0;
sl@0
    85
sl@0
    86
//pointers required for creation of good filecerts config files
sl@0
    87
const char **filecert_array[KFileArrayIndex]=
sl@0
    88
{
sl@0
    89
	goodCert_array,
sl@0
    90
	goodDeletables,
sl@0
    91
	goodFormats,
sl@0
    92
	goodCertOwnerTypes,
sl@0
    93
	goodSubjectKeyIds,
sl@0
    94
	goodIssuerKeyIds,
sl@0
    95
	goodApplications,
sl@0
    96
	goodTrusteds
sl@0
    97
};
sl@0
    98
sl@0
    99
//pointers required for creation of bad filecerts config files
sl@0
   100
const char **badfilecert_array[KFileBadcertIndex]=
sl@0
   101
{
sl@0
   102
	badLabels,
sl@0
   103
	badDeletables,
sl@0
   104
	badFormats,
sl@0
   105
	badCertOwnerTypes,
sl@0
   106
	badSubjectKeyIds,
sl@0
   107
	badIssuerKeyIds,
sl@0
   108
	badApplications,
sl@0
   109
	badTrusteds,
sl@0
   110
	badDatafilePath
sl@0
   111
};
sl@0
   112
sl@0
   113
sl@0
   114
//pointers required for creation of good swicerts config files
sl@0
   115
const char **swicert_array[KSwicertIndex]=
sl@0
   116
{
sl@0
   117
	goodLabels,
sl@0
   118
	goodFormats,
sl@0
   119
	goodCertOwnerTypes,
sl@0
   120
	goodSubjectKeyIds,
sl@0
   121
	goodIssuerKeyIds,
sl@0
   122
	goodAppNames,
sl@0
   123
	goodTrusteds,
sl@0
   124
	goodCapabilitySets,
sl@0
   125
	goodMandatory,
sl@0
   126
	goodSystemUpgrade
sl@0
   127
};
sl@0
   128
sl@0
   129
//pointers required for creation of bad swicerts config files
sl@0
   130
const char **badswicert_array[KSwiBadcertIndex]=
sl@0
   131
{
sl@0
   132
	badLabels,
sl@0
   133
	badFormats,
sl@0
   134
	badCertOwnerTypes,
sl@0
   135
	badSubjectKeyIds,
sl@0
   136
	badIssuerKeyIds,
sl@0
   137
	badApplications,
sl@0
   138
	badTrusteds,
sl@0
   139
	badDatafilePath,
sl@0
   140
	badCapabilitySets,
sl@0
   141
	badMandatory,
sl@0
   142
	badSystemUpgrade
sl@0
   143
};
sl@0
   144
sl@0
   145
sl@0
   146
//encoded file names for input to the tool
sl@0
   147
const char *fileEncodeType[4]=
sl@0
   148
{
sl@0
   149
"--hfilecertstore=utf8.txt",
sl@0
   150
"--hfilecertstore=utf8_without_bom.txt",
sl@0
   151
"--hfilecertstore=ucs2-bigendian.txt",
sl@0
   152
"--hfilecertstore=ucs2-littleendian.txt"
sl@0
   153
};
sl@0
   154
sl@0
   155
// Write a pass or fail result for a test case to the TMS log file
sl@0
   156
void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging)
sl@0
   157
	{
sl@0
   158
	// get the current time
sl@0
   159
	time_t rawtime;
sl@0
   160
	struct tm * timeinfo;
sl@0
   161
	char standardTimeBuffer[10];
sl@0
   162
	time(&rawtime);
sl@0
   163
	timeinfo = localtime(&rawtime);
sl@0
   164
	strftime(standardTimeBuffer, 10, "%H:%M:%S", timeinfo);
sl@0
   165
	
sl@0
   166
	char millisecondTimeBuffer[6];
sl@0
   167
sl@0
   168
	#ifdef __TOOLS2_LINUX__
sl@0
   169
		struct timeb tstruct;		
sl@0
   170
		ftime(&tstruct);
sl@0
   171
	#else
sl@0
   172
		struct _timeb tstruct;		
sl@0
   173
		_ftime(&tstruct);
sl@0
   174
	#endif
sl@0
   175
sl@0
   176
	sprintf(millisecondTimeBuffer, ":%03u ", tstruct.millitm);
sl@0
   177
	
sl@0
   178
	stringstream timeBuffer;
sl@0
   179
	timeBuffer << standardTimeBuffer << millisecondTimeBuffer;
sl@0
   180
	
sl@0
   181
	// set result string
sl@0
   182
	stringstream resultBuffer;
sl@0
   183
	
sl@0
   184
	if (aResult)
sl@0
   185
		{
sl@0
   186
		resultBuffer << "PASS";
sl@0
   187
		}
sl@0
   188
	else
sl@0
   189
		{
sl@0
   190
		resultBuffer << "FAIL";
sl@0
   191
		}
sl@0
   192
	
sl@0
   193
	// set test case ID string
sl@0
   194
	char testCaseIndexBuffer[6];
sl@0
   195
	sprintf(testCaseIndexBuffer, "-%04d", aTestCaseIndex);
sl@0
   196
	
sl@0
   197
	// write result in the correct format
sl@0
   198
	aLogFile << "<html><body><pre>\r\n";
sl@0
   199
	aLogFile << timeBuffer.str();
sl@0
   200
	aLogFile << "START_TESTCASE ";
sl@0
   201
	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0
   202
	aLogFile << "\r\n";
sl@0
   203
	aLogFile << timeBuffer.str();
sl@0
   204
	aLogFile << "Line = 1 Command = START_TESTCASE  ";
sl@0
   205
	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0
   206
	aLogFile << "\r\n";
sl@0
   207
	
sl@0
   208
	if (aLogging.str() != "")
sl@0
   209
		{
sl@0
   210
		aLogFile << timeBuffer.str();
sl@0
   211
		aLogFile << aLogging.str();
sl@0
   212
		aLogFile << "\r\n";		
sl@0
   213
		}
sl@0
   214
	
sl@0
   215
	aLogFile << timeBuffer.str();
sl@0
   216
	aLogFile << "END_TESTCASE ";
sl@0
   217
	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0
   218
	aLogFile << "\r\n";
sl@0
   219
	aLogFile << timeBuffer.str();
sl@0
   220
	aLogFile << "Line = 1 Command = END_TESTCASE ";
sl@0
   221
	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0
   222
	aLogFile << " ***TestCaseResult = ";
sl@0
   223
	aLogFile << resultBuffer.str();
sl@0
   224
	aLogFile << "\r\n</pre></body></html>\r\n";
sl@0
   225
	}
sl@0
   226
sl@0
   227
//RunCertApp call to create store from text input
sl@0
   228
void RunCertAppTool( int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
sl@0
   229
{
sl@0
   230
	for(int i =0; i<argc; i++)
sl@0
   231
		{
sl@0
   232
		cout << "Arguments Being passed to the RunCertApp tool is " << argv[i] << endl;
sl@0
   233
		}
sl@0
   234
	int ret = RunCertApp(progress, errors, argc, argv); 
sl@0
   235
	cout << "Return Value from CertApp Tool is " << ret << endl;
sl@0
   236
	stringstream logging;	
sl@0
   237
	if(ret!= 0)
sl@0
   238
		{
sl@0
   239
		failCount++;
sl@0
   240
		logging << "Error in creating store for " << stringval.str() << " and result is " << ret << " Fail" ;
sl@0
   241
		}
sl@0
   242
	else
sl@0
   243
		{
sl@0
   244
		passCount++;
sl@0
   245
		logging << "No Error in creating store for " << stringval.str() << " and result is " << ret << " Pass" ;
sl@0
   246
		}
sl@0
   247
	
sl@0
   248
	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);
sl@0
   249
}
sl@0
   250
sl@0
   251
//RunCertApp call to dump the store to human readable format
sl@0
   252
void RunCertAppToolForStoreDump(int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
sl@0
   253
{
sl@0
   254
	int ret = RunCertApp(progress, errors, argc, argv); 
sl@0
   255
	cout << "Return Value from CertApp Tool is " << ret << endl;
sl@0
   256
	stringstream logging;	
sl@0
   257
	if(ret!= 0)
sl@0
   258
		{
sl@0
   259
		failCount++;
sl@0
   260
		logging << "Error in Dumping the store file for " << stringval.str() << " and result is " << ret << " Fail";
sl@0
   261
		}
sl@0
   262
	else
sl@0
   263
		{
sl@0
   264
		passCount++;
sl@0
   265
		logging << "No Error in Dumping store for " << stringval.str() << " and result is " << ret << " Pass";
sl@0
   266
		}
sl@0
   267
	
sl@0
   268
	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);
sl@0
   269
}
sl@0
   270
sl@0
   271
//RunCertApp call to create store for bad params
sl@0
   272
void RunCertAppToolForBadParams(int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
sl@0
   273
{
sl@0
   274
	int ret = RunCertApp(progress, errors, argc, argv); 
sl@0
   275
	stringstream logging;	
sl@0
   276
	if(ret!= 0)
sl@0
   277
		{
sl@0
   278
		passCount++;
sl@0
   279
		cout << "We have passsed bad paramerters! Expected Return value is -1 And the RunCertApp has returned " << ret << " as Expected"<< endl;
sl@0
   280
		logging << "Bad Params! So Cannot create the store for " << stringval.str() << " and result is " << ret << " Pass";
sl@0
   281
		}
sl@0
   282
	else
sl@0
   283
		{
sl@0
   284
		failCount++;
sl@0
   285
		logging << "We are using bad parameters! So the tools should fail to create store! " << stringval.str() << " and result is " << ret << " Fail";
sl@0
   286
		cout << "We have passsed bad paramerters! The Tool has failed- It should return -1, But returned" << ret << endl;
sl@0
   287
		}
sl@0
   288
	
sl@0
   289
	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);	
sl@0
   290
}
sl@0
   291
sl@0
   292
sl@0
   293
/**
sl@0
   294
main entry to the program
sl@0
   295
*/
sl@0
   296
int main(int /*argc*/, char ** /*argv*/)
sl@0
   297
{
sl@0
   298
	stringstream testCaseType;
sl@0
   299
	int testCaseIndex = 0;
sl@0
   300
sl@0
   301
	dbg.SetStream(&std::cout);
sl@0
   302
	prog.SetStream(&std::cout);
sl@0
   303
	std::cout << std::dec;
sl@0
   304
sl@0
   305
	int num_tests = 0; 
sl@0
   306
	int argCount3 = 3;
sl@0
   307
	int argCount4 = 4;
sl@0
   308
	// File to log the result of all tests
sl@0
   309
	if(file)
sl@0
   310
		{
sl@0
   311
		file.open("tCertapp_Output.htm", ios_base::trunc | ios_base::out);
sl@0
   312
		}
sl@0
   313
sl@0
   314
	//create a file to augment the content to existing store
sl@0
   315
	CreateFileToAugmentStore();
sl@0
   316
sl@0
   317
/**
sl@0
   318
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCDAT_CREATE-0000
sl@0
   319
  @SYMTestCaseDesc	Create store
sl@0
   320
*/	
sl@0
   321
sl@0
   322
	//create certclient config files 
sl@0
   323
	//Format used for the files name is SDP-Security_Tools-CertApp-XXX-000X  to match with the TMS test case id
sl@0
   324
	stringstream certclientfileName;
sl@0
   325
	certclientfileName << "SDP-Security_Tools-CertApp-CCDAT_000"<<num_tests<<".txt";
sl@0
   326
	GoodFileCertClientsTests(certclientfileName);
sl@0
   327
	
sl@0
   328
	//create command line argument for creation of certclientx.dat through certapp tool
sl@0
   329
	stringstream strArg1, strArg2, augFileName;
sl@0
   330
	strArg1 <<"--hcertclients=" << certclientfileName.str();
sl@0
   331
	cout << "test" << strArg1.str().c_str() <<endl;
sl@0
   332
sl@0
   333
	strArg2<< "--bcertclients=SDP-Security_Tools-CertApp-CCDAT_000" <<num_tests <<".dat";
sl@0
   334
	cout <<"string value is " << strArg2.str().c_str() << endl;		
sl@0
   335
	
sl@0
   336
	string argument1, argument2;
sl@0
   337
	const char *argv_certclient[4];
sl@0
   338
	
sl@0
   339
	argument1 = strArg1.str().c_str();
sl@0
   340
	argv_certclient[0] = argument1.c_str();
sl@0
   341
			
sl@0
   342
	argv_certclient[1] = "--out";
sl@0
   343
	argument2 = strArg2.str().c_str();
sl@0
   344
	argv_certclient[2] = argument2.c_str();
sl@0
   345
sl@0
   346
	char **argv, **argv1;
sl@0
   347
	char *argument_ptr[3]; //[Format:: certapp --hcertclients=t_certclients_0.txt --out --bcertclients=certclients5.dat]
sl@0
   348
sl@0
   349
	for(int n1 = 0; n1<argCount3; n1++)
sl@0
   350
		{
sl@0
   351
		argument_ptr[n1] = const_cast<char*>(argv_certclient[n1]);
sl@0
   352
		argv = argument_ptr;
sl@0
   353
		}
sl@0
   354
	
sl@0
   355
	testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_CREATE");
sl@0
   356
	RunCertAppTool(argCount3, argv, certclientfileName, testCaseType, 0); // creating dat file
sl@0
   357
	
sl@0
   358
/**
sl@0
   359
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCAUG_AUGMENT-0000
sl@0
   360
  @SYMTestCaseDesc	Augment the Store with Extra entries
sl@0
   361
*/	
sl@0
   362
sl@0
   363
	//Augment the Store with Extra entries
sl@0
   364
	augFileName<<"SDP-Security_Tools-CertApp-CCAUG_0000.dat";
sl@0
   365
	argv_certclient[0] = "--hcertclients=tCertClient_Augment.txt";
sl@0
   366
	argv_certclient[1] =  argv_certclient[2];  
sl@0
   367
	argv_certclient[2] = "--out";
sl@0
   368
	argv_certclient[3] = "--bcertclients=SDP-Security_Tools-CertApp-CCAUG_0000.dat";
sl@0
   369
	for(int x = 0; x<argCount4; x++)
sl@0
   370
			{
sl@0
   371
			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
sl@0
   372
			argv1 = argument_ptr;   
sl@0
   373
			}
sl@0
   374
	
sl@0
   375
	testCaseType.str("SEC-TOOLS-CERTAPP-CCAUG_AUGMENT");
sl@0
   376
	RunCertAppTool(argCount4, argv1, augFileName, testCaseType, 0);
sl@0
   377
sl@0
   378
/**
sl@0
   379
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCDAT_DUMP-0000
sl@0
   380
  @SYMTestCaseDesc	Dump the dat file to human readable text format
sl@0
   381
*/	
sl@0
   382
sl@0
   383
	//Dump the dat file to human readable text format
sl@0
   384
	argv_certclient[0] = argv_certclient[3];
sl@0
   385
	argv_certclient[1] = "--out";
sl@0
   386
	argv_certclient[2] = "--hcertclients=SDP-Security_Tools-CertApp-CCDUMP_0000.txt";
sl@0
   387
			
sl@0
   388
	for(int k = 0; k<argCount3; k++)
sl@0
   389
		{
sl@0
   390
		argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
sl@0
   391
		argv1 = argument_ptr;
sl@0
   392
		}
sl@0
   393
sl@0
   394
	testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_DUMP");
sl@0
   395
	RunCertAppToolForStoreDump(argCount3, argv1, certclientfileName, testCaseType, 0); 
sl@0
   396
	//End of t_certclients
sl@0
   397
	
sl@0
   398
	//Creates good config files to augment store and dump store to text format for file certstore - cacerts.dat
sl@0
   399
	//Test for all positive cases
sl@0
   400
	for(num_tests = 0; num_tests<=KFileArrayIndex; num_tests++)
sl@0
   401
		{
sl@0
   402
		stringstream caCertFileName;
sl@0
   403
		caCertFileName << "SDP-Security_Tools-CertApp-FILEDAT_000"<<num_tests<<".txt";
sl@0
   404
		GoodFileCaCertTests(caCertFileName,num_tests);
sl@0
   405
sl@0
   406
/**
sl@0
   407
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0000
sl@0
   408
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   409
*/	
sl@0
   410
/**
sl@0
   411
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0001
sl@0
   412
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   413
*/	
sl@0
   414
/**
sl@0
   415
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0002
sl@0
   416
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   417
*/	
sl@0
   418
/**
sl@0
   419
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0003
sl@0
   420
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   421
*/	
sl@0
   422
/**
sl@0
   423
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0004
sl@0
   424
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   425
*/	
sl@0
   426
/**
sl@0
   427
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0005
sl@0
   428
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   429
*/	
sl@0
   430
/**
sl@0
   431
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0006
sl@0
   432
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   433
*/	
sl@0
   434
/**
sl@0
   435
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0007
sl@0
   436
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   437
*/	
sl@0
   438
/**
sl@0
   439
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0008
sl@0
   440
  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   441
*/	
sl@0
   442
sl@0
   443
		// CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
sl@0
   444
		//ex:certapp --hcertclients=t_certclients_0.txt --hfilecertstore=t_cacerts_0.txt --out --bfilecertstore=cacerts_x.dat
sl@0
   445
		stringstream strArg1, strArg2, strArg3, strArg4, strArg5;
sl@0
   446
		strArg1 <<"--hfilecertstore=SDP-Security_Tools-CertApp-FILEDAT_000" <<num_tests << ".txt" ; 
sl@0
   447
		
sl@0
   448
		strArg2<< "--bfilecertstore=SDP-Security_Tools-CertApp-FILEDAT_000"<<num_tests <<".dat";
sl@0
   449
		cout <<"string value is " << strArg2.str().c_str() << endl;	
sl@0
   450
		
sl@0
   451
		strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
sl@0
   452
		cout <<"string value is " << strArg3.str().c_str() << endl;
sl@0
   453
sl@0
   454
		string argument1, argument2, argument3, argument4, argument5;
sl@0
   455
		const char *argv_certclient[4];
sl@0
   456
		
sl@0
   457
		argument1 = strArg1.str().c_str();
sl@0
   458
		argument3 = strArg3.str().c_str();
sl@0
   459
sl@0
   460
		argv_certclient[0] = argument3.c_str(); // --hcertclients=t_certclients_0.txt
sl@0
   461
		argv_certclient[1] = argument1.c_str(); // --hfilecertstore=t_cacerts_x.txt
sl@0
   462
		argv_certclient[2] = "--out";			//--out
sl@0
   463
		argument2 = strArg2.str().c_str();
sl@0
   464
		argv_certclient[3] = argument2.c_str(); //--bfilecertstore=cacerts_x.dat
sl@0
   465
sl@0
   466
		char *argument_ptr[4]; 
sl@0
   467
		char **argv, **argv1, **argv2 ;
sl@0
   468
		for(int n = 0; n<argCount4; n++)
sl@0
   469
			{
sl@0
   470
			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
   471
			argv = argument_ptr;  
sl@0
   472
			}
sl@0
   473
sl@0
   474
		testCaseType.str("SEC-TOOLS-CERTAPP-FILEDAT_CREATE");
sl@0
   475
		RunCertAppTool(argCount4, argv, caCertFileName, testCaseType, num_tests); 
sl@0
   476
		
sl@0
   477
/**
sl@0
   478
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0000
sl@0
   479
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   480
*/	
sl@0
   481
/**
sl@0
   482
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0001
sl@0
   483
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   484
*/	
sl@0
   485
/**
sl@0
   486
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0002
sl@0
   487
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   488
*/	
sl@0
   489
/**
sl@0
   490
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0003
sl@0
   491
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   492
*/	
sl@0
   493
/**
sl@0
   494
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0004
sl@0
   495
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   496
*/	
sl@0
   497
/**
sl@0
   498
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0005
sl@0
   499
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   500
*/	
sl@0
   501
/**
sl@0
   502
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0006
sl@0
   503
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   504
*/	
sl@0
   505
/**
sl@0
   506
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0007
sl@0
   507
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   508
*/	
sl@0
   509
/**
sl@0
   510
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0008
sl@0
   511
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   512
*/	
sl@0
   513
sl@0
   514
		//AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   515
		//ex:certapp  --hfilecertstore=tAugment_cacerts_x.txt  --bfilecertstore=cacerts.dat --out --bfilecertstore=new_extra_filecertstore.dat
sl@0
   516
		stringstream augFileName, textDumpFileName;
sl@0
   517
		augFileName<<"SDP-Security_Tools-CertApp-FILEAUG_000" <<num_tests << ".dat";
sl@0
   518
		strArg4<<"--bfilecertstore=SDP-Security_Tools-CertApp-FILEAUG_000" << num_tests << ".dat";
sl@0
   519
		argument4 = strArg4.str();
sl@0
   520
		argv_certclient[0] =  "--hfilecertstore=tfile_Augment.txt";  //--hfilecertstore=tAugment_cacerts_x.txt
sl@0
   521
		argv_certclient[1] =  argv_certclient[3]; //--bfilecertstore=cacerts_x.dat
sl@0
   522
		argv_certclient[2] = "--out";			  //--out
sl@0
   523
		argv_certclient[3] = argument4.c_str();  //--bfilecertstore=aug_cacerts_x.dat
sl@0
   524
		
sl@0
   525
		for(int x = 0; x<argCount4; x++)
sl@0
   526
			{
sl@0
   527
			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
sl@0
   528
			argv1 = argument_ptr;   
sl@0
   529
			}
sl@0
   530
sl@0
   531
		testCaseType.str("SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT");
sl@0
   532
		RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests);
sl@0
   533
sl@0
   534
/**
sl@0
   535
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0000
sl@0
   536
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   537
*/	
sl@0
   538
/**
sl@0
   539
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0001
sl@0
   540
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   541
*/	
sl@0
   542
/**
sl@0
   543
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0002
sl@0
   544
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   545
*/	
sl@0
   546
/**
sl@0
   547
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0003
sl@0
   548
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   549
*/	
sl@0
   550
/**
sl@0
   551
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0004
sl@0
   552
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   553
*/	
sl@0
   554
/**
sl@0
   555
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0005
sl@0
   556
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   557
*/	
sl@0
   558
/**
sl@0
   559
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0006
sl@0
   560
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   561
*/	
sl@0
   562
/**
sl@0
   563
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0007
sl@0
   564
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   565
*/	
sl@0
   566
/**
sl@0
   567
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0008
sl@0
   568
  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   569
*/	
sl@0
   570
		
sl@0
   571
		//DUMP THE STORE TO HUMAN READABLE FORMAT
sl@0
   572
		//ex:certapp --bfilecertstore=test.dat --out --hfilecertstore=t_cacerts.txt 
sl@0
   573
		textDumpFileName <<"SDP-Security_Tools-CertApp-FILEDUMP_000"<< num_tests << ".txt";
sl@0
   574
		argv_certclient[0] =  argv_certclient[3];  //--bfilecertstore=aug_cacerts_x.dat
sl@0
   575
		argv_certclient[1] = "--out";
sl@0
   576
		strArg5<< "--hfilecertstore=SDP-Security_Tools-CertApp-FILEDUMP_000" <<num_tests << ".txt";
sl@0
   577
		argument5 = strArg5.str().c_str();
sl@0
   578
		argv_certclient[2] = argument5.c_str();
sl@0
   579
						
sl@0
   580
		for(int k = 0; k<argCount3; k++)
sl@0
   581
			{
sl@0
   582
			argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
sl@0
   583
			argv2 = argument_ptr;
sl@0
   584
			}
sl@0
   585
		//Dumps the augmented store
sl@0
   586
sl@0
   587
		testCaseType.str("SEC-TOOLS-CERTAPP-FILEDUMP_DUMP");
sl@0
   588
		RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); 
sl@0
   589
		}//End of cacerts
sl@0
   590
sl@0
   591
sl@0
   592
	//create config files with legal values for swi certstore 
sl@0
   593
	for(num_tests = 0; num_tests<KSwicertIndex; num_tests++)
sl@0
   594
		{
sl@0
   595
		stringstream swiCertStoreFileName;
sl@0
   596
		swiCertStoreFileName << "SDP-Security_Tools-CertApp-SWIDAT_000"<<num_tests<<".txt";
sl@0
   597
		GoodSwiCertTests(swiCertStoreFileName,num_tests);
sl@0
   598
sl@0
   599
/**
sl@0
   600
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0000
sl@0
   601
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   602
*/	
sl@0
   603
/**
sl@0
   604
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0001
sl@0
   605
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   606
*/	
sl@0
   607
/**
sl@0
   608
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0002
sl@0
   609
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   610
*/	
sl@0
   611
/**
sl@0
   612
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0003
sl@0
   613
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   614
*/	
sl@0
   615
/**
sl@0
   616
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0004
sl@0
   617
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   618
*/	
sl@0
   619
/**
sl@0
   620
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0005
sl@0
   621
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   622
*/	
sl@0
   623
/**
sl@0
   624
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0006
sl@0
   625
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   626
*/	
sl@0
   627
/**
sl@0
   628
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0007
sl@0
   629
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   630
*/	
sl@0
   631
/**
sl@0
   632
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0008
sl@0
   633
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   634
*/	
sl@0
   635
/**
sl@0
   636
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0009
sl@0
   637
  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
sl@0
   638
*/	
sl@0
   639
sl@0
   640
		//CREATE THE SWICERTSTORE  FROM THE HUMAN READABLE TEXT INPUT
sl@0
   641
		//Ex: certapp --hcertclients=t_certclients_0.txt --hswicertstore=t_swicertstore_0.txt --out --bswicertstore=swicertstore_x.dat
sl@0
   642
		stringstream strArg1, strArg2, strArg3, strArg4, strArg5;
sl@0
   643
		strArg1 <<"--hswicertstore=SDP-Security_Tools-CertApp-SWIDAT_000" <<num_tests << ".txt" ; //--hswicertstore=t_cacerts_x.txt
sl@0
   644
		
sl@0
   645
		strArg2<< "--bswicertstore=SDP-Security_Tools-CertApp-SWIDAT_000" <<num_tests <<".dat"; //--bswicertstore=swicertstore.dat
sl@0
   646
		cout <<"string value is " << strArg2.str().c_str() << endl;	
sl@0
   647
		
sl@0
   648
		strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
sl@0
   649
		cout <<"string value is " << strArg3.str().c_str() << endl;
sl@0
   650
sl@0
   651
		string argument1, argument2, argument3, argument4, argument5;
sl@0
   652
		const char *argv_certclient[4];
sl@0
   653
		
sl@0
   654
		argument1 = strArg1.str().c_str();
sl@0
   655
		argument3 = strArg3.str().c_str();
sl@0
   656
sl@0
   657
		argv_certclient[0] = argument3.c_str(); //--hcertclients=t_certclients_0.txt
sl@0
   658
		argv_certclient[1] = argument1.c_str(); //--hswicertstore=t_swicertstore_
sl@0
   659
		argv_certclient[2] = "--out";
sl@0
   660
		argument2 = strArg2.str().c_str();
sl@0
   661
		argv_certclient[3] = argument2.c_str();  //--bswicertstore=swicertstore_x.dat
sl@0
   662
sl@0
   663
	    char *argument_ptr[4]; 
sl@0
   664
	
sl@0
   665
		for(int j=0; j<argCount4; j++)
sl@0
   666
			{
sl@0
   667
			cout << "Value in argv_certclient " << j << "is " <<argv_certclient[j] <<endl;
sl@0
   668
			}
sl@0
   669
sl@0
   670
		char **argv;
sl@0
   671
		for(int n = 0; n<argCount4; n++)
sl@0
   672
			{
sl@0
   673
			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
   674
			argv = argument_ptr;
sl@0
   675
			}
sl@0
   676
sl@0
   677
		testCaseType.str("SEC-TOOLS-CERTAPP-SWIDAT_CREATE");
sl@0
   678
		RunCertAppTool(argCount4, argv,swiCertStoreFileName, testCaseType, num_tests); 
sl@0
   679
sl@0
   680
/**
sl@0
   681
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0000
sl@0
   682
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   683
*/	
sl@0
   684
/**
sl@0
   685
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0001
sl@0
   686
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   687
*/	
sl@0
   688
/**
sl@0
   689
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0002
sl@0
   690
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   691
*/	
sl@0
   692
/**
sl@0
   693
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0003
sl@0
   694
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   695
*/	
sl@0
   696
/**
sl@0
   697
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0004
sl@0
   698
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   699
*/	
sl@0
   700
/**
sl@0
   701
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0005
sl@0
   702
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   703
*/	
sl@0
   704
/**
sl@0
   705
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0006
sl@0
   706
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   707
*/	
sl@0
   708
/**
sl@0
   709
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0007
sl@0
   710
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   711
*/	
sl@0
   712
/**
sl@0
   713
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0008
sl@0
   714
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   715
*/	
sl@0
   716
/**
sl@0
   717
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0009
sl@0
   718
  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   719
*/	
sl@0
   720
sl@0
   721
		//AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
sl@0
   722
		//certapp  --hswicertstore=tAugment_swicertstore_x.txt  --bswicertstore=swicertstore_x.dat --out --bswicertstore=aug_swicertstore_x.dat
sl@0
   723
		stringstream augFileName, textDumpFileName;
sl@0
   724
		augFileName << "SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests <<".dat";
sl@0
   725
		strArg4<<"--bswicertstore=SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests << ".dat";
sl@0
   726
		argument4 = strArg4.str();
sl@0
   727
		argv_certclient[0] =  "--hswicertstore=tswi_Augment.txt";  //--hswicertstore=tAugment_swicertstore_x.txt
sl@0
   728
		argv_certclient[1] =  argv_certclient[3]; //--bswicertstore=swicertstore_x.dat
sl@0
   729
		argv_certclient[2] = "--out";
sl@0
   730
		argv_certclient[3] = argument4.c_str();  //--bswicertstore=aug_swicertstore_x.dat
sl@0
   731
		char **argv1;
sl@0
   732
		for(int x = 0; x<argCount4; x++)
sl@0
   733
			{
sl@0
   734
			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
sl@0
   735
			argv1 = argument_ptr;   
sl@0
   736
			}
sl@0
   737
sl@0
   738
		testCaseType.str("SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT");
sl@0
   739
		RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests);
sl@0
   740
sl@0
   741
/**
sl@0
   742
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0000
sl@0
   743
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   744
*/	
sl@0
   745
/**
sl@0
   746
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0001
sl@0
   747
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   748
*/	
sl@0
   749
/**
sl@0
   750
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0002
sl@0
   751
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   752
*/	
sl@0
   753
/**
sl@0
   754
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0003
sl@0
   755
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   756
*/	
sl@0
   757
/**
sl@0
   758
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0004
sl@0
   759
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   760
*/	
sl@0
   761
/**
sl@0
   762
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0005
sl@0
   763
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   764
*/	
sl@0
   765
/**
sl@0
   766
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0006
sl@0
   767
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   768
*/	
sl@0
   769
/**
sl@0
   770
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0007
sl@0
   771
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   772
*/	
sl@0
   773
/**
sl@0
   774
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0008
sl@0
   775
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   776
*/	
sl@0
   777
/**
sl@0
   778
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0009
sl@0
   779
  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   780
*/	
sl@0
   781
		
sl@0
   782
		//DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
sl@0
   783
		textDumpFileName << "SDP-Security_Tools-CertApp-SWIDUMP_000" <<num_tests << ".txt";
sl@0
   784
		argv_certclient[0] =  argv_certclient[3];  
sl@0
   785
		argv_certclient[1] = "--out";
sl@0
   786
		strArg5<< "--hswicertstore=SDP-Security_Tools-CertApp-SWIDUMP_000" <<num_tests << ".txt";
sl@0
   787
		argument5= strArg5.str().c_str();
sl@0
   788
		argv_certclient[2] = argument5.c_str();
sl@0
   789
			
sl@0
   790
		char ** argv2;
sl@0
   791
		for(int k = 0; k<argCount3; k++)
sl@0
   792
			{
sl@0
   793
			argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
sl@0
   794
			argv2 = argument_ptr;
sl@0
   795
			}
sl@0
   796
sl@0
   797
		testCaseType.str("SEC-TOOLS-CERTAPP-SWIDUMP_DUMP");
sl@0
   798
		RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); 
sl@0
   799
		}
sl@0
   800
	
sl@0
   801
	//Test with unicode filename
sl@0
   802
	TestWithUnicodFileName();
sl@0
   803
sl@0
   804
	//create empty config file
sl@0
   805
	TestsWithEmptyConfigFile();
sl@0
   806
sl@0
   807
	//Test case to test for different file formats
sl@0
   808
	TestsWithEncodedFileFormats();
sl@0
   809
sl@0
   810
	//Test case for REQ10313 to check decode/encode of stores
sl@0
   811
	TestToDecodeAndEncodeStore();
sl@0
   812
sl@0
   813
	//Test case for REQ10314 - reviewing aggregate certificate database
sl@0
   814
	TestToReviewingAggregateStore();
sl@0
   815
sl@0
   816
	//Test cases for BAD Params
sl@0
   817
/**
sl@0
   818
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0000
sl@0
   819
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   820
*/	
sl@0
   821
/**
sl@0
   822
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0001
sl@0
   823
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   824
*/	
sl@0
   825
/**
sl@0
   826
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATEE-0002
sl@0
   827
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   828
*/	
sl@0
   829
/**
sl@0
   830
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0003
sl@0
   831
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   832
*/	
sl@0
   833
/**
sl@0
   834
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0004
sl@0
   835
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   836
*/	
sl@0
   837
/**
sl@0
   838
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0005
sl@0
   839
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   840
*/	
sl@0
   841
/**
sl@0
   842
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0006
sl@0
   843
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   844
*/	
sl@0
   845
/**
sl@0
   846
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0007
sl@0
   847
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   848
*/	
sl@0
   849
/**
sl@0
   850
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0008
sl@0
   851
  @SYMTestCaseDesc	Create bad certclient config files
sl@0
   852
*/	
sl@0
   853
	//create certclient config files 
sl@0
   854
	testCaseType.str("SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE");
sl@0
   855
	testCaseIndex = 0;
sl@0
   856
	for(num_tests =0; num_tests<3; num_tests++) 
sl@0
   857
		{
sl@0
   858
		stringstream badCertClientsFileName;
sl@0
   859
		badCertClientsFileName << "SDP-Security_Tools-CertApp-CCBadParams-000"<<num_tests;
sl@0
   860
		BadFileCertClientsTests(badCertClientsFileName,num_tests,testCaseType,testCaseIndex);
sl@0
   861
		} //End of bad params for cerclients
sl@0
   862
sl@0
   863
/**
sl@0
   864
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0000
sl@0
   865
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   866
*/	
sl@0
   867
/**
sl@0
   868
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0001
sl@0
   869
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   870
*/	
sl@0
   871
/**
sl@0
   872
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0002
sl@0
   873
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   874
*/	
sl@0
   875
/**
sl@0
   876
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0003
sl@0
   877
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   878
*/	
sl@0
   879
/**
sl@0
   880
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0004
sl@0
   881
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   882
*/	
sl@0
   883
/**
sl@0
   884
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0005
sl@0
   885
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   886
*/	
sl@0
   887
/**
sl@0
   888
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0006
sl@0
   889
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   890
*/	
sl@0
   891
/**
sl@0
   892
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0007
sl@0
   893
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   894
*/	
sl@0
   895
/**
sl@0
   896
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0008
sl@0
   897
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   898
*/	
sl@0
   899
/**
sl@0
   900
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0009
sl@0
   901
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   902
*/	
sl@0
   903
/**
sl@0
   904
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0010
sl@0
   905
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   906
*/	
sl@0
   907
/**
sl@0
   908
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0011
sl@0
   909
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   910
*/	
sl@0
   911
/**
sl@0
   912
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0012
sl@0
   913
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   914
*/	
sl@0
   915
/**
sl@0
   916
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0013
sl@0
   917
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   918
*/	
sl@0
   919
/**
sl@0
   920
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0014
sl@0
   921
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   922
*/	
sl@0
   923
/**
sl@0
   924
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0015
sl@0
   925
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   926
*/	
sl@0
   927
/**
sl@0
   928
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0016
sl@0
   929
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   930
*/	
sl@0
   931
/**
sl@0
   932
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0017
sl@0
   933
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   934
*/	
sl@0
   935
/**
sl@0
   936
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0018
sl@0
   937
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   938
*/	
sl@0
   939
/**
sl@0
   940
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0019
sl@0
   941
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   942
*/	
sl@0
   943
/**
sl@0
   944
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0020
sl@0
   945
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   946
*/	
sl@0
   947
/**
sl@0
   948
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0021
sl@0
   949
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   950
*/	
sl@0
   951
/**
sl@0
   952
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0022
sl@0
   953
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   954
*/	
sl@0
   955
/**
sl@0
   956
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0023
sl@0
   957
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   958
*/	
sl@0
   959
/**
sl@0
   960
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0024
sl@0
   961
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   962
*/	
sl@0
   963
/**
sl@0
   964
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0025
sl@0
   965
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   966
*/	
sl@0
   967
/**
sl@0
   968
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0026
sl@0
   969
  @SYMTestCaseDesc	Create bad config files for file certstore
sl@0
   970
*/	
sl@0
   971
	//create bad config files for file certstore - cacerts.dat
sl@0
   972
	testCaseType.str("SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE");
sl@0
   973
	testCaseIndex = 0;
sl@0
   974
	for(num_tests = 0; num_tests<KFileArrayIndex+1; num_tests++)
sl@0
   975
		{
sl@0
   976
		stringstream badCaCertsFileName;
sl@0
   977
		badCaCertsFileName << "SDP-Security_Tools-CertApp-FileBadParams-000"<<num_tests; 
sl@0
   978
		BadFileCaCertTests(badCaCertsFileName,num_tests,testCaseType,testCaseIndex);
sl@0
   979
		}
sl@0
   980
	
sl@0
   981
/**
sl@0
   982
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0000
sl@0
   983
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
   984
*/	
sl@0
   985
/**
sl@0
   986
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0001
sl@0
   987
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
   988
*/	
sl@0
   989
/**
sl@0
   990
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0002
sl@0
   991
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
   992
*/	
sl@0
   993
/**
sl@0
   994
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0003
sl@0
   995
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
   996
*/	
sl@0
   997
/**
sl@0
   998
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0004
sl@0
   999
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1000
*/	
sl@0
  1001
/**
sl@0
  1002
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0005
sl@0
  1003
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1004
*/	
sl@0
  1005
/**
sl@0
  1006
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0006
sl@0
  1007
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1008
*/	
sl@0
  1009
/**
sl@0
  1010
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0007
sl@0
  1011
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1012
*/	
sl@0
  1013
/**
sl@0
  1014
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0008
sl@0
  1015
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1016
*/	
sl@0
  1017
/**
sl@0
  1018
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0009
sl@0
  1019
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1020
*/	
sl@0
  1021
/**
sl@0
  1022
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0010
sl@0
  1023
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1024
*/	
sl@0
  1025
/**
sl@0
  1026
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0011
sl@0
  1027
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1028
*/	
sl@0
  1029
/**
sl@0
  1030
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0012
sl@0
  1031
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1032
*/	
sl@0
  1033
/**
sl@0
  1034
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0013
sl@0
  1035
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1036
*/	
sl@0
  1037
/**
sl@0
  1038
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0014
sl@0
  1039
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1040
*/	
sl@0
  1041
/**
sl@0
  1042
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0015
sl@0
  1043
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1044
*/	
sl@0
  1045
/**
sl@0
  1046
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0016
sl@0
  1047
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1048
*/	
sl@0
  1049
/**
sl@0
  1050
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0017
sl@0
  1051
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1052
*/	
sl@0
  1053
/**
sl@0
  1054
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0018
sl@0
  1055
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1056
*/	
sl@0
  1057
/**
sl@0
  1058
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0019
sl@0
  1059
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1060
*/	
sl@0
  1061
/**
sl@0
  1062
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0020
sl@0
  1063
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1064
*/	
sl@0
  1065
/**
sl@0
  1066
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0021
sl@0
  1067
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1068
*/	
sl@0
  1069
/**
sl@0
  1070
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0022
sl@0
  1071
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1072
*/	
sl@0
  1073
/**
sl@0
  1074
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0023
sl@0
  1075
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1076
*/	
sl@0
  1077
/**
sl@0
  1078
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0024
sl@0
  1079
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1080
*/	
sl@0
  1081
/**
sl@0
  1082
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0025
sl@0
  1083
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1084
*/	
sl@0
  1085
/**
sl@0
  1086
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0026
sl@0
  1087
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1088
*/	
sl@0
  1089
/**
sl@0
  1090
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0027
sl@0
  1091
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1092
*/	
sl@0
  1093
/**
sl@0
  1094
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0028
sl@0
  1095
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1096
*/	
sl@0
  1097
/**
sl@0
  1098
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0029
sl@0
  1099
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1100
*/	
sl@0
  1101
/**
sl@0
  1102
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0030
sl@0
  1103
  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
sl@0
  1104
*/	
sl@0
  1105
	//create config files with invalid values swi certstore 
sl@0
  1106
	testCaseType.str("SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE");
sl@0
  1107
	testCaseIndex = 0;
sl@0
  1108
	for(num_tests = 0; num_tests<KSwiBadcertIndex; num_tests++)
sl@0
  1109
		{
sl@0
  1110
		stringstream badSwiCertsFileName;
sl@0
  1111
		badSwiCertsFileName << "SDP-Security_Tools-CertApp-SwiBadParams-000"<<num_tests;
sl@0
  1112
		BadSwiCertTests(badSwiCertsFileName,num_tests,testCaseType,testCaseIndex);
sl@0
  1113
		}
sl@0
  1114
sl@0
  1115
/**
sl@0
  1116
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0001
sl@0
  1117
  @SYMTestCaseDesc	Initializing a CUnifiedCertStore
sl@0
  1118
*/	
sl@0
  1119
/**
sl@0
  1120
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0002
sl@0
  1121
  @SYMTestCaseDesc	Get the list of certificates
sl@0
  1122
*/	
sl@0
  1123
/**
sl@0
  1124
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0003
sl@0
  1125
  @SYMTestCaseDesc	Get certificate details
sl@0
  1126
*/	
sl@0
  1127
/**
sl@0
  1128
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0004
sl@0
  1129
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1130
*/	
sl@0
  1131
/**
sl@0
  1132
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0005
sl@0
  1133
  @SYMTestCaseDesc	Get applications
sl@0
  1134
*/	
sl@0
  1135
/**
sl@0
  1136
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0006
sl@0
  1137
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1138
*/	
sl@0
  1139
/**
sl@0
  1140
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0007
sl@0
  1141
  @SYMTestCaseDesc	Get certificate details
sl@0
  1142
*/	
sl@0
  1143
/**
sl@0
  1144
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0008
sl@0
  1145
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1146
*/	
sl@0
  1147
/**
sl@0
  1148
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0009
sl@0
  1149
  @SYMTestCaseDesc	Get applications
sl@0
  1150
*/	
sl@0
  1151
/**
sl@0
  1152
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0010
sl@0
  1153
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1154
*/	
sl@0
  1155
/**
sl@0
  1156
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0011
sl@0
  1157
  @SYMTestCaseDesc	Get certificate details
sl@0
  1158
*/	
sl@0
  1159
/**
sl@0
  1160
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0012
sl@0
  1161
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1162
*/	
sl@0
  1163
/**
sl@0
  1164
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0013
sl@0
  1165
  @SYMTestCaseDesc	Get applications
sl@0
  1166
*/	
sl@0
  1167
/**
sl@0
  1168
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0014
sl@0
  1169
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1170
*/	
sl@0
  1171
/**
sl@0
  1172
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0015
sl@0
  1173
  @SYMTestCaseDesc	Get certificate details
sl@0
  1174
*/	
sl@0
  1175
/**
sl@0
  1176
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0016
sl@0
  1177
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1178
*/	
sl@0
  1179
/**
sl@0
  1180
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0017
sl@0
  1181
  @SYMTestCaseDesc	Get applications
sl@0
  1182
*/	
sl@0
  1183
/**
sl@0
  1184
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0018
sl@0
  1185
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1186
*/	
sl@0
  1187
/**
sl@0
  1188
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0019
sl@0
  1189
  @SYMTestCaseDesc	Get certificate details
sl@0
  1190
*/	
sl@0
  1191
/**
sl@0
  1192
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0020
sl@0
  1193
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1194
*/	
sl@0
  1195
/**
sl@0
  1196
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0021
sl@0
  1197
  @SYMTestCaseDesc	Get applications
sl@0
  1198
*/	
sl@0
  1199
/**
sl@0
  1200
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0022
sl@0
  1201
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1202
*/	
sl@0
  1203
/**
sl@0
  1204
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0023
sl@0
  1205
  @SYMTestCaseDesc	Get certificate details
sl@0
  1206
*/	
sl@0
  1207
/**
sl@0
  1208
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0024
sl@0
  1209
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1210
*/	
sl@0
  1211
/**
sl@0
  1212
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0025
sl@0
  1213
  @SYMTestCaseDesc	Get applications
sl@0
  1214
*/	
sl@0
  1215
/**
sl@0
  1216
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0026
sl@0
  1217
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1218
*/	
sl@0
  1219
	//Code to create Script files for the file/sw/certclients to run validation tests on emulator
sl@0
  1220
	//create script file for the symbian test harness-  for cacerts.dat
sl@0
  1221
	testCaseType.str("SEC-TOOLS-CERTAPP-GOODCACERT");
sl@0
  1222
	testCaseIndex = 0;
sl@0
  1223
	for(num_tests = 0; num_tests<1; num_tests++)
sl@0
  1224
		{
sl@0
  1225
		stringstream emu_CacertsFileName;
sl@0
  1226
		emu_CacertsFileName << "SDP-Security_Tools-CertApp-FILEDAT-EMU0"<<num_tests<<".script";
sl@0
  1227
		GenerateGoodCaCertsTestScripts(emu_CacertsFileName,testCaseType,testCaseIndex);
sl@0
  1228
		}
sl@0
  1229
sl@0
  1230
/**
sl@0
  1231
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0001
sl@0
  1232
  @SYMTestCaseDesc	Initialise a CertClientStore
sl@0
  1233
*/	
sl@0
  1234
/**
sl@0
  1235
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0002
sl@0
  1236
  @SYMTestCaseDesc	Get Count of Applications
sl@0
  1237
*/	
sl@0
  1238
/**
sl@0
  1239
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0003
sl@0
  1240
  @SYMTestCaseDesc	Getting the application list
sl@0
  1241
*/	
sl@0
  1242
/**
sl@0
  1243
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0004
sl@0
  1244
  @SYMTestCaseDesc	Get application with given id
sl@0
  1245
*/	
sl@0
  1246
/**
sl@0
  1247
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0005
sl@0
  1248
  @SYMTestCaseDesc	Get application with given id
sl@0
  1249
*/	
sl@0
  1250
/**
sl@0
  1251
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0006
sl@0
  1252
  @SYMTestCaseDesc	Get application with given id
sl@0
  1253
*/	
sl@0
  1254
/**
sl@0
  1255
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0007
sl@0
  1256
  @SYMTestCaseDesc	Get application with given id
sl@0
  1257
*/	
sl@0
  1258
/**
sl@0
  1259
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0008
sl@0
  1260
  @SYMTestCaseDesc	Destroy the manager
sl@0
  1261
*/	
sl@0
  1262
	//create script file for certclients.dat
sl@0
  1263
	testCaseType.str("SEC-TOOLS-CERTAPP-GOODCERT");
sl@0
  1264
	testCaseIndex = 0;
sl@0
  1265
	for(num_tests = 0; num_tests<1; num_tests++)
sl@0
  1266
		{
sl@0
  1267
		stringstream emu_CertClientsFileName;
sl@0
  1268
		emu_CertClientsFileName << "SDP-Security_Tools-CertApp-CCDAT-EMU0"<<num_tests<<".script";
sl@0
  1269
		GenerateGoodCertClientTestScripts(emu_CertClientsFileName,testCaseType,testCaseIndex);
sl@0
  1270
		}
sl@0
  1271
sl@0
  1272
/**
sl@0
  1273
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0001
sl@0
  1274
  @SYMTestCaseDesc	Initialise a SWICertStore
sl@0
  1275
*/
sl@0
  1276
/**
sl@0
  1277
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0002
sl@0
  1278
  @SYMTestCaseDesc	Get the list of certificates
sl@0
  1279
*/	
sl@0
  1280
/**
sl@0
  1281
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0003
sl@0
  1282
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1283
*/	
sl@0
  1284
/**
sl@0
  1285
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0004
sl@0
  1286
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1287
*/	
sl@0
  1288
/**
sl@0
  1289
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0005
sl@0
  1290
  @SYMTestCaseDesc	Get applications
sl@0
  1291
*/	
sl@0
  1292
/**
sl@0
  1293
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0006
sl@0
  1294
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1295
*/	
sl@0
  1296
/**
sl@0
  1297
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0007
sl@0
  1298
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1299
*/	
sl@0
  1300
/**
sl@0
  1301
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0008
sl@0
  1302
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1303
*/	
sl@0
  1304
/**
sl@0
  1305
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0009
sl@0
  1306
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1307
*/	
sl@0
  1308
/**
sl@0
  1309
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0010
sl@0
  1310
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1311
*/	
sl@0
  1312
/**
sl@0
  1313
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0011
sl@0
  1314
  @SYMTestCaseDesc	Get applications
sl@0
  1315
*/	
sl@0
  1316
/**
sl@0
  1317
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0012
sl@0
  1318
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1319
*/	
sl@0
  1320
/**
sl@0
  1321
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0013
sl@0
  1322
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1323
*/	
sl@0
  1324
/**
sl@0
  1325
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0014
sl@0
  1326
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1327
*/	
sl@0
  1328
/**
sl@0
  1329
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0015
sl@0
  1330
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1331
*/	
sl@0
  1332
/**
sl@0
  1333
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0016
sl@0
  1334
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1335
*/	
sl@0
  1336
/**
sl@0
  1337
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0017
sl@0
  1338
  @SYMTestCaseDesc	Get applications
sl@0
  1339
*/	
sl@0
  1340
/**
sl@0
  1341
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0018
sl@0
  1342
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1343
*/	
sl@0
  1344
/**
sl@0
  1345
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0019
sl@0
  1346
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1347
*/	
sl@0
  1348
/**
sl@0
  1349
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0020
sl@0
  1350
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1351
*/	
sl@0
  1352
/**
sl@0
  1353
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0021
sl@0
  1354
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1355
*/	
sl@0
  1356
/**
sl@0
  1357
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0022
sl@0
  1358
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1359
*/	
sl@0
  1360
/**
sl@0
  1361
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0023
sl@0
  1362
  @SYMTestCaseDesc	Get applications
sl@0
  1363
*/	
sl@0
  1364
/**
sl@0
  1365
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0024
sl@0
  1366
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1367
*/	
sl@0
  1368
/**
sl@0
  1369
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0025
sl@0
  1370
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1371
*/	
sl@0
  1372
/**
sl@0
  1373
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0026
sl@0
  1374
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1375
*/	
sl@0
  1376
/**
sl@0
  1377
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0027
sl@0
  1378
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1379
*/	
sl@0
  1380
/**
sl@0
  1381
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0028
sl@0
  1382
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1383
*/	
sl@0
  1384
/**
sl@0
  1385
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0029
sl@0
  1386
  @SYMTestCaseDesc	Get applications
sl@0
  1387
*/	
sl@0
  1388
/**
sl@0
  1389
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0030
sl@0
  1390
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1391
*/	
sl@0
  1392
/**
sl@0
  1393
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0031
sl@0
  1394
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1395
*/	
sl@0
  1396
/**
sl@0
  1397
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0032
sl@0
  1398
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1399
*/	
sl@0
  1400
/**
sl@0
  1401
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0033
sl@0
  1402
  @SYMTestCaseDesc	Get the systemupgrade flag
sl@0
  1403
*/	
sl@0
  1404
/**
sl@0
  1405
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0034
sl@0
  1406
  @SYMTestCaseDesc	Retrieve Certificate
sl@0
  1407
*/	
sl@0
  1408
/**
sl@0
  1409
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0035
sl@0
  1410
  @SYMTestCaseDesc	Get applications
sl@0
  1411
*/	
sl@0
  1412
/**
sl@0
  1413
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0036
sl@0
  1414
  @SYMTestCaseDesc	Get Trust certificate
sl@0
  1415
*/	
sl@0
  1416
/**
sl@0
  1417
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0037
sl@0
  1418
  @SYMTestCaseDesc	Get the capabilities
sl@0
  1419
*/	
sl@0
  1420
/**
sl@0
  1421
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0038
sl@0
  1422
  @SYMTestCaseDesc	Get the mandatory flag
sl@0
  1423
*/	
sl@0
  1424
	//create script file for the symbian test harness-  for swicerts.dat
sl@0
  1425
	testCaseType.str("SEC-TOOLS-CERTAPP-GOODSWICERT");
sl@0
  1426
	testCaseIndex = 0;
sl@0
  1427
	for(num_tests = 0; num_tests<1; num_tests++)
sl@0
  1428
		{
sl@0
  1429
		stringstream emu_SwiCertsFileName;
sl@0
  1430
		emu_SwiCertsFileName << "SDP-Security_Tools-CertApp-SWIDAT-EMU0"<<num_tests<<".script";
sl@0
  1431
		GenerateGoodSwiCertTestScripts(emu_SwiCertsFileName,testCaseType,testCaseIndex);
sl@0
  1432
		}
sl@0
  1433
sl@0
  1434
	int testCaseCount = failCount+passCount;
sl@0
  1435
	cout  << "\nTestrun result is :: " << failCount <<" tests failed out of " << testCaseCount <<endl;
sl@0
  1436
	file << "\n\nTotal number of test cases run is -> " << testCaseCount << endl;
sl@0
  1437
	file << failCount << " tests failed out of " << testCaseCount <<endl;
sl@0
  1438
	file.close();
sl@0
  1439
	return 0;
sl@0
  1440
}
sl@0
  1441
sl@0
  1442
sl@0
  1443
sl@0
  1444
/**
sl@0
  1445
Function to create input file for augmenting the existing store
sl@0
  1446
*/
sl@0
  1447
void CreateFileToAugmentStore()
sl@0
  1448
{
sl@0
  1449
	stringstream swifilename, cacertsfilename, certclientName;
sl@0
  1450
	swifilename <<"tswi_Augment.txt";
sl@0
  1451
	cacertsfilename<< "tfile_Augment.txt";
sl@0
  1452
	certclientName << "tCertClient_Augment.txt";
sl@0
  1453
sl@0
  1454
	SwiCertStoreConfigWriter swiwriter(swifilename);
sl@0
  1455
	swiwriter.WriteExtraSwiEntry();
sl@0
  1456
	
sl@0
  1457
	FileCertStoreConfigWriter filewriter(cacertsfilename);
sl@0
  1458
	filewriter.WriteExtraFileEntry();
sl@0
  1459
sl@0
  1460
	FileCertClientConfigWriter certclientwriter(certclientName);
sl@0
  1461
	certclientwriter.WriteExtraCertClientEntry();
sl@0
  1462
}
sl@0
  1463
sl@0
  1464
sl@0
  1465
/**
sl@0
  1466
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-UNICODEFILE_CREATE-0000
sl@0
  1467
  @SYMTestCaseDesc	Check the certapp tool for unicode named config file
sl@0
  1468
*/	
sl@0
  1469
/**
sl@0
  1470
Test case to check the certapp tool for unicode named config file
sl@0
  1471
Testing with only one unicode named config file for now
sl@0
  1472
*/
sl@0
  1473
void TestWithUnicodFileName()
sl@0
  1474
{
sl@0
  1475
	//unicode file name in utf8 format
sl@0
  1476
	const char *filename= "\xe4\xb8\x95\xe4\xb8\x8d\xe4\xb8\x8e\xe4\xb8\x90\xe4\xb8\x91\xe4\xb8\x96\xe4\xb8\x99\x2e\x74\x78\x74";
sl@0
  1477
	fstream fileHandle;
sl@0
  1478
sl@0
  1479
	OpenUtf8FStreamForWrite(fileHandle,filename);
sl@0
  1480
sl@0
  1481
	char * buffer;
sl@0
  1482
	long size;
sl@0
  1483
sl@0
  1484
	ifstream infile ("SDP-Security_Tools-CertApp-CCDAT_0000.txt",ifstream::binary);
sl@0
  1485
	// get size of file
sl@0
  1486
	infile.seekg(0,ifstream::end);
sl@0
  1487
	size=infile.tellg();
sl@0
  1488
	infile.seekg(0);
sl@0
  1489
	// allocate memory for file content
sl@0
  1490
	buffer = new char [size];
sl@0
  1491
	// read content of infile
sl@0
  1492
	infile.read (buffer,size);
sl@0
  1493
	// write to outfile
sl@0
  1494
	fileHandle.write (buffer,size);
sl@0
  1495
  
sl@0
  1496
	// release dynamically-allocated memory
sl@0
  1497
	delete[] buffer;
sl@0
  1498
	fileHandle.close();
sl@0
  1499
	infile.close();
sl@0
  1500
sl@0
  1501
	//create argument list for certapp
sl@0
  1502
	const char *argv_certclient[3];
sl@0
  1503
	stringstream str1;
sl@0
  1504
	str1 <<"--hcertclients=" << filename;
sl@0
  1505
	string string1;
sl@0
  1506
	string1 = str1.str();
sl@0
  1507
sl@0
  1508
	argv_certclient[0] =  string1.c_str();
sl@0
  1509
	argv_certclient[1] = "--out";
sl@0
  1510
	argv_certclient[2] = "--bcertclients=SDP-Security_Tools-CertApp-UNI00.dat";
sl@0
  1511
	
sl@0
  1512
	char **argv;
sl@0
  1513
	char *argument_ptr[3];
sl@0
  1514
	int argCount=3;
sl@0
  1515
	for(int n = 0; n<argCount; n++)
sl@0
  1516
		{
sl@0
  1517
		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  1518
		argv = argument_ptr;
sl@0
  1519
		}
sl@0
  1520
sl@0
  1521
	for(int i =0; i<argCount; i++)
sl@0
  1522
		{
sl@0
  1523
		cout << "Arguments Being passed to the RunCertApp tool is " << argv[i] << endl;
sl@0
  1524
		}
sl@0
  1525
sl@0
  1526
	int ret = RunCertApp(progress, errors, argCount, argv); 
sl@0
  1527
	cout << "Return value from certapp is " << ret <<endl;
sl@0
  1528
	stringstream logging;
sl@0
  1529
	if(ret!= 0)
sl@0
  1530
		{
sl@0
  1531
		failCount++;
sl@0
  1532
		logging << "Error in creating store using the unicode file name config file " << filename << " and result is " << ret << " Fail";
sl@0
  1533
		}
sl@0
  1534
	else
sl@0
  1535
		{
sl@0
  1536
		passCount++;
sl@0
  1537
		logging << "No Error in creating store using the unicode file named config file " << filename << " and result is " << ret << " Pass";
sl@0
  1538
		}
sl@0
  1539
	
sl@0
  1540
	stringstream testCaseType("SEC-TOOLS-CERTAPP-UNICODEFILE_CREATE");
sl@0
  1541
	writeTMSResult(file, testCaseType, 0, ret==0, logging);
sl@0
  1542
}
sl@0
  1543
sl@0
  1544
/**
sl@0
  1545
Generate Certclient config files
sl@0
  1546
*/
sl@0
  1547
void GoodFileCertClientsTests(const stringstream &aFilename)
sl@0
  1548
{
sl@0
  1549
	FileCertClientConfigWriter filewriter(aFilename);
sl@0
  1550
	const char *certclientPtr1; 
sl@0
  1551
	const char *certclientPtr2;
sl@0
  1552
	for(int i = 0; i<KAppUidIndex ; i++)
sl@0
  1553
		{
sl@0
  1554
		certclientPtr1 = goodAppNames[i];
sl@0
  1555
		certclientPtr2 = gooduid_array[i];
sl@0
  1556
		filewriter.WriteCertClientUid(certclientPtr2);
sl@0
  1557
		filewriter.WriteCertClientName(certclientPtr1);
sl@0
  1558
		}
sl@0
  1559
}
sl@0
  1560
sl@0
  1561
sl@0
  1562
/**
sl@0
  1563
Generate good config files for cacerts
sl@0
  1564
*/
sl@0
  1565
void GoodFileCaCertTests(const stringstream &aFilename ,int aValue)
sl@0
  1566
{
sl@0
  1567
	FileCertStoreConfigWriter fileCertWriter(aFilename);
sl@0
  1568
	const char **cacertPtr; 
sl@0
  1569
	const char **label = filecert_array[0];
sl@0
  1570
	switch(aValue)
sl@0
  1571
	{
sl@0
  1572
	case 0:
sl@0
  1573
		{
sl@0
  1574
		// Tests for GoodLabels
sl@0
  1575
		for(label = filecert_array[aValue]; *label; ++label)
sl@0
  1576
			{
sl@0
  1577
		
sl@0
  1578
			fileCertWriter.WriteFileEntry(*label);
sl@0
  1579
			}
sl@0
  1580
		break;
sl@0
  1581
		}
sl@0
  1582
	case 1:
sl@0
  1583
		{
sl@0
  1584
		// Tests for GoodDeletables
sl@0
  1585
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1586
			{
sl@0
  1587
			fileCertWriter.WriteFileEntry(*label,*cacertPtr);
sl@0
  1588
			label++;
sl@0
  1589
			}
sl@0
  1590
		break;
sl@0
  1591
		}
sl@0
  1592
	case 2:
sl@0
  1593
		{
sl@0
  1594
		//Tests for GoodFormats
sl@0
  1595
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1596
			{
sl@0
  1597
			fileCertWriter.WriteFileEntry(*label,0,*cacertPtr);
sl@0
  1598
			label++;
sl@0
  1599
			}
sl@0
  1600
		break;
sl@0
  1601
		}
sl@0
  1602
	case 3:
sl@0
  1603
		{
sl@0
  1604
		//Tests for GoodCertOwnerTypes
sl@0
  1605
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1606
			{
sl@0
  1607
			fileCertWriter.WriteFileEntry(*label,0,0,*cacertPtr);
sl@0
  1608
			label++;
sl@0
  1609
			}
sl@0
  1610
		break;
sl@0
  1611
		}
sl@0
  1612
	case 4:
sl@0
  1613
		{
sl@0
  1614
		//Tests for GoodSubjectKeyIds
sl@0
  1615
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1616
			{
sl@0
  1617
			fileCertWriter.WriteFileEntry(*label,0,0,0,*cacertPtr);
sl@0
  1618
			label++;
sl@0
  1619
			}
sl@0
  1620
		break;
sl@0
  1621
		}
sl@0
  1622
	case 5:
sl@0
  1623
		{
sl@0
  1624
		//Tests for GoodIssuerKeyIds
sl@0
  1625
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1626
			{
sl@0
  1627
			fileCertWriter.WriteFileEntry(*label,0,0,0,0,*cacertPtr);
sl@0
  1628
			label++;
sl@0
  1629
			}
sl@0
  1630
		break;
sl@0
  1631
		}
sl@0
  1632
	case 6:
sl@0
  1633
		{
sl@0
  1634
		//Tests for GoodApplications
sl@0
  1635
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1636
			{
sl@0
  1637
			fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,*cacertPtr);
sl@0
  1638
			label++;
sl@0
  1639
			}
sl@0
  1640
		break;
sl@0
  1641
		}
sl@0
  1642
	case 7:
sl@0
  1643
		{
sl@0
  1644
		//Tests for GoodTrusteds
sl@0
  1645
		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
sl@0
  1646
			{
sl@0
  1647
			fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,0,*cacertPtr);
sl@0
  1648
			label++;
sl@0
  1649
			}
sl@0
  1650
		break;
sl@0
  1651
		}
sl@0
  1652
	
sl@0
  1653
	case 8:
sl@0
  1654
		{	
sl@0
  1655
		//Test for PEM support
sl@0
  1656
		const char* datafilename = "\"root5ca.pem\"";
sl@0
  1657
		fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,0,0,datafilename);
sl@0
  1658
		}
sl@0
  1659
		break;
sl@0
  1660
	
sl@0
  1661
	default:
sl@0
  1662
		break;
sl@0
  1663
	}
sl@0
  1664
}
sl@0
  1665
sl@0
  1666
/**
sl@0
  1667
Generate  config file for swicert
sl@0
  1668
*/
sl@0
  1669
void GoodSwiCertTests(const stringstream &aFilename, int aIndex)
sl@0
  1670
{
sl@0
  1671
	SwiCertStoreConfigWriter swiWriter(aFilename);
sl@0
  1672
	const char **swiPtr1, **swiPtr2; 
sl@0
  1673
	swiPtr2 = swicert_array[0]; // labels for all scripts
sl@0
  1674
	switch(aIndex)
sl@0
  1675
	{
sl@0
  1676
	case 0:
sl@0
  1677
		{
sl@0
  1678
		// Tests for GoodLabels
sl@0
  1679
		for(swiPtr2=swicert_array[aIndex] ; *swiPtr2; ++swiPtr2)
sl@0
  1680
			{
sl@0
  1681
			swiWriter.WriteSwiEntry(*swiPtr2);
sl@0
  1682
			}
sl@0
  1683
		break;
sl@0
  1684
		}
sl@0
  1685
	case 1:
sl@0
  1686
		{
sl@0
  1687
		//Tests for GoodFormats
sl@0
  1688
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1689
			{
sl@0
  1690
			swiWriter.WriteSwiEntry(*swiPtr2,*swiPtr1);
sl@0
  1691
			++swiPtr2;
sl@0
  1692
			}
sl@0
  1693
		break;
sl@0
  1694
		}
sl@0
  1695
	case 2:
sl@0
  1696
		{
sl@0
  1697
		//Tests for GoodCertOwnerTypes
sl@0
  1698
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1699
			{
sl@0
  1700
			swiWriter.WriteSwiEntry(*swiPtr2,0,*swiPtr1);
sl@0
  1701
			++swiPtr2;
sl@0
  1702
			}
sl@0
  1703
		break;
sl@0
  1704
		}
sl@0
  1705
	case 3:
sl@0
  1706
		{
sl@0
  1707
		//Tests for GoodSubjectKeyIds
sl@0
  1708
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1709
			{
sl@0
  1710
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,*swiPtr1);
sl@0
  1711
			++swiPtr2;
sl@0
  1712
			}
sl@0
  1713
		break;
sl@0
  1714
		}
sl@0
  1715
	case 4:
sl@0
  1716
		{
sl@0
  1717
		//Tests for GoodIssuerKeyIds
sl@0
  1718
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1719
			{
sl@0
  1720
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,*swiPtr1);
sl@0
  1721
			++swiPtr2;
sl@0
  1722
			}
sl@0
  1723
		break;
sl@0
  1724
		}
sl@0
  1725
	case 5:
sl@0
  1726
		{
sl@0
  1727
		//Tests for GoodAswiPtr1lications
sl@0
  1728
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1729
			{
sl@0
  1730
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,*swiPtr1);
sl@0
  1731
			++swiPtr2;
sl@0
  1732
			}
sl@0
  1733
		break;
sl@0
  1734
		}
sl@0
  1735
	case 6:
sl@0
  1736
		{
sl@0
  1737
		//Tests for GoodTrusteds
sl@0
  1738
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1739
			{
sl@0
  1740
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,*swiPtr1);
sl@0
  1741
			++swiPtr2;
sl@0
  1742
			}
sl@0
  1743
		break;
sl@0
  1744
		}
sl@0
  1745
	case 7:
sl@0
  1746
		{
sl@0
  1747
		//Tests for GoodCapabilities
sl@0
  1748
		swiPtr1 = swicert_array[aIndex]; 
sl@0
  1749
		swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,*swiPtr1);
sl@0
  1750
		break;
sl@0
  1751
		}
sl@0
  1752
	case 8:
sl@0
  1753
		{
sl@0
  1754
		//Tests for sGoodMandatory
sl@0
  1755
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1756
			{
sl@0
  1757
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,0,*swiPtr1);
sl@0
  1758
			++swiPtr2;
sl@0
  1759
			}
sl@0
  1760
		break;
sl@0
  1761
		}
sl@0
  1762
	case 9:
sl@0
  1763
		{
sl@0
  1764
		//Tests for sGoodSystemUpgrade
sl@0
  1765
		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
sl@0
  1766
			{
sl@0
  1767
			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,0,0,*swiPtr1);
sl@0
  1768
			++swiPtr2;
sl@0
  1769
			}
sl@0
  1770
		break;
sl@0
  1771
		}
sl@0
  1772
	default:
sl@0
  1773
		break;
sl@0
  1774
	}
sl@0
  1775
}
sl@0
  1776
sl@0
  1777
/**
sl@0
  1778
Generate config  files with invalid values for the store
sl@0
  1779
*/
sl@0
  1780
void TestBadConfigFiles(const stringstream &aFilename, bool aBool, stringstream &aTestCaseType, int aTestCaseIndex)
sl@0
  1781
{
sl@0
  1782
	// create command line input for cacerts
sl@0
  1783
	//Ex:certapp --hcertclients=t_certclients_0.txt --hfilecertstore=t_cacerts_0.txt --out --bfilecertstore=cacerts_x.dat
sl@0
  1784
	stringstream strArg1, strArg2, strArg3;
sl@0
  1785
	stringstream configFileName;
sl@0
  1786
	configFileName <<aFilename.str() << ".txt";
sl@0
  1787
	cout << aFilename.str() <<endl;
sl@0
  1788
	if(aBool == 0) // file store
sl@0
  1789
		{
sl@0
  1790
		strArg1 <<"--hfilecertstore="<<aFilename.str() <<".txt";;//--hfilecertstore=t_cacerts_x.txt
sl@0
  1791
		
sl@0
  1792
		strArg2<< "--bfilecertstore=" << aFilename.str() <<".dat"; //--bfilecertstore=cacerts_x.dat
sl@0
  1793
		cout <<"string value is " << strArg2.str().c_str() << endl;	
sl@0
  1794
		}
sl@0
  1795
	else  //swi store
sl@0
  1796
		{
sl@0
  1797
		strArg1 <<"--hswicertstore="<<aFilename.str() <<".txt";;//--hswicertstore=t_cacerts_x.txt
sl@0
  1798
		
sl@0
  1799
		strArg2<< "--bswicertstore=" << aFilename.str() <<".dat"; //--bswicertstore=cacerts_x.dat
sl@0
  1800
		cout <<"string value is " << strArg2.str().c_str() << endl;	
sl@0
  1801
		}
sl@0
  1802
sl@0
  1803
	strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
sl@0
  1804
	cout <<"string value is " << strArg3.str().c_str() << endl;
sl@0
  1805
sl@0
  1806
	string argument1, argument2, argument3;
sl@0
  1807
	const char *argv_certclient[4];
sl@0
  1808
	
sl@0
  1809
	argument1 = strArg1.str().c_str();
sl@0
  1810
	argument3 = strArg3.str().c_str();
sl@0
  1811
sl@0
  1812
	argv_certclient[0] = argument3.c_str(); // --hcertclients=t_certclients_0.txt
sl@0
  1813
	argv_certclient[1] = argument1.c_str(); // --hfilecertstore=t_cacerts_x.txt
sl@0
  1814
	argv_certclient[2] = "--out";			//--out
sl@0
  1815
	argument2 = strArg2.str().c_str();
sl@0
  1816
	argv_certclient[3] = argument2.c_str(); //--bfilecertstore=cacerts_x.dat
sl@0
  1817
sl@0
  1818
	char *argument_ptr[4]; 
sl@0
  1819
	int argCount4 = 4;
sl@0
  1820
	char **argv;
sl@0
  1821
	for(int n = 0; n<argCount4; n++)
sl@0
  1822
		{
sl@0
  1823
		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  1824
		argv = argument_ptr;   
sl@0
  1825
		}
sl@0
  1826
	RunCertAppToolForBadParams(argCount4, argv, configFileName, aTestCaseType, aTestCaseIndex); 
sl@0
  1827
}
sl@0
  1828
sl@0
  1829
/**
sl@0
  1830
Generate bad config files for cacerts
sl@0
  1831
*/
sl@0
  1832
void BadFileCaCertTests(const stringstream &aFilename ,int aValue, stringstream &aTestCaseType, int &aTestIndex)
sl@0
  1833
{
sl@0
  1834
	const char **caCertPtr; 
sl@0
  1835
	int count = 0;
sl@0
  1836
	switch(aValue)
sl@0
  1837
	{
sl@0
  1838
	case 0:
sl@0
  1839
		{
sl@0
  1840
		// Tests for BadLabels
sl@0
  1841
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr ; ++caCertPtr )
sl@0
  1842
			{
sl@0
  1843
			stringstream file1, file2;
sl@0
  1844
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1845
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1846
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1847
			badcertfileWriter.WriteFileEntry(*caCertPtr);
sl@0
  1848
			TestBadConfigFiles(file1, 0, aTestCaseType, aTestIndex++);
sl@0
  1849
			count++;
sl@0
  1850
			}
sl@0
  1851
		break;
sl@0
  1852
		}
sl@0
  1853
	case 1:
sl@0
  1854
		{
sl@0
  1855
		// Tests for BadDeletables
sl@0
  1856
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1857
			{
sl@0
  1858
			stringstream file1, file2;
sl@0
  1859
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1860
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1861
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1862
			badcertfileWriter.WriteFileEntry(0,*caCertPtr);
sl@0
  1863
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1864
			count++;
sl@0
  1865
			}
sl@0
  1866
		break;
sl@0
  1867
		}
sl@0
  1868
	case 2:
sl@0
  1869
		{
sl@0
  1870
		//Tests for BadFormats
sl@0
  1871
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1872
			{
sl@0
  1873
			stringstream file1, file2;
sl@0
  1874
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1875
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1876
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1877
			badcertfileWriter.WriteFileEntry(0,0,*caCertPtr);
sl@0
  1878
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1879
			count++;
sl@0
  1880
			}
sl@0
  1881
		break;
sl@0
  1882
		}
sl@0
  1883
	case 3:
sl@0
  1884
		{
sl@0
  1885
		//Tests for BadCertOwnerTypes
sl@0
  1886
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1887
			{
sl@0
  1888
			stringstream file1, file2;
sl@0
  1889
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1890
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1891
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1892
			badcertfileWriter.WriteFileEntry(0,0,0,*caCertPtr);
sl@0
  1893
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1894
			count++;
sl@0
  1895
			}
sl@0
  1896
		break;
sl@0
  1897
		}
sl@0
  1898
	case 4:
sl@0
  1899
		{
sl@0
  1900
		//Tests for BadSubjectKeyIds
sl@0
  1901
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1902
			{
sl@0
  1903
			stringstream file1, file2;
sl@0
  1904
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1905
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1906
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1907
			badcertfileWriter.WriteFileEntry(0,0,0,0,*caCertPtr);
sl@0
  1908
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1909
			count++;
sl@0
  1910
			}
sl@0
  1911
		break;
sl@0
  1912
		}
sl@0
  1913
	case 5:
sl@0
  1914
		{
sl@0
  1915
		//Tests for BadIssuerKeyIds
sl@0
  1916
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1917
			{
sl@0
  1918
			stringstream file1, file2;
sl@0
  1919
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1920
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1921
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1922
			badcertfileWriter.WriteFileEntry(0,0,0,0,0,*caCertPtr);
sl@0
  1923
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1924
			count++;
sl@0
  1925
			}
sl@0
  1926
		break;
sl@0
  1927
		}
sl@0
  1928
	case 6:
sl@0
  1929
		{
sl@0
  1930
		//Tests for BadApplications
sl@0
  1931
		caCertPtr = badfilecert_array[aValue];
sl@0
  1932
		stringstream file1, file2;
sl@0
  1933
		file1 << aFilename.str() <<"_"<<count;
sl@0
  1934
		file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1935
		FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1936
		badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,*caCertPtr);
sl@0
  1937
		TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1938
		break;
sl@0
  1939
		}
sl@0
  1940
	case 7:
sl@0
  1941
		{
sl@0
  1942
		//Tests for BadTrusteds
sl@0
  1943
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1944
			{
sl@0
  1945
			stringstream file1, file2;
sl@0
  1946
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1947
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1948
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1949
			badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,0,*caCertPtr);
sl@0
  1950
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1951
			count++;
sl@0
  1952
			}
sl@0
  1953
		break;
sl@0
  1954
		}
sl@0
  1955
	case 8:
sl@0
  1956
		{
sl@0
  1957
		//Tests for BadDataFileName
sl@0
  1958
		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
sl@0
  1959
			{
sl@0
  1960
			stringstream file1, file2;
sl@0
  1961
			file1 << aFilename.str() <<"_"<<count;
sl@0
  1962
			file2 << aFilename.str() <<"_"<<count <<".txt";
sl@0
  1963
			FileBadCertStoreConfigWriter badcertfileWriter(file2);
sl@0
  1964
			badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,0,0,*caCertPtr);
sl@0
  1965
			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
sl@0
  1966
			count++;
sl@0
  1967
			}
sl@0
  1968
		break;
sl@0
  1969
		}
sl@0
  1970
	default:
sl@0
  1971
		break;
sl@0
  1972
	}
sl@0
  1973
}
sl@0
  1974
sl@0
  1975
sl@0
  1976
/**
sl@0
  1977
Generate bad Certclient config files
sl@0
  1978
*/
sl@0
  1979
void BadFileCertClientsTests(const stringstream &aFilename, int aIndex, stringstream &aTestCaseType, int &aTestCaseIndex)
sl@0
  1980
{
sl@0
  1981
	FileBadCertClientConfigWriter certfileWriter(aFilename);
sl@0
  1982
	const char *certfilePtr1, *certfilePtr2; 
sl@0
  1983
	
sl@0
  1984
	switch(aIndex)
sl@0
  1985
	{
sl@0
  1986
	case 0:
sl@0
  1987
		{
sl@0
  1988
		for(int i=0; i<KAppUidIndex; i++) // 4 badUids[] length
sl@0
  1989
			{
sl@0
  1990
			stringstream file1, file2;
sl@0
  1991
			file2 << aFilename.str() << "_" << i ;
sl@0
  1992
			file1 << aFilename.str() <<"_"<<i <<".txt";
sl@0
  1993
			FileBadCertClientConfigWriter certfileWriter(file1);
sl@0
  1994
			certfilePtr1 = goodcertclient_array[0]; // good app name and 
sl@0
  1995
			certfilePtr2 = badUids[i];
sl@0
  1996
			certfileWriter.WriteCertClientUid(certfilePtr2); // bad uid entry
sl@0
  1997
			certfileWriter.WriteCertClientName(certfilePtr1);
sl@0
  1998
			CertClientBadParamsFuncCall(file2, aTestCaseType, aTestCaseIndex++);
sl@0
  1999
			}
sl@0
  2000
		break;
sl@0
  2001
		}
sl@0
  2002
sl@0
  2003
	case 1:
sl@0
  2004
		{
sl@0
  2005
		for(int i = 0; i<4 ; i++) // length of badcertclient_array
sl@0
  2006
			{
sl@0
  2007
			stringstream file1, file2;
sl@0
  2008
			file2 << aFilename.str() << "_" << i ;
sl@0
  2009
			file1 << aFilename.str() <<"_"<<i <<".txt";
sl@0
  2010
			FileBadCertClientConfigWriter certfileWriter(file1);
sl@0
  2011
			certfilePtr1 = badcertclient_array[i];
sl@0
  2012
			certfilePtr2 = goodUids[0];
sl@0
  2013
			certfileWriter.WriteCertClientUid(certfilePtr2);
sl@0
  2014
			certfileWriter.WriteCertClientName(certfilePtr1);
sl@0
  2015
			CertClientBadParamsFuncCall(file2, aTestCaseType, aTestCaseIndex++);
sl@0
  2016
			}
sl@0
  2017
		break;
sl@0
  2018
		}
sl@0
  2019
	
sl@0
  2020
	// multiple names mapping to single uid
sl@0
  2021
	case 2:
sl@0
  2022
		{
sl@0
  2023
		stringstream file1;
sl@0
  2024
		file1 << aFilename.str() <<".txt";
sl@0
  2025
		FileBadCertClientConfigWriter certfileWriter(file1);
sl@0
  2026
		for(int i= 0; i<KAppUidIndex; i++)
sl@0
  2027
			{
sl@0
  2028
			certfilePtr1 = goodAppNames[i]; //app names - SW Install,SW install Ocsp Signing etc.
sl@0
  2029
			certfilePtr2 = goodUids[0];
sl@0
  2030
			certfileWriter.WriteCertClientName(certfilePtr1);
sl@0
  2031
			certfileWriter.WriteCertClientUid(certfilePtr2);
sl@0
  2032
			}
sl@0
  2033
		CertClientBadParamsFuncCall(file1, aTestCaseType, aTestCaseIndex++);
sl@0
  2034
		break;
sl@0
  2035
		}
sl@0
  2036
	
sl@0
  2037
	default:
sl@0
  2038
		break;
sl@0
  2039
	}
sl@0
  2040
}
sl@0
  2041
sl@0
  2042
sl@0
  2043
void CertClientBadParamsFuncCall(stringstream &aFileName, stringstream &aTestCaseType, int aTestCaseIndex)
sl@0
  2044
{
sl@0
  2045
	//Ex:certapp --hcertclients=t_certclients_0.txt --out --bcertclients=t_certclients_0.dat 
sl@0
  2046
	stringstream strArg1, strArg2, strArg3;
sl@0
  2047
	strArg1 <<"--hcertclients=" << aFileName.str() << ".txt";   
sl@0
  2048
	
sl@0
  2049
	strArg2<< "--bcertclients=" << aFileName.str() << ".dat"; 
sl@0
  2050
	cout <<"string value is " << strArg2.str().c_str() << endl;	
sl@0
  2051
	
sl@0
  2052
	string argument1, argument2;
sl@0
  2053
	const char *argv_certclient[3];
sl@0
  2054
	
sl@0
  2055
	argument1= strArg1.str().c_str();
sl@0
  2056
	argument2= strArg2.str().c_str();
sl@0
  2057
sl@0
  2058
	argv_certclient[0] = argument1.c_str(); // --hcertclients=tbad_certclients_x.txt
sl@0
  2059
	argv_certclient[1] = "--out";			//--out
sl@0
  2060
	argv_certclient[2] = argument2.c_str(); //--bcertclients=t_certclients_x.dat
sl@0
  2061
sl@0
  2062
	char *argument_ptr[3]; 
sl@0
  2063
	int argCount3 = 3;
sl@0
  2064
	char **argv;
sl@0
  2065
	for(int n = 0; n<argCount3; n++)
sl@0
  2066
		{
sl@0
  2067
		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  2068
		argv = argument_ptr;   
sl@0
  2069
		}
sl@0
  2070
	RunCertAppToolForBadParams(argCount3, argv, aFileName, aTestCaseType, aTestCaseIndex); 
sl@0
  2071
}
sl@0
  2072
sl@0
  2073
sl@0
  2074
/**
sl@0
  2075
Generate  config file for swicert
sl@0
  2076
*/
sl@0
  2077
void BadSwiCertTests(const stringstream &aFileName, int aIndex, stringstream &aTestCaseType, int &aTestIndex)
sl@0
  2078
{
sl@0
  2079
	const char **swicertPtr1; 
sl@0
  2080
	int count = 0 ;
sl@0
  2081
	switch(aIndex)
sl@0
  2082
	{
sl@0
  2083
	case 0:
sl@0
  2084
		{
sl@0
  2085
		// Tests for BadLabels
sl@0
  2086
		for(swicertPtr1= badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2087
			{
sl@0
  2088
			stringstream file1, file2;
sl@0
  2089
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2090
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2091
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2092
			badswiWriter.WriteSwiEntry(*swicertPtr1);
sl@0
  2093
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2094
			count++;
sl@0
  2095
			}
sl@0
  2096
		break;
sl@0
  2097
		}
sl@0
  2098
sl@0
  2099
	case 1:
sl@0
  2100
		{
sl@0
  2101
		//Tests for BadFormats
sl@0
  2102
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2103
			{
sl@0
  2104
			stringstream file1, file2;
sl@0
  2105
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2106
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2107
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2108
			badswiWriter.WriteSwiEntry(0,*swicertPtr1);
sl@0
  2109
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2110
			count++;
sl@0
  2111
			}
sl@0
  2112
		break;
sl@0
  2113
		}
sl@0
  2114
	case 2:
sl@0
  2115
		{
sl@0
  2116
		//Tests for BadCertOwnerTypes
sl@0
  2117
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2118
			{
sl@0
  2119
			stringstream file1, file2;
sl@0
  2120
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2121
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2122
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2123
			badswiWriter.WriteSwiEntry(0,0,*swicertPtr1);
sl@0
  2124
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2125
			count++;
sl@0
  2126
			}
sl@0
  2127
		break;
sl@0
  2128
		}
sl@0
  2129
	case 3:
sl@0
  2130
		{
sl@0
  2131
		//Tests for BadSubjectKeyIds
sl@0
  2132
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2133
			{
sl@0
  2134
			stringstream file1, file2;
sl@0
  2135
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2136
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2137
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2138
			badswiWriter.WriteSwiEntry(0,0,0,*swicertPtr1);
sl@0
  2139
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2140
			count++;	
sl@0
  2141
			}
sl@0
  2142
		break;
sl@0
  2143
		}
sl@0
  2144
	case 4:
sl@0
  2145
		{
sl@0
  2146
		//Tests for BadIssuerKeyIds
sl@0
  2147
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2148
			{
sl@0
  2149
			stringstream file1, file2;
sl@0
  2150
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2151
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2152
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2153
			badswiWriter.WriteSwiEntry(0,0,0,0,*swicertPtr1);
sl@0
  2154
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2155
			count++;
sl@0
  2156
			}
sl@0
  2157
		break;
sl@0
  2158
		}
sl@0
  2159
	case 5:
sl@0
  2160
		{
sl@0
  2161
		//Tests for BadApplications
sl@0
  2162
		swicertPtr1 = badswicert_array[aIndex];
sl@0
  2163
			{
sl@0
  2164
			stringstream file1, file2;
sl@0
  2165
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2166
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2167
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2168
			badswiWriter.WriteSwiEntry(0,0,0,0,0,*swicertPtr1);
sl@0
  2169
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2170
			count++;
sl@0
  2171
			}
sl@0
  2172
		break;
sl@0
  2173
		}
sl@0
  2174
	case 6:
sl@0
  2175
		{
sl@0
  2176
		//Tests for BadTrusteds
sl@0
  2177
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2178
			{
sl@0
  2179
			stringstream file1, file2;
sl@0
  2180
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2181
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2182
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2183
			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,*swicertPtr1);
sl@0
  2184
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2185
			count++;
sl@0
  2186
			}
sl@0
  2187
		break;
sl@0
  2188
		}
sl@0
  2189
	case 7:
sl@0
  2190
		{
sl@0
  2191
		//Tests for BadDataFileName
sl@0
  2192
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2193
			{
sl@0
  2194
			stringstream file1, file2;
sl@0
  2195
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2196
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2197
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2198
			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,*swicertPtr1);
sl@0
  2199
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2200
			count++;
sl@0
  2201
			}
sl@0
  2202
		break;
sl@0
  2203
		}
sl@0
  2204
	case 8:
sl@0
  2205
		{
sl@0
  2206
		//Tests for BadCapabilities
sl@0
  2207
		swicertPtr1 = badswicert_array[aIndex];
sl@0
  2208
			{
sl@0
  2209
			stringstream file1, file2;
sl@0
  2210
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2211
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2212
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2213
			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,*swicertPtr1);
sl@0
  2214
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2215
			count++;
sl@0
  2216
			}
sl@0
  2217
		break;
sl@0
  2218
		}
sl@0
  2219
	case 9:
sl@0
  2220
		{
sl@0
  2221
		//Tests for BadMandatory
sl@0
  2222
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2223
			{
sl@0
  2224
			stringstream file1, file2;
sl@0
  2225
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2226
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2227
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2228
			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,0,*swicertPtr1);
sl@0
  2229
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2230
			count++;
sl@0
  2231
			}
sl@0
  2232
		break;
sl@0
  2233
		}
sl@0
  2234
	case 10:
sl@0
  2235
		{
sl@0
  2236
		//Tests for BadSystemUpgrade
sl@0
  2237
		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
sl@0
  2238
			{
sl@0
  2239
			stringstream file1, file2;
sl@0
  2240
			file1 << aFileName.str() <<"_"<<count;
sl@0
  2241
			file2 << aFileName.str() <<"_"<<count <<".txt";
sl@0
  2242
			SwiBadCertStoreConfigWriter badswiWriter(file2);
sl@0
  2243
			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,0,0,*swicertPtr1);
sl@0
  2244
			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
sl@0
  2245
			count++;
sl@0
  2246
			}
sl@0
  2247
		break;
sl@0
  2248
		}
sl@0
  2249
	default:
sl@0
  2250
		break;
sl@0
  2251
	}
sl@0
  2252
}
sl@0
  2253
sl@0
  2254
/**
sl@0
  2255
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0000
sl@0
  2256
  @SYMTestCaseDesc	Test the tool with empty configuration file as input
sl@0
  2257
*/	
sl@0
  2258
/**
sl@0
  2259
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0001
sl@0
  2260
  @SYMTestCaseDesc	Test the tool with empty configuration file as input
sl@0
  2261
*/	
sl@0
  2262
/**
sl@0
  2263
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0002
sl@0
  2264
  @SYMTestCaseDesc	Test the tool with empty configuration file as input
sl@0
  2265
*/	
sl@0
  2266
/**
sl@0
  2267
Test cases to test the tool with empty configuration files as input for all the stores
sl@0
  2268
*/
sl@0
  2269
void TestsWithEmptyConfigFile()
sl@0
  2270
{
sl@0
  2271
	stringstream testCaseType("SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE");
sl@0
  2272
	for(int i = 0 ; i<3 ; i++)
sl@0
  2273
		{
sl@0
  2274
		stringstream emptyConfigFileName, configFileName1, configFileName2;
sl@0
  2275
		emptyConfigFileName<< "SDP-Security_Tools-CertApp-EmptyFile_000"<< i <<".txt";
sl@0
  2276
		switch(i)
sl@0
  2277
			{
sl@0
  2278
			case 0:
sl@0
  2279
				{
sl@0
  2280
				configFileName1 << "--hcertclients=" << emptyConfigFileName.str();
sl@0
  2281
				configFileName2 << "--bcertclients=SDP-Security_Tools-CertApp-EmptyFile_0000"<<".dat";
sl@0
  2282
				FileCertClientConfigWriter certclient(emptyConfigFileName);
sl@0
  2283
				}
sl@0
  2284
			break;
sl@0
  2285
sl@0
  2286
			case 1:
sl@0
  2287
				{
sl@0
  2288
				configFileName1 << "--hfilecertstore=" << emptyConfigFileName.str();
sl@0
  2289
				configFileName2 << "--bfilecertstore=SDP-Security_Tools-CertApp-EmptyFile_0001"<<".dat";
sl@0
  2290
				FileCertStoreConfigWriter fileWriter(emptyConfigFileName);
sl@0
  2291
				}
sl@0
  2292
			break;
sl@0
  2293
sl@0
  2294
			case 2:
sl@0
  2295
				{
sl@0
  2296
				configFileName1 << "--hswicertstore=" << emptyConfigFileName.str();
sl@0
  2297
				configFileName2 << "--bswicertstore=SDP-Security_Tools-CertApp-EmptyFile_0002"<<".dat";
sl@0
  2298
				SwiCertStoreConfigWriter swiFileWriter(emptyConfigFileName);
sl@0
  2299
				}
sl@0
  2300
			break;
sl@0
  2301
sl@0
  2302
			default:
sl@0
  2303
				break;
sl@0
  2304
			}
sl@0
  2305
sl@0
  2306
		string argument1, argument2;
sl@0
  2307
		argument1  = configFileName1.str().c_str();
sl@0
  2308
		argument2  = configFileName2.str().c_str();
sl@0
  2309
		const char *argv_certclient[4];
sl@0
  2310
		argv_certclient[0] = "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
sl@0
  2311
		argv_certclient[1] = argument1.c_str();  //"--hfilecertstore=t_emptyConfig.txt";
sl@0
  2312
		argv_certclient[2] = "--out";
sl@0
  2313
		argv_certclient[3] = argument2.c_str();
sl@0
  2314
sl@0
  2315
		int argcount = 4;
sl@0
  2316
		char *argument_ptr[4]; 
sl@0
  2317
		char **argv;
sl@0
  2318
		for(int n = 0; n<argcount; n++)
sl@0
  2319
			{
sl@0
  2320
			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  2321
			argv = argument_ptr;
sl@0
  2322
			}
sl@0
  2323
		for(int z=0; z<argcount; z++)
sl@0
  2324
			{
sl@0
  2325
			cout << "Testing with empty configuration file" << argv[z] <<endl;
sl@0
  2326
			}
sl@0
  2327
sl@0
  2328
		RunCertAppTool(argcount, argv, emptyConfigFileName, testCaseType, i);
sl@0
  2329
		}
sl@0
  2330
}
sl@0
  2331
sl@0
  2332
/**
sl@0
  2333
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0000
sl@0
  2334
  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
sl@0
  2335
*/	
sl@0
  2336
/**
sl@0
  2337
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0001
sl@0
  2338
  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
sl@0
  2339
*/	
sl@0
  2340
/**
sl@0
  2341
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0002
sl@0
  2342
  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
sl@0
  2343
*/	
sl@0
  2344
/**
sl@0
  2345
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0003
sl@0
  2346
  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
sl@0
  2347
*/	
sl@0
  2348
/**
sl@0
  2349
Code to test the certapp tool for different file encode formats
sl@0
  2350
*/
sl@0
  2351
void TestsWithEncodedFileFormats()
sl@0
  2352
{
sl@0
  2353
	stringstream testCaseType("SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE");
sl@0
  2354
	bool hasResult;
sl@0
  2355
sl@0
  2356
	//Provide files with different encoded formats
sl@0
  2357
	for(int i = 0; i<4; i++)
sl@0
  2358
		{
sl@0
  2359
		stringstream unicodeName, outputFileName, strArg3;
sl@0
  2360
		const char *argv_certclient[KIndex];
sl@0
  2361
		unicodeName<< fileEncodeType[i];
sl@0
  2362
		outputFileName <<"SDP-Security_Tools-CertApp-FileFormats-000" <<i;
sl@0
  2363
		strArg3 << "--bfilecertstore="<< "SDP-Security_Tools-CertApp-FileFormats-000" <<i<<".dat";
sl@0
  2364
		
sl@0
  2365
		string argument;
sl@0
  2366
		argument = strArg3.str().c_str();
sl@0
  2367
		argv_certclient[0] = "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
sl@0
  2368
		argv_certclient[1] = fileEncodeType[i];   // manually created unicode content files
sl@0
  2369
		argv_certclient[2] = "--out";
sl@0
  2370
		argv_certclient[3] = argument.c_str();
sl@0
  2371
sl@0
  2372
		for(int m=0; m<KIndex; m++)
sl@0
  2373
			{
sl@0
  2374
			cout << "Value in argv_certclient " << m << "is " <<argv_certclient[m] <<endl;
sl@0
  2375
			}
sl@0
  2376
		 char *argument_ptr[4]; 
sl@0
  2377
		char **argv;
sl@0
  2378
		for(int n = 0; n<KIndex; n++)
sl@0
  2379
			{
sl@0
  2380
			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  2381
			argv = argument_ptr;
sl@0
  2382
			}
sl@0
  2383
		
sl@0
  2384
		for(int z=0; z<KIndex; z++)
sl@0
  2385
			{
sl@0
  2386
			cout << "Argument array contains : " << argv[z] <<endl;
sl@0
  2387
			}
sl@0
  2388
		
sl@0
  2389
		int ret = RunCertApp(progress, errors, KIndex, argv); 
sl@0
  2390
		cout << "Return value from RunCertApp tool is "  << ret << endl;
sl@0
  2391
		
sl@0
  2392
		hasResult = false;
sl@0
  2393
		stringstream logging;
sl@0
  2394
		if(ret!= 0 && ((strcmp(unicodeName.str().c_str(),"--hfilecertstore=ucs2-bigendian.txt")==0) || (strcmp(unicodeName.str().c_str(),"--hfilecertstore=ucs2-littleendian.txt")==0)))
sl@0
  2395
			{
sl@0
  2396
			passCount++;
sl@0
  2397
			logging << "Tool doesnt support for UCS encoded file-"<< outputFileName.str() <<" so the result is " << ret << " Pass";
sl@0
  2398
			hasResult = true;
sl@0
  2399
			}
sl@0
  2400
		else if(ret== 0 && ((strcmp(unicodeName.str().c_str(),"--hfilecertstore=utf8.txt") ==0) || (strcmp(unicodeName.str().c_str(),"--hfilecertstore=utf8_without_bom.txt")==0)))
sl@0
  2401
			{
sl@0
  2402
			passCount++;
sl@0
  2403
			logging << "No Error in creating store for UTF8 encoded file-"<<outputFileName.str()<< " and result is " << ret << " Pass";
sl@0
  2404
			hasResult = true;
sl@0
  2405
			}
sl@0
  2406
		
sl@0
  2407
		if (hasResult)
sl@0
  2408
			{
sl@0
  2409
			writeTMSResult(file, testCaseType, i, true, logging);
sl@0
  2410
			}
sl@0
  2411
		} //End of encoded file formats testing
sl@0
  2412
}
sl@0
  2413
sl@0
  2414
/**
sl@0
  2415
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE-0000
sl@0
  2416
  @SYMTestCaseDesc	Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
sl@0
  2417
*/	
sl@0
  2418
/**
sl@0
  2419
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE-0001
sl@0
  2420
  @SYMTestCaseDesc	Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
sl@0
  2421
*/	
sl@0
  2422
/**
sl@0
  2423
Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
sl@0
  2424
*/
sl@0
  2425
void TestToReviewingAggregateStore()
sl@0
  2426
{
sl@0
  2427
	stringstream testCaseType("SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE");
sl@0
  2428
sl@0
  2429
	for(int index = 0; index<2; index++)
sl@0
  2430
		{
sl@0
  2431
		stringstream file1, file2;
sl@0
  2432
		const char *argv_certclient[4];
sl@0
  2433
		argv_certclient[2] = "--out";
sl@0
  2434
		switch(index)
sl@0
  2435
			{
sl@0
  2436
			case 0: // different certificate labels in two stores
sl@0
  2437
				{
sl@0
  2438
				argv_certclient[0] = "--bfilecertstore=teststore1.dat";   // these are 2 binary stores saved in perforce
sl@0
  2439
				argv_certclient[1] = "--bfilecertstore=teststore3.dat"; 
sl@0
  2440
				argv_certclient[3] = "--hfilecertstore=SDP-Security_Tools-CertApp-AggrCertStore-0000.txt";
sl@0
  2441
				file1 <<"SDP-Security_Tools-CertApp-AggrCertStore-0000.txt";
sl@0
  2442
				file2 <<"aggregatestorecontents1_3.txt";
sl@0
  2443
				}
sl@0
  2444
				break;
sl@0
  2445
sl@0
  2446
			case 1: //duplicate certificate labels in two stores
sl@0
  2447
				{
sl@0
  2448
				argv_certclient[0] = "--bfilecertstore=teststore2.dat";   // these are 2 binary stores saved in perforce
sl@0
  2449
				argv_certclient[1] = "--bfilecertstore=teststore3.dat"; 
sl@0
  2450
				argv_certclient[3] = "--hfilecertstore=SDP-Security_Tools-CertApp-AggrCertStore-0001.txt";
sl@0
  2451
				file1 <<"SDP-Security_Tools-CertApp-AggrCertStore-0001.txt";
sl@0
  2452
				file2 <<"aggregatestorecontents2_3.txt";
sl@0
  2453
				}
sl@0
  2454
				break;
sl@0
  2455
sl@0
  2456
			default:
sl@0
  2457
				break;
sl@0
  2458
			}
sl@0
  2459
sl@0
  2460
		for(int m=0; m<KIndex; m++)
sl@0
  2461
			{
sl@0
  2462
			cout << "Value in argv_certclient " << m << "is " <<argv_certclient[m] <<endl;
sl@0
  2463
			}
sl@0
  2464
		char *argument_ptr[KIndex]; 
sl@0
  2465
		char **argv;
sl@0
  2466
		for(int n = 0; n<KIndex; n++)
sl@0
  2467
			{
sl@0
  2468
			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
sl@0
  2469
			argv = argument_ptr;
sl@0
  2470
			}
sl@0
  2471
		
sl@0
  2472
		int ret = RunCertApp(progress, errors, KIndex, argv); 
sl@0
  2473
		stringstream logging;
sl@0
  2474
		if(!ret)
sl@0
  2475
			{
sl@0
  2476
			passCount++;
sl@0
  2477
			int compareValue  = CompareFiles(file1,file2); // compare with the reference files in perforce
sl@0
  2478
			if (compareValue)
sl@0
  2479
				{
sl@0
  2480
				logging << "Failed to successfully create Aggregate Database for " << file1.str() << " is Fail";
sl@0
  2481
				
sl@0
  2482
				}
sl@0
  2483
			else
sl@0
  2484
				{
sl@0
  2485
				logging << "Successfully created Aggregate Database(text form) for " <<file1.str() << " result is Pass";
sl@0
  2486
				}
sl@0
  2487
			}
sl@0
  2488
		else
sl@0
  2489
			{
sl@0
  2490
			failCount++;
sl@0
  2491
			logging << "Failed to dump the stores to single text format for " <<file1.str();
sl@0
  2492
			}
sl@0
  2493
		
sl@0
  2494
		writeTMSResult(file, testCaseType, index, !ret, logging);		
sl@0
  2495
		}
sl@0
  2496
}
sl@0
  2497
sl@0
  2498
sl@0
  2499
/**
sl@0
  2500
  @SYMTestCaseID	SEC-TOOLS-CERTAPP-DECODEENCODE_COMPARE-0000
sl@0
  2501
  @SYMTestCaseDesc	Encode-decode test for certclient store
sl@0
  2502
*/	
sl@0
  2503
/**
sl@0
  2504
TestCase to test the req of 10313- decode/encode certstore
sl@0
  2505
Encode-decode test for certclient store
sl@0
  2506
*/
sl@0
  2507
void TestToDecodeAndEncodeStore()
sl@0
  2508
{
sl@0
  2509
	stringstream testCaseType("SEC-TOOLS-CERTAPP-DECODEENCODE_COMPARE");
sl@0
  2510
sl@0
  2511
	stringstream outputFileName, strArg1, strArg2;
sl@0
  2512
	outputFileName <<"SDP-Security_Tools-CertApp-DecodeEncode-0000";
sl@0
  2513
	strArg1 << "decodeoutput1.txt";
sl@0
  2514
	strArg2 << "decodeoutput2.txt";
sl@0
  2515
	
sl@0
  2516
	const char *argv_certclient[3]; //dump store to text
sl@0
  2517
	argv_certclient[0] = "--bcertclients=certclients_0.dat";
sl@0
  2518
	argv_certclient[1] = "--out";
sl@0
  2519
	argv_certclient[2] = "--hcertclients=decodeoutput1.txt";   
sl@0
  2520
	decodeEncodeCertAppCall(argv_certclient);
sl@0
  2521
sl@0
  2522
	//create store with the decoded text as input
sl@0
  2523
	argv_certclient[0] = "--hcertclients=decodeoutput1.txt";
sl@0
  2524
	argv_certclient[2] = "--bcertclients=decodeoutput.dat";   
sl@0
  2525
	decodeEncodeCertAppCall(argv_certclient);
sl@0
  2526
sl@0
  2527
	//take the encoded store and dump it back to text form
sl@0
  2528
	argv_certclient[0] = "--bcertclients=decodeoutput.dat";
sl@0
  2529
	argv_certclient[2] = "--hcertclients=decodeoutput2.txt"; 
sl@0
  2530
	decodeEncodeCertAppCall(argv_certclient);
sl@0
  2531
sl@0
  2532
	int compVal = CompareFiles(strArg1, strArg2);
sl@0
  2533
	stringstream logging;
sl@0
  2534
	cout << "Return value of comparision is " << compVal <<endl;
sl@0
  2535
	if (compVal)
sl@0
  2536
		{
sl@0
  2537
		failCount++;
sl@0
  2538
		logging << "Encode-Decode fail for " <<outputFileName.str() << " result is Fail";
sl@0
  2539
		}
sl@0
  2540
	else
sl@0
  2541
		{
sl@0
  2542
		passCount++;
sl@0
  2543
		logging << "Encode-Decode Pass for " <<outputFileName.str() << " result is Pass";
sl@0
  2544
		}
sl@0
  2545
	
sl@0
  2546
	writeTMSResult(file, testCaseType, 0, compVal==0, logging);			
sl@0
  2547
}
sl@0
  2548
sl@0
  2549
void decodeEncodeCertAppCall(const char *aArray[])
sl@0
  2550
{
sl@0
  2551
	char *argument_ptr[3]; 
sl@0
  2552
	char **argv;
sl@0
  2553
	for(int m=0; m<3; m++)
sl@0
  2554
		{
sl@0
  2555
		cout << "Value in argv_certclient " << m << "is " <<aArray[m] <<endl;
sl@0
  2556
		}
sl@0
  2557
	for(int n = 0; n<3; n++)
sl@0
  2558
		{
sl@0
  2559
		argument_ptr[n] = const_cast<char*>(aArray[n]);
sl@0
  2560
		argv = argument_ptr;
sl@0
  2561
		}
sl@0
  2562
	RunCertApp(progress, errors ,3, argv);
sl@0
  2563
}
sl@0
  2564
sl@0
  2565
sl@0
  2566
int CompareFiles(stringstream &aFile1, stringstream &aFile2)
sl@0
  2567
{
sl@0
  2568
	ifstream inFile1, inFile2;
sl@0
  2569
	string name1 = aFile1.str();
sl@0
  2570
	string name2 = aFile2.str();
sl@0
  2571
	inFile1.open(name1.c_str(),  ifstream::in);
sl@0
  2572
	if (inFile1.fail())
sl@0
  2573
		{
sl@0
  2574
		cout << "Failed to open the file! May be not existing" << endl;
sl@0
  2575
		return -1;
sl@0
  2576
		}
sl@0
  2577
	inFile2.open(name1.c_str(),  ifstream::in);
sl@0
  2578
	if (inFile2.fail()) 
sl@0
  2579
		{
sl@0
  2580
	    cout << "Failed to open the file! May be not existing" << endl;
sl@0
  2581
	    return -1;
sl@0
  2582
		}
sl@0
  2583
	return Compare(inFile1, inFile2);
sl@0
  2584
}
sl@0
  2585
sl@0
  2586
sl@0
  2587
int Compare(istream &aIstream1, istream &aIstream2)
sl@0
  2588
{
sl@0
  2589
  char ch1, ch2;
sl@0
  2590
  while (aIstream1.get(ch1)) 
sl@0
  2591
  {
sl@0
  2592
    if (!aIstream2.get(ch2) || (ch1 != ch2))
sl@0
  2593
	{
sl@0
  2594
      cout << "files are not equal";
sl@0
  2595
	  return -1;
sl@0
  2596
    }
sl@0
  2597
  }
sl@0
  2598
  if (!aIstream2.get(ch2))  // no more chars to read fom file
sl@0
  2599
	{
sl@0
  2600
	  cout << "files are equal\n";
sl@0
  2601
	  return 0;
sl@0
  2602
	}
sl@0
  2603
  else 
sl@0
  2604
	{
sl@0
  2605
	  cout << "files are not equal";
sl@0
  2606
	  return -1;
sl@0
  2607
	}
sl@0
  2608
}
sl@0
  2609
sl@0
  2610
sl@0
  2611
/**
sl@0
  2612
Generate script files for the filecertstore emulator tests
sl@0
  2613
*/
sl@0
  2614
void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
sl@0
  2615
{
sl@0
  2616
	CertClientsStoreScriptGeneration cert_clients(aFilename);
sl@0
  2617
sl@0
  2618
	cert_clients.WriteInitialiseCertClient(aTestCaseType, aTestIndex);
sl@0
  2619
	cert_clients.WriteGetCount(KAppUidIndex, aTestCaseType, aTestIndex);
sl@0
  2620
	cert_clients.WriteGetApplicationsList(aTestCaseType, aTestIndex);
sl@0
  2621
	
sl@0
  2622
	for(int i = 0; i<KAppUidIndex;i++)
sl@0
  2623
		{
sl@0
  2624
		const char *goodlabel = goodcertclient_array[i]; 
sl@0
  2625
		const char *uid = gooddecimalUid_array[i];
sl@0
  2626
		cert_clients.WriteGetAppWithUid(goodlabel, uid, aTestCaseType, aTestIndex);
sl@0
  2627
		}
sl@0
  2628
	cert_clients.WriteDestroyManager(aTestCaseType, aTestIndex);
sl@0
  2629
}
sl@0
  2630
sl@0
  2631
/**
sl@0
  2632
Generates config files for cacerts
sl@0
  2633
*/
sl@0
  2634
void GenerateGoodCaCertsTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
sl@0
  2635
{
sl@0
  2636
	FileStoreScriptGeneration fileStore(aFilename);
sl@0
  2637
sl@0
  2638
	const char *mode = "write"; 
sl@0
  2639
	const char *ownertype = goodOwnerType[0]; //CA ownerType
sl@0
  2640
sl@0
  2641
	fileStore.WriteInitialiseCert(mode, aTestCaseType, aTestIndex);
sl@0
  2642
	fileStore.WriteListcert(ownertype, aTestCaseType, aTestIndex);
sl@0
  2643
	
sl@0
  2644
	for(int i = 0; i<6;i++)
sl@0
  2645
		{
sl@0
  2646
		const char *trust = goodTrust[0]; // true
sl@0
  2647
		const char *goodlabel = goodEmuCert_array[i]; // list of label - root5ca , symbiandtestcsa, symbiantestrcsa
sl@0
  2648
sl@0
  2649
		fileStore.WriteGetCertificateDetails(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2650
		fileStore.WriteGetTrust(goodlabel, trust, aTestCaseType, aTestIndex);
sl@0
  2651
		fileStore.WriteGetApplications(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2652
		fileStore.WriteRetrieveCerts(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2653
		}
sl@0
  2654
}
sl@0
  2655
sl@0
  2656
/**
sl@0
  2657
Generate script files for the swicertstore emulator tests
sl@0
  2658
*/
sl@0
  2659
void GenerateGoodSwiCertTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
sl@0
  2660
{
sl@0
  2661
	SWIStoreScriptGeneration swiStore(aFilename);
sl@0
  2662
	
sl@0
  2663
	const char *ownertype = goodOwnerType[0]; //CA ownerType
sl@0
  2664
	
sl@0
  2665
	//initilaise the store and get list all the certificate ones
sl@0
  2666
	swiStore.WriteInitialiseCert(aTestCaseType, aTestIndex);
sl@0
  2667
	swiStore.WriteListcert(ownertype, aTestCaseType, aTestIndex);
sl@0
  2668
sl@0
  2669
	for(int i = 0; i<6;i++)
sl@0
  2670
		{
sl@0
  2671
		const char *trust = goodTrust[0]; // true
sl@0
  2672
		const char *goodlabel = goodSwiCert_array[i]; // list of label - root5ca , symbiandtestcsa, symbiantestrcsa
sl@0
  2673
		const char *mandatoryVal = mandatory[0];
sl@0
  2674
		const char *systemupgrade = systemUpgrade[0];
sl@0
  2675
sl@0
  2676
		swiStore.WriteGetSystemUpgrade(goodlabel, systemupgrade, aTestCaseType, aTestIndex);
sl@0
  2677
		swiStore.WriteRetrieveCerts(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2678
		swiStore.WriteGetApplications(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2679
		swiStore.WriteGetTrust(goodlabel, trust, aTestCaseType, aTestIndex);
sl@0
  2680
		swiStore.WriteGetCapabilities(goodlabel, aTestCaseType, aTestIndex);
sl@0
  2681
		swiStore.WriteGetMandatoryFlag(goodlabel, mandatoryVal, aTestCaseType, aTestIndex);
sl@0
  2682
		}
sl@0
  2683
}
sl@0
  2684
sl@0
  2685
//End of file
sl@0
  2686
sl@0
  2687