]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (c) 2000-2001,2003-2004,2008,2010,2012,2014 Apple Inc. All Rights Reserved. | |
3 | * | |
4 | * @APPLE_LICENSE_HEADER_START@ | |
5 | * | |
6 | * This file contains Original Code and/or Modifications of Original Code | |
7 | * as defined in and that are subject to the Apple Public Source License | |
8 | * Version 2.0 (the 'License'). You may not use this file except in | |
9 | * compliance with the License. Please obtain a copy of the License at | |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this | |
11 | * file. | |
12 | * | |
13 | * The Original Code and all software distributed under the License are | |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
18 | * Please see the License for the specific language governing rights and | |
19 | * limitations under the License. | |
20 | * | |
21 | * @APPLE_LICENSE_HEADER_END@ | |
22 | */ | |
23 | ||
24 | ||
25 | /* | |
26 | * oidsattr.c - Cert/CRL related OIDs. | |
27 | */ | |
28 | ||
29 | #include <Security/oidsbase.h> | |
30 | #include <Security/oidsattr.h> | |
31 | ||
32 | ||
33 | /* | |
34 | * Directory name component identifiers. | |
35 | */ | |
36 | static const uint8_t | |
37 | OID_ObjectClass[] = { OID_ATTR_TYPE, 0 }, | |
38 | OID_AliasedEntryName[] = { OID_ATTR_TYPE, 1 }, | |
39 | OID_KnowledgeInformation[] = { OID_ATTR_TYPE, 2 }, | |
40 | OID_CommonName[] = { OID_ATTR_TYPE, 3 }, | |
41 | OID_Surname[] = { OID_ATTR_TYPE, 4 }, | |
42 | OID_SerialNumber[] = { OID_ATTR_TYPE, 5 }, | |
43 | OID_CountryName[] = { OID_ATTR_TYPE, 6 }, | |
44 | OID_LocalityName[] = { OID_ATTR_TYPE, 7 }, | |
45 | OID_StateProvinceName[] = { OID_ATTR_TYPE, 8 }, | |
46 | OID_CollectiveStateProvinceName[] = { OID_ATTR_TYPE, 8, 1 }, | |
47 | OID_StreetAddress[] = { OID_ATTR_TYPE, 9 }, | |
48 | OID_CollectiveStreetAddress[] = { OID_ATTR_TYPE, 9, 1 }, | |
49 | OID_OrganizationName[] = { OID_ATTR_TYPE, 10 }, | |
50 | OID_CollectiveOrganizationName[] = { OID_ATTR_TYPE, 10, 1 }, | |
51 | OID_OrganizationalUnitName[] = { OID_ATTR_TYPE, 11 }, | |
52 | OID_CollectiveOrganizationalUnitName[] | |
53 | = { OID_ATTR_TYPE, 11, 1 }, | |
54 | OID_Title[] = { OID_ATTR_TYPE, 12 }, | |
55 | OID_Description[] = { OID_ATTR_TYPE, 13 }, | |
56 | OID_SearchGuide[] = { OID_ATTR_TYPE, 14 }, | |
57 | OID_BusinessCategory[] = { OID_ATTR_TYPE, 15 }, | |
58 | OID_PostalAddress[] = { OID_ATTR_TYPE, 16 }, | |
59 | OID_CollectivePostalAddress[] = { OID_ATTR_TYPE, 16, 1 }, | |
60 | OID_PostalCode[] = { OID_ATTR_TYPE, 17 }, | |
61 | OID_CollectivePostalCode[] = { OID_ATTR_TYPE, 17, 1 }, | |
62 | OID_PostOfficeBox[] = { OID_ATTR_TYPE, 18 }, | |
63 | OID_CollectivePostOfficeBox[] = { OID_ATTR_TYPE, 18, 1 }, | |
64 | OID_PhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19 }, | |
65 | OID_CollectivePhysicalDeliveryOfficeName[] | |
66 | = { OID_ATTR_TYPE, 19, 1 }, | |
67 | OID_TelephoneNumber[] = { OID_ATTR_TYPE, 20 }, | |
68 | OID_CollectiveTelephoneNumber[] = { OID_ATTR_TYPE, 20, 1 }, | |
69 | OID_TelexNumber[] = { OID_ATTR_TYPE, 21 }, | |
70 | OID_CollectiveTelexNumber[] = { OID_ATTR_TYPE, 21, 1 }, | |
71 | OID_TelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22 }, | |
72 | OID_CollectiveTelexTerminalIdentifier[] | |
73 | = { OID_ATTR_TYPE, 22, 1 }, | |
74 | OID_FacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23 }, | |
75 | OID_CollectiveFacsimileTelephoneNumber[] | |
76 | = { OID_ATTR_TYPE, 23, 1 }, | |
77 | OID_X_121Address[] = { OID_ATTR_TYPE, 24 }, | |
78 | OID_InternationalISDNNumber[] = { OID_ATTR_TYPE, 25 }, | |
79 | OID_CollectiveInternationalISDNNumber[] | |
80 | = { OID_ATTR_TYPE, 25, 1 }, | |
81 | OID_RegisteredAddress[] = { OID_ATTR_TYPE, 26 }, | |
82 | OID_DestinationIndicator[] = { OID_ATTR_TYPE, 27 }, | |
83 | OID_PreferredDeliveryMethod[] = { OID_ATTR_TYPE, 28 }, | |
84 | OID_PresentationAddress[] = { OID_ATTR_TYPE, 29 }, | |
85 | OID_SupportedApplicationContext[] = { OID_ATTR_TYPE, 30 }, | |
86 | OID_Member[] = { OID_ATTR_TYPE, 31 }, | |
87 | OID_Owner[] = { OID_ATTR_TYPE, 32 }, | |
88 | OID_RoleOccupant[] = { OID_ATTR_TYPE, 33 }, | |
89 | OID_SeeAlso[] = { OID_ATTR_TYPE, 34 }, | |
90 | OID_UserPassword[] = { OID_ATTR_TYPE, 35 }, | |
91 | OID_UserCertificate[] = { OID_ATTR_TYPE, 36 }, | |
92 | OID_CACertificate[] = { OID_ATTR_TYPE, 37 }, | |
93 | OID_AuthorityRevocationList[] = { OID_ATTR_TYPE, 38 }, | |
94 | OID_CertificateRevocationList[] = { OID_ATTR_TYPE, 39 }, | |
95 | OID_CrossCertificatePair[] = { OID_ATTR_TYPE, 40 }, | |
96 | OID_Name[] = { OID_ATTR_TYPE, 41 }, | |
97 | OID_GivenName[] = { OID_ATTR_TYPE, 42 }, | |
98 | OID_Initials[] = { OID_ATTR_TYPE, 43 }, | |
99 | OID_GenerationQualifier[] = { OID_ATTR_TYPE, 44 }, | |
100 | OID_UniqueIdentifier[] = { OID_ATTR_TYPE, 45 }, | |
101 | OID_DNQualifier[] = { OID_ATTR_TYPE, 46 }, | |
102 | OID_EnhancedSearchGuide[] = { OID_ATTR_TYPE, 47 }, | |
103 | OID_ProtocolInformation[] = { OID_ATTR_TYPE, 48 }, | |
104 | OID_DistinguishedName[] = { OID_ATTR_TYPE, 49 }, | |
105 | OID_UniqueMember[] = { OID_ATTR_TYPE, 50 }, | |
106 | OID_HouseIdentifier[] = { OID_ATTR_TYPE, 51 } | |
107 | ; | |
108 | ||
109 | const SecAsn1Oid | |
110 | CSSMOID_ObjectClass = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_ObjectClass}, | |
111 | CSSMOID_AliasedEntryName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_AliasedEntryName}, | |
112 | CSSMOID_KnowledgeInformation = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_KnowledgeInformation}, | |
113 | CSSMOID_CommonName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_CommonName}, | |
114 | CSSMOID_Surname = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Surname}, | |
115 | CSSMOID_SerialNumber = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_SerialNumber}, | |
116 | CSSMOID_CountryName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_CountryName}, | |
117 | CSSMOID_LocalityName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_LocalityName}, | |
118 | CSSMOID_StateProvinceName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_StateProvinceName}, | |
119 | CSSMOID_CollectiveStateProvinceName | |
120 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveStateProvinceName}, | |
121 | CSSMOID_StreetAddress = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_StreetAddress}, | |
122 | CSSMOID_CollectiveStreetAddress = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveStreetAddress}, | |
123 | CSSMOID_OrganizationName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_OrganizationName}, | |
124 | CSSMOID_CollectiveOrganizationName | |
125 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveOrganizationName}, | |
126 | CSSMOID_OrganizationalUnitName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_OrganizationalUnitName}, | |
127 | CSSMOID_CollectiveOrganizationalUnitName | |
128 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveOrganizationalUnitName}, | |
129 | CSSMOID_Title = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Title}, | |
130 | CSSMOID_Description = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Description}, | |
131 | CSSMOID_SearchGuide = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_SearchGuide}, | |
132 | CSSMOID_BusinessCategory = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_BusinessCategory}, | |
133 | CSSMOID_PostalAddress = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PostalAddress}, | |
134 | CSSMOID_CollectivePostalAddress = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectivePostalAddress}, | |
135 | CSSMOID_PostalCode = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PostalCode}, | |
136 | CSSMOID_CollectivePostalCode = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectivePostalCode}, | |
137 | CSSMOID_PostOfficeBox = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PostOfficeBox}, | |
138 | CSSMOID_CollectivePostOfficeBox = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectivePostOfficeBox}, | |
139 | CSSMOID_PhysicalDeliveryOfficeName | |
140 | = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PhysicalDeliveryOfficeName}, | |
141 | CSSMOID_CollectivePhysicalDeliveryOfficeName | |
142 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectivePhysicalDeliveryOfficeName}, | |
143 | CSSMOID_TelephoneNumber = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_TelephoneNumber}, | |
144 | CSSMOID_CollectiveTelephoneNumber | |
145 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveTelephoneNumber}, | |
146 | CSSMOID_TelexNumber = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_TelexNumber}, | |
147 | CSSMOID_CollectiveTelexNumber = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveTelexNumber}, | |
148 | CSSMOID_TelexTerminalIdentifier = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_TelexTerminalIdentifier}, | |
149 | CSSMOID_CollectiveTelexTerminalIdentifier | |
150 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveTelexTerminalIdentifier}, | |
151 | CSSMOID_FacsimileTelephoneNumber= { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_FacsimileTelephoneNumber}, | |
152 | CSSMOID_CollectiveFacsimileTelephoneNumber | |
153 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveFacsimileTelephoneNumber}, | |
154 | CSSMOID_X_121Address = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_X_121Address}, | |
155 | CSSMOID_InternationalISDNNumber = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_InternationalISDNNumber}, | |
156 | CSSMOID_CollectiveInternationalISDNNumber | |
157 | = { OID_ATTR_TYPE_LENGTH+2, (uint8_t *)OID_CollectiveInternationalISDNNumber}, | |
158 | CSSMOID_RegisteredAddress = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_RegisteredAddress}, | |
159 | CSSMOID_DestinationIndicator = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_DestinationIndicator}, | |
160 | CSSMOID_PreferredDeliveryMethod = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PreferredDeliveryMethod}, | |
161 | CSSMOID_PresentationAddress = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_PresentationAddress}, | |
162 | CSSMOID_SupportedApplicationContext | |
163 | = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_SupportedApplicationContext}, | |
164 | CSSMOID_Member = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Member}, | |
165 | CSSMOID_Owner = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Owner}, | |
166 | CSSMOID_RoleOccupant = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_RoleOccupant}, | |
167 | CSSMOID_SeeAlso = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_SeeAlso}, | |
168 | CSSMOID_UserPassword = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_UserPassword}, | |
169 | CSSMOID_UserCertificate = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_UserCertificate}, | |
170 | CSSMOID_CACertificate = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_CACertificate}, | |
171 | CSSMOID_AuthorityRevocationList = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_AuthorityRevocationList}, | |
172 | CSSMOID_CertificateRevocationList | |
173 | = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_CertificateRevocationList}, | |
174 | CSSMOID_CrossCertificatePair = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_CrossCertificatePair}, | |
175 | CSSMOID_Name = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Name}, | |
176 | CSSMOID_GivenName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_GivenName}, | |
177 | CSSMOID_Initials = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_Initials}, | |
178 | CSSMOID_GenerationQualifier = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_GenerationQualifier}, | |
179 | CSSMOID_UniqueIdentifier = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_UniqueIdentifier}, | |
180 | CSSMOID_DNQualifier = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_DNQualifier}, | |
181 | CSSMOID_EnhancedSearchGuide = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_EnhancedSearchGuide}, | |
182 | CSSMOID_ProtocolInformation = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_ProtocolInformation}, | |
183 | CSSMOID_DistinguishedName = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_DistinguishedName}, | |
184 | CSSMOID_UniqueMember = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_UniqueMember}, | |
185 | CSSMOID_HouseIdentifier = { OID_ATTR_TYPE_LENGTH+1, (uint8_t *)OID_HouseIdentifier} | |
186 | ; | |
187 | ||
188 | ||
189 | /* From PKCS 9 */ | |
190 | static const uint8_t | |
191 | OID_EmailAddress[] = { OID_PKCS_9, 1 }, | |
192 | OID_UnstructuredName[] = { OID_PKCS_9, 2 }, | |
193 | OID_ContentType[] = { OID_PKCS_9, 3 }, | |
194 | OID_MessageDigest[] = { OID_PKCS_9, 4 }, | |
195 | OID_SigningTime[] = { OID_PKCS_9, 5 }, | |
196 | OID_CounterSignature[] = { OID_PKCS_9, 6 }, | |
197 | OID_ChallengePassword[] = { OID_PKCS_9, 7 }, | |
198 | OID_UnstructuredAddress[] = { OID_PKCS_9, 8 }, | |
199 | OID_ExtendedCertificateAttributes[] = { OID_PKCS_9, 9 } | |
200 | ; | |
201 | ||
202 | const SecAsn1Oid | |
203 | CSSMOID_EmailAddress = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_EmailAddress}, | |
204 | CSSMOID_UnstructuredName = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_UnstructuredName}, | |
205 | CSSMOID_ContentType = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_ContentType}, | |
206 | CSSMOID_MessageDigest = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_MessageDigest}, | |
207 | CSSMOID_SigningTime = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_SigningTime}, | |
208 | CSSMOID_CounterSignature = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_CounterSignature}, | |
209 | CSSMOID_ChallengePassword = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_ChallengePassword}, | |
210 | CSSMOID_UnstructuredAddress = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_UnstructuredAddress}, | |
211 | CSSMOID_ExtendedCertificateAttributes = {OID_PKCS_9_LENGTH+1, (uint8_t *)OID_ExtendedCertificateAttributes}; | |
212 | ||
213 | /* PKIX */ | |
214 | static const uint8_t | |
215 | OID_QT_CPS[] = { OID_QT, 1 }, | |
216 | OID_QT_UNOTICE[] = { OID_QT, 2 }, | |
217 | _OID_AD_OCSP[] = { OID_AD_OCSP }, | |
218 | OID_AD_CA_ISSUERS[] = { OID_AD, 2 }, | |
219 | OID_AD_TIME_STAMPING[] = { OID_AD, 3 }, | |
220 | OID_AD_CA_REPOSITORY[] = { OID_AD, 5 }, | |
221 | OID_PDA_DATE_OF_BIRTH[] = { OID_PDA, 1 }, | |
222 | OID_PDA_PLACE_OF_BIRTH[] = { OID_PDA, 2 }, | |
223 | OID_PDA_GENDER[] = { OID_PDA, 3 }, | |
224 | OID_PDA_COUNTRY_CITIZEN[] = { OID_PDA, 4 }, | |
225 | OID_PDA_COUNTRY_RESIDENCE[] = { OID_PDA, 5 }, | |
226 | OID_QCS_SYNTAX_V1[] = { OID_QCS, 1 }, | |
227 | OID_QCS_SYNTAX_V2[] = { OID_QCS, 2 } | |
228 | ; | |
229 | ||
230 | /* ETSI */ | |
231 | static const uint8_t | |
232 | OID_ETSI_QCS_QC_COMPLICANCE[] = { OID_ETSI_QCS, 1 }, | |
233 | OID_ETSI_QCS_QC_LIMIT_VALUE[] = { OID_ETSI_QCS, 2 }, | |
234 | __unused OID_ETSI_QCS_QC_RETENTION[] = { OID_ETSI_QCS, 3 }, | |
235 | __unused OID_ETSI_QCS_QC_SSCD[] = { OID_ETSI_QCS, 4 } | |
236 | ; | |
237 | ||
238 | const SecAsn1Oid | |
239 | CSSMOID_QT_CPS = {OID_QT_LENGTH+1, (uint8_t *)OID_QT_CPS}, | |
240 | CSSMOID_QT_UNOTICE = {OID_QT_LENGTH+1, (uint8_t *)OID_QT_UNOTICE}, | |
241 | CSSMOID_AD_OCSP = {OID_AD_LENGTH+1, (uint8_t *)_OID_AD_OCSP}, | |
242 | CSSMOID_AD_CA_ISSUERS = {OID_AD_LENGTH+1, (uint8_t *)OID_AD_CA_ISSUERS}, | |
243 | CSSMOID_AD_TIME_STAMPING = {OID_AD_LENGTH+1, (uint8_t *)OID_AD_TIME_STAMPING}, | |
244 | CSSMOID_AD_CA_REPOSITORY = {OID_AD_LENGTH+1, (uint8_t *)OID_AD_CA_REPOSITORY}, | |
245 | CSSMOID_PDA_DATE_OF_BIRTH = {OID_PDA_LENGTH+1, (uint8_t *)OID_PDA_DATE_OF_BIRTH}, | |
246 | CSSMOID_PDA_PLACE_OF_BIRTH = {OID_PDA_LENGTH+1, (uint8_t *)OID_PDA_PLACE_OF_BIRTH}, | |
247 | CSSMOID_PDA_GENDER = {OID_PDA_LENGTH+1, (uint8_t *)OID_PDA_GENDER}, | |
248 | CSSMOID_PDA_COUNTRY_CITIZEN = {OID_PDA_LENGTH+1, (uint8_t *)OID_PDA_COUNTRY_CITIZEN}, | |
249 | CSSMOID_PDA_COUNTRY_RESIDENCE = {OID_PDA_LENGTH+1, (uint8_t *)OID_PDA_COUNTRY_RESIDENCE}, | |
250 | CSSMOID_OID_QCS_SYNTAX_V1 = {OID_QCS_LENGTH+1, (uint8_t *)OID_QCS_SYNTAX_V1}, | |
251 | CSSMOID_OID_QCS_SYNTAX_V2 = {OID_QCS_LENGTH+1, (uint8_t *)OID_QCS_SYNTAX_V2} | |
252 | ; | |
253 | ||
254 | const SecAsn1Oid | |
255 | CSSMOID_ETSI_QCS_QC_COMPLIANCE = {OID_ETSI_QCS_LENGTH + 1, | |
256 | (uint8_t *)OID_ETSI_QCS_QC_COMPLICANCE}, | |
257 | CSSMOID_ETSI_QCS_QC_LIMIT_VALUE = {OID_ETSI_QCS_LENGTH + 1, | |
258 | (uint8_t *)OID_ETSI_QCS_QC_LIMIT_VALUE}, | |
259 | CSSMOID_ETSI_QCS_QC_RETENTION = {OID_ETSI_QCS_LENGTH + 1, | |
260 | (uint8_t *)OID_ETSI_QCS_QC_COMPLICANCE}, | |
261 | CSSMOID_ETSI_QCS_QC_SSCD = {OID_ETSI_QCS_LENGTH + 1, | |
262 | (uint8_t *)OID_ETSI_QCS_QC_COMPLICANCE} | |
263 | ; | |
264 | ||
265 | #define OID_PKCS12_BagTypes OID_PKCS_12,10,1 | |
266 | #define OID_PKCS12_BagTypesLength OID_PKCS_12_LENGTH+2 | |
267 | ||
268 | #define ID_PKCS9_CertTypes OID_PKCS_9, 22 | |
269 | #define OID_PKCS9_CertTypesLength OID_PKCS_9_LENGTH+1 | |
270 | #define ID_PKCS9_CrlTypes OID_PKCS_9, 23 | |
271 | #define OID_PKCS9_CrlTypesLength OID_PKCS_9_LENGTH+1 | |
272 | ||
273 | static const uint8_t | |
274 | OID_PKCS7_Data[] = { OID_PKCS_7, 1}, | |
275 | OID_PKCS7_SignedData[] = { OID_PKCS_7, 2}, | |
276 | OID_PKCS7_EnvelopedData[] = { OID_PKCS_7, 3}, | |
277 | OID_PKCS7_SignedAndEnvelopedData[] = { OID_PKCS_7, 4}, | |
278 | OID_PKCS7_DigestedData[] = { OID_PKCS_7, 5}, | |
279 | OID_PKCS7_EncryptedData[] = { OID_PKCS_7, 6}, | |
280 | OID_PKCS7_DataWithAttributes[] = { OID_PKCS_7, 7}, | |
281 | OID_PKCS7_EncryptedPrivateKeyInfo[] = { OID_PKCS_7, 8}, | |
282 | ||
283 | OID_PKCS9_FriendlyName[] = { OID_PKCS_9, 20}, | |
284 | OID_PKCS9_LocalKeyId[] = { OID_PKCS_9, 21}, | |
285 | OID_PKCS9_CertTypes[] = { ID_PKCS9_CertTypes }, | |
286 | OID_PKCS9_CrlTypes[] = { ID_PKCS9_CrlTypes }, | |
287 | OID_PKCS9_X509Certificate[] = { ID_PKCS9_CertTypes, 1 }, | |
288 | OID_PKCS9_SdsiCertificate[] = { ID_PKCS9_CertTypes, 2 }, | |
289 | OID_PKCS9_X509Crl[] = { ID_PKCS9_CrlTypes, 1 }, | |
290 | ||
291 | OID_PKCS12_keyBag[] = { OID_PKCS12_BagTypes, 1}, | |
292 | OID_PKCS12_shroundedKeyBag[] = { OID_PKCS12_BagTypes, 2}, | |
293 | OID_PKCS12_certBag[] = { OID_PKCS12_BagTypes, 3}, | |
294 | OID_PKCS12_crlBag[] = { OID_PKCS12_BagTypes, 4}, | |
295 | OID_PKCS12_secretBag[] = { OID_PKCS12_BagTypes, 5}, | |
296 | OID_PKCS12_safeContentsBag[] = { OID_PKCS12_BagTypes, 6} | |
297 | ; | |
298 | ||
299 | /* | |
300 | -- ContentTypes | |
301 | {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1)} | |
302 | ||
303 | -- Attributes | |
304 | {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) aa(2)} | |
305 | ||
306 | -- eContentType for a time-stamp token | |
307 | ||
308 | id-ct-TSTInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2) | |
309 | us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4} | |
310 | ||
311 | id-aa-timeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2) | |
312 | us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) aa(2) 14 } | |
313 | */ | |
314 | ||
315 | #define ID_PKCS9_SMIME OID_PKCS_9, 16 | |
316 | #define OID_PKCS9_SMIMELength OID_PKCS_9_LENGTH+1 | |
317 | #define ID_PKCS9_CONTENT_TYPES ID_PKCS9_SMIME, 1 | |
318 | #define OID_PKCS9_CT_Length OID_PKCS9_SMIMELength+1 | |
319 | #define ID_PKCS9_ATTRIBUTES ID_PKCS9_SMIME, 2 | |
320 | #define OID_PKCS9_Attrs_Length OID_PKCS9_SMIMELength+1 | |
321 | ||
322 | static const uint8_t | |
323 | OID_ID_CT_TSTInfo[] = { ID_PKCS9_CONTENT_TYPES, 4 }, | |
324 | OID_TimeStampToken[] = { ID_PKCS9_ATTRIBUTES, 14 }; | |
325 | ||
326 | const SecAsn1Oid | |
327 | CSSMOID_PKCS9_Id_Ct_TSTInfo = {OID_PKCS9_CT_Length + 1, | |
328 | (uint8_t *)OID_ID_CT_TSTInfo }, | |
329 | CSSMOID_PKCS9_TimeStampToken = {OID_PKCS9_Attrs_Length + 1, | |
330 | (uint8_t *)OID_TimeStampToken }; | |
331 | ||
332 | ||
333 | const SecAsn1Oid | |
334 | CSSMOID_PKCS7_Data = {OID_PKCS_7_LENGTH + 1, | |
335 | (uint8_t *)OID_PKCS7_Data }, | |
336 | CSSMOID_PKCS7_SignedData = {OID_PKCS_7_LENGTH + 1, | |
337 | (uint8_t *)OID_PKCS7_SignedData }, | |
338 | CSSMOID_PKCS7_EnvelopedData = {OID_PKCS_7_LENGTH + 1, | |
339 | (uint8_t *)OID_PKCS7_EnvelopedData }, | |
340 | CSSMOID_PKCS7_SignedAndEnvelopedData = {OID_PKCS_7_LENGTH + 1, | |
341 | (uint8_t *)OID_PKCS7_SignedAndEnvelopedData }, | |
342 | CSSMOID_PKCS7_DigestedData = {OID_PKCS_7_LENGTH + 1, | |
343 | (uint8_t *)OID_PKCS7_DigestedData }, | |
344 | CSSMOID_PKCS7_EncryptedData = {OID_PKCS_7_LENGTH + 1, | |
345 | (uint8_t *)OID_PKCS7_EncryptedData }, | |
346 | CSSMOID_PKCS7_DataWithAttributes = {OID_PKCS_7_LENGTH + 1, | |
347 | (uint8_t *)OID_PKCS7_DataWithAttributes }, | |
348 | CSSMOID_PKCS7_EncryptedPrivateKeyInfo = {OID_PKCS_7_LENGTH + 1, | |
349 | (uint8_t *)OID_PKCS7_EncryptedPrivateKeyInfo }, | |
350 | ||
351 | CSSMOID_PKCS9_FriendlyName = {OID_PKCS_9_LENGTH + 1, | |
352 | (uint8_t *)OID_PKCS9_FriendlyName }, | |
353 | CSSMOID_PKCS9_LocalKeyId = {OID_PKCS_9_LENGTH + 1, | |
354 | (uint8_t *)OID_PKCS9_LocalKeyId }, | |
355 | CSSMOID_PKCS9_CertTypes = {OID_PKCS_9_LENGTH + 1, | |
356 | (uint8_t *)OID_PKCS9_CertTypes }, | |
357 | CSSMOID_PKCS9_CrlTypes = {OID_PKCS_9_LENGTH + 1, | |
358 | (uint8_t *)OID_PKCS9_CrlTypes }, | |
359 | CSSMOID_PKCS9_X509Certificate = {OID_PKCS9_CertTypesLength + 1, | |
360 | (uint8_t *)OID_PKCS9_X509Certificate }, | |
361 | CSSMOID_PKCS9_SdsiCertificate = {OID_PKCS9_CertTypesLength + 1, | |
362 | (uint8_t *)OID_PKCS9_SdsiCertificate }, | |
363 | CSSMOID_PKCS9_X509Crl = {OID_PKCS9_CrlTypesLength + 1, | |
364 | (uint8_t *)OID_PKCS9_X509Crl }, | |
365 | ||
366 | ||
367 | CSSMOID_PKCS12_keyBag = {OID_PKCS12_BagTypesLength + 1, | |
368 | (uint8_t *)OID_PKCS12_keyBag }, | |
369 | CSSMOID_PKCS12_shroudedKeyBag = {OID_PKCS12_BagTypesLength + 1, | |
370 | (uint8_t *)OID_PKCS12_shroundedKeyBag }, | |
371 | CSSMOID_PKCS12_certBag = {OID_PKCS12_BagTypesLength + 1, | |
372 | (uint8_t *)OID_PKCS12_certBag }, | |
373 | CSSMOID_PKCS12_crlBag = {OID_PKCS12_BagTypesLength + 1, | |
374 | (uint8_t *)OID_PKCS12_crlBag }, | |
375 | CSSMOID_PKCS12_secretBag = {OID_PKCS12_BagTypesLength + 1, | |
376 | (uint8_t *)OID_PKCS12_secretBag }, | |
377 | CSSMOID_PKCS12_safeContentsBag = {OID_PKCS12_BagTypesLength + 1, | |
378 | (uint8_t *)OID_PKCS12_safeContentsBag } | |
379 | ||
380 | ; | |
381 | ||
382 | /* Kerberos PKINIT CMS ContentInfo types */ | |
383 | ||
384 | static const uint8_t | |
385 | OID_KERBv5_PKINIT_AUTH_DATA[] = { OID_KERBv5_PKINIT, 1 }, | |
386 | OID_KERBv5_PKINIT_DH_KEY_DATA[] = { OID_KERBv5_PKINIT, 2 }, | |
387 | OID_KERBv5_PKINIT_RKEY_DATA[] = { OID_KERBv5_PKINIT, 3 }; | |
388 | ||
389 | const SecAsn1Oid | |
390 | CSSMOID_KERBv5_PKINIT_AUTH_DATA = { OID_KERBv5_PKINIT_LEN + 1, | |
391 | (uint8_t *)OID_KERBv5_PKINIT_AUTH_DATA }, | |
392 | CSSMOID_KERBv5_PKINIT_DH_KEY_DATA = { OID_KERBv5_PKINIT_LEN + 1, | |
393 | (uint8_t *)OID_KERBv5_PKINIT_DH_KEY_DATA }, | |
394 | CSSMOID_KERBv5_PKINIT_RKEY_DATA = { OID_KERBv5_PKINIT_LEN + 1, | |
395 | (uint8_t *)OID_KERBv5_PKINIT_RKEY_DATA }; | |
396 | ||
397 | /* | |
398 | * Additional OIDS for LDAP support | |
399 | */ | |
400 | ||
401 | static const uint8_t | |
402 | OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID_Data[] = {OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID}; | |
403 | ||
404 | const SecAsn1Oid | |
405 | CSSMOID_UserID = {OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID_LENGTH, (uint8_t *)OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID_Data}; | |
406 | ||
407 | static const uint8_t | |
408 | OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT_Data[] = {OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT}; | |
409 | ||
410 | const SecAsn1Oid | |
411 | CSSMOID_DomainComponent = {OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT_LENGTH, (uint8_t *)OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT_Data}; | |
412 | ||
413 | /* ANSI X9.62 and Certicom elliptic curve OIDs */ | |
414 | static const uint8_t | |
415 | OID_X9_62[] = { OID_ANSI_X9_62 }, | |
416 | OID_X9_62_FieldType[] = { OID_ANSI_X9_62_FIELD_TYPE }, | |
417 | OID_X9_62_PubKeyType[] = { OID_ANSI_X9_62_PUBKEY_TYPE }, | |
418 | OID_X9_62_EllCurve[] = { OID_ANSI_X9_62_ELL_CURVE }, | |
419 | OID_X9_62_C_TwoCurve[] = { OID_ANSI_X9_62_C_TWO_CURVE }, | |
420 | OID_X9_62_PrimeCurve[] = { OID_ANSI_X9_62_PRIME_CURVE }, | |
421 | OID_X9_62_SigType[] = { OID_ANSI_X9_62_SIG_TYPE }, | |
422 | ||
423 | /* these two defined in ANSI X9.62 but renamed in common usage */ | |
424 | OID_secp192r1[] = { OID_ANSI_X9_62_PRIME_CURVE, 1 }, | |
425 | OID_secp256r1[] = { OID_ANSI_X9_62_PRIME_CURVE, 7 }, | |
426 | /* remainder defined in Certicom SEC 2 */ | |
427 | OID_Certicom[] = { OID_CERTICOM }, | |
428 | OID_CerticomEllCurve[] = { OID_CERTICOM_ELL_CURVE }, | |
429 | /* curves over prime-order fields */ | |
430 | OID_secp112r1[] = { OID_CERTICOM_ELL_CURVE, 6 }, | |
431 | OID_secp112r2[] = { OID_CERTICOM_ELL_CURVE, 7 }, | |
432 | OID_secp128r1[] = { OID_CERTICOM_ELL_CURVE, 28 }, | |
433 | OID_secp128r2[] = { OID_CERTICOM_ELL_CURVE, 29 }, | |
434 | OID_secp160k1[] = { OID_CERTICOM_ELL_CURVE, 9 }, | |
435 | OID_secp160r1[] = { OID_CERTICOM_ELL_CURVE, 8 }, | |
436 | OID_secp160r2[] = { OID_CERTICOM_ELL_CURVE, 30 }, | |
437 | OID_secp192k1[] = { OID_CERTICOM_ELL_CURVE, 31 }, | |
438 | OID_secp224k1[] = { OID_CERTICOM_ELL_CURVE, 32 }, | |
439 | OID_secp224r1[] = { OID_CERTICOM_ELL_CURVE, 33 }, | |
440 | OID_secp256k1[] = { OID_CERTICOM_ELL_CURVE, 10 }, | |
441 | OID_secp384r1[] = { OID_CERTICOM_ELL_CURVE, 34 }, | |
442 | OID_secp521r1[] = { OID_CERTICOM_ELL_CURVE, 35 }, | |
443 | /* curves over characteristic 2 fields */ | |
444 | OID_sect113r1[] = { OID_CERTICOM_ELL_CURVE, 4 }, | |
445 | OID_sect113r2[] = { OID_CERTICOM_ELL_CURVE, 5 }, | |
446 | OID_sect131r1[] = { OID_CERTICOM_ELL_CURVE, 22 }, | |
447 | OID_sect131r2[] = { OID_CERTICOM_ELL_CURVE, 23 }, | |
448 | OID_sect163k1[] = { OID_CERTICOM_ELL_CURVE, 1 }, | |
449 | OID_sect163r1[] = { OID_CERTICOM_ELL_CURVE, 2 }, | |
450 | OID_sect163r2[] = { OID_CERTICOM_ELL_CURVE, 15 }, | |
451 | OID_sect193r1[] = { OID_CERTICOM_ELL_CURVE, 24 }, | |
452 | OID_sect193r2[] = { OID_CERTICOM_ELL_CURVE, 25 }, | |
453 | OID_sect233k1[] = { OID_CERTICOM_ELL_CURVE, 26 }, | |
454 | OID_sect233r1[] = { OID_CERTICOM_ELL_CURVE, 27 }, | |
455 | OID_sect239k1[] = { OID_CERTICOM_ELL_CURVE, 3 }, | |
456 | OID_sect283k1[] = { OID_CERTICOM_ELL_CURVE, 16 }, | |
457 | OID_sect283r1[] = { OID_CERTICOM_ELL_CURVE, 17 }, | |
458 | OID_sect409k1[] = { OID_CERTICOM_ELL_CURVE, 36 }, | |
459 | OID_sect409r1[] = { OID_CERTICOM_ELL_CURVE, 37 }, | |
460 | OID_sect571k1[] = { OID_CERTICOM_ELL_CURVE, 38 }, | |
461 | OID_sect571r1[] = { OID_CERTICOM_ELL_CURVE, 39 } | |
462 | ; | |
463 | ||
464 | const SecAsn1Oid | |
465 | CSSMOID_X9_62 = {OID_ANSI_X9_42_LEN, (uint8_t *)OID_X9_62 }, | |
466 | CSSMOID_X9_62_FieldType = {OID_ANSI_X9_42_LEN+1, (uint8_t *)OID_X9_62_FieldType }, | |
467 | CSSMOID_X9_62_PubKeyType = {OID_ANSI_X9_42_LEN+1, (uint8_t *)OID_X9_62_PubKeyType }, | |
468 | CSSMOID_X9_62_EllCurve = {OID_ANSI_X9_42_LEN+1, (uint8_t *)OID_X9_62_EllCurve }, | |
469 | CSSMOID_X9_62_C_TwoCurve = {OID_ANSI_X9_62_ELL_CURVE_LEN+1, (uint8_t *)OID_X9_62_C_TwoCurve }, | |
470 | CSSMOID_X9_62_PrimeCurve = {OID_ANSI_X9_62_ELL_CURVE_LEN+1, (uint8_t *)OID_X9_62_PrimeCurve }, | |
471 | CSSMOID_X9_62_SigType = {OID_ANSI_X9_42_LEN+1, (uint8_t *)OID_X9_62_SigType }, | |
472 | CSSMOID_secp192r1 = {OID_ANSI_X9_62_ELL_CURVE_LEN+2, (uint8_t *)OID_secp192r1 }, | |
473 | CSSMOID_secp256r1 = {OID_ANSI_X9_62_ELL_CURVE_LEN+2, (uint8_t *)OID_secp256r1 }, | |
474 | CSSMOID_Certicom = {OID_CERTICOM_LEN, (uint8_t *)OID_Certicom }, | |
475 | CSSMOID_CerticomEllCurve = {OID_CERTICOM_ELL_CURVE_LEN, (uint8_t *)OID_CerticomEllCurve }, | |
476 | CSSMOID_secp112r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp112r1 }, | |
477 | CSSMOID_secp112r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp112r2 }, | |
478 | CSSMOID_secp128r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp128r1 }, | |
479 | CSSMOID_secp128r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp128r2 }, | |
480 | CSSMOID_secp160k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp160k1 }, | |
481 | CSSMOID_secp160r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp160r1 }, | |
482 | CSSMOID_secp160r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp160r2 }, | |
483 | CSSMOID_secp192k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp192k1 }, | |
484 | CSSMOID_secp224k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp224k1 }, | |
485 | CSSMOID_secp224r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp224r1 }, | |
486 | CSSMOID_secp256k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp256k1 }, | |
487 | CSSMOID_secp384r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp384r1 }, | |
488 | CSSMOID_secp521r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_secp521r1 }, | |
489 | CSSMOID_sect113r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect113r1 }, | |
490 | CSSMOID_sect113r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect113r2 }, | |
491 | CSSMOID_sect131r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect131r1 }, | |
492 | CSSMOID_sect131r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect131r2 }, | |
493 | CSSMOID_sect163k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect163k1 }, | |
494 | CSSMOID_sect163r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect163r1 }, | |
495 | CSSMOID_sect163r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect163r2 }, | |
496 | CSSMOID_sect193r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect193r1 }, | |
497 | CSSMOID_sect193r2 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect193r2 }, | |
498 | CSSMOID_sect233k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect233k1 }, | |
499 | CSSMOID_sect233r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect233r1 }, | |
500 | CSSMOID_sect239k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect239k1 }, | |
501 | CSSMOID_sect283k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect283k1 }, | |
502 | CSSMOID_sect283r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect283r1 }, | |
503 | CSSMOID_sect409k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect409k1 }, | |
504 | CSSMOID_sect409r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect409r1 }, | |
505 | CSSMOID_sect571k1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect571k1 }, | |
506 | CSSMOID_sect571r1 = {OID_CERTICOM_ELL_CURVE_LEN+1, (uint8_t *)OID_sect571r1 }; |