OLD | NEW |
| (Empty) |
1 /* ***** BEGIN LICENSE BLOCK ***** | |
2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
3 * | |
4 * The contents of this file are subject to the Mozilla Public License Version | |
5 * 1.1 (the "License"); you may not use this file except in compliance with | |
6 * the License. You may obtain a copy of the License at | |
7 * http://www.mozilla.org/MPL/ | |
8 * | |
9 * Software distributed under the License is distributed on an "AS IS" basis, | |
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
11 * for the specific language governing rights and limitations under the | |
12 * License. | |
13 * | |
14 * The Original Code is the Netscape security libraries. | |
15 * | |
16 * The Initial Developer of the Original Code is | |
17 * Netscape Communications Corporation. | |
18 * Portions created by the Initial Developer are Copyright (C) 1994-2000 | |
19 * the Initial Developer. All Rights Reserved. | |
20 * | |
21 * Contributor(s): | |
22 * | |
23 * Alternatively, the contents of this file may be used under the terms of | |
24 * either the GNU General Public License Version 2 or later (the "GPL"), or | |
25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
26 * in which case the provisions of the GPL or the LGPL are applicable instead | |
27 * of those above. If you wish to allow use of your version of this file only | |
28 * under the terms of either the GPL or the LGPL, and not to allow others to | |
29 * use your version of this file under the terms of the MPL, indicate your | |
30 * decision by deleting the provisions above and replace them with the notice | |
31 * and other provisions required by the GPL or the LGPL. If you do not delete | |
32 * the provisions above, a recipient may use your version of this file under | |
33 * the terms of any one of the MPL, the GPL or the LGPL. | |
34 * | |
35 * ***** END LICENSE BLOCK ***** */ | |
36 | |
37 #ifndef NSSPKI1T_H | |
38 #define NSSPKI1T_H | |
39 | |
40 #ifdef DEBUG | |
41 static const char NSSPKI1T_CVS_ID[] = "@(#) $RCSfile: nsspki1t.h,v $ $Revision:
1.3 $ $Date: 2005/01/20 02:25:49 $"; | |
42 #endif /* DEBUG */ | |
43 | |
44 /* | |
45 * nsspki1t.h | |
46 * | |
47 * This file contains the public type definitions for the PKIX part-1 | |
48 * objects. | |
49 */ | |
50 | |
51 #ifndef NSSBASET_H | |
52 #include "nssbaset.h" | |
53 #endif /* NSSBASET_H */ | |
54 | |
55 PR_BEGIN_EXTERN_C | |
56 | |
57 /* | |
58 * OBJECT IDENTIFIER | |
59 * | |
60 * This is the basic OID that crops up everywhere. | |
61 */ | |
62 | |
63 struct NSSOIDStr; | |
64 typedef struct NSSOIDStr NSSOID; | |
65 | |
66 /* | |
67 * AttributeTypeAndValue | |
68 * | |
69 * This structure contains an attribute type (indicated by an OID), | |
70 * and the type-specific value. RelativeDistinguishedNamess consist | |
71 * of a set of these. These are distinct from Attributes (which have | |
72 * SET of values), from AttributeDescriptions (which have qualifiers | |
73 * on the types), and from AttributeValueAssertions (which assert a | |
74 * a value comparison under some matching rule). | |
75 */ | |
76 | |
77 struct NSSATAVStr; | |
78 typedef struct NSSATAVStr NSSATAV; | |
79 | |
80 /* | |
81 * RelativeDistinguishedName | |
82 * | |
83 * This structure contains an unordered set of AttributeTypeAndValue | |
84 * objects. RDNs are used to distinguish a set of objects underneath | |
85 * a common object. | |
86 * | |
87 * Often, a single ATAV is sufficient to make a unique distinction. | |
88 * For example, if a company assigns its people unique uid values, | |
89 * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith" | |
90 * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is | |
91 * needed. For example, if a company needed to distinguish between | |
92 * two Smiths by specifying their corporate divisions, then in the | |
93 * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised | |
94 * set of ATAVs forms the RDN. | |
95 */ | |
96 | |
97 struct NSSRDNStr; | |
98 typedef struct NSSRDNStr NSSRDN; | |
99 | |
100 /* | |
101 * RDNSequence | |
102 * | |
103 * This structure contains a sequence of RelativeDistinguishedName | |
104 * objects. | |
105 */ | |
106 | |
107 struct NSSRDNSeqStr; | |
108 typedef struct NSSRDNSeqStr NSSRDNSeq; | |
109 | |
110 /* | |
111 * Name | |
112 * | |
113 * This structure contains a union of the possible name formats, | |
114 * which at the moment is limited to an RDNSequence. | |
115 */ | |
116 | |
117 struct NSSNameStr; | |
118 typedef struct NSSNameStr NSSName; | |
119 | |
120 /* | |
121 * NameChoice | |
122 * | |
123 * This enumeration is used to specify choice within a name. | |
124 */ | |
125 | |
126 enum NSSNameChoiceEnum { | |
127 NSSNameChoiceInvalid = -1, | |
128 NSSNameChoiceRdnSequence | |
129 }; | |
130 typedef enum NSSNameChoiceEnum NSSNameChoice; | |
131 | |
132 /* | |
133 * GeneralName | |
134 * | |
135 * This structure contains a union of the possible general names, | |
136 * of which there are several. | |
137 */ | |
138 | |
139 struct NSSGeneralNameStr; | |
140 typedef struct NSSGeneralNameStr NSSGeneralName; | |
141 | |
142 /* | |
143 * GeneralNameChoice | |
144 * | |
145 * This enumerates the possible general name types. | |
146 */ | |
147 | |
148 enum NSSGeneralNameChoiceEnum { | |
149 NSSGeneralNameChoiceInvalid = -1, | |
150 NSSGeneralNameChoiceOtherName = 0, | |
151 NSSGeneralNameChoiceRfc822Name = 1, | |
152 NSSGeneralNameChoiceDNSName = 2, | |
153 NSSGeneralNameChoiceX400Address = 3, | |
154 NSSGeneralNameChoiceDirectoryName = 4, | |
155 NSSGeneralNameChoiceEdiPartyName = 5, | |
156 NSSGeneralNameChoiceUniformResourceIdentifier = 6, | |
157 NSSGeneralNameChoiceIPAddress = 7, | |
158 NSSGeneralNameChoiceRegisteredID = 8 | |
159 }; | |
160 typedef enum NSSGeneralNameChoiceEnum NSSGeneralNameChoice; | |
161 | |
162 /* | |
163 * The "other" types of general names. | |
164 */ | |
165 | |
166 struct NSSOtherNameStr; | |
167 typedef struct NSSOtherNameStr NSSOtherName; | |
168 | |
169 struct NSSRFC822NameStr; | |
170 typedef struct NSSRFC822NameStr NSSRFC822Name; | |
171 | |
172 struct NSSDNSNameStr; | |
173 typedef struct NSSDNSNameStr NSSDNSName; | |
174 | |
175 struct NSSX400AddressStr; | |
176 typedef struct NSSX400AddressStr NSSX400Address; | |
177 | |
178 struct NSSEdiPartyNameStr; | |
179 typedef struct NSSEdiPartyNameStr NSSEdiPartyName; | |
180 | |
181 struct NSSURIStr; | |
182 typedef struct NSSURIStr NSSURI; | |
183 | |
184 struct NSSIPAddressStr; | |
185 typedef struct NSSIPAddressStr NSSIPAddress; | |
186 | |
187 struct NSSRegisteredIDStr; | |
188 typedef struct NSSRegisteredIDStr NSSRegisteredID; | |
189 | |
190 /* | |
191 * GeneralNameSeq | |
192 * | |
193 * This structure contains a sequence of GeneralName objects. | |
194 * Note that the PKIX documents refer to this as "GeneralNames," | |
195 * which differs from "GeneralName" by only one letter. To | |
196 * try to reduce confusion, we expand the name slightly to | |
197 * "GeneralNameSeq." | |
198 */ | |
199 | |
200 struct NSSGeneralNameSeqStr; | |
201 typedef struct NSSGeneralNameSeqStr NSSGeneralNameSeq; | |
202 | |
203 PR_END_EXTERN_C | |
204 | |
205 #endif /* NSSPKI1T_H */ | |
OLD | NEW |