pkix_policychecker.h (2451B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 /* 5 * pkix_policychecker.h 6 * 7 * Header file for policy checker. 8 * 9 */ 10 11 #ifndef _PKIX_POLICYCHECKER_H 12 #define _PKIX_POLICYCHECKER_H 13 14 #include "pkix_tools.h" 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 typedef struct PKIX_PolicyCheckerStateStruct PKIX_PolicyCheckerState; 21 22 struct PKIX_PolicyCheckerStateStruct{ 23 PKIX_PL_OID *certPoliciesExtension; /* const */ 24 PKIX_PL_OID *policyMappingsExtension; /* const */ 25 PKIX_PL_OID *policyConstraintsExtension; /* const */ 26 PKIX_PL_OID *inhibitAnyPolicyExtension; /* const */ 27 PKIX_PL_OID *anyPolicyOID; /* const */ 28 PKIX_Boolean initialIsAnyPolicy; /* const */ 29 PKIX_PolicyNode *validPolicyTree; 30 PKIX_List *userInitialPolicySet; /* immutable */ 31 PKIX_List *mappedUserInitialPolicySet; 32 PKIX_Boolean policyQualifiersRejected; 33 PKIX_Boolean initialPolicyMappingInhibit; 34 PKIX_Boolean initialExplicitPolicy; 35 PKIX_Boolean initialAnyPolicyInhibit; 36 PKIX_UInt32 explicitPolicy; 37 PKIX_UInt32 inhibitAnyPolicy; 38 PKIX_UInt32 policyMapping; 39 PKIX_UInt32 numCerts; 40 PKIX_UInt32 certsProcessed; 41 PKIX_PolicyNode *anyPolicyNodeAtBottom; 42 PKIX_PolicyNode *newAnyPolicyNode; 43 /* 44 * The following variables do not survive from one 45 * certificate to the next. They are needed at each 46 * level of recursive routines, any by placing them 47 * in the state object we can pass fewer arguments. 48 */ 49 PKIX_Boolean certPoliciesCritical; 50 PKIX_List *mappedPolicyOIDs; 51 }; 52 53 PKIX_Error * 54 pkix_PolicyChecker_Initialize( 55 PKIX_List *initialPolicies, 56 PKIX_Boolean policyQualifiersRejected, 57 PKIX_Boolean initialPolicyMappingInhibit, 58 PKIX_Boolean initialExplicitPolicy, 59 PKIX_Boolean initialAnyPolicyInhibit, 60 PKIX_UInt32 numCerts, 61 PKIX_CertChainChecker **pChecker, 62 void *plContext); 63 64 /* --Private-Functions-------------------------------------------- */ 65 66 PKIX_Error * 67 pkix_PolicyCheckerState_RegisterSelf(void *plContext); 68 69 #ifdef __cplusplus 70 } 71 #endif 72 73 #endif /* _PKIX_POLICYCHECKER_H */