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_comcertselparams.h
6  *
7  * ComCertSelParams Object Type Definition
8  *
9  */
10 
11 #ifndef _PKIX_COMCERTSELPARAMS_H
12 #define _PKIX_COMCERTSELPARAMS_H
13 
14 #include "pkix_tools.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /*
21  * pathToNamesConstraint is Name Constraints generated based on the
22  * pathToNames. We save a cached copy to save regeneration for each
23  * check. SubjAltNames also has its cache, since SubjAltNames are
24  * verified by checker, its cache copy is stored in checkerstate.
25  */
26 struct PKIX_ComCertSelParamsStruct {
27         PKIX_Int32 version;
28         PKIX_Int32 minPathLength;
29         PKIX_Boolean matchAllSubjAltNames;
30         PKIX_PL_X500Name *subject;
31         PKIX_List *policies; /* List of PKIX_PL_OID */
32         PKIX_PL_Cert *cert;
33         PKIX_PL_CertNameConstraints *nameConstraints;
34         PKIX_List *pathToNames; /* List of PKIX_PL_GeneralNames */
35         PKIX_List *subjAltNames; /* List of PKIX_PL_GeneralNames */
36         PKIX_List *extKeyUsage; /* List of PKIX_PL_OID */
37         PKIX_UInt32 keyUsage;
38         PKIX_PL_Date *date;
39         PKIX_PL_Date *certValid;
40         PKIX_PL_X500Name *issuer;
41         PKIX_PL_BigInt *serialNumber;
42         PKIX_PL_ByteArray *authKeyId;
43         PKIX_PL_ByteArray *subjKeyId;
44         PKIX_PL_PublicKey *subjPubKey;
45         PKIX_PL_OID *subjPKAlgId;
46         PKIX_Boolean leafCertFlag;
47 };
48 
49 /* see source file for function documentation */
50 
51 PKIX_Error *pkix_ComCertSelParams_RegisterSelf(void *plContext);
52 
53 #ifdef __cplusplus
54 }
55 #endif
56 
57 #endif /* _PKIX_COMCERTSELPARAMS_H */
58