sl@0: /* sl@0: * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #include sl@0: #include sl@0: #include "badconfigwriter.h" sl@0: #include "tcertapp_good.h" sl@0: #include "tcertapp_bad.h" sl@0: #include "goodconfigwriter.h" sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include "logger.h" sl@0: #include "utils.h" sl@0: sl@0: using namespace std; sl@0: sl@0: // Write a pass or fail result for a test case to the TMS log file sl@0: void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging); sl@0: sl@0: //Funtions to generate Good/Valid config files for tcertapp sl@0: void GoodFileCaCertTests(const stringstream &aFilename, int aArray_value); sl@0: void GoodFileCertClientsTests(const stringstream &aFilename); sl@0: void GoodSwiCertTests(const stringstream &aFilename, int aArray_value); sl@0: sl@0: //Functions to generate Good/Valid script files for emulator tests sl@0: void GenerateGoodCaCertsTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex); sl@0: void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex); sl@0: void GenerateGoodSwiCertTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex); sl@0: sl@0: //Funtions to generate Bad/illegal config files for tcertapp sl@0: void BadFileCaCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex); sl@0: void BadFileCertClientsTests(const stringstream &aFilename, int aIndex, stringstream &aTestCaseType, int &aTestIndex); sl@0: void BadSwiCertTests(const stringstream &aFilename, int aArray_value, stringstream &aTestCaseType, int &aTestIndex); sl@0: sl@0: //Function call for RunCertApp api sl@0: void RunCertAppTool(int argc, char **argv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); sl@0: void RunCertAppToolForStoreDump(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); sl@0: void RunCertAppToolForBadParams(int aArgc, char **aArgv, stringstream &aStringval, stringstream &testCaseType, int testCaseIndex); sl@0: sl@0: void TestsWithEmptyConfigFile(); sl@0: void CreateFileToAugmentStore(); sl@0: void TestsWithEncodedFileFormats(); sl@0: void TestToDecodeAndEncodeStore(); sl@0: void TestToReviewingAggregateStore(); sl@0: void TestBadConfigFiles(const stringstream &aFilename, bool aBool, stringstream &aTestCaseType, int aTestCaseIndex); sl@0: void CertClientBadParamsFuncCall(stringstream &aFileName, stringstream &aTestCaseType, int aTestCaseIndex); sl@0: void decodeEncodeCertAppCall(const char *aArray[]); sl@0: int CompareFiles(stringstream &aFileName1, stringstream &aFileName2); sl@0: int Compare(istream &aIstream1, istream &aIstream2); sl@0: void TestWithUnicodFileName(); sl@0: sl@0: ofstream file; //global file handle to write to output file sl@0: const char *progress = "progress.txt"; // logs the progress report sl@0: const char *errors = "error.txt"; // logs the error report sl@0: sl@0: //some constants used sl@0: const int KFileArrayIndex = 8; sl@0: const int KSwicertIndex = 10; sl@0: const int KSwiBadcertIndex = 11; sl@0: const int KFileBadcertIndex = 9; sl@0: const int KAppUidIndex = 4; sl@0: const int KIndex = 4; sl@0: sl@0: // to get the count of passed and failed test cases sl@0: static int failCount = 0, passCount = 0; sl@0: sl@0: //pointers required for creation of good filecerts config files sl@0: const char **filecert_array[KFileArrayIndex]= sl@0: { sl@0: goodCert_array, sl@0: goodDeletables, sl@0: goodFormats, sl@0: goodCertOwnerTypes, sl@0: goodSubjectKeyIds, sl@0: goodIssuerKeyIds, sl@0: goodApplications, sl@0: goodTrusteds sl@0: }; sl@0: sl@0: //pointers required for creation of bad filecerts config files sl@0: const char **badfilecert_array[KFileBadcertIndex]= sl@0: { sl@0: badLabels, sl@0: badDeletables, sl@0: badFormats, sl@0: badCertOwnerTypes, sl@0: badSubjectKeyIds, sl@0: badIssuerKeyIds, sl@0: badApplications, sl@0: badTrusteds, sl@0: badDatafilePath sl@0: }; sl@0: sl@0: sl@0: //pointers required for creation of good swicerts config files sl@0: const char **swicert_array[KSwicertIndex]= sl@0: { sl@0: goodLabels, sl@0: goodFormats, sl@0: goodCertOwnerTypes, sl@0: goodSubjectKeyIds, sl@0: goodIssuerKeyIds, sl@0: goodAppNames, sl@0: goodTrusteds, sl@0: goodCapabilitySets, sl@0: goodMandatory, sl@0: goodSystemUpgrade sl@0: }; sl@0: sl@0: //pointers required for creation of bad swicerts config files sl@0: const char **badswicert_array[KSwiBadcertIndex]= sl@0: { sl@0: badLabels, sl@0: badFormats, sl@0: badCertOwnerTypes, sl@0: badSubjectKeyIds, sl@0: badIssuerKeyIds, sl@0: badApplications, sl@0: badTrusteds, sl@0: badDatafilePath, sl@0: badCapabilitySets, sl@0: badMandatory, sl@0: badSystemUpgrade sl@0: }; sl@0: sl@0: sl@0: //encoded file names for input to the tool sl@0: const char *fileEncodeType[4]= sl@0: { sl@0: "--hfilecertstore=utf8.txt", sl@0: "--hfilecertstore=utf8_without_bom.txt", sl@0: "--hfilecertstore=ucs2-bigendian.txt", sl@0: "--hfilecertstore=ucs2-littleendian.txt" sl@0: }; sl@0: sl@0: // Write a pass or fail result for a test case to the TMS log file sl@0: void writeTMSResult(ofstream &aLogFile, stringstream &aTestCaseType, int aTestCaseIndex, bool aResult, stringstream &aLogging) sl@0: { sl@0: // get the current time sl@0: time_t rawtime; sl@0: struct tm * timeinfo; sl@0: char standardTimeBuffer[10]; sl@0: time(&rawtime); sl@0: timeinfo = localtime(&rawtime); sl@0: strftime(standardTimeBuffer, 10, "%H:%M:%S", timeinfo); sl@0: sl@0: char millisecondTimeBuffer[6]; sl@0: sl@0: #ifdef __TOOLS2_LINUX__ sl@0: struct timeb tstruct; sl@0: ftime(&tstruct); sl@0: #else sl@0: struct _timeb tstruct; sl@0: _ftime(&tstruct); sl@0: #endif sl@0: sl@0: sprintf(millisecondTimeBuffer, ":%03u ", tstruct.millitm); sl@0: sl@0: stringstream timeBuffer; sl@0: timeBuffer << standardTimeBuffer << millisecondTimeBuffer; sl@0: sl@0: // set result string sl@0: stringstream resultBuffer; sl@0: sl@0: if (aResult) sl@0: { sl@0: resultBuffer << "PASS"; sl@0: } sl@0: else sl@0: { sl@0: resultBuffer << "FAIL"; sl@0: } sl@0: sl@0: // set test case ID string sl@0: char testCaseIndexBuffer[6]; sl@0: sprintf(testCaseIndexBuffer, "-%04d", aTestCaseIndex); sl@0: sl@0: // write result in the correct format sl@0: aLogFile << "
\r\n";
sl@0: 	aLogFile << timeBuffer.str();
sl@0: 	aLogFile << "START_TESTCASE ";
sl@0: 	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0: 	aLogFile << "\r\n";
sl@0: 	aLogFile << timeBuffer.str();
sl@0: 	aLogFile << "Line = 1 Command = START_TESTCASE  ";
sl@0: 	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0: 	aLogFile << "\r\n";
sl@0: 	
sl@0: 	if (aLogging.str() != "")
sl@0: 		{
sl@0: 		aLogFile << timeBuffer.str();
sl@0: 		aLogFile << aLogging.str();
sl@0: 		aLogFile << "\r\n";		
sl@0: 		}
sl@0: 	
sl@0: 	aLogFile << timeBuffer.str();
sl@0: 	aLogFile << "END_TESTCASE ";
sl@0: 	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0: 	aLogFile << "\r\n";
sl@0: 	aLogFile << timeBuffer.str();
sl@0: 	aLogFile << "Line = 1 Command = END_TESTCASE ";
sl@0: 	aLogFile << aTestCaseType.str() << testCaseIndexBuffer;
sl@0: 	aLogFile << " ***TestCaseResult = ";
sl@0: 	aLogFile << resultBuffer.str();
sl@0: 	aLogFile << "\r\n
\r\n"; sl@0: } sl@0: sl@0: //RunCertApp call to create store from text input sl@0: void RunCertAppTool( int argc, char **argv, stringstream &stringval, stringstream &testCaseType, int testCaseIndex) sl@0: { sl@0: for(int i =0; i(argv_certclient[n1]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_CREATE"); sl@0: RunCertAppTool(argCount3, argv, certclientfileName, testCaseType, 0); // creating dat file sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCAUG_AUGMENT-0000 sl@0: @SYMTestCaseDesc Augment the Store with Extra entries sl@0: */ sl@0: sl@0: //Augment the Store with Extra entries sl@0: augFileName<<"SDP-Security_Tools-CertApp-CCAUG_0000.dat"; sl@0: argv_certclient[0] = "--hcertclients=tCertClient_Augment.txt"; sl@0: argv_certclient[1] = argv_certclient[2]; sl@0: argv_certclient[2] = "--out"; sl@0: argv_certclient[3] = "--bcertclients=SDP-Security_Tools-CertApp-CCAUG_0000.dat"; sl@0: for(int x = 0; x(argv_certclient[x]); sl@0: argv1 = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-CCAUG_AUGMENT"); sl@0: RunCertAppTool(argCount4, argv1, augFileName, testCaseType, 0); sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCDAT_DUMP-0000 sl@0: @SYMTestCaseDesc Dump the dat file to human readable text format sl@0: */ sl@0: sl@0: //Dump the dat file to human readable text format sl@0: argv_certclient[0] = argv_certclient[3]; sl@0: argv_certclient[1] = "--out"; sl@0: argv_certclient[2] = "--hcertclients=SDP-Security_Tools-CertApp-CCDUMP_0000.txt"; sl@0: sl@0: for(int k = 0; k(argv_certclient[k]); sl@0: argv1 = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-CCDAT_DUMP"); sl@0: RunCertAppToolForStoreDump(argCount3, argv1, certclientfileName, testCaseType, 0); sl@0: //End of t_certclients sl@0: sl@0: //Creates good config files to augment store and dump store to text format for file certstore - cacerts.dat sl@0: //Test for all positive cases sl@0: for(num_tests = 0; num_tests<=KFileArrayIndex; num_tests++) sl@0: { sl@0: stringstream caCertFileName; sl@0: caCertFileName << "SDP-Security_Tools-CertApp-FILEDAT_000"<(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-FILEDAT_CREATE"); sl@0: RunCertAppTool(argCount4, argv, caCertFileName, testCaseType, num_tests); sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0000 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0001 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0002 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0003 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0004 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0005 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0006 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0007 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT-0008 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: sl@0: //AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: //ex:certapp --hfilecertstore=tAugment_cacerts_x.txt --bfilecertstore=cacerts.dat --out --bfilecertstore=new_extra_filecertstore.dat sl@0: stringstream augFileName, textDumpFileName; sl@0: augFileName<<"SDP-Security_Tools-CertApp-FILEAUG_000" <(argv_certclient[x]); sl@0: argv1 = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-FILEAUG_AUGMENT"); sl@0: RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests); sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0000 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0001 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0002 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0003 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0004 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0005 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0006 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0007 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-FILEDUMP_DUMP-0008 sl@0: @SYMTestCaseDesc DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: sl@0: //DUMP THE STORE TO HUMAN READABLE FORMAT sl@0: //ex:certapp --bfilecertstore=test.dat --out --hfilecertstore=t_cacerts.txt sl@0: textDumpFileName <<"SDP-Security_Tools-CertApp-FILEDUMP_000"<< num_tests << ".txt"; sl@0: argv_certclient[0] = argv_certclient[3]; //--bfilecertstore=aug_cacerts_x.dat sl@0: argv_certclient[1] = "--out"; sl@0: strArg5<< "--hfilecertstore=SDP-Security_Tools-CertApp-FILEDUMP_000" <(argv_certclient[k]); sl@0: argv2 = argument_ptr; sl@0: } sl@0: //Dumps the augmented store sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-FILEDUMP_DUMP"); sl@0: RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); sl@0: }//End of cacerts sl@0: sl@0: sl@0: //create config files with legal values for swi certstore sl@0: for(num_tests = 0; num_tests(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-SWIDAT_CREATE"); sl@0: RunCertAppTool(argCount4, argv,swiCertStoreFileName, testCaseType, num_tests); sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0000 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0001 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0002 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0003 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0004 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0005 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0006 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0007 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0008 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT-0009 sl@0: @SYMTestCaseDesc AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: */ sl@0: sl@0: //AUGMENT THE CACERT STORE WITH EXTRA INFORMATION sl@0: //certapp --hswicertstore=tAugment_swicertstore_x.txt --bswicertstore=swicertstore_x.dat --out --bswicertstore=aug_swicertstore_x.dat sl@0: stringstream augFileName, textDumpFileName; sl@0: augFileName << "SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests <<".dat"; sl@0: strArg4<<"--bswicertstore=SDP-Security_Tools-CertApp-SWIAUG_000" << num_tests << ".dat"; sl@0: argument4 = strArg4.str(); sl@0: argv_certclient[0] = "--hswicertstore=tswi_Augment.txt"; //--hswicertstore=tAugment_swicertstore_x.txt sl@0: argv_certclient[1] = argv_certclient[3]; //--bswicertstore=swicertstore_x.dat sl@0: argv_certclient[2] = "--out"; sl@0: argv_certclient[3] = argument4.c_str(); //--bswicertstore=aug_swicertstore_x.dat sl@0: char **argv1; sl@0: for(int x = 0; x(argv_certclient[x]); sl@0: argv1 = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-SWIAUG_AUGMENT"); sl@0: RunCertAppTool(argCount4, argv1, augFileName, testCaseType, num_tests); sl@0: sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0000 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0001 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0002 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0003 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0004 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0005 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0006 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0007 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0008 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-SWIDUMP_DUMP-0009 sl@0: @SYMTestCaseDesc DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: */ sl@0: sl@0: //DUMP THE SWI CERTSTORE TO HUMAN READABLE FORMAT sl@0: textDumpFileName << "SDP-Security_Tools-CertApp-SWIDUMP_000" <(argv_certclient[k]); sl@0: argv2 = argument_ptr; sl@0: } sl@0: sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-SWIDUMP_DUMP"); sl@0: RunCertAppToolForStoreDump(argCount3, argv2, textDumpFileName, testCaseType, num_tests); sl@0: } sl@0: sl@0: //Test with unicode filename sl@0: TestWithUnicodFileName(); sl@0: sl@0: //create empty config file sl@0: TestsWithEmptyConfigFile(); sl@0: sl@0: //Test case to test for different file formats sl@0: TestsWithEncodedFileFormats(); sl@0: sl@0: //Test case for REQ10313 to check decode/encode of stores sl@0: TestToDecodeAndEncodeStore(); sl@0: sl@0: //Test case for REQ10314 - reviewing aggregate certificate database sl@0: TestToReviewingAggregateStore(); sl@0: sl@0: //Test cases for BAD Params sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0000 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0001 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATEE-0002 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0003 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0004 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0005 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0006 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0007 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: /** sl@0: @SYMTestCaseID SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE-0008 sl@0: @SYMTestCaseDesc Create bad certclient config files sl@0: */ sl@0: //create certclient config files sl@0: testCaseType.str("SEC-TOOLS-CERTAPP-CCBADPARAMS_CREATE"); sl@0: testCaseIndex = 0; sl@0: for(num_tests =0; num_tests<3; num_tests++) sl@0: { sl@0: stringstream badCertClientsFileName; sl@0: badCertClientsFileName << "SDP-Security_Tools-CertApp-CCBadParams-000"< " << testCaseCount << endl; sl@0: file << failCount << " tests failed out of " << testCaseCount <(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: for(int i =0; i(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: RunCertAppToolForBadParams(argCount4, argv, configFileName, aTestCaseType, aTestCaseIndex); sl@0: } sl@0: sl@0: /** sl@0: Generate bad config files for cacerts sl@0: */ sl@0: void BadFileCaCertTests(const stringstream &aFilename ,int aValue, stringstream &aTestCaseType, int &aTestIndex) sl@0: { sl@0: const char **caCertPtr; sl@0: int count = 0; sl@0: switch(aValue) sl@0: { sl@0: case 0: sl@0: { sl@0: // Tests for BadLabels sl@0: for(caCertPtr = badfilecert_array[aValue]; *caCertPtr ; ++caCertPtr ) sl@0: { sl@0: stringstream file1, file2; sl@0: file1 << aFilename.str() <<"_"<(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: RunCertAppToolForBadParams(argCount3, argv, aFileName, aTestCaseType, aTestCaseIndex); sl@0: } sl@0: sl@0: sl@0: /** sl@0: Generate config file for swicert sl@0: */ sl@0: void BadSwiCertTests(const stringstream &aFileName, int aIndex, stringstream &aTestCaseType, int &aTestIndex) sl@0: { sl@0: const char **swicertPtr1; sl@0: int count = 0 ; sl@0: switch(aIndex) sl@0: { sl@0: case 0: sl@0: { sl@0: // Tests for BadLabels sl@0: for(swicertPtr1= badswicert_array[aIndex]; *swicertPtr1; ++swicertPtr1) sl@0: { sl@0: stringstream file1, file2; sl@0: file1 << aFileName.str() <<"_"<(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: for(int z=0; z(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: for(int z=0; z(argv_certclient[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: sl@0: int ret = RunCertApp(progress, errors, KIndex, argv); sl@0: stringstream logging; sl@0: if(!ret) sl@0: { sl@0: passCount++; sl@0: int compareValue = CompareFiles(file1,file2); // compare with the reference files in perforce sl@0: if (compareValue) sl@0: { sl@0: logging << "Failed to successfully create Aggregate Database for " << file1.str() << " is Fail"; sl@0: sl@0: } sl@0: else sl@0: { sl@0: logging << "Successfully created Aggregate Database(text form) for " <(aArray[n]); sl@0: argv = argument_ptr; sl@0: } sl@0: RunCertApp(progress, errors ,3, argv); sl@0: } sl@0: sl@0: sl@0: int CompareFiles(stringstream &aFile1, stringstream &aFile2) sl@0: { sl@0: ifstream inFile1, inFile2; sl@0: string name1 = aFile1.str(); sl@0: string name2 = aFile2.str(); sl@0: inFile1.open(name1.c_str(), ifstream::in); sl@0: if (inFile1.fail()) sl@0: { sl@0: cout << "Failed to open the file! May be not existing" << endl; sl@0: return -1; sl@0: } sl@0: inFile2.open(name1.c_str(), ifstream::in); sl@0: if (inFile2.fail()) sl@0: { sl@0: cout << "Failed to open the file! May be not existing" << endl; sl@0: return -1; sl@0: } sl@0: return Compare(inFile1, inFile2); sl@0: } sl@0: sl@0: sl@0: int Compare(istream &aIstream1, istream &aIstream2) sl@0: { sl@0: char ch1, ch2; sl@0: while (aIstream1.get(ch1)) sl@0: { sl@0: if (!aIstream2.get(ch2) || (ch1 != ch2)) sl@0: { sl@0: cout << "files are not equal"; sl@0: return -1; sl@0: } sl@0: } sl@0: if (!aIstream2.get(ch2)) // no more chars to read fom file sl@0: { sl@0: cout << "files are equal\n"; sl@0: return 0; sl@0: } sl@0: else sl@0: { sl@0: cout << "files are not equal"; sl@0: return -1; sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: Generate script files for the filecertstore emulator tests sl@0: */ sl@0: void GenerateGoodCertClientTestScripts(const stringstream &aFilename, const stringstream &aTestCaseType, int &aTestIndex) sl@0: { sl@0: CertClientsStoreScriptGeneration cert_clients(aFilename); sl@0: sl@0: cert_clients.WriteInitialiseCertClient(aTestCaseType, aTestIndex); sl@0: cert_clients.WriteGetCount(KAppUidIndex, aTestCaseType, aTestIndex); sl@0: cert_clients.WriteGetApplicationsList(aTestCaseType, aTestIndex); sl@0: sl@0: for(int i = 0; i