tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

secoidt.h (22880B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef _SECOIDT_H_
      6 #define _SECOIDT_H_
      7 
      8 #include "utilrename.h"
      9 
     10 /*
     11 * secoidt.h - public data structures for ASN.1 OID functions
     12 */
     13 
     14 #include "secitem.h"
     15 
     16 typedef struct SECOidDataStr SECOidData;
     17 typedef struct SECAlgorithmIDStr SECAlgorithmID;
     18 
     19 /*
     20 ** An X.500 algorithm identifier
     21 */
     22 struct SECAlgorithmIDStr {
     23    SECItem algorithm;
     24    SECItem parameters;
     25 };
     26 
     27 /*
     28 * Misc object IDs - these numbers are for convenient handling.
     29 * They are mapped into real object IDs
     30 *
     31 * NOTE: the order of these entries must mach the array "oids" of SECOidData
     32 * in util/secoid.c.
     33 */
     34 typedef enum {
     35    SEC_OID_UNKNOWN = 0,
     36    SEC_OID_MD2 = 1,
     37    SEC_OID_MD4 = 2,
     38    SEC_OID_MD5 = 3,
     39    SEC_OID_SHA1 = 4,
     40    SEC_OID_RC2_CBC = 5,
     41    SEC_OID_RC4 = 6,
     42    SEC_OID_DES_EDE3_CBC = 7,
     43    SEC_OID_RC5_CBC_PAD = 8,
     44    SEC_OID_DES_ECB = 9,
     45    SEC_OID_DES_CBC = 10,
     46    SEC_OID_DES_OFB = 11,
     47    SEC_OID_DES_CFB = 12,
     48    SEC_OID_DES_MAC = 13,
     49    SEC_OID_DES_EDE = 14,
     50    SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15,
     51    SEC_OID_PKCS1_RSA_ENCRYPTION = 16,
     52    SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17,
     53    SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18,
     54    SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19,
     55    SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20,
     56    SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21,
     57    SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22,
     58    SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23,
     59    SEC_OID_PKCS7 = 24,
     60    SEC_OID_PKCS7_DATA = 25,
     61    SEC_OID_PKCS7_SIGNED_DATA = 26,
     62    SEC_OID_PKCS7_ENVELOPED_DATA = 27,
     63    SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28,
     64    SEC_OID_PKCS7_DIGESTED_DATA = 29,
     65    SEC_OID_PKCS7_ENCRYPTED_DATA = 30,
     66    SEC_OID_PKCS9_EMAIL_ADDRESS = 31,
     67    SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32,
     68    SEC_OID_PKCS9_CONTENT_TYPE = 33,
     69    SEC_OID_PKCS9_MESSAGE_DIGEST = 34,
     70    SEC_OID_PKCS9_SIGNING_TIME = 35,
     71    SEC_OID_PKCS9_COUNTER_SIGNATURE = 36,
     72    SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37,
     73    SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38,
     74    SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39,
     75    SEC_OID_PKCS9_SMIME_CAPABILITIES = 40,
     76    SEC_OID_AVA_COMMON_NAME = 41,
     77    SEC_OID_AVA_COUNTRY_NAME = 42,
     78    SEC_OID_AVA_LOCALITY = 43,
     79    SEC_OID_AVA_STATE_OR_PROVINCE = 44,
     80    SEC_OID_AVA_ORGANIZATION_NAME = 45,
     81    SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46,
     82    SEC_OID_AVA_DN_QUALIFIER = 47,
     83    SEC_OID_AVA_DC = 48,
     84 
     85    SEC_OID_NS_TYPE_GIF = 49,
     86    SEC_OID_NS_TYPE_JPEG = 50,
     87    SEC_OID_NS_TYPE_URL = 51,
     88    SEC_OID_NS_TYPE_HTML = 52,
     89    SEC_OID_NS_TYPE_CERT_SEQUENCE = 53,
     90    SEC_OID_MISSI_KEA_DSS_OLD = 54,
     91    SEC_OID_MISSI_DSS_OLD = 55,
     92    SEC_OID_MISSI_KEA_DSS = 56,
     93    SEC_OID_MISSI_DSS = 57,
     94    SEC_OID_MISSI_KEA = 58,
     95    SEC_OID_MISSI_ALT_KEA = 59,
     96 
     97    /* Netscape private certificate extensions */
     98    SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60,
     99    SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61,
    100    SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62,
    101    SEC_OID_NS_CERT_EXT_CERT_TYPE = 63,
    102    SEC_OID_NS_CERT_EXT_BASE_URL = 64,
    103    SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65,
    104    SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66,
    105    SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67,
    106    SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68,
    107    SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69,
    108    SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70,
    109    SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71,
    110    SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72,
    111    SEC_OID_NS_CERT_EXT_USER_PICTURE = 73,
    112    SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74,
    113    SEC_OID_NS_CERT_EXT_COMMENT = 75,
    114    SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76,
    115    SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77,
    116    SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78,
    117 
    118    /* x.509 v3 Extensions */
    119    SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79,
    120    SEC_OID_X509_SUBJECT_KEY_ID = 80,
    121    SEC_OID_X509_KEY_USAGE = 81,
    122    SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82,
    123    SEC_OID_X509_SUBJECT_ALT_NAME = 83,
    124    SEC_OID_X509_ISSUER_ALT_NAME = 84,
    125    SEC_OID_X509_BASIC_CONSTRAINTS = 85,
    126    SEC_OID_X509_NAME_CONSTRAINTS = 86,
    127    SEC_OID_X509_CRL_DIST_POINTS = 87,
    128    SEC_OID_X509_CERTIFICATE_POLICIES = 88,
    129    SEC_OID_X509_POLICY_MAPPINGS = 89,
    130    SEC_OID_X509_POLICY_CONSTRAINTS = 90,
    131    SEC_OID_X509_AUTH_KEY_ID = 91,
    132    SEC_OID_X509_EXT_KEY_USAGE = 92,
    133    SEC_OID_X509_AUTH_INFO_ACCESS = 93,
    134 
    135    SEC_OID_X509_CRL_NUMBER = 94,
    136    SEC_OID_X509_REASON_CODE = 95,
    137    SEC_OID_X509_INVALID_DATE = 96,
    138    /* End of x.509 v3 Extensions */
    139 
    140    SEC_OID_X500_RSA_ENCRYPTION = 97,
    141 
    142    /* alg 1485 additions */
    143    SEC_OID_RFC1274_UID = 98,
    144    SEC_OID_RFC1274_MAIL = 99,
    145 
    146    /* PKCS 12 additions */
    147    SEC_OID_PKCS12 = 100,
    148    SEC_OID_PKCS12_MODE_IDS = 101,
    149    SEC_OID_PKCS12_ESPVK_IDS = 102,
    150    SEC_OID_PKCS12_BAG_IDS = 103,
    151    SEC_OID_PKCS12_CERT_BAG_IDS = 104,
    152    SEC_OID_PKCS12_OIDS = 105,
    153    SEC_OID_PKCS12_PBE_IDS = 106,
    154    SEC_OID_PKCS12_SIGNATURE_IDS = 107,
    155    SEC_OID_PKCS12_ENVELOPING_IDS = 108,
    156    /* SEC_OID_PKCS12_OFFLINE_TRANSPORT_MODE,
    157    SEC_OID_PKCS12_ONLINE_TRANSPORT_MODE, */
    158    SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109,
    159    SEC_OID_PKCS12_KEY_BAG_ID = 110,
    160    SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111,
    161    SEC_OID_PKCS12_SECRET_BAG_ID = 112,
    162    SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113,
    163    SEC_OID_PKCS12_SDSI_CERT_BAG = 114,
    164    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115,
    165    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116,
    166    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117,
    167    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118,
    168    SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119,
    169    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120,
    170    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121,
    171    SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122,
    172    SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123,
    173    /* end of PKCS 12 additions */
    174 
    175    /* DSA signatures */
    176    SEC_OID_ANSIX9_DSA_SIGNATURE = 124,
    177    SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125,
    178    SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126,
    179 
    180    /* Verisign OIDs */
    181    SEC_OID_VERISIGN_USER_NOTICES = 127,
    182 
    183    /* PKIX OIDs */
    184    SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128,
    185    SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129,
    186    SEC_OID_PKIX_OCSP = 130,
    187    SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131,
    188    SEC_OID_PKIX_OCSP_NONCE = 132,
    189    SEC_OID_PKIX_OCSP_CRL = 133,
    190    SEC_OID_PKIX_OCSP_RESPONSE = 134,
    191    SEC_OID_PKIX_OCSP_NO_CHECK = 135,
    192    SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136,
    193    SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137,
    194    SEC_OID_PKIX_REGCTRL_REGTOKEN = 138,
    195    SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139,
    196    SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140,
    197    SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141,
    198    SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142,
    199    SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143,
    200    SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144,
    201    SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145,
    202    SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146,
    203    SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147,
    204    SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148,
    205    SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149,
    206    SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150,
    207    SEC_OID_OCSP_RESPONDER = 151,
    208 
    209    /* Netscape Algorithm OIDs */
    210    SEC_OID_NETSCAPE_SMIME_KEA = 152,
    211 
    212    /* Skipjack OID -- ### mwelch temporary */
    213    SEC_OID_FORTEZZA_SKIPJACK = 153,
    214 
    215    /* PKCS 12 V2 oids */
    216    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154,
    217    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155,
    218    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156,
    219    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157,
    220    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158,
    221    SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159,
    222    SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160,
    223    SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161,
    224 
    225    SEC_OID_PKCS12_V1_KEY_BAG_ID = 162,
    226    SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163,
    227    SEC_OID_PKCS12_V1_CERT_BAG_ID = 164,
    228    SEC_OID_PKCS12_V1_CRL_BAG_ID = 165,
    229    SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166,
    230    SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167,
    231    SEC_OID_PKCS9_X509_CERT = 168,
    232    SEC_OID_PKCS9_SDSI_CERT = 169,
    233    SEC_OID_PKCS9_X509_CRL = 170,
    234    SEC_OID_PKCS9_FRIENDLY_NAME = 171,
    235    SEC_OID_PKCS9_LOCAL_KEY_ID = 172,
    236    SEC_OID_BOGUS_KEY_USAGE = 173,
    237 
    238    /*Diffe Helman OIDS */
    239    SEC_OID_X942_DIFFIE_HELMAN_KEY = 174,
    240 
    241    /* Netscape other name types */
    242    /* SEC_OID_NETSCAPE_NICKNAME is an otherName field of type IA5String
    243     * in the subjectAltName certificate extension.  NSS dropped support
    244     * for SEC_OID_NETSCAPE_NICKNAME in NSS 3.13. */
    245    SEC_OID_NETSCAPE_NICKNAME = 175,
    246 
    247    /* Cert Server OIDS */
    248    SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176,
    249 
    250    /* New PSM certificate management OIDs */
    251    SEC_OID_CERT_RENEWAL_LOCATOR = 177,
    252    SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178,
    253 
    254    /* CMS (RFC2630) OIDs */
    255    SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179,
    256    SEC_OID_CMS_3DES_KEY_WRAP = 180,
    257    SEC_OID_CMS_RC2_KEY_WRAP = 181,
    258 
    259    /* SMIME attributes */
    260    SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182,
    261 
    262    /* AES OIDs */
    263    SEC_OID_AES_128_ECB = 183,
    264    SEC_OID_AES_128_CBC = 184,
    265    SEC_OID_AES_192_ECB = 185,
    266    SEC_OID_AES_192_CBC = 186,
    267    SEC_OID_AES_256_ECB = 187,
    268    SEC_OID_AES_256_CBC = 188,
    269 
    270    SEC_OID_SDN702_DSA_SIGNATURE = 189,
    271 
    272    SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE = 190,
    273 
    274    SEC_OID_SHA256 = 191,
    275    SEC_OID_SHA384 = 192,
    276    SEC_OID_SHA512 = 193,
    277 
    278    SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION = 194,
    279    SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION = 195,
    280    SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION = 196,
    281 
    282    SEC_OID_AES_128_KEY_WRAP = 197,
    283    SEC_OID_AES_192_KEY_WRAP = 198,
    284    SEC_OID_AES_256_KEY_WRAP = 199,
    285 
    286    /* Elliptic Curve Cryptography (ECC) OIDs */
    287    SEC_OID_ANSIX962_EC_PUBLIC_KEY = 200,
    288    SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE = 201,
    289 
    290 #define SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST \
    291    SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE
    292 
    293    /* ANSI X9.62 named elliptic curves (prime field) */
    294    SEC_OID_ANSIX962_EC_PRIME192V1 = 202,
    295    SEC_OID_ANSIX962_EC_PRIME192V2 = 203,
    296    SEC_OID_ANSIX962_EC_PRIME192V3 = 204,
    297    SEC_OID_ANSIX962_EC_PRIME239V1 = 205,
    298    SEC_OID_ANSIX962_EC_PRIME239V2 = 206,
    299    SEC_OID_ANSIX962_EC_PRIME239V3 = 207,
    300    SEC_OID_ANSIX962_EC_PRIME256V1 = 208,
    301 
    302    /* SECG named elliptic curves (prime field) */
    303    SEC_OID_SECG_EC_SECP112R1 = 209,
    304    SEC_OID_SECG_EC_SECP112R2 = 210,
    305    SEC_OID_SECG_EC_SECP128R1 = 211,
    306    SEC_OID_SECG_EC_SECP128R2 = 212,
    307    SEC_OID_SECG_EC_SECP160K1 = 213,
    308    SEC_OID_SECG_EC_SECP160R1 = 214,
    309    SEC_OID_SECG_EC_SECP160R2 = 215,
    310    SEC_OID_SECG_EC_SECP192K1 = 216,
    311    /* SEC_OID_SECG_EC_SECP192R1 is SEC_OID_ANSIX962_EC_PRIME192V1 */
    312    SEC_OID_SECG_EC_SECP224K1 = 217,
    313    SEC_OID_SECG_EC_SECP224R1 = 218,
    314    SEC_OID_SECG_EC_SECP256K1 = 219,
    315    /* SEC_OID_SECG_EC_SECP256R1 is SEC_OID_ANSIX962_EC_PRIME256V1 */
    316    SEC_OID_SECG_EC_SECP384R1 = 220,
    317    SEC_OID_SECG_EC_SECP521R1 = 221,
    318 
    319    /* ANSI X9.62 named elliptic curves (characteristic two field) */
    320    SEC_OID_ANSIX962_EC_C2PNB163V1 = 222,
    321    SEC_OID_ANSIX962_EC_C2PNB163V2 = 223,
    322    SEC_OID_ANSIX962_EC_C2PNB163V3 = 224,
    323    SEC_OID_ANSIX962_EC_C2PNB176V1 = 225,
    324    SEC_OID_ANSIX962_EC_C2TNB191V1 = 226,
    325    SEC_OID_ANSIX962_EC_C2TNB191V2 = 227,
    326    SEC_OID_ANSIX962_EC_C2TNB191V3 = 228,
    327    SEC_OID_ANSIX962_EC_C2ONB191V4 = 229,
    328    SEC_OID_ANSIX962_EC_C2ONB191V5 = 230,
    329    SEC_OID_ANSIX962_EC_C2PNB208W1 = 231,
    330    SEC_OID_ANSIX962_EC_C2TNB239V1 = 232,
    331    SEC_OID_ANSIX962_EC_C2TNB239V2 = 233,
    332    SEC_OID_ANSIX962_EC_C2TNB239V3 = 234,
    333    SEC_OID_ANSIX962_EC_C2ONB239V4 = 235,
    334    SEC_OID_ANSIX962_EC_C2ONB239V5 = 236,
    335    SEC_OID_ANSIX962_EC_C2PNB272W1 = 237,
    336    SEC_OID_ANSIX962_EC_C2PNB304W1 = 238,
    337    SEC_OID_ANSIX962_EC_C2TNB359V1 = 239,
    338    SEC_OID_ANSIX962_EC_C2PNB368W1 = 240,
    339    SEC_OID_ANSIX962_EC_C2TNB431R1 = 241,
    340 
    341    /* SECG named elliptic curves (characteristic two field) */
    342    SEC_OID_SECG_EC_SECT113R1 = 242,
    343    SEC_OID_SECG_EC_SECT113R2 = 243,
    344    SEC_OID_SECG_EC_SECT131R1 = 244,
    345    SEC_OID_SECG_EC_SECT131R2 = 245,
    346    SEC_OID_SECG_EC_SECT163K1 = 246,
    347    SEC_OID_SECG_EC_SECT163R1 = 247,
    348    SEC_OID_SECG_EC_SECT163R2 = 248,
    349    SEC_OID_SECG_EC_SECT193R1 = 249,
    350    SEC_OID_SECG_EC_SECT193R2 = 250,
    351    SEC_OID_SECG_EC_SECT233K1 = 251,
    352    SEC_OID_SECG_EC_SECT233R1 = 252,
    353    SEC_OID_SECG_EC_SECT239K1 = 253,
    354    SEC_OID_SECG_EC_SECT283K1 = 254,
    355    SEC_OID_SECG_EC_SECT283R1 = 255,
    356    SEC_OID_SECG_EC_SECT409K1 = 256,
    357    SEC_OID_SECG_EC_SECT409R1 = 257,
    358    SEC_OID_SECG_EC_SECT571K1 = 258,
    359    SEC_OID_SECG_EC_SECT571R1 = 259,
    360 
    361    SEC_OID_NETSCAPE_AOLSCREENNAME = 260,
    362 
    363    SEC_OID_AVA_SURNAME = 261,
    364    SEC_OID_AVA_SERIAL_NUMBER = 262,
    365    SEC_OID_AVA_STREET_ADDRESS = 263,
    366    SEC_OID_AVA_TITLE = 264,
    367    SEC_OID_AVA_POSTAL_ADDRESS = 265,
    368    SEC_OID_AVA_POSTAL_CODE = 266,
    369    SEC_OID_AVA_POST_OFFICE_BOX = 267,
    370    SEC_OID_AVA_GIVEN_NAME = 268,
    371    SEC_OID_AVA_INITIALS = 269,
    372    SEC_OID_AVA_GENERATION_QUALIFIER = 270,
    373    SEC_OID_AVA_HOUSE_IDENTIFIER = 271,
    374    SEC_OID_AVA_PSEUDONYM = 272,
    375 
    376    /* More OIDs */
    377    SEC_OID_PKIX_CA_ISSUERS = 273,
    378    SEC_OID_PKCS9_EXTENSION_REQUEST = 274,
    379 
    380    /* new EC Signature oids */
    381    SEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGEST = 275,
    382    SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST = 276,
    383    SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE = 277,
    384    SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE = 278,
    385    SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE = 279,
    386    SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE = 280,
    387 
    388    /* More id-ce and id-pe OIDs from RFC 3280 */
    389    SEC_OID_X509_HOLD_INSTRUCTION_CODE = 281,
    390    SEC_OID_X509_DELTA_CRL_INDICATOR = 282,
    391    SEC_OID_X509_ISSUING_DISTRIBUTION_POINT = 283,
    392    SEC_OID_X509_CERT_ISSUER = 284,
    393    SEC_OID_X509_FRESHEST_CRL = 285,
    394    SEC_OID_X509_INHIBIT_ANY_POLICY = 286,
    395    SEC_OID_X509_SUBJECT_INFO_ACCESS = 287,
    396 
    397    /* Camellia OIDs (RFC3657)*/
    398    SEC_OID_CAMELLIA_128_CBC = 288,
    399    SEC_OID_CAMELLIA_192_CBC = 289,
    400    SEC_OID_CAMELLIA_256_CBC = 290,
    401 
    402    /* PKCS 5 V2 OIDS */
    403    SEC_OID_PKCS5_PBKDF2 = 291,
    404    SEC_OID_PKCS5_PBES2 = 292,
    405    SEC_OID_PKCS5_PBMAC1 = 293,
    406    SEC_OID_HMAC_SHA1 = 294,
    407    SEC_OID_HMAC_SHA224 = 295,
    408    SEC_OID_HMAC_SHA256 = 296,
    409    SEC_OID_HMAC_SHA384 = 297,
    410    SEC_OID_HMAC_SHA512 = 298,
    411 
    412    SEC_OID_PKIX_TIMESTAMPING = 299,
    413    SEC_OID_PKIX_CA_REPOSITORY = 300,
    414 
    415    SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE = 301,
    416 
    417    SEC_OID_SEED_CBC = 302,
    418 
    419    SEC_OID_X509_ANY_POLICY = 303,
    420 
    421    SEC_OID_PKCS1_RSA_OAEP_ENCRYPTION = 304,
    422    SEC_OID_PKCS1_MGF1 = 305,
    423    SEC_OID_PKCS1_PSPECIFIED = 306,
    424    SEC_OID_PKCS1_RSA_PSS_SIGNATURE = 307,
    425    SEC_OID_PKCS1_SHA224_WITH_RSA_ENCRYPTION = 308,
    426 
    427    SEC_OID_SHA224 = 309,
    428 
    429    SEC_OID_EV_INCORPORATION_LOCALITY = 310,
    430    SEC_OID_EV_INCORPORATION_STATE = 311,
    431    SEC_OID_EV_INCORPORATION_COUNTRY = 312,
    432    SEC_OID_BUSINESS_CATEGORY = 313,
    433 
    434    SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST = 314,
    435    SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST = 315,
    436 
    437    /* Microsoft Trust List Signing
    438     * szOID_KP_CTL_USAGE_SIGNING
    439     * where KP stands for Key Purpose
    440     */
    441    SEC_OID_MS_EXT_KEY_USAGE_CTL_SIGNING = 316,
    442 
    443    /* The 'name' attribute type in X.520 */
    444    SEC_OID_AVA_NAME = 317,
    445 
    446    SEC_OID_AES_128_GCM = 318,
    447    SEC_OID_AES_192_GCM = 319,
    448    SEC_OID_AES_256_GCM = 320,
    449    SEC_OID_IDEA_CBC = 321,
    450 
    451    /* pseudo - OIDs */
    452 
    453    SEC_OID_RC2_40_CBC = 322,
    454    SEC_OID_DES_40_CBC = 323,
    455    SEC_OID_RC4_40 = 324,
    456    SEC_OID_RC4_56 = 325,
    457    SEC_OID_NULL_CIPHER = 326,
    458 
    459    SEC_OID_HMAC_MD5 = 327,
    460 
    461    SEC_OID_TLS_RSA = 328,
    462    SEC_OID_TLS_DHE_RSA = 329,
    463    SEC_OID_TLS_DHE_DSS = 330,
    464    SEC_OID_TLS_DH_RSA = 331,
    465    SEC_OID_TLS_DH_DSS = 332,
    466    SEC_OID_TLS_DH_ANON = 333,
    467    SEC_OID_TLS_ECDHE_ECDSA = 334,
    468    SEC_OID_TLS_ECDHE_RSA = 335,
    469    SEC_OID_TLS_ECDH_ECDSA = 336,
    470    SEC_OID_TLS_ECDH_RSA = 337,
    471    SEC_OID_TLS_ECDH_ANON = 338,
    472    SEC_OID_TLS_RSA_EXPORT = 339,
    473 
    474    SEC_OID_TLS_DHE_RSA_EXPORT = 340,
    475    SEC_OID_TLS_DHE_DSS_EXPORT = 341,
    476    SEC_OID_TLS_DH_RSA_EXPORT = 342,
    477    SEC_OID_TLS_DH_DSS_EXPORT = 343,
    478    SEC_OID_TLS_DH_ANON_EXPORT = 344,
    479    SEC_OID_APPLY_SSL_POLICY = 345,
    480 
    481    SEC_OID_CHACHA20_POLY1305 = 346,
    482 
    483    SEC_OID_TLS_ECDHE_PSK = 347,
    484    SEC_OID_TLS_DHE_PSK = 348,
    485 
    486    SEC_OID_TLS_FFDHE_2048 = 349,
    487    SEC_OID_TLS_FFDHE_3072 = 350,
    488    SEC_OID_TLS_FFDHE_4096 = 351,
    489    SEC_OID_TLS_FFDHE_6144 = 352,
    490    SEC_OID_TLS_FFDHE_8192 = 353,
    491    SEC_OID_TLS_DHE_CUSTOM = 354,
    492 
    493    SEC_OID_CURVE25519 = 355,
    494 
    495    SEC_OID_TLS13_KEA_ANY = 356,
    496 
    497    SEC_OID_X509_ANY_EXT_KEY_USAGE = 357,
    498    SEC_OID_EXT_KEY_USAGE_IPSEC_IKE = 358,
    499    SEC_OID_IPSEC_IKE_END = 359,
    500    SEC_OID_IPSEC_IKE_INTERMEDIATE = 360,
    501    SEC_OID_EXT_KEY_USAGE_IPSEC_END = 361,
    502    SEC_OID_EXT_KEY_USAGE_IPSEC_TUNNEL = 362,
    503    SEC_OID_EXT_KEY_USAGE_IPSEC_USER = 363,
    504 
    505    SEC_OID_SHA3_224 = 364,
    506    SEC_OID_SHA3_256 = 365,
    507    SEC_OID_SHA3_384 = 366,
    508    SEC_OID_SHA3_512 = 367,
    509 
    510    SEC_OID_HMAC_SHA3_224 = 368,
    511    SEC_OID_HMAC_SHA3_256 = 369,
    512    SEC_OID_HMAC_SHA3_384 = 370,
    513    SEC_OID_HMAC_SHA3_512 = 371,
    514 
    515    SEC_OID_XYBER768D00 = 372,
    516 
    517    SEC_OID_ED25519_SIGNATURE = 373,
    518    SEC_OID_ED25519_PUBLIC_KEY = 374,
    519 
    520    SEC_OID_DHSINGLEPASS_STDDH_SHA1KDF_SCHEME = 375,
    521    SEC_OID_DHSINGLEPASS_STDDH_SHA224KDF_SCHEME = 376,
    522    SEC_OID_DHSINGLEPASS_STDDH_SHA256KDF_SCHEME = 377,
    523    SEC_OID_DHSINGLEPASS_STDDH_SHA384KDF_SCHEME = 378,
    524    SEC_OID_DHSINGLEPASS_STDDH_SHA512KDF_SCHEME = 379,
    525    SEC_OID_DHSINGLEPASS_COFACTORDH_SHA1KDF_SCHEME = 380,
    526    SEC_OID_DHSINGLEPASS_COFACTORDH_SHA224KDF_SCHEME = 381,
    527    SEC_OID_DHSINGLEPASS_COFACTORDH_SHA256KDF_SCHEME = 382,
    528    SEC_OID_DHSINGLEPASS_COFACTORDH_SHA384KDF_SCHEME = 383,
    529    SEC_OID_DHSINGLEPASS_COFACTORDH_SHA512KDF_SCHEME = 384,
    530    SEC_OID_RC2_64_CBC = 385,
    531    SEC_OID_RC2_128_CBC = 386,
    532    SEC_OID_ECDH_KEA = 387,
    533    SEC_OID_X25519 = 388,
    534    SEC_OID_MLKEM768X25519 = 389,
    535 
    536    SEC_OID_TLS_REQUIRE_EMS = 390,
    537 
    538    SEC_OID_ML_DSA_44 = 391,
    539    SEC_OID_ML_DSA_65 = 392,
    540    SEC_OID_ML_DSA_87 = 393,
    541 
    542    SEC_OID_SECP256R1MLKEM768 = 394,
    543    SEC_OID_SECP384R1MLKEM1024 = 395,
    544 
    545    SEC_OID_TOTAL
    546 } SECOidTag;
    547 
    548 #define SEC_OID_SECG_EC_SECP192R1 SEC_OID_ANSIX962_EC_PRIME192V1
    549 #define SEC_OID_SECG_EC_SECP256R1 SEC_OID_ANSIX962_EC_PRIME256V1
    550 #define SEC_OID_PKCS12_KEY_USAGE SEC_OID_X509_KEY_USAGE
    551 
    552 /* fake OID for DSS sign/verify */
    553 #define SEC_OID_SHA SEC_OID_MISS_DSS
    554 
    555 /* ML-DSA Public keys and signatures use the same identifier */
    556 #define SEC_OID_ML_DSA_44_SIGNATURE SEC_OID_ML_DSA_44
    557 #define SEC_OID_ML_DSA_44_PUBLIC_KEY SEC_OID_ML_DSA_44
    558 #define SEC_OID_ML_DSA_65_SIGNATURE SEC_OID_ML_DSA_65
    559 #define SEC_OID_ML_DSA_65_PUBLIC_KEY SEC_OID_ML_DSA_65
    560 #define SEC_OID_ML_DSA_87_SIGNATURE SEC_OID_ML_DSA_87
    561 #define SEC_OID_ML_DSA_87_PUBLIC_KEY SEC_OID_ML_DSA_87
    562 
    563 typedef enum {
    564    INVALID_CERT_EXTENSION = 0,
    565    UNSUPPORTED_CERT_EXTENSION = 1,
    566    SUPPORTED_CERT_EXTENSION = 2
    567 } SECSupportExtenTag;
    568 
    569 struct SECOidDataStr {
    570    SECItem oid;
    571    SECOidTag offset;
    572    const char* desc;
    573    unsigned long mechanism;
    574    SECSupportExtenTag supportedExtension;
    575    /* only used for x.509 v3 extensions, so
    576       that we can print the names of those
    577       extensions that we don't even support */
    578 };
    579 
    580 /* New Opaque extended OID table API.
    581 * These are algorithm policy Flags, used with functions
    582 * NSS_SetAlgorithmPolicy & NSS_GetAlgorithmPolicy.
    583 */
    584 #define NSS_USE_ALG_IN_CERT_SIGNATURE 0x00000001   /* CRLs and OCSP, too */
    585 #define NSS_USE_ALG_IN_SMIME_SIGNATURE 0x00000002  /* used in S/MIME */
    586 #define NSS_USE_ALG_IN_SSL_KX 0x00000004           /* used in SSL key exchange */
    587 #define NSS_USE_ALG_IN_SSL 0x00000008              /* used in SSL record protocol */
    588 #define NSS_USE_POLICY_IN_SSL 0x00000010           /* enable policy in SSL protocol */
    589 #define NSS_USE_ALG_IN_ANY_SIGNATURE 0x00000020    /* used in any signature */
    590 #define NSS_USE_ALG_IN_PKCS12_DECRYPT 0x00000040   /* used to decrypt pkcs12 */
    591 #define NSS_USE_ALG_IN_PKCS12_ENCRYPT 0x00000080   /* used encrypt pkcs12 */
    592 #define NSS_USE_ALG_IN_SMIME_LEGACY 0x00000100     /* used to decrypt smime */
    593 #define NSS_USE_ALG_IN_SMIME_ENCRYPT 0x00000200    /* used to decrypt smime */
    594 #define NSS_USE_ALG_IN_SMIME_KX_LEGACY 0x00000400  /* used to decrypt smime */
    595 #define NSS_USE_ALG_IN_SMIME_KX_ENCRYPT 0x00000800 /* used to decrypt smime */
    596 /* these flags are used by the automatic policy scheme to set the default values
    597 * for enabling and disabling ciphers. Applications should use the enable/disable
    598 * calls directly. */
    599 #define NSS_USE_DEFAULT_NOT_VALID 0x80000000  /* clear to make the default flag valid */
    600 #define NSS_USE_DEFAULT_SSL_ENABLE 0x40000000 /* default cipher suite setting 1=enable */
    601 /* S/MIME Enable sets the list of algorithms we advertise and which algorithms
    602 * we will encrypt/decrypt with. We will decrypt anything that's allowable */
    603 #define NSS_USE_DEFAULT_SMIME_ENABLE 0x20000000 /* default cipher suite setting 1=enable */
    604 
    605 /* Combo policy bits */
    606 #define NSS_USE_ALG_RESERVED 0x1ffff000 /* may be used in future */
    607 /* both encrypt and decrypt PKCS 12 */
    608 #define NSS_USE_ALG_IN_PKCS12 (NSS_USE_ALG_IN_PKCS12_DECRYPT | \
    609                               NSS_USE_ALG_IN_PKCS12_ENCRYPT)
    610 /* both encrypt and decrypt SMIME */
    611 #define NSS_USE_ALG_IN_SMIME (NSS_USE_ALG_IN_SMIME_LEGACY | \
    612                              NSS_USE_ALG_IN_SMIME_ENCRYPT)
    613 /* both encrypt and decrypt key exchange */
    614 #define NSS_USE_ALG_IN_SMIME_KX (NSS_USE_ALG_IN_SMIME_KX_LEGACY | \
    615                                 NSS_USE_ALG_IN_SMIME_KX_ENCRYPT)
    616 /* All the key exchange bits */
    617 #define NSS_USE_ALG_IN_KEY_EXCHANGE (NSS_USE_ALG_IN_SMIME_KX | \
    618                                     NSS_USE_ALG_IN_SSL_KX)
    619 /* Alias of all the signature values. */
    620 #define NSS_USE_ALG_IN_SIGNATURE (NSS_USE_ALG_IN_CERT_SIGNATURE |  \
    621                                  NSS_USE_ALG_IN_SMIME_SIGNATURE | \
    622                                  NSS_USE_ALG_IN_ANY_SIGNATURE)
    623 /* all the bits needed for a certificate signature
    624 * and only the bits needed for a certificate signature */
    625 #define NSS_USE_CERT_SIGNATURE_OK (NSS_USE_ALG_IN_CERT_SIGNATURE | \
    626                                   NSS_USE_ALG_IN_ANY_SIGNATURE)
    627 /* all the bits needed for an SMIME signature
    628 * and only the bits needed for an SMIME signature */
    629 #define NSS_USE_SMIME_SIGNATURE_OK (NSS_USE_ALG_IN_SMIME_SIGNATURE | \
    630                                    NSS_USE_ALG_IN_ANY_SIGNATURE)
    631 
    632 /* legacy names */
    633 #define NSS_USE_ALG_IN_CMS_SIGNATURE NSS_USE_ALG_IN_SMIME_SIGNATURE
    634 #define NSS_USE_ALG_CMS_SIGNATURE_OK NSS_USE_ALG_SMIME_SIGNATURE_OK
    635 
    636 /* Code MUST NOT SET or CLEAR reserved bits, and must NOT depend on them
    637 * being all zeros or having any other known value.  The reserved bits
    638 * must be ignored.
    639 */
    640 
    641 #endif /* _SECOIDT_H_ */