andre@0: /* This Source Code Form is subject to the terms of the Mozilla Public andre@0: * License, v. 2.0. If a copy of the MPL was not distributed with this andre@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ andre@0: /* andre@0: * pkix_comcertselparams.c andre@0: * andre@0: * ComCertSelParams Object Functions andre@0: * andre@0: */ andre@0: andre@0: #include "pkix_comcertselparams.h" andre@0: andre@0: /* --Private-Functions-------------------------------------------- */ andre@0: andre@0: /* andre@0: * FUNCTION: pkix_ComCertSelParams_Destroy andre@0: * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h) andre@0: */ andre@0: static PKIX_Error * andre@0: pkix_ComCertSelParams_Destroy( andre@0: PKIX_PL_Object *object, andre@0: void *plContext) andre@0: { andre@0: PKIX_ComCertSelParams *params = NULL; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_Destroy"); andre@0: PKIX_NULLCHECK_ONE(object); andre@0: andre@0: /* Check that this object is a comCertSelParams object */ andre@0: PKIX_CHECK(pkix_CheckType andre@0: (object, PKIX_COMCERTSELPARAMS_TYPE, plContext), andre@0: PKIX_OBJECTNOTCOMCERTSELPARAMS); andre@0: andre@0: params = (PKIX_ComCertSelParams *)object; andre@0: andre@0: PKIX_DECREF(params->subject); andre@0: PKIX_DECREF(params->policies); andre@0: PKIX_DECREF(params->cert); andre@0: PKIX_DECREF(params->nameConstraints); andre@0: PKIX_DECREF(params->pathToNames); andre@0: PKIX_DECREF(params->subjAltNames); andre@0: PKIX_DECREF(params->date); andre@0: PKIX_DECREF(params->extKeyUsage); andre@0: PKIX_DECREF(params->certValid); andre@0: PKIX_DECREF(params->issuer); andre@0: PKIX_DECREF(params->serialNumber); andre@0: PKIX_DECREF(params->authKeyId); andre@0: PKIX_DECREF(params->subjKeyId); andre@0: PKIX_DECREF(params->subjPubKey); andre@0: PKIX_DECREF(params->subjPKAlgId); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: pkix_ComCertSelParams_Duplicate andre@0: * (see comments for PKIX_PL_DuplicateCallback in pkix_pl_system.h) andre@0: */ andre@0: static PKIX_Error * andre@0: pkix_ComCertSelParams_Duplicate( andre@0: PKIX_PL_Object *object, andre@0: PKIX_PL_Object **pNewObject, andre@0: void *plContext) andre@0: { andre@0: PKIX_ComCertSelParams *params = NULL; andre@0: PKIX_ComCertSelParams *paramsDuplicate = NULL; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_Duplicate"); andre@0: PKIX_NULLCHECK_TWO(object, pNewObject); andre@0: andre@0: PKIX_CHECK(pkix_CheckType andre@0: (object, PKIX_COMCERTSELPARAMS_TYPE, plContext), andre@0: PKIX_OBJECTNOTCOMCERTSELPARAMS); andre@0: andre@0: params = (PKIX_ComCertSelParams *)object; andre@0: andre@0: PKIX_CHECK(PKIX_ComCertSelParams_Create(¶msDuplicate, plContext), andre@0: PKIX_COMCERTSELPARAMSCREATEFAILED); andre@0: andre@0: paramsDuplicate->minPathLength = params->minPathLength; andre@0: paramsDuplicate->matchAllSubjAltNames = params->matchAllSubjAltNames; andre@0: andre@0: PKIX_DUPLICATE(params->subject, ¶msDuplicate->subject, plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->policies, ¶msDuplicate->policies, plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: if (params->cert){ andre@0: PKIX_CHECK(PKIX_PL_Object_Duplicate andre@0: ((PKIX_PL_Object *)params->cert, andre@0: (PKIX_PL_Object **)¶msDuplicate->cert, andre@0: plContext), andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: } andre@0: andre@0: PKIX_DUPLICATE andre@0: (params->nameConstraints, andre@0: ¶msDuplicate->nameConstraints, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE andre@0: (params->pathToNames, andre@0: ¶msDuplicate->pathToNames, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE andre@0: (params->subjAltNames, andre@0: ¶msDuplicate->subjAltNames, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: if (params->date){ andre@0: PKIX_CHECK(PKIX_PL_Object_Duplicate andre@0: ((PKIX_PL_Object *)params->date, andre@0: (PKIX_PL_Object **)¶msDuplicate->date, andre@0: plContext), andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: } andre@0: andre@0: paramsDuplicate->keyUsage = params->keyUsage; andre@0: andre@0: PKIX_DUPLICATE(params->certValid, andre@0: ¶msDuplicate->certValid, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->issuer, andre@0: ¶msDuplicate->issuer, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->serialNumber, andre@0: ¶msDuplicate->serialNumber, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->authKeyId, andre@0: ¶msDuplicate->authKeyId, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->subjKeyId, andre@0: ¶msDuplicate->subjKeyId, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->subjPubKey, andre@0: ¶msDuplicate->subjPubKey, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: PKIX_DUPLICATE(params->subjPKAlgId, andre@0: ¶msDuplicate->subjPKAlgId, andre@0: plContext, andre@0: PKIX_OBJECTDUPLICATEFAILED); andre@0: andre@0: paramsDuplicate->leafCertFlag = params->leafCertFlag; andre@0: andre@0: *pNewObject = (PKIX_PL_Object *)paramsDuplicate; andre@0: andre@0: cleanup: andre@0: andre@0: if (PKIX_ERROR_RECEIVED){ andre@0: PKIX_DECREF(paramsDuplicate); andre@0: } andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: pkix_ComCertSelParams_RegisterSelf andre@0: * DESCRIPTION: andre@0: * Registers PKIX_COMCERTSELPARAMS_TYPE and its related functions with andre@0: * systemClasses[] andre@0: * THREAD SAFETY: andre@0: * Not Thread Safe - for performance and complexity reasons andre@0: * andre@0: * Since this function is only called by PKIX_PL_Initialize, which should andre@0: * only be called once, it is acceptable that this function is not andre@0: * thread-safe. andre@0: */ andre@0: PKIX_Error * andre@0: pkix_ComCertSelParams_RegisterSelf(void *plContext) andre@0: { andre@0: extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES]; andre@0: pkix_ClassTable_Entry* entry = &systemClasses[PKIX_COMCERTSELPARAMS_TYPE]; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "pkix_ComCertSelParams_RegisterSelf"); andre@0: andre@0: entry->description = "ComCertSelParams"; andre@0: entry->typeObjectSize = sizeof(PKIX_ComCertSelParams); andre@0: entry->destructor = pkix_ComCertSelParams_Destroy; andre@0: entry->duplicateFunction = pkix_ComCertSelParams_Duplicate; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* --Public-Functions--------------------------------------------- */ andre@0: andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_Create (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_Create( andre@0: PKIX_ComCertSelParams **pParams, andre@0: void *plContext) andre@0: { andre@0: PKIX_ComCertSelParams *params = NULL; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_Create"); andre@0: PKIX_NULLCHECK_ONE(pParams); andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_Alloc andre@0: (PKIX_COMCERTSELPARAMS_TYPE, andre@0: sizeof (PKIX_ComCertSelParams), andre@0: (PKIX_PL_Object **)¶ms, andre@0: plContext), andre@0: PKIX_COULDNOTCREATECOMMONCERTSELPARAMSOBJECT); andre@0: andre@0: /* initialize fields */ andre@0: params->version = 0xFFFFFFFF; andre@0: params->minPathLength = -1; andre@0: params->matchAllSubjAltNames = PKIX_TRUE; andre@0: params->subject = NULL; andre@0: params->policies = NULL; andre@0: params->cert = NULL; andre@0: params->nameConstraints = NULL; andre@0: params->pathToNames = NULL; andre@0: params->subjAltNames = NULL; andre@0: params->extKeyUsage = NULL; andre@0: params->keyUsage = 0; andre@0: params->extKeyUsage = NULL; andre@0: params->keyUsage = 0; andre@0: params->date = NULL; andre@0: params->certValid = NULL; andre@0: params->issuer = NULL; andre@0: params->serialNumber = NULL; andre@0: params->authKeyId = NULL; andre@0: params->subjKeyId = NULL; andre@0: params->subjPubKey = NULL; andre@0: params->subjPKAlgId = NULL; andre@0: params->leafCertFlag = PKIX_FALSE; andre@0: andre@0: *pParams = params; andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSubject (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSubject( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_X500Name **pSubject, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubject"); andre@0: PKIX_NULLCHECK_TWO(params, pSubject); andre@0: andre@0: PKIX_INCREF(params->subject); andre@0: andre@0: *pSubject = params->subject; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSubject (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSubject( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_X500Name *subject, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubject"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->subject); andre@0: andre@0: PKIX_INCREF(subject); andre@0: andre@0: params->subject = subject; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetBasicConstraints andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetBasicConstraints( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Int32 *pMinPathLength, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetBasicConstraints"); andre@0: PKIX_NULLCHECK_TWO(params, pMinPathLength); andre@0: andre@0: *pMinPathLength = params->minPathLength; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetBasicConstraints andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetBasicConstraints( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Int32 minPathLength, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetBasicConstraints"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: params->minPathLength = minPathLength; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetPolicy (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetPolicy( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List **pPolicy, /* List of PKIX_PL_OID */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetPolicy"); andre@0: PKIX_NULLCHECK_TWO(params, pPolicy); andre@0: andre@0: PKIX_INCREF(params->policies); andre@0: *pPolicy = params->policies; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetPolicy (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetPolicy( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List *policy, /* List of PKIX_PL_OID */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetPolicy"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->policies); andre@0: PKIX_INCREF(policy); andre@0: params->policies = policy; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetCertificate andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetCertificate( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_Cert **pCert, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetCertificate"); andre@0: PKIX_NULLCHECK_TWO(params, pCert); andre@0: andre@0: PKIX_INCREF(params->cert); andre@0: *pCert = params->cert; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetCertificate andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetCertificate( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_Cert *cert, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetCertificate"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->cert); andre@0: PKIX_INCREF(cert); andre@0: params->cert = cert; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetCertificateValid andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetCertificateValid( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_Date **pDate, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetCertificateValid"); andre@0: andre@0: PKIX_NULLCHECK_TWO(params, pDate); andre@0: andre@0: PKIX_INCREF(params->date); andre@0: *pDate = params->date; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetCertificateValid andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetCertificateValid( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_Date *date, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetCertificateValid"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->date); andre@0: PKIX_INCREF(date); andre@0: params->date = date; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetNameConstraints andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetNameConstraints( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_CertNameConstraints **pNameConstraints, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetNameConstraints"); andre@0: PKIX_NULLCHECK_TWO(params, pNameConstraints); andre@0: andre@0: PKIX_INCREF(params->nameConstraints); andre@0: andre@0: *pNameConstraints = params->nameConstraints; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetNameConstraints andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetNameConstraints( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_CertNameConstraints *nameConstraints, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetNameConstraints"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->nameConstraints); andre@0: PKIX_INCREF(nameConstraints); andre@0: params->nameConstraints = nameConstraints; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetPathToNames andre@0: * (see comments in pkix_certsel.h) andre@0: */PKIX_Error * andre@0: PKIX_ComCertSelParams_GetPathToNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List **pNames, /* list of PKIX_PL_GeneralName */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetPathToNames"); andre@0: PKIX_NULLCHECK_TWO(params, pNames); andre@0: andre@0: PKIX_INCREF(params->pathToNames); andre@0: andre@0: *pNames = params->pathToNames; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetPathToNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetPathToNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List *names, /* list of PKIX_PL_GeneralName */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetPathToNames"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->pathToNames); andre@0: PKIX_INCREF(names); andre@0: andre@0: params->pathToNames = names; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_AddPathToName andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_AddPathToName( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_GeneralName *name, andre@0: void *plContext) andre@0: { andre@0: PKIX_List *pathToNamesList = NULL; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_AddPathToName"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: if (name == NULL) { andre@0: goto cleanup; andre@0: } andre@0: andre@0: if (params->pathToNames == NULL) { andre@0: /* Create a list for name item */ andre@0: PKIX_CHECK(PKIX_List_Create(&pathToNamesList, plContext), andre@0: PKIX_LISTCREATEFAILED); andre@0: andre@0: params->pathToNames = pathToNamesList; andre@0: } andre@0: andre@0: PKIX_CHECK(PKIX_List_AppendItem andre@0: (params->pathToNames, (PKIX_PL_Object *)name, plContext), andre@0: PKIX_LISTAPPENDITEMFAILED); andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSubjAltNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSubjAltNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List **pNames, /* list of PKIX_PL_GeneralName */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjAltNames"); andre@0: PKIX_NULLCHECK_TWO(params, pNames); andre@0: andre@0: PKIX_INCREF(params->subjAltNames); andre@0: andre@0: *pNames = params->subjAltNames; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSubjAltNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSubjAltNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List *names, /* list of PKIX_PL_GeneralName */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubjAltNames"); andre@0: PKIX_NULLCHECK_TWO(params, names); andre@0: andre@0: PKIX_DECREF(params->subjAltNames); andre@0: PKIX_INCREF(names); andre@0: andre@0: params->subjAltNames = names; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_AddSubjAltNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_AddSubjAltName( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_GeneralName *name, andre@0: void *plContext) andre@0: { andre@0: PKIX_List *list = NULL; andre@0: andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_AddSubjAltName"); andre@0: PKIX_NULLCHECK_TWO(params, name); andre@0: andre@0: if (params->subjAltNames == NULL) { andre@0: PKIX_CHECK(PKIX_List_Create(&list, plContext), andre@0: PKIX_LISTCREATEFAILED); andre@0: params->subjAltNames = list; andre@0: } andre@0: andre@0: PKIX_CHECK(PKIX_List_AppendItem andre@0: (params->subjAltNames, (PKIX_PL_Object *)name, plContext), andre@0: PKIX_LISTAPPENDITEMFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS) andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetMatchAllSubjAltNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetMatchAllSubjAltNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Boolean *pMatch, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetMatchAllSubjAltNames"); andre@0: PKIX_NULLCHECK_TWO(params, pMatch); andre@0: andre@0: *pMatch = params->matchAllSubjAltNames; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetMatchAllSubjAltNames andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetMatchAllSubjAltNames( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Boolean match, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetMatchAllSubjAltNames"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: params->matchAllSubjAltNames = match; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetExtendedKeyUsage andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetExtendedKeyUsage( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List **pExtKeyUsage, /* list of PKIX_PL_OID */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetExtendedKeyUsage"); andre@0: PKIX_NULLCHECK_TWO(params, pExtKeyUsage); andre@0: andre@0: PKIX_INCREF(params->extKeyUsage); andre@0: *pExtKeyUsage = params->extKeyUsage; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetExtendedKeyUsage andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetExtendedKeyUsage( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_List *extKeyUsage, /* list of PKIX_PL_OID */ andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetExtendedKeyUsage"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->extKeyUsage); andre@0: PKIX_INCREF(extKeyUsage); andre@0: andre@0: params->extKeyUsage = extKeyUsage; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetKeyUsage andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetKeyUsage( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_UInt32 *pKeyUsage, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetKeyUsage"); andre@0: PKIX_NULLCHECK_TWO(params, pKeyUsage); andre@0: andre@0: *pKeyUsage = params->keyUsage; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetKeyUsage andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetKeyUsage( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_UInt32 keyUsage, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetKeyUsage"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: params->keyUsage = keyUsage; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetIssuer andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetIssuer( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_X500Name **pIssuer, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetIssuer"); andre@0: PKIX_NULLCHECK_TWO(params, pIssuer); andre@0: andre@0: PKIX_INCREF(params->issuer); andre@0: *pIssuer = params->issuer; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetIssuer andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetIssuer( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_X500Name *issuer, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetIssuer"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->issuer); andre@0: PKIX_INCREF(issuer); andre@0: params->issuer = issuer; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSerialNumber andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSerialNumber( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_BigInt **pSerialNumber, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSerialNumber"); andre@0: PKIX_NULLCHECK_TWO(params, pSerialNumber); andre@0: andre@0: PKIX_INCREF(params->serialNumber); andre@0: *pSerialNumber = params->serialNumber; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSerialNumber andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSerialNumber( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_BigInt *serialNumber, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSerialNumber"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->serialNumber); andre@0: PKIX_INCREF(serialNumber); andre@0: params->serialNumber = serialNumber; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetVersion andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetVersion( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_UInt32 *pVersion, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetVersion"); andre@0: PKIX_NULLCHECK_TWO(params, pVersion); andre@0: andre@0: *pVersion = params->version; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetVersion andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetVersion( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Int32 version, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetVersion"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: params->version = version; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSubjKeyIdentifier andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSubjKeyIdentifier( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_ByteArray **pSubjKeyId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetSubjKeyIdentifier"); andre@0: PKIX_NULLCHECK_TWO(params, pSubjKeyId); andre@0: andre@0: PKIX_INCREF(params->subjKeyId); andre@0: andre@0: *pSubjKeyId = params->subjKeyId; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSubjKeyIdentifier andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSubjKeyIdentifier( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_ByteArray *subjKeyId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetSubjKeyIdentifier"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->subjKeyId); andre@0: PKIX_INCREF(subjKeyId); andre@0: andre@0: params->subjKeyId = subjKeyId; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_ByteArray **pAuthKeyId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_GetAuthorityKeyIdentifier"); andre@0: PKIX_NULLCHECK_TWO(params, pAuthKeyId); andre@0: andre@0: PKIX_INCREF(params->authKeyId); andre@0: andre@0: *pAuthKeyId = params->authKeyId; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_ByteArray *authKeyId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetAuthKeyIdentifier"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->authKeyId); andre@0: PKIX_INCREF(authKeyId); andre@0: andre@0: params->authKeyId = authKeyId; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSubjPubKey andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSubjPubKey( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_PublicKey **pSubjPubKey, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjPubKey"); andre@0: PKIX_NULLCHECK_TWO(params, pSubjPubKey); andre@0: andre@0: PKIX_INCREF(params->subjPubKey); andre@0: andre@0: *pSubjPubKey = params->subjPubKey; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSubjPubKey andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSubjPubKey( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_PublicKey *subjPubKey, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, andre@0: "PKIX_ComCertSelParams_SetSubjPubKey"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->subjPubKey); andre@0: PKIX_INCREF(subjPubKey); andre@0: andre@0: params->subjPubKey = subjPubKey; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetSubjPKAlgId andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_GetSubjPKAlgId( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_OID **pAlgId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetSubjPKAlgId"); andre@0: PKIX_NULLCHECK_TWO(params, pAlgId); andre@0: andre@0: PKIX_INCREF(params->subjPKAlgId); andre@0: andre@0: *pAlgId = params->subjPKAlgId; andre@0: andre@0: cleanup: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetSubjPKAlgId andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetSubjPKAlgId( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_PL_OID *algId, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetSubjPKAlgId"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: PKIX_DECREF(params->subjPKAlgId); andre@0: PKIX_INCREF(algId); andre@0: andre@0: params->subjPKAlgId = algId; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_GetLeafCertFlag andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error* andre@0: PKIX_ComCertSelParams_GetLeafCertFlag( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Boolean *pLeafFlag, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_GetLeafCertFlag"); andre@0: PKIX_NULLCHECK_TWO(params, pLeafFlag); andre@0: andre@0: *pLeafFlag = params->leafCertFlag; andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: } andre@0: andre@0: /* andre@0: * FUNCTION: PKIX_ComCertSelParams_SetLeafCertFlag andre@0: * (see comments in pkix_certsel.h) andre@0: */ andre@0: PKIX_Error * andre@0: PKIX_ComCertSelParams_SetLeafCertFlag( andre@0: PKIX_ComCertSelParams *params, andre@0: PKIX_Boolean leafFlag, andre@0: void *plContext) andre@0: { andre@0: PKIX_ENTER(COMCERTSELPARAMS, "PKIX_ComCertSelParams_SetLeafCertFlag"); andre@0: PKIX_NULLCHECK_ONE(params); andre@0: andre@0: params->leafCertFlag = leafFlag; andre@0: andre@0: PKIX_CHECK(PKIX_PL_Object_InvalidateCache andre@0: ((PKIX_PL_Object *)params, plContext), andre@0: PKIX_OBJECTINVALIDATECACHEFAILED); andre@0: andre@0: cleanup: andre@0: andre@0: PKIX_RETURN(COMCERTSELPARAMS); andre@0: }