| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| /* |
| * test_valparams.c |
| * |
| * Test ValidateParams Type |
| * |
| */ |
| |
| #include "testutil.h" |
| #include "testutil_nss.h" |
| |
| static void *plContext = NULL; |
| |
| static void |
| testDestroy(void *goodObject, void *equalObject, void *diffObject) |
| { |
| PKIX_TEST_STD_VARS(); |
| |
| subTest("PKIX_ValidateParams_Destroy"); |
| |
| PKIX_TEST_DECREF_BC(goodObject); |
| PKIX_TEST_DECREF_BC(equalObject); |
| PKIX_TEST_DECREF_BC(diffObject); |
| |
| cleanup: |
| |
| PKIX_TEST_RETURN(); |
| } |
| |
| static void |
| testGetProcParams( |
| PKIX_ValidateParams *goodObject, |
| PKIX_ValidateParams *equalObject) |
| { |
| |
| PKIX_ProcessingParams *goodProcParams = NULL; |
| PKIX_ProcessingParams *equalProcParams = NULL; |
| |
| PKIX_TEST_STD_VARS(); |
| subTest("PKIX_ValidateParams_GetProcessingParams"); |
| |
| PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams(goodObject, &goodProcParams, plContext)); |
| |
| PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams(equalObject, &equalProcParams, plContext)); |
| |
| testEqualsHelper((PKIX_PL_Object *)goodProcParams, |
| (PKIX_PL_Object *)equalProcParams, |
| PKIX_TRUE, |
| plContext); |
| |
| cleanup: |
| |
| PKIX_TEST_DECREF_AC(goodProcParams); |
| PKIX_TEST_DECREF_AC(equalProcParams); |
| |
| PKIX_TEST_RETURN(); |
| } |
| |
| static void |
| testGetCertChain( |
| PKIX_ValidateParams *goodObject, |
| PKIX_ValidateParams *equalObject) |
| { |
| |
| PKIX_List *goodChain = NULL; |
| PKIX_List *equalChain = NULL; |
| |
| PKIX_TEST_STD_VARS(); |
| subTest("PKIX_ValidateParams_GetCertChain"); |
| |
| PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain(goodObject, &goodChain, plContext)); |
| |
| PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain(equalObject, &equalChain, plContext)); |
| |
| testEqualsHelper((PKIX_PL_Object *)goodChain, |
| (PKIX_PL_Object *)equalChain, |
| PKIX_TRUE, |
| plContext); |
| |
| cleanup: |
| |
| PKIX_TEST_DECREF_AC(goodChain); |
| PKIX_TEST_DECREF_AC(equalChain); |
| |
| PKIX_TEST_RETURN(); |
| } |
| |
| static void |
| printUsage(char *pName) |
| { |
| printf("\nUSAGE: %s <central-data-dir>\n\n", pName); |
| } |
| |
| int |
| test_valparams(int argc, char *argv[]) |
| { |
| |
| PKIX_ValidateParams *goodObject = NULL; |
| PKIX_ValidateParams *equalObject = NULL; |
| PKIX_ValidateParams *diffObject = NULL; |
| PKIX_List *chain = NULL; |
| PKIX_UInt32 actualMinorVersion; |
| PKIX_UInt32 j = 0; |
| char *dirName = NULL; |
| |
| char *goodInput = "yassir2yassir"; |
| char *diffInput = "yassir2bcn"; |
| |
| char *expectedAscii = |
| "[\n" |
| "\tProcessing Params: \n" |
| "\t********BEGIN PROCESSING PARAMS********\n" |
| "\t\t" |
| "[\n" |
| "\tTrust Anchors: \n" |
| "\t********BEGIN LIST OF TRUST ANCHORS********\n" |
| "\t\t" |
| "([\n" |
| "\tTrusted CA Name: " |
| "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" |
| "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" |
| "\tInitial Name Constraints:(null)\n" |
| "]\n" |
| ", [\n" |
| "\tTrusted CA Name: OU=bcn,OU=east,O=sun,C=us\n" |
| "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" |
| "\tInitial Name Constraints:(null)\n" |
| "]\n" |
| ")\n" |
| "\t********END LIST OF TRUST ANCHORS********\n" |
| "\tDate: \t\t(null)\n" |
| "\tTarget Constraints: (null)\n" |
| "\tInitial Policies: (null)\n" |
| "\tQualifiers Rejected: FALSE\n" |
| "\tCert Stores: (EMPTY)\n" |
| "\tCRL Checking Enabled: 0\n" |
| "]\n" |
| "\n" |
| "\t********END PROCESSING PARAMS********\n" |
| "\tChain: \t\t" |
| "([\n" |
| "\tVersion: v3\n" |
| "\tSerialNumber: 37bc66ec\n" |
| "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" |
| "\tSubject: OU=bcn,OU=east,O=sun,C=us\n" |
| "\tValidity: [From: Thu Aug 19 16:19:56 1999\n" |
| "\t To: Fri Aug 18 16:19:56 2000]\n" |
| "\tSubjectAltNames: (null)\n" |
| "\tAuthorityKeyId: (null)\n" |
| "\tSubjectKeyId: (null)\n" |
| "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" |
| "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" |
| "\tExtKeyUsages: (null)\n" |
| "\tBasicConstraint: CA(0)\n" |
| "\tCertPolicyInfo: (null)\n" |
| "\tPolicyMappings: (null)\n" |
| "\tExplicitPolicy: -1\n" |
| "\tInhibitMapping: -1\n" |
| "\tInhibitAnyPolicy:-1\n" |
| "\tNameConstraints: (null)\n" |
| "]\n" |
| ", [\n" |
| "\tVersion: v3\n" |
| "\tSerialNumber: 37bc65af\n" |
| "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" |
| "\tSubject: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" |
| "\tValidity: [From: Thu Aug 19 16:14:39 1999\n" |
| "\t To: Fri Aug 18 16:14:39 2000]\n" |
| "\tSubjectAltNames: (null)\n" |
| "\tAuthorityKeyId: (null)\n" |
| "\tSubjectKeyId: (null)\n" |
| "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" |
| "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" |
| "\tExtKeyUsages: (null)\n" |
| "\tBasicConstraint: CA(0)\n" |
| "\tCertPolicyInfo: (null)\n" |
| "\tPolicyMappings: (null)\n" |
| "\tExplicitPolicy: -1\n" |
| "\tInhibitMapping: -1\n" |
| "\tInhibitAnyPolicy:-1\n" |
| "\tNameConstraints: (null)\n" |
| "]\n" |
| ")\n" |
| "]\n"; |
| |
| PKIX_TEST_STD_VARS(); |
| |
| startTests("ValidateParams"); |
| |
| PKIX_TEST_EXPECT_NO_ERROR( |
| PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); |
| |
| if (argc < 2) { |
| printUsage(argv[0]); |
| return (0); |
| } |
| |
| dirName = argv[j + 1]; |
| |
| subTest("PKIX_ValidateParams_Create"); |
| chain = createCertChain(dirName, diffInput, goodInput, plContext); |
| goodObject = createValidateParams(dirName, |
| goodInput, |
| diffInput, |
| NULL, |
| NULL, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| chain, |
| plContext); |
| equalObject = createValidateParams(dirName, |
| goodInput, |
| diffInput, |
| NULL, |
| NULL, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| chain, |
| plContext); |
| diffObject = createValidateParams(dirName, |
| diffInput, |
| goodInput, |
| NULL, |
| NULL, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| PKIX_FALSE, |
| chain, |
| plContext); |
| |
| testGetProcParams(goodObject, equalObject); |
| testGetCertChain(goodObject, equalObject); |
| |
| PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObject, |
| equalObject, |
| diffObject, |
| NULL, /* expectedAscii, */ |
| ValidateParams, |
| PKIX_FALSE); |
| |
| testDestroy(goodObject, equalObject, diffObject); |
| |
| cleanup: |
| |
| PKIX_TEST_DECREF_AC(chain); |
| |
| PKIX_Shutdown(plContext); |
| |
| PKIX_TEST_RETURN(); |
| |
| endTests("ValidateParams"); |
| |
| return (0); |
| } |