xref: /onnv-gate/usr/src/lib/libkmf/libkmf/common/kmfoids.c (revision 3089:8ddeb2ace8aa)
1*3089Swyllys /*
2*3089Swyllys  * CDDL HEADER START
3*3089Swyllys  *
4*3089Swyllys  * The contents of this file are subject to the terms of the
5*3089Swyllys  * Common Development and Distribution License (the "License").
6*3089Swyllys  * You may not use this file except in compliance with the License.
7*3089Swyllys  *
8*3089Swyllys  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*3089Swyllys  * or http://www.opensolaris.org/os/licensing.
10*3089Swyllys  * See the License for the specific language governing permissions
11*3089Swyllys  * and limitations under the License.
12*3089Swyllys  *
13*3089Swyllys  * When distributing Covered Code, include this CDDL HEADER in each
14*3089Swyllys  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*3089Swyllys  * If applicable, add the following below this CDDL HEADER, with the
16*3089Swyllys  * fields enclosed by brackets "[]" replaced with your own identifying
17*3089Swyllys  * information: Portions Copyright [yyyy] [name of copyright owner]
18*3089Swyllys  *
19*3089Swyllys  * CDDL HEADER END
20*3089Swyllys  */
21*3089Swyllys /*
22*3089Swyllys  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23*3089Swyllys  * Use is subject to license terms.
24*3089Swyllys  *
25*3089Swyllys  * Copyright(c) 1995-2000 Intel Corporation. All rights reserved.
26*3089Swyllys  */
27*3089Swyllys 
28*3089Swyllys #pragma ident	"%Z%%M%	%I%	%E% SMI"
29*3089Swyllys 
30*3089Swyllys #include <kmfapi.h>
31*3089Swyllys 
32*3089Swyllys /* From X.520 */
33*3089Swyllys static uint8_t
34*3089Swyllys OID_ObjectClass[] = { OID_ATTR_TYPE, 0 },
35*3089Swyllys OID_AliasedEntryName[] = { OID_ATTR_TYPE, 1 },
36*3089Swyllys OID_KnowledgeInformation[] = { OID_ATTR_TYPE, 2 },
37*3089Swyllys OID_CommonName[] = { OID_ATTR_TYPE, 3 },
38*3089Swyllys OID_Surname[] = { OID_ATTR_TYPE, 4 },
39*3089Swyllys OID_SerialNumber[] = { OID_ATTR_TYPE, 5 },
40*3089Swyllys OID_CountryName[] = { OID_ATTR_TYPE, 6 },
41*3089Swyllys OID_LocalityName[] = { OID_ATTR_TYPE, 7 },
42*3089Swyllys OID_StateProvinceName[] = { OID_ATTR_TYPE, 8 },
43*3089Swyllys OID_CollectiveStateProvinceName[] = { OID_ATTR_TYPE, 8, 1 },
44*3089Swyllys OID_StreetAddress[] = { OID_ATTR_TYPE, 9 },
45*3089Swyllys OID_CollectiveStreetAddress[] = { OID_ATTR_TYPE, 9, 1 },
46*3089Swyllys OID_OrganizationName[] = { OID_ATTR_TYPE, 10 },
47*3089Swyllys OID_CollectiveOrganizationName[] = { OID_ATTR_TYPE, 10, 1 },
48*3089Swyllys OID_OrganizationalUnitName[] = { OID_ATTR_TYPE, 11 },
49*3089Swyllys OID_CollectiveOrganizationalUnitName[] = { OID_ATTR_TYPE, 11, 1 },
50*3089Swyllys OID_Title[] = { OID_ATTR_TYPE, 12 },
51*3089Swyllys OID_Description[] = { OID_ATTR_TYPE, 13 },
52*3089Swyllys OID_SearchGuide[] = { OID_ATTR_TYPE, 14 },
53*3089Swyllys OID_BusinessCategory[] = { OID_ATTR_TYPE, 15 },
54*3089Swyllys OID_PostalAddress[] = { OID_ATTR_TYPE, 16 },
55*3089Swyllys OID_CollectivePostalAddress[] = { OID_ATTR_TYPE, 16, 1 },
56*3089Swyllys OID_PostalCode[] = { OID_ATTR_TYPE, 17 },
57*3089Swyllys OID_CollectivePostalCode[] = { OID_ATTR_TYPE, 17, 1 },
58*3089Swyllys OID_PostOfficeBox[] = { OID_ATTR_TYPE, 18 },
59*3089Swyllys OID_CollectivePostOfficeBox[] = { OID_ATTR_TYPE, 18, 1 },
60*3089Swyllys OID_PhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19 },
61*3089Swyllys OID_CollectivePhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19, 1 },
62*3089Swyllys OID_TelephoneNumber[] = { OID_ATTR_TYPE, 20 },
63*3089Swyllys OID_CollectiveTelephoneNumber[] = { OID_ATTR_TYPE, 20, 1 },
64*3089Swyllys OID_TelexNumber[] = { OID_ATTR_TYPE, 21 },
65*3089Swyllys OID_CollectiveTelexNumber[] = { OID_ATTR_TYPE, 21, 1 },
66*3089Swyllys OID_TelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22 },
67*3089Swyllys OID_CollectiveTelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22, 1 },
68*3089Swyllys OID_FacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23 },
69*3089Swyllys OID_CollectiveFacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23, 1 },
70*3089Swyllys OID_X_121Address[] = { OID_ATTR_TYPE, 24 },
71*3089Swyllys OID_InternationalISDNNumber[] = { OID_ATTR_TYPE, 25 },
72*3089Swyllys OID_CollectiveInternationalISDNNumber[] = { OID_ATTR_TYPE, 25, 1 },
73*3089Swyllys OID_RegisteredAddress[] = { OID_ATTR_TYPE, 26 },
74*3089Swyllys OID_DestinationIndicator[] = { OID_ATTR_TYPE, 27 },
75*3089Swyllys OID_PreferredDeliveryMethod[] = { OID_ATTR_TYPE, 28 },
76*3089Swyllys OID_PresentationAddress[] = { OID_ATTR_TYPE, 29 },
77*3089Swyllys OID_SupportedApplicationContext[] = { OID_ATTR_TYPE, 30 },
78*3089Swyllys OID_Member[] = { OID_ATTR_TYPE, 31 },
79*3089Swyllys OID_Owner[] = { OID_ATTR_TYPE, 32 },
80*3089Swyllys OID_RoleOccupant[] = { OID_ATTR_TYPE, 33 },
81*3089Swyllys OID_SeeAlso[] = { OID_ATTR_TYPE, 34 },
82*3089Swyllys OID_UserPassword[] = { OID_ATTR_TYPE, 35 },
83*3089Swyllys OID_UserCertificate[] = { OID_ATTR_TYPE, 36 },
84*3089Swyllys OID_CACertificate[] = { OID_ATTR_TYPE, 37 },
85*3089Swyllys OID_AuthorityRevocationList[] = { OID_ATTR_TYPE, 38 },
86*3089Swyllys OID_CertificateRevocationList[] = { OID_ATTR_TYPE, 39 },
87*3089Swyllys OID_CrossCertificatePair[] = { OID_ATTR_TYPE, 40 },
88*3089Swyllys OID_Name[] = { OID_ATTR_TYPE, 41 },
89*3089Swyllys OID_GivenName[] = { OID_ATTR_TYPE, 42 },
90*3089Swyllys OID_Initials[] = { OID_ATTR_TYPE, 43 },
91*3089Swyllys OID_GenerationQualifier[] = { OID_ATTR_TYPE, 44 },
92*3089Swyllys OID_UniqueIdentifier[] = { OID_ATTR_TYPE, 45 },
93*3089Swyllys OID_DNQualifier[] = { OID_ATTR_TYPE, 46 },
94*3089Swyllys OID_EnhancedSearchGuide[] = { OID_ATTR_TYPE, 47 },
95*3089Swyllys OID_ProtocolInformation[] = { OID_ATTR_TYPE, 48 },
96*3089Swyllys OID_DistinguishedName[] = { OID_ATTR_TYPE, 49 },
97*3089Swyllys OID_UniqueMember[] = { OID_ATTR_TYPE, 50 },
98*3089Swyllys OID_HouseIdentifier[] = { OID_ATTR_TYPE, 51 }
99*3089Swyllys /* OID_SupportedAlgorithms[] = { OID_ATTR_TYPE, 52 }, */
100*3089Swyllys /* OID_DeltaRevocationList[] = { OID_ATTR_TYPE, 53 }, */
101*3089Swyllys /* OID_AttributeCertificate[] = { OID_ATTR_TYPE, 58 } */
102*3089Swyllys ;
103*3089Swyllys 
104*3089Swyllys /* From PKCS 9 */
105*3089Swyllys static uint8_t
106*3089Swyllys OID_EmailAddress[] = { OID_PKCS_9, 1 },
107*3089Swyllys OID_UnstructuredName[] = { OID_PKCS_9, 2 },
108*3089Swyllys OID_ContentType[] = { OID_PKCS_9, 3 },
109*3089Swyllys OID_MessageDigest[] = { OID_PKCS_9, 4 },
110*3089Swyllys OID_SigningTime[] = { OID_PKCS_9, 5 },
111*3089Swyllys OID_CounterSignature[] = { OID_PKCS_9, 6 },
112*3089Swyllys OID_ChallengePassword[] = { OID_PKCS_9, 7 },
113*3089Swyllys OID_UnstructuredAddress[] = { OID_PKCS_9, 8 },
114*3089Swyllys OID_ExtendedCertificateAttributes[] = { OID_PKCS_9, 9 },
115*3089Swyllys OID_ExtensionRequest[] = { OID_PKCS_9, 14 };
116*3089Swyllys 
117*3089Swyllys /* From PKIX 1 */
118*3089Swyllys /* Standard Extensions */
119*3089Swyllys static uint8_t
120*3089Swyllys OID_SubjectDirectoryAttributes[] = { OID_EXTENSION, 9 },
121*3089Swyllys OID_SubjectKeyIdentifier[] = { OID_EXTENSION, 14 },
122*3089Swyllys OID_KeyUsage[] = { OID_EXTENSION, 15 },
123*3089Swyllys OID_PrivateKeyUsagePeriod[] = { OID_EXTENSION, 16 },
124*3089Swyllys OID_SubjectAltName[] = { OID_EXTENSION, 17 },
125*3089Swyllys OID_IssuerAltName[] = { OID_EXTENSION, 18 },
126*3089Swyllys OID_BasicConstraints[] = { OID_EXTENSION, 19 },
127*3089Swyllys OID_CrlNumber[] = { OID_EXTENSION, 20 },
128*3089Swyllys OID_CrlReason[] = { OID_EXTENSION, 21 },
129*3089Swyllys OID_HoldInstructionCode[] = { OID_EXTENSION, 23 },
130*3089Swyllys OID_InvalidityDate[] = { OID_EXTENSION, 24 },
131*3089Swyllys OID_DeltaCrlIndicator[] = { OID_EXTENSION, 27 },
132*3089Swyllys OID_IssuingDistributionPoints[] = { OID_EXTENSION, 28 },
133*3089Swyllys 
134*3089Swyllys /* OID_CertificateIssuer[] = { OID_EXTENSION, 29 }, */
135*3089Swyllys OID_NameConstraints[] = { OID_EXTENSION, 30 },
136*3089Swyllys OID_CrlDistributionPoints[] = { OID_EXTENSION, 31 },
137*3089Swyllys OID_CertificatePolicies[] = { OID_EXTENSION, 32 },
138*3089Swyllys OID_PolicyMappings[] = { OID_EXTENSION, 33 },
139*3089Swyllys /* 34 deprecated */
140*3089Swyllys OID_AuthorityKeyIdentifier[] = { OID_EXTENSION, 35 },
141*3089Swyllys OID_PolicyConstraints[] = { OID_EXTENSION, 36 },
142*3089Swyllys OID_ExtKeyUsage[] = { OID_EXTENSION, 37 }
143*3089Swyllys ;
144*3089Swyllys 
145*3089Swyllys /* PKIX-defined extended key purpose OIDs */
146*3089Swyllys static uint8_t
147*3089Swyllys OID_QT_CPSuri[]		 = { OID_PKIX_QT_CPS },
148*3089Swyllys OID_QT_Unotice[]	 = { OID_PKIX_QT_UNOTICE },
149*3089Swyllys 
150*3089Swyllys OID_KP_ServerAuth[]	 = { OID_PKIX_KP, 1 },
151*3089Swyllys OID_KP_ClientAuth[] = { OID_PKIX_KP, 2 },
152*3089Swyllys OID_KP_CodeSigning[] = { OID_PKIX_KP, 3 },
153*3089Swyllys OID_KP_EmailProtection[] = { OID_PKIX_KP, 4 },
154*3089Swyllys OID_KP_IPSecEndSystem[] = { OID_PKIX_KP, 5 },
155*3089Swyllys OID_KP_IPSecTunnel[] = { OID_PKIX_KP, 6 },
156*3089Swyllys OID_KP_IPSecUser[] = { OID_PKIX_KP, 7 },
157*3089Swyllys OID_KP_TimeStamping[] = { OID_PKIX_KP, 8 },
158*3089Swyllys OID_KP_OCSPSigning[] = { OID_PKIX_KP, 9 }
159*3089Swyllys ;
160*3089Swyllys 
161*3089Swyllys /* From PKIX 1 */
162*3089Swyllys static uint8_t
163*3089Swyllys OID_AuthorityInfoAccess[] = { OID_PKIX_PE, 1};
164*3089Swyllys 
165*3089Swyllys const KMF_OID
166*3089Swyllys KMFOID_AuthorityInfoAccess = {OID_PKIX_LENGTH + 2, OID_AuthorityInfoAccess};
167*3089Swyllys 
168*3089Swyllys static uint8_t
169*3089Swyllys OID_PkixAdOcsp[] = {OID_PKIX_AD, 1};
170*3089Swyllys 
171*3089Swyllys const KMF_OID
172*3089Swyllys KMFOID_PkixAdOcsp = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdOcsp};
173*3089Swyllys 
174*3089Swyllys static uint8_t
175*3089Swyllys OID_PkixAdCaIssuers[] = {OID_PKIX_AD, 2};
176*3089Swyllys 
177*3089Swyllys const KMF_OID
178*3089Swyllys KMFOID_PkixAdCaIssuers = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdCaIssuers};
179*3089Swyllys 
180*3089Swyllys /*
181*3089Swyllys  * From RFC 1274
182*3089Swyllys  */
183*3089Swyllys static uint8_t
184*3089Swyllys OID_userid[] =		{OID_PILOT, 1},
185*3089Swyllys OID_RFC822mailbox[] =	{OID_PILOT, 3},
186*3089Swyllys OID_domainComponent[] =	{OID_PILOT, 25};
187*3089Swyllys 
188*3089Swyllys const KMF_OID
189*3089Swyllys KMFOID_userid		= {OID_PILOT_LENGTH + 1, OID_userid},
190*3089Swyllys KMFOID_RFC822mailbox	= {OID_PILOT_LENGTH + 1, OID_RFC822mailbox},
191*3089Swyllys KMFOID_domainComponent	= {OID_PILOT_LENGTH + 1, OID_domainComponent},
192*3089Swyllys KMFOID_ObjectClass = {OID_ATTR_TYPE_LENGTH+1, OID_ObjectClass},
193*3089Swyllys KMFOID_AliasedEntryName = {OID_ATTR_TYPE_LENGTH+1, OID_AliasedEntryName},
194*3089Swyllys KMFOID_KnowledgeInformation = {OID_ATTR_TYPE_LENGTH+1,
195*3089Swyllys 	OID_KnowledgeInformation},
196*3089Swyllys KMFOID_CommonName = {OID_ATTR_TYPE_LENGTH+1, OID_CommonName},
197*3089Swyllys KMFOID_Surname = {OID_ATTR_TYPE_LENGTH+1, OID_Surname},
198*3089Swyllys KMFOID_SerialNumber = {OID_ATTR_TYPE_LENGTH+1, OID_SerialNumber},
199*3089Swyllys KMFOID_CountryName = {OID_ATTR_TYPE_LENGTH+1, OID_CountryName},
200*3089Swyllys KMFOID_LocalityName = {OID_ATTR_TYPE_LENGTH+1, OID_LocalityName},
201*3089Swyllys KMFOID_StateProvinceName = {OID_ATTR_TYPE_LENGTH+1, OID_StateProvinceName},
202*3089Swyllys KMFOID_CollectiveStateProvinceName = {OID_ATTR_TYPE_LENGTH+2,
203*3089Swyllys 	OID_CollectiveStateProvinceName},
204*3089Swyllys KMFOID_StreetAddress = {OID_ATTR_TYPE_LENGTH+1, OID_StreetAddress},
205*3089Swyllys KMFOID_CollectiveStreetAddress = {OID_ATTR_TYPE_LENGTH+2,
206*3089Swyllys 	OID_CollectiveStreetAddress},
207*3089Swyllys KMFOID_OrganizationName = {OID_ATTR_TYPE_LENGTH+1, OID_OrganizationName},
208*3089Swyllys KMFOID_CollectiveOrganizationName = {OID_ATTR_TYPE_LENGTH+2,
209*3089Swyllys 	OID_CollectiveOrganizationName},
210*3089Swyllys KMFOID_OrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+1,
211*3089Swyllys 	OID_OrganizationalUnitName},
212*3089Swyllys KMFOID_CollectiveOrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+2,
213*3089Swyllys 	OID_CollectiveOrganizationalUnitName},
214*3089Swyllys KMFOID_Title = {OID_ATTR_TYPE_LENGTH+1, OID_Title},
215*3089Swyllys KMFOID_Description = {OID_ATTR_TYPE_LENGTH+1, OID_Description},
216*3089Swyllys KMFOID_SearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_SearchGuide},
217*3089Swyllys KMFOID_BusinessCategory = {OID_ATTR_TYPE_LENGTH+1, OID_BusinessCategory},
218*3089Swyllys KMFOID_PostalAddress = {OID_ATTR_TYPE_LENGTH+1, OID_PostalAddress},
219*3089Swyllys KMFOID_CollectivePostalAddress = {OID_ATTR_TYPE_LENGTH+2,
220*3089Swyllys 	OID_CollectivePostalAddress},
221*3089Swyllys KMFOID_PostalCode = {OID_ATTR_TYPE_LENGTH+1, OID_PostalCode},
222*3089Swyllys KMFOID_CollectivePostalCode = {OID_ATTR_TYPE_LENGTH+2,
223*3089Swyllys 	OID_CollectivePostalCode},
224*3089Swyllys KMFOID_PostOfficeBox = {OID_ATTR_TYPE_LENGTH+1, OID_PostOfficeBox},
225*3089Swyllys KMFOID_CollectivePostOfficeBox = {OID_ATTR_TYPE_LENGTH+2,
226*3089Swyllys 	OID_CollectivePostOfficeBox},
227*3089Swyllys KMFOID_PhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+1,
228*3089Swyllys 	OID_PhysicalDeliveryOfficeName},
229*3089Swyllys KMFOID_CollectivePhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+2,
230*3089Swyllys 	OID_CollectivePhysicalDeliveryOfficeName},
231*3089Swyllys KMFOID_TelephoneNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelephoneNumber},
232*3089Swyllys KMFOID_CollectiveTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2,
233*3089Swyllys 	OID_CollectiveTelephoneNumber},
234*3089Swyllys KMFOID_TelexNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelexNumber},
235*3089Swyllys KMFOID_CollectiveTelexNumber = {OID_ATTR_TYPE_LENGTH+2,
236*3089Swyllys 	OID_CollectiveTelexNumber},
237*3089Swyllys KMFOID_TelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+1,
238*3089Swyllys 	OID_TelexTerminalIdentifier},
239*3089Swyllys KMFOID_CollectiveTelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+2,
240*3089Swyllys 	OID_CollectiveTelexTerminalIdentifier},
241*3089Swyllys KMFOID_FacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+1,
242*3089Swyllys 	OID_FacsimileTelephoneNumber},
243*3089Swyllys KMFOID_CollectiveFacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2,
244*3089Swyllys 	OID_CollectiveFacsimileTelephoneNumber},
245*3089Swyllys KMFOID_X_121Address = {OID_ATTR_TYPE_LENGTH+1, OID_X_121Address},
246*3089Swyllys KMFOID_InternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+1,
247*3089Swyllys 	OID_InternationalISDNNumber},
248*3089Swyllys KMFOID_CollectiveInternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+2,
249*3089Swyllys 	OID_CollectiveInternationalISDNNumber},
250*3089Swyllys KMFOID_RegisteredAddress = {OID_ATTR_TYPE_LENGTH+1, OID_RegisteredAddress},
251*3089Swyllys KMFOID_DestinationIndicator = {OID_ATTR_TYPE_LENGTH+1,
252*3089Swyllys 	OID_DestinationIndicator},
253*3089Swyllys KMFOID_PreferredDeliveryMethod = {OID_ATTR_TYPE_LENGTH+1,
254*3089Swyllys 	OID_PreferredDeliveryMethod},
255*3089Swyllys KMFOID_PresentationAddress = {OID_ATTR_TYPE_LENGTH+1,
256*3089Swyllys 	OID_PresentationAddress},
257*3089Swyllys KMFOID_SupportedApplicationContext = {OID_ATTR_TYPE_LENGTH+1,
258*3089Swyllys 	OID_SupportedApplicationContext},
259*3089Swyllys KMFOID_Member = {OID_ATTR_TYPE_LENGTH+1, OID_Member},
260*3089Swyllys KMFOID_Owner = {OID_ATTR_TYPE_LENGTH+1, OID_Owner},
261*3089Swyllys KMFOID_RoleOccupant = {OID_ATTR_TYPE_LENGTH+1, OID_RoleOccupant},
262*3089Swyllys KMFOID_SeeAlso = {OID_ATTR_TYPE_LENGTH+1, OID_SeeAlso},
263*3089Swyllys KMFOID_UserPassword = {OID_ATTR_TYPE_LENGTH+1, OID_UserPassword},
264*3089Swyllys KMFOID_UserCertificate = {OID_ATTR_TYPE_LENGTH+1, OID_UserCertificate},
265*3089Swyllys KMFOID_CACertificate = {OID_ATTR_TYPE_LENGTH+1, OID_CACertificate},
266*3089Swyllys KMFOID_AuthorityRevocationList = {OID_ATTR_TYPE_LENGTH+1,
267*3089Swyllys 	OID_AuthorityRevocationList},
268*3089Swyllys KMFOID_CertificateRevocationList = {OID_ATTR_TYPE_LENGTH+1,
269*3089Swyllys 	OID_CertificateRevocationList},
270*3089Swyllys KMFOID_CrossCertificatePair = {OID_ATTR_TYPE_LENGTH+1,
271*3089Swyllys 	OID_CrossCertificatePair},
272*3089Swyllys KMFOID_Name = {OID_ATTR_TYPE_LENGTH+1, OID_Name},
273*3089Swyllys KMFOID_GivenName = {OID_ATTR_TYPE_LENGTH+1, OID_GivenName},
274*3089Swyllys KMFOID_Initials = {OID_ATTR_TYPE_LENGTH+1, OID_Initials},
275*3089Swyllys KMFOID_GenerationQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_GenerationQualifier},
276*3089Swyllys KMFOID_UniqueIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueIdentifier},
277*3089Swyllys KMFOID_DNQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_DNQualifier},
278*3089Swyllys KMFOID_EnhancedSearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_EnhancedSearchGuide},
279*3089Swyllys KMFOID_ProtocolInformation = {OID_ATTR_TYPE_LENGTH+1, OID_ProtocolInformation},
280*3089Swyllys KMFOID_DistinguishedName = {OID_ATTR_TYPE_LENGTH+1, OID_DistinguishedName},
281*3089Swyllys KMFOID_UniqueMember = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueMember},
282*3089Swyllys KMFOID_HouseIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_HouseIdentifier},
283*3089Swyllys KMFOID_EmailAddress = {OID_PKCS_9_LENGTH+1, OID_EmailAddress},
284*3089Swyllys KMFOID_UnstructuredName = {OID_PKCS_9_LENGTH+1, OID_UnstructuredName},
285*3089Swyllys KMFOID_ContentType = {OID_PKCS_9_LENGTH+1, OID_ContentType},
286*3089Swyllys KMFOID_MessageDigest = {OID_PKCS_9_LENGTH+1, OID_MessageDigest},
287*3089Swyllys KMFOID_SigningTime = {OID_PKCS_9_LENGTH+1, OID_SigningTime},
288*3089Swyllys KMFOID_CounterSignature = {OID_PKCS_9_LENGTH+1, OID_CounterSignature},
289*3089Swyllys KMFOID_ChallengePassword = {OID_PKCS_9_LENGTH+1, OID_ChallengePassword},
290*3089Swyllys KMFOID_UnstructuredAddress = {OID_PKCS_9_LENGTH+1, OID_UnstructuredAddress},
291*3089Swyllys KMFOID_ExtendedCertificateAttributes = {OID_PKCS_9_LENGTH+1,
292*3089Swyllys 	OID_ExtendedCertificateAttributes},
293*3089Swyllys KMFOID_ExtensionRequest = {OID_PKCS_9_LENGTH + 1, OID_ExtensionRequest};
294*3089Swyllys 
295*3089Swyllys static uint8_t
296*3089Swyllys OID_AuthorityKeyID[] = { OID_EXTENSION, 1 },
297*3089Swyllys OID_VerisignCertificatePolicy[] = { OID_EXTENSION, 3 },
298*3089Swyllys OID_KeyUsageRestriction[] = { OID_EXTENSION, 4 };
299*3089Swyllys 
300*3089Swyllys const KMF_OID
301*3089Swyllys KMFOID_AuthorityKeyID		 = {OID_EXTENSION_LENGTH+1, OID_AuthorityKeyID},
302*3089Swyllys 
303*3089Swyllys KMFOID_VerisignCertificatePolicy = {OID_EXTENSION_LENGTH+1,
304*3089Swyllys 	OID_VerisignCertificatePolicy},
305*3089Swyllys 
306*3089Swyllys KMFOID_KeyUsageRestriction	 = {OID_EXTENSION_LENGTH+1,
307*3089Swyllys 	OID_KeyUsageRestriction},
308*3089Swyllys 
309*3089Swyllys KMFOID_SubjectDirectoryAttributes = {OID_EXTENSION_LENGTH+1,
310*3089Swyllys 	OID_SubjectDirectoryAttributes},
311*3089Swyllys 
312*3089Swyllys KMFOID_SubjectKeyIdentifier	 = {OID_EXTENSION_LENGTH+1,
313*3089Swyllys 	OID_SubjectKeyIdentifier },
314*3089Swyllys KMFOID_KeyUsage		 = {OID_EXTENSION_LENGTH+1, OID_KeyUsage },
315*3089Swyllys 
316*3089Swyllys KMFOID_PrivateKeyUsagePeriod	 = {OID_EXTENSION_LENGTH+1,
317*3089Swyllys 	OID_PrivateKeyUsagePeriod},
318*3089Swyllys KMFOID_SubjectAltName	 = {OID_EXTENSION_LENGTH+1, OID_SubjectAltName },
319*3089Swyllys KMFOID_IssuerAltName	 = {OID_EXTENSION_LENGTH+1, OID_IssuerAltName },
320*3089Swyllys KMFOID_BasicConstraints	 = {OID_EXTENSION_LENGTH+1, OID_BasicConstraints },
321*3089Swyllys 
322*3089Swyllys KMFOID_CrlNumber	 = {OID_EXTENSION_LENGTH+1, OID_CrlNumber},
323*3089Swyllys 
324*3089Swyllys KMFOID_CrlReason	 = {OID_EXTENSION_LENGTH+1, OID_CrlReason},
325*3089Swyllys 
326*3089Swyllys KMFOID_HoldInstructionCode = {OID_EXTENSION_LENGTH+1, OID_HoldInstructionCode},
327*3089Swyllys 
328*3089Swyllys KMFOID_InvalidityDate	 = {OID_EXTENSION_LENGTH+1, OID_InvalidityDate},
329*3089Swyllys 
330*3089Swyllys KMFOID_DeltaCrlIndicator = {OID_EXTENSION_LENGTH+1, OID_DeltaCrlIndicator},
331*3089Swyllys 
332*3089Swyllys KMFOID_IssuingDistributionPoints = {OID_EXTENSION_LENGTH+1,
333*3089Swyllys 	OID_IssuingDistributionPoints},
334*3089Swyllys 
335*3089Swyllys KMFOID_NameConstraints	 = {OID_EXTENSION_LENGTH+1,
336*3089Swyllys 	OID_NameConstraints},
337*3089Swyllys 
338*3089Swyllys KMFOID_CrlDistributionPoints = {OID_EXTENSION_LENGTH+1,
339*3089Swyllys 	OID_CrlDistributionPoints},
340*3089Swyllys 
341*3089Swyllys KMFOID_CertificatePolicies = {OID_EXTENSION_LENGTH+1,
342*3089Swyllys 	OID_CertificatePolicies},
343*3089Swyllys 
344*3089Swyllys KMFOID_PolicyMappings	 = {OID_EXTENSION_LENGTH+1, OID_PolicyMappings},
345*3089Swyllys 
346*3089Swyllys KMFOID_PolicyConstraints = {OID_EXTENSION_LENGTH+1, OID_PolicyConstraints},
347*3089Swyllys 
348*3089Swyllys KMFOID_AuthorityKeyIdentifier = {OID_EXTENSION_LENGTH+1,
349*3089Swyllys 	OID_AuthorityKeyIdentifier},
350*3089Swyllys 
351*3089Swyllys KMFOID_ExtendedKeyUsage	 = {OID_EXTENSION_LENGTH+1, OID_ExtKeyUsage},
352*3089Swyllys 
353*3089Swyllys KMFOID_PKIX_PQ_CPSuri	 = {OID_PKIX_QT_CPS_LENGTH, 	OID_QT_CPSuri},
354*3089Swyllys 
355*3089Swyllys KMFOID_PKIX_PQ_Unotice	 = {OID_PKIX_QT_UNOTICE_LENGTH,	OID_QT_Unotice},
356*3089Swyllys 
357*3089Swyllys /* Extended Key Usage OIDs */
358*3089Swyllys KMFOID_PKIX_KP_ServerAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ServerAuth},
359*3089Swyllys 
360*3089Swyllys KMFOID_PKIX_KP_ClientAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ClientAuth},
361*3089Swyllys 
362*3089Swyllys KMFOID_PKIX_KP_CodeSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_CodeSigning},
363*3089Swyllys 
364*3089Swyllys KMFOID_PKIX_KP_EmailProtection	 = {OID_PKIX_KP_LENGTH + 1,
365*3089Swyllys 	OID_KP_EmailProtection},
366*3089Swyllys 
367*3089Swyllys KMFOID_PKIX_KP_IPSecEndSystem = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecEndSystem},
368*3089Swyllys 
369*3089Swyllys KMFOID_PKIX_KP_IPSecTunnel = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecTunnel},
370*3089Swyllys 
371*3089Swyllys KMFOID_PKIX_KP_IPSecUser = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecUser},
372*3089Swyllys 
373*3089Swyllys KMFOID_PKIX_KP_TimeStamping = {OID_PKIX_KP_LENGTH + 1, OID_KP_TimeStamping},
374*3089Swyllys 
375*3089Swyllys KMFOID_PKIX_KP_OCSPSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_OCSPSigning};
376