2
0

objects.h 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138
  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. /* proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now
  319. * defined explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something
  320. * completely different.
  321. */
  322. #define LN_id_pbkdf2 "PBKDF2"
  323. #define NID_id_pbkdf2 69
  324. #define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L
  325. #define SN_dsaWithSHA1_2 "DSA-SHA1-old"
  326. #define LN_dsaWithSHA1_2 "dsaWithSHA1-old"
  327. #define NID_dsaWithSHA1_2 70
  328. /* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */
  329. #define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L
  330. #define SN_netscape_cert_type "nsCertType"
  331. #define LN_netscape_cert_type "Netscape Cert Type"
  332. #define NID_netscape_cert_type 71
  333. #define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L
  334. #define SN_netscape_base_url "nsBaseUrl"
  335. #define LN_netscape_base_url "Netscape Base Url"
  336. #define NID_netscape_base_url 72
  337. #define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L
  338. #define SN_netscape_revocation_url "nsRevocationUrl"
  339. #define LN_netscape_revocation_url "Netscape Revocation Url"
  340. #define NID_netscape_revocation_url 73
  341. #define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L
  342. #define SN_netscape_ca_revocation_url "nsCaRevocationUrl"
  343. #define LN_netscape_ca_revocation_url "Netscape CA Revocation Url"
  344. #define NID_netscape_ca_revocation_url 74
  345. #define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L
  346. #define SN_netscape_renewal_url "nsRenewalUrl"
  347. #define LN_netscape_renewal_url "Netscape Renewal Url"
  348. #define NID_netscape_renewal_url 75
  349. #define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L
  350. #define SN_netscape_ca_policy_url "nsCaPolicyUrl"
  351. #define LN_netscape_ca_policy_url "Netscape CA Policy Url"
  352. #define NID_netscape_ca_policy_url 76
  353. #define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L
  354. #define SN_netscape_ssl_server_name "nsSslServerName"
  355. #define LN_netscape_ssl_server_name "Netscape SSL Server Name"
  356. #define NID_netscape_ssl_server_name 77
  357. #define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L
  358. #define SN_netscape_comment "nsComment"
  359. #define LN_netscape_comment "Netscape Comment"
  360. #define NID_netscape_comment 78
  361. #define OBJ_netscape_comment OBJ_netscape_cert_extension,13L
  362. #define SN_netscape_cert_sequence "nsCertSequence"
  363. #define LN_netscape_cert_sequence "Netscape Certificate Sequence"
  364. #define NID_netscape_cert_sequence 79
  365. #define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L
  366. #define SN_desx_cbc "DESX-CBC"
  367. #define LN_desx_cbc "desx-cbc"
  368. #define NID_desx_cbc 80
  369. #define SN_id_ce "id-ce"
  370. #define NID_id_ce 81
  371. #define OBJ_id_ce 2L,5L,29L
  372. #define SN_subject_key_identifier "subjectKeyIdentifier"
  373. #define LN_subject_key_identifier "X509v3 Subject Key Identifier"
  374. #define NID_subject_key_identifier 82
  375. #define OBJ_subject_key_identifier OBJ_id_ce,14L
  376. #define SN_key_usage "keyUsage"
  377. #define LN_key_usage "X509v3 Key Usage"
  378. #define NID_key_usage 83
  379. #define OBJ_key_usage OBJ_id_ce,15L
  380. #define SN_private_key_usage_period "privateKeyUsagePeriod"
  381. #define LN_private_key_usage_period "X509v3 Private Key Usage Period"
  382. #define NID_private_key_usage_period 84
  383. #define OBJ_private_key_usage_period OBJ_id_ce,16L
  384. #define SN_subject_alt_name "subjectAltName"
  385. #define LN_subject_alt_name "X509v3 Subject Alternative Name"
  386. #define NID_subject_alt_name 85
  387. #define OBJ_subject_alt_name OBJ_id_ce,17L
  388. #define SN_issuer_alt_name "issuerAltName"
  389. #define LN_issuer_alt_name "X509v3 Issuer Alternative Name"
  390. #define NID_issuer_alt_name 86
  391. #define OBJ_issuer_alt_name OBJ_id_ce,18L
  392. #define SN_basic_constraints "basicConstraints"
  393. #define LN_basic_constraints "X509v3 Basic Constraints"
  394. #define NID_basic_constraints 87
  395. #define OBJ_basic_constraints OBJ_id_ce,19L
  396. #define SN_crl_number "crlNumber"
  397. #define LN_crl_number "X509v3 CRL Number"
  398. #define NID_crl_number 88
  399. #define OBJ_crl_number OBJ_id_ce,20L
  400. #define SN_certificate_policies "certificatePolicies"
  401. #define LN_certificate_policies "X509v3 Certificate Policies"
  402. #define NID_certificate_policies 89
  403. #define OBJ_certificate_policies OBJ_id_ce,32L
  404. #define SN_authority_key_identifier "authorityKeyIdentifier"
  405. #define LN_authority_key_identifier "X509v3 Authority Key Identifier"
  406. #define NID_authority_key_identifier 90
  407. #define OBJ_authority_key_identifier OBJ_id_ce,35L
  408. #define SN_bf_cbc "BF-CBC"
  409. #define LN_bf_cbc "bf-cbc"
  410. #define NID_bf_cbc 91
  411. #define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L
  412. #define SN_bf_ecb "BF-ECB"
  413. #define LN_bf_ecb "bf-ecb"
  414. #define NID_bf_ecb 92
  415. #define SN_bf_cfb64 "BF-CFB"
  416. #define LN_bf_cfb64 "bf-cfb"
  417. #define NID_bf_cfb64 93
  418. #define SN_bf_ofb64 "BF-OFB"
  419. #define LN_bf_ofb64 "bf-ofb"
  420. #define NID_bf_ofb64 94
  421. #define SN_mdc2 "MDC2"
  422. #define LN_mdc2 "mdc2"
  423. #define NID_mdc2 95
  424. #define OBJ_mdc2 2L,5L,8L,3L,101L
  425. /* An alternative? 1L,3L,14L,3L,2L,19L */
  426. #define SN_mdc2WithRSA "RSA-MDC2"
  427. #define LN_mdc2WithRSA "mdc2withRSA"
  428. #define NID_mdc2WithRSA 96
  429. #define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L
  430. #define SN_rc4_40 "RC4-40"
  431. #define LN_rc4_40 "rc4-40"
  432. #define NID_rc4_40 97
  433. #define SN_rc2_40_cbc "RC2-40-CBC"
  434. #define LN_rc2_40_cbc "rc2-40-cbc"
  435. #define NID_rc2_40_cbc 98
  436. #define SN_givenName "G"
  437. #define LN_givenName "givenName"
  438. #define NID_givenName 99
  439. #define OBJ_givenName OBJ_X509,42L
  440. #define SN_surname "S"
  441. #define LN_surname "surname"
  442. #define NID_surname 100
  443. #define OBJ_surname OBJ_X509,4L
  444. #define SN_initials "I"
  445. #define LN_initials "initials"
  446. #define NID_initials 101
  447. #define OBJ_initials OBJ_X509,43L
  448. #define SN_uniqueIdentifier "UID"
  449. #define LN_uniqueIdentifier "uniqueIdentifier"
  450. #define NID_uniqueIdentifier 102
  451. #define OBJ_uniqueIdentifier OBJ_X509,45L
  452. #define SN_crl_distribution_points "crlDistributionPoints"
  453. #define LN_crl_distribution_points "X509v3 CRL Distribution Points"
  454. #define NID_crl_distribution_points 103
  455. #define OBJ_crl_distribution_points OBJ_id_ce,31L
  456. #define SN_md5WithRSA "RSA-NP-MD5"
  457. #define LN_md5WithRSA "md5WithRSA"
  458. #define NID_md5WithRSA 104
  459. #define OBJ_md5WithRSA OBJ_algorithm,3L
  460. #define SN_serialNumber "SN"
  461. #define LN_serialNumber "serialNumber"
  462. #define NID_serialNumber 105
  463. #define OBJ_serialNumber OBJ_X509,5L
  464. #define SN_title "T"
  465. #define LN_title "title"
  466. #define NID_title 106
  467. #define OBJ_title OBJ_X509,12L
  468. #define SN_description "D"
  469. #define LN_description "description"
  470. #define NID_description 107
  471. #define OBJ_description OBJ_X509,13L
  472. /* CAST5 is CAST-128, I'm just sticking with the documentation */
  473. #define SN_cast5_cbc "CAST5-CBC"
  474. #define LN_cast5_cbc "cast5-cbc"
  475. #define NID_cast5_cbc 108
  476. #define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L
  477. #define SN_cast5_ecb "CAST5-ECB"
  478. #define LN_cast5_ecb "cast5-ecb"
  479. #define NID_cast5_ecb 109
  480. #define SN_cast5_cfb64 "CAST5-CFB"
  481. #define LN_cast5_cfb64 "cast5-cfb"
  482. #define NID_cast5_cfb64 110
  483. #define SN_cast5_ofb64 "CAST5-OFB"
  484. #define LN_cast5_ofb64 "cast5-ofb"
  485. #define NID_cast5_ofb64 111
  486. #define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC"
  487. #define NID_pbeWithMD5AndCast5_CBC 112
  488. #define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L
  489. /* This is one sun will soon be using :-(
  490. * id-dsa-with-sha1 ID ::= {
  491. * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 }
  492. */
  493. #define SN_dsaWithSHA1 "DSA-SHA1"
  494. #define LN_dsaWithSHA1 "dsaWithSHA1"
  495. #define NID_dsaWithSHA1 113
  496. #define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L
  497. #define NID_md5_sha1 114
  498. #define SN_md5_sha1 "MD5-SHA1"
  499. #define LN_md5_sha1 "md5-sha1"
  500. #define SN_sha1WithRSA "RSA-SHA1-2"
  501. #define LN_sha1WithRSA "sha1WithRSA"
  502. #define NID_sha1WithRSA 115
  503. #define OBJ_sha1WithRSA OBJ_algorithm,29L
  504. #define SN_dsa "DSA"
  505. #define LN_dsa "dsaEncryption"
  506. #define NID_dsa 116
  507. #define OBJ_dsa 1L,2L,840L,10040L,4L,1L
  508. #define SN_ripemd160 "RIPEMD160"
  509. #define LN_ripemd160 "ripemd160"
  510. #define NID_ripemd160 117
  511. #define OBJ_ripemd160 1L,3L,36L,3L,2L,1L
  512. /* The name should actually be rsaSignatureWithripemd160, but I'm going
  513. * to continue using the convention I'm using with the other ciphers */
  514. #define SN_ripemd160WithRSA "RSA-RIPEMD160"
  515. #define LN_ripemd160WithRSA "ripemd160WithRSA"
  516. #define NID_ripemd160WithRSA 119
  517. #define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L
  518. /* Taken from rfc2040
  519. * RC5_CBC_Parameters ::= SEQUENCE {
  520. * version INTEGER (v1_0(16)),
  521. * rounds INTEGER (8..127),
  522. * blockSizeInBits INTEGER (64, 128),
  523. * iv OCTET STRING OPTIONAL
  524. * }
  525. */
  526. #define SN_rc5_cbc "RC5-CBC"
  527. #define LN_rc5_cbc "rc5-cbc"
  528. #define NID_rc5_cbc 120
  529. #define OBJ_rc5_cbc OBJ_rsadsi,3L,8L
  530. #define SN_rc5_ecb "RC5-ECB"
  531. #define LN_rc5_ecb "rc5-ecb"
  532. #define NID_rc5_ecb 121
  533. #define SN_rc5_cfb64 "RC5-CFB"
  534. #define LN_rc5_cfb64 "rc5-cfb"
  535. #define NID_rc5_cfb64 122
  536. #define SN_rc5_ofb64 "RC5-OFB"
  537. #define LN_rc5_ofb64 "rc5-ofb"
  538. #define NID_rc5_ofb64 123
  539. #define SN_rle_compression "RLE"
  540. #define LN_rle_compression "run length compression"
  541. #define NID_rle_compression 124
  542. #define OBJ_rle_compression 1L,1L,1L,1L,666L,1L
  543. #define SN_zlib_compression "ZLIB"
  544. #define LN_zlib_compression "zlib compression"
  545. #define NID_zlib_compression 125
  546. #define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L
  547. #define SN_ext_key_usage "extendedKeyUsage"
  548. #define LN_ext_key_usage "X509v3 Extended Key Usage"
  549. #define NID_ext_key_usage 126
  550. #define OBJ_ext_key_usage OBJ_id_ce,37
  551. #define SN_id_pkix "PKIX"
  552. #define NID_id_pkix 127
  553. #define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L
  554. #define SN_id_kp "id-kp"
  555. #define NID_id_kp 128
  556. #define OBJ_id_kp OBJ_id_pkix,3L
  557. /* PKIX extended key usage OIDs */
  558. #define SN_server_auth "serverAuth"
  559. #define LN_server_auth "TLS Web Server Authentication"
  560. #define NID_server_auth 129
  561. #define OBJ_server_auth OBJ_id_kp,1L
  562. #define SN_client_auth "clientAuth"
  563. #define LN_client_auth "TLS Web Client Authentication"
  564. #define NID_client_auth 130
  565. #define OBJ_client_auth OBJ_id_kp,2L
  566. #define SN_code_sign "codeSigning"
  567. #define LN_code_sign "Code Signing"
  568. #define NID_code_sign 131
  569. #define OBJ_code_sign OBJ_id_kp,3L
  570. #define SN_email_protect "emailProtection"
  571. #define LN_email_protect "E-mail Protection"
  572. #define NID_email_protect 132
  573. #define OBJ_email_protect OBJ_id_kp,4L
  574. #define SN_time_stamp "timeStamping"
  575. #define LN_time_stamp "Time Stamping"
  576. #define NID_time_stamp 133
  577. #define OBJ_time_stamp OBJ_id_kp,8L
  578. /* Additional extended key usage OIDs: Microsoft */
  579. #define SN_ms_code_ind "msCodeInd"
  580. #define LN_ms_code_ind "Microsoft Individual Code Signing"
  581. #define NID_ms_code_ind 134
  582. #define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L
  583. #define SN_ms_code_com "msCodeCom"
  584. #define LN_ms_code_com "Microsoft Commercial Code Signing"
  585. #define NID_ms_code_com 135
  586. #define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L
  587. #define SN_ms_ctl_sign "msCTLSign"
  588. #define LN_ms_ctl_sign "Microsoft Trust List Signing"
  589. #define NID_ms_ctl_sign 136
  590. #define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L
  591. #define SN_ms_sgc "msSGC"
  592. #define LN_ms_sgc "Microsoft Server Gated Crypto"
  593. #define NID_ms_sgc 137
  594. #define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L
  595. #define SN_ms_efs "msEFS"
  596. #define LN_ms_efs "Microsoft Encrypted File System"
  597. #define NID_ms_efs 138
  598. #define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L
  599. /* Additional usage: Netscape */
  600. #define SN_ns_sgc "nsSGC"
  601. #define LN_ns_sgc "Netscape Server Gated Crypto"
  602. #define NID_ns_sgc 139
  603. #define OBJ_ns_sgc OBJ_netscape,4L,1L
  604. #define SN_delta_crl "deltaCRL"
  605. #define LN_delta_crl "X509v3 Delta CRL Indicator"
  606. #define NID_delta_crl 140
  607. #define OBJ_delta_crl OBJ_id_ce,27L
  608. #define SN_crl_reason "CRLReason"
  609. #define LN_crl_reason "CRL Reason Code"
  610. #define NID_crl_reason 141
  611. #define OBJ_crl_reason OBJ_id_ce,21L
  612. #define SN_invalidity_date "invalidityDate"
  613. #define LN_invalidity_date "Invalidity Date"
  614. #define NID_invalidity_date 142
  615. #define OBJ_invalidity_date OBJ_id_ce,24L
  616. #define SN_sxnet "SXNetID"
  617. #define LN_sxnet "Strong Extranet ID"
  618. #define NID_sxnet 143
  619. #define OBJ_sxnet 1L,3L,101L,1L,4L,1L
  620. /* PKCS12 and related OBJECT IDENTIFIERS */
  621. #define OBJ_pkcs12 OBJ_pkcs,12L
  622. #define OBJ_pkcs12_pbeids OBJ_pkcs12, 1
  623. #define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128"
  624. #define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4"
  625. #define NID_pbe_WithSHA1And128BitRC4 144
  626. #define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L
  627. #define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40"
  628. #define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4"
  629. #define NID_pbe_WithSHA1And40BitRC4 145
  630. #define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L
  631. #define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES"
  632. #define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC"
  633. #define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146
  634. #define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L
  635. #define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES"
  636. #define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC"
  637. #define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147
  638. #define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L
  639. #define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128"
  640. #define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC"
  641. #define NID_pbe_WithSHA1And128BitRC2_CBC 148
  642. #define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L
  643. #define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40"
  644. #define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC"
  645. #define NID_pbe_WithSHA1And40BitRC2_CBC 149
  646. #define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L
  647. #define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L
  648. #define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L
  649. #define LN_keyBag "keyBag"
  650. #define NID_keyBag 150
  651. #define OBJ_keyBag OBJ_pkcs12_BagIds, 1L
  652. #define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag"
  653. #define NID_pkcs8ShroudedKeyBag 151
  654. #define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L
  655. #define LN_certBag "certBag"
  656. #define NID_certBag 152
  657. #define OBJ_certBag OBJ_pkcs12_BagIds, 3L
  658. #define LN_crlBag "crlBag"
  659. #define NID_crlBag 153
  660. #define OBJ_crlBag OBJ_pkcs12_BagIds, 4L
  661. #define LN_secretBag "secretBag"
  662. #define NID_secretBag 154
  663. #define OBJ_secretBag OBJ_pkcs12_BagIds, 5L
  664. #define LN_safeContentsBag "safeContentsBag"
  665. #define NID_safeContentsBag 155
  666. #define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L
  667. #define LN_friendlyName "friendlyName"
  668. #define NID_friendlyName 156
  669. #define OBJ_friendlyName OBJ_pkcs9, 20L
  670. #define LN_localKeyID "localKeyID"
  671. #define NID_localKeyID 157
  672. #define OBJ_localKeyID OBJ_pkcs9, 21L
  673. #define OBJ_certTypes OBJ_pkcs9, 22L
  674. #define LN_x509Certificate "x509Certificate"
  675. #define NID_x509Certificate 158
  676. #define OBJ_x509Certificate OBJ_certTypes, 1L
  677. #define LN_sdsiCertificate "sdsiCertificate"
  678. #define NID_sdsiCertificate 159
  679. #define OBJ_sdsiCertificate OBJ_certTypes, 2L
  680. #define OBJ_crlTypes OBJ_pkcs9, 23L
  681. #define LN_x509Crl "x509Crl"
  682. #define NID_x509Crl 160
  683. #define OBJ_x509Crl OBJ_crlTypes, 1L
  684. /* PKCS#5 v2 OIDs */
  685. #define LN_pbes2 "PBES2"
  686. #define NID_pbes2 161
  687. #define OBJ_pbes2 OBJ_pkcs,5L,13L
  688. #define LN_pbmac1 "PBMAC1"
  689. #define NID_pbmac1 162
  690. #define OBJ_pbmac1 OBJ_pkcs,5L,14L
  691. #define LN_hmacWithSHA1 "hmacWithSHA1"
  692. #define NID_hmacWithSHA1 163
  693. #define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L
  694. /* Policy Qualifier Ids */
  695. #define LN_id_qt_cps "Policy Qualifier CPS"
  696. #define SN_id_qt_cps "id-qt-cps"
  697. #define NID_id_qt_cps 164
  698. #define OBJ_id_qt_cps OBJ_id_pkix,2L,1L
  699. #define LN_id_qt_unotice "Policy Qualifier User Notice"
  700. #define SN_id_qt_unotice "id-qt-unotice"
  701. #define NID_id_qt_unotice 165
  702. #define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L
  703. #define SN_rc2_64_cbc "RC2-64-CBC"
  704. #define LN_rc2_64_cbc "rc2-64-cbc"
  705. #define NID_rc2_64_cbc 166
  706. #define SN_SMIMECapabilities "SMIME-CAPS"
  707. #define LN_SMIMECapabilities "S/MIME Capabilities"
  708. #define NID_SMIMECapabilities 167
  709. #define OBJ_SMIMECapabilities OBJ_pkcs9,15L
  710. #define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64"
  711. #define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC"
  712. #define NID_pbeWithMD2AndRC2_CBC 168
  713. #define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L
  714. #define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64"
  715. #define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC"
  716. #define NID_pbeWithMD5AndRC2_CBC 169
  717. #define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L
  718. #define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES"
  719. #define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC"
  720. #define NID_pbeWithSHA1AndDES_CBC 170
  721. #define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L
  722. /* Extension request OIDs */
  723. #define LN_ms_ext_req "Microsoft Extension Request"
  724. #define SN_ms_ext_req "msExtReq"
  725. #define NID_ms_ext_req 171
  726. #define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L
  727. #define LN_ext_req "Extension Request"
  728. #define SN_ext_req "extReq"
  729. #define NID_ext_req 172
  730. #define OBJ_ext_req OBJ_pkcs9,14L
  731. #define SN_name "name"
  732. #define LN_name "name"
  733. #define NID_name 173
  734. #define OBJ_name OBJ_X509,41L
  735. #define SN_dnQualifier "dnQualifier"
  736. #define LN_dnQualifier "dnQualifier"
  737. #define NID_dnQualifier 174
  738. #define OBJ_dnQualifier OBJ_X509,46L
  739. #define SN_id_pe "id-pe"
  740. #define NID_id_pe 175
  741. #define OBJ_id_pe OBJ_id_pkix,1L
  742. #define SN_id_ad "id-ad"
  743. #define NID_id_ad 176
  744. #define OBJ_id_ad OBJ_id_pkix,48L
  745. #define SN_info_access "authorityInfoAccess"
  746. #define LN_info_access "Authority Information Access"
  747. #define NID_info_access 177
  748. #define OBJ_info_access OBJ_id_pe,1L
  749. #define SN_ad_OCSP "OCSP"
  750. #define LN_ad_OCSP "OCSP"
  751. #define NID_ad_OCSP 178
  752. #define OBJ_ad_OCSP OBJ_id_ad,1L
  753. #define SN_ad_ca_issuers "caIssuers"
  754. #define LN_ad_ca_issuers "CA Issuers"
  755. #define NID_ad_ca_issuers 179
  756. #define OBJ_ad_ca_issuers OBJ_id_ad,2L
  757. #define SN_OCSP_sign "OCSPSigning"
  758. #define LN_OCSP_sign "OCSP Signing"
  759. #define NID_OCSP_sign 180
  760. #define OBJ_OCSP_sign OBJ_id_kp,9L
  761. #endif /* USE_OBJ_MAC */
  762. #include <openssl/bio.h>
  763. #include <openssl/asn1.h>
  764. #define OBJ_NAME_TYPE_UNDEF 0x00
  765. #define OBJ_NAME_TYPE_MD_METH 0x01
  766. #define OBJ_NAME_TYPE_CIPHER_METH 0x02
  767. #define OBJ_NAME_TYPE_PKEY_METH 0x03
  768. #define OBJ_NAME_TYPE_COMP_METH 0x04
  769. #define OBJ_NAME_TYPE_NUM 0x05
  770. #define OBJ_NAME_ALIAS 0x8000
  771. #define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01
  772. #define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02
  773. #ifdef __cplusplus
  774. extern "C" {
  775. #endif
  776. typedef struct obj_name_st
  777. {
  778. int type;
  779. int alias;
  780. const char *name;
  781. const char *data;
  782. } OBJ_NAME;
  783. #define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c)
  784. int OBJ_NAME_init(void);
  785. int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
  786. int (*cmp_func)(const char *, const char *),
  787. void (*free_func)(const char *, int, const char *));
  788. const char *OBJ_NAME_get(const char *name,int type);
  789. int OBJ_NAME_add(const char *name,int type,const char *data);
  790. int OBJ_NAME_remove(const char *name,int type);
  791. void OBJ_NAME_cleanup(int type); /* -1 for everything */
  792. void OBJ_NAME_do_all(int type,void (*fn)(const OBJ_NAME *,void *arg),
  793. void *arg);
  794. void OBJ_NAME_do_all_sorted(int type,void (*fn)(const OBJ_NAME *,void *arg),
  795. void *arg);
  796. ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o);
  797. ASN1_OBJECT * OBJ_nid2obj(int n);
  798. const char * OBJ_nid2ln(int n);
  799. const char * OBJ_nid2sn(int n);
  800. int OBJ_obj2nid(const ASN1_OBJECT *o);
  801. ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name);
  802. int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);
  803. int OBJ_txt2nid(const char *s);
  804. int OBJ_ln2nid(const char *s);
  805. int OBJ_sn2nid(const char *s);
  806. int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b);
  807. const void * OBJ_bsearch_(const void *key,const void *base,int num,int size,
  808. int (*cmp)(const void *, const void *));
  809. const void * OBJ_bsearch_ex_(const void *key,const void *base,int num,
  810. int size,
  811. int (*cmp)(const void *, const void *),
  812. int flags);
  813. #define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \
  814. static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \
  815. static int nm##_cmp(type1 const *, type2 const *); \
  816. scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num)
  817. #define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \
  818. _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp)
  819. #define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \
  820. type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num)
  821. /*
  822. * Unsolved problem: if a type is actually a pointer type, like
  823. * nid_triple is, then its impossible to get a const where you need
  824. * it. Consider:
  825. *
  826. * typedef int nid_triple[3];
  827. * const void *a_;
  828. * const nid_triple const *a = a_;
  829. *
  830. * The assignement discards a const because what you really want is:
  831. *
  832. * const int const * const *a = a_;
  833. *
  834. * But if you do that, you lose the fact that a is an array of 3 ints,
  835. * which breaks comparison functions.
  836. *
  837. * Thus we end up having to cast, sadly, or unpack the
  838. * declarations. Or, as I finally did in this case, delcare nid_triple
  839. * to be a struct, which it should have been in the first place.
  840. *
  841. * Ben, August 2008.
  842. *
  843. * Also, strictly speaking not all types need be const, but handling
  844. * the non-constness means a lot of complication, and in practice
  845. * comparison routines do always not touch their arguments.
  846. */
  847. #define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \
  848. static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \
  849. { \
  850. type1 const *a = a_; \
  851. type2 const *b = b_; \
  852. return nm##_cmp(a,b); \
  853. } \
  854. static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \
  855. { \
  856. return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \
  857. nm##_cmp_BSEARCH_CMP_FN); \
  858. } \
  859. extern void dummy_prototype(void)
  860. #define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \
  861. static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \
  862. { \
  863. type1 const *a = a_; \
  864. type2 const *b = b_; \
  865. return nm##_cmp(a,b); \
  866. } \
  867. type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \
  868. { \
  869. return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \
  870. nm##_cmp_BSEARCH_CMP_FN); \
  871. } \
  872. extern void dummy_prototype(void)
  873. #define OBJ_bsearch(type1,key,type2,base,num,cmp) \
  874. ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
  875. num,sizeof(type2), \
  876. ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \
  877. (void)CHECKED_PTR_OF(type2,cmp##_type_2), \
  878. cmp##_BSEARCH_CMP_FN)))
  879. #define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \
  880. ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
  881. num,sizeof(type2), \
  882. ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \
  883. (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \
  884. cmp##_BSEARCH_CMP_FN)),flags)
  885. int OBJ_new_nid(int num);
  886. int OBJ_add_object(const ASN1_OBJECT *obj);
  887. int OBJ_create(const char *oid,const char *sn,const char *ln);
  888. void OBJ_cleanup(void );
  889. int OBJ_create_objects(BIO *in);
  890. int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid);
  891. int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid);
  892. int OBJ_add_sigid(int signid, int dig_id, int pkey_id);
  893. void OBJ_sigid_free(void);
  894. extern int obj_cleanup_defer;
  895. void check_defer(int nid);
  896. /* BEGIN ERROR CODES */
  897. /* The following lines are auto generated by the script mkerr.pl. Any changes
  898. * made after this point may be overwritten when the script is next run.
  899. */
  900. void ERR_load_OBJ_strings(void);
  901. /* Error codes for the OBJ functions. */
  902. /* Function codes. */
  903. #define OBJ_F_OBJ_ADD_OBJECT 105
  904. #define OBJ_F_OBJ_CREATE 100
  905. #define OBJ_F_OBJ_DUP 101
  906. #define OBJ_F_OBJ_NAME_NEW_INDEX 106
  907. #define OBJ_F_OBJ_NID2LN 102
  908. #define OBJ_F_OBJ_NID2OBJ 103
  909. #define OBJ_F_OBJ_NID2SN 104
  910. /* Reason codes. */
  911. #define OBJ_R_MALLOC_FAILURE 100
  912. #define OBJ_R_UNKNOWN_NID 101
  913. #ifdef __cplusplus
  914. }
  915. #endif
  916. #endif