tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 */