]> git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_cssm/lib/oidscert.cpp
Security-59754.41.1.tar.gz
[apple/security.git] / OSX / libsecurity_cssm / lib / oidscert.cpp
1 /*
2 * Copyright (c) 2000-2004,2008-2015 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
27 File: oidscert.cpp
28
29 Contains: Object Identifiers for X509 Certificate Library
30
31 */
32
33 #include "oidsbase.h"
34 #include "oidscert.h"
35
36 #pragma clang diagnostic push
37 #pragma clang diagnostic ignored "-Wunused-const-variable"
38
39 /* required until PR-3347430 Security/cdsa/cdsa/oidscert.h is checked
40 * into TOT - pending public API review */
41 extern "C" {
42 extern const CSSM_OID CSSMOID_X509V1IssuerNameStd,
43 CSSMOID_X509V1SubjectNameStd;
44 }
45
46 static const uint8
47
48 /* Certificate OID Fields */
49 X509V3SignedCertificate[] = {INTEL_X509V3_CERT_R08, 0},
50 X509V3SignedCertificateCStruct[] = {INTEL_X509V3_CERT_R08, 0, INTEL_X509_C_DATATYPE},
51 X509V3Certificate[] = {INTEL_X509V3_CERT_R08, 1},
52 X509V3CertificateCStruct[] = {INTEL_X509V3_CERT_R08, 1, INTEL_X509_C_DATATYPE},
53 X509V1Version[] = {INTEL_X509V3_CERT_R08, 2},
54 X509V1SerialNumber[] = {INTEL_X509V3_CERT_R08, 3},
55 X509V1IssuerName[] = {INTEL_X509V3_CERT_R08, 5},
56 X509V1IssuerNameCStruct[] = {INTEL_X509V3_CERT_R08, 5, INTEL_X509_C_DATATYPE},
57 X509V1IssuerNameLDAP[] = {INTEL_X509V3_CERT_R08, 5, INTEL_X509_LDAPSTRING_DATATYPE},
58 X509V1ValidityNotBefore[] = {INTEL_X509V3_CERT_R08, 6},
59 X509V1ValidityNotAfter[] = {INTEL_X509V3_CERT_R08, 7},
60 X509V1SubjectName[] = {INTEL_X509V3_CERT_R08, 8},
61 X509V1SubjectNameCStruct[] = {INTEL_X509V3_CERT_R08, 8, INTEL_X509_C_DATATYPE},
62 X509V1SubjectNameLDAP[] = {INTEL_X509V3_CERT_R08, 8, INTEL_X509_LDAPSTRING_DATATYPE},
63 X509V1SubjectPublicKeyAlgorithm[] = {INTEL_X509V3_CERT_R08, 9},
64 X509V1SubjectPublicKey[] = {INTEL_X509V3_CERT_R08, 10},
65 X509V1CertificateIssuerUniqueId[] = {INTEL_X509V3_CERT_R08, 11},
66 X509V1CertificateSubjectUniqueId[] = {INTEL_X509V3_CERT_R08, 12},
67 X509V3CertificateExtensionStruct[] = {INTEL_X509V3_CERT_R08, 13},
68 X509V3CertificateExtensionCStruct[] = {INTEL_X509V3_CERT_R08, 13, INTEL_X509_C_DATATYPE},
69 X509V3CertificateNumberOfExtensions[] = {INTEL_X509V3_CERT_R08, 14},
70 X509V3CertificateExtensionId[] = {INTEL_X509V3_CERT_R08, 15},
71 X509V3CertificateExtensionCritical[] = {INTEL_X509V3_CERT_R08, 16},
72 X509V3CertificateExtensionValue[] = {INTEL_X509V3_CERT_R08, 17},
73 X509V1SubjectPublicKeyAlgorithmParameters[] = {INTEL_X509V3_CERT_R08, 18},
74 X509V3CertificateExtensionType[] = {INTEL_X509V3_CERT_R08, 19},
75 CSSMKeyStruct[] = {INTEL_X509V3_CERT_R08, 20},
76 X509V1SubjectPublicKeyCStruct[] = {INTEL_X509V3_CERT_R08, 20, INTEL_X509_C_DATATYPE},
77 X509V3CertificateExtensionsStruct[] = {INTEL_X509V3_CERT_R08, 21},
78 X509V3CertificateExtensionsCStruct[] = {INTEL_X509V3_CERT_R08, 21, INTEL_X509_C_DATATYPE},
79 X509V1SubjectNameStd[] = {INTEL_X509V3_CERT_R08, 22},
80 X509V1IssuerNameStd[] = {INTEL_X509V3_CERT_R08, 23},
81
82 /* Signature OID Fields */
83 X509V1SignatureStruct[] = {INTEL_X509V3_SIGN_R08, 0},
84 X509V1SignatureCStruct[] = {INTEL_X509V3_SIGN_R08, 0, INTEL_X509_C_DATATYPE},
85 /* for the algorithm ID in the cert proper */
86 X509V1SignatureAlgorithm[] = {INTEL_X509V3_SIGN_R08, 1},
87 /* for the one in TBSCert */
88 X509V1SignatureAlgorithmTBS[] = {INTEL_X509V3_SIGN_R08, 10},
89 X509V1SignatureAlgorithmParameters[] = {INTEL_X509V3_SIGN_R08, 3},
90 X509V1Signature[] = {INTEL_X509V3_SIGN_R08, 2},
91
92 /* Extension OID Fields */
93 SubjectSignatureBitmap[] = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS, 1},
94 SubjectPicture[] = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS, 2},
95 SubjectEmailAddress[] = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS, 3},
96 UseExemptions[] = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS, 4};
97
98
99 const CSSM_OID
100
101 /* Certificate OIDS */
102 CSSMOID_X509V3SignedCertificate = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V3SignedCertificate},
103 CSSMOID_X509V3SignedCertificateCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2,
104 (uint8 *)X509V3SignedCertificateCStruct},
105 CSSMOID_X509V3Certificate = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V3Certificate},
106 CSSMOID_X509V3CertificateCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2, (uint8 *)X509V3CertificateCStruct},
107 CSSMOID_X509V1Version = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1Version},
108 CSSMOID_X509V1SerialNumber = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1SerialNumber},
109 CSSMOID_X509V1IssuerName = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1IssuerName},
110 CSSMOID_X509V1IssuerNameStd = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1IssuerNameStd},
111 CSSMOID_X509V1IssuerNameCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2, (uint8 *)X509V1IssuerNameCStruct},
112 CSSMOID_X509V1IssuerNameLDAP = {INTEL_X509V3_CERT_R08_LENGTH+2, (uint8 *)X509V1IssuerNameLDAP},
113 CSSMOID_X509V1ValidityNotBefore = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1ValidityNotBefore},
114 CSSMOID_X509V1ValidityNotAfter = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1ValidityNotAfter},
115 CSSMOID_X509V1SubjectName = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1SubjectName},
116 CSSMOID_X509V1SubjectNameStd = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1SubjectNameStd},
117 CSSMOID_X509V1SubjectNameCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2, (uint8 *)X509V1SubjectNameCStruct},
118 CSSMOID_X509V1SubjectNameLDAP = {INTEL_X509V3_CERT_R08_LENGTH+2, (uint8 *)X509V1SubjectNameLDAP},
119 CSSMOID_CSSMKeyStruct = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)CSSMKeyStruct},
120 CSSMOID_X509V1SubjectPublicKeyCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2,
121 (uint8 *)X509V1SubjectPublicKeyCStruct},
122 CSSMOID_X509V1SubjectPublicKeyAlgorithm = {INTEL_X509V3_CERT_R08_LENGTH+1,
123 (uint8 *)X509V1SubjectPublicKeyAlgorithm},
124 CSSMOID_X509V1SubjectPublicKeyAlgorithmParameters = {INTEL_X509V3_CERT_R08_LENGTH+1,
125 (uint8 *)X509V1SubjectPublicKeyAlgorithmParameters},
126 CSSMOID_X509V1SubjectPublicKey = {INTEL_X509V3_CERT_R08_LENGTH+1, (uint8 *)X509V1SubjectPublicKey},
127 CSSMOID_X509V1CertificateIssuerUniqueId = {INTEL_X509V3_CERT_R08_LENGTH+1,
128 (uint8 *)X509V1CertificateIssuerUniqueId},
129 CSSMOID_X509V1CertificateSubjectUniqueId = {INTEL_X509V3_CERT_R08_LENGTH+1,
130 (uint8 *)X509V1CertificateSubjectUniqueId},
131 CSSMOID_X509V3CertificateExtensionsStruct = {INTEL_X509V3_CERT_R08_LENGTH+1,
132 (uint8 *)X509V3CertificateExtensionsStruct},
133 CSSMOID_X509V3CertificateExtensionsCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2,
134 (uint8 *)X509V3CertificateExtensionsCStruct},
135 CSSMOID_X509V3CertificateNumberOfExtensions = {INTEL_X509V3_CERT_R08_LENGTH+1,
136 (uint8 *)X509V3CertificateNumberOfExtensions},
137 CSSMOID_X509V3CertificateExtensionStruct = {INTEL_X509V3_CERT_R08_LENGTH+1,
138 (uint8 *)X509V3CertificateExtensionStruct},
139 CSSMOID_X509V3CertificateExtensionCStruct = {INTEL_X509V3_CERT_R08_LENGTH+2,
140 (uint8 *)X509V3CertificateExtensionCStruct},
141 CSSMOID_X509V3CertificateExtensionId = {INTEL_X509V3_CERT_R08_LENGTH+1,
142 (uint8 *)X509V3CertificateExtensionId},
143 CSSMOID_X509V3CertificateExtensionCritical = {INTEL_X509V3_CERT_R08_LENGTH+1,
144 (uint8 *)X509V3CertificateExtensionCritical},
145 CSSMOID_X509V3CertificateExtensionType = {INTEL_X509V3_CERT_R08_LENGTH+1,
146 (uint8 *)X509V3CertificateExtensionType},
147 CSSMOID_X509V3CertificateExtensionValue = {INTEL_X509V3_CERT_R08_LENGTH+1,
148 (uint8 *)X509V3CertificateExtensionValue},
149
150 /* Signature OID Fields */
151 CSSMOID_X509V1SignatureStruct = {INTEL_X509V3_SIGN_R08_LENGTH+1, (uint8 *)X509V1SignatureStruct},
152 CSSMOID_X509V1SignatureCStruct = {INTEL_X509V3_SIGN_R08_LENGTH+2, (uint8 *)X509V1SignatureCStruct},
153 CSSMOID_X509V1SignatureAlgorithm = {INTEL_X509V3_SIGN_R08_LENGTH+1, (uint8 *)X509V1SignatureAlgorithm},
154 CSSMOID_X509V1SignatureAlgorithmTBS = {INTEL_X509V3_SIGN_R08_LENGTH+1, (uint8 *)X509V1SignatureAlgorithmTBS},
155 CSSMOID_X509V1SignatureAlgorithmParameters = {INTEL_X509V3_SIGN_R08_LENGTH+1,
156 (uint8 *)X509V1SignatureAlgorithmParameters},
157 CSSMOID_X509V1Signature = {INTEL_X509V3_SIGN_R08_LENGTH+1, (uint8 *)X509V1Signature},
158
159 /* Extension OID Fields */
160 CSSMOID_SubjectSignatureBitmap = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH+1, (uint8 *)SubjectSignatureBitmap},
161 CSSMOID_SubjectPicture = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH+1, (uint8 *)SubjectPicture},
162 CSSMOID_SubjectEmailAddress = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH+1, (uint8 *)SubjectEmailAddress},
163 CSSMOID_UseExemptions = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH+1, (uint8 *)UseExemptions};
164
165
166 /***
167 *** Apple addenda.
168 ***/
169
170 /*
171 * Standard Cert extensions.
172 */
173 static const uint8
174 OID_SubjectDirectoryAttributes[] = { OID_EXTENSION, 9 },
175 OID_SubjectKeyIdentifier[] = { OID_EXTENSION, 14 },
176 OID_KeyUsage[] = { OID_EXTENSION, 15 },
177 OID_PrivateKeyUsagePeriod[] = { OID_EXTENSION, 16 },
178 OID_SubjectAltName[] = { OID_EXTENSION, 17 },
179 OID_IssuerAltName[] = { OID_EXTENSION, 18 },
180 OID_BasicConstraints[] = { OID_EXTENSION, 19 },
181 OID_CrlNumber[] = { OID_EXTENSION, 20 },
182 OID_CrlReason[] = { OID_EXTENSION, 21 },
183 OID_HoldInstructionCode[] = { OID_EXTENSION, 23 },
184 OID_InvalidityDate[] = { OID_EXTENSION, 24 },
185 OID_DeltaCrlIndicator[] = { OID_EXTENSION, 27 },
186 OID_IssuingDistributionPoint[] = { OID_EXTENSION, 28 },
187 OID_CertIssuer[] = { OID_EXTENSION, 29 },
188 OID_NameConstraints[] = { OID_EXTENSION, 30 },
189 OID_CrlDistributionPoints[] = { OID_EXTENSION, 31 },
190 OID_CertificatePolicies[] = { OID_EXTENSION, 32 },
191 OID_PolicyMappings[] = { OID_EXTENSION, 33 },
192 OID_AuthorityKeyIdentifier[] = { OID_EXTENSION, 35 },
193 OID_PolicyConstraints[] = { OID_EXTENSION, 36 },
194 OID_ExtendedKeyUsage[] = { OID_EXTENSION, 37 },
195 OID_InhibitAnyPolicy[] = { OID_EXTENSION, 54 },
196 OID_AuthorityInfoAccess[] = { OID_PE, 1 },
197 OID_BiometricInfo[] = { OID_PE, 2 },
198 OID_QC_Statements[] = { OID_PE, 3 },
199 OID_SubjectInfoAccess[] = { OID_PE, 11 },
200
201 /* Individual OIDS appearing in an ExtendedKeyUsage extension */
202 OID_ExtendedKeyUsageAny[] = { OID_EXTENSION, 37, 0 },
203 OID_KP_ServerAuth[] = { OID_KP, 1 },
204 OID_KP_ClientAuth[] = { OID_KP, 2 },
205 OID_KP_ExtendedUseCodeSigning[] = { OID_KP, 3 },
206 OID_KP_EmailProtection[] = { OID_KP, 4 },
207 OID_KP_TimeStamping[] = { OID_KP, 8 },
208 OID_KP_OCSPSigning[] = { OID_KP, 9 },
209 /* Kerberos PKINIT Extended Key Use values */
210 OID_KERBv5_PKINIT_KP_CLIENT_AUTH[] = { OID_KERBv5_PKINIT, 4 },
211 OID_KERBv5_PKINIT_KP_KDC[] = { OID_KERBv5_PKINIT, 5 },
212 /* IPSec */
213 OID_EKU_IPSec[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x08, 0x02, 0x02 },
214
215 /* .mac Certificate Extended Key Use values */
216 OID_DOTMAC_CERT_EXTENSION[] = { APPLE_DOTMAC_CERT_EXTEN_OID },
217 OID_DOTMAC_CERT_IDENTITY[] = { APPLE_DOTMAC_CERT_EXTEN_OID, 1 },
218 OID_DOTMAC_CERT_EMAIL_SIGN[] = { APPLE_DOTMAC_CERT_EXTEN_OID, 2 },
219 OID_DOTMAC_CERT_EMAIL_ENCRYPT[] = { APPLE_DOTMAC_CERT_EXTEN_OID, 3 },
220 /* Other Apple extended key usage values */
221 OID_APPLE_EKU_CODE_SIGNING[] = { APPLE_EKU_CODE_SIGNING },
222 OID_APPLE_EKU_CODE_SIGNING_DEV[] = { APPLE_EKU_CODE_SIGNING, 1 },
223 OID_APPLE_EKU_RESOURCE_SIGNING[] = { APPLE_EKU_CODE_SIGNING, 4 },
224 OID_APPLE_EKU_ICHAT_SIGNING[] = { APPLE_EKU_OID, 2 },
225 OID_APPLE_EKU_ICHAT_ENCRYPTION[] = { APPLE_EKU_OID, 3 },
226 OID_APPLE_EKU_SYSTEM_IDENTITY[] = { APPLE_EKU_OID, 4 },
227 OID_APPLE_EKU_PASSBOOK_SIGNING[] = { APPLE_EKU_OID, 14 },
228 OID_APPLE_EKU_PROFILE_SIGNING[] = { APPLE_EKU_OID, 16 },
229 OID_APPLE_EKU_QA_PROFILE_SIGNING[] = { APPLE_EKU_OID, 17 },
230 /* Apple cert policies */
231 OID_APPLE_CERT_POLICY[] = { APPLE_CERT_POLICIES, 1 },
232 OID_DOTMAC_CERT_POLICY[] = { APPLE_CERT_POLICIES, 2 },
233 OID_ADC_CERT_POLICY[] = { APPLE_CERT_POLICIES, 3 },
234 OID_APPLE_CERT_POLICY_MACAPPSTORE[] = { APPLE_CERT_POLICIES_MACAPPSTORE },
235 OID_APPLE_CERT_POLICY_MACAPPSTORE_RECEIPT[] = { APPLE_CERT_POLICIES_MACAPPSTORE_RECEIPT },
236 OID_APPLE_CERT_POLICY_APPLEID[] = { APPLE_CERT_POLICIES_APPLEID },
237 OID_APPLE_CERT_POLICY_APPLEID_SHARING[] = { APPLE_CERT_POLICIES_APPLEID_SHARING },
238 OID_APPLE_CERT_POLICY_MOBILE_STORE_SIGNING[] = { APPLE_CERT_POLICIES_MOBILE_STORE_SIGNING },
239 OID_APPLE_CERT_POLICY_TEST_MOBILE_STORE_SIGNING[] = { APPLE_CERT_POLICIES_TEST_MOBILE_STORE_SIGNING },
240
241 /* Apple-specific extensions */
242 OID_APPLE_EXTENSION[] = { APPLE_EXTENSION_OID },
243 OID_APPLE_EXTENSION_CODE_SIGNING[] = { APPLE_EXTENSION_CODE_SIGNING },
244 OID_APPLE_EXTENSION_APPLE_SIGNING[] = { APPLE_EXTENSION_CODE_SIGNING, 1 },
245 OID_APPLE_EXTENSION_ADC_DEV_SIGNING[] = { APPLE_EXTENSION_CODE_SIGNING, 2 },
246 OID_APPLE_EXTENSION_ADC_APPLE_SIGNING[] = { APPLE_EXTENSION_CODE_SIGNING, 3 },
247 OID_APPLE_EXTENSION_PASSBOOK_SIGNING[] = { APPLE_EXTENSION_CODE_SIGNING, 16 },
248 OID_APPLE_EXTENSION_MACAPPSTORE_RECEIPT[] = { APPLE_EXTENSION_MACAPPSTORE_RECEIPT },
249 OID_APPLE_EXTENSION_INTERMEDIATE_MARKER[] = { APPLE_EXTENSION_INTERMEDIATE_MARKER },
250 OID_APPLE_EXTENSION_WWDR_INTERMEDIATE[] = { APPLE_EXTENSION_WWDR_INTERMEDIATE },
251 OID_APPLE_EXTENSION_ITMS_INTERMEDIATE[] = { APPLE_EXTENSION_ITMS_INTERMEDIATE },
252 OID_APPLE_EXTENSION_AAI_INTERMEDIATE[] = { APPLE_EXTENSION_AAI_INTERMEDIATE },
253 OID_APPLE_EXTENSION_APPLEID_INTERMEDIATE[] = { APPLE_EXTENSION_APPLEID_INTERMEDIATE },
254 OID_APPLE_EXTENSION_APPLEID_SHARING[] = { APPLE_EXTENSION_APPLEID_SHARING },
255 OID_APPLE_EXTENSION_SYSINT2_INTERMEDIATE[] = { APPLE_EXTENSION_SYSINT2_INTERMEDIATE },
256 OID_APPLE_EXTENSION_DEVELOPER_AUTHENTICATION[] = { APPLE_EXTENSION_DEVELOPER_AUTHENTICATION },
257 OID_APPLE_EXTENSION_SERVER_AUTHENTICATION[] = { APPLE_EXTENSION_SERVER_AUTHENTICATION },
258 OID_APPLE_EXTENSION_ESCROW_SERVICE[] = { APPLE_EXTENSION_ESCROW_SERVICE },
259 OID_APPLE_EXTENSION_PROVISIONING_PROFILE_SIGNING[] = { APPLE_EXTENSION_PROVISIONING_PROFILE_SIGNING }
260 ;
261
262 #define OID_PKCS_CE_LENGTH OID_EXTENSION_LENGTH + 1
263
264 const CSSM_OID
265 CSSMOID_SubjectDirectoryAttributes = { OID_PKCS_CE_LENGTH, (uint8 *)OID_SubjectDirectoryAttributes},
266 CSSMOID_SubjectKeyIdentifier = { OID_PKCS_CE_LENGTH, (uint8 *)OID_SubjectKeyIdentifier},
267 CSSMOID_KeyUsage = { OID_PKCS_CE_LENGTH, (uint8 *)OID_KeyUsage},
268 CSSMOID_PrivateKeyUsagePeriod = { OID_PKCS_CE_LENGTH, (uint8 *)OID_PrivateKeyUsagePeriod},
269 CSSMOID_SubjectAltName = { OID_PKCS_CE_LENGTH, (uint8 *)OID_SubjectAltName},
270 CSSMOID_IssuerAltName = { OID_PKCS_CE_LENGTH, (uint8 *)OID_IssuerAltName},
271 CSSMOID_BasicConstraints = { OID_PKCS_CE_LENGTH, (uint8 *)OID_BasicConstraints},
272 CSSMOID_CrlNumber = { OID_PKCS_CE_LENGTH, (uint8 *)OID_CrlNumber},
273 CSSMOID_CrlReason = { OID_PKCS_CE_LENGTH, (uint8 *)OID_CrlReason},
274 CSSMOID_HoldInstructionCode = { OID_PKCS_CE_LENGTH, (uint8 *)OID_HoldInstructionCode},
275 CSSMOID_InvalidityDate = { OID_PKCS_CE_LENGTH, (uint8 *)OID_InvalidityDate},
276 CSSMOID_DeltaCrlIndicator = { OID_PKCS_CE_LENGTH, (uint8 *)OID_DeltaCrlIndicator},
277 CSSMOID_IssuingDistributionPoint = { OID_PKCS_CE_LENGTH, (uint8 *)OID_IssuingDistributionPoint},
278 /* for backwards compatibility... */
279 CSSMOID_IssuingDistributionPoints = { OID_PKCS_CE_LENGTH, (uint8 *)OID_IssuingDistributionPoint},
280 CSSMOID_CertIssuer = { OID_PKCS_CE_LENGTH, (uint8 *)OID_CertIssuer},
281 CSSMOID_NameConstraints = { OID_PKCS_CE_LENGTH, (uint8 *)OID_NameConstraints},
282 CSSMOID_CrlDistributionPoints = { OID_PKCS_CE_LENGTH, (uint8 *)OID_CrlDistributionPoints},
283 CSSMOID_CertificatePolicies = { OID_PKCS_CE_LENGTH, (uint8 *)OID_CertificatePolicies},
284 CSSMOID_PolicyMappings = { OID_PKCS_CE_LENGTH, (uint8 *)OID_PolicyMappings},
285 CSSMOID_PolicyConstraints = { OID_PKCS_CE_LENGTH, (uint8 *)OID_PolicyConstraints},
286 CSSMOID_AuthorityKeyIdentifier = { OID_PKCS_CE_LENGTH, (uint8 *)OID_AuthorityKeyIdentifier},
287 CSSMOID_ExtendedKeyUsage = { OID_PKCS_CE_LENGTH, (uint8 *)OID_ExtendedKeyUsage},
288 CSSMOID_InhibitAnyPolicy = { OID_PKCS_CE_LENGTH, (uint8 *)OID_InhibitAnyPolicy},
289 CSSMOID_AuthorityInfoAccess = { OID_PE_LENGTH+1, (uint8 *)OID_AuthorityInfoAccess},
290 CSSMOID_BiometricInfo = { OID_PE_LENGTH+1, (uint8 *)OID_BiometricInfo},
291 CSSMOID_QC_Statements = { OID_PE_LENGTH+1, (uint8 *)OID_QC_Statements},
292 CSSMOID_SubjectInfoAccess = { OID_PE_LENGTH+1, (uint8 *)OID_SubjectInfoAccess},
293 CSSMOID_ExtendedKeyUsageAny = { OID_PKCS_CE_LENGTH+1, (uint8 *)OID_ExtendedKeyUsageAny},
294 CSSMOID_ServerAuth = { OID_KP_LENGTH+1, (uint8 *)OID_KP_ServerAuth},
295 CSSMOID_ClientAuth = { OID_KP_LENGTH+1, (uint8 *)OID_KP_ClientAuth},
296 CSSMOID_ExtendedUseCodeSigning = { OID_KP_LENGTH+1, (uint8 *)OID_KP_ExtendedUseCodeSigning},
297 CSSMOID_EmailProtection = { OID_KP_LENGTH+1, (uint8 *)OID_KP_EmailProtection},
298 CSSMOID_TimeStamping = { OID_KP_LENGTH+1, (uint8 *)OID_KP_TimeStamping},
299 CSSMOID_OCSPSigning = { OID_KP_LENGTH+1, (uint8 *)OID_KP_OCSPSigning},
300 CSSMOID_KERBv5_PKINIT_KP_CLIENT_AUTH = { OID_KERBv5_PKINIT_LEN + 1,
301 (uint8 *)OID_KERBv5_PKINIT_KP_CLIENT_AUTH },
302 CSSMOID_KERBv5_PKINIT_KP_KDC = { OID_KERBv5_PKINIT_LEN + 1,
303 (uint8 *)OID_KERBv5_PKINIT_KP_KDC },
304 CSSMOID_EKU_IPSec = { 8, (uint8 *)OID_EKU_IPSec },
305 CSSMOID_DOTMAC_CERT_EXTENSION = { APPLE_DOTMAC_CERT_EXTEN_OID_LENGTH,
306 (uint8 *)OID_DOTMAC_CERT_EXTENSION },
307 CSSMOID_DOTMAC_CERT_IDENTITY = { APPLE_DOTMAC_CERT_EXTEN_OID_LENGTH + 1,
308 (uint8 *)OID_DOTMAC_CERT_IDENTITY },
309 CSSMOID_DOTMAC_CERT_EMAIL_SIGN = { APPLE_DOTMAC_CERT_EXTEN_OID_LENGTH + 1,
310 (uint8 *)OID_DOTMAC_CERT_EMAIL_SIGN },
311 CSSMOID_DOTMAC_CERT_EMAIL_ENCRYPT = { APPLE_DOTMAC_CERT_EXTEN_OID_LENGTH + 1,
312 (uint8 *)OID_DOTMAC_CERT_EMAIL_ENCRYPT },
313 CSSMOID_APPLE_CERT_POLICY = { APPLE_CERT_POLICIES_LENGTH + 1,
314 (uint8 *)OID_APPLE_CERT_POLICY },
315 CSSMOID_DOTMAC_CERT_POLICY = { APPLE_CERT_POLICIES_LENGTH + 1,
316 (uint8 *)OID_DOTMAC_CERT_POLICY },
317 CSSMOID_ADC_CERT_POLICY = { APPLE_CERT_POLICIES_LENGTH + 1,
318 (uint8 *)OID_ADC_CERT_POLICY },
319 CSSMOID_MACAPPSTORE_CERT_POLICY = { APPLE_CERT_POLICIES_MACAPPSTORE_LENGTH,
320 (uint8 *)OID_APPLE_CERT_POLICY_MACAPPSTORE },
321 CSSMOID_MACAPPSTORE_RECEIPT_CERT_POLICY = { APPLE_CERT_POLICIES_MACAPPSTORE_RECEIPT_LENGTH,
322 (uint8 *)OID_APPLE_CERT_POLICY_MACAPPSTORE_RECEIPT },
323 CSSMOID_APPLEID_CERT_POLICY = { APPLE_CERT_POLICIES_APPLEID_LENGTH,
324 (uint8 *)OID_APPLE_CERT_POLICY_APPLEID },
325 CSSMOID_APPLEID_SHARING_CERT_POLICY = { APPLE_CERT_POLICIES_APPLEID_SHARING_LENGTH,
326 (uint8 *)OID_APPLE_CERT_POLICY_APPLEID_SHARING },
327 CSSMOID_MOBILE_STORE_SIGNING_POLICY = { APPLE_CERT_POLICIES_MOBILE_STORE_SIGNING_LENGTH,
328 (uint8 *)OID_APPLE_CERT_POLICY_MOBILE_STORE_SIGNING },
329 CSSMOID_TEST_MOBILE_STORE_SIGNING_POLICY = { APPLE_CERT_POLICIES_TEST_MOBILE_STORE_SIGNING_LENGTH,
330 (uint8 *)OID_APPLE_CERT_POLICY_TEST_MOBILE_STORE_SIGNING },
331 CSSMOID_APPLE_EKU_CODE_SIGNING = { APPLE_EKU_CODE_SIGNING_LENGTH,
332 (uint8 *)OID_APPLE_EKU_CODE_SIGNING },
333 CSSMOID_APPLE_EKU_CODE_SIGNING_DEV = { APPLE_EKU_CODE_SIGNING_LENGTH + 1,
334 (uint8 *)OID_APPLE_EKU_CODE_SIGNING_DEV },
335 CSSMOID_APPLE_EKU_RESOURCE_SIGNING = { APPLE_EKU_CODE_SIGNING_LENGTH + 1,
336 (uint8 *)OID_APPLE_EKU_RESOURCE_SIGNING },
337 CSSMOID_APPLE_EKU_ICHAT_SIGNING = { APPLE_EKU_OID_LENGTH + 1,
338 (uint8 *)OID_APPLE_EKU_ICHAT_SIGNING },
339 CSSMOID_APPLE_EKU_ICHAT_ENCRYPTION = { APPLE_EKU_OID_LENGTH + 1,
340 (uint8 *)OID_APPLE_EKU_ICHAT_ENCRYPTION },
341 CSSMOID_APPLE_EKU_SYSTEM_IDENTITY = { APPLE_EKU_OID_LENGTH + 1,
342 (uint8 *)OID_APPLE_EKU_SYSTEM_IDENTITY },
343 CSSMOID_APPLE_EKU_PASSBOOK_SIGNING = { APPLE_EKU_OID_LENGTH + 1,
344 (uint8 *)OID_APPLE_EKU_PASSBOOK_SIGNING },
345 CSSMOID_APPLE_EKU_PROFILE_SIGNING = { APPLE_EKU_OID_LENGTH + 1,
346 (uint8 *)OID_APPLE_EKU_PROFILE_SIGNING },
347 CSSMOID_APPLE_EKU_QA_PROFILE_SIGNING = { APPLE_EKU_OID_LENGTH + 1,
348 (uint8 *)OID_APPLE_EKU_QA_PROFILE_SIGNING },
349 CSSMOID_APPLE_EXTENSION = { APPLE_EXTENSION_OID_LENGTH,
350 (uint8 *)OID_APPLE_EXTENSION },
351 CSSMOID_APPLE_EXTENSION_CODE_SIGNING = { APPLE_EXTENSION_CODE_SIGNING_LENGTH,
352 (uint8 *)OID_APPLE_EXTENSION_CODE_SIGNING },
353 CSSMOID_APPLE_EXTENSION_APPLE_SIGNING = { APPLE_EXTENSION_CODE_SIGNING_LENGTH + 1,
354 (uint8 *)OID_APPLE_EXTENSION_APPLE_SIGNING },
355 CSSMOID_APPLE_EXTENSION_ADC_DEV_SIGNING = { APPLE_EXTENSION_CODE_SIGNING_LENGTH + 2,
356 (uint8 *)OID_APPLE_EXTENSION_ADC_DEV_SIGNING },
357 CSSMOID_APPLE_EXTENSION_ADC_APPLE_SIGNING = { APPLE_EXTENSION_CODE_SIGNING_LENGTH + 3,
358 (uint8 *)OID_APPLE_EXTENSION_ADC_DEV_SIGNING },
359 CSSMOID_APPLE_EXTENSION_PASSBOOK_SIGNING = { APPLE_EXTENSION_CODE_SIGNING_LENGTH + 1,
360 (uint8 *)OID_APPLE_EXTENSION_PASSBOOK_SIGNING },
361 CSSMOID_APPLE_EXTENSION_MACAPPSTORE_RECEIPT = { APPLE_EXTENSION_MACAPPSTORE_RECEIPT_LENGTH,
362 (uint8 *)OID_APPLE_EXTENSION_MACAPPSTORE_RECEIPT },
363 CSSMOID_APPLE_EXTENSION_INTERMEDIATE_MARKER = { APPLE_EXTENSION_INTERMEDIATE_MARKER_LENGTH,
364 (uint8 *)OID_APPLE_EXTENSION_INTERMEDIATE_MARKER },
365 CSSMOID_APPLE_EXTENSION_WWDR_INTERMEDIATE = { APPLE_EXTENSION_WWDR_INTERMEDIATE_LENGTH,
366 (uint8 *)OID_APPLE_EXTENSION_WWDR_INTERMEDIATE },
367 CSSMOID_APPLE_EXTENSION_ITMS_INTERMEDIATE = { APPLE_EXTENSION_ITMS_INTERMEDIATE_LENGTH,
368 (uint8 *)OID_APPLE_EXTENSION_ITMS_INTERMEDIATE },
369 CSSMOID_APPLE_EXTENSION_AAI_INTERMEDIATE = { APPLE_EXTENSION_AAI_INTERMEDIATE_LENGTH,
370 (uint8 *)OID_APPLE_EXTENSION_AAI_INTERMEDIATE },
371 CSSMOID_APPLE_EXTENSION_APPLEID_INTERMEDIATE = { APPLE_EXTENSION_APPLEID_INTERMEDIATE_LENGTH,
372 (uint8 *)OID_APPLE_EXTENSION_APPLEID_INTERMEDIATE },
373 CSSMOID_APPLE_EXTENSION_APPLEID_SHARING = { APPLE_EXTENSION_APPLEID_SHARING_LENGTH + 1,
374 (uint8 *)OID_APPLE_EXTENSION_APPLEID_SHARING },
375 CSSMOID_APPLE_EXTENSION_SYSINT2_INTERMEDIATE = { APPLE_EXTENSION_SYSINT2_INTERMEDIATE_LENGTH,
376 (uint8 *)OID_APPLE_EXTENSION_SYSINT2_INTERMEDIATE },
377 CSSMOID_APPLE_EXTENSION_DEVELOPER_AUTHENTICATION= { APPLE_EXTENSION_DEVELOPER_AUTHENTICATION_LENGTH,
378 (uint8 *)OID_APPLE_EXTENSION_DEVELOPER_AUTHENTICATION },
379 CSSMOID_APPLE_EXTENSION_SERVER_AUTHENTICATION = { APPLE_EXTENSION_SERVER_AUTHENTICATION_LENGTH,
380 (uint8 *)OID_APPLE_EXTENSION_SERVER_AUTHENTICATION },
381 CSSMOID_APPLE_EXTENSION_ESCROW_SERVICE = { APPLE_EXTENSION_ESCROW_SERVICE_LENGTH + 1,
382 (uint8 *)OID_APPLE_EXTENSION_ESCROW_SERVICE },
383 CSSMOID_APPLE_EXTENSION_PROVISIONING_PROFILE_SIGNING = { APPLE_EKU_OID_LENGTH + 1,
384 (uint8 *)OID_APPLE_EXTENSION_PROVISIONING_PROFILE_SIGNING }
385 ;
386
387 /* Apple Intermediate Marker OIDs */
388 #define APPLE_CERT_EXT_INTERMEDIATE_MARKER APPLE_CERT_EXT, 2
389 /* Apple Apple ID Intermediate Marker */
390 #define APPLE_CERT_EXT_INTERMEDIATE_MARKER_APPLEID APPLE_CERT_EXT_INTERMEDIATE_MARKER, 3
391 /*
392 * Apple Apple ID Intermediate Marker (New subCA, no longer shared with push notification server cert issuer
393 *
394 * appleCertificateExtensionAppleIDIntermediate ::=
395 * { appleCertificateExtensionIntermediateMarker 7 }
396 * { 1 2 840 113635 100 6 2 7 }
397 */
398 #define APPLE_CERT_EXT_INTERMEDIATE_MARKER_APPLEID_2 APPLE_CERT_EXT_INTERMEDIATE_MARKER, 7
399
400 /*
401 * Netscape extensions.
402 *
403 * netscape-cert-type OBJECT IDENTIFIER ::=
404 * { 2 16 840 1 113730 1 1 }
405 *
406 * BER = 06 08 60 86 48 01 86 F8 42 01 01
407 */
408 static const uint8 OID_NetscapeCertType[] = {NETSCAPE_CERT_EXTEN, 1};
409 const CSSM_OID CSSMOID_NetscapeCertType =
410 {NETSCAPE_CERT_EXTEN_LENGTH + 1, (uint8 *)OID_NetscapeCertType};
411
412 /*
413 * netscape-cert-sequence ::= { 2 16 840 1 113730 2 5 }
414 *
415 * BER = 06 09 60 86 48 01 86 F8 42 02 05
416 */
417 static const uint8 OID_NetscapeCertSequence[] = { NETSCAPE_BASE_OID, 2, 5 };
418 const CSSM_OID CSSMOID_NetscapeCertSequence =
419 { NETSCAPE_BASE_OID_LEN + 2, (uint8 *)OID_NetscapeCertSequence };
420
421 /*
422 * Netscape version of ServerGatedCrypto ExtendedKeyUse.
423 * OID { 2 16 840 1 113730 4 1 }
424 */
425 static const uint8 OID_Netscape_SGC[] = {NETSCAPE_CERT_POLICY, 1};
426 const CSSM_OID CSSMOID_NetscapeSGC =
427 {NETSCAPE_CERT_POLICY_LENGTH + 1, (uint8 *)OID_Netscape_SGC};
428
429 /*
430 * Microsoft version of ServerGatedCrypto ExtendedKeyUse.
431 * OID { 1 3 6 1 4 1 311 10 3 3 }
432 */
433 static const uint8 OID_Microsoft_SGC[] = {0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x0A, 0x03, 0x03};
434 const CSSM_OID CSSMOID_MicrosoftSGC =
435 {10, (uint8 *)OID_Microsoft_SGC};
436
437 /*
438 * .mac Certificate Extended Key Use values.
439 */
440
441 #pragma clang diagnostic pop