]> git.saurik.com Git - apple/security.git/blob - libsecurity_smime/lib/SecCmsBase.h
Security-58286.270.3.0.1.tar.gz
[apple/security.git] / libsecurity_smime / lib / SecCmsBase.h
1 /*
2 * Copyright (c) 2004,2008,2010-2011 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 @header SecCmsBase.h
26 @Copyright (c) 2004,2008,2010-2011 Apple Inc. All Rights Reserved.
27
28 @availability 10.4 and later
29 @abstract Interfaces of the CMS implementation.
30 @discussion The functions here implement functions for encoding
31 and decoding Cryptographic Message Syntax (CMS) objects
32 as described in rfc3369.
33 */
34
35 #ifndef _SECURITY_SECCMSBASE_H_
36 #define _SECURITY_SECCMSBASE_H_ 1
37
38 #include <Security/SecBase.h>
39 #include <Security/SecKey.h>
40 #include <Security/SecAsn1Types.h>
41
42 #if defined(__cplusplus)
43 extern "C" {
44 #endif
45
46 /*!
47 @typedef
48 @discussion XXX We need to remove these from the API and move them back to secoidt.h.
49 */
50 typedef struct SECOidDataStr SECOidData;
51
52 /*!
53 @typedef
54 @discussion XXX We might want to get rid of this alltogether.
55 */
56 #pragma clang diagnostic push
57 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
58 typedef SecAsn1AlgId SECAlgorithmID;
59 #pragma clang diagnostic pop
60
61 /*!
62 @typedef
63 @discussion XXX This should probably move to SecKey.h
64 */
65 typedef void * SecSymmetricKeyRef;
66
67 /*!
68 @typedef
69 @discussion XXX This should probably move to SecKey.h
70 */
71 typedef SecKeyRef SecPublicKeyRef;
72
73 /*!
74 @typedef
75 @discussion XXX This should probably move to SecKey.h
76 */
77 typedef SecKeyRef SecPrivateKeyRef;
78
79 /*!
80 @typedef
81 */
82 typedef void(*PK11PasswordFunc)(void);
83
84 /*!
85 @typedef
86 */
87 typedef struct SecCmsMessageStr *SecCmsMessageRef;
88
89 /*!
90 @typedef
91 */
92 typedef struct SecCmsContentInfoStr *SecCmsContentInfoRef;
93
94 /*!
95 @typedef
96 */
97 typedef struct SecCmsSignedDataStr *SecCmsSignedDataRef;
98
99 /*!
100 @typedef
101 */
102 typedef struct SecCmsSignerInfoStr *SecCmsSignerInfoRef;
103
104 /*!
105 @typedef
106 */
107 typedef struct SecCmsEnvelopedDataStr *SecCmsEnvelopedDataRef;
108
109 /*!
110 @typedef
111 */
112 typedef struct SecCmsRecipientInfoStr *SecCmsRecipientInfoRef;
113
114 /*!
115 @typedef
116 */
117 typedef struct SecCmsDigestedDataStr *SecCmsDigestedDataRef;
118
119 /*!
120 @typedef
121 */
122 typedef struct SecCmsEncryptedDataStr *SecCmsEncryptedDataRef;
123
124 /*!
125 @typedef
126 */
127 typedef struct SecCmsDecoderStr *SecCmsDecoderRef;
128
129 /*!
130 @typedef
131 */
132 typedef struct SecCmsEncoderStr *SecCmsEncoderRef;
133
134 /*!
135 @typedef
136 */
137 typedef struct SecCmsDigestContextStr *SecCmsDigestContextRef;
138
139
140 /*!
141 @typedef
142 @discussion Type of function passed to SecCmsDecode or SecCmsDecoderStart.
143 If specified, this is where the content bytes (only) will be "sent" as they are recovered during the decoding.
144 And:
145 Type of function passed to SecCmsEncode or SecCmsEncoderStart.
146 This is where the DER-encoded bytes will be "sent".
147
148 XXX Should just combine this with SecCmsEncoderContentCallback type and use a simpler, common name.
149 */
150 typedef void (*SecCmsContentCallback)(void *arg, const char *buf, size_t len);
151
152 /*!
153 @typedef
154 @discussion Type of function passed to SecCmsDecode or SecCmsDecoderStart to retrieve the decryption key. This function is intended to be used for EncryptedData content info's which do not have a key available in a certificate, etc.
155 */
156 #pragma clang diagnostic push
157 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
158 typedef SecSymmetricKeyRef(*SecCmsGetDecryptKeyCallback)(void *arg, SECAlgorithmID *algid);
159 #pragma clang diagnostic pop
160
161 /*!
162 @enum SecCmsVerificationStatus
163 */
164 typedef enum {
165 SecCmsVSUnverified = 0,
166 SecCmsVSGoodSignature = 1,
167 SecCmsVSBadSignature = 2,
168 SecCmsVSDigestMismatch = 3,
169 SecCmsVSSigningCertNotFound = 4,
170 SecCmsVSSigningCertNotTrusted = 5,
171 SecCmsVSSignatureAlgorithmUnknown = 6,
172 SecCmsVSSignatureAlgorithmUnsupported = 7,
173 SecCmsVSMalformedSignature = 8,
174 SecCmsVSProcessingError = 9
175 } SecCmsVerificationStatus;
176
177 /*!
178 @enum SecCmsCertChainMode
179 */
180 typedef enum {
181 SecCmsCMNone = 0,
182 SecCmsCMCertOnly = 1,
183 SecCmsCMCertChain = 2,
184 SecCmsCMCertChainWithRoot = 3
185 } SecCmsCertChainMode;
186
187 /*!
188 @enum
189 @discussion XXX This should be replaced with SecPolicyRefs
190 */
191 typedef enum SECCertUsageEnum {
192 certUsageSSLClient = 0,
193 certUsageSSLServer = 1,
194 certUsageSSLServerWithStepUp = 2,
195 certUsageSSLCA = 3,
196 certUsageEmailSigner = 4,
197 certUsageEmailRecipient = 5,
198 certUsageObjectSigner = 6,
199 certUsageUserCertImport = 7,
200 certUsageVerifyCA = 8,
201 certUsageProtectedObjectSigner = 9,
202 certUsageStatusResponder = 10,
203 certUsageAnyCA = 11
204 } SECCertUsage;
205
206
207 /*!
208 @enum SECOidTag
209 @abstract Misc object IDs - these numbers are for convenient handling.
210 @discussion They are mapped into real object IDs
211 NOTE: the order of these entries must mach the array "oids" of SECOidData in util/secoid.c.
212 */
213 typedef enum {
214 SEC_OID_UNKNOWN = 0,
215 SEC_OID_MD2 = 1,
216 SEC_OID_MD4 = 2,
217 SEC_OID_MD5 = 3,
218 SEC_OID_SHA1 = 4,
219 SEC_OID_RC2_CBC = 5,
220 SEC_OID_RC4 = 6,
221 SEC_OID_DES_EDE3_CBC = 7,
222 SEC_OID_RC5_CBC_PAD = 8,
223 SEC_OID_DES_ECB = 9,
224 SEC_OID_DES_CBC = 10,
225 SEC_OID_DES_OFB = 11,
226 SEC_OID_DES_CFB = 12,
227 SEC_OID_DES_MAC = 13,
228 SEC_OID_DES_EDE = 14,
229 SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15,
230 SEC_OID_PKCS1_RSA_ENCRYPTION = 16,
231 SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17,
232 SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18,
233 SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19,
234 SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20,
235 SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21,
236 SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22,
237 SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23,
238 SEC_OID_PKCS7 = 24,
239 SEC_OID_PKCS7_DATA = 25,
240 SEC_OID_PKCS7_SIGNED_DATA = 26,
241 SEC_OID_PKCS7_ENVELOPED_DATA = 27,
242 SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28,
243 SEC_OID_PKCS7_DIGESTED_DATA = 29,
244 SEC_OID_PKCS7_ENCRYPTED_DATA = 30,
245 SEC_OID_PKCS9_EMAIL_ADDRESS = 31,
246 SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32,
247 SEC_OID_PKCS9_CONTENT_TYPE = 33,
248 SEC_OID_PKCS9_MESSAGE_DIGEST = 34,
249 SEC_OID_PKCS9_SIGNING_TIME = 35,
250 SEC_OID_PKCS9_COUNTER_SIGNATURE = 36,
251 SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37,
252 SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38,
253 SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39,
254 SEC_OID_PKCS9_SMIME_CAPABILITIES = 40,
255 SEC_OID_AVA_COMMON_NAME = 41,
256 SEC_OID_AVA_COUNTRY_NAME = 42,
257 SEC_OID_AVA_LOCALITY = 43,
258 SEC_OID_AVA_STATE_OR_PROVINCE = 44,
259 SEC_OID_AVA_ORGANIZATION_NAME = 45,
260 SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46,
261 SEC_OID_AVA_DN_QUALIFIER = 47,
262 SEC_OID_AVA_DC = 48,
263
264 SEC_OID_NS_TYPE_GIF = 49,
265 SEC_OID_NS_TYPE_JPEG = 50,
266 SEC_OID_NS_TYPE_URL = 51,
267 SEC_OID_NS_TYPE_HTML = 52,
268 SEC_OID_NS_TYPE_CERT_SEQUENCE = 53,
269 SEC_OID_MISSI_KEA_DSS_OLD = 54,
270 SEC_OID_MISSI_DSS_OLD = 55,
271 SEC_OID_MISSI_KEA_DSS = 56,
272 SEC_OID_MISSI_DSS = 57,
273 SEC_OID_MISSI_KEA = 58,
274 SEC_OID_MISSI_ALT_KEA = 59,
275
276 /* Netscape private certificate extensions */
277 SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60,
278 SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61,
279 SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62,
280 SEC_OID_NS_CERT_EXT_CERT_TYPE = 63,
281 SEC_OID_NS_CERT_EXT_BASE_URL = 64,
282 SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65,
283 SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66,
284 SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67,
285 SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68,
286 SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69,
287 SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70,
288 SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71,
289 SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72,
290 SEC_OID_NS_CERT_EXT_USER_PICTURE = 73,
291 SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74,
292 SEC_OID_NS_CERT_EXT_COMMENT = 75,
293 SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76,
294 SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77,
295 SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78,
296
297 /* x.509 v3 Extensions */
298 SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79,
299 SEC_OID_X509_SUBJECT_KEY_ID = 80,
300 SEC_OID_X509_KEY_USAGE = 81,
301 SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82,
302 SEC_OID_X509_SUBJECT_ALT_NAME = 83,
303 SEC_OID_X509_ISSUER_ALT_NAME = 84,
304 SEC_OID_X509_BASIC_CONSTRAINTS = 85,
305 SEC_OID_X509_NAME_CONSTRAINTS = 86,
306 SEC_OID_X509_CRL_DIST_POINTS = 87,
307 SEC_OID_X509_CERTIFICATE_POLICIES = 88,
308 SEC_OID_X509_POLICY_MAPPINGS = 89,
309 SEC_OID_X509_POLICY_CONSTRAINTS = 90,
310 SEC_OID_X509_AUTH_KEY_ID = 91,
311 SEC_OID_X509_EXT_KEY_USAGE = 92,
312 SEC_OID_X509_AUTH_INFO_ACCESS = 93,
313
314 SEC_OID_X509_CRL_NUMBER = 94,
315 SEC_OID_X509_REASON_CODE = 95,
316 SEC_OID_X509_INVALID_DATE = 96,
317 /* End of x.509 v3 Extensions */
318
319 SEC_OID_X500_RSA_ENCRYPTION = 97,
320
321 /* alg 1485 additions */
322 SEC_OID_RFC1274_UID = 98,
323 SEC_OID_RFC1274_MAIL = 99,
324
325 /* PKCS 12 additions */
326 SEC_OID_PKCS12 = 100,
327 SEC_OID_PKCS12_MODE_IDS = 101,
328 SEC_OID_PKCS12_ESPVK_IDS = 102,
329 SEC_OID_PKCS12_BAG_IDS = 103,
330 SEC_OID_PKCS12_CERT_BAG_IDS = 104,
331 SEC_OID_PKCS12_OIDS = 105,
332 SEC_OID_PKCS12_PBE_IDS = 106,
333 SEC_OID_PKCS12_SIGNATURE_IDS = 107,
334 SEC_OID_PKCS12_ENVELOPING_IDS = 108,
335 /* SEC_OID_PKCS12_OFFLINE_TRANSPORT_MODE,
336 SEC_OID_PKCS12_ONLINE_TRANSPORT_MODE, */
337 SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109,
338 SEC_OID_PKCS12_KEY_BAG_ID = 110,
339 SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111,
340 SEC_OID_PKCS12_SECRET_BAG_ID = 112,
341 SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113,
342 SEC_OID_PKCS12_SDSI_CERT_BAG = 114,
343 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115,
344 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116,
345 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117,
346 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118,
347 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119,
348 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120,
349 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121,
350 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122,
351 SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123,
352 /* end of PKCS 12 additions */
353
354 /* DSA signatures */
355 SEC_OID_ANSIX9_DSA_SIGNATURE = 124,
356 SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125,
357 SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126,
358
359 /* Verisign OIDs */
360 SEC_OID_VERISIGN_USER_NOTICES = 127,
361
362 /* PKIX OIDs */
363 SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128,
364 SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129,
365 SEC_OID_PKIX_OCSP = 130,
366 SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131,
367 SEC_OID_PKIX_OCSP_NONCE = 132,
368 SEC_OID_PKIX_OCSP_CRL = 133,
369 SEC_OID_PKIX_OCSP_RESPONSE = 134,
370 SEC_OID_PKIX_OCSP_NO_CHECK = 135,
371 SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136,
372 SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137,
373 SEC_OID_PKIX_REGCTRL_REGTOKEN = 138,
374 SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139,
375 SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140,
376 SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141,
377 SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142,
378 SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143,
379 SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144,
380 SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145,
381 SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146,
382 SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147,
383 SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148,
384 SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149,
385 SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150,
386 SEC_OID_OCSP_RESPONDER = 151,
387
388 /* Netscape Algorithm OIDs */
389 SEC_OID_NETSCAPE_SMIME_KEA = 152,
390
391 /* Skipjack OID -- ### mwelch temporary */
392 SEC_OID_FORTEZZA_SKIPJACK = 153,
393
394 /* PKCS 12 V2 oids */
395 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154,
396 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155,
397 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156,
398 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157,
399 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158,
400 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159,
401 SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160,
402 SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161,
403
404 SEC_OID_PKCS12_V1_KEY_BAG_ID = 162,
405 SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163,
406 SEC_OID_PKCS12_V1_CERT_BAG_ID = 164,
407 SEC_OID_PKCS12_V1_CRL_BAG_ID = 165,
408 SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166,
409 SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167,
410 SEC_OID_PKCS9_X509_CERT = 168,
411 SEC_OID_PKCS9_SDSI_CERT = 169,
412 SEC_OID_PKCS9_X509_CRL = 170,
413 SEC_OID_PKCS9_FRIENDLY_NAME = 171,
414 SEC_OID_PKCS9_LOCAL_KEY_ID = 172,
415 SEC_OID_PKCS12_KEY_USAGE = 173,
416
417 /*Diffe Helman OIDS */
418 SEC_OID_X942_DIFFIE_HELMAN_KEY = 174,
419
420 /* Netscape other name types */
421 SEC_OID_NETSCAPE_NICKNAME = 175,
422
423 /* Cert Server OIDS */
424 SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176,
425
426 /* New PSM certificate management OIDs */
427 SEC_OID_CERT_RENEWAL_LOCATOR = 177,
428 SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178,
429
430 /* CMS (RFC2630) OIDs */
431 SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179,
432 SEC_OID_CMS_3DES_KEY_WRAP = 180,
433 SEC_OID_CMS_RC2_KEY_WRAP = 181,
434
435 /* SMIME attributes */
436 SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182,
437
438 /* AES OIDs */
439 SEC_OID_AES_128_ECB = 183,
440 SEC_OID_AES_128_CBC = 184,
441 SEC_OID_AES_192_ECB = 185,
442 SEC_OID_AES_192_CBC = 186,
443 SEC_OID_AES_256_ECB = 187,
444 SEC_OID_AES_256_CBC = 188,
445
446 SEC_OID_SDN702_DSA_SIGNATURE = 189,
447
448 SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE = 190,
449
450 SEC_OID_SHA224 = 191,
451 SEC_OID_SHA256 = 192,
452 SEC_OID_SHA384 = 193,
453 SEC_OID_SHA512 = 194,
454
455 SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION = 195,
456 SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION = 196,
457 SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION = 197,
458
459 SEC_OID_AES_128_KEY_WRAP = 198,
460 SEC_OID_AES_192_KEY_WRAP = 199,
461 SEC_OID_AES_256_KEY_WRAP = 200,
462
463 /* eContentType set by client and not understood by this library; treated
464 * like SEC_OID_PKCS7_DATA, except the caller's OID is encoded. */
465 SEC_OID_OTHER = 201,
466
467 /* ECDSA */
468 SEC_OID_EC_PUBLIC_KEY = 202,
469 SEC_OID_ECDSA_WithSHA1 = 203,
470 SEC_OID_DH_SINGLE_STD_SHA1KDF = 204,
471 SEC_OID_SECP_256_R1 = 205,
472 SEC_OID_SECP_384_R1 = 206,
473 SEC_OID_SECP_521_R1 = 207,
474
475 /* RFC 3161 Timestamping OIDs */
476 SEC_OID_PKCS9_ID_CT_TSTInfo = 208,
477 SEC_OID_PKCS9_TIMESTAMP_TOKEN = 209,
478 SEC_OID_PKCS9_SIGNING_CERTIFICATE = 210,
479
480 /* ECDSA with SHA2 */
481 SEC_OID_ECDSA_WITH_SHA256 = 211,
482 SEC_OID_ECDSA_WITH_SHA384 = 212,
483 SEC_OID_ECDSA_WITH_SHA512 = 213,
484
485 /* Apple CMS Attributes */
486 SEC_OID_APPLE_HASH_AGILITY = 214,
487 SEC_OID_APPLE_HASH_AGILITY_V2 = 215,
488
489 /* Apple Expiration Time Attribute */
490 SEC_OID_APPLE_EXPIRATION_TIME = 216,
491
492 SEC_OID_TOTAL
493 } SECOidTag;
494
495
496 #if defined(__cplusplus)
497 }
498 #endif
499
500 #endif /* _SECURITY_SECCMSBASE_H_ */