2 * Copyright (c) 2005-2009,2011-2016 Apple Inc. All Rights Reserved.
4 * @APPLE_LICENSE_HEADER_START@
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
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.
21 * @APPLE_LICENSE_HEADER_END@
30 #include <libDER/libDER.h>
32 #define OID_ISO_CCITT_DIR_SERVICE 85
33 #define OID_DS OID_ISO_CCITT_DIR_SERVICE
34 #define OID_ATTR_TYPE OID_DS, 4
35 #define OID_EXTENSION OID_DS, 29
36 #define OID_ISO_STANDARD 40
37 #define OID_ISO_MEMBER 42
38 #define OID_US OID_ISO_MEMBER, 134, 72
40 #define OID_ISO_IDENTIFIED_ORG 43
41 #define OID_OSINET OID_ISO_IDENTIFIED_ORG, 4
42 #define OID_GOSIP OID_ISO_IDENTIFIED_ORG, 5
43 #define OID_DOD OID_ISO_IDENTIFIED_ORG, 6
44 #define OID_OIW OID_ISO_IDENTIFIED_ORG, 14
46 /* From the PKCS Standards */
47 #define OID_RSA OID_US, 134, 247, 13
48 #define OID_RSA_HASH OID_RSA, 2
49 #define OID_RSA_ENCRYPT OID_RSA, 3
50 #define OID_PKCS OID_RSA, 1
51 #define OID_PKCS_1 OID_PKCS, 1
52 #define OID_PKCS_2 OID_PKCS, 2
53 #define OID_PKCS_3 OID_PKCS, 3
54 #define OID_PKCS_4 OID_PKCS, 4
55 #define OID_PKCS_5 OID_PKCS, 5
56 #define OID_PKCS_6 OID_PKCS, 6
57 #define OID_PKCS_7 OID_PKCS, 7
58 #define OID_PKCS_8 OID_PKCS, 8
59 #define OID_PKCS_9 OID_PKCS, 9
60 #define OID_PKCS_10 OID_PKCS, 10
61 #define OID_PKCS_11 OID_PKCS, 11
62 #define OID_PKCS_12 OID_PKCS, 12
65 #define OID_ANSI_X9_62 OID_US, 206, 61
66 #define OID_PUBLIC_KEY_TYPE OID_ANSI_X9_62, 2
67 #define OID_EC_CURVE OID_ANSI_X9_62, 3, 1
68 #define OID_EC_SIG_TYPE OID_ANSI_X9_62, 4
69 #define OID_ECDSA_WITH_SHA2 OID_EC_SIG_TYPE, 3
72 #define OID_CERTICOM OID_ISO_IDENTIFIED_ORG, 132
73 #define OID_CERTICOM_EC_CURVE OID_CERTICOM, 0
76 #define OID_ANSI_X9_42 OID_US, 206, 62, 2
77 #define OID_ANSI_X9_42_SCHEME OID_ANSI_X9_42, 3
78 #define OID_ANSI_X9_42_NAMED_SCHEME OID_ANSI_X9_42, 4
81 #define OID_ANSI_X9_57 OID_US, 206, 56
82 #define OID_ANSI_X9_57_ALGORITHM OID_ANSI_X9_57, 4
84 /* DOD IANA Security related objects. */
85 #define OID_IANA OID_DOD, 1, 5
88 #define OID_KERBv5 OID_IANA, 2
89 #define OID_KERBv5_PKINIT OID_KERBv5, 3
91 /* DOD IANA Mechanisms. */
92 #define OID_MECHANISMS OID_IANA, 5
95 #define OID_PKIX OID_MECHANISMS, 7
96 #define OID_PE OID_PKIX, 1
97 #define OID_QT OID_PKIX, 2
98 #define OID_KP OID_PKIX, 3
99 #define OID_OTHER_NAME OID_PKIX, 8
100 #define OID_PDA OID_PKIX, 9
101 #define OID_QCS OID_PKIX, 11
102 #define OID_AD OID_PKIX, 48
103 #define OID_AD_OCSP OID_AD, 1
104 #define OID_AD_CAISSUERS OID_AD, 2
107 #define OID_ISAKMP OID_MECHANISMS, 8
110 #define OID_ETSI 0x04, 0x00
111 #define OID_ETSI_QCS 0x04, 0x00, 0x8E, 0x46, 0x01
113 #define OID_OIW_SECSIG OID_OIW, 3
115 #define OID_OIW_ALGORITHM OID_OIW_SECSIG, 2
117 /* NIST defined digest algorithm arc (2, 16, 840, 1, 101, 3, 4, 2) */
118 #define OID_NIST_HASHALG 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02
123 #define NETSCAPE_BASE_OID 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42
126 * Netscape cert extension.
128 * netscape-cert-extension OBJECT IDENTIFIER ::=
129 * { 2 16 840 1 113730 1 }
131 * BER = 06 08 60 86 48 01 86 F8 42 01
133 #define NETSCAPE_CERT_EXTEN NETSCAPE_BASE_OID, 0x01
135 #define NETSCAPE_CERT_POLICY NETSCAPE_BASE_OID, 0x04
138 * Apple-specific OID bases
142 * apple OBJECT IDENTIFIER ::=
143 * { iso(1) member-body(2) US(840) 113635 }
145 * BER = 06 06 2A 86 48 86 F7 63
147 #define APPLE_OID OID_US, 0x86, 0xf7, 0x63
149 /* appleDataSecurity OBJECT IDENTIFIER ::=
151 * { 1 2 840 113635 100 }
153 * BER = 06 07 2A 86 48 86 F7 63 64
155 #define APPLE_ADS_OID APPLE_OID, 0x64
158 * appleSecurityAlgorithm OBJECT IDENTIFIER ::=
159 * { appleDataSecurity 2 }
160 * { 1 2 840 113635 100 2 }
162 * BER = 06 08 2A 86 48 86 F7 63 64 02
164 #define APPLE_ALG_OID APPLE_ADS_OID, 2
167 #define ENTRUST_BASE_OID OID_US, 0x86, 0xf6, 0x7d
170 * Entrust cert extension.
172 * entrust-cert-extension OBJECT IDENTIFIER ::=
173 * { 1 2 840 113533 7 65 }
175 * BER = 06 08 2A 86 48 86 F6 7D 07 41
177 #define ENTRUST_CERT_EXTEN ENTRUST_BASE_OID, 0x07, 0x41
179 /* Microsoft OIDs. */
180 #define MICROSOFT_BASE_OID OID_DOD, 0x01, 0x04, 0x01, 0x82, 0x37
181 #define MICROSOFT_ENROLLMENT_OID MICROSOFT_BASE_OID, 0x14
183 /* Google OIDs: 1.3.6.1.4.1.11129.
185 #define GOOGLE_BASE_OID OID_DOD, 0x01, 0x04, 0x01, 0xD6, 0x79
186 #define GOOGLE_EMBEDDED_SCT_OID GOOGLE_BASE_OID, 0x02, 0x04, 0x02
187 #define GOOGLE_OCSP_SCT_OID GOOGLE_BASE_OID, 0x02, 0x04, 0x05
190 /* Algorithm OIDs. */
192 _oidRsa
[] = { OID_PKCS_1
, 1 },
193 _oidMd2Rsa
[] = { OID_PKCS_1
, 2 },
194 _oidMd4Rsa
[] = { OID_PKCS_1
, 3 },
195 _oidMd5Rsa
[] = { OID_PKCS_1
, 4 },
196 _oidSha1Rsa
[] = { OID_PKCS_1
, 5 },
197 _oidSha256Rsa
[] = { OID_PKCS_1
, 11 }, /* rfc5754 */
198 _oidSha384Rsa
[] = { OID_PKCS_1
, 12 }, /* rfc5754 */
199 _oidSha512Rsa
[] = { OID_PKCS_1
, 13 }, /* rfc5754 */
200 _oidSha224Rsa
[] = { OID_PKCS_1
, 14 }, /* rfc5754 */
201 _oidEcPubKey
[] = { OID_PUBLIC_KEY_TYPE
, 1 },
202 _oidSha1Ecdsa
[] = { OID_EC_SIG_TYPE
, 1 }, /* rfc3279 */
203 _oidSha224Ecdsa
[] = { OID_ECDSA_WITH_SHA2
, 1 }, /* rfc5758 */
204 _oidSha256Ecdsa
[] = { OID_ECDSA_WITH_SHA2
, 2 }, /* rfc5758 */
205 _oidSha384Ecdsa
[] = { OID_ECDSA_WITH_SHA2
, 3 }, /* rfc5758 */
206 _oidSha512Ecdsa
[] = { OID_ECDSA_WITH_SHA2
, 4 }, /* rfc5758 */
207 _oidSha1Dsa
[] = { OID_ANSI_X9_57_ALGORITHM
, 3 },
208 _oidMd2
[] = { OID_RSA_HASH
, 2 },
209 _oidMd4
[] = { OID_RSA_HASH
, 4 },
210 _oidMd5
[] = { OID_RSA_HASH
, 5 },
211 _oidSha1
[] = { OID_OIW_ALGORITHM
, 26 },
212 _oidSha1DsaOIW
[] = { OID_OIW_ALGORITHM
, 27 },
213 _oidSha1DsaCommonOIW
[] = { OID_OIW_ALGORITHM
, 28 },
214 _oidSha1RsaOIW
[] = { OID_OIW_ALGORITHM
, 29 },
215 _oidSha256
[] = { OID_NIST_HASHALG
, 1 },
216 _oidSha384
[] = { OID_NIST_HASHALG
, 2 },
217 _oidSha512
[] = { OID_NIST_HASHALG
, 3 },
218 _oidSha224
[] = { OID_NIST_HASHALG
, 4 },
219 _oidFee
[] = { APPLE_ALG_OID
, 1 },
220 _oidMd5Fee
[] = { APPLE_ALG_OID
, 3 },
221 _oidSha1Fee
[] = { APPLE_ALG_OID
, 4 },
222 _oidEcPrime192v1
[] = { OID_EC_CURVE
, 1 },
223 _oidEcPrime256v1
[] = { OID_EC_CURVE
, 7 },
224 _oidAnsip384r1
[] = { OID_CERTICOM_EC_CURVE
, 34 },
225 _oidAnsip521r1
[] = { OID_CERTICOM_EC_CURVE
, 35 };
228 oidRsa
= { (DERByte
*)_oidRsa
,
230 oidMd2Rsa
= { (DERByte
*)_oidMd2Rsa
,
231 sizeof(_oidMd2Rsa
) },
232 oidMd4Rsa
= { (DERByte
*)_oidMd4Rsa
,
233 sizeof(_oidMd4Rsa
) },
234 oidMd5Rsa
= { (DERByte
*)_oidMd5Rsa
,
235 sizeof(_oidMd5Rsa
) },
236 oidSha1Rsa
= { (DERByte
*)_oidSha1Rsa
,
237 sizeof(_oidSha1Rsa
) },
238 oidSha256Rsa
= { (DERByte
*)_oidSha256Rsa
,
239 sizeof(_oidSha256Rsa
) },
240 oidSha384Rsa
= { (DERByte
*)_oidSha384Rsa
,
241 sizeof(_oidSha384Rsa
) },
242 oidSha512Rsa
= { (DERByte
*)_oidSha512Rsa
,
243 sizeof(_oidSha512Rsa
) },
244 oidSha224Rsa
= { (DERByte
*)_oidSha224Rsa
,
245 sizeof(_oidSha224Rsa
) },
246 oidEcPubKey
= { (DERByte
*)_oidEcPubKey
,
247 sizeof(_oidEcPubKey
) },
248 oidSha1Ecdsa
= { (DERByte
*)_oidSha1Ecdsa
,
249 sizeof(_oidSha1Ecdsa
) },
250 oidSha224Ecdsa
= { (DERByte
*)_oidSha224Ecdsa
,
251 sizeof(_oidSha224Ecdsa
) },
252 oidSha256Ecdsa
= { (DERByte
*)_oidSha256Ecdsa
,
253 sizeof(_oidSha256Ecdsa
) },
254 oidSha384Ecdsa
= { (DERByte
*)_oidSha384Ecdsa
,
255 sizeof(_oidSha384Ecdsa
) },
256 oidSha512Ecdsa
= { (DERByte
*)_oidSha512Ecdsa
,
257 sizeof(_oidSha512Ecdsa
) },
258 oidSha1Dsa
= { (DERByte
*)_oidSha1Dsa
,
259 sizeof(_oidSha1Dsa
) },
260 oidMd2
= { (DERByte
*)_oidMd2
,
262 oidMd4
= { (DERByte
*)_oidMd4
,
264 oidMd5
= { (DERByte
*)_oidMd5
,
266 oidSha1
= { (DERByte
*)_oidSha1
,
268 oidSha1RsaOIW
= { (DERByte
*)_oidSha1RsaOIW
,
269 sizeof(_oidSha1RsaOIW
) },
270 oidSha1DsaOIW
= { (DERByte
*)_oidSha1DsaOIW
,
271 sizeof(_oidSha1DsaOIW
) },
272 oidSha1DsaCommonOIW
= { (DERByte
*)_oidSha1DsaCommonOIW
,
273 sizeof(_oidSha1DsaCommonOIW
) },
274 oidSha256
= { (DERByte
*)_oidSha256
,
275 sizeof(_oidSha256
) },
276 oidSha384
= { (DERByte
*)_oidSha384
,
277 sizeof(_oidSha384
) },
278 oidSha512
= { (DERByte
*)_oidSha512
,
279 sizeof(_oidSha512
) },
280 oidSha224
= { (DERByte
*)_oidSha224
,
281 sizeof(_oidSha224
) },
282 oidFee
= { (DERByte
*)_oidFee
,
284 oidMd5Fee
= { (DERByte
*)_oidMd5Fee
,
285 sizeof(_oidMd5Fee
) },
286 oidSha1Fee
= { (DERByte
*)_oidSha1Fee
,
287 sizeof(_oidSha1Fee
) },
288 oidEcPrime192v1
= { (DERByte
*)_oidEcPrime192v1
,
289 sizeof(_oidEcPrime192v1
) },
290 oidEcPrime256v1
= { (DERByte
*)_oidEcPrime256v1
,
291 sizeof(_oidEcPrime256v1
) },
292 oidAnsip384r1
= { (DERByte
*)_oidAnsip384r1
,
293 sizeof(_oidAnsip384r1
) },
294 oidAnsip521r1
= { (DERByte
*)_oidAnsip521r1
,
295 sizeof(_oidAnsip521r1
) };
298 /* Extension OIDs. */
299 __unused
static const DERByte
300 _oidSubjectKeyIdentifier
[] = { OID_EXTENSION
, 14 },
301 _oidKeyUsage
[] = { OID_EXTENSION
, 15 },
302 _oidPrivateKeyUsagePeriod
[] = { OID_EXTENSION
, 16 },
303 _oidSubjectAltName
[] = { OID_EXTENSION
, 17 },
304 _oidIssuerAltName
[] = { OID_EXTENSION
, 18 },
305 _oidBasicConstraints
[] = { OID_EXTENSION
, 19 },
306 _oidNameConstraints
[] = { OID_EXTENSION
, 30 },
307 _oidCrlDistributionPoints
[] = { OID_EXTENSION
, 31 },
308 _oidCertificatePolicies
[] = { OID_EXTENSION
, 32 },
309 _oidAnyPolicy
[] = { OID_EXTENSION
, 32, 0 },
310 _oidPolicyMappings
[] = { OID_EXTENSION
, 33 },
311 _oidAuthorityKeyIdentifier
[] = { OID_EXTENSION
, 35 },
312 _oidPolicyConstraints
[] = { OID_EXTENSION
, 36 },
313 _oidExtendedKeyUsage
[] = { OID_EXTENSION
, 37 },
314 _oidAnyExtendedKeyUsage
[] = { OID_EXTENSION
, 37, 0 },
315 _oidInhibitAnyPolicy
[] = { OID_EXTENSION
, 54 },
316 _oidAuthorityInfoAccess
[] = { OID_PE
, 1 },
317 _oidSubjectInfoAccess
[] = { OID_PE
, 11 },
318 _oidAdOCSP
[] = { OID_AD_OCSP
},
319 _oidAdCAIssuer
[] = { OID_AD_CAISSUERS
},
320 _oidNetscapeCertType
[] = { NETSCAPE_CERT_EXTEN
, 1 },
321 _oidEntrustVersInfo
[] = { ENTRUST_CERT_EXTEN
, 0 },
322 _oidMSNTPrincipalName
[] = { MICROSOFT_ENROLLMENT_OID
, 2, 3 },
323 /* Policy Qualifier IDs for Internet policy qualifiers. */
324 _oidQtCps
[] = { OID_QT
, 1 },
325 _oidQtUNotice
[] = { OID_QT
, 2 },
326 /* X.501 Name IDs. */
327 _oidCommonName
[] = { OID_ATTR_TYPE
, 3 },
328 _oidCountryName
[] = { OID_ATTR_TYPE
, 6 },
329 _oidLocalityName
[] = { OID_ATTR_TYPE
, 7 },
330 _oidStateOrProvinceName
[] = { OID_ATTR_TYPE
, 8 },
331 _oidOrganizationName
[] = { OID_ATTR_TYPE
, 10 },
332 _oidOrganizationalUnitName
[] = { OID_ATTR_TYPE
, 11 },
333 _oidDescription
[] = { OID_ATTR_TYPE
, 13 },
334 _oidEmailAddress
[] = { OID_PKCS_9
, 1 },
335 _oidFriendlyName
[] = { OID_PKCS_9
, 20 },
336 _oidLocalKeyId
[] = { OID_PKCS_9
, 21 },
337 _oidExtendedKeyUsageServerAuth
[] = { OID_KP
, 1 },
338 _oidExtendedKeyUsageClientAuth
[] = { OID_KP
, 2 },
339 _oidExtendedKeyUsageCodeSigning
[] = { OID_KP
, 3 },
340 _oidExtendedKeyUsageEmailProtection
[] = { OID_KP
, 4 },
341 _oidExtendedKeyUsageTimeStamping
[] = { OID_KP
, 8 },
342 _oidExtendedKeyUsageOCSPSigning
[] = { OID_KP
, 9 },
343 _oidExtendedKeyUsageIPSec
[] = { OID_ISAKMP
, 2, 2 },
344 _oidExtendedKeyUsageMicrosoftSGC
[] = { MICROSOFT_BASE_OID
, 10, 3, 3 },
345 _oidExtendedKeyUsageNetscapeSGC
[] = { NETSCAPE_CERT_POLICY
, 1 },
346 _oidGoogleEmbeddedSignedCertificateTimestamp
[] = {GOOGLE_EMBEDDED_SCT_OID
},
347 _oidGoogleOCSPSignedCertificateTimestamp
[] = {GOOGLE_OCSP_SCT_OID
};
349 __unused
const DERItem
350 oidSubjectKeyIdentifier
= { (DERByte
*)_oidSubjectKeyIdentifier
,
351 sizeof(_oidSubjectKeyIdentifier
) },
352 oidKeyUsage
= { (DERByte
*)_oidKeyUsage
,
353 sizeof(_oidKeyUsage
) },
354 oidPrivateKeyUsagePeriod
= { (DERByte
*)_oidPrivateKeyUsagePeriod
,
355 sizeof(_oidPrivateKeyUsagePeriod
) },
356 oidSubjectAltName
= { (DERByte
*)_oidSubjectAltName
,
357 sizeof(_oidSubjectAltName
) },
358 oidIssuerAltName
= { (DERByte
*)_oidIssuerAltName
,
359 sizeof(_oidIssuerAltName
) },
360 oidBasicConstraints
= { (DERByte
*)_oidBasicConstraints
,
361 sizeof(_oidBasicConstraints
) },
362 oidNameConstraints
= { (DERByte
*)_oidNameConstraints
,
363 sizeof(_oidNameConstraints
) },
364 oidCrlDistributionPoints
= { (DERByte
*)_oidCrlDistributionPoints
,
365 sizeof(_oidCrlDistributionPoints
) },
366 oidCertificatePolicies
= { (DERByte
*)_oidCertificatePolicies
,
367 sizeof(_oidCertificatePolicies
) },
368 oidAnyPolicy
= { (DERByte
*)_oidAnyPolicy
,
369 sizeof(_oidAnyPolicy
) },
370 oidPolicyMappings
= { (DERByte
*)_oidPolicyMappings
,
371 sizeof(_oidPolicyMappings
) },
372 oidAuthorityKeyIdentifier
= { (DERByte
*)_oidAuthorityKeyIdentifier
,
373 sizeof(_oidAuthorityKeyIdentifier
) },
374 oidPolicyConstraints
= { (DERByte
*)_oidPolicyConstraints
,
375 sizeof(_oidPolicyConstraints
) },
376 oidExtendedKeyUsage
= { (DERByte
*)_oidExtendedKeyUsage
,
377 sizeof(_oidExtendedKeyUsage
) },
378 oidAnyExtendedKeyUsage
= { (DERByte
*)_oidAnyExtendedKeyUsage
,
379 sizeof(_oidAnyExtendedKeyUsage
) },
380 oidInhibitAnyPolicy
= { (DERByte
*)_oidInhibitAnyPolicy
,
381 sizeof(_oidInhibitAnyPolicy
) },
382 oidAuthorityInfoAccess
= { (DERByte
*)_oidAuthorityInfoAccess
,
383 sizeof(_oidAuthorityInfoAccess
) },
384 oidSubjectInfoAccess
= { (DERByte
*)_oidSubjectInfoAccess
,
385 sizeof(_oidSubjectInfoAccess
) },
386 oidAdOCSP
= { (DERByte
*)_oidAdOCSP
,
387 sizeof(_oidAdOCSP
) },
388 oidAdCAIssuer
= { (DERByte
*)_oidAdCAIssuer
,
389 sizeof(_oidAdCAIssuer
) },
390 oidNetscapeCertType
= { (DERByte
*)_oidNetscapeCertType
,
391 sizeof(_oidNetscapeCertType
) },
392 oidEntrustVersInfo
= { (DERByte
*)_oidEntrustVersInfo
,
393 sizeof(_oidEntrustVersInfo
) },
394 oidMSNTPrincipalName
= { (DERByte
*)_oidMSNTPrincipalName
,
395 sizeof(_oidMSNTPrincipalName
) },
396 /* Policy Qualifier IDs for Internet policy qualifiers. */
397 oidQtCps
= { (DERByte
*)_oidQtCps
,
399 oidQtUNotice
= { (DERByte
*)_oidQtUNotice
,
400 sizeof(_oidQtUNotice
) },
401 /* X.501 Name IDs. */
402 oidCommonName
= { (DERByte
*)_oidCommonName
,
403 sizeof(_oidCommonName
) },
404 oidCountryName
= { (DERByte
*)_oidCountryName
,
405 sizeof(_oidCountryName
) },
406 oidLocalityName
= { (DERByte
*)_oidLocalityName
,
407 sizeof(_oidLocalityName
) },
408 oidStateOrProvinceName
= { (DERByte
*)_oidStateOrProvinceName
,
409 sizeof(_oidStateOrProvinceName
) },
410 oidOrganizationName
= { (DERByte
*)_oidOrganizationName
,
411 sizeof(_oidOrganizationName
) },
412 oidOrganizationalUnitName
= { (DERByte
*)_oidOrganizationalUnitName
,
413 sizeof(_oidOrganizationalUnitName
) },
414 oidDescription
= { (DERByte
*)_oidDescription
,
415 sizeof(_oidDescription
) },
416 oidEmailAddress
= { (DERByte
*)_oidEmailAddress
,
417 sizeof(_oidEmailAddress
) },
418 oidFriendlyName
= { (DERByte
*)_oidFriendlyName
,
419 sizeof(_oidFriendlyName
) },
420 oidLocalKeyId
= { (DERByte
*)_oidLocalKeyId
,
421 sizeof(_oidLocalKeyId
) },
422 oidExtendedKeyUsageServerAuth
= { (DERByte
*)_oidExtendedKeyUsageServerAuth
,
423 sizeof(_oidExtendedKeyUsageServerAuth
) },
424 oidExtendedKeyUsageClientAuth
= { (DERByte
*)_oidExtendedKeyUsageClientAuth
,
425 sizeof(_oidExtendedKeyUsageClientAuth
) },
426 oidExtendedKeyUsageCodeSigning
= { (DERByte
*)_oidExtendedKeyUsageCodeSigning
,
427 sizeof(_oidExtendedKeyUsageCodeSigning
) },
428 oidExtendedKeyUsageEmailProtection
= { (DERByte
*)_oidExtendedKeyUsageEmailProtection
,
429 sizeof(_oidExtendedKeyUsageEmailProtection
) },
430 oidExtendedKeyUsageTimeStamping
= { (DERByte
*)_oidExtendedKeyUsageTimeStamping
,
431 sizeof(_oidExtendedKeyUsageTimeStamping
) },
432 oidExtendedKeyUsageOCSPSigning
= { (DERByte
*)_oidExtendedKeyUsageOCSPSigning
,
433 sizeof(_oidExtendedKeyUsageOCSPSigning
) },
434 oidExtendedKeyUsageIPSec
= { (DERByte
*)_oidExtendedKeyUsageIPSec
,
435 sizeof(_oidExtendedKeyUsageIPSec
) },
436 oidExtendedKeyUsageMicrosoftSGC
= { (DERByte
*)_oidExtendedKeyUsageMicrosoftSGC
,
437 sizeof(_oidExtendedKeyUsageMicrosoftSGC
) },
438 oidExtendedKeyUsageNetscapeSGC
= { (DERByte
*)_oidExtendedKeyUsageNetscapeSGC
,
439 sizeof(_oidExtendedKeyUsageNetscapeSGC
) },
440 oidGoogleEmbeddedSignedCertificateTimestamp
441 = { (DERByte
*)_oidGoogleEmbeddedSignedCertificateTimestamp
,
442 sizeof(_oidGoogleEmbeddedSignedCertificateTimestamp
) },
443 oidGoogleOCSPSignedCertificateTimestamp
444 = { (DERByte
*)_oidGoogleOCSPSignedCertificateTimestamp
,
445 sizeof(_oidGoogleOCSPSignedCertificateTimestamp
) };