secoidt.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  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. #ifndef _SECOIDT_H_
  5. #define _SECOIDT_H_
  6. #include "utilrename.h"
  7. /*
  8. * secoidt.h - public data structures for ASN.1 OID functions
  9. */
  10. #include "secitem.h"
  11. typedef struct SECOidDataStr SECOidData;
  12. typedef struct SECAlgorithmIDStr SECAlgorithmID;
  13. /*
  14. ** An X.500 algorithm identifier
  15. */
  16. struct SECAlgorithmIDStr {
  17. SECItem algorithm;
  18. SECItem parameters;
  19. };
  20. /*
  21. * Misc object IDs - these numbers are for convenient handling.
  22. * They are mapped into real object IDs
  23. *
  24. * NOTE: the order of these entries must mach the array "oids" of SECOidData
  25. * in util/secoid.c.
  26. */
  27. typedef enum {
  28. SEC_OID_UNKNOWN = 0,
  29. SEC_OID_MD2 = 1,
  30. SEC_OID_MD4 = 2,
  31. SEC_OID_MD5 = 3,
  32. SEC_OID_SHA1 = 4,
  33. SEC_OID_RC2_CBC = 5,
  34. SEC_OID_RC4 = 6,
  35. SEC_OID_DES_EDE3_CBC = 7,
  36. SEC_OID_RC5_CBC_PAD = 8,
  37. SEC_OID_DES_ECB = 9,
  38. SEC_OID_DES_CBC = 10,
  39. SEC_OID_DES_OFB = 11,
  40. SEC_OID_DES_CFB = 12,
  41. SEC_OID_DES_MAC = 13,
  42. SEC_OID_DES_EDE = 14,
  43. SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15,
  44. SEC_OID_PKCS1_RSA_ENCRYPTION = 16,
  45. SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17,
  46. SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18,
  47. SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19,
  48. SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20,
  49. SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21,
  50. SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22,
  51. SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23,
  52. SEC_OID_PKCS7 = 24,
  53. SEC_OID_PKCS7_DATA = 25,
  54. SEC_OID_PKCS7_SIGNED_DATA = 26,
  55. SEC_OID_PKCS7_ENVELOPED_DATA = 27,
  56. SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28,
  57. SEC_OID_PKCS7_DIGESTED_DATA = 29,
  58. SEC_OID_PKCS7_ENCRYPTED_DATA = 30,
  59. SEC_OID_PKCS9_EMAIL_ADDRESS = 31,
  60. SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32,
  61. SEC_OID_PKCS9_CONTENT_TYPE = 33,
  62. SEC_OID_PKCS9_MESSAGE_DIGEST = 34,
  63. SEC_OID_PKCS9_SIGNING_TIME = 35,
  64. SEC_OID_PKCS9_COUNTER_SIGNATURE = 36,
  65. SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37,
  66. SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38,
  67. SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39,
  68. SEC_OID_PKCS9_SMIME_CAPABILITIES = 40,
  69. SEC_OID_AVA_COMMON_NAME = 41,
  70. SEC_OID_AVA_COUNTRY_NAME = 42,
  71. SEC_OID_AVA_LOCALITY = 43,
  72. SEC_OID_AVA_STATE_OR_PROVINCE = 44,
  73. SEC_OID_AVA_ORGANIZATION_NAME = 45,
  74. SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46,
  75. SEC_OID_AVA_DN_QUALIFIER = 47,
  76. SEC_OID_AVA_DC = 48,
  77. SEC_OID_NS_TYPE_GIF = 49,
  78. SEC_OID_NS_TYPE_JPEG = 50,
  79. SEC_OID_NS_TYPE_URL = 51,
  80. SEC_OID_NS_TYPE_HTML = 52,
  81. SEC_OID_NS_TYPE_CERT_SEQUENCE = 53,
  82. SEC_OID_MISSI_KEA_DSS_OLD = 54,
  83. SEC_OID_MISSI_DSS_OLD = 55,
  84. SEC_OID_MISSI_KEA_DSS = 56,
  85. SEC_OID_MISSI_DSS = 57,
  86. SEC_OID_MISSI_KEA = 58,
  87. SEC_OID_MISSI_ALT_KEA = 59,
  88. /* Netscape private certificate extensions */
  89. SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60,
  90. SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61,
  91. SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62,
  92. SEC_OID_NS_CERT_EXT_CERT_TYPE = 63,
  93. SEC_OID_NS_CERT_EXT_BASE_URL = 64,
  94. SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65,
  95. SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66,
  96. SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67,
  97. SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68,
  98. SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69,
  99. SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70,
  100. SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71,
  101. SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72,
  102. SEC_OID_NS_CERT_EXT_USER_PICTURE = 73,
  103. SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74,
  104. SEC_OID_NS_CERT_EXT_COMMENT = 75,
  105. SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76,
  106. SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77,
  107. SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78,
  108. /* x.509 v3 Extensions */
  109. SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79,
  110. SEC_OID_X509_SUBJECT_KEY_ID = 80,
  111. SEC_OID_X509_KEY_USAGE = 81,
  112. SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82,
  113. SEC_OID_X509_SUBJECT_ALT_NAME = 83,
  114. SEC_OID_X509_ISSUER_ALT_NAME = 84,
  115. SEC_OID_X509_BASIC_CONSTRAINTS = 85,
  116. SEC_OID_X509_NAME_CONSTRAINTS = 86,
  117. SEC_OID_X509_CRL_DIST_POINTS = 87,
  118. SEC_OID_X509_CERTIFICATE_POLICIES = 88,
  119. SEC_OID_X509_POLICY_MAPPINGS = 89,
  120. SEC_OID_X509_POLICY_CONSTRAINTS = 90,
  121. SEC_OID_X509_AUTH_KEY_ID = 91,
  122. SEC_OID_X509_EXT_KEY_USAGE = 92,
  123. SEC_OID_X509_AUTH_INFO_ACCESS = 93,
  124. SEC_OID_X509_CRL_NUMBER = 94,
  125. SEC_OID_X509_REASON_CODE = 95,
  126. SEC_OID_X509_INVALID_DATE = 96,
  127. /* End of x.509 v3 Extensions */
  128. SEC_OID_X500_RSA_ENCRYPTION = 97,
  129. /* alg 1485 additions */
  130. SEC_OID_RFC1274_UID = 98,
  131. SEC_OID_RFC1274_MAIL = 99,
  132. /* PKCS 12 additions */
  133. SEC_OID_PKCS12 = 100,
  134. SEC_OID_PKCS12_MODE_IDS = 101,
  135. SEC_OID_PKCS12_ESPVK_IDS = 102,
  136. SEC_OID_PKCS12_BAG_IDS = 103,
  137. SEC_OID_PKCS12_CERT_BAG_IDS = 104,
  138. SEC_OID_PKCS12_OIDS = 105,
  139. SEC_OID_PKCS12_PBE_IDS = 106,
  140. SEC_OID_PKCS12_SIGNATURE_IDS = 107,
  141. SEC_OID_PKCS12_ENVELOPING_IDS = 108,
  142. /* SEC_OID_PKCS12_OFFLINE_TRANSPORT_MODE,
  143. SEC_OID_PKCS12_ONLINE_TRANSPORT_MODE, */
  144. SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109,
  145. SEC_OID_PKCS12_KEY_BAG_ID = 110,
  146. SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111,
  147. SEC_OID_PKCS12_SECRET_BAG_ID = 112,
  148. SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113,
  149. SEC_OID_PKCS12_SDSI_CERT_BAG = 114,
  150. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115,
  151. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116,
  152. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117,
  153. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118,
  154. SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119,
  155. SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120,
  156. SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121,
  157. SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122,
  158. SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123,
  159. /* end of PKCS 12 additions */
  160. /* DSA signatures */
  161. SEC_OID_ANSIX9_DSA_SIGNATURE = 124,
  162. SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125,
  163. SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126,
  164. /* Verisign OIDs */
  165. SEC_OID_VERISIGN_USER_NOTICES = 127,
  166. /* PKIX OIDs */
  167. SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128,
  168. SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129,
  169. SEC_OID_PKIX_OCSP = 130,
  170. SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131,
  171. SEC_OID_PKIX_OCSP_NONCE = 132,
  172. SEC_OID_PKIX_OCSP_CRL = 133,
  173. SEC_OID_PKIX_OCSP_RESPONSE = 134,
  174. SEC_OID_PKIX_OCSP_NO_CHECK = 135,
  175. SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136,
  176. SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137,
  177. SEC_OID_PKIX_REGCTRL_REGTOKEN = 138,
  178. SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139,
  179. SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140,
  180. SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141,
  181. SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142,
  182. SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143,
  183. SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144,
  184. SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145,
  185. SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146,
  186. SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147,
  187. SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148,
  188. SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149,
  189. SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150,
  190. SEC_OID_OCSP_RESPONDER = 151,
  191. /* Netscape Algorithm OIDs */
  192. SEC_OID_NETSCAPE_SMIME_KEA = 152,
  193. /* Skipjack OID -- ### mwelch temporary */
  194. SEC_OID_FORTEZZA_SKIPJACK = 153,
  195. /* PKCS 12 V2 oids */
  196. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154,
  197. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155,
  198. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156,
  199. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157,
  200. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158,
  201. SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159,
  202. SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160,
  203. SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161,
  204. SEC_OID_PKCS12_V1_KEY_BAG_ID = 162,
  205. SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163,
  206. SEC_OID_PKCS12_V1_CERT_BAG_ID = 164,
  207. SEC_OID_PKCS12_V1_CRL_BAG_ID = 165,
  208. SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166,
  209. SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167,
  210. SEC_OID_PKCS9_X509_CERT = 168,
  211. SEC_OID_PKCS9_SDSI_CERT = 169,
  212. SEC_OID_PKCS9_X509_CRL = 170,
  213. SEC_OID_PKCS9_FRIENDLY_NAME = 171,
  214. SEC_OID_PKCS9_LOCAL_KEY_ID = 172,
  215. SEC_OID_BOGUS_KEY_USAGE = 173,
  216. /*Diffe Helman OIDS */
  217. SEC_OID_X942_DIFFIE_HELMAN_KEY = 174,
  218. /* Netscape other name types */
  219. /* SEC_OID_NETSCAPE_NICKNAME is an otherName field of type IA5String
  220. * in the subjectAltName certificate extension. NSS dropped support
  221. * for SEC_OID_NETSCAPE_NICKNAME in NSS 3.13. */
  222. SEC_OID_NETSCAPE_NICKNAME = 175,
  223. /* Cert Server OIDS */
  224. SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176,
  225. /* New PSM certificate management OIDs */
  226. SEC_OID_CERT_RENEWAL_LOCATOR = 177,
  227. SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178,
  228. /* CMS (RFC2630) OIDs */
  229. SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179,
  230. SEC_OID_CMS_3DES_KEY_WRAP = 180,
  231. SEC_OID_CMS_RC2_KEY_WRAP = 181,
  232. /* SMIME attributes */
  233. SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182,
  234. /* AES OIDs */
  235. SEC_OID_AES_128_ECB = 183,
  236. SEC_OID_AES_128_CBC = 184,
  237. SEC_OID_AES_192_ECB = 185,
  238. SEC_OID_AES_192_CBC = 186,
  239. SEC_OID_AES_256_ECB = 187,
  240. SEC_OID_AES_256_CBC = 188,
  241. SEC_OID_SDN702_DSA_SIGNATURE = 189,
  242. SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE = 190,
  243. SEC_OID_SHA256 = 191,
  244. SEC_OID_SHA384 = 192,
  245. SEC_OID_SHA512 = 193,
  246. SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION = 194,
  247. SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION = 195,
  248. SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION = 196,
  249. SEC_OID_AES_128_KEY_WRAP = 197,
  250. SEC_OID_AES_192_KEY_WRAP = 198,
  251. SEC_OID_AES_256_KEY_WRAP = 199,
  252. /* Elliptic Curve Cryptography (ECC) OIDs */
  253. SEC_OID_ANSIX962_EC_PUBLIC_KEY = 200,
  254. SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE = 201,
  255. #define SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST \
  256. SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE
  257. /* ANSI X9.62 named elliptic curves (prime field) */
  258. SEC_OID_ANSIX962_EC_PRIME192V1 = 202,
  259. SEC_OID_ANSIX962_EC_PRIME192V2 = 203,
  260. SEC_OID_ANSIX962_EC_PRIME192V3 = 204,
  261. SEC_OID_ANSIX962_EC_PRIME239V1 = 205,
  262. SEC_OID_ANSIX962_EC_PRIME239V2 = 206,
  263. SEC_OID_ANSIX962_EC_PRIME239V3 = 207,
  264. SEC_OID_ANSIX962_EC_PRIME256V1 = 208,
  265. /* SECG named elliptic curves (prime field) */
  266. SEC_OID_SECG_EC_SECP112R1 = 209,
  267. SEC_OID_SECG_EC_SECP112R2 = 210,
  268. SEC_OID_SECG_EC_SECP128R1 = 211,
  269. SEC_OID_SECG_EC_SECP128R2 = 212,
  270. SEC_OID_SECG_EC_SECP160K1 = 213,
  271. SEC_OID_SECG_EC_SECP160R1 = 214,
  272. SEC_OID_SECG_EC_SECP160R2 = 215,
  273. SEC_OID_SECG_EC_SECP192K1 = 216,
  274. /* SEC_OID_SECG_EC_SECP192R1 is SEC_OID_ANSIX962_EC_PRIME192V1 */
  275. SEC_OID_SECG_EC_SECP224K1 = 217,
  276. SEC_OID_SECG_EC_SECP224R1 = 218,
  277. SEC_OID_SECG_EC_SECP256K1 = 219,
  278. /* SEC_OID_SECG_EC_SECP256R1 is SEC_OID_ANSIX962_EC_PRIME256V1 */
  279. SEC_OID_SECG_EC_SECP384R1 = 220,
  280. SEC_OID_SECG_EC_SECP521R1 = 221,
  281. /* ANSI X9.62 named elliptic curves (characteristic two field) */
  282. SEC_OID_ANSIX962_EC_C2PNB163V1 = 222,
  283. SEC_OID_ANSIX962_EC_C2PNB163V2 = 223,
  284. SEC_OID_ANSIX962_EC_C2PNB163V3 = 224,
  285. SEC_OID_ANSIX962_EC_C2PNB176V1 = 225,
  286. SEC_OID_ANSIX962_EC_C2TNB191V1 = 226,
  287. SEC_OID_ANSIX962_EC_C2TNB191V2 = 227,
  288. SEC_OID_ANSIX962_EC_C2TNB191V3 = 228,
  289. SEC_OID_ANSIX962_EC_C2ONB191V4 = 229,
  290. SEC_OID_ANSIX962_EC_C2ONB191V5 = 230,
  291. SEC_OID_ANSIX962_EC_C2PNB208W1 = 231,
  292. SEC_OID_ANSIX962_EC_C2TNB239V1 = 232,
  293. SEC_OID_ANSIX962_EC_C2TNB239V2 = 233,
  294. SEC_OID_ANSIX962_EC_C2TNB239V3 = 234,
  295. SEC_OID_ANSIX962_EC_C2ONB239V4 = 235,
  296. SEC_OID_ANSIX962_EC_C2ONB239V5 = 236,
  297. SEC_OID_ANSIX962_EC_C2PNB272W1 = 237,
  298. SEC_OID_ANSIX962_EC_C2PNB304W1 = 238,
  299. SEC_OID_ANSIX962_EC_C2TNB359V1 = 239,
  300. SEC_OID_ANSIX962_EC_C2PNB368W1 = 240,
  301. SEC_OID_ANSIX962_EC_C2TNB431R1 = 241,
  302. /* SECG named elliptic curves (characteristic two field) */
  303. SEC_OID_SECG_EC_SECT113R1 = 242,
  304. SEC_OID_SECG_EC_SECT113R2 = 243,
  305. SEC_OID_SECG_EC_SECT131R1 = 244,
  306. SEC_OID_SECG_EC_SECT131R2 = 245,
  307. SEC_OID_SECG_EC_SECT163K1 = 246,
  308. SEC_OID_SECG_EC_SECT163R1 = 247,
  309. SEC_OID_SECG_EC_SECT163R2 = 248,
  310. SEC_OID_SECG_EC_SECT193R1 = 249,
  311. SEC_OID_SECG_EC_SECT193R2 = 250,
  312. SEC_OID_SECG_EC_SECT233K1 = 251,
  313. SEC_OID_SECG_EC_SECT233R1 = 252,
  314. SEC_OID_SECG_EC_SECT239K1 = 253,
  315. SEC_OID_SECG_EC_SECT283K1 = 254,
  316. SEC_OID_SECG_EC_SECT283R1 = 255,
  317. SEC_OID_SECG_EC_SECT409K1 = 256,
  318. SEC_OID_SECG_EC_SECT409R1 = 257,
  319. SEC_OID_SECG_EC_SECT571K1 = 258,
  320. SEC_OID_SECG_EC_SECT571R1 = 259,
  321. SEC_OID_NETSCAPE_AOLSCREENNAME = 260,
  322. SEC_OID_AVA_SURNAME = 261,
  323. SEC_OID_AVA_SERIAL_NUMBER = 262,
  324. SEC_OID_AVA_STREET_ADDRESS = 263,
  325. SEC_OID_AVA_TITLE = 264,
  326. SEC_OID_AVA_POSTAL_ADDRESS = 265,
  327. SEC_OID_AVA_POSTAL_CODE = 266,
  328. SEC_OID_AVA_POST_OFFICE_BOX = 267,
  329. SEC_OID_AVA_GIVEN_NAME = 268,
  330. SEC_OID_AVA_INITIALS = 269,
  331. SEC_OID_AVA_GENERATION_QUALIFIER = 270,
  332. SEC_OID_AVA_HOUSE_IDENTIFIER = 271,
  333. SEC_OID_AVA_PSEUDONYM = 272,
  334. /* More OIDs */
  335. SEC_OID_PKIX_CA_ISSUERS = 273,
  336. SEC_OID_PKCS9_EXTENSION_REQUEST = 274,
  337. /* new EC Signature oids */
  338. SEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGEST = 275,
  339. SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST = 276,
  340. SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE = 277,
  341. SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE = 278,
  342. SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE = 279,
  343. SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE = 280,
  344. /* More id-ce and id-pe OIDs from RFC 3280 */
  345. SEC_OID_X509_HOLD_INSTRUCTION_CODE = 281,
  346. SEC_OID_X509_DELTA_CRL_INDICATOR = 282,
  347. SEC_OID_X509_ISSUING_DISTRIBUTION_POINT = 283,
  348. SEC_OID_X509_CERT_ISSUER = 284,
  349. SEC_OID_X509_FRESHEST_CRL = 285,
  350. SEC_OID_X509_INHIBIT_ANY_POLICY = 286,
  351. SEC_OID_X509_SUBJECT_INFO_ACCESS = 287,
  352. /* Camellia OIDs (RFC3657)*/
  353. SEC_OID_CAMELLIA_128_CBC = 288,
  354. SEC_OID_CAMELLIA_192_CBC = 289,
  355. SEC_OID_CAMELLIA_256_CBC = 290,
  356. /* PKCS 5 V2 OIDS */
  357. SEC_OID_PKCS5_PBKDF2 = 291,
  358. SEC_OID_PKCS5_PBES2 = 292,
  359. SEC_OID_PKCS5_PBMAC1 = 293,
  360. SEC_OID_HMAC_SHA1 = 294,
  361. SEC_OID_HMAC_SHA224 = 295,
  362. SEC_OID_HMAC_SHA256 = 296,
  363. SEC_OID_HMAC_SHA384 = 297,
  364. SEC_OID_HMAC_SHA512 = 298,
  365. SEC_OID_PKIX_TIMESTAMPING = 299,
  366. SEC_OID_PKIX_CA_REPOSITORY = 300,
  367. SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE = 301,
  368. SEC_OID_SEED_CBC = 302,
  369. SEC_OID_X509_ANY_POLICY = 303,
  370. SEC_OID_PKCS1_RSA_OAEP_ENCRYPTION = 304,
  371. SEC_OID_PKCS1_MGF1 = 305,
  372. SEC_OID_PKCS1_PSPECIFIED = 306,
  373. SEC_OID_PKCS1_RSA_PSS_SIGNATURE = 307,
  374. SEC_OID_PKCS1_SHA224_WITH_RSA_ENCRYPTION = 308,
  375. SEC_OID_SHA224 = 309,
  376. SEC_OID_EV_INCORPORATION_LOCALITY = 310,
  377. SEC_OID_EV_INCORPORATION_STATE = 311,
  378. SEC_OID_EV_INCORPORATION_COUNTRY = 312,
  379. SEC_OID_BUSINESS_CATEGORY = 313,
  380. SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST = 314,
  381. SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST = 315,
  382. /* Microsoft Trust List Signing
  383. * szOID_KP_CTL_USAGE_SIGNING
  384. * where KP stands for Key Purpose
  385. */
  386. SEC_OID_MS_EXT_KEY_USAGE_CTL_SIGNING = 316,
  387. /* The 'name' attribute type in X.520 */
  388. SEC_OID_AVA_NAME = 317,
  389. SEC_OID_AES_128_GCM = 318,
  390. SEC_OID_AES_192_GCM = 319,
  391. SEC_OID_AES_256_GCM = 320,
  392. SEC_OID_IDEA_CBC = 321,
  393. /* pseudo - OIDs */
  394. SEC_OID_RC2_40_CBC = 322,
  395. SEC_OID_DES_40_CBC = 323,
  396. SEC_OID_RC4_40 = 324,
  397. SEC_OID_RC4_56 = 325,
  398. SEC_OID_NULL_CIPHER = 326,
  399. SEC_OID_HMAC_MD5 = 327,
  400. SEC_OID_TLS_RSA = 328,
  401. SEC_OID_TLS_DHE_RSA = 329,
  402. SEC_OID_TLS_DHE_DSS = 330,
  403. SEC_OID_TLS_DH_RSA = 331,
  404. SEC_OID_TLS_DH_DSS = 332,
  405. SEC_OID_TLS_DH_ANON = 333,
  406. SEC_OID_TLS_ECDHE_ECDSA = 334,
  407. SEC_OID_TLS_ECDHE_RSA = 335,
  408. SEC_OID_TLS_ECDH_ECDSA = 336,
  409. SEC_OID_TLS_ECDH_RSA = 337,
  410. SEC_OID_TLS_ECDH_ANON = 338,
  411. SEC_OID_TLS_RSA_EXPORT = 339,
  412. SEC_OID_TLS_DHE_RSA_EXPORT = 340,
  413. SEC_OID_TLS_DHE_DSS_EXPORT = 341,
  414. SEC_OID_TLS_DH_RSA_EXPORT = 342,
  415. SEC_OID_TLS_DH_DSS_EXPORT = 343,
  416. SEC_OID_TLS_DH_ANON_EXPORT = 344,
  417. SEC_OID_APPLY_SSL_POLICY = 345,
  418. SEC_OID_CHACHA20_POLY1305 = 346,
  419. SEC_OID_TLS_ECDHE_PSK = 347,
  420. SEC_OID_TLS_DHE_PSK = 348,
  421. SEC_OID_TLS_FFDHE_2048 = 349,
  422. SEC_OID_TLS_FFDHE_3072 = 350,
  423. SEC_OID_TLS_FFDHE_4096 = 351,
  424. SEC_OID_TLS_FFDHE_6144 = 352,
  425. SEC_OID_TLS_FFDHE_8192 = 353,
  426. SEC_OID_TLS_DHE_CUSTOM = 354,
  427. SEC_OID_CURVE25519 = 355,
  428. SEC_OID_TLS13_KEA_ANY = 356,
  429. SEC_OID_X509_ANY_EXT_KEY_USAGE = 357,
  430. SEC_OID_EXT_KEY_USAGE_IPSEC_IKE = 358,
  431. SEC_OID_IPSEC_IKE_END = 359,
  432. SEC_OID_IPSEC_IKE_INTERMEDIATE = 360,
  433. SEC_OID_EXT_KEY_USAGE_IPSEC_END = 361,
  434. SEC_OID_EXT_KEY_USAGE_IPSEC_TUNNEL = 362,
  435. SEC_OID_EXT_KEY_USAGE_IPSEC_USER = 363,
  436. SEC_OID_TOTAL
  437. } SECOidTag;
  438. #define SEC_OID_SECG_EC_SECP192R1 SEC_OID_ANSIX962_EC_PRIME192V1
  439. #define SEC_OID_SECG_EC_SECP256R1 SEC_OID_ANSIX962_EC_PRIME256V1
  440. #define SEC_OID_PKCS12_KEY_USAGE SEC_OID_X509_KEY_USAGE
  441. /* fake OID for DSS sign/verify */
  442. #define SEC_OID_SHA SEC_OID_MISS_DSS
  443. typedef enum {
  444. INVALID_CERT_EXTENSION = 0,
  445. UNSUPPORTED_CERT_EXTENSION = 1,
  446. SUPPORTED_CERT_EXTENSION = 2
  447. } SECSupportExtenTag;
  448. struct SECOidDataStr {
  449. SECItem oid;
  450. SECOidTag offset;
  451. const char* desc;
  452. unsigned long mechanism;
  453. SECSupportExtenTag supportedExtension;
  454. /* only used for x.509 v3 extensions, so
  455. that we can print the names of those
  456. extensions that we don't even support */
  457. };
  458. /* New Opaque extended OID table API.
  459. * These are algorithm policy Flags, used with functions
  460. * NSS_SetAlgorithmPolicy & NSS_GetAlgorithmPolicy.
  461. */
  462. #define NSS_USE_ALG_IN_CERT_SIGNATURE 0x00000001 /* CRLs and OCSP, too */
  463. #define NSS_USE_ALG_IN_CMS_SIGNATURE 0x00000002 /* used in S/MIME */
  464. #define NSS_USE_ALG_IN_SSL_KX 0x00000004 /* used in SSL key exchange */
  465. #define NSS_USE_ALG_IN_SSL 0x00000008 /* used in SSL record protocol */
  466. #define NSS_USE_POLICY_IN_SSL 0x00000010 /* enable policy in SSL protocol */
  467. #define NSS_USE_ALG_RESERVED 0xfffffffc /* may be used in future */
  468. /* Code MUST NOT SET or CLEAR reserved bits, and must NOT depend on them
  469. * being all zeros or having any other known value. The reserved bits
  470. * must be ignored.
  471. */
  472. #endif /* _SECOIDT_H_ */