comparison nss/lib/libpkix/pkix/top/pkix_build.h @ 0:1e5118fa0cb1

This is NSS with a Cmake Buildsyste To compile a static NSS library for Windows we've used the Chromium-NSS fork and added a Cmake buildsystem to compile it statically for Windows. See README.chromium for chromium changes and README.trustbridge for our modifications.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 28 Jul 2014 10:47:06 +0200
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1e5118fa0cb1
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 */
10
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"
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
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;
41
42 typedef struct BuildConstantsStruct BuildConstants;
43
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 };
71
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 };
107
108 /* --Private-Functions-------------------------------------------- */
109
110 PKIX_Error *
111 pkix_ForwardBuilderState_RegisterSelf(void *plContext);
112
113 PKIX_Error *
114 PKIX_Build_GetNBIOContext(void *state, void **pNBIOContext, void *plContext);
115
116 #ifdef __cplusplus
117 }
118 #endif
119
120 #endif /* _PKIX_BUILD_H */
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)