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