security/nss/lib/libpkix/pkix/top/pkix_build.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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_build.h
     6  *
     7  * Header file for buildChain function
     8  *
     9  */
    11 #ifndef _PKIX_BUILD_H
    12 #define _PKIX_BUILD_H
    13 #include "pkix_tools.h"
    14 #ifndef NSS_PKIX_NO_LDAP
    15 #include "pkix_pl_ldapt.h"
    16 #endif
    17 #include "pkix_ekuchecker.h"
    19 #ifdef __cplusplus
    20 extern "C" {
    21 #endif
    23 typedef enum {
    24         BUILD_SHORTCUTPENDING,
    25         BUILD_INITIAL,
    26         BUILD_TRYAIA,
    27         BUILD_AIAPENDING,
    28         BUILD_COLLECTINGCERTS,
    29         BUILD_GATHERPENDING,
    30         BUILD_CERTVALIDATING,
    31         BUILD_ABANDONNODE,
    32         BUILD_DATEPREP,
    33         BUILD_CHECKTRUSTED,
    34         BUILD_CHECKTRUSTED2,
    35         BUILD_ADDTOCHAIN,
    36         BUILD_VALCHAIN,
    37         BUILD_VALCHAIN2,
    38         BUILD_EXTENDCHAIN,
    39         BUILD_GETNEXTCERT
    40 } BuildStatus;
    42 typedef struct BuildConstantsStruct BuildConstants;
    44 /*
    45  * These fields (the ones that are objects) are not reference-counted
    46  * in *each* state, but only in the root, the state that has no parent.
    47  * That saves time in creation and destruction of child states, but is
    48  * safe enough since they are constants.
    49  */
    50 struct BuildConstantsStruct {
    51         PKIX_UInt32 numAnchors;
    52         PKIX_UInt32 numCertStores;
    53         PKIX_UInt32 numHintCerts;
    54         PKIX_UInt32 maxDepth;
    55         PKIX_UInt32 maxFanout;
    56         PKIX_UInt32 maxTime;
    57         PKIX_ProcessingParams *procParams;
    58         PKIX_PL_Date *testDate;
    59         PKIX_PL_Date *timeLimit;
    60         PKIX_PL_Cert *targetCert;
    61         PKIX_PL_PublicKey *targetPubKey;
    62         PKIX_List *certStores;
    63         PKIX_List *anchors;
    64         PKIX_List *userCheckers;
    65         PKIX_List *hintCerts;
    66         PKIX_RevocationChecker *revChecker;
    67         PKIX_PL_AIAMgr *aiaMgr;
    68         PKIX_Boolean useAIAForCertFetching;
    69         PKIX_Boolean trustOnlyUserAnchors;
    70 };
    72 struct PKIX_ForwardBuilderStateStruct{
    73         BuildStatus status;
    74         PKIX_Int32 traversedCACerts;
    75         PKIX_UInt32 certStoreIndex;
    76         PKIX_UInt32 numCerts;
    77         PKIX_UInt32 numAias;
    78         PKIX_UInt32 certIndex;
    79         PKIX_UInt32 aiaIndex;
    80         PKIX_UInt32 certCheckedIndex;
    81         PKIX_UInt32 checkerIndex;
    82         PKIX_UInt32 hintCertIndex;
    83         PKIX_UInt32 numFanout;
    84         PKIX_UInt32 numDepth;
    85         PKIX_UInt32 reasonCode;
    86         PKIX_Boolean canBeCached;
    87         PKIX_Boolean useOnlyLocal;
    88         PKIX_Boolean revChecking;
    89         PKIX_Boolean usingHintCerts;
    90         PKIX_Boolean certLoopingDetected;
    91         PKIX_PL_Date *validityDate;
    92         PKIX_PL_Cert *prevCert;
    93         PKIX_PL_Cert *candidateCert;
    94         PKIX_List *traversedSubjNames;
    95         PKIX_List *trustChain;
    96         PKIX_List *aia;
    97         PKIX_List *candidateCerts;
    98         PKIX_List *reversedCertChain;
    99         PKIX_List *checkedCritExtOIDs;
   100         PKIX_List *checkerChain;
   101         PKIX_CertSelector *certSel;
   102         PKIX_VerifyNode *verifyNode;
   103         void *client; /* messageHandler, such as LDAPClient */
   104         PKIX_ForwardBuilderState *parentState;
   105         BuildConstants buildConstants;
   106 };
   108 /* --Private-Functions-------------------------------------------- */
   110 PKIX_Error *
   111 pkix_ForwardBuilderState_RegisterSelf(void *plContext);
   113 PKIX_Error *
   114 PKIX_Build_GetNBIOContext(void *state, void **pNBIOContext, void *plContext);
   116 #ifdef __cplusplus
   117 }
   118 #endif
   120 #endif /* _PKIX_BUILD_H */

mercurial