test_valparams.c (8103B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 /* 5 * test_valparams.c 6 * 7 * Test ValidateParams Type 8 * 9 */ 10 11 #include "testutil.h" 12 #include "testutil_nss.h" 13 14 static void *plContext = NULL; 15 16 static void 17 testDestroy(void *goodObject, void *equalObject, void *diffObject) 18 { 19 PKIX_TEST_STD_VARS(); 20 21 subTest("PKIX_ValidateParams_Destroy"); 22 23 PKIX_TEST_DECREF_BC(goodObject); 24 PKIX_TEST_DECREF_BC(equalObject); 25 PKIX_TEST_DECREF_BC(diffObject); 26 27 cleanup: 28 29 PKIX_TEST_RETURN(); 30 } 31 32 static void 33 testGetProcParams( 34 PKIX_ValidateParams *goodObject, 35 PKIX_ValidateParams *equalObject) 36 { 37 38 PKIX_ProcessingParams *goodProcParams = NULL; 39 PKIX_ProcessingParams *equalProcParams = NULL; 40 41 PKIX_TEST_STD_VARS(); 42 subTest("PKIX_ValidateParams_GetProcessingParams"); 43 44 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams(goodObject, &goodProcParams, plContext)); 45 46 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams(equalObject, &equalProcParams, plContext)); 47 48 testEqualsHelper((PKIX_PL_Object *)goodProcParams, 49 (PKIX_PL_Object *)equalProcParams, 50 PKIX_TRUE, 51 plContext); 52 53 cleanup: 54 55 PKIX_TEST_DECREF_AC(goodProcParams); 56 PKIX_TEST_DECREF_AC(equalProcParams); 57 58 PKIX_TEST_RETURN(); 59 } 60 61 static void 62 testGetCertChain( 63 PKIX_ValidateParams *goodObject, 64 PKIX_ValidateParams *equalObject) 65 { 66 67 PKIX_List *goodChain = NULL; 68 PKIX_List *equalChain = NULL; 69 70 PKIX_TEST_STD_VARS(); 71 subTest("PKIX_ValidateParams_GetCertChain"); 72 73 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain(goodObject, &goodChain, plContext)); 74 75 PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain(equalObject, &equalChain, plContext)); 76 77 testEqualsHelper((PKIX_PL_Object *)goodChain, 78 (PKIX_PL_Object *)equalChain, 79 PKIX_TRUE, 80 plContext); 81 82 cleanup: 83 84 PKIX_TEST_DECREF_AC(goodChain); 85 PKIX_TEST_DECREF_AC(equalChain); 86 87 PKIX_TEST_RETURN(); 88 } 89 90 static void 91 printUsage(char *pName) 92 { 93 printf("\nUSAGE: %s <central-data-dir>\n\n", pName); 94 } 95 96 int 97 test_valparams(int argc, char *argv[]) 98 { 99 100 PKIX_ValidateParams *goodObject = NULL; 101 PKIX_ValidateParams *equalObject = NULL; 102 PKIX_ValidateParams *diffObject = NULL; 103 PKIX_List *chain = NULL; 104 PKIX_UInt32 actualMinorVersion; 105 PKIX_UInt32 j = 0; 106 char *dirName = NULL; 107 108 char *goodInput = "yassir2yassir"; 109 char *diffInput = "yassir2bcn"; 110 111 char *expectedAscii = 112 "[\n" 113 "\tProcessing Params: \n" 114 "\t********BEGIN PROCESSING PARAMS********\n" 115 "\t\t" 116 "[\n" 117 "\tTrust Anchors: \n" 118 "\t********BEGIN LIST OF TRUST ANCHORS********\n" 119 "\t\t" 120 "([\n" 121 "\tTrusted CA Name: " 122 "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" 123 "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" 124 "\tInitial Name Constraints:(null)\n" 125 "]\n" 126 ", [\n" 127 "\tTrusted CA Name: OU=bcn,OU=east,O=sun,C=us\n" 128 "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" 129 "\tInitial Name Constraints:(null)\n" 130 "]\n" 131 ")\n" 132 "\t********END LIST OF TRUST ANCHORS********\n" 133 "\tDate: \t\t(null)\n" 134 "\tTarget Constraints: (null)\n" 135 "\tInitial Policies: (null)\n" 136 "\tQualifiers Rejected: FALSE\n" 137 "\tCert Stores: (EMPTY)\n" 138 "\tCRL Checking Enabled: 0\n" 139 "]\n" 140 "\n" 141 "\t********END PROCESSING PARAMS********\n" 142 "\tChain: \t\t" 143 "([\n" 144 "\tVersion: v3\n" 145 "\tSerialNumber: 37bc66ec\n" 146 "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" 147 "\tSubject: OU=bcn,OU=east,O=sun,C=us\n" 148 "\tValidity: [From: Thu Aug 19 16:19:56 1999\n" 149 "\t To: Fri Aug 18 16:19:56 2000]\n" 150 "\tSubjectAltNames: (null)\n" 151 "\tAuthorityKeyId: (null)\n" 152 "\tSubjectKeyId: (null)\n" 153 "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" 154 "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" 155 "\tExtKeyUsages: (null)\n" 156 "\tBasicConstraint: CA(0)\n" 157 "\tCertPolicyInfo: (null)\n" 158 "\tPolicyMappings: (null)\n" 159 "\tExplicitPolicy: -1\n" 160 "\tInhibitMapping: -1\n" 161 "\tInhibitAnyPolicy:-1\n" 162 "\tNameConstraints: (null)\n" 163 "]\n" 164 ", [\n" 165 "\tVersion: v3\n" 166 "\tSerialNumber: 37bc65af\n" 167 "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" 168 "\tSubject: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" 169 "\tValidity: [From: Thu Aug 19 16:14:39 1999\n" 170 "\t To: Fri Aug 18 16:14:39 2000]\n" 171 "\tSubjectAltNames: (null)\n" 172 "\tAuthorityKeyId: (null)\n" 173 "\tSubjectKeyId: (null)\n" 174 "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" 175 "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" 176 "\tExtKeyUsages: (null)\n" 177 "\tBasicConstraint: CA(0)\n" 178 "\tCertPolicyInfo: (null)\n" 179 "\tPolicyMappings: (null)\n" 180 "\tExplicitPolicy: -1\n" 181 "\tInhibitMapping: -1\n" 182 "\tInhibitAnyPolicy:-1\n" 183 "\tNameConstraints: (null)\n" 184 "]\n" 185 ")\n" 186 "]\n"; 187 188 PKIX_TEST_STD_VARS(); 189 190 startTests("ValidateParams"); 191 192 PKIX_TEST_EXPECT_NO_ERROR( 193 PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); 194 195 if (argc < 2) { 196 printUsage(argv[0]); 197 return (0); 198 } 199 200 dirName = argv[j + 1]; 201 202 subTest("PKIX_ValidateParams_Create"); 203 chain = createCertChain(dirName, diffInput, goodInput, plContext); 204 goodObject = createValidateParams(dirName, 205 goodInput, 206 diffInput, 207 NULL, 208 NULL, 209 PKIX_FALSE, 210 PKIX_FALSE, 211 PKIX_FALSE, 212 PKIX_FALSE, 213 chain, 214 plContext); 215 equalObject = createValidateParams(dirName, 216 goodInput, 217 diffInput, 218 NULL, 219 NULL, 220 PKIX_FALSE, 221 PKIX_FALSE, 222 PKIX_FALSE, 223 PKIX_FALSE, 224 chain, 225 plContext); 226 diffObject = createValidateParams(dirName, 227 diffInput, 228 goodInput, 229 NULL, 230 NULL, 231 PKIX_FALSE, 232 PKIX_FALSE, 233 PKIX_FALSE, 234 PKIX_FALSE, 235 chain, 236 plContext); 237 238 testGetProcParams(goodObject, equalObject); 239 testGetCertChain(goodObject, equalObject); 240 241 PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObject, 242 equalObject, 243 diffObject, 244 NULL, /* expectedAscii, */ 245 ValidateParams, 246 PKIX_FALSE); 247 248 testDestroy(goodObject, equalObject, diffObject); 249 250 cleanup: 251 252 PKIX_TEST_DECREF_AC(chain); 253 254 PKIX_Shutdown(plContext); 255 256 PKIX_TEST_RETURN(); 257 258 endTests("ValidateParams"); 259 260 return (0); 261 }