1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,1188 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 +/* 1.8 + * pkix_comcertselparams.c 1.9 + * 1.10 + * ComCertSelParams Object Functions 1.11 + * 1.12 + */ 1.13 + 1.14 +#include "pkix_comcertselparams.h" 1.15 + 1.16 +/* --Private-Functions-------------------------------------------- */ 1.17 + 1.18 +/* 1.19 + * FUNCTION: pkix_ComCertSelParams_Destroy 1.20 + * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h) 1.21 + */ 1.22 +static PKIX_Error * 1.23 +pkix_ComCertSelParams_Destroy( 1.24 + PKIX_PL_Object *object, 1.25 + void *plContext) 1.26 +{ 1.27 + PKIX_ComCertSelParams *params = NULL; 1.28 + 1.29 + PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_Destroy"); 1.30 + PKIX_NULLCHECK_ONE(object); 1.31 + 1.32 + /* Check that this object is a comCertSelParams object */ 1.33 + PKIX_CHECK(pkix_CheckType 1.34 + (object, PKIX_COMCERTSELPARAMS_TYPE, plContext), 1.35 + PKIX_OBJECTNOTCOMCERTSELPARAMS); 1.36 + 1.37 + params = (PKIX_ComCertSelParams *)object; 1.38 + 1.39 + PKIX_DECREF(params->subject); 1.40 + PKIX_DECREF(params->policies); 1.41 + PKIX_DECREF(params->cert); 1.42 + PKIX_DECREF(params->nameConstraints); 1.43 + PKIX_DECREF(params->pathToNames); 1.44 + PKIX_DECREF(params->subjAltNames); 1.45 + PKIX_DECREF(params->date); 1.46 + PKIX_DECREF(params->extKeyUsage); 1.47 + PKIX_DECREF(params->certValid); 1.48 + PKIX_DECREF(params->issuer); 1.49 + PKIX_DECREF(params->serialNumber); 1.50 + PKIX_DECREF(params->authKeyId); 1.51 + PKIX_DECREF(params->subjKeyId); 1.52 + PKIX_DECREF(params->subjPubKey); 1.53 + PKIX_DECREF(params->subjPKAlgId); 1.54 + 1.55 +cleanup: 1.56 + 1.57 + PKIX_RETURN(COMCERTSELPARAMS); 1.58 +} 1.59 + 1.60 +/* 1.61 + * FUNCTION: pkix_ComCertSelParams_Duplicate 1.62 + * (see comments for PKIX_PL_DuplicateCallback in pkix_pl_system.h) 1.63 + */ 1.64 +static PKIX_Error * 1.65 +pkix_ComCertSelParams_Duplicate( 1.66 + PKIX_PL_Object *object, 1.67 + PKIX_PL_Object **pNewObject, 1.68 + void *plContext) 1.69 +{ 1.70 + PKIX_ComCertSelParams *params = NULL; 1.71 + PKIX_ComCertSelParams *paramsDuplicate = NULL; 1.72 + 1.73 + PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_Duplicate"); 1.74 + PKIX_NULLCHECK_TWO(object, pNewObject); 1.75 + 1.76 + PKIX_CHECK(pkix_CheckType 1.77 + (object, PKIX_COMCERTSELPARAMS_TYPE, plContext), 1.78 + PKIX_OBJECTNOTCOMCERTSELPARAMS); 1.79 + 1.80 + params = (PKIX_ComCertSelParams *)object; 1.81 + 1.82 + PKIX_CHECK(PKIX_ComCertSelParams_Create(¶msDuplicate, plContext), 1.83 + PKIX_COMCERTSELPARAMSCREATEFAILED); 1.84 + 1.85 + paramsDuplicate->minPathLength = params->minPathLength; 1.86 + paramsDuplicate->matchAllSubjAltNames = params->matchAllSubjAltNames; 1.87 + 1.88 + PKIX_DUPLICATE(params->subject, ¶msDuplicate->subject, plContext, 1.89 + PKIX_OBJECTDUPLICATEFAILED); 1.90 + 1.91 + PKIX_DUPLICATE(params->policies, ¶msDuplicate->policies, plContext, 1.92 + PKIX_OBJECTDUPLICATEFAILED); 1.93 + 1.94 + if (params->cert){ 1.95 + PKIX_CHECK(PKIX_PL_Object_Duplicate 1.96 + ((PKIX_PL_Object *)params->cert, 1.97 + (PKIX_PL_Object **)¶msDuplicate->cert, 1.98 + plContext), 1.99 + PKIX_OBJECTDUPLICATEFAILED); 1.100 + } 1.101 + 1.102 + PKIX_DUPLICATE 1.103 + (params->nameConstraints, 1.104 + ¶msDuplicate->nameConstraints, 1.105 + plContext, 1.106 + PKIX_OBJECTDUPLICATEFAILED); 1.107 + 1.108 + PKIX_DUPLICATE 1.109 + (params->pathToNames, 1.110 + ¶msDuplicate->pathToNames, 1.111 + plContext, 1.112 + PKIX_OBJECTDUPLICATEFAILED); 1.113 + 1.114 + PKIX_DUPLICATE 1.115 + (params->subjAltNames, 1.116 + ¶msDuplicate->subjAltNames, 1.117 + plContext, 1.118 + PKIX_OBJECTDUPLICATEFAILED); 1.119 + 1.120 + if (params->date){ 1.121 + PKIX_CHECK(PKIX_PL_Object_Duplicate 1.122 + ((PKIX_PL_Object *)params->date, 1.123 + (PKIX_PL_Object **)¶msDuplicate->date, 1.124 + plContext), 1.125 + PKIX_OBJECTDUPLICATEFAILED); 1.126 + } 1.127 + 1.128 + paramsDuplicate->keyUsage = params->keyUsage; 1.129 + 1.130 + PKIX_DUPLICATE(params->certValid, 1.131 + ¶msDuplicate->certValid, 1.132 + plContext, 1.133 + PKIX_OBJECTDUPLICATEFAILED); 1.134 + 1.135 + PKIX_DUPLICATE(params->issuer, 1.136 + ¶msDuplicate->issuer, 1.137 + plContext, 1.138 + PKIX_OBJECTDUPLICATEFAILED); 1.139 + 1.140 + PKIX_DUPLICATE(params->serialNumber, 1.141 + ¶msDuplicate->serialNumber, 1.142 + plContext, 1.143 + PKIX_OBJECTDUPLICATEFAILED); 1.144 + 1.145 + PKIX_DUPLICATE(params->authKeyId, 1.146 + ¶msDuplicate->authKeyId, 1.147 + plContext, 1.148 + PKIX_OBJECTDUPLICATEFAILED); 1.149 + 1.150 + PKIX_DUPLICATE(params->subjKeyId, 1.151 + ¶msDuplicate->subjKeyId, 1.152 + plContext, 1.153 + PKIX_OBJECTDUPLICATEFAILED); 1.154 + 1.155 + PKIX_DUPLICATE(params->subjPubKey, 1.156 + ¶msDuplicate->subjPubKey, 1.157 + plContext, 1.158 + PKIX_OBJECTDUPLICATEFAILED); 1.159 + 1.160 + PKIX_DUPLICATE(params->subjPKAlgId, 1.161 + ¶msDuplicate->subjPKAlgId, 1.162 + plContext, 1.163 + PKIX_OBJECTDUPLICATEFAILED); 1.164 + 1.165 + paramsDuplicate->leafCertFlag = params->leafCertFlag; 1.166 + 1.167 + *pNewObject = (PKIX_PL_Object *)paramsDuplicate; 1.168 + 1.169 +cleanup: 1.170 + 1.171 + if (PKIX_ERROR_RECEIVED){ 1.172 + PKIX_DECREF(paramsDuplicate); 1.173 + } 1.174 + 1.175 + PKIX_RETURN(COMCERTSELPARAMS); 1.176 +} 1.177 + 1.178 +/* 1.179 + * FUNCTION: pkix_ComCertSelParams_RegisterSelf 1.180 + * DESCRIPTION: 1.181 + * Registers PKIX_COMCERTSELPARAMS_TYPE and its related functions with 1.182 + * systemClasses[] 1.183 + * THREAD SAFETY: 1.184 + * Not Thread Safe - for performance and complexity reasons 1.185 + * 1.186 + * Since this function is only called by PKIX_PL_Initialize, which should 1.187 + * only be called once, it is acceptable that this function is not 1.188 + * thread-safe. 1.189 + */ 1.190 +PKIX_Error * 1.191 +pkix_ComCertSelParams_RegisterSelf(void *plContext) 1.192 +{ 1.193 + extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES]; 1.194 + pkix_ClassTable_Entry* entry = &systemClasses[PKIX_COMCERTSELPARAMS_TYPE]; 1.195 + 1.196 + PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_RegisterSelf"); 1.197 + 1.198 + entry->description = "ComCertSelParams"; 1.199 + entry->typeObjectSize = sizeof(PKIX_ComCertSelParams); 1.200 + entry->destructor = pkix_ComCertSelParams_Destroy; 1.201 + entry->duplicateFunction = pkix_ComCertSelParams_Duplicate; 1.202 + 1.203 + PKIX_RETURN(COMCERTSELPARAMS); 1.204 +} 1.205 + 1.206 +/* --Public-Functions--------------------------------------------- */ 1.207 + 1.208 + 1.209 +/* 1.210 + * FUNCTION: PKIX_ComCertSelParams_Create (see comments in pkix_certsel.h) 1.211 + */ 1.212 +PKIX_Error * 1.213 +PKIX_ComCertSelParams_Create( 1.214 + PKIX_ComCertSelParams **pParams, 1.215 + void *plContext) 1.216 +{ 1.217 + PKIX_ComCertSelParams *params = NULL; 1.218 + 1.219 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_Create"); 1.220 + PKIX_NULLCHECK_ONE(pParams); 1.221 + 1.222 + PKIX_CHECK(PKIX_PL_Object_Alloc 1.223 + (PKIX_COMCERTSELPARAMS_TYPE, 1.224 + sizeof (PKIX_ComCertSelParams), 1.225 + (PKIX_PL_Object **)¶ms, 1.226 + plContext), 1.227 + PKIX_COULDNOTCREATECOMMONCERTSELPARAMSOBJECT); 1.228 + 1.229 + /* initialize fields */ 1.230 + params->version = 0xFFFFFFFF; 1.231 + params->minPathLength = -1; 1.232 + params->matchAllSubjAltNames = PKIX_TRUE; 1.233 + params->subject = NULL; 1.234 + params->policies = NULL; 1.235 + params->cert = NULL; 1.236 + params->nameConstraints = NULL; 1.237 + params->pathToNames = NULL; 1.238 + params->subjAltNames = NULL; 1.239 + params->extKeyUsage = NULL; 1.240 + params->keyUsage = 0; 1.241 + params->extKeyUsage = NULL; 1.242 + params->keyUsage = 0; 1.243 + params->date = NULL; 1.244 + params->certValid = NULL; 1.245 + params->issuer = NULL; 1.246 + params->serialNumber = NULL; 1.247 + params->authKeyId = NULL; 1.248 + params->subjKeyId = NULL; 1.249 + params->subjPubKey = NULL; 1.250 + params->subjPKAlgId = NULL; 1.251 + params->leafCertFlag = PKIX_FALSE; 1.252 + 1.253 + *pParams = params; 1.254 + 1.255 +cleanup: 1.256 + 1.257 + PKIX_RETURN(COMCERTSELPARAMS); 1.258 + 1.259 +} 1.260 + 1.261 +/* 1.262 + * FUNCTION: PKIX_ComCertSelParams_GetSubject (see comments in pkix_certsel.h) 1.263 + */ 1.264 +PKIX_Error * 1.265 +PKIX_ComCertSelParams_GetSubject( 1.266 + PKIX_ComCertSelParams *params, 1.267 + PKIX_PL_X500Name **pSubject, 1.268 + void *plContext) 1.269 +{ 1.270 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubject"); 1.271 + PKIX_NULLCHECK_TWO(params, pSubject); 1.272 + 1.273 + PKIX_INCREF(params->subject); 1.274 + 1.275 + *pSubject = params->subject; 1.276 + 1.277 +cleanup: 1.278 + PKIX_RETURN(COMCERTSELPARAMS); 1.279 +} 1.280 + 1.281 +/* 1.282 + * FUNCTION: PKIX_ComCertSelParams_SetSubject (see comments in pkix_certsel.h) 1.283 + */ 1.284 +PKIX_Error * 1.285 +PKIX_ComCertSelParams_SetSubject( 1.286 + PKIX_ComCertSelParams *params, 1.287 + PKIX_PL_X500Name *subject, 1.288 + void *plContext) 1.289 +{ 1.290 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubject"); 1.291 + PKIX_NULLCHECK_ONE(params); 1.292 + 1.293 + PKIX_DECREF(params->subject); 1.294 + 1.295 + PKIX_INCREF(subject); 1.296 + 1.297 + params->subject = subject; 1.298 + 1.299 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.300 + ((PKIX_PL_Object *)params, plContext), 1.301 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.302 + 1.303 +cleanup: 1.304 + 1.305 + PKIX_RETURN(COMCERTSELPARAMS); 1.306 +} 1.307 + 1.308 + 1.309 +/* 1.310 + * FUNCTION: PKIX_ComCertSelParams_GetBasicConstraints 1.311 + * (see comments in pkix_certsel.h) 1.312 + */ 1.313 +PKIX_Error * 1.314 +PKIX_ComCertSelParams_GetBasicConstraints( 1.315 + PKIX_ComCertSelParams *params, 1.316 + PKIX_Int32 *pMinPathLength, 1.317 + void *plContext) 1.318 +{ 1.319 + PKIX_ENTER(COMCERTSELPARAMS, 1.320 + "PKIX_ComCertSelParams_GetBasicConstraints"); 1.321 + PKIX_NULLCHECK_TWO(params, pMinPathLength); 1.322 + 1.323 + *pMinPathLength = params->minPathLength; 1.324 + 1.325 + PKIX_RETURN(COMCERTSELPARAMS); 1.326 +} 1.327 + 1.328 + 1.329 +/* 1.330 + * FUNCTION: PKIX_ComCertSelParams_SetBasicConstraints 1.331 + * (see comments in pkix_certsel.h) 1.332 + */ 1.333 +PKIX_Error * 1.334 +PKIX_ComCertSelParams_SetBasicConstraints( 1.335 + PKIX_ComCertSelParams *params, 1.336 + PKIX_Int32 minPathLength, 1.337 + void *plContext) 1.338 +{ 1.339 + PKIX_ENTER(COMCERTSELPARAMS, 1.340 + "PKIX_ComCertSelParams_SetBasicConstraints"); 1.341 + PKIX_NULLCHECK_ONE(params); 1.342 + 1.343 + params->minPathLength = minPathLength; 1.344 + 1.345 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.346 + ((PKIX_PL_Object *)params, plContext), 1.347 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.348 + 1.349 +cleanup: 1.350 + 1.351 + PKIX_RETURN(COMCERTSELPARAMS); 1.352 +} 1.353 + 1.354 + 1.355 +/* 1.356 + * FUNCTION: PKIX_ComCertSelParams_GetPolicy (see comments in pkix_certsel.h) 1.357 + */ 1.358 +PKIX_Error * 1.359 +PKIX_ComCertSelParams_GetPolicy( 1.360 + PKIX_ComCertSelParams *params, 1.361 + PKIX_List **pPolicy, /* List of PKIX_PL_OID */ 1.362 + void *plContext) 1.363 +{ 1.364 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetPolicy"); 1.365 + PKIX_NULLCHECK_TWO(params, pPolicy); 1.366 + 1.367 + PKIX_INCREF(params->policies); 1.368 + *pPolicy = params->policies; 1.369 + 1.370 +cleanup: 1.371 + PKIX_RETURN(COMCERTSELPARAMS); 1.372 +} 1.373 + 1.374 +/* 1.375 + * FUNCTION: PKIX_ComCertSelParams_SetPolicy (see comments in pkix_certsel.h) 1.376 + */ 1.377 +PKIX_Error * 1.378 +PKIX_ComCertSelParams_SetPolicy( 1.379 + PKIX_ComCertSelParams *params, 1.380 + PKIX_List *policy, /* List of PKIX_PL_OID */ 1.381 + void *plContext) 1.382 +{ 1.383 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetPolicy"); 1.384 + PKIX_NULLCHECK_ONE(params); 1.385 + 1.386 + PKIX_DECREF(params->policies); 1.387 + PKIX_INCREF(policy); 1.388 + params->policies = policy; 1.389 + 1.390 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.391 + ((PKIX_PL_Object *)params, plContext), 1.392 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.393 +cleanup: 1.394 + 1.395 + PKIX_RETURN(COMCERTSELPARAMS); 1.396 +} 1.397 + 1.398 +/* 1.399 + * FUNCTION: PKIX_ComCertSelParams_GetCertificate 1.400 + * (see comments in pkix_certsel.h) 1.401 + */ 1.402 +PKIX_Error * 1.403 +PKIX_ComCertSelParams_GetCertificate( 1.404 + PKIX_ComCertSelParams *params, 1.405 + PKIX_PL_Cert **pCert, 1.406 + void *plContext) 1.407 +{ 1.408 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetCertificate"); 1.409 + PKIX_NULLCHECK_TWO(params, pCert); 1.410 + 1.411 + PKIX_INCREF(params->cert); 1.412 + *pCert = params->cert; 1.413 + 1.414 +cleanup: 1.415 + PKIX_RETURN(COMCERTSELPARAMS); 1.416 +} 1.417 + 1.418 +/* 1.419 + * FUNCTION: PKIX_ComCertSelParams_SetCertificate 1.420 + * (see comments in pkix_certsel.h) 1.421 + */ 1.422 +PKIX_Error * 1.423 +PKIX_ComCertSelParams_SetCertificate( 1.424 + PKIX_ComCertSelParams *params, 1.425 + PKIX_PL_Cert *cert, 1.426 + void *plContext) 1.427 +{ 1.428 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetCertificate"); 1.429 + PKIX_NULLCHECK_ONE(params); 1.430 + 1.431 + PKIX_DECREF(params->cert); 1.432 + PKIX_INCREF(cert); 1.433 + params->cert = cert; 1.434 + 1.435 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.436 + ((PKIX_PL_Object *)params, plContext), 1.437 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.438 +cleanup: 1.439 + 1.440 + PKIX_RETURN(COMCERTSELPARAMS); 1.441 +} 1.442 + 1.443 +/* 1.444 + * FUNCTION: PKIX_ComCertSelParams_GetCertificateValid 1.445 + * (see comments in pkix_certsel.h) 1.446 + */ 1.447 +PKIX_Error * 1.448 +PKIX_ComCertSelParams_GetCertificateValid( 1.449 + PKIX_ComCertSelParams *params, 1.450 + PKIX_PL_Date **pDate, 1.451 + void *plContext) 1.452 +{ 1.453 + PKIX_ENTER(COMCERTSELPARAMS, 1.454 + "PKIX_ComCertSelParams_GetCertificateValid"); 1.455 + 1.456 + PKIX_NULLCHECK_TWO(params, pDate); 1.457 + 1.458 + PKIX_INCREF(params->date); 1.459 + *pDate = params->date; 1.460 + 1.461 +cleanup: 1.462 + PKIX_RETURN(COMCERTSELPARAMS); 1.463 +} 1.464 + 1.465 +/* 1.466 + * FUNCTION: PKIX_ComCertSelParams_SetCertificateValid 1.467 + * (see comments in pkix_certsel.h) 1.468 + */ 1.469 +PKIX_Error * 1.470 +PKIX_ComCertSelParams_SetCertificateValid( 1.471 + PKIX_ComCertSelParams *params, 1.472 + PKIX_PL_Date *date, 1.473 + void *plContext) 1.474 +{ 1.475 + PKIX_ENTER(COMCERTSELPARAMS, 1.476 + "PKIX_ComCertSelParams_SetCertificateValid"); 1.477 + PKIX_NULLCHECK_ONE(params); 1.478 + 1.479 + PKIX_DECREF(params->date); 1.480 + PKIX_INCREF(date); 1.481 + params->date = date; 1.482 + 1.483 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.484 + ((PKIX_PL_Object *)params, plContext), 1.485 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.486 +cleanup: 1.487 + 1.488 + PKIX_RETURN(COMCERTSELPARAMS); 1.489 +} 1.490 + 1.491 +/* 1.492 + * FUNCTION: PKIX_ComCertSelParams_GetNameConstraints 1.493 + * (see comments in pkix_certsel.h) 1.494 + */ 1.495 +PKIX_Error * 1.496 +PKIX_ComCertSelParams_GetNameConstraints( 1.497 + PKIX_ComCertSelParams *params, 1.498 + PKIX_PL_CertNameConstraints **pNameConstraints, 1.499 + void *plContext) 1.500 +{ 1.501 + PKIX_ENTER(COMCERTSELPARAMS, 1.502 + "PKIX_ComCertSelParams_GetNameConstraints"); 1.503 + PKIX_NULLCHECK_TWO(params, pNameConstraints); 1.504 + 1.505 + PKIX_INCREF(params->nameConstraints); 1.506 + 1.507 + *pNameConstraints = params->nameConstraints; 1.508 + 1.509 +cleanup: 1.510 + PKIX_RETURN(COMCERTSELPARAMS); 1.511 +} 1.512 + 1.513 +/* 1.514 + * FUNCTION: PKIX_ComCertSelParams_SetNameConstraints 1.515 + * (see comments in pkix_certsel.h) 1.516 + */ 1.517 +PKIX_Error * 1.518 +PKIX_ComCertSelParams_SetNameConstraints( 1.519 + PKIX_ComCertSelParams *params, 1.520 + PKIX_PL_CertNameConstraints *nameConstraints, 1.521 + void *plContext) 1.522 +{ 1.523 + PKIX_ENTER(COMCERTSELPARAMS, 1.524 + "PKIX_ComCertSelParams_SetNameConstraints"); 1.525 + PKIX_NULLCHECK_ONE(params); 1.526 + 1.527 + PKIX_DECREF(params->nameConstraints); 1.528 + PKIX_INCREF(nameConstraints); 1.529 + params->nameConstraints = nameConstraints; 1.530 + 1.531 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.532 + ((PKIX_PL_Object *)params, plContext), 1.533 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.534 + 1.535 +cleanup: 1.536 + 1.537 + PKIX_RETURN(COMCERTSELPARAMS); 1.538 +} 1.539 + 1.540 +/* 1.541 + * FUNCTION: PKIX_ComCertSelParams_GetPathToNames 1.542 + * (see comments in pkix_certsel.h) 1.543 + */PKIX_Error * 1.544 +PKIX_ComCertSelParams_GetPathToNames( 1.545 + PKIX_ComCertSelParams *params, 1.546 + PKIX_List **pNames, /* list of PKIX_PL_GeneralName */ 1.547 + void *plContext) 1.548 +{ 1.549 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetPathToNames"); 1.550 + PKIX_NULLCHECK_TWO(params, pNames); 1.551 + 1.552 + PKIX_INCREF(params->pathToNames); 1.553 + 1.554 + *pNames = params->pathToNames; 1.555 + 1.556 +cleanup: 1.557 + PKIX_RETURN(COMCERTSELPARAMS); 1.558 +} 1.559 + 1.560 +/* 1.561 + * FUNCTION: PKIX_ComCertSelParams_SetPathToNames 1.562 + * (see comments in pkix_certsel.h) 1.563 + */ 1.564 +PKIX_Error * 1.565 +PKIX_ComCertSelParams_SetPathToNames( 1.566 + PKIX_ComCertSelParams *params, 1.567 + PKIX_List *names, /* list of PKIX_PL_GeneralName */ 1.568 + void *plContext) 1.569 +{ 1.570 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetPathToNames"); 1.571 + PKIX_NULLCHECK_ONE(params); 1.572 + 1.573 + PKIX_DECREF(params->pathToNames); 1.574 + PKIX_INCREF(names); 1.575 + 1.576 + params->pathToNames = names; 1.577 + 1.578 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.579 + ((PKIX_PL_Object *)params, plContext), 1.580 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.581 + 1.582 +cleanup: 1.583 + 1.584 + PKIX_RETURN(COMCERTSELPARAMS); 1.585 +} 1.586 + 1.587 +/* 1.588 + * FUNCTION: PKIX_ComCertSelParams_AddPathToName 1.589 + * (see comments in pkix_certsel.h) 1.590 + */ 1.591 +PKIX_Error * 1.592 +PKIX_ComCertSelParams_AddPathToName( 1.593 + PKIX_ComCertSelParams *params, 1.594 + PKIX_PL_GeneralName *name, 1.595 + void *plContext) 1.596 +{ 1.597 + PKIX_List *pathToNamesList = NULL; 1.598 + 1.599 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_AddPathToName"); 1.600 + PKIX_NULLCHECK_ONE(params); 1.601 + 1.602 + if (name == NULL) { 1.603 + goto cleanup; 1.604 + } 1.605 + 1.606 + if (params->pathToNames == NULL) { 1.607 + /* Create a list for name item */ 1.608 + PKIX_CHECK(PKIX_List_Create(&pathToNamesList, plContext), 1.609 + PKIX_LISTCREATEFAILED); 1.610 + 1.611 + params->pathToNames = pathToNamesList; 1.612 + } 1.613 + 1.614 + PKIX_CHECK(PKIX_List_AppendItem 1.615 + (params->pathToNames, (PKIX_PL_Object *)name, plContext), 1.616 + PKIX_LISTAPPENDITEMFAILED); 1.617 + 1.618 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.619 + ((PKIX_PL_Object *)params, plContext), 1.620 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.621 + 1.622 +cleanup: 1.623 + 1.624 + PKIX_RETURN(COMCERTSELPARAMS); 1.625 +} 1.626 + 1.627 +/* 1.628 + * FUNCTION: PKIX_ComCertSelParams_GetSubjAltNames 1.629 + * (see comments in pkix_certsel.h) 1.630 + */ 1.631 +PKIX_Error * 1.632 +PKIX_ComCertSelParams_GetSubjAltNames( 1.633 + PKIX_ComCertSelParams *params, 1.634 + PKIX_List **pNames, /* list of PKIX_PL_GeneralName */ 1.635 + void *plContext) 1.636 +{ 1.637 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjAltNames"); 1.638 + PKIX_NULLCHECK_TWO(params, pNames); 1.639 + 1.640 + PKIX_INCREF(params->subjAltNames); 1.641 + 1.642 + *pNames = params->subjAltNames; 1.643 + 1.644 +cleanup: 1.645 + PKIX_RETURN(COMCERTSELPARAMS); 1.646 +} 1.647 + 1.648 +/* 1.649 + * FUNCTION: PKIX_ComCertSelParams_SetSubjAltNames 1.650 + * (see comments in pkix_certsel.h) 1.651 + */ 1.652 +PKIX_Error * 1.653 +PKIX_ComCertSelParams_SetSubjAltNames( 1.654 + PKIX_ComCertSelParams *params, 1.655 + PKIX_List *names, /* list of PKIX_PL_GeneralName */ 1.656 + void *plContext) 1.657 +{ 1.658 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubjAltNames"); 1.659 + PKIX_NULLCHECK_TWO(params, names); 1.660 + 1.661 + PKIX_DECREF(params->subjAltNames); 1.662 + PKIX_INCREF(names); 1.663 + 1.664 + params->subjAltNames = names; 1.665 + 1.666 +cleanup: 1.667 + PKIX_RETURN(COMCERTSELPARAMS); 1.668 +} 1.669 + 1.670 +/* 1.671 + * FUNCTION: PKIX_ComCertSelParams_AddSubjAltNames 1.672 + * (see comments in pkix_certsel.h) 1.673 + */ 1.674 +PKIX_Error * 1.675 +PKIX_ComCertSelParams_AddSubjAltName( 1.676 + PKIX_ComCertSelParams *params, 1.677 + PKIX_PL_GeneralName *name, 1.678 + void *plContext) 1.679 +{ 1.680 + PKIX_List *list = NULL; 1.681 + 1.682 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_AddSubjAltName"); 1.683 + PKIX_NULLCHECK_TWO(params, name); 1.684 + 1.685 + if (params->subjAltNames == NULL) { 1.686 + PKIX_CHECK(PKIX_List_Create(&list, plContext), 1.687 + PKIX_LISTCREATEFAILED); 1.688 + params->subjAltNames = list; 1.689 + } 1.690 + 1.691 + PKIX_CHECK(PKIX_List_AppendItem 1.692 + (params->subjAltNames, (PKIX_PL_Object *)name, plContext), 1.693 + PKIX_LISTAPPENDITEMFAILED); 1.694 + 1.695 +cleanup: 1.696 + 1.697 + PKIX_RETURN(COMCERTSELPARAMS) 1.698 +} 1.699 + 1.700 +/* 1.701 + * FUNCTION: PKIX_ComCertSelParams_GetMatchAllSubjAltNames 1.702 + * (see comments in pkix_certsel.h) 1.703 + */ 1.704 +PKIX_Error * 1.705 +PKIX_ComCertSelParams_GetMatchAllSubjAltNames( 1.706 + PKIX_ComCertSelParams *params, 1.707 + PKIX_Boolean *pMatch, 1.708 + void *plContext) 1.709 +{ 1.710 + PKIX_ENTER(COMCERTSELPARAMS, 1.711 + "PKIX_ComCertSelParams_GetMatchAllSubjAltNames"); 1.712 + PKIX_NULLCHECK_TWO(params, pMatch); 1.713 + 1.714 + *pMatch = params->matchAllSubjAltNames; 1.715 + 1.716 + PKIX_RETURN(COMCERTSELPARAMS); 1.717 +} 1.718 + 1.719 +/* 1.720 + * FUNCTION: PKIX_ComCertSelParams_SetMatchAllSubjAltNames 1.721 + * (see comments in pkix_certsel.h) 1.722 + */ 1.723 +PKIX_Error * 1.724 +PKIX_ComCertSelParams_SetMatchAllSubjAltNames( 1.725 + PKIX_ComCertSelParams *params, 1.726 + PKIX_Boolean match, 1.727 + void *plContext) 1.728 +{ 1.729 + PKIX_ENTER(COMCERTSELPARAMS, 1.730 + "PKIX_ComCertSelParams_SetMatchAllSubjAltNames"); 1.731 + PKIX_NULLCHECK_ONE(params); 1.732 + 1.733 + params->matchAllSubjAltNames = match; 1.734 + 1.735 + PKIX_RETURN(COMCERTSELPARAMS); 1.736 +} 1.737 + 1.738 +/* 1.739 + * FUNCTION: PKIX_ComCertSelParams_GetExtendedKeyUsage 1.740 + * (see comments in pkix_certsel.h) 1.741 + */ 1.742 +PKIX_Error * 1.743 +PKIX_ComCertSelParams_GetExtendedKeyUsage( 1.744 + PKIX_ComCertSelParams *params, 1.745 + PKIX_List **pExtKeyUsage, /* list of PKIX_PL_OID */ 1.746 + void *plContext) 1.747 +{ 1.748 + PKIX_ENTER(COMCERTSELPARAMS, 1.749 + "PKIX_ComCertSelParams_GetExtendedKeyUsage"); 1.750 + PKIX_NULLCHECK_TWO(params, pExtKeyUsage); 1.751 + 1.752 + PKIX_INCREF(params->extKeyUsage); 1.753 + *pExtKeyUsage = params->extKeyUsage; 1.754 + 1.755 +cleanup: 1.756 + PKIX_RETURN(COMCERTSELPARAMS); 1.757 +} 1.758 + 1.759 +/* 1.760 + * FUNCTION: PKIX_ComCertSelParams_SetExtendedKeyUsage 1.761 + * (see comments in pkix_certsel.h) 1.762 + */ 1.763 +PKIX_Error * 1.764 +PKIX_ComCertSelParams_SetExtendedKeyUsage( 1.765 + PKIX_ComCertSelParams *params, 1.766 + PKIX_List *extKeyUsage, /* list of PKIX_PL_OID */ 1.767 + void *plContext) 1.768 +{ 1.769 + PKIX_ENTER(COMCERTSELPARAMS, 1.770 + "PKIX_ComCertSelParams_SetExtendedKeyUsage"); 1.771 + PKIX_NULLCHECK_ONE(params); 1.772 + 1.773 + PKIX_DECREF(params->extKeyUsage); 1.774 + PKIX_INCREF(extKeyUsage); 1.775 + 1.776 + params->extKeyUsage = extKeyUsage; 1.777 + 1.778 +cleanup: 1.779 + PKIX_RETURN(COMCERTSELPARAMS); 1.780 +} 1.781 + 1.782 +/* 1.783 + * FUNCTION: PKIX_ComCertSelParams_GetKeyUsage 1.784 + * (see comments in pkix_certsel.h) 1.785 + */ 1.786 +PKIX_Error * 1.787 +PKIX_ComCertSelParams_GetKeyUsage( 1.788 + PKIX_ComCertSelParams *params, 1.789 + PKIX_UInt32 *pKeyUsage, 1.790 + void *plContext) 1.791 +{ 1.792 + PKIX_ENTER(COMCERTSELPARAMS, 1.793 + "PKIX_ComCertSelParams_GetKeyUsage"); 1.794 + PKIX_NULLCHECK_TWO(params, pKeyUsage); 1.795 + 1.796 + *pKeyUsage = params->keyUsage; 1.797 + 1.798 + PKIX_RETURN(COMCERTSELPARAMS); 1.799 +} 1.800 + 1.801 +/* 1.802 + * FUNCTION: PKIX_ComCertSelParams_SetKeyUsage 1.803 + * (see comments in pkix_certsel.h) 1.804 + */ 1.805 +PKIX_Error * 1.806 +PKIX_ComCertSelParams_SetKeyUsage( 1.807 + PKIX_ComCertSelParams *params, 1.808 + PKIX_UInt32 keyUsage, 1.809 + void *plContext) 1.810 +{ 1.811 + PKIX_ENTER(COMCERTSELPARAMS, 1.812 + "PKIX_ComCertSelParams_SetKeyUsage"); 1.813 + PKIX_NULLCHECK_ONE(params); 1.814 + 1.815 + params->keyUsage = keyUsage; 1.816 + 1.817 + PKIX_RETURN(COMCERTSELPARAMS); 1.818 +} 1.819 + 1.820 +/* 1.821 + * FUNCTION: PKIX_ComCertSelParams_GetIssuer 1.822 + * (see comments in pkix_certsel.h) 1.823 + */ 1.824 +PKIX_Error * 1.825 +PKIX_ComCertSelParams_GetIssuer( 1.826 + PKIX_ComCertSelParams *params, 1.827 + PKIX_PL_X500Name **pIssuer, 1.828 + void *plContext) 1.829 +{ 1.830 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetIssuer"); 1.831 + PKIX_NULLCHECK_TWO(params, pIssuer); 1.832 + 1.833 + PKIX_INCREF(params->issuer); 1.834 + *pIssuer = params->issuer; 1.835 + 1.836 +cleanup: 1.837 + PKIX_RETURN(COMCERTSELPARAMS); 1.838 +} 1.839 + 1.840 +/* 1.841 + * FUNCTION: PKIX_ComCertSelParams_SetIssuer 1.842 + * (see comments in pkix_certsel.h) 1.843 + */ 1.844 +PKIX_Error * 1.845 +PKIX_ComCertSelParams_SetIssuer( 1.846 + PKIX_ComCertSelParams *params, 1.847 + PKIX_PL_X500Name *issuer, 1.848 + void *plContext) 1.849 +{ 1.850 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetIssuer"); 1.851 + PKIX_NULLCHECK_ONE(params); 1.852 + 1.853 + PKIX_DECREF(params->issuer); 1.854 + PKIX_INCREF(issuer); 1.855 + params->issuer = issuer; 1.856 + 1.857 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.858 + ((PKIX_PL_Object *)params, plContext), 1.859 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.860 + 1.861 +cleanup: 1.862 + 1.863 + PKIX_RETURN(COMCERTSELPARAMS); 1.864 +} 1.865 + 1.866 +/* 1.867 + * FUNCTION: PKIX_ComCertSelParams_GetSerialNumber 1.868 + * (see comments in pkix_certsel.h) 1.869 + */ 1.870 +PKIX_Error * 1.871 +PKIX_ComCertSelParams_GetSerialNumber( 1.872 + PKIX_ComCertSelParams *params, 1.873 + PKIX_PL_BigInt **pSerialNumber, 1.874 + void *plContext) 1.875 +{ 1.876 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSerialNumber"); 1.877 + PKIX_NULLCHECK_TWO(params, pSerialNumber); 1.878 + 1.879 + PKIX_INCREF(params->serialNumber); 1.880 + *pSerialNumber = params->serialNumber; 1.881 + 1.882 +cleanup: 1.883 + PKIX_RETURN(COMCERTSELPARAMS); 1.884 +} 1.885 + 1.886 +/* 1.887 + * FUNCTION: PKIX_ComCertSelParams_SetSerialNumber 1.888 + * (see comments in pkix_certsel.h) 1.889 + */ 1.890 +PKIX_Error * 1.891 +PKIX_ComCertSelParams_SetSerialNumber( 1.892 + PKIX_ComCertSelParams *params, 1.893 + PKIX_PL_BigInt *serialNumber, 1.894 + void *plContext) 1.895 +{ 1.896 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSerialNumber"); 1.897 + PKIX_NULLCHECK_ONE(params); 1.898 + 1.899 + PKIX_DECREF(params->serialNumber); 1.900 + PKIX_INCREF(serialNumber); 1.901 + params->serialNumber = serialNumber; 1.902 + 1.903 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.904 + ((PKIX_PL_Object *)params, plContext), 1.905 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.906 + 1.907 +cleanup: 1.908 + 1.909 + PKIX_RETURN(COMCERTSELPARAMS); 1.910 +} 1.911 + 1.912 +/* 1.913 + * FUNCTION: PKIX_ComCertSelParams_GetVersion 1.914 + * (see comments in pkix_certsel.h) 1.915 + */ 1.916 +PKIX_Error * 1.917 +PKIX_ComCertSelParams_GetVersion( 1.918 + PKIX_ComCertSelParams *params, 1.919 + PKIX_UInt32 *pVersion, 1.920 + void *plContext) 1.921 +{ 1.922 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetVersion"); 1.923 + PKIX_NULLCHECK_TWO(params, pVersion); 1.924 + 1.925 + *pVersion = params->version; 1.926 + 1.927 + PKIX_RETURN(COMCERTSELPARAMS); 1.928 +} 1.929 + 1.930 +/* 1.931 + * FUNCTION: PKIX_ComCertSelParams_SetVersion 1.932 + * (see comments in pkix_certsel.h) 1.933 + */ 1.934 +PKIX_Error * 1.935 +PKIX_ComCertSelParams_SetVersion( 1.936 + PKIX_ComCertSelParams *params, 1.937 + PKIX_Int32 version, 1.938 + void *plContext) 1.939 +{ 1.940 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetVersion"); 1.941 + PKIX_NULLCHECK_ONE(params); 1.942 + 1.943 + params->version = version; 1.944 + 1.945 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.946 + ((PKIX_PL_Object *)params, plContext), 1.947 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.948 + 1.949 +cleanup: 1.950 + 1.951 + PKIX_RETURN(COMCERTSELPARAMS); 1.952 +} 1.953 + 1.954 +/* 1.955 + * FUNCTION: PKIX_ComCertSelParams_GetSubjKeyIdentifier 1.956 + * (see comments in pkix_certsel.h) 1.957 + */ 1.958 +PKIX_Error * 1.959 +PKIX_ComCertSelParams_GetSubjKeyIdentifier( 1.960 + PKIX_ComCertSelParams *params, 1.961 + PKIX_PL_ByteArray **pSubjKeyId, 1.962 + void *plContext) 1.963 +{ 1.964 + PKIX_ENTER(COMCERTSELPARAMS, 1.965 + "PKIX_ComCertSelParams_GetSubjKeyIdentifier"); 1.966 + PKIX_NULLCHECK_TWO(params, pSubjKeyId); 1.967 + 1.968 + PKIX_INCREF(params->subjKeyId); 1.969 + 1.970 + *pSubjKeyId = params->subjKeyId; 1.971 + 1.972 +cleanup: 1.973 + PKIX_RETURN(COMCERTSELPARAMS); 1.974 +} 1.975 + 1.976 +/* 1.977 + * FUNCTION: PKIX_ComCertSelParams_SetSubjKeyIdentifier 1.978 + * (see comments in pkix_certsel.h) 1.979 + */ 1.980 +PKIX_Error * 1.981 +PKIX_ComCertSelParams_SetSubjKeyIdentifier( 1.982 + PKIX_ComCertSelParams *params, 1.983 + PKIX_PL_ByteArray *subjKeyId, 1.984 + void *plContext) 1.985 +{ 1.986 + PKIX_ENTER(COMCERTSELPARAMS, 1.987 + "PKIX_ComCertSelParams_SetSubjKeyIdentifier"); 1.988 + PKIX_NULLCHECK_ONE(params); 1.989 + 1.990 + PKIX_DECREF(params->subjKeyId); 1.991 + PKIX_INCREF(subjKeyId); 1.992 + 1.993 + params->subjKeyId = subjKeyId; 1.994 + 1.995 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.996 + ((PKIX_PL_Object *)params, plContext), 1.997 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.998 + 1.999 +cleanup: 1.1000 + 1.1001 + PKIX_RETURN(COMCERTSELPARAMS); 1.1002 +} 1.1003 + 1.1004 +/* 1.1005 + * FUNCTION: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier 1.1006 + * (see comments in pkix_certsel.h) 1.1007 + */ 1.1008 +PKIX_Error * 1.1009 +PKIX_ComCertSelParams_GetAuthorityKeyIdentifier( 1.1010 + PKIX_ComCertSelParams *params, 1.1011 + PKIX_PL_ByteArray **pAuthKeyId, 1.1012 + void *plContext) 1.1013 +{ 1.1014 + PKIX_ENTER(COMCERTSELPARAMS, 1.1015 + "PKIX_ComCertSelParams_GetAuthorityKeyIdentifier"); 1.1016 + PKIX_NULLCHECK_TWO(params, pAuthKeyId); 1.1017 + 1.1018 + PKIX_INCREF(params->authKeyId); 1.1019 + 1.1020 + *pAuthKeyId = params->authKeyId; 1.1021 + 1.1022 +cleanup: 1.1023 + PKIX_RETURN(COMCERTSELPARAMS); 1.1024 +} 1.1025 + 1.1026 +/* 1.1027 + * FUNCTION: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier 1.1028 + * (see comments in pkix_certsel.h) 1.1029 + */ 1.1030 +PKIX_Error * 1.1031 +PKIX_ComCertSelParams_SetAuthorityKeyIdentifier( 1.1032 + PKIX_ComCertSelParams *params, 1.1033 + PKIX_PL_ByteArray *authKeyId, 1.1034 + void *plContext) 1.1035 +{ 1.1036 + PKIX_ENTER(COMCERTSELPARAMS, 1.1037 + "PKIX_ComCertSelParams_SetAuthKeyIdentifier"); 1.1038 + PKIX_NULLCHECK_ONE(params); 1.1039 + 1.1040 + PKIX_DECREF(params->authKeyId); 1.1041 + PKIX_INCREF(authKeyId); 1.1042 + 1.1043 + params->authKeyId = authKeyId; 1.1044 + 1.1045 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.1046 + ((PKIX_PL_Object *)params, plContext), 1.1047 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.1048 + 1.1049 +cleanup: 1.1050 + 1.1051 + PKIX_RETURN(COMCERTSELPARAMS); 1.1052 +} 1.1053 + 1.1054 +/* 1.1055 + * FUNCTION: PKIX_ComCertSelParams_GetSubjPubKey 1.1056 + * (see comments in pkix_certsel.h) 1.1057 + */ 1.1058 +PKIX_Error * 1.1059 +PKIX_ComCertSelParams_GetSubjPubKey( 1.1060 + PKIX_ComCertSelParams *params, 1.1061 + PKIX_PL_PublicKey **pSubjPubKey, 1.1062 + void *plContext) 1.1063 +{ 1.1064 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjPubKey"); 1.1065 + PKIX_NULLCHECK_TWO(params, pSubjPubKey); 1.1066 + 1.1067 + PKIX_INCREF(params->subjPubKey); 1.1068 + 1.1069 + *pSubjPubKey = params->subjPubKey; 1.1070 + 1.1071 +cleanup: 1.1072 + PKIX_RETURN(COMCERTSELPARAMS); 1.1073 +} 1.1074 + 1.1075 +/* 1.1076 + * FUNCTION: PKIX_ComCertSelParams_SetSubjPubKey 1.1077 + * (see comments in pkix_certsel.h) 1.1078 + */ 1.1079 +PKIX_Error * 1.1080 +PKIX_ComCertSelParams_SetSubjPubKey( 1.1081 + PKIX_ComCertSelParams *params, 1.1082 + PKIX_PL_PublicKey *subjPubKey, 1.1083 + void *plContext) 1.1084 +{ 1.1085 + PKIX_ENTER(COMCERTSELPARAMS, 1.1086 + "PKIX_ComCertSelParams_SetSubjPubKey"); 1.1087 + PKIX_NULLCHECK_ONE(params); 1.1088 + 1.1089 + PKIX_DECREF(params->subjPubKey); 1.1090 + PKIX_INCREF(subjPubKey); 1.1091 + 1.1092 + params->subjPubKey = subjPubKey; 1.1093 + 1.1094 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.1095 + ((PKIX_PL_Object *)params, plContext), 1.1096 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.1097 + 1.1098 +cleanup: 1.1099 + 1.1100 + PKIX_RETURN(COMCERTSELPARAMS); 1.1101 +} 1.1102 + 1.1103 +/* 1.1104 + * FUNCTION: PKIX_ComCertSelParams_GetSubjPKAlgId 1.1105 + * (see comments in pkix_certsel.h) 1.1106 + */ 1.1107 +PKIX_Error * 1.1108 +PKIX_ComCertSelParams_GetSubjPKAlgId( 1.1109 + PKIX_ComCertSelParams *params, 1.1110 + PKIX_PL_OID **pAlgId, 1.1111 + void *plContext) 1.1112 +{ 1.1113 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjPKAlgId"); 1.1114 + PKIX_NULLCHECK_TWO(params, pAlgId); 1.1115 + 1.1116 + PKIX_INCREF(params->subjPKAlgId); 1.1117 + 1.1118 + *pAlgId = params->subjPKAlgId; 1.1119 + 1.1120 +cleanup: 1.1121 + PKIX_RETURN(COMCERTSELPARAMS); 1.1122 +} 1.1123 + 1.1124 +/* 1.1125 + * FUNCTION: PKIX_ComCertSelParams_SetSubjPKAlgId 1.1126 + * (see comments in pkix_certsel.h) 1.1127 + */ 1.1128 +PKIX_Error * 1.1129 +PKIX_ComCertSelParams_SetSubjPKAlgId( 1.1130 + PKIX_ComCertSelParams *params, 1.1131 + PKIX_PL_OID *algId, 1.1132 + void *plContext) 1.1133 +{ 1.1134 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubjPKAlgId"); 1.1135 + PKIX_NULLCHECK_ONE(params); 1.1136 + 1.1137 + PKIX_DECREF(params->subjPKAlgId); 1.1138 + PKIX_INCREF(algId); 1.1139 + 1.1140 + params->subjPKAlgId = algId; 1.1141 + 1.1142 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.1143 + ((PKIX_PL_Object *)params, plContext), 1.1144 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.1145 + 1.1146 +cleanup: 1.1147 + 1.1148 + PKIX_RETURN(COMCERTSELPARAMS); 1.1149 +} 1.1150 + 1.1151 +/* 1.1152 + * FUNCTION: PKIX_ComCertSelParams_GetLeafCertFlag 1.1153 + * (see comments in pkix_certsel.h) 1.1154 + */ 1.1155 +PKIX_Error* 1.1156 +PKIX_ComCertSelParams_GetLeafCertFlag( 1.1157 + PKIX_ComCertSelParams *params, 1.1158 + PKIX_Boolean *pLeafFlag, 1.1159 + void *plContext) 1.1160 +{ 1.1161 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetLeafCertFlag"); 1.1162 + PKIX_NULLCHECK_TWO(params, pLeafFlag); 1.1163 + 1.1164 + *pLeafFlag = params->leafCertFlag; 1.1165 + 1.1166 + PKIX_RETURN(COMCERTSELPARAMS); 1.1167 +} 1.1168 + 1.1169 +/* 1.1170 + * FUNCTION: PKIX_ComCertSelParams_SetLeafCertFlag 1.1171 + * (see comments in pkix_certsel.h) 1.1172 + */ 1.1173 +PKIX_Error * 1.1174 +PKIX_ComCertSelParams_SetLeafCertFlag( 1.1175 + PKIX_ComCertSelParams *params, 1.1176 + PKIX_Boolean leafFlag, 1.1177 + void *plContext) 1.1178 +{ 1.1179 + PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetLeafCertFlag"); 1.1180 + PKIX_NULLCHECK_ONE(params); 1.1181 + 1.1182 + params->leafCertFlag = leafFlag; 1.1183 + 1.1184 + PKIX_CHECK(PKIX_PL_Object_InvalidateCache 1.1185 + ((PKIX_PL_Object *)params, plContext), 1.1186 + PKIX_OBJECTINVALIDATECACHEFAILED); 1.1187 + 1.1188 +cleanup: 1.1189 + 1.1190 + PKIX_RETURN(COMCERTSELPARAMS); 1.1191 +}