Mercurial > trustbridge > nss-cmake-static
comparison nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c @ 0:1e5118fa0cb1
This is NSS with a Cmake Buildsyste
To compile a static NSS library for Windows we've used the
Chromium-NSS fork and added a Cmake buildsystem to compile
it statically for Windows. See README.chromium for chromium
changes and README.trustbridge for our modifications.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 28 Jul 2014 10:47:06 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e5118fa0cb1 |
---|---|
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 } |