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