os/security/securityanddataprivacytools/securitytools/certapp/test/tcertapp/tcertapp.cpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/security/securityanddataprivacytools/securitytools/certapp/test/tcertapp/tcertapp.cpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,2687 @@
     1.4 +/*
     1.5 +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +* All rights reserved.
     1.7 +* This component and the accompanying materials are made available
     1.8 +* under the terms of the License "Eclipse Public License v1.0"
     1.9 +* which accompanies this distribution, and is available
    1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +*
    1.12 +* Initial Contributors:
    1.13 +* Nokia Corporation - initial contribution.
    1.14 +*
    1.15 +* Contributors:
    1.16 +*
    1.17 +* Description: 
    1.18 +*
    1.19 +*/
    1.20 +
    1.21 +
    1.22 +#include <iostream>
    1.23 +#include <tools/certapp-api.h>
    1.24 +#include "badconfigwriter.h"
    1.25 +#include "tcertapp_good.h"
    1.26 +#include "tcertapp_bad.h"
    1.27 +#include "goodconfigwriter.h"
    1.28 +#include <string>
    1.29 +#include <sstream>
    1.30 +#include <stdlib.h>
    1.31 +#include <stdio.h>
    1.32 +#include <time.h>
    1.33 +#include <sys/timeb.h>
    1.34 +#include "logger.h"
    1.35 +#include "utils.h"
    1.36 +
    1.37 +using namespace std;
    1.38 +
    1.39 +// Write a pass or fail result for a test case to the TMS log file
    1.40 +void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging);
    1.41 +
    1.42 +//Funtions to generate Good/Valid config files for tcertapp
    1.43 +void GoodFileCaCertTests(const stringstream &aFilename, int aArray_value);
    1.44 +void GoodFileCertClientsTests(const stringstream &aFilename);
    1.45 +void GoodSwiCertTests(const stringstream &aFilename, int aArray_value);
    1.46 +
    1.47 +//Functions to generate Good/Valid script files for emulator tests
    1.48 +void GenerateGoodCaCertsTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
    1.49 +void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
    1.50 +void GenerateGoodSwiCertTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex);
    1.51 +
    1.52 +//Funtions to generate Bad/illegal config files for tcertapp
    1.53 +void BadFileCaCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex);
    1.54 +void BadFileCertClientsTests(const stringstream &aFilename, int aIndex, stringstream &aTestCaseType, int &aTestIndex);
    1.55 +void BadSwiCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex);
    1.56 +
    1.57 +//Function call for RunCertApp api
    1.58 +void RunCertAppTool(int argc, char **argv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex);
    1.59 +void RunCertAppToolForStoreDump(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); 
    1.60 +void RunCertAppToolForBadParams(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); 
    1.61 +
    1.62 +void TestsWithEmptyConfigFile();
    1.63 +void CreateFileToAugmentStore();
    1.64 +void TestsWithEncodedFileFormats();
    1.65 +void TestToDecodeAndEncodeStore();
    1.66 +void TestToReviewingAggregateStore();
    1.67 +void TestBadConfigFiles(const stringstream &aFilename, bool aBool, stringstream &aTestCaseType, int aTestCaseIndex);
    1.68 +void CertClientBadParamsFuncCall(stringstream &aFileName, stringstream &aTestCaseType, int aTestCaseIndex);
    1.69 +void decodeEncodeCertAppCall(const char *aArray[]);
    1.70 +int CompareFiles(stringstream &aFileName1, stringstream &aFileName2);
    1.71 +int Compare(istream &aIstream1, istream &aIstream2);
    1.72 +void TestWithUnicodFileName();
    1.73 +
    1.74 +ofstream file; //global file handle to write to output file
    1.75 +const char *progress = "progress.txt";  // logs the progress report
    1.76 +const char *errors = "error.txt";       // logs the error report
    1.77 +
    1.78 +//some constants used
    1.79 +const int KFileArrayIndex = 8;
    1.80 +const int KSwicertIndex = 10;
    1.81 +const int KSwiBadcertIndex = 11;
    1.82 +const int KFileBadcertIndex = 9;
    1.83 +const int KAppUidIndex = 4; 
    1.84 +const int KIndex = 4;
    1.85 +
    1.86 +// to get the count of passed and failed test cases
    1.87 +static int failCount = 0, passCount = 0;
    1.88 +
    1.89 +//pointers required for creation of good filecerts config files
    1.90 +const char **filecert_array[KFileArrayIndex]=
    1.91 +{
    1.92 +	goodCert_array,
    1.93 +	goodDeletables,
    1.94 +	goodFormats,
    1.95 +	goodCertOwnerTypes,
    1.96 +	goodSubjectKeyIds,
    1.97 +	goodIssuerKeyIds,
    1.98 +	goodApplications,
    1.99 +	goodTrusteds
   1.100 +};
   1.101 +
   1.102 +//pointers required for creation of bad filecerts config files
   1.103 +const char **badfilecert_array[KFileBadcertIndex]=
   1.104 +{
   1.105 +	badLabels,
   1.106 +	badDeletables,
   1.107 +	badFormats,
   1.108 +	badCertOwnerTypes,
   1.109 +	badSubjectKeyIds,
   1.110 +	badIssuerKeyIds,
   1.111 +	badApplications,
   1.112 +	badTrusteds,
   1.113 +	badDatafilePath
   1.114 +};
   1.115 +
   1.116 +
   1.117 +//pointers required for creation of good swicerts config files
   1.118 +const char **swicert_array[KSwicertIndex]=
   1.119 +{
   1.120 +	goodLabels,
   1.121 +	goodFormats,
   1.122 +	goodCertOwnerTypes,
   1.123 +	goodSubjectKeyIds,
   1.124 +	goodIssuerKeyIds,
   1.125 +	goodAppNames,
   1.126 +	goodTrusteds,
   1.127 +	goodCapabilitySets,
   1.128 +	goodMandatory,
   1.129 +	goodSystemUpgrade
   1.130 +};
   1.131 +
   1.132 +//pointers required for creation of bad swicerts config files
   1.133 +const char **badswicert_array[KSwiBadcertIndex]=
   1.134 +{
   1.135 +	badLabels,
   1.136 +	badFormats,
   1.137 +	badCertOwnerTypes,
   1.138 +	badSubjectKeyIds,
   1.139 +	badIssuerKeyIds,
   1.140 +	badApplications,
   1.141 +	badTrusteds,
   1.142 +	badDatafilePath,
   1.143 +	badCapabilitySets,
   1.144 +	badMandatory,
   1.145 +	badSystemUpgrade
   1.146 +};
   1.147 +
   1.148 +
   1.149 +//encoded file names for input to the tool
   1.150 +const char *fileEncodeType[4]=
   1.151 +{
   1.152 +"--hfilecertstore=utf8.txt",
   1.153 +"--hfilecertstore=utf8_without_bom.txt",
   1.154 +"--hfilecertstore=ucs2-bigendian.txt",
   1.155 +"--hfilecertstore=ucs2-littleendian.txt"
   1.156 +};
   1.157 +
   1.158 +// Write a pass or fail result for a test case to the TMS log file
   1.159 +void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging)
   1.160 +	{
   1.161 +	// get the current time
   1.162 +	time_t rawtime;
   1.163 +	struct tm * timeinfo;
   1.164 +	char standardTimeBuffer[10];
   1.165 +	time(&rawtime);
   1.166 +	timeinfo = localtime(&rawtime);
   1.167 +	strftime(standardTimeBuffer, 10, "%H:%M:%S", timeinfo);
   1.168 +	
   1.169 +	char millisecondTimeBuffer[6];
   1.170 +
   1.171 +	#ifdef __TOOLS2_LINUX__
   1.172 +		struct timeb tstruct;		
   1.173 +		ftime(&tstruct);
   1.174 +	#else
   1.175 +		struct _timeb tstruct;		
   1.176 +		_ftime(&tstruct);
   1.177 +	#endif
   1.178 +
   1.179 +	sprintf(millisecondTimeBuffer, ":%03u ", tstruct.millitm);
   1.180 +	
   1.181 +	stringstream timeBuffer;
   1.182 +	timeBuffer << standardTimeBuffer << millisecondTimeBuffer;
   1.183 +	
   1.184 +	// set result string
   1.185 +	stringstream resultBuffer;
   1.186 +	
   1.187 +	if (aResult)
   1.188 +		{
   1.189 +		resultBuffer << "PASS";
   1.190 +		}
   1.191 +	else
   1.192 +		{
   1.193 +		resultBuffer << "FAIL";
   1.194 +		}
   1.195 +	
   1.196 +	// set test case ID string
   1.197 +	char testCaseIndexBuffer[6];
   1.198 +	sprintf(testCaseIndexBuffer, "-%04d", aTestCaseIndex);
   1.199 +	
   1.200 +	// write result in the correct format
   1.201 +	aLogFile << "<html><body><pre>\r\n";
   1.202 +	aLogFile << timeBuffer.str();
   1.203 +	aLogFile << "START_TESTCASE ";
   1.204 +	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
   1.205 +	aLogFile << "\r\n";
   1.206 +	aLogFile << timeBuffer.str();
   1.207 +	aLogFile << "Line = 1 Command = START_TESTCASE  ";
   1.208 +	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
   1.209 +	aLogFile << "\r\n";
   1.210 +	
   1.211 +	if (aLogging.str() != "")
   1.212 +		{
   1.213 +		aLogFile << timeBuffer.str();
   1.214 +		aLogFile << aLogging.str();
   1.215 +		aLogFile << "\r\n";		
   1.216 +		}
   1.217 +	
   1.218 +	aLogFile << timeBuffer.str();
   1.219 +	aLogFile << "END_TESTCASE ";
   1.220 +	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
   1.221 +	aLogFile << "\r\n";
   1.222 +	aLogFile << timeBuffer.str();
   1.223 +	aLogFile << "Line = 1 Command = END_TESTCASE ";
   1.224 +	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
   1.225 +	aLogFile << " ***TestCaseResult = ";
   1.226 +	aLogFile << resultBuffer.str();
   1.227 +	aLogFile << "\r\n</pre></body></html>\r\n";
   1.228 +	}
   1.229 +
   1.230 +//RunCertApp call to create store from text input
   1.231 +void RunCertAppTool( int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
   1.232 +{
   1.233 +	for(int i =0; i<argc; i++)
   1.234 +		{
   1.235 +		cout << "Arguments Being passed to the RunCertApp tool is " << argv[i] << endl;
   1.236 +		}
   1.237 +	int ret = RunCertApp(progress, errors, argc, argv); 
   1.238 +	cout << "Return Value from CertApp Tool is " << ret << endl;
   1.239 +	stringstream logging;	
   1.240 +	if(ret!= 0)
   1.241 +		{
   1.242 +		failCount++;
   1.243 +		logging << "Error in creating store for " << stringval.str() << " and result is " << ret << " Fail" ;
   1.244 +		}
   1.245 +	else
   1.246 +		{
   1.247 +		passCount++;
   1.248 +		logging << "No Error in creating store for " << stringval.str() << " and result is " << ret << " Pass" ;
   1.249 +		}
   1.250 +	
   1.251 +	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);
   1.252 +}
   1.253 +
   1.254 +//RunCertApp call to dump the store to human readable format
   1.255 +void RunCertAppToolForStoreDump(int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
   1.256 +{
   1.257 +	int ret = RunCertApp(progress, errors, argc, argv); 
   1.258 +	cout << "Return Value from CertApp Tool is " << ret << endl;
   1.259 +	stringstream logging;	
   1.260 +	if(ret!= 0)
   1.261 +		{
   1.262 +		failCount++;
   1.263 +		logging << "Error in Dumping the store file for " << stringval.str() << " and result is " << ret << " Fail";
   1.264 +		}
   1.265 +	else
   1.266 +		{
   1.267 +		passCount++;
   1.268 +		logging << "No Error in Dumping store for " << stringval.str() << " and result is " << ret << " Pass";
   1.269 +		}
   1.270 +	
   1.271 +	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);
   1.272 +}
   1.273 +
   1.274 +//RunCertApp call to create store for bad params
   1.275 +void RunCertAppToolForBadParams(int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex)
   1.276 +{
   1.277 +	int ret = RunCertApp(progress, errors, argc, argv); 
   1.278 +	stringstream logging;	
   1.279 +	if(ret!= 0)
   1.280 +		{
   1.281 +		passCount++;
   1.282 +		cout << "We have passsed bad paramerters! Expected Return value is -1 And the RunCertApp has returned " << ret << " as Expected"<< endl;
   1.283 +		logging << "Bad Params! So Cannot create the store for " << stringval.str() << " and result is " << ret << " Pass";
   1.284 +		}
   1.285 +	else
   1.286 +		{
   1.287 +		failCount++;
   1.288 +		logging << "We are using bad parameters! So the tools should fail to create store! " << stringval.str() << " and result is " << ret << " Fail";
   1.289 +		cout << "We have passsed bad paramerters! The Tool has failed- It should return -1, But returned" << ret << endl;
   1.290 +		}
   1.291 +	
   1.292 +	writeTMSResult(file, testCaseType, testCaseIndex, ret==0, logging);	
   1.293 +}
   1.294 +
   1.295 +
   1.296 +/**
   1.297 +main entry to the program
   1.298 +*/
   1.299 +int main(int /*argc*/, char ** /*argv*/)
   1.300 +{
   1.301 +	stringstream testCaseType;
   1.302 +	int testCaseIndex = 0;
   1.303 +
   1.304 +	dbg.SetStream(&std::cout);
   1.305 +	prog.SetStream(&std::cout);
   1.306 +	std::cout << std::dec;
   1.307 +
   1.308 +	int num_tests = 0; 
   1.309 +	int argCount3 = 3;
   1.310 +	int argCount4 = 4;
   1.311 +	// File to log the result of all tests
   1.312 +	if(file)
   1.313 +		{
   1.314 +		file.open("tCertapp_Output.htm", ios_base::trunc | ios_base::out);
   1.315 +		}
   1.316 +
   1.317 +	//create a file to augment the content to existing store
   1.318 +	CreateFileToAugmentStore();
   1.319 +
   1.320 +/**
   1.321 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCDAT_CREATE-0000
   1.322 +  @SYMTestCaseDesc	Create store
   1.323 +*/	
   1.324 +
   1.325 +	//create certclient config files 
   1.326 +	//Format used for the files name is SDP-Security_Tools-CertApp-XXX-000X  to match with the TMS test case id
   1.327 +	stringstream certclientfileName;
   1.328 +	certclientfileName << "SDP-Security_Tools-CertApp-CCDAT_000"<<num_tests<<".txt";
   1.329 +	GoodFileCertClientsTests(certclientfileName);
   1.330 +	
   1.331 +	//create command line argument for creation of certclientx.dat through certapp tool
   1.332 +	stringstream strArg1, strArg2, augFileName;
   1.333 +	strArg1 <<"--hcertclients=" << certclientfileName.str();
   1.334 +	cout << "test" << strArg1.str().c_str() <<endl;
   1.335 +
   1.336 +	strArg2<< "--bcertclients=SDP-Security_Tools-CertApp-CCDAT_000" <<num_tests <<".dat";
   1.337 +	cout <<"string value is " << strArg2.str().c_str() << endl;		
   1.338 +	
   1.339 +	string argument1, argument2;
   1.340 +	const char *argv_certclient[4];
   1.341 +	
   1.342 +	argument1 = strArg1.str().c_str();
   1.343 +	argv_certclient[0] = argument1.c_str();
   1.344 +			
   1.345 +	argv_certclient[1] = "--out";
   1.346 +	argument2 = strArg2.str().c_str();
   1.347 +	argv_certclient[2] = argument2.c_str();
   1.348 +
   1.349 +	char **argv, **argv1;
   1.350 +	char *argument_ptr[3]; //[Format:: certapp --hcertclients=t_certclients_0.txt --out --bcertclients=certclients5.dat]
   1.351 +
   1.352 +	for(int n1 = 0; n1<argCount3; n1++)
   1.353 +		{
   1.354 +		argument_ptr[n1] = const_cast<char*>(argv_certclient[n1]);
   1.355 +		argv = argument_ptr;
   1.356 +		}
   1.357 +	
   1.358 +	testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_CREATE");
   1.359 +	RunCertAppTool(argCount3, argv, certclientfileName, testCaseType, 0); // creating dat file
   1.360 +	
   1.361 +/**
   1.362 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCAUG_AUGMENT-0000
   1.363 +  @SYMTestCaseDesc	Augment the Store with Extra entries
   1.364 +*/	
   1.365 +
   1.366 +	//Augment the Store with Extra entries
   1.367 +	augFileName<<"SDP-Security_Tools-CertApp-CCAUG_0000.dat";
   1.368 +	argv_certclient[0] = "--hcertclients=tCertClient_Augment.txt";
   1.369 +	argv_certclient[1] =  argv_certclient[2];  
   1.370 +	argv_certclient[2] = "--out";
   1.371 +	argv_certclient[3] = "--bcertclients=SDP-Security_Tools-CertApp-CCAUG_0000.dat";
   1.372 +	for(int x = 0; x<argCount4; x++)
   1.373 +			{
   1.374 +			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
   1.375 +			argv1 = argument_ptr;   
   1.376 +			}
   1.377 +	
   1.378 +	testCaseType.str("SEC-TOOLS-CERTAPP-CCAUG_AUGMENT");
   1.379 +	RunCertAppTool(argCount4, argv1, augFileName, testCaseType, 0);
   1.380 +
   1.381 +/**
   1.382 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCDAT_DUMP-0000
   1.383 +  @SYMTestCaseDesc	Dump the dat file to human readable text format
   1.384 +*/	
   1.385 +
   1.386 +	//Dump the dat file to human readable text format
   1.387 +	argv_certclient[0] = argv_certclient[3];
   1.388 +	argv_certclient[1] = "--out";
   1.389 +	argv_certclient[2] = "--hcertclients=SDP-Security_Tools-CertApp-CCDUMP_0000.txt";
   1.390 +			
   1.391 +	for(int k = 0; k<argCount3; k++)
   1.392 +		{
   1.393 +		argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
   1.394 +		argv1 = argument_ptr;
   1.395 +		}
   1.396 +
   1.397 +	testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_DUMP");
   1.398 +	RunCertAppToolForStoreDump(argCount3, argv1, certclientfileName, testCaseType, 0); 
   1.399 +	//End of t_certclients
   1.400 +	
   1.401 +	//Creates good config files to augment store and dump store to text format for file certstore - cacerts.dat
   1.402 +	//Test for all positive cases
   1.403 +	for(num_tests = 0; num_tests<=KFileArrayIndex; num_tests++)
   1.404 +		{
   1.405 +		stringstream caCertFileName;
   1.406 +		caCertFileName << "SDP-Security_Tools-CertApp-FILEDAT_000"<<num_tests<<".txt";
   1.407 +		GoodFileCaCertTests(caCertFileName,num_tests);
   1.408 +
   1.409 +/**
   1.410 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0000
   1.411 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.412 +*/	
   1.413 +/**
   1.414 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0001
   1.415 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.416 +*/	
   1.417 +/**
   1.418 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0002
   1.419 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.420 +*/	
   1.421 +/**
   1.422 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0003
   1.423 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.424 +*/	
   1.425 +/**
   1.426 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0004
   1.427 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.428 +*/	
   1.429 +/**
   1.430 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0005
   1.431 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.432 +*/	
   1.433 +/**
   1.434 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0006
   1.435 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.436 +*/	
   1.437 +/**
   1.438 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0007
   1.439 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.440 +*/	
   1.441 +/**
   1.442 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDAT_CREATE-0008
   1.443 +  @SYMTestCaseDesc	CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.444 +*/	
   1.445 +
   1.446 +		// CREATE CACERTS STORE FROM HUMAN READABLE TEXT INPUT
   1.447 +		//ex:certapp --hcertclients=t_certclients_0.txt --hfilecertstore=t_cacerts_0.txt --out --bfilecertstore=cacerts_x.dat
   1.448 +		stringstream strArg1, strArg2, strArg3, strArg4, strArg5;
   1.449 +		strArg1 <<"--hfilecertstore=SDP-Security_Tools-CertApp-FILEDAT_000" <<num_tests << ".txt" ; 
   1.450 +		
   1.451 +		strArg2<< "--bfilecertstore=SDP-Security_Tools-CertApp-FILEDAT_000"<<num_tests <<".dat";
   1.452 +		cout <<"string value is " << strArg2.str().c_str() << endl;	
   1.453 +		
   1.454 +		strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
   1.455 +		cout <<"string value is " << strArg3.str().c_str() << endl;
   1.456 +
   1.457 +		string argument1, argument2, argument3, argument4, argument5;
   1.458 +		const char *argv_certclient[4];
   1.459 +		
   1.460 +		argument1 = strArg1.str().c_str();
   1.461 +		argument3 = strArg3.str().c_str();
   1.462 +
   1.463 +		argv_certclient[0] = argument3.c_str(); // --hcertclients=t_certclients_0.txt
   1.464 +		argv_certclient[1] = argument1.c_str(); // --hfilecertstore=t_cacerts_x.txt
   1.465 +		argv_certclient[2] = "--out";			//--out
   1.466 +		argument2 = strArg2.str().c_str();
   1.467 +		argv_certclient[3] = argument2.c_str(); //--bfilecertstore=cacerts_x.dat
   1.468 +
   1.469 +		char *argument_ptr[4]; 
   1.470 +		char **argv, **argv1, **argv2 ;
   1.471 +		for(int n = 0; n<argCount4; n++)
   1.472 +			{
   1.473 +			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
   1.474 +			argv = argument_ptr;  
   1.475 +			}
   1.476 +
   1.477 +		testCaseType.str("SEC-TOOLS-CERTAPP-FILEDAT_CREATE");
   1.478 +		RunCertAppTool(argCount4, argv, caCertFileName, testCaseType, num_tests); 
   1.479 +		
   1.480 +/**
   1.481 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0000
   1.482 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.483 +*/	
   1.484 +/**
   1.485 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0001
   1.486 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.487 +*/	
   1.488 +/**
   1.489 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0002
   1.490 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.491 +*/	
   1.492 +/**
   1.493 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0003
   1.494 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.495 +*/	
   1.496 +/**
   1.497 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0004
   1.498 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.499 +*/	
   1.500 +/**
   1.501 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0005
   1.502 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.503 +*/	
   1.504 +/**
   1.505 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0006
   1.506 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.507 +*/	
   1.508 +/**
   1.509 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0007
   1.510 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.511 +*/	
   1.512 +/**
   1.513 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0008
   1.514 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.515 +*/	
   1.516 +
   1.517 +		//AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.518 +		//ex:certapp  --hfilecertstore=tAugment_cacerts_x.txt  --bfilecertstore=cacerts.dat --out --bfilecertstore=new_extra_filecertstore.dat
   1.519 +		stringstream augFileName, textDumpFileName;
   1.520 +		augFileName<<"SDP-Security_Tools-CertApp-FILEAUG_000" <<num_tests << ".dat";
   1.521 +		strArg4<<"--bfilecertstore=SDP-Security_Tools-CertApp-FILEAUG_000" << num_tests << ".dat";
   1.522 +		argument4 = strArg4.str();
   1.523 +		argv_certclient[0] =  "--hfilecertstore=tfile_Augment.txt";  //--hfilecertstore=tAugment_cacerts_x.txt
   1.524 +		argv_certclient[1] =  argv_certclient[3]; //--bfilecertstore=cacerts_x.dat
   1.525 +		argv_certclient[2] = "--out";			  //--out
   1.526 +		argv_certclient[3] = argument4.c_str();  //--bfilecertstore=aug_cacerts_x.dat
   1.527 +		
   1.528 +		for(int x = 0; x<argCount4; x++)
   1.529 +			{
   1.530 +			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
   1.531 +			argv1 = argument_ptr;   
   1.532 +			}
   1.533 +
   1.534 +		testCaseType.str("SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT");
   1.535 +		RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests);
   1.536 +
   1.537 +/**
   1.538 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0000
   1.539 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.540 +*/	
   1.541 +/**
   1.542 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0001
   1.543 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.544 +*/	
   1.545 +/**
   1.546 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0002
   1.547 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.548 +*/	
   1.549 +/**
   1.550 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0003
   1.551 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.552 +*/	
   1.553 +/**
   1.554 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0004
   1.555 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.556 +*/	
   1.557 +/**
   1.558 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0005
   1.559 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.560 +*/	
   1.561 +/**
   1.562 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0006
   1.563 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.564 +*/	
   1.565 +/**
   1.566 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0007
   1.567 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.568 +*/	
   1.569 +/**
   1.570 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0008
   1.571 +  @SYMTestCaseDesc	DUMP THE STORE TO HUMAN READABLE FORMAT
   1.572 +*/	
   1.573 +		
   1.574 +		//DUMP THE STORE TO HUMAN READABLE FORMAT
   1.575 +		//ex:certapp --bfilecertstore=test.dat --out --hfilecertstore=t_cacerts.txt 
   1.576 +		textDumpFileName <<"SDP-Security_Tools-CertApp-FILEDUMP_000"<< num_tests << ".txt";
   1.577 +		argv_certclient[0] =  argv_certclient[3];  //--bfilecertstore=aug_cacerts_x.dat
   1.578 +		argv_certclient[1] = "--out";
   1.579 +		strArg5<< "--hfilecertstore=SDP-Security_Tools-CertApp-FILEDUMP_000" <<num_tests << ".txt";
   1.580 +		argument5 = strArg5.str().c_str();
   1.581 +		argv_certclient[2] = argument5.c_str();
   1.582 +						
   1.583 +		for(int k = 0; k<argCount3; k++)
   1.584 +			{
   1.585 +			argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
   1.586 +			argv2 = argument_ptr;
   1.587 +			}
   1.588 +		//Dumps the augmented store
   1.589 +
   1.590 +		testCaseType.str("SEC-TOOLS-CERTAPP-FILEDUMP_DUMP");
   1.591 +		RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); 
   1.592 +		}//End of cacerts
   1.593 +
   1.594 +
   1.595 +	//create config files with legal values for swi certstore 
   1.596 +	for(num_tests = 0; num_tests<KSwicertIndex; num_tests++)
   1.597 +		{
   1.598 +		stringstream swiCertStoreFileName;
   1.599 +		swiCertStoreFileName << "SDP-Security_Tools-CertApp-SWIDAT_000"<<num_tests<<".txt";
   1.600 +		GoodSwiCertTests(swiCertStoreFileName,num_tests);
   1.601 +
   1.602 +/**
   1.603 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0000
   1.604 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.605 +*/	
   1.606 +/**
   1.607 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0001
   1.608 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.609 +*/	
   1.610 +/**
   1.611 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0002
   1.612 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.613 +*/	
   1.614 +/**
   1.615 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0003
   1.616 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.617 +*/	
   1.618 +/**
   1.619 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0004
   1.620 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.621 +*/	
   1.622 +/**
   1.623 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0005
   1.624 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.625 +*/	
   1.626 +/**
   1.627 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0006
   1.628 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.629 +*/	
   1.630 +/**
   1.631 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0007
   1.632 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.633 +*/	
   1.634 +/**
   1.635 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0008
   1.636 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.637 +*/	
   1.638 +/**
   1.639 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDAT_CREATE-0009
   1.640 +  @SYMTestCaseDesc	CREATE THE SWICERTSTORE FROM THE HUMAN READABLE TEXT INPUT
   1.641 +*/	
   1.642 +
   1.643 +		//CREATE THE SWICERTSTORE  FROM THE HUMAN READABLE TEXT INPUT
   1.644 +		//Ex: certapp --hcertclients=t_certclients_0.txt --hswicertstore=t_swicertstore_0.txt --out --bswicertstore=swicertstore_x.dat
   1.645 +		stringstream strArg1, strArg2, strArg3, strArg4, strArg5;
   1.646 +		strArg1 <<"--hswicertstore=SDP-Security_Tools-CertApp-SWIDAT_000" <<num_tests << ".txt" ; //--hswicertstore=t_cacerts_x.txt
   1.647 +		
   1.648 +		strArg2<< "--bswicertstore=SDP-Security_Tools-CertApp-SWIDAT_000" <<num_tests <<".dat"; //--bswicertstore=swicertstore.dat
   1.649 +		cout <<"string value is " << strArg2.str().c_str() << endl;	
   1.650 +		
   1.651 +		strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
   1.652 +		cout <<"string value is " << strArg3.str().c_str() << endl;
   1.653 +
   1.654 +		string argument1, argument2, argument3, argument4, argument5;
   1.655 +		const char *argv_certclient[4];
   1.656 +		
   1.657 +		argument1 = strArg1.str().c_str();
   1.658 +		argument3 = strArg3.str().c_str();
   1.659 +
   1.660 +		argv_certclient[0] = argument3.c_str(); //--hcertclients=t_certclients_0.txt
   1.661 +		argv_certclient[1] = argument1.c_str(); //--hswicertstore=t_swicertstore_
   1.662 +		argv_certclient[2] = "--out";
   1.663 +		argument2 = strArg2.str().c_str();
   1.664 +		argv_certclient[3] = argument2.c_str();  //--bswicertstore=swicertstore_x.dat
   1.665 +
   1.666 +	    char *argument_ptr[4]; 
   1.667 +	
   1.668 +		for(int j=0; j<argCount4; j++)
   1.669 +			{
   1.670 +			cout << "Value in argv_certclient " << j << "is " <<argv_certclient[j] <<endl;
   1.671 +			}
   1.672 +
   1.673 +		char **argv;
   1.674 +		for(int n = 0; n<argCount4; n++)
   1.675 +			{
   1.676 +			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
   1.677 +			argv = argument_ptr;
   1.678 +			}
   1.679 +
   1.680 +		testCaseType.str("SEC-TOOLS-CERTAPP-SWIDAT_CREATE");
   1.681 +		RunCertAppTool(argCount4, argv,swiCertStoreFileName, testCaseType, num_tests); 
   1.682 +
   1.683 +/**
   1.684 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0000
   1.685 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.686 +*/	
   1.687 +/**
   1.688 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0001
   1.689 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.690 +*/	
   1.691 +/**
   1.692 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0002
   1.693 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.694 +*/	
   1.695 +/**
   1.696 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0003
   1.697 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.698 +*/	
   1.699 +/**
   1.700 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0004
   1.701 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.702 +*/	
   1.703 +/**
   1.704 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0005
   1.705 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.706 +*/	
   1.707 +/**
   1.708 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0006
   1.709 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.710 +*/	
   1.711 +/**
   1.712 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0007
   1.713 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.714 +*/	
   1.715 +/**
   1.716 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0008
   1.717 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.718 +*/	
   1.719 +/**
   1.720 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0009
   1.721 +  @SYMTestCaseDesc	AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.722 +*/	
   1.723 +
   1.724 +		//AUGMENT THE CACERT STORE WITH EXTRA INFORMATION
   1.725 +		//certapp  --hswicertstore=tAugment_swicertstore_x.txt  --bswicertstore=swicertstore_x.dat --out --bswicertstore=aug_swicertstore_x.dat
   1.726 +		stringstream augFileName, textDumpFileName;
   1.727 +		augFileName << "SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests <<".dat";
   1.728 +		strArg4<<"--bswicertstore=SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests << ".dat";
   1.729 +		argument4 = strArg4.str();
   1.730 +		argv_certclient[0] =  "--hswicertstore=tswi_Augment.txt";  //--hswicertstore=tAugment_swicertstore_x.txt
   1.731 +		argv_certclient[1] =  argv_certclient[3]; //--bswicertstore=swicertstore_x.dat
   1.732 +		argv_certclient[2] = "--out";
   1.733 +		argv_certclient[3] = argument4.c_str();  //--bswicertstore=aug_swicertstore_x.dat
   1.734 +		char **argv1;
   1.735 +		for(int x = 0; x<argCount4; x++)
   1.736 +			{
   1.737 +			argument_ptr[x] = const_cast<char*>(argv_certclient[x]);
   1.738 +			argv1 = argument_ptr;   
   1.739 +			}
   1.740 +
   1.741 +		testCaseType.str("SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT");
   1.742 +		RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests);
   1.743 +
   1.744 +/**
   1.745 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0000
   1.746 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.747 +*/	
   1.748 +/**
   1.749 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0001
   1.750 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.751 +*/	
   1.752 +/**
   1.753 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0002
   1.754 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.755 +*/	
   1.756 +/**
   1.757 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0003
   1.758 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.759 +*/	
   1.760 +/**
   1.761 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0004
   1.762 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.763 +*/	
   1.764 +/**
   1.765 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0005
   1.766 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.767 +*/	
   1.768 +/**
   1.769 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0006
   1.770 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.771 +*/	
   1.772 +/**
   1.773 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0007
   1.774 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.775 +*/	
   1.776 +/**
   1.777 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0008
   1.778 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.779 +*/	
   1.780 +/**
   1.781 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0009
   1.782 +  @SYMTestCaseDesc	DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.783 +*/	
   1.784 +		
   1.785 +		//DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT
   1.786 +		textDumpFileName << "SDP-Security_Tools-CertApp-SWIDUMP_000" <<num_tests << ".txt";
   1.787 +		argv_certclient[0] =  argv_certclient[3];  
   1.788 +		argv_certclient[1] = "--out";
   1.789 +		strArg5<< "--hswicertstore=SDP-Security_Tools-CertApp-SWIDUMP_000" <<num_tests << ".txt";
   1.790 +		argument5= strArg5.str().c_str();
   1.791 +		argv_certclient[2] = argument5.c_str();
   1.792 +			
   1.793 +		char ** argv2;
   1.794 +		for(int k = 0; k<argCount3; k++)
   1.795 +			{
   1.796 +			argument_ptr[k] = const_cast<char*>(argv_certclient[k]);
   1.797 +			argv2 = argument_ptr;
   1.798 +			}
   1.799 +
   1.800 +		testCaseType.str("SEC-TOOLS-CERTAPP-SWIDUMP_DUMP");
   1.801 +		RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); 
   1.802 +		}
   1.803 +	
   1.804 +	//Test with unicode filename
   1.805 +	TestWithUnicodFileName();
   1.806 +
   1.807 +	//create empty config file
   1.808 +	TestsWithEmptyConfigFile();
   1.809 +
   1.810 +	//Test case to test for different file formats
   1.811 +	TestsWithEncodedFileFormats();
   1.812 +
   1.813 +	//Test case for REQ10313 to check decode/encode of stores
   1.814 +	TestToDecodeAndEncodeStore();
   1.815 +
   1.816 +	//Test case for REQ10314 - reviewing aggregate certificate database
   1.817 +	TestToReviewingAggregateStore();
   1.818 +
   1.819 +	//Test cases for BAD Params
   1.820 +/**
   1.821 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0000
   1.822 +  @SYMTestCaseDesc	Create bad certclient config files
   1.823 +*/	
   1.824 +/**
   1.825 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0001
   1.826 +  @SYMTestCaseDesc	Create bad certclient config files
   1.827 +*/	
   1.828 +/**
   1.829 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATEE-0002
   1.830 +  @SYMTestCaseDesc	Create bad certclient config files
   1.831 +*/	
   1.832 +/**
   1.833 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0003
   1.834 +  @SYMTestCaseDesc	Create bad certclient config files
   1.835 +*/	
   1.836 +/**
   1.837 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0004
   1.838 +  @SYMTestCaseDesc	Create bad certclient config files
   1.839 +*/	
   1.840 +/**
   1.841 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0005
   1.842 +  @SYMTestCaseDesc	Create bad certclient config files
   1.843 +*/	
   1.844 +/**
   1.845 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0006
   1.846 +  @SYMTestCaseDesc	Create bad certclient config files
   1.847 +*/	
   1.848 +/**
   1.849 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0007
   1.850 +  @SYMTestCaseDesc	Create bad certclient config files
   1.851 +*/	
   1.852 +/**
   1.853 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0008
   1.854 +  @SYMTestCaseDesc	Create bad certclient config files
   1.855 +*/	
   1.856 +	//create certclient config files 
   1.857 +	testCaseType.str("SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE");
   1.858 +	testCaseIndex = 0;
   1.859 +	for(num_tests =0; num_tests<3; num_tests++) 
   1.860 +		{
   1.861 +		stringstream badCertClientsFileName;
   1.862 +		badCertClientsFileName << "SDP-Security_Tools-CertApp-CCBadParams-000"<<num_tests;
   1.863 +		BadFileCertClientsTests(badCertClientsFileName,num_tests,testCaseType,testCaseIndex);
   1.864 +		} //End of bad params for cerclients
   1.865 +
   1.866 +/**
   1.867 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0000
   1.868 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.869 +*/	
   1.870 +/**
   1.871 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0001
   1.872 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.873 +*/	
   1.874 +/**
   1.875 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0002
   1.876 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.877 +*/	
   1.878 +/**
   1.879 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0003
   1.880 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.881 +*/	
   1.882 +/**
   1.883 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0004
   1.884 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.885 +*/	
   1.886 +/**
   1.887 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0005
   1.888 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.889 +*/	
   1.890 +/**
   1.891 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0006
   1.892 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.893 +*/	
   1.894 +/**
   1.895 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0007
   1.896 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.897 +*/	
   1.898 +/**
   1.899 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0008
   1.900 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.901 +*/	
   1.902 +/**
   1.903 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0009
   1.904 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.905 +*/	
   1.906 +/**
   1.907 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0010
   1.908 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.909 +*/	
   1.910 +/**
   1.911 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0011
   1.912 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.913 +*/	
   1.914 +/**
   1.915 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0012
   1.916 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.917 +*/	
   1.918 +/**
   1.919 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0013
   1.920 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.921 +*/	
   1.922 +/**
   1.923 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0014
   1.924 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.925 +*/	
   1.926 +/**
   1.927 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0015
   1.928 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.929 +*/	
   1.930 +/**
   1.931 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0016
   1.932 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.933 +*/	
   1.934 +/**
   1.935 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0017
   1.936 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.937 +*/	
   1.938 +/**
   1.939 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0018
   1.940 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.941 +*/	
   1.942 +/**
   1.943 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0019
   1.944 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.945 +*/	
   1.946 +/**
   1.947 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0020
   1.948 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.949 +*/	
   1.950 +/**
   1.951 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0021
   1.952 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.953 +*/	
   1.954 +/**
   1.955 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0022
   1.956 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.957 +*/	
   1.958 +/**
   1.959 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0023
   1.960 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.961 +*/	
   1.962 +/**
   1.963 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0024
   1.964 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.965 +*/	
   1.966 +/**
   1.967 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0025
   1.968 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.969 +*/	
   1.970 +/**
   1.971 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE-0026
   1.972 +  @SYMTestCaseDesc	Create bad config files for file certstore
   1.973 +*/	
   1.974 +	//create bad config files for file certstore - cacerts.dat
   1.975 +	testCaseType.str("SEC-TOOLS-CERTAPP-FILEBADPARAMS_CREATE");
   1.976 +	testCaseIndex = 0;
   1.977 +	for(num_tests = 0; num_tests<KFileArrayIndex+1; num_tests++)
   1.978 +		{
   1.979 +		stringstream badCaCertsFileName;
   1.980 +		badCaCertsFileName << "SDP-Security_Tools-CertApp-FileBadParams-000"<<num_tests; 
   1.981 +		BadFileCaCertTests(badCaCertsFileName,num_tests,testCaseType,testCaseIndex);
   1.982 +		}
   1.983 +	
   1.984 +/**
   1.985 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0000
   1.986 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
   1.987 +*/	
   1.988 +/**
   1.989 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0001
   1.990 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
   1.991 +*/	
   1.992 +/**
   1.993 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0002
   1.994 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
   1.995 +*/	
   1.996 +/**
   1.997 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0003
   1.998 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
   1.999 +*/	
  1.1000 +/**
  1.1001 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0004
  1.1002 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1003 +*/	
  1.1004 +/**
  1.1005 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0005
  1.1006 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1007 +*/	
  1.1008 +/**
  1.1009 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0006
  1.1010 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1011 +*/	
  1.1012 +/**
  1.1013 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0007
  1.1014 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1015 +*/	
  1.1016 +/**
  1.1017 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0008
  1.1018 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1019 +*/	
  1.1020 +/**
  1.1021 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0009
  1.1022 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1023 +*/	
  1.1024 +/**
  1.1025 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0010
  1.1026 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1027 +*/	
  1.1028 +/**
  1.1029 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0011
  1.1030 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1031 +*/	
  1.1032 +/**
  1.1033 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0012
  1.1034 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1035 +*/	
  1.1036 +/**
  1.1037 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0013
  1.1038 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1039 +*/	
  1.1040 +/**
  1.1041 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0014
  1.1042 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1043 +*/	
  1.1044 +/**
  1.1045 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0015
  1.1046 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1047 +*/	
  1.1048 +/**
  1.1049 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0016
  1.1050 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1051 +*/	
  1.1052 +/**
  1.1053 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0017
  1.1054 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1055 +*/	
  1.1056 +/**
  1.1057 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0018
  1.1058 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1059 +*/	
  1.1060 +/**
  1.1061 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0019
  1.1062 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1063 +*/	
  1.1064 +/**
  1.1065 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0020
  1.1066 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1067 +*/	
  1.1068 +/**
  1.1069 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0021
  1.1070 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1071 +*/	
  1.1072 +/**
  1.1073 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0022
  1.1074 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1075 +*/	
  1.1076 +/**
  1.1077 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0023
  1.1078 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1079 +*/	
  1.1080 +/**
  1.1081 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0024
  1.1082 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1083 +*/	
  1.1084 +/**
  1.1085 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0025
  1.1086 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1087 +*/	
  1.1088 +/**
  1.1089 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0026
  1.1090 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1091 +*/	
  1.1092 +/**
  1.1093 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0027
  1.1094 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1095 +*/	
  1.1096 +/**
  1.1097 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0028
  1.1098 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1099 +*/	
  1.1100 +/**
  1.1101 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0029
  1.1102 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1103 +*/	
  1.1104 +/**
  1.1105 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE-0030
  1.1106 +  @SYMTestCaseDesc	Create config files with invalid values swi certstore 
  1.1107 +*/	
  1.1108 +	//create config files with invalid values swi certstore 
  1.1109 +	testCaseType.str("SEC-TOOLS-CERTAPP-SWIBADPARAMS_CREATE");
  1.1110 +	testCaseIndex = 0;
  1.1111 +	for(num_tests = 0; num_tests<KSwiBadcertIndex; num_tests++)
  1.1112 +		{
  1.1113 +		stringstream badSwiCertsFileName;
  1.1114 +		badSwiCertsFileName << "SDP-Security_Tools-CertApp-SwiBadParams-000"<<num_tests;
  1.1115 +		BadSwiCertTests(badSwiCertsFileName,num_tests,testCaseType,testCaseIndex);
  1.1116 +		}
  1.1117 +
  1.1118 +/**
  1.1119 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0001
  1.1120 +  @SYMTestCaseDesc	Initializing a CUnifiedCertStore
  1.1121 +*/	
  1.1122 +/**
  1.1123 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0002
  1.1124 +  @SYMTestCaseDesc	Get the list of certificates
  1.1125 +*/	
  1.1126 +/**
  1.1127 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0003
  1.1128 +  @SYMTestCaseDesc	Get certificate details
  1.1129 +*/	
  1.1130 +/**
  1.1131 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0004
  1.1132 +  @SYMTestCaseDesc	Get Trust certificate
  1.1133 +*/	
  1.1134 +/**
  1.1135 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0005
  1.1136 +  @SYMTestCaseDesc	Get applications
  1.1137 +*/	
  1.1138 +/**
  1.1139 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0006
  1.1140 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1141 +*/	
  1.1142 +/**
  1.1143 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0007
  1.1144 +  @SYMTestCaseDesc	Get certificate details
  1.1145 +*/	
  1.1146 +/**
  1.1147 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0008
  1.1148 +  @SYMTestCaseDesc	Get Trust certificate
  1.1149 +*/	
  1.1150 +/**
  1.1151 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0009
  1.1152 +  @SYMTestCaseDesc	Get applications
  1.1153 +*/	
  1.1154 +/**
  1.1155 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0010
  1.1156 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1157 +*/	
  1.1158 +/**
  1.1159 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0011
  1.1160 +  @SYMTestCaseDesc	Get certificate details
  1.1161 +*/	
  1.1162 +/**
  1.1163 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0012
  1.1164 +  @SYMTestCaseDesc	Get Trust certificate
  1.1165 +*/	
  1.1166 +/**
  1.1167 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0013
  1.1168 +  @SYMTestCaseDesc	Get applications
  1.1169 +*/	
  1.1170 +/**
  1.1171 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0014
  1.1172 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1173 +*/	
  1.1174 +/**
  1.1175 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0015
  1.1176 +  @SYMTestCaseDesc	Get certificate details
  1.1177 +*/	
  1.1178 +/**
  1.1179 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0016
  1.1180 +  @SYMTestCaseDesc	Get Trust certificate
  1.1181 +*/	
  1.1182 +/**
  1.1183 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0017
  1.1184 +  @SYMTestCaseDesc	Get applications
  1.1185 +*/	
  1.1186 +/**
  1.1187 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0018
  1.1188 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1189 +*/	
  1.1190 +/**
  1.1191 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0019
  1.1192 +  @SYMTestCaseDesc	Get certificate details
  1.1193 +*/	
  1.1194 +/**
  1.1195 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0020
  1.1196 +  @SYMTestCaseDesc	Get Trust certificate
  1.1197 +*/	
  1.1198 +/**
  1.1199 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0021
  1.1200 +  @SYMTestCaseDesc	Get applications
  1.1201 +*/	
  1.1202 +/**
  1.1203 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0022
  1.1204 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1205 +*/	
  1.1206 +/**
  1.1207 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0023
  1.1208 +  @SYMTestCaseDesc	Get certificate details
  1.1209 +*/	
  1.1210 +/**
  1.1211 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0024
  1.1212 +  @SYMTestCaseDesc	Get Trust certificate
  1.1213 +*/	
  1.1214 +/**
  1.1215 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0025
  1.1216 +  @SYMTestCaseDesc	Get applications
  1.1217 +*/	
  1.1218 +/**
  1.1219 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCACERT-0026
  1.1220 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1221 +*/	
  1.1222 +	//Code to create Script files for the file/sw/certclients to run validation tests on emulator
  1.1223 +	//create script file for the symbian test harness-  for cacerts.dat
  1.1224 +	testCaseType.str("SEC-TOOLS-CERTAPP-GOODCACERT");
  1.1225 +	testCaseIndex = 0;
  1.1226 +	for(num_tests = 0; num_tests<1; num_tests++)
  1.1227 +		{
  1.1228 +		stringstream emu_CacertsFileName;
  1.1229 +		emu_CacertsFileName << "SDP-Security_Tools-CertApp-FILEDAT-EMU0"<<num_tests<<".script";
  1.1230 +		GenerateGoodCaCertsTestScripts(emu_CacertsFileName,testCaseType,testCaseIndex);
  1.1231 +		}
  1.1232 +
  1.1233 +/**
  1.1234 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0001
  1.1235 +  @SYMTestCaseDesc	Initialise a CertClientStore
  1.1236 +*/	
  1.1237 +/**
  1.1238 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0002
  1.1239 +  @SYMTestCaseDesc	Get Count of Applications
  1.1240 +*/	
  1.1241 +/**
  1.1242 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0003
  1.1243 +  @SYMTestCaseDesc	Getting the application list
  1.1244 +*/	
  1.1245 +/**
  1.1246 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0004
  1.1247 +  @SYMTestCaseDesc	Get application with given id
  1.1248 +*/	
  1.1249 +/**
  1.1250 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0005
  1.1251 +  @SYMTestCaseDesc	Get application with given id
  1.1252 +*/	
  1.1253 +/**
  1.1254 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0006
  1.1255 +  @SYMTestCaseDesc	Get application with given id
  1.1256 +*/	
  1.1257 +/**
  1.1258 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0007
  1.1259 +  @SYMTestCaseDesc	Get application with given id
  1.1260 +*/	
  1.1261 +/**
  1.1262 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODCERT-0008
  1.1263 +  @SYMTestCaseDesc	Destroy the manager
  1.1264 +*/	
  1.1265 +	//create script file for certclients.dat
  1.1266 +	testCaseType.str("SEC-TOOLS-CERTAPP-GOODCERT");
  1.1267 +	testCaseIndex = 0;
  1.1268 +	for(num_tests = 0; num_tests<1; num_tests++)
  1.1269 +		{
  1.1270 +		stringstream emu_CertClientsFileName;
  1.1271 +		emu_CertClientsFileName << "SDP-Security_Tools-CertApp-CCDAT-EMU0"<<num_tests<<".script";
  1.1272 +		GenerateGoodCertClientTestScripts(emu_CertClientsFileName,testCaseType,testCaseIndex);
  1.1273 +		}
  1.1274 +
  1.1275 +/**
  1.1276 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0001
  1.1277 +  @SYMTestCaseDesc	Initialise a SWICertStore
  1.1278 +*/
  1.1279 +/**
  1.1280 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0002
  1.1281 +  @SYMTestCaseDesc	Get the list of certificates
  1.1282 +*/	
  1.1283 +/**
  1.1284 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0003
  1.1285 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1286 +*/	
  1.1287 +/**
  1.1288 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0004
  1.1289 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1290 +*/	
  1.1291 +/**
  1.1292 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0005
  1.1293 +  @SYMTestCaseDesc	Get applications
  1.1294 +*/	
  1.1295 +/**
  1.1296 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0006
  1.1297 +  @SYMTestCaseDesc	Get Trust certificate
  1.1298 +*/	
  1.1299 +/**
  1.1300 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0007
  1.1301 +  @SYMTestCaseDesc	Get the capabilities
  1.1302 +*/	
  1.1303 +/**
  1.1304 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0008
  1.1305 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1306 +*/	
  1.1307 +/**
  1.1308 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0009
  1.1309 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1310 +*/	
  1.1311 +/**
  1.1312 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0010
  1.1313 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1314 +*/	
  1.1315 +/**
  1.1316 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0011
  1.1317 +  @SYMTestCaseDesc	Get applications
  1.1318 +*/	
  1.1319 +/**
  1.1320 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0012
  1.1321 +  @SYMTestCaseDesc	Get Trust certificate
  1.1322 +*/	
  1.1323 +/**
  1.1324 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0013
  1.1325 +  @SYMTestCaseDesc	Get the capabilities
  1.1326 +*/	
  1.1327 +/**
  1.1328 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0014
  1.1329 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1330 +*/	
  1.1331 +/**
  1.1332 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0015
  1.1333 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1334 +*/	
  1.1335 +/**
  1.1336 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0016
  1.1337 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1338 +*/	
  1.1339 +/**
  1.1340 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0017
  1.1341 +  @SYMTestCaseDesc	Get applications
  1.1342 +*/	
  1.1343 +/**
  1.1344 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0018
  1.1345 +  @SYMTestCaseDesc	Get Trust certificate
  1.1346 +*/	
  1.1347 +/**
  1.1348 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0019
  1.1349 +  @SYMTestCaseDesc	Get the capabilities
  1.1350 +*/	
  1.1351 +/**
  1.1352 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0020
  1.1353 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1354 +*/	
  1.1355 +/**
  1.1356 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0021
  1.1357 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1358 +*/	
  1.1359 +/**
  1.1360 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0022
  1.1361 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1362 +*/	
  1.1363 +/**
  1.1364 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0023
  1.1365 +  @SYMTestCaseDesc	Get applications
  1.1366 +*/	
  1.1367 +/**
  1.1368 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0024
  1.1369 +  @SYMTestCaseDesc	Get Trust certificate
  1.1370 +*/	
  1.1371 +/**
  1.1372 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0025
  1.1373 +  @SYMTestCaseDesc	Get the capabilities
  1.1374 +*/	
  1.1375 +/**
  1.1376 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0026
  1.1377 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1378 +*/	
  1.1379 +/**
  1.1380 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0027
  1.1381 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1382 +*/	
  1.1383 +/**
  1.1384 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0028
  1.1385 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1386 +*/	
  1.1387 +/**
  1.1388 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0029
  1.1389 +  @SYMTestCaseDesc	Get applications
  1.1390 +*/	
  1.1391 +/**
  1.1392 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0030
  1.1393 +  @SYMTestCaseDesc	Get Trust certificate
  1.1394 +*/	
  1.1395 +/**
  1.1396 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0031
  1.1397 +  @SYMTestCaseDesc	Get the capabilities
  1.1398 +*/	
  1.1399 +/**
  1.1400 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0032
  1.1401 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1402 +*/	
  1.1403 +/**
  1.1404 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0033
  1.1405 +  @SYMTestCaseDesc	Get the systemupgrade flag
  1.1406 +*/	
  1.1407 +/**
  1.1408 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0034
  1.1409 +  @SYMTestCaseDesc	Retrieve Certificate
  1.1410 +*/	
  1.1411 +/**
  1.1412 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0035
  1.1413 +  @SYMTestCaseDesc	Get applications
  1.1414 +*/	
  1.1415 +/**
  1.1416 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0036
  1.1417 +  @SYMTestCaseDesc	Get Trust certificate
  1.1418 +*/	
  1.1419 +/**
  1.1420 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0037
  1.1421 +  @SYMTestCaseDesc	Get the capabilities
  1.1422 +*/	
  1.1423 +/**
  1.1424 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-GOODSWICERT-0038
  1.1425 +  @SYMTestCaseDesc	Get the mandatory flag
  1.1426 +*/	
  1.1427 +	//create script file for the symbian test harness-  for swicerts.dat
  1.1428 +	testCaseType.str("SEC-TOOLS-CERTAPP-GOODSWICERT");
  1.1429 +	testCaseIndex = 0;
  1.1430 +	for(num_tests = 0; num_tests<1; num_tests++)
  1.1431 +		{
  1.1432 +		stringstream emu_SwiCertsFileName;
  1.1433 +		emu_SwiCertsFileName << "SDP-Security_Tools-CertApp-SWIDAT-EMU0"<<num_tests<<".script";
  1.1434 +		GenerateGoodSwiCertTestScripts(emu_SwiCertsFileName,testCaseType,testCaseIndex);
  1.1435 +		}
  1.1436 +
  1.1437 +	int testCaseCount = failCount+passCount;
  1.1438 +	cout  << "\nTestrun result is :: " << failCount <<" tests failed out of " << testCaseCount <<endl;
  1.1439 +	file << "\n\nTotal number of test cases run is -> " << testCaseCount << endl;
  1.1440 +	file << failCount << " tests failed out of " << testCaseCount <<endl;
  1.1441 +	file.close();
  1.1442 +	return 0;
  1.1443 +}
  1.1444 +
  1.1445 +
  1.1446 +
  1.1447 +/**
  1.1448 +Function to create input file for augmenting the existing store
  1.1449 +*/
  1.1450 +void CreateFileToAugmentStore()
  1.1451 +{
  1.1452 +	stringstream swifilename, cacertsfilename, certclientName;
  1.1453 +	swifilename <<"tswi_Augment.txt";
  1.1454 +	cacertsfilename<< "tfile_Augment.txt";
  1.1455 +	certclientName << "tCertClient_Augment.txt";
  1.1456 +
  1.1457 +	SwiCertStoreConfigWriter swiwriter(swifilename);
  1.1458 +	swiwriter.WriteExtraSwiEntry();
  1.1459 +	
  1.1460 +	FileCertStoreConfigWriter filewriter(cacertsfilename);
  1.1461 +	filewriter.WriteExtraFileEntry();
  1.1462 +
  1.1463 +	FileCertClientConfigWriter certclientwriter(certclientName);
  1.1464 +	certclientwriter.WriteExtraCertClientEntry();
  1.1465 +}
  1.1466 +
  1.1467 +
  1.1468 +/**
  1.1469 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-UNICODEFILE_CREATE-0000
  1.1470 +  @SYMTestCaseDesc	Check the certapp tool for unicode named config file
  1.1471 +*/	
  1.1472 +/**
  1.1473 +Test case to check the certapp tool for unicode named config file
  1.1474 +Testing with only one unicode named config file for now
  1.1475 +*/
  1.1476 +void TestWithUnicodFileName()
  1.1477 +{
  1.1478 +	//unicode file name in utf8 format
  1.1479 +	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";
  1.1480 +	fstream fileHandle;
  1.1481 +
  1.1482 +	OpenUtf8FStreamForWrite(fileHandle,filename);
  1.1483 +
  1.1484 +	char * buffer;
  1.1485 +	long size;
  1.1486 +
  1.1487 +	ifstream infile ("SDP-Security_Tools-CertApp-CCDAT_0000.txt",ifstream::binary);
  1.1488 +	// get size of file
  1.1489 +	infile.seekg(0,ifstream::end);
  1.1490 +	size=infile.tellg();
  1.1491 +	infile.seekg(0);
  1.1492 +	// allocate memory for file content
  1.1493 +	buffer = new char [size];
  1.1494 +	// read content of infile
  1.1495 +	infile.read (buffer,size);
  1.1496 +	// write to outfile
  1.1497 +	fileHandle.write (buffer,size);
  1.1498 +  
  1.1499 +	// release dynamically-allocated memory
  1.1500 +	delete[] buffer;
  1.1501 +	fileHandle.close();
  1.1502 +	infile.close();
  1.1503 +
  1.1504 +	//create argument list for certapp
  1.1505 +	const char *argv_certclient[3];
  1.1506 +	stringstream str1;
  1.1507 +	str1 <<"--hcertclients=" << filename;
  1.1508 +	string string1;
  1.1509 +	string1 = str1.str();
  1.1510 +
  1.1511 +	argv_certclient[0] =  string1.c_str();
  1.1512 +	argv_certclient[1] = "--out";
  1.1513 +	argv_certclient[2] = "--bcertclients=SDP-Security_Tools-CertApp-UNI00.dat";
  1.1514 +	
  1.1515 +	char **argv;
  1.1516 +	char *argument_ptr[3];
  1.1517 +	int argCount=3;
  1.1518 +	for(int n = 0; n<argCount; n++)
  1.1519 +		{
  1.1520 +		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.1521 +		argv = argument_ptr;
  1.1522 +		}
  1.1523 +
  1.1524 +	for(int i =0; i<argCount; i++)
  1.1525 +		{
  1.1526 +		cout << "Arguments Being passed to the RunCertApp tool is " << argv[i] << endl;
  1.1527 +		}
  1.1528 +
  1.1529 +	int ret = RunCertApp(progress, errors, argCount, argv); 
  1.1530 +	cout << "Return value from certapp is " << ret <<endl;
  1.1531 +	stringstream logging;
  1.1532 +	if(ret!= 0)
  1.1533 +		{
  1.1534 +		failCount++;
  1.1535 +		logging << "Error in creating store using the unicode file name config file " << filename << " and result is " << ret << " Fail";
  1.1536 +		}
  1.1537 +	else
  1.1538 +		{
  1.1539 +		passCount++;
  1.1540 +		logging << "No Error in creating store using the unicode file named config file " << filename << " and result is " << ret << " Pass";
  1.1541 +		}
  1.1542 +	
  1.1543 +	stringstream testCaseType("SEC-TOOLS-CERTAPP-UNICODEFILE_CREATE");
  1.1544 +	writeTMSResult(file, testCaseType, 0, ret==0, logging);
  1.1545 +}
  1.1546 +
  1.1547 +/**
  1.1548 +Generate Certclient config files
  1.1549 +*/
  1.1550 +void GoodFileCertClientsTests(const stringstream &aFilename)
  1.1551 +{
  1.1552 +	FileCertClientConfigWriter filewriter(aFilename);
  1.1553 +	const char *certclientPtr1; 
  1.1554 +	const char *certclientPtr2;
  1.1555 +	for(int i = 0; i<KAppUidIndex ; i++)
  1.1556 +		{
  1.1557 +		certclientPtr1 = goodAppNames[i];
  1.1558 +		certclientPtr2 = gooduid_array[i];
  1.1559 +		filewriter.WriteCertClientUid(certclientPtr2);
  1.1560 +		filewriter.WriteCertClientName(certclientPtr1);
  1.1561 +		}
  1.1562 +}
  1.1563 +
  1.1564 +
  1.1565 +/**
  1.1566 +Generate good config files for cacerts
  1.1567 +*/
  1.1568 +void GoodFileCaCertTests(const stringstream &aFilename ,int aValue)
  1.1569 +{
  1.1570 +	FileCertStoreConfigWriter fileCertWriter(aFilename);
  1.1571 +	const char **cacertPtr; 
  1.1572 +	const char **label = filecert_array[0];
  1.1573 +	switch(aValue)
  1.1574 +	{
  1.1575 +	case 0:
  1.1576 +		{
  1.1577 +		// Tests for GoodLabels
  1.1578 +		for(label = filecert_array[aValue]; *label; ++label)
  1.1579 +			{
  1.1580 +		
  1.1581 +			fileCertWriter.WriteFileEntry(*label);
  1.1582 +			}
  1.1583 +		break;
  1.1584 +		}
  1.1585 +	case 1:
  1.1586 +		{
  1.1587 +		// Tests for GoodDeletables
  1.1588 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1589 +			{
  1.1590 +			fileCertWriter.WriteFileEntry(*label,*cacertPtr);
  1.1591 +			label++;
  1.1592 +			}
  1.1593 +		break;
  1.1594 +		}
  1.1595 +	case 2:
  1.1596 +		{
  1.1597 +		//Tests for GoodFormats
  1.1598 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1599 +			{
  1.1600 +			fileCertWriter.WriteFileEntry(*label,0,*cacertPtr);
  1.1601 +			label++;
  1.1602 +			}
  1.1603 +		break;
  1.1604 +		}
  1.1605 +	case 3:
  1.1606 +		{
  1.1607 +		//Tests for GoodCertOwnerTypes
  1.1608 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1609 +			{
  1.1610 +			fileCertWriter.WriteFileEntry(*label,0,0,*cacertPtr);
  1.1611 +			label++;
  1.1612 +			}
  1.1613 +		break;
  1.1614 +		}
  1.1615 +	case 4:
  1.1616 +		{
  1.1617 +		//Tests for GoodSubjectKeyIds
  1.1618 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1619 +			{
  1.1620 +			fileCertWriter.WriteFileEntry(*label,0,0,0,*cacertPtr);
  1.1621 +			label++;
  1.1622 +			}
  1.1623 +		break;
  1.1624 +		}
  1.1625 +	case 5:
  1.1626 +		{
  1.1627 +		//Tests for GoodIssuerKeyIds
  1.1628 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1629 +			{
  1.1630 +			fileCertWriter.WriteFileEntry(*label,0,0,0,0,*cacertPtr);
  1.1631 +			label++;
  1.1632 +			}
  1.1633 +		break;
  1.1634 +		}
  1.1635 +	case 6:
  1.1636 +		{
  1.1637 +		//Tests for GoodApplications
  1.1638 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1639 +			{
  1.1640 +			fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,*cacertPtr);
  1.1641 +			label++;
  1.1642 +			}
  1.1643 +		break;
  1.1644 +		}
  1.1645 +	case 7:
  1.1646 +		{
  1.1647 +		//Tests for GoodTrusteds
  1.1648 +		for(cacertPtr = filecert_array[aValue]; *cacertPtr; ++cacertPtr)
  1.1649 +			{
  1.1650 +			fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,0,*cacertPtr);
  1.1651 +			label++;
  1.1652 +			}
  1.1653 +		break;
  1.1654 +		}
  1.1655 +	
  1.1656 +	case 8:
  1.1657 +		{	
  1.1658 +		//Test for PEM support
  1.1659 +		const char* datafilename = "\"root5ca.pem\"";
  1.1660 +		fileCertWriter.WriteFileEntry(*label,0,0,0,0,0,0,0,datafilename);
  1.1661 +		}
  1.1662 +		break;
  1.1663 +	
  1.1664 +	default:
  1.1665 +		break;
  1.1666 +	}
  1.1667 +}
  1.1668 +
  1.1669 +/**
  1.1670 +Generate  config file for swicert
  1.1671 +*/
  1.1672 +void GoodSwiCertTests(const stringstream &aFilename, int aIndex)
  1.1673 +{
  1.1674 +	SwiCertStoreConfigWriter swiWriter(aFilename);
  1.1675 +	const char **swiPtr1, **swiPtr2; 
  1.1676 +	swiPtr2 = swicert_array[0]; // labels for all scripts
  1.1677 +	switch(aIndex)
  1.1678 +	{
  1.1679 +	case 0:
  1.1680 +		{
  1.1681 +		// Tests for GoodLabels
  1.1682 +		for(swiPtr2=swicert_array[aIndex] ; *swiPtr2; ++swiPtr2)
  1.1683 +			{
  1.1684 +			swiWriter.WriteSwiEntry(*swiPtr2);
  1.1685 +			}
  1.1686 +		break;
  1.1687 +		}
  1.1688 +	case 1:
  1.1689 +		{
  1.1690 +		//Tests for GoodFormats
  1.1691 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1692 +			{
  1.1693 +			swiWriter.WriteSwiEntry(*swiPtr2,*swiPtr1);
  1.1694 +			++swiPtr2;
  1.1695 +			}
  1.1696 +		break;
  1.1697 +		}
  1.1698 +	case 2:
  1.1699 +		{
  1.1700 +		//Tests for GoodCertOwnerTypes
  1.1701 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1702 +			{
  1.1703 +			swiWriter.WriteSwiEntry(*swiPtr2,0,*swiPtr1);
  1.1704 +			++swiPtr2;
  1.1705 +			}
  1.1706 +		break;
  1.1707 +		}
  1.1708 +	case 3:
  1.1709 +		{
  1.1710 +		//Tests for GoodSubjectKeyIds
  1.1711 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1712 +			{
  1.1713 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,*swiPtr1);
  1.1714 +			++swiPtr2;
  1.1715 +			}
  1.1716 +		break;
  1.1717 +		}
  1.1718 +	case 4:
  1.1719 +		{
  1.1720 +		//Tests for GoodIssuerKeyIds
  1.1721 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1722 +			{
  1.1723 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,*swiPtr1);
  1.1724 +			++swiPtr2;
  1.1725 +			}
  1.1726 +		break;
  1.1727 +		}
  1.1728 +	case 5:
  1.1729 +		{
  1.1730 +		//Tests for GoodAswiPtr1lications
  1.1731 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1732 +			{
  1.1733 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,*swiPtr1);
  1.1734 +			++swiPtr2;
  1.1735 +			}
  1.1736 +		break;
  1.1737 +		}
  1.1738 +	case 6:
  1.1739 +		{
  1.1740 +		//Tests for GoodTrusteds
  1.1741 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1742 +			{
  1.1743 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,*swiPtr1);
  1.1744 +			++swiPtr2;
  1.1745 +			}
  1.1746 +		break;
  1.1747 +		}
  1.1748 +	case 7:
  1.1749 +		{
  1.1750 +		//Tests for GoodCapabilities
  1.1751 +		swiPtr1 = swicert_array[aIndex]; 
  1.1752 +		swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,*swiPtr1);
  1.1753 +		break;
  1.1754 +		}
  1.1755 +	case 8:
  1.1756 +		{
  1.1757 +		//Tests for sGoodMandatory
  1.1758 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1759 +			{
  1.1760 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,0,*swiPtr1);
  1.1761 +			++swiPtr2;
  1.1762 +			}
  1.1763 +		break;
  1.1764 +		}
  1.1765 +	case 9:
  1.1766 +		{
  1.1767 +		//Tests for sGoodSystemUpgrade
  1.1768 +		for(swiPtr1 = swicert_array[aIndex]; *swiPtr1; ++swiPtr1)
  1.1769 +			{
  1.1770 +			swiWriter.WriteSwiEntry(*swiPtr2,0,0,0,0,0,0,0,0,*swiPtr1);
  1.1771 +			++swiPtr2;
  1.1772 +			}
  1.1773 +		break;
  1.1774 +		}
  1.1775 +	default:
  1.1776 +		break;
  1.1777 +	}
  1.1778 +}
  1.1779 +
  1.1780 +/**
  1.1781 +Generate config  files with invalid values for the store
  1.1782 +*/
  1.1783 +void TestBadConfigFiles(const stringstream &aFilename, bool aBool, stringstream &aTestCaseType, int aTestCaseIndex)
  1.1784 +{
  1.1785 +	// create command line input for cacerts
  1.1786 +	//Ex:certapp --hcertclients=t_certclients_0.txt --hfilecertstore=t_cacerts_0.txt --out --bfilecertstore=cacerts_x.dat
  1.1787 +	stringstream strArg1, strArg2, strArg3;
  1.1788 +	stringstream configFileName;
  1.1789 +	configFileName <<aFilename.str() << ".txt";
  1.1790 +	cout << aFilename.str() <<endl;
  1.1791 +	if(aBool == 0) // file store
  1.1792 +		{
  1.1793 +		strArg1 <<"--hfilecertstore="<<aFilename.str() <<".txt";;//--hfilecertstore=t_cacerts_x.txt
  1.1794 +		
  1.1795 +		strArg2<< "--bfilecertstore=" << aFilename.str() <<".dat"; //--bfilecertstore=cacerts_x.dat
  1.1796 +		cout <<"string value is " << strArg2.str().c_str() << endl;	
  1.1797 +		}
  1.1798 +	else  //swi store
  1.1799 +		{
  1.1800 +		strArg1 <<"--hswicertstore="<<aFilename.str() <<".txt";;//--hswicertstore=t_cacerts_x.txt
  1.1801 +		
  1.1802 +		strArg2<< "--bswicertstore=" << aFilename.str() <<".dat"; //--bswicertstore=cacerts_x.dat
  1.1803 +		cout <<"string value is " << strArg2.str().c_str() << endl;	
  1.1804 +		}
  1.1805 +
  1.1806 +	strArg3<< "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
  1.1807 +	cout <<"string value is " << strArg3.str().c_str() << endl;
  1.1808 +
  1.1809 +	string argument1, argument2, argument3;
  1.1810 +	const char *argv_certclient[4];
  1.1811 +	
  1.1812 +	argument1 = strArg1.str().c_str();
  1.1813 +	argument3 = strArg3.str().c_str();
  1.1814 +
  1.1815 +	argv_certclient[0] = argument3.c_str(); // --hcertclients=t_certclients_0.txt
  1.1816 +	argv_certclient[1] = argument1.c_str(); // --hfilecertstore=t_cacerts_x.txt
  1.1817 +	argv_certclient[2] = "--out";			//--out
  1.1818 +	argument2 = strArg2.str().c_str();
  1.1819 +	argv_certclient[3] = argument2.c_str(); //--bfilecertstore=cacerts_x.dat
  1.1820 +
  1.1821 +	char *argument_ptr[4]; 
  1.1822 +	int argCount4 = 4;
  1.1823 +	char **argv;
  1.1824 +	for(int n = 0; n<argCount4; n++)
  1.1825 +		{
  1.1826 +		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.1827 +		argv = argument_ptr;   
  1.1828 +		}
  1.1829 +	RunCertAppToolForBadParams(argCount4, argv, configFileName, aTestCaseType, aTestCaseIndex); 
  1.1830 +}
  1.1831 +
  1.1832 +/**
  1.1833 +Generate bad config files for cacerts
  1.1834 +*/
  1.1835 +void BadFileCaCertTests(const stringstream &aFilename ,int aValue, stringstream &aTestCaseType, int &aTestIndex)
  1.1836 +{
  1.1837 +	const char **caCertPtr; 
  1.1838 +	int count = 0;
  1.1839 +	switch(aValue)
  1.1840 +	{
  1.1841 +	case 0:
  1.1842 +		{
  1.1843 +		// Tests for BadLabels
  1.1844 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr ; ++caCertPtr )
  1.1845 +			{
  1.1846 +			stringstream file1, file2;
  1.1847 +			file1 << aFilename.str() <<"_"<<count;
  1.1848 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1849 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1850 +			badcertfileWriter.WriteFileEntry(*caCertPtr);
  1.1851 +			TestBadConfigFiles(file1, 0, aTestCaseType, aTestIndex++);
  1.1852 +			count++;
  1.1853 +			}
  1.1854 +		break;
  1.1855 +		}
  1.1856 +	case 1:
  1.1857 +		{
  1.1858 +		// Tests for BadDeletables
  1.1859 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1860 +			{
  1.1861 +			stringstream file1, file2;
  1.1862 +			file1 << aFilename.str() <<"_"<<count;
  1.1863 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1864 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1865 +			badcertfileWriter.WriteFileEntry(0,*caCertPtr);
  1.1866 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1867 +			count++;
  1.1868 +			}
  1.1869 +		break;
  1.1870 +		}
  1.1871 +	case 2:
  1.1872 +		{
  1.1873 +		//Tests for BadFormats
  1.1874 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1875 +			{
  1.1876 +			stringstream file1, file2;
  1.1877 +			file1 << aFilename.str() <<"_"<<count;
  1.1878 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1879 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1880 +			badcertfileWriter.WriteFileEntry(0,0,*caCertPtr);
  1.1881 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1882 +			count++;
  1.1883 +			}
  1.1884 +		break;
  1.1885 +		}
  1.1886 +	case 3:
  1.1887 +		{
  1.1888 +		//Tests for BadCertOwnerTypes
  1.1889 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1890 +			{
  1.1891 +			stringstream file1, file2;
  1.1892 +			file1 << aFilename.str() <<"_"<<count;
  1.1893 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1894 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1895 +			badcertfileWriter.WriteFileEntry(0,0,0,*caCertPtr);
  1.1896 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1897 +			count++;
  1.1898 +			}
  1.1899 +		break;
  1.1900 +		}
  1.1901 +	case 4:
  1.1902 +		{
  1.1903 +		//Tests for BadSubjectKeyIds
  1.1904 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1905 +			{
  1.1906 +			stringstream file1, file2;
  1.1907 +			file1 << aFilename.str() <<"_"<<count;
  1.1908 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1909 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1910 +			badcertfileWriter.WriteFileEntry(0,0,0,0,*caCertPtr);
  1.1911 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1912 +			count++;
  1.1913 +			}
  1.1914 +		break;
  1.1915 +		}
  1.1916 +	case 5:
  1.1917 +		{
  1.1918 +		//Tests for BadIssuerKeyIds
  1.1919 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1920 +			{
  1.1921 +			stringstream file1, file2;
  1.1922 +			file1 << aFilename.str() <<"_"<<count;
  1.1923 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1924 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1925 +			badcertfileWriter.WriteFileEntry(0,0,0,0,0,*caCertPtr);
  1.1926 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1927 +			count++;
  1.1928 +			}
  1.1929 +		break;
  1.1930 +		}
  1.1931 +	case 6:
  1.1932 +		{
  1.1933 +		//Tests for BadApplications
  1.1934 +		caCertPtr = badfilecert_array[aValue];
  1.1935 +		stringstream file1, file2;
  1.1936 +		file1 << aFilename.str() <<"_"<<count;
  1.1937 +		file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1938 +		FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1939 +		badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,*caCertPtr);
  1.1940 +		TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1941 +		break;
  1.1942 +		}
  1.1943 +	case 7:
  1.1944 +		{
  1.1945 +		//Tests for BadTrusteds
  1.1946 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1947 +			{
  1.1948 +			stringstream file1, file2;
  1.1949 +			file1 << aFilename.str() <<"_"<<count;
  1.1950 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1951 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1952 +			badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,0,*caCertPtr);
  1.1953 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1954 +			count++;
  1.1955 +			}
  1.1956 +		break;
  1.1957 +		}
  1.1958 +	case 8:
  1.1959 +		{
  1.1960 +		//Tests for BadDataFileName
  1.1961 +		for(caCertPtr = badfilecert_array[aValue]; *caCertPtr; ++caCertPtr)
  1.1962 +			{
  1.1963 +			stringstream file1, file2;
  1.1964 +			file1 << aFilename.str() <<"_"<<count;
  1.1965 +			file2 << aFilename.str() <<"_"<<count <<".txt";
  1.1966 +			FileBadCertStoreConfigWriter badcertfileWriter(file2);
  1.1967 +			badcertfileWriter.WriteFileEntry(0,0,0,0,0,0,0,0,*caCertPtr);
  1.1968 +			TestBadConfigFiles(file1,0,aTestCaseType,aTestIndex++);
  1.1969 +			count++;
  1.1970 +			}
  1.1971 +		break;
  1.1972 +		}
  1.1973 +	default:
  1.1974 +		break;
  1.1975 +	}
  1.1976 +}
  1.1977 +
  1.1978 +
  1.1979 +/**
  1.1980 +Generate bad Certclient config files
  1.1981 +*/
  1.1982 +void BadFileCertClientsTests(const stringstream &aFilename, int aIndex, stringstream &aTestCaseType, int &aTestCaseIndex)
  1.1983 +{
  1.1984 +	FileBadCertClientConfigWriter certfileWriter(aFilename);
  1.1985 +	const char *certfilePtr1, *certfilePtr2; 
  1.1986 +	
  1.1987 +	switch(aIndex)
  1.1988 +	{
  1.1989 +	case 0:
  1.1990 +		{
  1.1991 +		for(int i=0; i<KAppUidIndex; i++) // 4 badUids[] length
  1.1992 +			{
  1.1993 +			stringstream file1, file2;
  1.1994 +			file2 << aFilename.str() << "_" << i ;
  1.1995 +			file1 << aFilename.str() <<"_"<<i <<".txt";
  1.1996 +			FileBadCertClientConfigWriter certfileWriter(file1);
  1.1997 +			certfilePtr1 = goodcertclient_array[0]; // good app name and 
  1.1998 +			certfilePtr2 = badUids[i];
  1.1999 +			certfileWriter.WriteCertClientUid(certfilePtr2); // bad uid entry
  1.2000 +			certfileWriter.WriteCertClientName(certfilePtr1);
  1.2001 +			CertClientBadParamsFuncCall(file2, aTestCaseType, aTestCaseIndex++);
  1.2002 +			}
  1.2003 +		break;
  1.2004 +		}
  1.2005 +
  1.2006 +	case 1:
  1.2007 +		{
  1.2008 +		for(int i = 0; i<4 ; i++) // length of badcertclient_array
  1.2009 +			{
  1.2010 +			stringstream file1, file2;
  1.2011 +			file2 << aFilename.str() << "_" << i ;
  1.2012 +			file1 << aFilename.str() <<"_"<<i <<".txt";
  1.2013 +			FileBadCertClientConfigWriter certfileWriter(file1);
  1.2014 +			certfilePtr1 = badcertclient_array[i];
  1.2015 +			certfilePtr2 = goodUids[0];
  1.2016 +			certfileWriter.WriteCertClientUid(certfilePtr2);
  1.2017 +			certfileWriter.WriteCertClientName(certfilePtr1);
  1.2018 +			CertClientBadParamsFuncCall(file2, aTestCaseType, aTestCaseIndex++);
  1.2019 +			}
  1.2020 +		break;
  1.2021 +		}
  1.2022 +	
  1.2023 +	// multiple names mapping to single uid
  1.2024 +	case 2:
  1.2025 +		{
  1.2026 +		stringstream file1;
  1.2027 +		file1 << aFilename.str() <<".txt";
  1.2028 +		FileBadCertClientConfigWriter certfileWriter(file1);
  1.2029 +		for(int i= 0; i<KAppUidIndex; i++)
  1.2030 +			{
  1.2031 +			certfilePtr1 = goodAppNames[i]; //app names - SW Install,SW install Ocsp Signing etc.
  1.2032 +			certfilePtr2 = goodUids[0];
  1.2033 +			certfileWriter.WriteCertClientName(certfilePtr1);
  1.2034 +			certfileWriter.WriteCertClientUid(certfilePtr2);
  1.2035 +			}
  1.2036 +		CertClientBadParamsFuncCall(file1, aTestCaseType, aTestCaseIndex++);
  1.2037 +		break;
  1.2038 +		}
  1.2039 +	
  1.2040 +	default:
  1.2041 +		break;
  1.2042 +	}
  1.2043 +}
  1.2044 +
  1.2045 +
  1.2046 +void CertClientBadParamsFuncCall(stringstream &aFileName, stringstream &aTestCaseType, int aTestCaseIndex)
  1.2047 +{
  1.2048 +	//Ex:certapp --hcertclients=t_certclients_0.txt --out --bcertclients=t_certclients_0.dat 
  1.2049 +	stringstream strArg1, strArg2, strArg3;
  1.2050 +	strArg1 <<"--hcertclients=" << aFileName.str() << ".txt";   
  1.2051 +	
  1.2052 +	strArg2<< "--bcertclients=" << aFileName.str() << ".dat"; 
  1.2053 +	cout <<"string value is " << strArg2.str().c_str() << endl;	
  1.2054 +	
  1.2055 +	string argument1, argument2;
  1.2056 +	const char *argv_certclient[3];
  1.2057 +	
  1.2058 +	argument1= strArg1.str().c_str();
  1.2059 +	argument2= strArg2.str().c_str();
  1.2060 +
  1.2061 +	argv_certclient[0] = argument1.c_str(); // --hcertclients=tbad_certclients_x.txt
  1.2062 +	argv_certclient[1] = "--out";			//--out
  1.2063 +	argv_certclient[2] = argument2.c_str(); //--bcertclients=t_certclients_x.dat
  1.2064 +
  1.2065 +	char *argument_ptr[3]; 
  1.2066 +	int argCount3 = 3;
  1.2067 +	char **argv;
  1.2068 +	for(int n = 0; n<argCount3; n++)
  1.2069 +		{
  1.2070 +		argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.2071 +		argv = argument_ptr;   
  1.2072 +		}
  1.2073 +	RunCertAppToolForBadParams(argCount3, argv, aFileName, aTestCaseType, aTestCaseIndex); 
  1.2074 +}
  1.2075 +
  1.2076 +
  1.2077 +/**
  1.2078 +Generate  config file for swicert
  1.2079 +*/
  1.2080 +void BadSwiCertTests(const stringstream &aFileName, int aIndex, stringstream &aTestCaseType, int &aTestIndex)
  1.2081 +{
  1.2082 +	const char **swicertPtr1; 
  1.2083 +	int count = 0 ;
  1.2084 +	switch(aIndex)
  1.2085 +	{
  1.2086 +	case 0:
  1.2087 +		{
  1.2088 +		// Tests for BadLabels
  1.2089 +		for(swicertPtr1= badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2090 +			{
  1.2091 +			stringstream file1, file2;
  1.2092 +			file1 << aFileName.str() <<"_"<<count;
  1.2093 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2094 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2095 +			badswiWriter.WriteSwiEntry(*swicertPtr1);
  1.2096 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2097 +			count++;
  1.2098 +			}
  1.2099 +		break;
  1.2100 +		}
  1.2101 +
  1.2102 +	case 1:
  1.2103 +		{
  1.2104 +		//Tests for BadFormats
  1.2105 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2106 +			{
  1.2107 +			stringstream file1, file2;
  1.2108 +			file1 << aFileName.str() <<"_"<<count;
  1.2109 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2110 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2111 +			badswiWriter.WriteSwiEntry(0,*swicertPtr1);
  1.2112 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2113 +			count++;
  1.2114 +			}
  1.2115 +		break;
  1.2116 +		}
  1.2117 +	case 2:
  1.2118 +		{
  1.2119 +		//Tests for BadCertOwnerTypes
  1.2120 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2121 +			{
  1.2122 +			stringstream file1, file2;
  1.2123 +			file1 << aFileName.str() <<"_"<<count;
  1.2124 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2125 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2126 +			badswiWriter.WriteSwiEntry(0,0,*swicertPtr1);
  1.2127 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2128 +			count++;
  1.2129 +			}
  1.2130 +		break;
  1.2131 +		}
  1.2132 +	case 3:
  1.2133 +		{
  1.2134 +		//Tests for BadSubjectKeyIds
  1.2135 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2136 +			{
  1.2137 +			stringstream file1, file2;
  1.2138 +			file1 << aFileName.str() <<"_"<<count;
  1.2139 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2140 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2141 +			badswiWriter.WriteSwiEntry(0,0,0,*swicertPtr1);
  1.2142 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2143 +			count++;	
  1.2144 +			}
  1.2145 +		break;
  1.2146 +		}
  1.2147 +	case 4:
  1.2148 +		{
  1.2149 +		//Tests for BadIssuerKeyIds
  1.2150 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2151 +			{
  1.2152 +			stringstream file1, file2;
  1.2153 +			file1 << aFileName.str() <<"_"<<count;
  1.2154 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2155 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2156 +			badswiWriter.WriteSwiEntry(0,0,0,0,*swicertPtr1);
  1.2157 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2158 +			count++;
  1.2159 +			}
  1.2160 +		break;
  1.2161 +		}
  1.2162 +	case 5:
  1.2163 +		{
  1.2164 +		//Tests for BadApplications
  1.2165 +		swicertPtr1 = badswicert_array[aIndex];
  1.2166 +			{
  1.2167 +			stringstream file1, file2;
  1.2168 +			file1 << aFileName.str() <<"_"<<count;
  1.2169 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2170 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2171 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,*swicertPtr1);
  1.2172 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2173 +			count++;
  1.2174 +			}
  1.2175 +		break;
  1.2176 +		}
  1.2177 +	case 6:
  1.2178 +		{
  1.2179 +		//Tests for BadTrusteds
  1.2180 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2181 +			{
  1.2182 +			stringstream file1, file2;
  1.2183 +			file1 << aFileName.str() <<"_"<<count;
  1.2184 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2185 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2186 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,*swicertPtr1);
  1.2187 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2188 +			count++;
  1.2189 +			}
  1.2190 +		break;
  1.2191 +		}
  1.2192 +	case 7:
  1.2193 +		{
  1.2194 +		//Tests for BadDataFileName
  1.2195 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2196 +			{
  1.2197 +			stringstream file1, file2;
  1.2198 +			file1 << aFileName.str() <<"_"<<count;
  1.2199 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2200 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2201 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,*swicertPtr1);
  1.2202 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2203 +			count++;
  1.2204 +			}
  1.2205 +		break;
  1.2206 +		}
  1.2207 +	case 8:
  1.2208 +		{
  1.2209 +		//Tests for BadCapabilities
  1.2210 +		swicertPtr1 = badswicert_array[aIndex];
  1.2211 +			{
  1.2212 +			stringstream file1, file2;
  1.2213 +			file1 << aFileName.str() <<"_"<<count;
  1.2214 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2215 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2216 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,*swicertPtr1);
  1.2217 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2218 +			count++;
  1.2219 +			}
  1.2220 +		break;
  1.2221 +		}
  1.2222 +	case 9:
  1.2223 +		{
  1.2224 +		//Tests for BadMandatory
  1.2225 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2226 +			{
  1.2227 +			stringstream file1, file2;
  1.2228 +			file1 << aFileName.str() <<"_"<<count;
  1.2229 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2230 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2231 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,0,*swicertPtr1);
  1.2232 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2233 +			count++;
  1.2234 +			}
  1.2235 +		break;
  1.2236 +		}
  1.2237 +	case 10:
  1.2238 +		{
  1.2239 +		//Tests for BadSystemUpgrade
  1.2240 +		for(swicertPtr1 = badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1)
  1.2241 +			{
  1.2242 +			stringstream file1, file2;
  1.2243 +			file1 << aFileName.str() <<"_"<<count;
  1.2244 +			file2 << aFileName.str() <<"_"<<count <<".txt";
  1.2245 +			SwiBadCertStoreConfigWriter badswiWriter(file2);
  1.2246 +			badswiWriter.WriteSwiEntry(0,0,0,0,0,0,0,0,0,0,*swicertPtr1);
  1.2247 +			TestBadConfigFiles(file1,1,aTestCaseType,aTestIndex++);
  1.2248 +			count++;
  1.2249 +			}
  1.2250 +		break;
  1.2251 +		}
  1.2252 +	default:
  1.2253 +		break;
  1.2254 +	}
  1.2255 +}
  1.2256 +
  1.2257 +/**
  1.2258 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0000
  1.2259 +  @SYMTestCaseDesc	Test the tool with empty configuration file as input
  1.2260 +*/	
  1.2261 +/**
  1.2262 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0001
  1.2263 +  @SYMTestCaseDesc	Test the tool with empty configuration file as input
  1.2264 +*/	
  1.2265 +/**
  1.2266 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE-0002
  1.2267 +  @SYMTestCaseDesc	Test the tool with empty configuration file as input
  1.2268 +*/	
  1.2269 +/**
  1.2270 +Test cases to test the tool with empty configuration files as input for all the stores
  1.2271 +*/
  1.2272 +void TestsWithEmptyConfigFile()
  1.2273 +{
  1.2274 +	stringstream testCaseType("SEC-TOOLS-CERTAPP-EMPTYFILE_CREATE");
  1.2275 +	for(int i = 0 ; i<3 ; i++)
  1.2276 +		{
  1.2277 +		stringstream emptyConfigFileName, configFileName1, configFileName2;
  1.2278 +		emptyConfigFileName<< "SDP-Security_Tools-CertApp-EmptyFile_000"<< i <<".txt";
  1.2279 +		switch(i)
  1.2280 +			{
  1.2281 +			case 0:
  1.2282 +				{
  1.2283 +				configFileName1 << "--hcertclients=" << emptyConfigFileName.str();
  1.2284 +				configFileName2 << "--bcertclients=SDP-Security_Tools-CertApp-EmptyFile_0000"<<".dat";
  1.2285 +				FileCertClientConfigWriter certclient(emptyConfigFileName);
  1.2286 +				}
  1.2287 +			break;
  1.2288 +
  1.2289 +			case 1:
  1.2290 +				{
  1.2291 +				configFileName1 << "--hfilecertstore=" << emptyConfigFileName.str();
  1.2292 +				configFileName2 << "--bfilecertstore=SDP-Security_Tools-CertApp-EmptyFile_0001"<<".dat";
  1.2293 +				FileCertStoreConfigWriter fileWriter(emptyConfigFileName);
  1.2294 +				}
  1.2295 +			break;
  1.2296 +
  1.2297 +			case 2:
  1.2298 +				{
  1.2299 +				configFileName1 << "--hswicertstore=" << emptyConfigFileName.str();
  1.2300 +				configFileName2 << "--bswicertstore=SDP-Security_Tools-CertApp-EmptyFile_0002"<<".dat";
  1.2301 +				SwiCertStoreConfigWriter swiFileWriter(emptyConfigFileName);
  1.2302 +				}
  1.2303 +			break;
  1.2304 +
  1.2305 +			default:
  1.2306 +				break;
  1.2307 +			}
  1.2308 +
  1.2309 +		string argument1, argument2;
  1.2310 +		argument1  = configFileName1.str().c_str();
  1.2311 +		argument2  = configFileName2.str().c_str();
  1.2312 +		const char *argv_certclient[4];
  1.2313 +		argv_certclient[0] = "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
  1.2314 +		argv_certclient[1] = argument1.c_str();  //"--hfilecertstore=t_emptyConfig.txt";
  1.2315 +		argv_certclient[2] = "--out";
  1.2316 +		argv_certclient[3] = argument2.c_str();
  1.2317 +
  1.2318 +		int argcount = 4;
  1.2319 +		char *argument_ptr[4]; 
  1.2320 +		char **argv;
  1.2321 +		for(int n = 0; n<argcount; n++)
  1.2322 +			{
  1.2323 +			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.2324 +			argv = argument_ptr;
  1.2325 +			}
  1.2326 +		for(int z=0; z<argcount; z++)
  1.2327 +			{
  1.2328 +			cout << "Testing with empty configuration file" << argv[z] <<endl;
  1.2329 +			}
  1.2330 +
  1.2331 +		RunCertAppTool(argcount, argv, emptyConfigFileName, testCaseType, i);
  1.2332 +		}
  1.2333 +}
  1.2334 +
  1.2335 +/**
  1.2336 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0000
  1.2337 +  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
  1.2338 +*/	
  1.2339 +/**
  1.2340 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0001
  1.2341 +  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
  1.2342 +*/	
  1.2343 +/**
  1.2344 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0002
  1.2345 +  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
  1.2346 +*/	
  1.2347 +/**
  1.2348 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE-0003
  1.2349 +  @SYMTestCaseDesc	Test the certapp tool for different file encode formats
  1.2350 +*/	
  1.2351 +/**
  1.2352 +Code to test the certapp tool for different file encode formats
  1.2353 +*/
  1.2354 +void TestsWithEncodedFileFormats()
  1.2355 +{
  1.2356 +	stringstream testCaseType("SEC-TOOLS-CERTAPP-FILEFORMATS_CREATE");
  1.2357 +	bool hasResult;
  1.2358 +
  1.2359 +	//Provide files with different encoded formats
  1.2360 +	for(int i = 0; i<4; i++)
  1.2361 +		{
  1.2362 +		stringstream unicodeName, outputFileName, strArg3;
  1.2363 +		const char *argv_certclient[KIndex];
  1.2364 +		unicodeName<< fileEncodeType[i];
  1.2365 +		outputFileName <<"SDP-Security_Tools-CertApp-FileFormats-000" <<i;
  1.2366 +		strArg3 << "--bfilecertstore="<< "SDP-Security_Tools-CertApp-FileFormats-000" <<i<<".dat";
  1.2367 +		
  1.2368 +		string argument;
  1.2369 +		argument = strArg3.str().c_str();
  1.2370 +		argv_certclient[0] = "--hcertclients=SDP-Security_Tools-CertApp-CCDAT_0000.txt";
  1.2371 +		argv_certclient[1] = fileEncodeType[i];   // manually created unicode content files
  1.2372 +		argv_certclient[2] = "--out";
  1.2373 +		argv_certclient[3] = argument.c_str();
  1.2374 +
  1.2375 +		for(int m=0; m<KIndex; m++)
  1.2376 +			{
  1.2377 +			cout << "Value in argv_certclient " << m << "is " <<argv_certclient[m] <<endl;
  1.2378 +			}
  1.2379 +		 char *argument_ptr[4]; 
  1.2380 +		char **argv;
  1.2381 +		for(int n = 0; n<KIndex; n++)
  1.2382 +			{
  1.2383 +			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.2384 +			argv = argument_ptr;
  1.2385 +			}
  1.2386 +		
  1.2387 +		for(int z=0; z<KIndex; z++)
  1.2388 +			{
  1.2389 +			cout << "Argument array contains : " << argv[z] <<endl;
  1.2390 +			}
  1.2391 +		
  1.2392 +		int ret = RunCertApp(progress, errors, KIndex, argv); 
  1.2393 +		cout << "Return value from RunCertApp tool is "  << ret << endl;
  1.2394 +		
  1.2395 +		hasResult = false;
  1.2396 +		stringstream logging;
  1.2397 +		if(ret!= 0 && ((strcmp(unicodeName.str().c_str(),"--hfilecertstore=ucs2-bigendian.txt")==0) || (strcmp(unicodeName.str().c_str(),"--hfilecertstore=ucs2-littleendian.txt")==0)))
  1.2398 +			{
  1.2399 +			passCount++;
  1.2400 +			logging << "Tool doesnt support for UCS encoded file-"<< outputFileName.str() <<" so the result is " << ret << " Pass";
  1.2401 +			hasResult = true;
  1.2402 +			}
  1.2403 +		else if(ret== 0 && ((strcmp(unicodeName.str().c_str(),"--hfilecertstore=utf8.txt") ==0) || (strcmp(unicodeName.str().c_str(),"--hfilecertstore=utf8_without_bom.txt")==0)))
  1.2404 +			{
  1.2405 +			passCount++;
  1.2406 +			logging << "No Error in creating store for UTF8 encoded file-"<<outputFileName.str()<< " and result is " << ret << " Pass";
  1.2407 +			hasResult = true;
  1.2408 +			}
  1.2409 +		
  1.2410 +		if (hasResult)
  1.2411 +			{
  1.2412 +			writeTMSResult(file, testCaseType, i, true, logging);
  1.2413 +			}
  1.2414 +		} //End of encoded file formats testing
  1.2415 +}
  1.2416 +
  1.2417 +/**
  1.2418 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE-0000
  1.2419 +  @SYMTestCaseDesc	Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
  1.2420 +*/	
  1.2421 +/**
  1.2422 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE-0001
  1.2423 +  @SYMTestCaseDesc	Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
  1.2424 +*/	
  1.2425 +/**
  1.2426 +Test case for REQ-10314 (Reviewing Aggregate Certificate DataBase)
  1.2427 +*/
  1.2428 +void TestToReviewingAggregateStore()
  1.2429 +{
  1.2430 +	stringstream testCaseType("SEC-TOOLS-CERTAPP-AGGRCERTSTORE_CREATE");
  1.2431 +
  1.2432 +	for(int index = 0; index<2; index++)
  1.2433 +		{
  1.2434 +		stringstream file1, file2;
  1.2435 +		const char *argv_certclient[4];
  1.2436 +		argv_certclient[2] = "--out";
  1.2437 +		switch(index)
  1.2438 +			{
  1.2439 +			case 0: // different certificate labels in two stores
  1.2440 +				{
  1.2441 +				argv_certclient[0] = "--bfilecertstore=teststore1.dat";   // these are 2 binary stores saved in perforce
  1.2442 +				argv_certclient[1] = "--bfilecertstore=teststore3.dat"; 
  1.2443 +				argv_certclient[3] = "--hfilecertstore=SDP-Security_Tools-CertApp-AggrCertStore-0000.txt";
  1.2444 +				file1 <<"SDP-Security_Tools-CertApp-AggrCertStore-0000.txt";
  1.2445 +				file2 <<"aggregatestorecontents1_3.txt";
  1.2446 +				}
  1.2447 +				break;
  1.2448 +
  1.2449 +			case 1: //duplicate certificate labels in two stores
  1.2450 +				{
  1.2451 +				argv_certclient[0] = "--bfilecertstore=teststore2.dat";   // these are 2 binary stores saved in perforce
  1.2452 +				argv_certclient[1] = "--bfilecertstore=teststore3.dat"; 
  1.2453 +				argv_certclient[3] = "--hfilecertstore=SDP-Security_Tools-CertApp-AggrCertStore-0001.txt";
  1.2454 +				file1 <<"SDP-Security_Tools-CertApp-AggrCertStore-0001.txt";
  1.2455 +				file2 <<"aggregatestorecontents2_3.txt";
  1.2456 +				}
  1.2457 +				break;
  1.2458 +
  1.2459 +			default:
  1.2460 +				break;
  1.2461 +			}
  1.2462 +
  1.2463 +		for(int m=0; m<KIndex; m++)
  1.2464 +			{
  1.2465 +			cout << "Value in argv_certclient " << m << "is " <<argv_certclient[m] <<endl;
  1.2466 +			}
  1.2467 +		char *argument_ptr[KIndex]; 
  1.2468 +		char **argv;
  1.2469 +		for(int n = 0; n<KIndex; n++)
  1.2470 +			{
  1.2471 +			argument_ptr[n] = const_cast<char*>(argv_certclient[n]);
  1.2472 +			argv = argument_ptr;
  1.2473 +			}
  1.2474 +		
  1.2475 +		int ret = RunCertApp(progress, errors, KIndex, argv); 
  1.2476 +		stringstream logging;
  1.2477 +		if(!ret)
  1.2478 +			{
  1.2479 +			passCount++;
  1.2480 +			int compareValue  = CompareFiles(file1,file2); // compare with the reference files in perforce
  1.2481 +			if (compareValue)
  1.2482 +				{
  1.2483 +				logging << "Failed to successfully create Aggregate Database for " << file1.str() << " is Fail";
  1.2484 +				
  1.2485 +				}
  1.2486 +			else
  1.2487 +				{
  1.2488 +				logging << "Successfully created Aggregate Database(text form) for " <<file1.str() << " result is Pass";
  1.2489 +				}
  1.2490 +			}
  1.2491 +		else
  1.2492 +			{
  1.2493 +			failCount++;
  1.2494 +			logging << "Failed to dump the stores to single text format for " <<file1.str();
  1.2495 +			}
  1.2496 +		
  1.2497 +		writeTMSResult(file, testCaseType, index, !ret, logging);		
  1.2498 +		}
  1.2499 +}
  1.2500 +
  1.2501 +
  1.2502 +/**
  1.2503 +  @SYMTestCaseID	SEC-TOOLS-CERTAPP-DECODEENCODE_COMPARE-0000
  1.2504 +  @SYMTestCaseDesc	Encode-decode test for certclient store
  1.2505 +*/	
  1.2506 +/**
  1.2507 +TestCase to test the req of 10313- decode/encode certstore
  1.2508 +Encode-decode test for certclient store
  1.2509 +*/
  1.2510 +void TestToDecodeAndEncodeStore()
  1.2511 +{
  1.2512 +	stringstream testCaseType("SEC-TOOLS-CERTAPP-DECODEENCODE_COMPARE");
  1.2513 +
  1.2514 +	stringstream outputFileName, strArg1, strArg2;
  1.2515 +	outputFileName <<"SDP-Security_Tools-CertApp-DecodeEncode-0000";
  1.2516 +	strArg1 << "decodeoutput1.txt";
  1.2517 +	strArg2 << "decodeoutput2.txt";
  1.2518 +	
  1.2519 +	const char *argv_certclient[3]; //dump store to text
  1.2520 +	argv_certclient[0] = "--bcertclients=certclients_0.dat";
  1.2521 +	argv_certclient[1] = "--out";
  1.2522 +	argv_certclient[2] = "--hcertclients=decodeoutput1.txt";   
  1.2523 +	decodeEncodeCertAppCall(argv_certclient);
  1.2524 +
  1.2525 +	//create store with the decoded text as input
  1.2526 +	argv_certclient[0] = "--hcertclients=decodeoutput1.txt";
  1.2527 +	argv_certclient[2] = "--bcertclients=decodeoutput.dat";   
  1.2528 +	decodeEncodeCertAppCall(argv_certclient);
  1.2529 +
  1.2530 +	//take the encoded store and dump it back to text form
  1.2531 +	argv_certclient[0] = "--bcertclients=decodeoutput.dat";
  1.2532 +	argv_certclient[2] = "--hcertclients=decodeoutput2.txt"; 
  1.2533 +	decodeEncodeCertAppCall(argv_certclient);
  1.2534 +
  1.2535 +	int compVal = CompareFiles(strArg1, strArg2);
  1.2536 +	stringstream logging;
  1.2537 +	cout << "Return value of comparision is " << compVal <<endl;
  1.2538 +	if (compVal)
  1.2539 +		{
  1.2540 +		failCount++;
  1.2541 +		logging << "Encode-Decode fail for " <<outputFileName.str() << " result is Fail";
  1.2542 +		}
  1.2543 +	else
  1.2544 +		{
  1.2545 +		passCount++;
  1.2546 +		logging << "Encode-Decode Pass for " <<outputFileName.str() << " result is Pass";
  1.2547 +		}
  1.2548 +	
  1.2549 +	writeTMSResult(file, testCaseType, 0, compVal==0, logging);			
  1.2550 +}
  1.2551 +
  1.2552 +void decodeEncodeCertAppCall(const char *aArray[])
  1.2553 +{
  1.2554 +	char *argument_ptr[3]; 
  1.2555 +	char **argv;
  1.2556 +	for(int m=0; m<3; m++)
  1.2557 +		{
  1.2558 +		cout << "Value in argv_certclient " << m << "is " <<aArray[m] <<endl;
  1.2559 +		}
  1.2560 +	for(int n = 0; n<3; n++)
  1.2561 +		{
  1.2562 +		argument_ptr[n] = const_cast<char*>(aArray[n]);
  1.2563 +		argv = argument_ptr;
  1.2564 +		}
  1.2565 +	RunCertApp(progress, errors ,3, argv);
  1.2566 +}
  1.2567 +
  1.2568 +
  1.2569 +int CompareFiles(stringstream &aFile1, stringstream &aFile2)
  1.2570 +{
  1.2571 +	ifstream inFile1, inFile2;
  1.2572 +	string name1 = aFile1.str();
  1.2573 +	string name2 = aFile2.str();
  1.2574 +	inFile1.open(name1.c_str(),  ifstream::in);
  1.2575 +	if (inFile1.fail())
  1.2576 +		{
  1.2577 +		cout << "Failed to open the file! May be not existing" << endl;
  1.2578 +		return -1;
  1.2579 +		}
  1.2580 +	inFile2.open(name1.c_str(),  ifstream::in);
  1.2581 +	if (inFile2.fail()) 
  1.2582 +		{
  1.2583 +	    cout << "Failed to open the file! May be not existing" << endl;
  1.2584 +	    return -1;
  1.2585 +		}
  1.2586 +	return Compare(inFile1, inFile2);
  1.2587 +}
  1.2588 +
  1.2589 +
  1.2590 +int Compare(istream &aIstream1, istream &aIstream2)
  1.2591 +{
  1.2592 +  char ch1, ch2;
  1.2593 +  while (aIstream1.get(ch1)) 
  1.2594 +  {
  1.2595 +    if (!aIstream2.get(ch2) || (ch1 != ch2))
  1.2596 +	{
  1.2597 +      cout << "files are not equal";
  1.2598 +	  return -1;
  1.2599 +    }
  1.2600 +  }
  1.2601 +  if (!aIstream2.get(ch2))  // no more chars to read fom file
  1.2602 +	{
  1.2603 +	  cout << "files are equal\n";
  1.2604 +	  return 0;
  1.2605 +	}
  1.2606 +  else 
  1.2607 +	{
  1.2608 +	  cout << "files are not equal";
  1.2609 +	  return -1;
  1.2610 +	}
  1.2611 +}
  1.2612 +
  1.2613 +
  1.2614 +/**
  1.2615 +Generate script files for the filecertstore emulator tests
  1.2616 +*/
  1.2617 +void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
  1.2618 +{
  1.2619 +	CertClientsStoreScriptGeneration cert_clients(aFilename);
  1.2620 +
  1.2621 +	cert_clients.WriteInitialiseCertClient(aTestCaseType, aTestIndex);
  1.2622 +	cert_clients.WriteGetCount(KAppUidIndex, aTestCaseType, aTestIndex);
  1.2623 +	cert_clients.WriteGetApplicationsList(aTestCaseType, aTestIndex);
  1.2624 +	
  1.2625 +	for(int i = 0; i<KAppUidIndex;i++)
  1.2626 +		{
  1.2627 +		const char *goodlabel = goodcertclient_array[i]; 
  1.2628 +		const char *uid = gooddecimalUid_array[i];
  1.2629 +		cert_clients.WriteGetAppWithUid(goodlabel, uid, aTestCaseType, aTestIndex);
  1.2630 +		}
  1.2631 +	cert_clients.WriteDestroyManager(aTestCaseType, aTestIndex);
  1.2632 +}
  1.2633 +
  1.2634 +/**
  1.2635 +Generates config files for cacerts
  1.2636 +*/
  1.2637 +void GenerateGoodCaCertsTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
  1.2638 +{
  1.2639 +	FileStoreScriptGeneration fileStore(aFilename);
  1.2640 +
  1.2641 +	const char *mode = "write"; 
  1.2642 +	const char *ownertype = goodOwnerType[0]; //CA ownerType
  1.2643 +
  1.2644 +	fileStore.WriteInitialiseCert(mode, aTestCaseType, aTestIndex);
  1.2645 +	fileStore.WriteListcert(ownertype, aTestCaseType, aTestIndex);
  1.2646 +	
  1.2647 +	for(int i = 0; i<6;i++)
  1.2648 +		{
  1.2649 +		const char *trust = goodTrust[0]; // true
  1.2650 +		const char *goodlabel = goodEmuCert_array[i]; // list of label - root5ca , symbiandtestcsa, symbiantestrcsa
  1.2651 +
  1.2652 +		fileStore.WriteGetCertificateDetails(goodlabel, aTestCaseType, aTestIndex);
  1.2653 +		fileStore.WriteGetTrust(goodlabel, trust, aTestCaseType, aTestIndex);
  1.2654 +		fileStore.WriteGetApplications(goodlabel, aTestCaseType, aTestIndex);
  1.2655 +		fileStore.WriteRetrieveCerts(goodlabel, aTestCaseType, aTestIndex);
  1.2656 +		}
  1.2657 +}
  1.2658 +
  1.2659 +/**
  1.2660 +Generate script files for the swicertstore emulator tests
  1.2661 +*/
  1.2662 +void GenerateGoodSwiCertTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex)
  1.2663 +{
  1.2664 +	SWIStoreScriptGeneration swiStore(aFilename);
  1.2665 +	
  1.2666 +	const char *ownertype = goodOwnerType[0]; //CA ownerType
  1.2667 +	
  1.2668 +	//initilaise the store and get list all the certificate ones
  1.2669 +	swiStore.WriteInitialiseCert(aTestCaseType, aTestIndex);
  1.2670 +	swiStore.WriteListcert(ownertype, aTestCaseType, aTestIndex);
  1.2671 +
  1.2672 +	for(int i = 0; i<6;i++)
  1.2673 +		{
  1.2674 +		const char *trust = goodTrust[0]; // true
  1.2675 +		const char *goodlabel = goodSwiCert_array[i]; // list of label - root5ca , symbiandtestcsa, symbiantestrcsa
  1.2676 +		const char *mandatoryVal = mandatory[0];
  1.2677 +		const char *systemupgrade = systemUpgrade[0];
  1.2678 +
  1.2679 +		swiStore.WriteGetSystemUpgrade(goodlabel, systemupgrade, aTestCaseType, aTestIndex);
  1.2680 +		swiStore.WriteRetrieveCerts(goodlabel, aTestCaseType, aTestIndex);
  1.2681 +		swiStore.WriteGetApplications(goodlabel, aTestCaseType, aTestIndex);
  1.2682 +		swiStore.WriteGetTrust(goodlabel, trust, aTestCaseType, aTestIndex);
  1.2683 +		swiStore.WriteGetCapabilities(goodlabel, aTestCaseType, aTestIndex);
  1.2684 +		swiStore.WriteGetMandatoryFlag(goodlabel, mandatoryVal, aTestCaseType, aTestIndex);
  1.2685 +		}
  1.2686 +}
  1.2687 +
  1.2688 +//End of file
  1.2689 +
  1.2690 +