objects.h 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143
  1. /* crypto/objects/objects.h */
  2. /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  3. * All rights reserved.
  4. *
  5. * This package is an SSL implementation written
  6. * by Eric Young (eay@cryptsoft.com).
  7. * The implementation was written so as to conform with Netscapes SSL.
  8. *
  9. * This library is free for commercial and non-commercial use as long as
  10. * the following conditions are aheared to. The following conditions
  11. * apply to all code found in this distribution, be it the RC4, RSA,
  12. * lhash, DES, etc., code; not just the SSL code. The SSL documentation
  13. * included with this distribution is covered by the same copyright terms
  14. * except that the holder is Tim Hudson (tjh@cryptsoft.com).
  15. *
  16. * Copyright remains Eric Young's, and as such any Copyright notices in
  17. * the code are not to be removed.
  18. * If this package is used in a product, Eric Young should be given attribution
  19. * as the author of the parts of the library used.
  20. * This can be in the form of a textual message at program startup or
  21. * in documentation (online or textual) provided with the package.
  22. *
  23. * Redistribution and use in source and binary forms, with or without
  24. * modification, are permitted provided that the following conditions
  25. * are met:
  26. * 1. Redistributions of source code must retain the copyright
  27. * notice, this list of conditions and the following disclaimer.
  28. * 2. Redistributions in binary form must reproduce the above copyright
  29. * notice, this list of conditions and the following disclaimer in the
  30. * documentation and/or other materials provided with the distribution.
  31. * 3. All advertising materials mentioning features or use of this software
  32. * must display the following acknowledgement:
  33. * "This product includes cryptographic software written by
  34. * Eric Young (eay@cryptsoft.com)"
  35. * The word 'cryptographic' can be left out if the rouines from the library
  36. * being used are not cryptographic related :-).
  37. * 4. If you include any Windows specific code (or a derivative thereof) from
  38. * the apps directory (application code) you must include an acknowledgement:
  39. * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
  40. *
  41. * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  42. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  43. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  44. * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  45. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  46. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  47. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  48. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  49. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  50. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  51. * SUCH DAMAGE.
  52. *
  53. * The licence and distribution terms for any publically available version or
  54. * derivative of this code cannot be changed. i.e. this code cannot simply be
  55. * copied and put under another distribution licence
  56. * [including the GNU Public Licence.]
  57. */
  58. #ifndef HEADER_OBJECTS_H
  59. # define HEADER_OBJECTS_H
  60. # define USE_OBJ_MAC
  61. # ifdef USE_OBJ_MAC
  62. # include <openssl/obj_mac.h>
  63. # else
  64. # define SN_undef "UNDEF"
  65. # define LN_undef "undefined"
  66. # define NID_undef 0
  67. # define OBJ_undef 0L
  68. # define SN_Algorithm "Algorithm"
  69. # define LN_algorithm "algorithm"
  70. # define NID_algorithm 38
  71. # define OBJ_algorithm 1L,3L,14L,3L,2L
  72. # define LN_rsadsi "rsadsi"
  73. # define NID_rsadsi 1
  74. # define OBJ_rsadsi 1L,2L,840L,113549L
  75. # define LN_pkcs "pkcs"
  76. # define NID_pkcs 2
  77. # define OBJ_pkcs OBJ_rsadsi,1L
  78. # define SN_md2 "MD2"
  79. # define LN_md2 "md2"
  80. # define NID_md2 3
  81. # define OBJ_md2 OBJ_rsadsi,2L,2L
  82. # define SN_md5 "MD5"
  83. # define LN_md5 "md5"
  84. # define NID_md5 4
  85. # define OBJ_md5 OBJ_rsadsi,2L,5L
  86. # define SN_rc4 "RC4"
  87. # define LN_rc4 "rc4"
  88. # define NID_rc4 5
  89. # define OBJ_rc4 OBJ_rsadsi,3L,4L
  90. # define LN_rsaEncryption "rsaEncryption"
  91. # define NID_rsaEncryption 6
  92. # define OBJ_rsaEncryption OBJ_pkcs,1L,1L
  93. # define SN_md2WithRSAEncryption "RSA-MD2"
  94. # define LN_md2WithRSAEncryption "md2WithRSAEncryption"
  95. # define NID_md2WithRSAEncryption 7
  96. # define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L
  97. # define SN_md5WithRSAEncryption "RSA-MD5"
  98. # define LN_md5WithRSAEncryption "md5WithRSAEncryption"
  99. # define NID_md5WithRSAEncryption 8
  100. # define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L
  101. # define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES"
  102. # define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC"
  103. # define NID_pbeWithMD2AndDES_CBC 9
  104. # define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L
  105. # define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES"
  106. # define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC"
  107. # define NID_pbeWithMD5AndDES_CBC 10
  108. # define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L
  109. # define LN_X500 "X500"
  110. # define NID_X500 11
  111. # define OBJ_X500 2L,5L
  112. # define LN_X509 "X509"
  113. # define NID_X509 12
  114. # define OBJ_X509 OBJ_X500,4L
  115. # define SN_commonName "CN"
  116. # define LN_commonName "commonName"
  117. # define NID_commonName 13
  118. # define OBJ_commonName OBJ_X509,3L
  119. # define SN_countryName "C"
  120. # define LN_countryName "countryName"
  121. # define NID_countryName 14
  122. # define OBJ_countryName OBJ_X509,6L
  123. # define SN_localityName "L"
  124. # define LN_localityName "localityName"
  125. # define NID_localityName 15
  126. # define OBJ_localityName OBJ_X509,7L
  127. /* Postal Address? PA */
  128. /* should be "ST" (rfc1327) but MS uses 'S' */
  129. # define SN_stateOrProvinceName "ST"
  130. # define LN_stateOrProvinceName "stateOrProvinceName"
  131. # define NID_stateOrProvinceName 16
  132. # define OBJ_stateOrProvinceName OBJ_X509,8L
  133. # define SN_organizationName "O"
  134. # define LN_organizationName "organizationName"
  135. # define NID_organizationName 17
  136. # define OBJ_organizationName OBJ_X509,10L
  137. # define SN_organizationalUnitName "OU"
  138. # define LN_organizationalUnitName "organizationalUnitName"
  139. # define NID_organizationalUnitName 18
  140. # define OBJ_organizationalUnitName OBJ_X509,11L
  141. # define SN_rsa "RSA"
  142. # define LN_rsa "rsa"
  143. # define NID_rsa 19
  144. # define OBJ_rsa OBJ_X500,8L,1L,1L
  145. # define LN_pkcs7 "pkcs7"
  146. # define NID_pkcs7 20
  147. # define OBJ_pkcs7 OBJ_pkcs,7L
  148. # define LN_pkcs7_data "pkcs7-data"
  149. # define NID_pkcs7_data 21
  150. # define OBJ_pkcs7_data OBJ_pkcs7,1L
  151. # define LN_pkcs7_signed "pkcs7-signedData"
  152. # define NID_pkcs7_signed 22
  153. # define OBJ_pkcs7_signed OBJ_pkcs7,2L
  154. # define LN_pkcs7_enveloped "pkcs7-envelopedData"
  155. # define NID_pkcs7_enveloped 23
  156. # define OBJ_pkcs7_enveloped OBJ_pkcs7,3L
  157. # define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData"
  158. # define NID_pkcs7_signedAndEnveloped 24
  159. # define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L
  160. # define LN_pkcs7_digest "pkcs7-digestData"
  161. # define NID_pkcs7_digest 25
  162. # define OBJ_pkcs7_digest OBJ_pkcs7,5L
  163. # define LN_pkcs7_encrypted "pkcs7-encryptedData"
  164. # define NID_pkcs7_encrypted 26
  165. # define OBJ_pkcs7_encrypted OBJ_pkcs7,6L
  166. # define LN_pkcs3 "pkcs3"
  167. # define NID_pkcs3 27
  168. # define OBJ_pkcs3 OBJ_pkcs,3L
  169. # define LN_dhKeyAgreement "dhKeyAgreement"
  170. # define NID_dhKeyAgreement 28
  171. # define OBJ_dhKeyAgreement OBJ_pkcs3,1L
  172. # define SN_des_ecb "DES-ECB"
  173. # define LN_des_ecb "des-ecb"
  174. # define NID_des_ecb 29
  175. # define OBJ_des_ecb OBJ_algorithm,6L
  176. # define SN_des_cfb64 "DES-CFB"
  177. # define LN_des_cfb64 "des-cfb"
  178. # define NID_des_cfb64 30
  179. /* IV + num */
  180. # define OBJ_des_cfb64 OBJ_algorithm,9L
  181. # define SN_des_cbc "DES-CBC"
  182. # define LN_des_cbc "des-cbc"
  183. # define NID_des_cbc 31
  184. /* IV */
  185. # define OBJ_des_cbc OBJ_algorithm,7L
  186. # define SN_des_ede "DES-EDE"
  187. # define LN_des_ede "des-ede"
  188. # define NID_des_ede 32
  189. /* ?? */
  190. # define OBJ_des_ede OBJ_algorithm,17L
  191. # define SN_des_ede3 "DES-EDE3"
  192. # define LN_des_ede3 "des-ede3"
  193. # define NID_des_ede3 33
  194. # define SN_idea_cbc "IDEA-CBC"
  195. # define LN_idea_cbc "idea-cbc"
  196. # define NID_idea_cbc 34
  197. # define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L
  198. # define SN_idea_cfb64 "IDEA-CFB"
  199. # define LN_idea_cfb64 "idea-cfb"
  200. # define NID_idea_cfb64 35
  201. # define SN_idea_ecb "IDEA-ECB"
  202. # define LN_idea_ecb "idea-ecb"
  203. # define NID_idea_ecb 36
  204. # define SN_rc2_cbc "RC2-CBC"
  205. # define LN_rc2_cbc "rc2-cbc"
  206. # define NID_rc2_cbc 37
  207. # define OBJ_rc2_cbc OBJ_rsadsi,3L,2L
  208. # define SN_rc2_ecb "RC2-ECB"
  209. # define LN_rc2_ecb "rc2-ecb"
  210. # define NID_rc2_ecb 38
  211. # define SN_rc2_cfb64 "RC2-CFB"
  212. # define LN_rc2_cfb64 "rc2-cfb"
  213. # define NID_rc2_cfb64 39
  214. # define SN_rc2_ofb64 "RC2-OFB"
  215. # define LN_rc2_ofb64 "rc2-ofb"
  216. # define NID_rc2_ofb64 40
  217. # define SN_sha "SHA"
  218. # define LN_sha "sha"
  219. # define NID_sha 41
  220. # define OBJ_sha OBJ_algorithm,18L
  221. # define SN_shaWithRSAEncryption "RSA-SHA"
  222. # define LN_shaWithRSAEncryption "shaWithRSAEncryption"
  223. # define NID_shaWithRSAEncryption 42
  224. # define OBJ_shaWithRSAEncryption OBJ_algorithm,15L
  225. # define SN_des_ede_cbc "DES-EDE-CBC"
  226. # define LN_des_ede_cbc "des-ede-cbc"
  227. # define NID_des_ede_cbc 43
  228. # define SN_des_ede3_cbc "DES-EDE3-CBC"
  229. # define LN_des_ede3_cbc "des-ede3-cbc"
  230. # define NID_des_ede3_cbc 44
  231. # define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L
  232. # define SN_des_ofb64 "DES-OFB"
  233. # define LN_des_ofb64 "des-ofb"
  234. # define NID_des_ofb64 45
  235. # define OBJ_des_ofb64 OBJ_algorithm,8L
  236. # define SN_idea_ofb64 "IDEA-OFB"
  237. # define LN_idea_ofb64 "idea-ofb"
  238. # define NID_idea_ofb64 46
  239. # define LN_pkcs9 "pkcs9"
  240. # define NID_pkcs9 47
  241. # define OBJ_pkcs9 OBJ_pkcs,9L
  242. # define SN_pkcs9_emailAddress "Email"
  243. # define LN_pkcs9_emailAddress "emailAddress"
  244. # define NID_pkcs9_emailAddress 48
  245. # define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L
  246. # define LN_pkcs9_unstructuredName "unstructuredName"
  247. # define NID_pkcs9_unstructuredName 49
  248. # define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L
  249. # define LN_pkcs9_contentType "contentType"
  250. # define NID_pkcs9_contentType 50
  251. # define OBJ_pkcs9_contentType OBJ_pkcs9,3L
  252. # define LN_pkcs9_messageDigest "messageDigest"
  253. # define NID_pkcs9_messageDigest 51
  254. # define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L
  255. # define LN_pkcs9_signingTime "signingTime"
  256. # define NID_pkcs9_signingTime 52
  257. # define OBJ_pkcs9_signingTime OBJ_pkcs9,5L
  258. # define LN_pkcs9_countersignature "countersignature"
  259. # define NID_pkcs9_countersignature 53
  260. # define OBJ_pkcs9_countersignature OBJ_pkcs9,6L
  261. # define LN_pkcs9_challengePassword "challengePassword"
  262. # define NID_pkcs9_challengePassword 54
  263. # define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L
  264. # define LN_pkcs9_unstructuredAddress "unstructuredAddress"
  265. # define NID_pkcs9_unstructuredAddress 55
  266. # define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L
  267. # define LN_pkcs9_extCertAttributes "extendedCertificateAttributes"
  268. # define NID_pkcs9_extCertAttributes 56
  269. # define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L
  270. # define SN_netscape "Netscape"
  271. # define LN_netscape "Netscape Communications Corp."
  272. # define NID_netscape 57
  273. # define OBJ_netscape 2L,16L,840L,1L,113730L
  274. # define SN_netscape_cert_extension "nsCertExt"
  275. # define LN_netscape_cert_extension "Netscape Certificate Extension"
  276. # define NID_netscape_cert_extension 58
  277. # define OBJ_netscape_cert_extension OBJ_netscape,1L
  278. # define SN_netscape_data_type "nsDataType"
  279. # define LN_netscape_data_type "Netscape Data Type"
  280. # define NID_netscape_data_type 59
  281. # define OBJ_netscape_data_type OBJ_netscape,2L
  282. # define SN_des_ede_cfb64 "DES-EDE-CFB"
  283. # define LN_des_ede_cfb64 "des-ede-cfb"
  284. # define NID_des_ede_cfb64 60
  285. # define SN_des_ede3_cfb64 "DES-EDE3-CFB"
  286. # define LN_des_ede3_cfb64 "des-ede3-cfb"
  287. # define NID_des_ede3_cfb64 61
  288. # define SN_des_ede_ofb64 "DES-EDE-OFB"
  289. # define LN_des_ede_ofb64 "des-ede-ofb"
  290. # define NID_des_ede_ofb64 62
  291. # define SN_des_ede3_ofb64 "DES-EDE3-OFB"
  292. # define LN_des_ede3_ofb64 "des-ede3-ofb"
  293. # define NID_des_ede3_ofb64 63
  294. /* I'm not sure about the object ID */
  295. # define SN_sha1 "SHA1"
  296. # define LN_sha1 "sha1"
  297. # define NID_sha1 64
  298. # define OBJ_sha1 OBJ_algorithm,26L
  299. /* 28 Jun 1996 - eay */
  300. /* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */
  301. # define SN_sha1WithRSAEncryption "RSA-SHA1"
  302. # define LN_sha1WithRSAEncryption "sha1WithRSAEncryption"
  303. # define NID_sha1WithRSAEncryption 65
  304. # define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L
  305. # define SN_dsaWithSHA "DSA-SHA"
  306. # define LN_dsaWithSHA "dsaWithSHA"
  307. # define NID_dsaWithSHA 66
  308. # define OBJ_dsaWithSHA OBJ_algorithm,13L
  309. # define SN_dsa_2 "DSA-old"
  310. # define LN_dsa_2 "dsaEncryption-old"
  311. # define NID_dsa_2 67
  312. # define OBJ_dsa_2 OBJ_algorithm,12L
  313. /* proposed by microsoft to RSA */
  314. # define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64"
  315. # define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC"
  316. # define NID_pbeWithSHA1AndRC2_CBC 68
  317. # define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L
  318. /*
  319. * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined
  320. * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely
  321. * different.
  322. */
  323. # define LN_id_pbkdf2 "PBKDF2"
  324. # define NID_id_pbkdf2 69
  325. # define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L
  326. # define SN_dsaWithSHA1_2 "DSA-SHA1-old"
  327. # define LN_dsaWithSHA1_2 "dsaWithSHA1-old"
  328. # define NID_dsaWithSHA1_2 70
  329. /* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */
  330. # define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L
  331. # define SN_netscape_cert_type "nsCertType"
  332. # define LN_netscape_cert_type "Netscape Cert Type"
  333. # define NID_netscape_cert_type 71
  334. # define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L
  335. # define SN_netscape_base_url "nsBaseUrl"
  336. # define LN_netscape_base_url "Netscape Base Url"
  337. # define NID_netscape_base_url 72
  338. # define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L
  339. # define SN_netscape_revocation_url "nsRevocationUrl"
  340. # define LN_netscape_revocation_url "Netscape Revocation Url"
  341. # define NID_netscape_revocation_url 73
  342. # define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L
  343. # define SN_netscape_ca_revocation_url "nsCaRevocationUrl"
  344. # define LN_netscape_ca_revocation_url "Netscape CA Revocation Url"
  345. # define NID_netscape_ca_revocation_url 74
  346. # define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L
  347. # define SN_netscape_renewal_url "nsRenewalUrl"
  348. # define LN_netscape_renewal_url "Netscape Renewal Url"
  349. # define NID_netscape_renewal_url 75
  350. # define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L
  351. # define SN_netscape_ca_policy_url "nsCaPolicyUrl"
  352. # define LN_netscape_ca_policy_url "Netscape CA Policy Url"
  353. # define NID_netscape_ca_policy_url 76
  354. # define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L
  355. # define SN_netscape_ssl_server_name "nsSslServerName"
  356. # define LN_netscape_ssl_server_name "Netscape SSL Server Name"
  357. # define NID_netscape_ssl_server_name 77
  358. # define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L
  359. # define SN_netscape_comment "nsComment"
  360. # define LN_netscape_comment "Netscape Comment"
  361. # define NID_netscape_comment 78
  362. # define OBJ_netscape_comment OBJ_netscape_cert_extension,13L
  363. # define SN_netscape_cert_sequence "nsCertSequence"
  364. # define LN_netscape_cert_sequence "Netscape Certificate Sequence"
  365. # define NID_netscape_cert_sequence 79
  366. # define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L
  367. # define SN_desx_cbc "DESX-CBC"
  368. # define LN_desx_cbc "desx-cbc"
  369. # define NID_desx_cbc 80
  370. # define SN_id_ce "id-ce"
  371. # define NID_id_ce 81
  372. # define OBJ_id_ce 2L,5L,29L
  373. # define SN_subject_key_identifier "subjectKeyIdentifier"
  374. # define LN_subject_key_identifier "X509v3 Subject Key Identifier"
  375. # define NID_subject_key_identifier 82
  376. # define OBJ_subject_key_identifier OBJ_id_ce,14L
  377. # define SN_key_usage "keyUsage"
  378. # define LN_key_usage "X509v3 Key Usage"
  379. # define NID_key_usage 83
  380. # define OBJ_key_usage OBJ_id_ce,15L
  381. # define SN_private_key_usage_period "privateKeyUsagePeriod"
  382. # define LN_private_key_usage_period "X509v3 Private Key Usage Period"
  383. # define NID_private_key_usage_period 84
  384. # define OBJ_private_key_usage_period OBJ_id_ce,16L
  385. # define SN_subject_alt_name "subjectAltName"
  386. # define LN_subject_alt_name "X509v3 Subject Alternative Name"
  387. # define NID_subject_alt_name 85
  388. # define OBJ_subject_alt_name OBJ_id_ce,17L
  389. # define SN_issuer_alt_name "issuerAltName"
  390. # define LN_issuer_alt_name "X509v3 Issuer Alternative Name"
  391. # define NID_issuer_alt_name 86
  392. # define OBJ_issuer_alt_name OBJ_id_ce,18L
  393. # define SN_basic_constraints "basicConstraints"
  394. # define LN_basic_constraints "X509v3 Basic Constraints"
  395. # define NID_basic_constraints 87
  396. # define OBJ_basic_constraints OBJ_id_ce,19L
  397. # define SN_crl_number "crlNumber"
  398. # define LN_crl_number "X509v3 CRL Number"
  399. # define NID_crl_number 88
  400. # define OBJ_crl_number OBJ_id_ce,20L
  401. # define SN_certificate_policies "certificatePolicies"
  402. # define LN_certificate_policies "X509v3 Certificate Policies"
  403. # define NID_certificate_policies 89
  404. # define OBJ_certificate_policies OBJ_id_ce,32L
  405. # define SN_authority_key_identifier "authorityKeyIdentifier"
  406. # define LN_authority_key_identifier "X509v3 Authority Key Identifier"
  407. # define NID_authority_key_identifier 90
  408. # define OBJ_authority_key_identifier OBJ_id_ce,35L
  409. # define SN_bf_cbc "BF-CBC"
  410. # define LN_bf_cbc "bf-cbc"
  411. # define NID_bf_cbc 91
  412. # define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L
  413. # define SN_bf_ecb "BF-ECB"
  414. # define LN_bf_ecb "bf-ecb"
  415. # define NID_bf_ecb 92
  416. # define SN_bf_cfb64 "BF-CFB"
  417. # define LN_bf_cfb64 "bf-cfb"
  418. # define NID_bf_cfb64 93
  419. # define SN_bf_ofb64 "BF-OFB"
  420. # define LN_bf_ofb64 "bf-ofb"
  421. # define NID_bf_ofb64 94
  422. # define SN_mdc2 "MDC2"
  423. # define LN_mdc2 "mdc2"
  424. # define NID_mdc2 95
  425. # define OBJ_mdc2 2L,5L,8L,3L,101L
  426. /* An alternative? 1L,3L,14L,3L,2L,19L */
  427. # define SN_mdc2WithRSA "RSA-MDC2"
  428. # define LN_mdc2WithRSA "mdc2withRSA"
  429. # define NID_mdc2WithRSA 96
  430. # define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L
  431. # define SN_rc4_40 "RC4-40"
  432. # define LN_rc4_40 "rc4-40"
  433. # define NID_rc4_40 97
  434. # define SN_rc2_40_cbc "RC2-40-CBC"
  435. # define LN_rc2_40_cbc "rc2-40-cbc"
  436. # define NID_rc2_40_cbc 98
  437. # define SN_givenName "G"
  438. # define LN_givenName "givenName"
  439. # define NID_givenName 99
  440. # define OBJ_givenName OBJ_X509,42L
  441. # define SN_surname "S"
  442. # define LN_surname "surname"
  443. # define NID_surname 100
  444. # define OBJ_surname OBJ_X509,4L
  445. # define SN_initials "I"
  446. # define LN_initials "initials"
  447. # define NID_initials 101
  448. # define OBJ_initials OBJ_X509,43L
  449. # define SN_uniqueIdentifier "UID"
  450. # define LN_uniqueIdentifier "uniqueIdentifier"
  451. # define NID_uniqueIdentifier 102
  452. # define OBJ_uniqueIdentifier OBJ_X509,45L
  453. # define SN_crl_distribution_points "crlDistributionPoints"
  454. # define LN_crl_distribution_points "X509v3 CRL Distribution Points"
  455. # define NID_crl_distribution_points 103
  456. # define OBJ_crl_distribution_points OBJ_id_ce,31L
  457. # define SN_md5WithRSA "RSA-NP-MD5"
  458. # define LN_md5WithRSA "md5WithRSA"
  459. # define NID_md5WithRSA 104
  460. # define OBJ_md5WithRSA OBJ_algorithm,3L
  461. # define SN_serialNumber "SN"
  462. # define LN_serialNumber "serialNumber"
  463. # define NID_serialNumber 105
  464. # define OBJ_serialNumber OBJ_X509,5L
  465. # define SN_title "T"
  466. # define LN_title "title"
  467. # define NID_title 106
  468. # define OBJ_title OBJ_X509,12L
  469. # define SN_description "D"
  470. # define LN_description "description"
  471. # define NID_description 107
  472. # define OBJ_description OBJ_X509,13L
  473. /* CAST5 is CAST-128, I'm just sticking with the documentation */
  474. # define SN_cast5_cbc "CAST5-CBC"
  475. # define LN_cast5_cbc "cast5-cbc"
  476. # define NID_cast5_cbc 108
  477. # define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L
  478. # define SN_cast5_ecb "CAST5-ECB"
  479. # define LN_cast5_ecb "cast5-ecb"
  480. # define NID_cast5_ecb 109
  481. # define SN_cast5_cfb64 "CAST5-CFB"
  482. # define LN_cast5_cfb64 "cast5-cfb"
  483. # define NID_cast5_cfb64 110
  484. # define SN_cast5_ofb64 "CAST5-OFB"
  485. # define LN_cast5_ofb64 "cast5-ofb"
  486. # define NID_cast5_ofb64 111
  487. # define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC"
  488. # define NID_pbeWithMD5AndCast5_CBC 112
  489. # define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L
  490. /*-
  491. * This is one sun will soon be using :-(
  492. * id-dsa-with-sha1 ID ::= {
  493. * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 }
  494. */
  495. # define SN_dsaWithSHA1 "DSA-SHA1"
  496. # define LN_dsaWithSHA1 "dsaWithSHA1"
  497. # define NID_dsaWithSHA1 113
  498. # define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L
  499. # define NID_md5_sha1 114
  500. # define SN_md5_sha1 "MD5-SHA1"
  501. # define LN_md5_sha1 "md5-sha1"
  502. # define SN_sha1WithRSA "RSA-SHA1-2"
  503. # define LN_sha1WithRSA "sha1WithRSA"
  504. # define NID_sha1WithRSA 115
  505. # define OBJ_sha1WithRSA OBJ_algorithm,29L
  506. # define SN_dsa "DSA"
  507. # define LN_dsa "dsaEncryption"
  508. # define NID_dsa 116
  509. # define OBJ_dsa 1L,2L,840L,10040L,4L,1L
  510. # define SN_ripemd160 "RIPEMD160"
  511. # define LN_ripemd160 "ripemd160"
  512. # define NID_ripemd160 117
  513. # define OBJ_ripemd160 1L,3L,36L,3L,2L,1L
  514. /*
  515. * The name should actually be rsaSignatureWithripemd160, but I'm going to
  516. * continue using the convention I'm using with the other ciphers
  517. */
  518. # define SN_ripemd160WithRSA "RSA-RIPEMD160"
  519. # define LN_ripemd160WithRSA "ripemd160WithRSA"
  520. # define NID_ripemd160WithRSA 119
  521. # define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L
  522. /*-
  523. * Taken from rfc2040
  524. * RC5_CBC_Parameters ::= SEQUENCE {
  525. * version INTEGER (v1_0(16)),
  526. * rounds INTEGER (8..127),
  527. * blockSizeInBits INTEGER (64, 128),
  528. * iv OCTET STRING OPTIONAL
  529. * }
  530. */
  531. # define SN_rc5_cbc "RC5-CBC"
  532. # define LN_rc5_cbc "rc5-cbc"
  533. # define NID_rc5_cbc 120
  534. # define OBJ_rc5_cbc OBJ_rsadsi,3L,8L
  535. # define SN_rc5_ecb "RC5-ECB"
  536. # define LN_rc5_ecb "rc5-ecb"
  537. # define NID_rc5_ecb 121
  538. # define SN_rc5_cfb64 "RC5-CFB"
  539. # define LN_rc5_cfb64 "rc5-cfb"
  540. # define NID_rc5_cfb64 122
  541. # define SN_rc5_ofb64 "RC5-OFB"
  542. # define LN_rc5_ofb64 "rc5-ofb"
  543. # define NID_rc5_ofb64 123
  544. # define SN_rle_compression "RLE"
  545. # define LN_rle_compression "run length compression"
  546. # define NID_rle_compression 124
  547. # define OBJ_rle_compression 1L,1L,1L,1L,666L,1L
  548. # define SN_zlib_compression "ZLIB"
  549. # define LN_zlib_compression "zlib compression"
  550. # define NID_zlib_compression 125
  551. # define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L
  552. # define SN_ext_key_usage "extendedKeyUsage"
  553. # define LN_ext_key_usage "X509v3 Extended Key Usage"
  554. # define NID_ext_key_usage 126
  555. # define OBJ_ext_key_usage OBJ_id_ce,37
  556. # define SN_id_pkix "PKIX"
  557. # define NID_id_pkix 127
  558. # define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L
  559. # define SN_id_kp "id-kp"
  560. # define NID_id_kp 128
  561. # define OBJ_id_kp OBJ_id_pkix,3L
  562. /* PKIX extended key usage OIDs */
  563. # define SN_server_auth "serverAuth"
  564. # define LN_server_auth "TLS Web Server Authentication"
  565. # define NID_server_auth 129
  566. # define OBJ_server_auth OBJ_id_kp,1L
  567. # define SN_client_auth "clientAuth"
  568. # define LN_client_auth "TLS Web Client Authentication"
  569. # define NID_client_auth 130
  570. # define OBJ_client_auth OBJ_id_kp,2L
  571. # define SN_code_sign "codeSigning"
  572. # define LN_code_sign "Code Signing"
  573. # define NID_code_sign 131
  574. # define OBJ_code_sign OBJ_id_kp,3L
  575. # define SN_email_protect "emailProtection"
  576. # define LN_email_protect "E-mail Protection"
  577. # define NID_email_protect 132
  578. # define OBJ_email_protect OBJ_id_kp,4L
  579. # define SN_time_stamp "timeStamping"
  580. # define LN_time_stamp "Time Stamping"
  581. # define NID_time_stamp 133
  582. # define OBJ_time_stamp OBJ_id_kp,8L
  583. /* Additional extended key usage OIDs: Microsoft */
  584. # define SN_ms_code_ind "msCodeInd"
  585. # define LN_ms_code_ind "Microsoft Individual Code Signing"
  586. # define NID_ms_code_ind 134
  587. # define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L
  588. # define SN_ms_code_com "msCodeCom"
  589. # define LN_ms_code_com "Microsoft Commercial Code Signing"
  590. # define NID_ms_code_com 135
  591. # define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L
  592. # define SN_ms_ctl_sign "msCTLSign"
  593. # define LN_ms_ctl_sign "Microsoft Trust List Signing"
  594. # define NID_ms_ctl_sign 136
  595. # define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L
  596. # define SN_ms_sgc "msSGC"
  597. # define LN_ms_sgc "Microsoft Server Gated Crypto"
  598. # define NID_ms_sgc 137
  599. # define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L
  600. # define SN_ms_efs "msEFS"
  601. # define LN_ms_efs "Microsoft Encrypted File System"
  602. # define NID_ms_efs 138
  603. # define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L
  604. /* Additional usage: Netscape */
  605. # define SN_ns_sgc "nsSGC"
  606. # define LN_ns_sgc "Netscape Server Gated Crypto"
  607. # define NID_ns_sgc 139
  608. # define OBJ_ns_sgc OBJ_netscape,4L,1L
  609. # define SN_delta_crl "deltaCRL"
  610. # define LN_delta_crl "X509v3 Delta CRL Indicator"
  611. # define NID_delta_crl 140
  612. # define OBJ_delta_crl OBJ_id_ce,27L
  613. # define SN_crl_reason "CRLReason"
  614. # define LN_crl_reason "CRL Reason Code"
  615. # define NID_crl_reason 141
  616. # define OBJ_crl_reason OBJ_id_ce,21L
  617. # define SN_invalidity_date "invalidityDate"
  618. # define LN_invalidity_date "Invalidity Date"
  619. # define NID_invalidity_date 142
  620. # define OBJ_invalidity_date OBJ_id_ce,24L
  621. # define SN_sxnet "SXNetID"
  622. # define LN_sxnet "Strong Extranet ID"
  623. # define NID_sxnet 143
  624. # define OBJ_sxnet 1L,3L,101L,1L,4L,1L
  625. /* PKCS12 and related OBJECT IDENTIFIERS */
  626. # define OBJ_pkcs12 OBJ_pkcs,12L
  627. # define OBJ_pkcs12_pbeids OBJ_pkcs12, 1
  628. # define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128"
  629. # define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4"
  630. # define NID_pbe_WithSHA1And128BitRC4 144
  631. # define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L
  632. # define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40"
  633. # define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4"
  634. # define NID_pbe_WithSHA1And40BitRC4 145
  635. # define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L
  636. # define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES"
  637. # define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC"
  638. # define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146
  639. # define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L
  640. # define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES"
  641. # define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC"
  642. # define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147
  643. # define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L
  644. # define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128"
  645. # define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC"
  646. # define NID_pbe_WithSHA1And128BitRC2_CBC 148
  647. # define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L
  648. # define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40"
  649. # define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC"
  650. # define NID_pbe_WithSHA1And40BitRC2_CBC 149
  651. # define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L
  652. # define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L
  653. # define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L
  654. # define LN_keyBag "keyBag"
  655. # define NID_keyBag 150
  656. # define OBJ_keyBag OBJ_pkcs12_BagIds, 1L
  657. # define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag"
  658. # define NID_pkcs8ShroudedKeyBag 151
  659. # define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L
  660. # define LN_certBag "certBag"
  661. # define NID_certBag 152
  662. # define OBJ_certBag OBJ_pkcs12_BagIds, 3L
  663. # define LN_crlBag "crlBag"
  664. # define NID_crlBag 153
  665. # define OBJ_crlBag OBJ_pkcs12_BagIds, 4L
  666. # define LN_secretBag "secretBag"
  667. # define NID_secretBag 154
  668. # define OBJ_secretBag OBJ_pkcs12_BagIds, 5L
  669. # define LN_safeContentsBag "safeContentsBag"
  670. # define NID_safeContentsBag 155
  671. # define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L
  672. # define LN_friendlyName "friendlyName"
  673. # define NID_friendlyName 156
  674. # define OBJ_friendlyName OBJ_pkcs9, 20L
  675. # define LN_localKeyID "localKeyID"
  676. # define NID_localKeyID 157
  677. # define OBJ_localKeyID OBJ_pkcs9, 21L
  678. # define OBJ_certTypes OBJ_pkcs9, 22L
  679. # define LN_x509Certificate "x509Certificate"
  680. # define NID_x509Certificate 158
  681. # define OBJ_x509Certificate OBJ_certTypes, 1L
  682. # define LN_sdsiCertificate "sdsiCertificate"
  683. # define NID_sdsiCertificate 159
  684. # define OBJ_sdsiCertificate OBJ_certTypes, 2L
  685. # define OBJ_crlTypes OBJ_pkcs9, 23L
  686. # define LN_x509Crl "x509Crl"
  687. # define NID_x509Crl 160
  688. # define OBJ_x509Crl OBJ_crlTypes, 1L
  689. /* PKCS#5 v2 OIDs */
  690. # define LN_pbes2 "PBES2"
  691. # define NID_pbes2 161
  692. # define OBJ_pbes2 OBJ_pkcs,5L,13L
  693. # define LN_pbmac1 "PBMAC1"
  694. # define NID_pbmac1 162
  695. # define OBJ_pbmac1 OBJ_pkcs,5L,14L
  696. # define LN_hmacWithSHA1 "hmacWithSHA1"
  697. # define NID_hmacWithSHA1 163
  698. # define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L
  699. /* Policy Qualifier Ids */
  700. # define LN_id_qt_cps "Policy Qualifier CPS"
  701. # define SN_id_qt_cps "id-qt-cps"
  702. # define NID_id_qt_cps 164
  703. # define OBJ_id_qt_cps OBJ_id_pkix,2L,1L
  704. # define LN_id_qt_unotice "Policy Qualifier User Notice"
  705. # define SN_id_qt_unotice "id-qt-unotice"
  706. # define NID_id_qt_unotice 165
  707. # define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L
  708. # define SN_rc2_64_cbc "RC2-64-CBC"
  709. # define LN_rc2_64_cbc "rc2-64-cbc"
  710. # define NID_rc2_64_cbc 166
  711. # define SN_SMIMECapabilities "SMIME-CAPS"
  712. # define LN_SMIMECapabilities "S/MIME Capabilities"
  713. # define NID_SMIMECapabilities 167
  714. # define OBJ_SMIMECapabilities OBJ_pkcs9,15L
  715. # define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64"
  716. # define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC"
  717. # define NID_pbeWithMD2AndRC2_CBC 168
  718. # define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L
  719. # define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64"
  720. # define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC"
  721. # define NID_pbeWithMD5AndRC2_CBC 169
  722. # define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L
  723. # define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES"
  724. # define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC"
  725. # define NID_pbeWithSHA1AndDES_CBC 170
  726. # define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L
  727. /* Extension request OIDs */
  728. # define LN_ms_ext_req "Microsoft Extension Request"
  729. # define SN_ms_ext_req "msExtReq"
  730. # define NID_ms_ext_req 171
  731. # define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L
  732. # define LN_ext_req "Extension Request"
  733. # define SN_ext_req "extReq"
  734. # define NID_ext_req 172
  735. # define OBJ_ext_req OBJ_pkcs9,14L
  736. # define SN_name "name"
  737. # define LN_name "name"
  738. # define NID_name 173
  739. # define OBJ_name OBJ_X509,41L
  740. # define SN_dnQualifier "dnQualifier"
  741. # define LN_dnQualifier "dnQualifier"
  742. # define NID_dnQualifier 174
  743. # define OBJ_dnQualifier OBJ_X509,46L
  744. # define SN_id_pe "id-pe"
  745. # define NID_id_pe 175
  746. # define OBJ_id_pe OBJ_id_pkix,1L
  747. # define SN_id_ad "id-ad"
  748. # define NID_id_ad 176
  749. # define OBJ_id_ad OBJ_id_pkix,48L
  750. # define SN_info_access "authorityInfoAccess"
  751. # define LN_info_access "Authority Information Access"
  752. # define NID_info_access 177
  753. # define OBJ_info_access OBJ_id_pe,1L
  754. # define SN_ad_OCSP "OCSP"
  755. # define LN_ad_OCSP "OCSP"
  756. # define NID_ad_OCSP 178
  757. # define OBJ_ad_OCSP OBJ_id_ad,1L
  758. # define SN_ad_ca_issuers "caIssuers"
  759. # define LN_ad_ca_issuers "CA Issuers"
  760. # define NID_ad_ca_issuers 179
  761. # define OBJ_ad_ca_issuers OBJ_id_ad,2L
  762. # define SN_OCSP_sign "OCSPSigning"
  763. # define LN_OCSP_sign "OCSP Signing"
  764. # define NID_OCSP_sign 180
  765. # define OBJ_OCSP_sign OBJ_id_kp,9L
  766. # endif /* USE_OBJ_MAC */
  767. # include <openssl/bio.h>
  768. # include <openssl/asn1.h>
  769. # define OBJ_NAME_TYPE_UNDEF 0x00
  770. # define OBJ_NAME_TYPE_MD_METH 0x01
  771. # define OBJ_NAME_TYPE_CIPHER_METH 0x02
  772. # define OBJ_NAME_TYPE_PKEY_METH 0x03
  773. # define OBJ_NAME_TYPE_COMP_METH 0x04
  774. # define OBJ_NAME_TYPE_NUM 0x05
  775. # define OBJ_NAME_ALIAS 0x8000
  776. # define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01
  777. # define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02
  778. #ifdef __cplusplus
  779. extern "C" {
  780. #endif
  781. typedef struct obj_name_st {
  782. int type;
  783. int alias;
  784. const char *name;
  785. const char *data;
  786. } OBJ_NAME;
  787. # define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c)
  788. int OBJ_NAME_init(void);
  789. int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *),
  790. int (*cmp_func) (const char *, const char *),
  791. void (*free_func) (const char *, int, const char *));
  792. const char *OBJ_NAME_get(const char *name, int type);
  793. int OBJ_NAME_add(const char *name, int type, const char *data);
  794. int OBJ_NAME_remove(const char *name, int type);
  795. void OBJ_NAME_cleanup(int type); /* -1 for everything */
  796. void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg),
  797. void *arg);
  798. void OBJ_NAME_do_all_sorted(int type,
  799. void (*fn) (const OBJ_NAME *, void *arg),
  800. void *arg);
  801. ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o);
  802. ASN1_OBJECT *OBJ_nid2obj(int n);
  803. const char *OBJ_nid2ln(int n);
  804. const char *OBJ_nid2sn(int n);
  805. int OBJ_obj2nid(const ASN1_OBJECT *o);
  806. ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name);
  807. int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);
  808. int OBJ_txt2nid(const char *s);
  809. int OBJ_ln2nid(const char *s);
  810. int OBJ_sn2nid(const char *s);
  811. int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b);
  812. const void *OBJ_bsearch_(const void *key, const void *base, int num, int size,
  813. int (*cmp) (const void *, const void *));
  814. const void *OBJ_bsearch_ex_(const void *key, const void *base, int num,
  815. int size,
  816. int (*cmp) (const void *, const void *),
  817. int flags);
  818. # define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \
  819. static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \
  820. static int nm##_cmp(type1 const *, type2 const *); \
  821. scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num)
  822. # define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \
  823. _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp)
  824. # define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \
  825. type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num)
  826. /*-
  827. * Unsolved problem: if a type is actually a pointer type, like
  828. * nid_triple is, then its impossible to get a const where you need
  829. * it. Consider:
  830. *
  831. * typedef int nid_triple[3];
  832. * const void *a_;
  833. * const nid_triple const *a = a_;
  834. *
  835. * The assignement discards a const because what you really want is:
  836. *
  837. * const int const * const *a = a_;
  838. *
  839. * But if you do that, you lose the fact that a is an array of 3 ints,
  840. * which breaks comparison functions.
  841. *
  842. * Thus we end up having to cast, sadly, or unpack the
  843. * declarations. Or, as I finally did in this case, delcare nid_triple
  844. * to be a struct, which it should have been in the first place.
  845. *
  846. * Ben, August 2008.
  847. *
  848. * Also, strictly speaking not all types need be const, but handling
  849. * the non-constness means a lot of complication, and in practice
  850. * comparison routines do always not touch their arguments.
  851. */
  852. # define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \
  853. static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \
  854. { \
  855. type1 const *a = a_; \
  856. type2 const *b = b_; \
  857. return nm##_cmp(a,b); \
  858. } \
  859. static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \
  860. { \
  861. return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \
  862. nm##_cmp_BSEARCH_CMP_FN); \
  863. } \
  864. extern void dummy_prototype(void)
  865. # define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \
  866. static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \
  867. { \
  868. type1 const *a = a_; \
  869. type2 const *b = b_; \
  870. return nm##_cmp(a,b); \
  871. } \
  872. type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \
  873. { \
  874. return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \
  875. nm##_cmp_BSEARCH_CMP_FN); \
  876. } \
  877. extern void dummy_prototype(void)
  878. # define OBJ_bsearch(type1,key,type2,base,num,cmp) \
  879. ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
  880. num,sizeof(type2), \
  881. ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \
  882. (void)CHECKED_PTR_OF(type2,cmp##_type_2), \
  883. cmp##_BSEARCH_CMP_FN)))
  884. # define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \
  885. ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
  886. num,sizeof(type2), \
  887. ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \
  888. (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \
  889. cmp##_BSEARCH_CMP_FN)),flags)
  890. int OBJ_new_nid(int num);
  891. int OBJ_add_object(const ASN1_OBJECT *obj);
  892. int OBJ_create(const char *oid, const char *sn, const char *ln);
  893. void OBJ_cleanup(void);
  894. int OBJ_create_objects(BIO *in);
  895. int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid);
  896. int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid);
  897. int OBJ_add_sigid(int signid, int dig_id, int pkey_id);
  898. void OBJ_sigid_free(void);
  899. extern int obj_cleanup_defer;
  900. void check_defer(int nid);
  901. /* BEGIN ERROR CODES */
  902. /*
  903. * The following lines are auto generated by the script mkerr.pl. Any changes
  904. * made after this point may be overwritten when the script is next run.
  905. */
  906. void ERR_load_OBJ_strings(void);
  907. /* Error codes for the OBJ functions. */
  908. /* Function codes. */
  909. # define OBJ_F_OBJ_ADD_OBJECT 105
  910. # define OBJ_F_OBJ_CREATE 100
  911. # define OBJ_F_OBJ_DUP 101
  912. # define OBJ_F_OBJ_NAME_NEW_INDEX 106
  913. # define OBJ_F_OBJ_NID2LN 102
  914. # define OBJ_F_OBJ_NID2OBJ 103
  915. # define OBJ_F_OBJ_NID2SN 104
  916. /* Reason codes. */
  917. # define OBJ_R_MALLOC_FAILURE 100
  918. # define OBJ_R_UNKNOWN_NID 101
  919. #ifdef __cplusplus
  920. }
  921. #endif
  922. #endif