| OLD | NEW |
| (Empty) |
| 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 * pkix_comcrlselparams.c | |
| 6 * | |
| 7 * ComCRLSelParams Function Definitions | |
| 8 * | |
| 9 */ | |
| 10 | |
| 11 #include "pkix_comcrlselparams.h" | |
| 12 | |
| 13 /* --ComCRLSelParams-Private-Functions------------------------------------ */ | |
| 14 | |
| 15 /* | |
| 16 * FUNCTION: pkix_ComCrlSelParams_Destroy | |
| 17 * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h) | |
| 18 */ | |
| 19 static PKIX_Error * | |
| 20 pkix_ComCRLSelParams_Destroy( | |
| 21 PKIX_PL_Object *object, | |
| 22 void *plContext) | |
| 23 { | |
| 24 PKIX_ComCRLSelParams *params = NULL; | |
| 25 | |
| 26 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Destroy"); | |
| 27 PKIX_NULLCHECK_ONE(object); | |
| 28 | |
| 29 PKIX_CHECK(pkix_CheckType | |
| 30 (object, PKIX_COMCRLSELPARAMS_TYPE, plContext), | |
| 31 PKIX_OBJECTNOTCOMCRLSELPARAMS); | |
| 32 | |
| 33 params = (PKIX_ComCRLSelParams *)object; | |
| 34 | |
| 35 PKIX_DECREF(params->issuerNames); | |
| 36 PKIX_DECREF(params->cert); | |
| 37 PKIX_DECREF(params->date); | |
| 38 PKIX_DECREF(params->maxCRLNumber); | |
| 39 PKIX_DECREF(params->minCRLNumber); | |
| 40 PKIX_DECREF(params->crldpList); | |
| 41 | |
| 42 cleanup: | |
| 43 | |
| 44 PKIX_RETURN(COMCRLSELPARAMS); | |
| 45 } | |
| 46 | |
| 47 /* | |
| 48 * FUNCTION: pkix_ComCRLSelParams_ToString_Helper | |
| 49 * DESCRIPTION: | |
| 50 * | |
| 51 * Helper function that creates a string representation of ComCRLSelParams | |
| 52 * pointed to by "crlParams" and stores the result at "pString". | |
| 53 * | |
| 54 * PARAMETERS | |
| 55 * "crlParams" | |
| 56 * Address of ComCRLSelParams whose string representation is desired. | |
| 57 * Must be non-NULL. | |
| 58 * "pString" | |
| 59 * Address of object pointer's destination. Must be non-NULL. | |
| 60 * "plContext" - Platform-specific context pointer. | |
| 61 * | |
| 62 * THREAD SAFETY: | |
| 63 * Conditionally Thread Safe | |
| 64 * (see Thread Safety Definitions in Programmer's Guide) | |
| 65 * | |
| 66 * RETURNS: | |
| 67 * Returns NULL if the function succeeds. | |
| 68 * Returns a CRLEntry Error if the function fails in a non-fatal way. | |
| 69 * Returns a Fatal Error if the function fails in an unrecoverable way. | |
| 70 */ | |
| 71 static PKIX_Error * | |
| 72 pkix_ComCRLSelParams_ToString_Helper( | |
| 73 PKIX_ComCRLSelParams *crlParams, | |
| 74 PKIX_PL_String **pString, | |
| 75 void *plContext) | |
| 76 { | |
| 77 PKIX_PL_String *crlIssuerNamesString = NULL; | |
| 78 PKIX_PL_String *crlDateString = NULL; | |
| 79 PKIX_PL_String *crlMaxCRLNumberString = NULL; | |
| 80 PKIX_PL_String *crlMinCRLNumberString = NULL; | |
| 81 PKIX_PL_String *crlCertString = NULL; | |
| 82 PKIX_PL_String *crlParamsString = NULL; | |
| 83 char *asciiFormat = NULL; | |
| 84 PKIX_PL_String *formatString = NULL; | |
| 85 | |
| 86 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_ToString_Helper"); | |
| 87 PKIX_NULLCHECK_TWO(crlParams, pString); | |
| 88 | |
| 89 asciiFormat = | |
| 90 "\n\t[\n" | |
| 91 "\tIssuerNames: %s\n" | |
| 92 "\tDate: %s\n" | |
| 93 "\tmaxCRLNumber: %s\n" | |
| 94 "\tminCRLNumber: %s\n" | |
| 95 "\tCertificate: %s\n" | |
| 96 "\t]\n"; | |
| 97 | |
| 98 PKIX_CHECK(PKIX_PL_String_Create | |
| 99 (PKIX_ESCASCII, | |
| 100 asciiFormat, | |
| 101 0, | |
| 102 &formatString, | |
| 103 plContext), | |
| 104 PKIX_STRINGCREATEFAILED); | |
| 105 | |
| 106 PKIX_TOSTRING | |
| 107 (crlParams->issuerNames, &crlIssuerNamesString, plContext, | |
| 108 PKIX_LISTTOSTRINGFAILED); | |
| 109 | |
| 110 PKIX_TOSTRING(crlParams->date, &crlDateString, plContext, | |
| 111 PKIX_DATETOSTRINGFAILED); | |
| 112 | |
| 113 PKIX_TOSTRING | |
| 114 (crlParams->maxCRLNumber, &crlMaxCRLNumberString, plContext, | |
| 115 PKIX_BIGINTTOSTRINGFAILED); | |
| 116 | |
| 117 PKIX_TOSTRING | |
| 118 (crlParams->minCRLNumber, &crlMinCRLNumberString, plContext, | |
| 119 PKIX_BIGINTTOSTRINGFAILED); | |
| 120 | |
| 121 PKIX_TOSTRING(crlParams->cert, &crlCertString, plContext, | |
| 122 PKIX_CERTTOSTRINGFAILED); | |
| 123 | |
| 124 PKIX_CHECK(PKIX_PL_Sprintf | |
| 125 (&crlParamsString, | |
| 126 plContext, | |
| 127 formatString, | |
| 128 crlIssuerNamesString, | |
| 129 crlDateString, | |
| 130 crlMaxCRLNumberString, | |
| 131 crlMinCRLNumberString, | |
| 132 crlCertString), | |
| 133 PKIX_SPRINTFFAILED); | |
| 134 | |
| 135 *pString = crlParamsString; | |
| 136 | |
| 137 cleanup: | |
| 138 | |
| 139 PKIX_DECREF(crlIssuerNamesString); | |
| 140 PKIX_DECREF(crlDateString); | |
| 141 PKIX_DECREF(crlMaxCRLNumberString); | |
| 142 PKIX_DECREF(crlMinCRLNumberString); | |
| 143 PKIX_DECREF(crlCertString); | |
| 144 PKIX_DECREF(formatString); | |
| 145 | |
| 146 PKIX_RETURN(COMCRLSELPARAMS); | |
| 147 } | |
| 148 | |
| 149 /* | |
| 150 * FUNCTION: pkix_ComCRLSelParams_ToString | |
| 151 * (see comments for PKIX_PL_ToStringCallback in pkix_pl_system.h) | |
| 152 */ | |
| 153 static PKIX_Error * | |
| 154 pkix_ComCRLSelParams_ToString( | |
| 155 PKIX_PL_Object *object, | |
| 156 PKIX_PL_String **pString, | |
| 157 void *plContext) | |
| 158 { | |
| 159 PKIX_PL_String *crlParamsString = NULL; | |
| 160 PKIX_ComCRLSelParams *crlParams = NULL; | |
| 161 | |
| 162 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_ToString"); | |
| 163 PKIX_NULLCHECK_TWO(object, pString); | |
| 164 | |
| 165 PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext), | |
| 166 PKIX_OBJECTNOTCOMCRLSELPARAMS); | |
| 167 | |
| 168 crlParams = (PKIX_ComCRLSelParams *) object; | |
| 169 | |
| 170 PKIX_CHECK(pkix_ComCRLSelParams_ToString_Helper | |
| 171 (crlParams, &crlParamsString, plContext), | |
| 172 PKIX_COMCRLSELPARAMSTOSTRINGHELPERFAILED); | |
| 173 | |
| 174 *pString = crlParamsString; | |
| 175 | |
| 176 cleanup: | |
| 177 | |
| 178 PKIX_RETURN(COMCRLSELPARAMS); | |
| 179 } | |
| 180 | |
| 181 /* | |
| 182 * FUNCTION: pkix_ComCRLSelParams_Hashcode | |
| 183 * (see comments for PKIX_PL_HashcodeCallback in pkix_pl_system.h) | |
| 184 */ | |
| 185 static PKIX_Error * | |
| 186 pkix_ComCRLSelParams_Hashcode( | |
| 187 PKIX_PL_Object *object, | |
| 188 PKIX_UInt32 *pHashcode, | |
| 189 void *plContext) | |
| 190 { | |
| 191 PKIX_ComCRLSelParams *crlParams = NULL; | |
| 192 PKIX_UInt32 namesHash = 0; | |
| 193 PKIX_UInt32 certHash = 0; | |
| 194 PKIX_UInt32 dateHash = 0; | |
| 195 PKIX_UInt32 maxCRLNumberHash = 0; | |
| 196 PKIX_UInt32 minCRLNumberHash = 0; | |
| 197 PKIX_UInt32 hash = 0; | |
| 198 | |
| 199 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Hashcode"); | |
| 200 PKIX_NULLCHECK_TWO(object, pHashcode); | |
| 201 | |
| 202 PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext), | |
| 203 PKIX_OBJECTNOTCOMCRLSELPARAMS); | |
| 204 | |
| 205 crlParams = (PKIX_ComCRLSelParams *)object; | |
| 206 | |
| 207 PKIX_HASHCODE(crlParams->issuerNames, &namesHash, plContext, | |
| 208 PKIX_OBJECTHASHCODEFAILED); | |
| 209 | |
| 210 PKIX_HASHCODE(crlParams->cert, &certHash, plContext, | |
| 211 PKIX_OBJECTHASHCODEFAILED); | |
| 212 | |
| 213 PKIX_HASHCODE(crlParams->date, &dateHash, plContext, | |
| 214 PKIX_OBJECTHASHCODEFAILED); | |
| 215 | |
| 216 PKIX_HASHCODE(crlParams->maxCRLNumber, &maxCRLNumberHash, plContext, | |
| 217 PKIX_OBJECTHASHCODEFAILED); | |
| 218 | |
| 219 PKIX_HASHCODE(crlParams->minCRLNumber, &minCRLNumberHash, plContext, | |
| 220 PKIX_OBJECTHASHCODEFAILED); | |
| 221 | |
| 222 | |
| 223 hash = (((namesHash << 3) + certHash) << 3) + dateHash; | |
| 224 hash = (hash << 3) + maxCRLNumberHash + minCRLNumberHash; | |
| 225 | |
| 226 *pHashcode = hash; | |
| 227 | |
| 228 cleanup: | |
| 229 | |
| 230 PKIX_RETURN(COMCRLSELPARAMS); | |
| 231 } | |
| 232 | |
| 233 /* | |
| 234 * FUNCTION: pkix_ComCRLSelParams_Equals | |
| 235 * (see comments for PKIX_PL_Equals_Callback in pkix_pl_system.h) | |
| 236 */ | |
| 237 static PKIX_Error * | |
| 238 pkix_ComCRLSelParams_Equals( | |
| 239 PKIX_PL_Object *firstObject, | |
| 240 PKIX_PL_Object *secondObject, | |
| 241 PKIX_Boolean *pResult, | |
| 242 void *plContext) | |
| 243 { | |
| 244 PKIX_ComCRLSelParams *firstCrlParams = NULL; | |
| 245 PKIX_ComCRLSelParams *secondCrlParams = NULL; | |
| 246 PKIX_UInt32 secondType; | |
| 247 PKIX_Boolean cmpResult = PKIX_FALSE; | |
| 248 | |
| 249 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Equals"); | |
| 250 PKIX_NULLCHECK_THREE(firstObject, secondObject, pResult); | |
| 251 | |
| 252 /* test that firstObject is a ComCRLSelParams */ | |
| 253 PKIX_CHECK(pkix_CheckType | |
| 254 (firstObject, PKIX_COMCRLSELPARAMS_TYPE, plContext), | |
| 255 PKIX_FIRSTOBJECTNOTCOMCRLSELPARAMS); | |
| 256 | |
| 257 firstCrlParams = (PKIX_ComCRLSelParams *)firstObject; | |
| 258 secondCrlParams = (PKIX_ComCRLSelParams *)secondObject; | |
| 259 | |
| 260 /* | |
| 261 * Since we know firstObject is a ComCRLSelParams, if both references | |
| 262 * are identical, they must be equal | |
| 263 */ | |
| 264 if (firstCrlParams == secondCrlParams){ | |
| 265 *pResult = PKIX_TRUE; | |
| 266 goto cleanup; | |
| 267 } | |
| 268 | |
| 269 /* | |
| 270 * If secondComCRLSelParams isn't a ComCRLSelParams, we don't | |
| 271 * throw an error. We simply return a Boolean result of FALSE | |
| 272 */ | |
| 273 *pResult = PKIX_FALSE; | |
| 274 PKIX_CHECK(PKIX_PL_Object_GetType | |
| 275 ((PKIX_PL_Object *)secondCrlParams, &secondType, plContext), | |
| 276 PKIX_COULDNOTGETTYPEOFSECONDARGUMENT); | |
| 277 | |
| 278 if (secondType != PKIX_COMCRLSELPARAMS_TYPE) { | |
| 279 goto cleanup; | |
| 280 } | |
| 281 | |
| 282 /* Compare Issuer Names */ | |
| 283 PKIX_EQUALS | |
| 284 (firstCrlParams->issuerNames, | |
| 285 secondCrlParams->issuerNames, | |
| 286 &cmpResult, | |
| 287 plContext, | |
| 288 PKIX_LISTEQUALSFAILED); | |
| 289 | |
| 290 if (cmpResult != PKIX_TRUE) { | |
| 291 goto cleanup; | |
| 292 } | |
| 293 | |
| 294 /* Compare Date */ | |
| 295 PKIX_EQUALS | |
| 296 (firstCrlParams->date, | |
| 297 secondCrlParams->date, | |
| 298 &cmpResult, | |
| 299 plContext, | |
| 300 PKIX_DATEEQUALSFAILED); | |
| 301 | |
| 302 if (cmpResult != PKIX_TRUE) { | |
| 303 goto cleanup; | |
| 304 } | |
| 305 | |
| 306 /* Compare Max CRL Number */ | |
| 307 PKIX_EQUALS | |
| 308 (firstCrlParams->maxCRLNumber, | |
| 309 secondCrlParams->maxCRLNumber, | |
| 310 &cmpResult, | |
| 311 plContext, | |
| 312 PKIX_BIGINTEQUALSFAILED); | |
| 313 | |
| 314 if (cmpResult != PKIX_TRUE) { | |
| 315 goto cleanup; | |
| 316 } | |
| 317 | |
| 318 /* Compare Min CRL Number */ | |
| 319 PKIX_EQUALS | |
| 320 (firstCrlParams->minCRLNumber, | |
| 321 secondCrlParams->minCRLNumber, | |
| 322 &cmpResult, | |
| 323 plContext, | |
| 324 PKIX_BIGINTEQUALSFAILED); | |
| 325 | |
| 326 if (cmpResult != PKIX_TRUE) { | |
| 327 goto cleanup; | |
| 328 } | |
| 329 | |
| 330 /* Compare Cert */ | |
| 331 PKIX_EQUALS | |
| 332 (firstCrlParams->cert, | |
| 333 secondCrlParams->cert, | |
| 334 &cmpResult, | |
| 335 plContext, | |
| 336 PKIX_CERTEQUALSFAILED); | |
| 337 | |
| 338 *pResult = cmpResult; | |
| 339 | |
| 340 cleanup: | |
| 341 | |
| 342 PKIX_RETURN(COMCRLSELPARAMS); | |
| 343 } | |
| 344 | |
| 345 /* | |
| 346 * FUNCTION: pkix_ComCRLSelParams_Duplicate | |
| 347 * (see comments for PKIX_PL_Duplicate_Callback in pkix_pl_system.h) | |
| 348 */ | |
| 349 static PKIX_Error * | |
| 350 pkix_ComCRLSelParams_Duplicate( | |
| 351 PKIX_PL_Object *object, | |
| 352 PKIX_PL_Object **pNewObject, | |
| 353 void *plContext) | |
| 354 { | |
| 355 PKIX_ComCRLSelParams *old; | |
| 356 PKIX_ComCRLSelParams *new = NULL; | |
| 357 | |
| 358 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_Duplicate"); | |
| 359 PKIX_NULLCHECK_TWO(object, pNewObject); | |
| 360 | |
| 361 PKIX_CHECK(pkix_CheckType(object, PKIX_COMCRLSELPARAMS_TYPE, plContext), | |
| 362 PKIX_OBJECTNOTCOMCRLSELPARAMS); | |
| 363 | |
| 364 old = (PKIX_ComCRLSelParams *)object; | |
| 365 | |
| 366 PKIX_CHECK(PKIX_PL_Object_Alloc | |
| 367 (PKIX_COMCRLSELPARAMS_TYPE, | |
| 368 (PKIX_UInt32)(sizeof (PKIX_ComCRLSelParams)), | |
| 369 (PKIX_PL_Object **)&new, | |
| 370 plContext), | |
| 371 PKIX_OBJECTALLOCFAILED); | |
| 372 | |
| 373 PKIX_DUPLICATE(old->cert, &new->cert, plContext, | |
| 374 PKIX_OBJECTDUPLICATECERTFAILED); | |
| 375 | |
| 376 PKIX_DUPLICATE(old->crldpList, &new->crldpList, plContext, | |
| 377 PKIX_OBJECTDUPLICATECERTFAILED); | |
| 378 | |
| 379 PKIX_DUPLICATE(old->issuerNames, &new->issuerNames, plContext, | |
| 380 PKIX_OBJECTDUPLICATEISSUERNAMESFAILED); | |
| 381 | |
| 382 PKIX_DUPLICATE(old->date, &new->date, plContext, | |
| 383 PKIX_OBJECTDUPLICATEDATEFAILED); | |
| 384 | |
| 385 PKIX_DUPLICATE(old->maxCRLNumber, &new->maxCRLNumber, plContext, | |
| 386 PKIX_OBJECTDUPLICATEMAXCRLNUMBERFAILED); | |
| 387 | |
| 388 PKIX_DUPLICATE(old->minCRLNumber, &new->minCRLNumber, plContext, | |
| 389 PKIX_OBJECTDUPLICATEMINCRLNUMBERFAILED); | |
| 390 | |
| 391 *pNewObject = (PKIX_PL_Object *)new; | |
| 392 | |
| 393 cleanup: | |
| 394 | |
| 395 if (PKIX_ERROR_RECEIVED){ | |
| 396 PKIX_DECREF(new); | |
| 397 } | |
| 398 | |
| 399 PKIX_RETURN(COMCRLSELPARAMS); | |
| 400 } | |
| 401 | |
| 402 /* | |
| 403 * FUNCTION: pkix_ComCrlSelParams_RegisterSelf | |
| 404 * DESCRIPTION: | |
| 405 * Registers PKIX_COMCRLSELPARAMS_TYPE and its related functions with | |
| 406 * systemClasses[] | |
| 407 * THREAD SAFETY: | |
| 408 * Not Thread Safe - for performance and complexity reasons | |
| 409 * | |
| 410 * Since this function is only called by PKIX_PL_Initialize, which should | |
| 411 * only be called once, it is acceptable that this function is not | |
| 412 * thread-safe. | |
| 413 */ | |
| 414 PKIX_Error * | |
| 415 pkix_ComCRLSelParams_RegisterSelf(void *plContext) | |
| 416 { | |
| 417 extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES]; | |
| 418 pkix_ClassTable_Entry entry; | |
| 419 | |
| 420 PKIX_ENTER(COMCRLSELPARAMS, "pkix_ComCRLSelParams_RegisterSelf"); | |
| 421 | |
| 422 entry.description = "ComCRLSelParams"; | |
| 423 entry.objCounter = 0; | |
| 424 entry.typeObjectSize = sizeof(PKIX_ComCRLSelParams); | |
| 425 entry.destructor = pkix_ComCRLSelParams_Destroy; | |
| 426 entry.equalsFunction = pkix_ComCRLSelParams_Equals; | |
| 427 entry.hashcodeFunction = pkix_ComCRLSelParams_Hashcode; | |
| 428 entry.toStringFunction = pkix_ComCRLSelParams_ToString; | |
| 429 entry.comparator = NULL; | |
| 430 entry.duplicateFunction = pkix_ComCRLSelParams_Duplicate; | |
| 431 | |
| 432 systemClasses[PKIX_COMCRLSELPARAMS_TYPE] = entry; | |
| 433 | |
| 434 PKIX_RETURN(COMCRLSELPARAMS); | |
| 435 } | |
| 436 | |
| 437 /* --ComCRLSelParams-Public-Functions------------------------------------- */ | |
| 438 | |
| 439 /* | |
| 440 * FUNCTION: PKIX_ComCRLSelParams_Create (see comments in pkix_crlsel.h) | |
| 441 */ | |
| 442 PKIX_Error * | |
| 443 PKIX_ComCRLSelParams_Create( | |
| 444 PKIX_ComCRLSelParams **pParams, | |
| 445 void *plContext) | |
| 446 { | |
| 447 PKIX_ComCRLSelParams *params = NULL; | |
| 448 | |
| 449 PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_Create"); | |
| 450 PKIX_NULLCHECK_ONE(pParams); | |
| 451 | |
| 452 PKIX_CHECK(PKIX_PL_Object_Alloc | |
| 453 (PKIX_COMCRLSELPARAMS_TYPE, | |
| 454 sizeof (PKIX_ComCRLSelParams), | |
| 455 (PKIX_PL_Object **)¶ms, | |
| 456 plContext), | |
| 457 PKIX_COULDNOTCREATECOMMONCRLSELECTORPARAMSOBJECT); | |
| 458 | |
| 459 /* initialize fields */ | |
| 460 params->issuerNames = NULL; | |
| 461 params->cert = NULL; | |
| 462 params->crldpList = NULL; | |
| 463 params->date = NULL; | |
| 464 params->nistPolicyEnabled = PKIX_TRUE; | |
| 465 params->maxCRLNumber = NULL; | |
| 466 params->minCRLNumber = NULL; | |
| 467 | |
| 468 *pParams = params; | |
| 469 | |
| 470 cleanup: | |
| 471 | |
| 472 PKIX_RETURN(COMCRLSELPARAMS); | |
| 473 } | |
| 474 | |
| 475 /* | |
| 476 * FUNCTION: PKIX_ComCRLSelParams_GetIssuerNames (see comments in pkix_crlsel.h) | |
| 477 */ | |
| 478 PKIX_Error * | |
| 479 PKIX_ComCRLSelParams_GetIssuerNames( | |
| 480 PKIX_ComCRLSelParams *params, | |
| 481 PKIX_List **pIssuerNames, | |
| 482 void *plContext) | |
| 483 { | |
| 484 PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_GetIssuerNames"); | |
| 485 PKIX_NULLCHECK_TWO(params, pIssuerNames); | |
| 486 | |
| 487 PKIX_INCREF(params->issuerNames); | |
| 488 | |
| 489 *pIssuerNames = params->issuerNames; | |
| 490 | |
| 491 cleanup: | |
| 492 PKIX_RETURN(COMCRLSELPARAMS); | |
| 493 } | |
| 494 | |
| 495 /* | |
| 496 * FUNCTION: PKIX_ComCRLSelParams_SetIssuerNames (see comments in pkix_crlsel.h) | |
| 497 */ | |
| 498 PKIX_Error * | |
| 499 PKIX_ComCRLSelParams_SetIssuerNames( | |
| 500 PKIX_ComCRLSelParams *params, | |
| 501 PKIX_List *names, | |
| 502 void *plContext) | |
| 503 { | |
| 504 PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_SetIssuerNames"); | |
| 505 PKIX_NULLCHECK_ONE(params); /* allows null for names from spec */ | |
| 506 | |
| 507 PKIX_DECREF(params->issuerNames); | |
| 508 | |
| 509 PKIX_INCREF(names); /* if NULL, allows to reset for no action */ | |
| 510 | |
| 511 params->issuerNames = names; | |
| 512 | |
| 513 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 514 ((PKIX_PL_Object *)params, plContext), | |
| 515 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 516 | |
| 517 cleanup: | |
| 518 | |
| 519 PKIX_RETURN(COMCRLSELPARAMS); | |
| 520 } | |
| 521 | |
| 522 /* | |
| 523 * FUNCTION: PKIX_ComCRLSelParams_AddIssuerName (see comments in pkix_crlsel.h) | |
| 524 */ | |
| 525 PKIX_Error * | |
| 526 PKIX_ComCRLSelParams_AddIssuerName( | |
| 527 PKIX_ComCRLSelParams *params, | |
| 528 PKIX_PL_X500Name *name, | |
| 529 void *plContext) | |
| 530 { | |
| 531 PKIX_List *list = NULL; | |
| 532 | |
| 533 PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_AddIssuerName"); | |
| 534 PKIX_NULLCHECK_ONE(params); | |
| 535 | |
| 536 if (name != NULL) { | |
| 537 | |
| 538 if (params->issuerNames == NULL) { | |
| 539 | |
| 540 PKIX_CHECK(PKIX_List_Create(&list, plContext), | |
| 541 PKIX_LISTCREATEFAILED); | |
| 542 params->issuerNames = list; | |
| 543 } | |
| 544 | |
| 545 PKIX_CHECK(PKIX_List_AppendItem | |
| 546 (params->issuerNames, (PKIX_PL_Object *)name, plContext), | |
| 547 PKIX_LISTAPPENDITEMFAILED); | |
| 548 | |
| 549 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 550 ((PKIX_PL_Object *)params, plContext), | |
| 551 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 552 | |
| 553 } | |
| 554 | |
| 555 cleanup: | |
| 556 | |
| 557 PKIX_RETURN(COMCRLSELPARAMS); | |
| 558 } | |
| 559 | |
| 560 | |
| 561 /* | |
| 562 * FUNCTION: PKIX_ComCRLSelParams_GetCertificateChecking | |
| 563 * (see comments in pkix_crlsel.h) | |
| 564 */ | |
| 565 PKIX_Error * | |
| 566 PKIX_ComCRLSelParams_GetCertificateChecking( | |
| 567 PKIX_ComCRLSelParams *params, | |
| 568 PKIX_PL_Cert **pCert, | |
| 569 void *plContext) | |
| 570 { | |
| 571 PKIX_ENTER(COMCRLSELPARAMS, | |
| 572 "PKIX_ComCRLSelParams_GetCertificateChecking"); | |
| 573 PKIX_NULLCHECK_TWO(params, pCert); | |
| 574 | |
| 575 PKIX_INCREF(params->cert); | |
| 576 | |
| 577 *pCert = params->cert; | |
| 578 | |
| 579 cleanup: | |
| 580 PKIX_RETURN(COMCRLSELPARAMS); | |
| 581 } | |
| 582 | |
| 583 /* | |
| 584 * FUNCTION: PKIX_ComCRLSelParams_SetCertificateChecking | |
| 585 * (see comments in pkix_crlsel.h) | |
| 586 */ | |
| 587 PKIX_Error * | |
| 588 PKIX_ComCRLSelParams_SetCertificateChecking( | |
| 589 PKIX_ComCRLSelParams *params, | |
| 590 PKIX_PL_Cert *cert, | |
| 591 void *plContext) | |
| 592 { | |
| 593 PKIX_ENTER(COMCRLSELPARAMS, | |
| 594 "PKIX_ComCRLSelParams_SetCertificateChecking"); | |
| 595 PKIX_NULLCHECK_ONE(params); /* allows cert to be NULL from spec */ | |
| 596 | |
| 597 PKIX_DECREF(params->cert); | |
| 598 | |
| 599 PKIX_INCREF(cert); | |
| 600 | |
| 601 params->cert = cert; | |
| 602 | |
| 603 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 604 ((PKIX_PL_Object *)params, plContext), | |
| 605 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 606 | |
| 607 cleanup: | |
| 608 | |
| 609 PKIX_RETURN(COMCRLSELPARAMS); | |
| 610 } | |
| 611 | |
| 612 | |
| 613 /* | |
| 614 * FUNCTION: PKIX_ComCRLSelParams_GetDateAndTime (see comments in pkix_crlsel.h) | |
| 615 */ | |
| 616 PKIX_Error * | |
| 617 PKIX_ComCRLSelParams_GetDateAndTime( | |
| 618 PKIX_ComCRLSelParams *params, | |
| 619 PKIX_PL_Date **pDate, | |
| 620 void *plContext) | |
| 621 { | |
| 622 PKIX_ENTER(COMCRLSELPARAMS, | |
| 623 "PKIX_ComCRLSelParams_GetDateAndTime"); | |
| 624 PKIX_NULLCHECK_TWO(params, pDate); | |
| 625 | |
| 626 PKIX_INCREF(params->date); | |
| 627 | |
| 628 *pDate = params->date; | |
| 629 | |
| 630 cleanup: | |
| 631 PKIX_RETURN(COMCRLSELPARAMS); | |
| 632 } | |
| 633 | |
| 634 /* | |
| 635 * FUNCTION: PKIX_ComCRLSelParams_SetDateAndTime (see comments in pkix_crlsel.h) | |
| 636 */ | |
| 637 PKIX_Error * | |
| 638 PKIX_ComCRLSelParams_SetDateAndTime( | |
| 639 PKIX_ComCRLSelParams *params, | |
| 640 PKIX_PL_Date *date, | |
| 641 void *plContext) | |
| 642 { | |
| 643 PKIX_ENTER(COMCRLSELPARAMS, | |
| 644 "PKIX_ComCRLSelParams_SetDateAndTime"); | |
| 645 PKIX_NULLCHECK_ONE(params); /* allows date to be NULL from spec */ | |
| 646 | |
| 647 PKIX_DECREF (params->date); | |
| 648 | |
| 649 PKIX_INCREF(date); | |
| 650 | |
| 651 params->date = date; | |
| 652 | |
| 653 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 654 ((PKIX_PL_Object *)params, plContext), | |
| 655 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 656 | |
| 657 cleanup: | |
| 658 | |
| 659 PKIX_RETURN(COMCRLSELPARAMS); | |
| 660 } | |
| 661 | |
| 662 /* | |
| 663 * FUNCTION: PKIX_ComCRLSelParams_GetDateAndTime (see comments in pkix_crlsel.h) | |
| 664 */ | |
| 665 PKIX_Error * | |
| 666 PKIX_ComCRLSelParams_GetNISTPolicyEnabled( | |
| 667 PKIX_ComCRLSelParams *params, | |
| 668 PKIX_Boolean *pEnabled, | |
| 669 void *plContext) | |
| 670 { | |
| 671 PKIX_ENTER(COMCRLSELPARAMS, | |
| 672 "PKIX_ComCRLSelParams_GetNISTPolicyEnabled"); | |
| 673 PKIX_NULLCHECK_TWO(params, pEnabled); | |
| 674 | |
| 675 *pEnabled = params->nistPolicyEnabled; | |
| 676 | |
| 677 PKIX_RETURN(COMCRLSELPARAMS); | |
| 678 } | |
| 679 | |
| 680 /* | |
| 681 * FUNCTION: PKIX_ComCRLSelParams_SetDateAndTime (see comments in pkix_crlsel.h) | |
| 682 */ | |
| 683 PKIX_Error * | |
| 684 PKIX_ComCRLSelParams_SetNISTPolicyEnabled( | |
| 685 PKIX_ComCRLSelParams *params, | |
| 686 PKIX_Boolean enabled, | |
| 687 void *plContext) | |
| 688 { | |
| 689 PKIX_ENTER(COMCRLSELPARAMS, | |
| 690 "PKIX_ComCRLSelParams_SetNISTPolicyEnabled"); | |
| 691 PKIX_NULLCHECK_ONE(params); /* allows date to be NULL from spec */ | |
| 692 | |
| 693 params->nistPolicyEnabled = enabled; | |
| 694 | |
| 695 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 696 ((PKIX_PL_Object *)params, plContext), | |
| 697 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 698 | |
| 699 cleanup: | |
| 700 | |
| 701 PKIX_RETURN(COMCRLSELPARAMS); | |
| 702 } | |
| 703 | |
| 704 /* | |
| 705 * FUNCTION: PKIX_ComCRLSelParams_GetMaxCRLNumber | |
| 706 * (see comments in pkix_crlsel.h) | |
| 707 */ | |
| 708 PKIX_Error * | |
| 709 PKIX_ComCRLSelParams_GetMaxCRLNumber( | |
| 710 PKIX_ComCRLSelParams *params, | |
| 711 PKIX_PL_BigInt **pMaxCRLNumber, | |
| 712 void *plContext) | |
| 713 { | |
| 714 PKIX_ENTER(COMCRLSELPARAMS, | |
| 715 "PKIX_ComCRLSelParams_GetMaxCRLNumber"); | |
| 716 PKIX_NULLCHECK_TWO(params, pMaxCRLNumber); | |
| 717 | |
| 718 PKIX_INCREF(params->maxCRLNumber); | |
| 719 | |
| 720 *pMaxCRLNumber = params->maxCRLNumber; | |
| 721 | |
| 722 cleanup: | |
| 723 PKIX_RETURN(COMCRLSELPARAMS); | |
| 724 } | |
| 725 | |
| 726 /* | |
| 727 * FUNCTION: PKIX_ComCRLSelParams_SetMaxCRLNumber | |
| 728 * (see comments in pkix_crlsel.h) | |
| 729 */ | |
| 730 PKIX_Error * | |
| 731 PKIX_ComCRLSelParams_SetMaxCRLNumber( | |
| 732 PKIX_ComCRLSelParams *params, | |
| 733 PKIX_PL_BigInt *maxCRLNumber, | |
| 734 void *plContext) | |
| 735 { | |
| 736 PKIX_ENTER(COMCRLSELPARAMS, | |
| 737 "PKIX_ComCRLSelParams_SetMaxCRLNumber"); | |
| 738 PKIX_NULLCHECK_ONE(params); /* maxCRLNumber can be NULL - from spec */ | |
| 739 | |
| 740 PKIX_DECREF(params->maxCRLNumber); | |
| 741 | |
| 742 PKIX_INCREF(maxCRLNumber); | |
| 743 | |
| 744 params->maxCRLNumber = maxCRLNumber; | |
| 745 | |
| 746 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 747 ((PKIX_PL_Object *)params, plContext), | |
| 748 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 749 | |
| 750 cleanup: | |
| 751 | |
| 752 PKIX_RETURN(COMCRLSELPARAMS); | |
| 753 } | |
| 754 | |
| 755 | |
| 756 /* | |
| 757 * FUNCTION: PKIX_ComCRLSelParams_GetMinCRLNumber | |
| 758 * (see comments in pkix_crlsel.h) | |
| 759 */ | |
| 760 PKIX_Error * | |
| 761 PKIX_ComCRLSelParams_GetMinCRLNumber( | |
| 762 PKIX_ComCRLSelParams *params, | |
| 763 PKIX_PL_BigInt **pMinCRLNumber, | |
| 764 void *plContext) | |
| 765 { | |
| 766 PKIX_ENTER(COMCRLSELPARAMS, | |
| 767 "PKIX_ComCRLSelParams_GetMinCRLNumber"); | |
| 768 PKIX_NULLCHECK_TWO(params, pMinCRLNumber); | |
| 769 | |
| 770 PKIX_INCREF(params->minCRLNumber); | |
| 771 | |
| 772 *pMinCRLNumber = params->minCRLNumber; | |
| 773 | |
| 774 cleanup: | |
| 775 PKIX_RETURN(COMCRLSELPARAMS); | |
| 776 } | |
| 777 | |
| 778 /* | |
| 779 * FUNCTION: PKIX_ComCRLSelParams_SetMinCRLNumber | |
| 780 * (see comments in pkix_crlsel.h) | |
| 781 */ | |
| 782 PKIX_Error * | |
| 783 PKIX_ComCRLSelParams_SetMinCRLNumber( | |
| 784 PKIX_ComCRLSelParams *params, | |
| 785 PKIX_PL_BigInt *minCRLNumber, | |
| 786 void *plContext) | |
| 787 { | |
| 788 PKIX_ENTER(COMCRLSELPARAMS, | |
| 789 "PKIX_ComCRLSelParams_SetMinCRLNumber"); | |
| 790 PKIX_NULLCHECK_ONE(params); /* minCRLNumber can be NULL - from spec */ | |
| 791 | |
| 792 PKIX_DECREF(params->minCRLNumber); | |
| 793 | |
| 794 PKIX_INCREF(minCRLNumber); | |
| 795 | |
| 796 params->minCRLNumber = minCRLNumber; | |
| 797 | |
| 798 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 799 ((PKIX_PL_Object *)params, plContext), | |
| 800 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 801 | |
| 802 cleanup: | |
| 803 | |
| 804 PKIX_RETURN(COMCRLSELPARAMS); | |
| 805 } | |
| 806 | |
| 807 | |
| 808 PKIX_Error* | |
| 809 PKIX_ComCRLSelParams_SetCrlDp( | |
| 810 PKIX_ComCRLSelParams *params, | |
| 811 PKIX_List *crldpList, | |
| 812 void *plContext) | |
| 813 { | |
| 814 PKIX_ENTER(COMCRLSELPARAMS, "PKIX_ComCRLSelParams_SetCrlDp"); | |
| 815 PKIX_NULLCHECK_ONE(params); /* minCRLNumber can be NULL - from spec */ | |
| 816 | |
| 817 PKIX_INCREF(crldpList); | |
| 818 params->crldpList = crldpList; | |
| 819 | |
| 820 PKIX_CHECK(PKIX_PL_Object_InvalidateCache | |
| 821 ((PKIX_PL_Object *)params, plContext), | |
| 822 PKIX_OBJECTINVALIDATECACHEFAILED); | |
| 823 cleanup: | |
| 824 | |
| 825 PKIX_RETURN(COMCRLSELPARAMS); | |
| 826 } | |
| OLD | NEW |