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_policynode.h michael@0: * michael@0: * PolicyNode Type Definitions michael@0: * michael@0: */ michael@0: michael@0: #ifndef _PKIX_POLICYNODE_H michael@0: #define _PKIX_POLICYNODE_H michael@0: michael@0: #include "pkix_tools.h" michael@0: michael@0: #ifdef __cplusplus michael@0: extern "C" { michael@0: #endif michael@0: michael@0: /* This structure reflects the contents of a policy node... michael@0: */ michael@0: struct PKIX_PolicyNodeStruct { michael@0: PKIX_PL_OID *validPolicy; michael@0: PKIX_List *qualifierSet; /* CertPolicyQualifiers */ michael@0: PKIX_Boolean criticality; michael@0: PKIX_List *expectedPolicySet; /* OIDs */ michael@0: PKIX_PolicyNode *parent; michael@0: PKIX_List *children; /* PolicyNodes */ michael@0: PKIX_UInt32 depth; michael@0: }; michael@0: michael@0: PKIX_Error * michael@0: pkix_SinglePolicyNode_ToString( michael@0: PKIX_PolicyNode *node, michael@0: PKIX_PL_String **pString, michael@0: void *plContext); michael@0: michael@0: PKIX_Error * michael@0: pkix_PolicyNode_GetChildrenMutable( michael@0: PKIX_PolicyNode *node, michael@0: PKIX_List **pChildren, /* PolicyNodes */ michael@0: void *plContext); michael@0: michael@0: PKIX_Error * michael@0: pkix_PolicyNode_Create( michael@0: PKIX_PL_OID *validPolicy, michael@0: PKIX_List *qualifierSet, /* CertPolicyQualifiers */ michael@0: PKIX_Boolean criticality, michael@0: PKIX_List *expectedPolicySet, /* OIDs */ michael@0: PKIX_PolicyNode **pObject, michael@0: void *plContext); michael@0: michael@0: PKIX_Error * michael@0: pkix_PolicyNode_AddToParent( michael@0: PKIX_PolicyNode *parentNode, michael@0: PKIX_PolicyNode *child, michael@0: void *plContext); michael@0: michael@0: PKIX_Error * michael@0: pkix_PolicyNode_Prune( michael@0: PKIX_PolicyNode *node, michael@0: PKIX_UInt32 depth, michael@0: PKIX_Boolean *pDelete, michael@0: void *plContext); michael@0: michael@0: PKIX_Error * michael@0: pkix_PolicyNode_RegisterSelf( michael@0: void *plContext); michael@0: michael@0: #ifdef __cplusplus michael@0: } michael@0: #endif michael@0: michael@0: #endif /* _PKIX_POLICYNODE_H */