PageRenderTime 52ms CodeModel.GetById 19ms app.highlight 27ms RepoModel.GetById 1ms app.codeStats 0ms

/gecko_api/include/secoidt.h

http://firefox-mac-pdf.googlecode.com/
C++ Header | 476 lines | 334 code | 54 blank | 88 comment | 0 complexity | 52623cb66be50f945da311abc742825a MD5 | raw file
  1/* ***** BEGIN LICENSE BLOCK *****
  2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3 *
  4 * The contents of this file are subject to the Mozilla Public License Version
  5 * 1.1 (the "License"); you may not use this file except in compliance with
  6 * the License. You may obtain a copy of the License at
  7 * http://www.mozilla.org/MPL/
  8 *
  9 * Software distributed under the License is distributed on an "AS IS" basis,
 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 11 * for the specific language governing rights and limitations under the
 12 * License.
 13 *
 14 * The Original Code is the Netscape security libraries.
 15 *
 16 * The Initial Developer of the Original Code is
 17 * Netscape Communications Corporation.
 18 * Portions created by the Initial Developer are Copyright (C) 1994-2000
 19 * the Initial Developer. All Rights Reserved.
 20 *
 21 * Contributor(s):
 22 *   Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
 23 *
 24 * Alternatively, the contents of this file may be used under the terms of
 25 * either the GNU General Public License Version 2 or later (the "GPL"), or
 26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 27 * in which case the provisions of the GPL or the LGPL are applicable instead
 28 * of those above. If you wish to allow use of your version of this file only
 29 * under the terms of either the GPL or the LGPL, and not to allow others to
 30 * use your version of this file under the terms of the MPL, indicate your
 31 * decision by deleting the provisions above and replace them with the notice
 32 * and other provisions required by the GPL or the LGPL. If you do not delete
 33 * the provisions above, a recipient may use your version of this file under
 34 * the terms of any one of the MPL, the GPL or the LGPL.
 35 *
 36 * ***** END LICENSE BLOCK ***** */
 37
 38#ifndef _SECOIDT_H_
 39#define _SECOIDT_H_
 40
 41#include "utilrename.h"
 42
 43/*
 44 * secoidt.h - public data structures for ASN.1 OID functions
 45 *
 46 * $Id: secoidt.h,v 1.27 2008/02/28 04:27:30 nelson%bolyard.com Exp $
 47 */
 48
 49#include "secitem.h"
 50
 51typedef struct SECOidDataStr SECOidData;
 52typedef struct SECAlgorithmIDStr SECAlgorithmID;
 53
 54/*
 55** An X.500 algorithm identifier
 56*/
 57struct SECAlgorithmIDStr {
 58    SECItem algorithm;
 59    SECItem parameters;
 60};
 61
 62/*
 63 * Misc object IDs - these numbers are for convenient handling.
 64 * They are mapped into real object IDs
 65 *
 66 * NOTE: the order of these entries must mach the array "oids" of SECOidData
 67 * in util/secoid.c.
 68 */
 69typedef enum {
 70    SEC_OID_UNKNOWN = 0,
 71    SEC_OID_MD2 = 1,
 72    SEC_OID_MD4 = 2,
 73    SEC_OID_MD5 = 3,
 74    SEC_OID_SHA1 = 4,
 75    SEC_OID_RC2_CBC = 5,
 76    SEC_OID_RC4 = 6,
 77    SEC_OID_DES_EDE3_CBC = 7,
 78    SEC_OID_RC5_CBC_PAD = 8,
 79    SEC_OID_DES_ECB = 9,
 80    SEC_OID_DES_CBC = 10,
 81    SEC_OID_DES_OFB = 11,
 82    SEC_OID_DES_CFB = 12,
 83    SEC_OID_DES_MAC = 13,
 84    SEC_OID_DES_EDE = 14,
 85    SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15,
 86    SEC_OID_PKCS1_RSA_ENCRYPTION = 16,
 87    SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17,
 88    SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18,
 89    SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19,
 90    SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20,
 91    SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21,
 92    SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22,
 93    SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23,
 94    SEC_OID_PKCS7 = 24,
 95    SEC_OID_PKCS7_DATA = 25,
 96    SEC_OID_PKCS7_SIGNED_DATA = 26,
 97    SEC_OID_PKCS7_ENVELOPED_DATA = 27,
 98    SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28,
 99    SEC_OID_PKCS7_DIGESTED_DATA = 29,
100    SEC_OID_PKCS7_ENCRYPTED_DATA = 30,
101    SEC_OID_PKCS9_EMAIL_ADDRESS = 31,
102    SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32,
103    SEC_OID_PKCS9_CONTENT_TYPE = 33,
104    SEC_OID_PKCS9_MESSAGE_DIGEST = 34,
105    SEC_OID_PKCS9_SIGNING_TIME = 35,
106    SEC_OID_PKCS9_COUNTER_SIGNATURE = 36,
107    SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37,
108    SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38,
109    SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39,
110    SEC_OID_PKCS9_SMIME_CAPABILITIES = 40,
111    SEC_OID_AVA_COMMON_NAME = 41,
112    SEC_OID_AVA_COUNTRY_NAME = 42,
113    SEC_OID_AVA_LOCALITY = 43,
114    SEC_OID_AVA_STATE_OR_PROVINCE = 44,
115    SEC_OID_AVA_ORGANIZATION_NAME = 45,
116    SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46,
117    SEC_OID_AVA_DN_QUALIFIER = 47,
118    SEC_OID_AVA_DC = 48,
119
120    SEC_OID_NS_TYPE_GIF = 49,
121    SEC_OID_NS_TYPE_JPEG = 50,
122    SEC_OID_NS_TYPE_URL = 51,
123    SEC_OID_NS_TYPE_HTML = 52,
124    SEC_OID_NS_TYPE_CERT_SEQUENCE = 53,
125    SEC_OID_MISSI_KEA_DSS_OLD = 54,
126    SEC_OID_MISSI_DSS_OLD = 55,
127    SEC_OID_MISSI_KEA_DSS = 56,
128    SEC_OID_MISSI_DSS = 57,
129    SEC_OID_MISSI_KEA = 58,
130    SEC_OID_MISSI_ALT_KEA = 59,
131
132    /* Netscape private certificate extensions */
133    SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60,
134    SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61,
135    SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62,
136    SEC_OID_NS_CERT_EXT_CERT_TYPE = 63,
137    SEC_OID_NS_CERT_EXT_BASE_URL = 64,
138    SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65,
139    SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66,
140    SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67,
141    SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68,
142    SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69,
143    SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70,
144    SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71,
145    SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72,
146    SEC_OID_NS_CERT_EXT_USER_PICTURE = 73,
147    SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74,
148    SEC_OID_NS_CERT_EXT_COMMENT = 75,
149    SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76,
150    SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77,
151    SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78,
152
153    /* x.509 v3 Extensions */
154    SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79,
155    SEC_OID_X509_SUBJECT_KEY_ID = 80,
156    SEC_OID_X509_KEY_USAGE = 81,
157    SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82,
158    SEC_OID_X509_SUBJECT_ALT_NAME = 83,
159    SEC_OID_X509_ISSUER_ALT_NAME = 84,
160    SEC_OID_X509_BASIC_CONSTRAINTS = 85,
161    SEC_OID_X509_NAME_CONSTRAINTS = 86,
162    SEC_OID_X509_CRL_DIST_POINTS = 87,
163    SEC_OID_X509_CERTIFICATE_POLICIES = 88,
164    SEC_OID_X509_POLICY_MAPPINGS = 89,
165    SEC_OID_X509_POLICY_CONSTRAINTS = 90,
166    SEC_OID_X509_AUTH_KEY_ID = 91,
167    SEC_OID_X509_EXT_KEY_USAGE = 92,
168    SEC_OID_X509_AUTH_INFO_ACCESS = 93,
169
170    SEC_OID_X509_CRL_NUMBER = 94,
171    SEC_OID_X509_REASON_CODE = 95,
172    SEC_OID_X509_INVALID_DATE = 96,
173    /* End of x.509 v3 Extensions */    
174
175    SEC_OID_X500_RSA_ENCRYPTION = 97,
176
177    /* alg 1485 additions */
178    SEC_OID_RFC1274_UID = 98,
179    SEC_OID_RFC1274_MAIL = 99,
180
181    /* PKCS 12 additions */
182    SEC_OID_PKCS12 = 100,
183    SEC_OID_PKCS12_MODE_IDS = 101,
184    SEC_OID_PKCS12_ESPVK_IDS = 102,
185    SEC_OID_PKCS12_BAG_IDS = 103,
186    SEC_OID_PKCS12_CERT_BAG_IDS = 104,
187    SEC_OID_PKCS12_OIDS = 105,
188    SEC_OID_PKCS12_PBE_IDS = 106,
189    SEC_OID_PKCS12_SIGNATURE_IDS = 107,
190    SEC_OID_PKCS12_ENVELOPING_IDS = 108,
191   /* SEC_OID_PKCS12_OFFLINE_TRANSPORT_MODE,
192    SEC_OID_PKCS12_ONLINE_TRANSPORT_MODE, */
193    SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109,
194    SEC_OID_PKCS12_KEY_BAG_ID = 110,
195    SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111,
196    SEC_OID_PKCS12_SECRET_BAG_ID = 112,
197    SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113,
198    SEC_OID_PKCS12_SDSI_CERT_BAG = 114,
199    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115,
200    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116,
201    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117,
202    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118,
203    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119,
204    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120,
205    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121,
206    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122,
207    SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123,
208    /* end of PKCS 12 additions */
209
210    /* DSA signatures */
211    SEC_OID_ANSIX9_DSA_SIGNATURE = 124,
212    SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125,
213    SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126,
214
215    /* Verisign OIDs */
216    SEC_OID_VERISIGN_USER_NOTICES = 127,
217
218    /* PKIX OIDs */
219    SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128,
220    SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129,
221    SEC_OID_PKIX_OCSP = 130,
222    SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131,
223    SEC_OID_PKIX_OCSP_NONCE = 132,
224    SEC_OID_PKIX_OCSP_CRL = 133,
225    SEC_OID_PKIX_OCSP_RESPONSE = 134,
226    SEC_OID_PKIX_OCSP_NO_CHECK = 135,
227    SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136,
228    SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137,
229    SEC_OID_PKIX_REGCTRL_REGTOKEN = 138,
230    SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139,
231    SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140,
232    SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141,
233    SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142,
234    SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143,
235    SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144,
236    SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145,
237    SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146,
238    SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147,
239    SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148,
240    SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149,
241    SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150,
242    SEC_OID_OCSP_RESPONDER = 151,
243
244    /* Netscape Algorithm OIDs */
245    SEC_OID_NETSCAPE_SMIME_KEA = 152,
246
247    /* Skipjack OID -- ### mwelch temporary */
248    SEC_OID_FORTEZZA_SKIPJACK = 153,
249
250    /* PKCS 12 V2 oids */
251    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154,
252    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155,
253    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156,
254    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157,
255    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158,
256    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159,
257    SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160,
258    SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161,
259
260    SEC_OID_PKCS12_V1_KEY_BAG_ID = 162,
261    SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163,
262    SEC_OID_PKCS12_V1_CERT_BAG_ID = 164,
263    SEC_OID_PKCS12_V1_CRL_BAG_ID = 165,
264    SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166,
265    SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167,
266    SEC_OID_PKCS9_X509_CERT = 168,
267    SEC_OID_PKCS9_SDSI_CERT = 169,
268    SEC_OID_PKCS9_X509_CRL = 170,
269    SEC_OID_PKCS9_FRIENDLY_NAME = 171,
270    SEC_OID_PKCS9_LOCAL_KEY_ID = 172,
271    SEC_OID_BOGUS_KEY_USAGE = 173,
272
273    /*Diffe Helman OIDS */
274    SEC_OID_X942_DIFFIE_HELMAN_KEY = 174,
275
276    /* Netscape other name types */
277    SEC_OID_NETSCAPE_NICKNAME = 175,
278
279    /* Cert Server OIDS */
280    SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176,
281
282    /* New PSM certificate management OIDs */
283    SEC_OID_CERT_RENEWAL_LOCATOR = 177,
284    SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178,
285    
286    /* CMS (RFC2630) OIDs */
287    SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179,
288    SEC_OID_CMS_3DES_KEY_WRAP = 180,
289    SEC_OID_CMS_RC2_KEY_WRAP = 181,
290
291    /* SMIME attributes */
292    SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182,
293
294    /* AES OIDs */
295    SEC_OID_AES_128_ECB 	= 183,
296    SEC_OID_AES_128_CBC 	= 184,
297    SEC_OID_AES_192_ECB 	= 185,
298    SEC_OID_AES_192_CBC 	= 186,
299    SEC_OID_AES_256_ECB 	= 187,
300    SEC_OID_AES_256_CBC 	= 188,
301
302    SEC_OID_SDN702_DSA_SIGNATURE = 189,
303
304    SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE = 190,
305
306    SEC_OID_SHA256              = 191,
307    SEC_OID_SHA384              = 192,
308    SEC_OID_SHA512              = 193,
309
310    SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION = 194,
311    SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION = 195,
312    SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION = 196,
313
314    SEC_OID_AES_128_KEY_WRAP	= 197,
315    SEC_OID_AES_192_KEY_WRAP	= 198,
316    SEC_OID_AES_256_KEY_WRAP	= 199,
317
318    /* Elliptic Curve Cryptography (ECC) OIDs */
319    SEC_OID_ANSIX962_EC_PUBLIC_KEY  = 200,
320    SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE = 201,
321
322#define SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST \
323	SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE
324
325    /* ANSI X9.62 named elliptic curves (prime field) */
326    SEC_OID_ANSIX962_EC_PRIME192V1  = 202,
327    SEC_OID_ANSIX962_EC_PRIME192V2  = 203,
328    SEC_OID_ANSIX962_EC_PRIME192V3  = 204,
329    SEC_OID_ANSIX962_EC_PRIME239V1  = 205,
330    SEC_OID_ANSIX962_EC_PRIME239V2  = 206,
331    SEC_OID_ANSIX962_EC_PRIME239V3  = 207,
332    SEC_OID_ANSIX962_EC_PRIME256V1  = 208,
333
334    /* SECG named elliptic curves (prime field) */
335    SEC_OID_SECG_EC_SECP112R1       = 209,
336    SEC_OID_SECG_EC_SECP112R2       = 210,
337    SEC_OID_SECG_EC_SECP128R1       = 211,
338    SEC_OID_SECG_EC_SECP128R2       = 212,
339    SEC_OID_SECG_EC_SECP160K1       = 213,
340    SEC_OID_SECG_EC_SECP160R1       = 214, 
341    SEC_OID_SECG_EC_SECP160R2       = 215,
342    SEC_OID_SECG_EC_SECP192K1       = 216,
343    /* SEC_OID_SECG_EC_SECP192R1 is SEC_OID_ANSIX962_EC_PRIME192V1 */
344    SEC_OID_SECG_EC_SECP224K1       = 217,
345    SEC_OID_SECG_EC_SECP224R1       = 218,
346    SEC_OID_SECG_EC_SECP256K1       = 219,
347    /* SEC_OID_SECG_EC_SECP256R1 is SEC_OID_ANSIX962_EC_PRIME256V1 */
348    SEC_OID_SECG_EC_SECP384R1       = 220,
349    SEC_OID_SECG_EC_SECP521R1       = 221,
350
351    /* ANSI X9.62 named elliptic curves (characteristic two field) */
352    SEC_OID_ANSIX962_EC_C2PNB163V1  = 222,
353    SEC_OID_ANSIX962_EC_C2PNB163V2  = 223,
354    SEC_OID_ANSIX962_EC_C2PNB163V3  = 224,
355    SEC_OID_ANSIX962_EC_C2PNB176V1  = 225,
356    SEC_OID_ANSIX962_EC_C2TNB191V1  = 226,
357    SEC_OID_ANSIX962_EC_C2TNB191V2  = 227,
358    SEC_OID_ANSIX962_EC_C2TNB191V3  = 228,
359    SEC_OID_ANSIX962_EC_C2ONB191V4  = 229,
360    SEC_OID_ANSIX962_EC_C2ONB191V5  = 230,
361    SEC_OID_ANSIX962_EC_C2PNB208W1  = 231,
362    SEC_OID_ANSIX962_EC_C2TNB239V1  = 232,
363    SEC_OID_ANSIX962_EC_C2TNB239V2  = 233,
364    SEC_OID_ANSIX962_EC_C2TNB239V3  = 234,
365    SEC_OID_ANSIX962_EC_C2ONB239V4  = 235,
366    SEC_OID_ANSIX962_EC_C2ONB239V5  = 236,
367    SEC_OID_ANSIX962_EC_C2PNB272W1  = 237,
368    SEC_OID_ANSIX962_EC_C2PNB304W1  = 238,
369    SEC_OID_ANSIX962_EC_C2TNB359V1  = 239,
370    SEC_OID_ANSIX962_EC_C2PNB368W1  = 240,
371    SEC_OID_ANSIX962_EC_C2TNB431R1  = 241,
372
373    /* SECG named elliptic curves (characteristic two field) */
374    SEC_OID_SECG_EC_SECT113R1       = 242,
375    SEC_OID_SECG_EC_SECT113R2       = 243,
376    SEC_OID_SECG_EC_SECT131R1       = 244,
377    SEC_OID_SECG_EC_SECT131R2       = 245,
378    SEC_OID_SECG_EC_SECT163K1       = 246,
379    SEC_OID_SECG_EC_SECT163R1       = 247,
380    SEC_OID_SECG_EC_SECT163R2       = 248,
381    SEC_OID_SECG_EC_SECT193R1       = 249,
382    SEC_OID_SECG_EC_SECT193R2       = 250,
383    SEC_OID_SECG_EC_SECT233K1       = 251,
384    SEC_OID_SECG_EC_SECT233R1       = 252,
385    SEC_OID_SECG_EC_SECT239K1       = 253,
386    SEC_OID_SECG_EC_SECT283K1       = 254,
387    SEC_OID_SECG_EC_SECT283R1       = 255,
388    SEC_OID_SECG_EC_SECT409K1       = 256,
389    SEC_OID_SECG_EC_SECT409R1       = 257,
390    SEC_OID_SECG_EC_SECT571K1       = 258,
391    SEC_OID_SECG_EC_SECT571R1       = 259,
392
393    SEC_OID_NETSCAPE_AOLSCREENNAME  = 260,
394
395    SEC_OID_AVA_SURNAME              = 261,
396    SEC_OID_AVA_SERIAL_NUMBER        = 262,
397    SEC_OID_AVA_STREET_ADDRESS       = 263,
398    SEC_OID_AVA_TITLE                = 264,
399    SEC_OID_AVA_POSTAL_ADDRESS       = 265,
400    SEC_OID_AVA_POSTAL_CODE          = 266,
401    SEC_OID_AVA_POST_OFFICE_BOX      = 267,
402    SEC_OID_AVA_GIVEN_NAME           = 268,
403    SEC_OID_AVA_INITIALS             = 269,
404    SEC_OID_AVA_GENERATION_QUALIFIER = 270,
405    SEC_OID_AVA_HOUSE_IDENTIFIER     = 271,
406    SEC_OID_AVA_PSEUDONYM            = 272,
407
408    /* More OIDs */
409    SEC_OID_PKIX_CA_ISSUERS          = 273,
410    SEC_OID_PKCS9_EXTENSION_REQUEST  = 274,
411
412    /* new EC Signature oids */
413    SEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGEST = 275,
414    SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST = 276,
415    SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE = 277,
416    SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE = 278,
417    SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE = 279,
418    SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE = 280,
419
420    /* More id-ce and id-pe OIDs from RFC 3280 */
421    SEC_OID_X509_HOLD_INSTRUCTION_CODE      = 281,
422    SEC_OID_X509_DELTA_CRL_INDICATOR        = 282,
423    SEC_OID_X509_ISSUING_DISTRIBUTION_POINT = 283,
424    SEC_OID_X509_CERT_ISSUER                = 284,
425    SEC_OID_X509_FRESHEST_CRL               = 285,
426    SEC_OID_X509_INHIBIT_ANY_POLICY         = 286,
427    SEC_OID_X509_SUBJECT_INFO_ACCESS        = 287,
428
429    /* Camellia OIDs (RFC3657)*/
430    SEC_OID_CAMELLIA_128_CBC                = 288,
431    SEC_OID_CAMELLIA_192_CBC                = 289,
432    SEC_OID_CAMELLIA_256_CBC                = 290,
433
434    /* PKCS 5 V2 OIDS */
435    SEC_OID_PKCS5_PBKDF2                    = 291,
436    SEC_OID_PKCS5_PBES2                     = 292,
437    SEC_OID_PKCS5_PBMAC1                    = 293,
438    SEC_OID_HMAC_SHA1                       = 294,
439    SEC_OID_HMAC_SHA224                     = 295,
440    SEC_OID_HMAC_SHA256                     = 296,
441    SEC_OID_HMAC_SHA384                     = 297,
442    SEC_OID_HMAC_SHA512                     = 298,
443
444    SEC_OID_PKIX_TIMESTAMPING               = 299,
445    SEC_OID_PKIX_CA_REPOSITORY              = 300,
446
447    SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE     = 301,
448
449    SEC_OID_TOTAL
450} SECOidTag;
451
452#define SEC_OID_SECG_EC_SECP192R1 SEC_OID_ANSIX962_EC_PRIME192V1
453#define SEC_OID_SECG_EC_SECP256R1 SEC_OID_ANSIX962_EC_PRIME256V1
454#define SEC_OID_PKCS12_KEY_USAGE  SEC_OID_X509_KEY_USAGE
455
456/* fake OID for DSS sign/verify */
457#define SEC_OID_SHA SEC_OID_MISS_DSS
458
459typedef enum {
460    INVALID_CERT_EXTENSION = 0,
461    UNSUPPORTED_CERT_EXTENSION = 1,
462    SUPPORTED_CERT_EXTENSION = 2
463} SECSupportExtenTag;
464
465struct SECOidDataStr {
466    SECItem            oid;
467    SECOidTag          offset;
468    const char *       desc;
469    unsigned long      mechanism;
470    SECSupportExtenTag supportedExtension;	
471    				/* only used for x.509 v3 extensions, so
472				   that we can print the names of those
473				   extensions that we don't even support */
474};
475
476#endif /* _SECOIDT_H_ */