hane 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/README.md +32 -32
  2. package/binding.gyp +77 -50
  3. package/deps/win-nodeapi/node_api.def +158 -0
  4. package/deps/win-nodeapi/node_api.lib +0 -0
  5. package/dist/index.js +1 -1
  6. package/package.json +34 -33
  7. package/src/native/addon.cc +247 -207
  8. package/src/native/zsign_driver.cc +87 -87
  9. package/src/native/zsign_driver.h +38 -38
  10. package/vendor/zlib/.cmake-format.yaml +245 -245
  11. package/vendor/zlib/.github/workflows/c-std.yml +230 -230
  12. package/vendor/zlib/.github/workflows/cmake.yml +112 -112
  13. package/vendor/zlib/.github/workflows/configure.yml +136 -136
  14. package/vendor/zlib/.github/workflows/fuzz.yml +25 -25
  15. package/vendor/zlib/.github/workflows/msys-cygwin.yml +77 -77
  16. package/vendor/zlib/BUILD.bazel +134 -134
  17. package/vendor/zlib/CMakeLists.txt +330 -330
  18. package/vendor/zlib/ChangeLog +1621 -1621
  19. package/vendor/zlib/FAQ +367 -367
  20. package/vendor/zlib/INDEX +68 -68
  21. package/vendor/zlib/LICENSE +22 -22
  22. package/vendor/zlib/MODULE.bazel +9 -9
  23. package/vendor/zlib/Makefile.in +419 -419
  24. package/vendor/zlib/README +115 -115
  25. package/vendor/zlib/README-cmake.md +83 -83
  26. package/vendor/zlib/adler32.c +164 -164
  27. package/vendor/zlib/amiga/Makefile.pup +69 -69
  28. package/vendor/zlib/amiga/Makefile.sas +68 -68
  29. package/vendor/zlib/compress.c +75 -75
  30. package/vendor/zlib/configure +966 -966
  31. package/vendor/zlib/contrib/README.contrib +57 -57
  32. package/vendor/zlib/contrib/ada/buffer_demo.adb +106 -106
  33. package/vendor/zlib/contrib/ada/mtest.adb +156 -156
  34. package/vendor/zlib/contrib/ada/read.adb +156 -156
  35. package/vendor/zlib/contrib/ada/readme.txt +65 -65
  36. package/vendor/zlib/contrib/ada/test.adb +463 -463
  37. package/vendor/zlib/contrib/ada/zlib-streams.adb +225 -225
  38. package/vendor/zlib/contrib/ada/zlib-streams.ads +114 -114
  39. package/vendor/zlib/contrib/ada/zlib-thin.adb +142 -142
  40. package/vendor/zlib/contrib/ada/zlib-thin.ads +450 -450
  41. package/vendor/zlib/contrib/ada/zlib.adb +701 -701
  42. package/vendor/zlib/contrib/ada/zlib.ads +328 -328
  43. package/vendor/zlib/contrib/ada/zlib.gpr +20 -20
  44. package/vendor/zlib/contrib/blast/Makefile +8 -8
  45. package/vendor/zlib/contrib/blast/README +4 -4
  46. package/vendor/zlib/contrib/blast/blast.c +466 -466
  47. package/vendor/zlib/contrib/blast/blast.h +83 -83
  48. package/vendor/zlib/contrib/delphi/ZLib.pas +557 -557
  49. package/vendor/zlib/contrib/delphi/ZLibConst.pas +11 -11
  50. package/vendor/zlib/contrib/delphi/readme.txt +76 -76
  51. package/vendor/zlib/contrib/delphi/zlibd32.mak +99 -99
  52. package/vendor/zlib/contrib/gcc_gvmat64/gvmat64.S +574 -574
  53. package/vendor/zlib/contrib/infback9/README +1 -1
  54. package/vendor/zlib/contrib/infback9/infback9.c +603 -603
  55. package/vendor/zlib/contrib/infback9/infback9.h +37 -37
  56. package/vendor/zlib/contrib/infback9/inffix9.h +107 -107
  57. package/vendor/zlib/contrib/infback9/inflate9.h +47 -47
  58. package/vendor/zlib/contrib/infback9/inftree9.c +319 -319
  59. package/vendor/zlib/contrib/infback9/inftree9.h +61 -61
  60. package/vendor/zlib/contrib/iostream/test.cpp +24 -24
  61. package/vendor/zlib/contrib/iostream/zfstream.cpp +329 -329
  62. package/vendor/zlib/contrib/iostream/zfstream.h +128 -128
  63. package/vendor/zlib/contrib/iostream2/zstream.h +307 -307
  64. package/vendor/zlib/contrib/iostream2/zstream_test.cpp +25 -25
  65. package/vendor/zlib/contrib/iostream3/README +35 -35
  66. package/vendor/zlib/contrib/iostream3/TODO +17 -17
  67. package/vendor/zlib/contrib/iostream3/test.cc +50 -50
  68. package/vendor/zlib/contrib/iostream3/zfstream.cc +479 -479
  69. package/vendor/zlib/contrib/iostream3/zfstream.h +466 -466
  70. package/vendor/zlib/contrib/minizip/CMakeLists.txt +380 -380
  71. package/vendor/zlib/contrib/minizip/Makefile +37 -37
  72. package/vendor/zlib/contrib/minizip/Makefile.am +45 -45
  73. package/vendor/zlib/contrib/minizip/MiniZip64_Changes.txt +6 -6
  74. package/vendor/zlib/contrib/minizip/MiniZip64_info.txt +74 -74
  75. package/vendor/zlib/contrib/minizip/configure.ac +32 -32
  76. package/vendor/zlib/contrib/minizip/crypt.h +128 -128
  77. package/vendor/zlib/contrib/minizip/ints.h +57 -57
  78. package/vendor/zlib/contrib/minizip/ioapi.c +231 -231
  79. package/vendor/zlib/contrib/minizip/ioapi.h +183 -183
  80. package/vendor/zlib/contrib/minizip/iowin32.c +448 -448
  81. package/vendor/zlib/contrib/minizip/iowin32.h +28 -28
  82. package/vendor/zlib/contrib/minizip/make_vms.com +25 -25
  83. package/vendor/zlib/contrib/minizip/miniunz.c +647 -647
  84. package/vendor/zlib/contrib/minizip/miniunzip.1 +63 -63
  85. package/vendor/zlib/contrib/minizip/minizip.1 +46 -46
  86. package/vendor/zlib/contrib/minizip/minizip.c +512 -512
  87. package/vendor/zlib/contrib/minizip/minizip.pc.in +12 -12
  88. package/vendor/zlib/contrib/minizip/minizip.pc.txt +13 -13
  89. package/vendor/zlib/contrib/minizip/minizipConfig.cmake.in +35 -35
  90. package/vendor/zlib/contrib/minizip/mztools.c +288 -288
  91. package/vendor/zlib/contrib/minizip/mztools.h +37 -37
  92. package/vendor/zlib/contrib/minizip/skipset.h +361 -361
  93. package/vendor/zlib/contrib/minizip/test/CMakeLists.txt +121 -121
  94. package/vendor/zlib/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in +29 -29
  95. package/vendor/zlib/contrib/minizip/test/add_subdirectory_test.cmake.in +28 -28
  96. package/vendor/zlib/contrib/minizip/test/find_package_test.cmake.in +25 -25
  97. package/vendor/zlib/contrib/minizip/test/test_helper.cm +32 -32
  98. package/vendor/zlib/contrib/minizip/unzip.c +1981 -1981
  99. package/vendor/zlib/contrib/minizip/unzip.h +441 -441
  100. package/vendor/zlib/contrib/minizip/zip.c +2199 -2199
  101. package/vendor/zlib/contrib/minizip/zip.h +370 -370
  102. package/vendor/zlib/contrib/nuget/nuget.csproj +43 -43
  103. package/vendor/zlib/contrib/nuget/nuget.sln +22 -22
  104. package/vendor/zlib/contrib/pascal/example.pas +599 -599
  105. package/vendor/zlib/contrib/pascal/readme.txt +76 -76
  106. package/vendor/zlib/contrib/pascal/zlibd32.mak +99 -99
  107. package/vendor/zlib/contrib/pascal/zlibpas.pas +276 -276
  108. package/vendor/zlib/contrib/puff/Makefile +42 -42
  109. package/vendor/zlib/contrib/puff/README +63 -63
  110. package/vendor/zlib/contrib/puff/puff.c +840 -840
  111. package/vendor/zlib/contrib/puff/puff.h +35 -35
  112. package/vendor/zlib/contrib/puff/pufftest.c +169 -169
  113. package/vendor/zlib/contrib/untgz/Makefile +14 -14
  114. package/vendor/zlib/contrib/untgz/Makefile.msc +17 -17
  115. package/vendor/zlib/contrib/untgz/untgz.c +667 -667
  116. package/vendor/zlib/contrib/vstudio/readme.txt +81 -81
  117. package/vendor/zlib/contrib/vstudio/vc12/miniunz.vcxproj +315 -315
  118. package/vendor/zlib/contrib/vstudio/vc12/minizip.vcxproj +312 -312
  119. package/vendor/zlib/contrib/vstudio/vc12/testzlib.vcxproj +421 -421
  120. package/vendor/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj +315 -315
  121. package/vendor/zlib/contrib/vstudio/vc12/zlib.rc +32 -32
  122. package/vendor/zlib/contrib/vstudio/vc12/zlibstat.vcxproj +458 -458
  123. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.sln +119 -119
  124. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.vcxproj +667 -667
  125. package/vendor/zlib/contrib/vstudio/vc14/miniunz.vcxproj +315 -315
  126. package/vendor/zlib/contrib/vstudio/vc14/minizip.vcxproj +312 -312
  127. package/vendor/zlib/contrib/vstudio/vc14/testzlib.vcxproj +421 -421
  128. package/vendor/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj +315 -315
  129. package/vendor/zlib/contrib/vstudio/vc14/zlib.rc +32 -32
  130. package/vendor/zlib/contrib/vstudio/vc14/zlibstat.vcxproj +458 -458
  131. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.sln +119 -119
  132. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.vcxproj +667 -667
  133. package/vendor/zlib/contrib/vstudio/vc17/miniunz.vcxproj +408 -408
  134. package/vendor/zlib/contrib/vstudio/vc17/minizip.vcxproj +404 -404
  135. package/vendor/zlib/contrib/vstudio/vc17/testzlib.vcxproj +472 -472
  136. package/vendor/zlib/contrib/vstudio/vc17/testzlibdll.vcxproj +408 -408
  137. package/vendor/zlib/contrib/vstudio/vc17/zlib.rc +32 -32
  138. package/vendor/zlib/contrib/vstudio/vc17/zlibstat.vcxproj +601 -601
  139. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.sln +179 -179
  140. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.vcxproj +874 -874
  141. package/vendor/zlib/crc32.c +1049 -1049
  142. package/vendor/zlib/crc32.h +9446 -9446
  143. package/vendor/zlib/deflate.c +2152 -2152
  144. package/vendor/zlib/deflate.h +380 -380
  145. package/vendor/zlib/doc/algorithm.txt +209 -209
  146. package/vendor/zlib/doc/rfc1950.txt +619 -619
  147. package/vendor/zlib/doc/rfc1951.txt +955 -955
  148. package/vendor/zlib/doc/rfc1952.txt +675 -675
  149. package/vendor/zlib/doc/txtvsbin.txt +107 -107
  150. package/vendor/zlib/examples/README.examples +54 -54
  151. package/vendor/zlib/examples/enough.c +597 -597
  152. package/vendor/zlib/examples/fitblk.c +233 -233
  153. package/vendor/zlib/examples/gun.c +702 -702
  154. package/vendor/zlib/examples/gzappend.c +504 -504
  155. package/vendor/zlib/examples/gzjoin.c +449 -449
  156. package/vendor/zlib/examples/gzlog.c +1061 -1061
  157. package/vendor/zlib/examples/gzlog.h +91 -91
  158. package/vendor/zlib/examples/gznorm.c +474 -474
  159. package/vendor/zlib/examples/zlib_how.html +549 -549
  160. package/vendor/zlib/examples/zpipe.c +209 -209
  161. package/vendor/zlib/examples/zran.c +550 -550
  162. package/vendor/zlib/examples/zran.h +53 -53
  163. package/vendor/zlib/gzclose.c +23 -23
  164. package/vendor/zlib/gzguts.h +215 -215
  165. package/vendor/zlib/gzlib.c +585 -585
  166. package/vendor/zlib/gzread.c +603 -603
  167. package/vendor/zlib/gzwrite.c +631 -631
  168. package/vendor/zlib/infback.c +628 -628
  169. package/vendor/zlib/inffast.c +320 -320
  170. package/vendor/zlib/inffast.h +11 -11
  171. package/vendor/zlib/inffixed.h +94 -94
  172. package/vendor/zlib/inflate.c +1526 -1526
  173. package/vendor/zlib/inflate.h +126 -126
  174. package/vendor/zlib/inftrees.c +299 -299
  175. package/vendor/zlib/inftrees.h +62 -62
  176. package/vendor/zlib/make_vms.com +867 -867
  177. package/vendor/zlib/msdos/Makefile.bor +115 -115
  178. package/vendor/zlib/msdos/Makefile.dj2 +104 -104
  179. package/vendor/zlib/msdos/Makefile.emx +69 -69
  180. package/vendor/zlib/msdos/Makefile.msc +112 -112
  181. package/vendor/zlib/msdos/Makefile.tc +100 -100
  182. package/vendor/zlib/nintendods/Makefile +126 -126
  183. package/vendor/zlib/nintendods/README +5 -5
  184. package/vendor/zlib/old/Makefile.emx +69 -69
  185. package/vendor/zlib/old/Makefile.riscos +151 -151
  186. package/vendor/zlib/old/README +3 -3
  187. package/vendor/zlib/old/descrip.mms +48 -48
  188. package/vendor/zlib/old/os2/Makefile.os2 +136 -136
  189. package/vendor/zlib/old/os2/zlib.def +51 -51
  190. package/vendor/zlib/old/visual-basic.txt +160 -160
  191. package/vendor/zlib/os400/README400 +48 -48
  192. package/vendor/zlib/os400/bndsrc +133 -133
  193. package/vendor/zlib/os400/make.sh +366 -366
  194. package/vendor/zlib/os400/zlib.inc +531 -531
  195. package/vendor/zlib/qnx/package.qpg +141 -141
  196. package/vendor/zlib/test/CMakeLists.txt +265 -265
  197. package/vendor/zlib/test/add_subdirectory_exclude_test.cmake.in +29 -29
  198. package/vendor/zlib/test/add_subdirectory_test.cmake.in +28 -28
  199. package/vendor/zlib/test/example.c +552 -552
  200. package/vendor/zlib/test/find_package_test.cmake.in +26 -26
  201. package/vendor/zlib/test/infcover.c +672 -672
  202. package/vendor/zlib/test/minigzip.c +590 -590
  203. package/vendor/zlib/treebuild.xml +116 -116
  204. package/vendor/zlib/trees.c +1119 -1119
  205. package/vendor/zlib/trees.h +128 -128
  206. package/vendor/zlib/uncompr.c +85 -85
  207. package/vendor/zlib/watcom/watcom_f.mak +43 -43
  208. package/vendor/zlib/watcom/watcom_l.mak +43 -43
  209. package/vendor/zlib/win32/DLL_FAQ.txt +381 -381
  210. package/vendor/zlib/win32/Makefile.bor +109 -109
  211. package/vendor/zlib/win32/Makefile.gcc +177 -177
  212. package/vendor/zlib/win32/Makefile.msc +159 -159
  213. package/vendor/zlib/win32/README-WIN32.txt +103 -103
  214. package/vendor/zlib/win32/VisualC.txt +3 -3
  215. package/vendor/zlib/win32/zlib1.rc +37 -37
  216. package/vendor/zlib/zconf.h.in +544 -544
  217. package/vendor/zlib/zlib.3 +149 -149
  218. package/vendor/zlib/zlib.h +1957 -1957
  219. package/vendor/zlib/zlib.map +103 -103
  220. package/vendor/zlib/zlib.pc.cmakein +13 -13
  221. package/vendor/zlib/zlib.pc.in +13 -13
  222. package/vendor/zlib/zlibConfig.cmake.in +26 -26
  223. package/vendor/zlib/zutil.c +299 -299
  224. package/vendor/zlib/zutil.h +257 -257
  225. package/vendor/zsign/.gitattributes +3 -3
  226. package/vendor/zsign/LICENSE +20 -20
  227. package/vendor/zsign/README.md +142 -142
  228. package/vendor/zsign/build/linux/Makefile +43 -43
  229. package/vendor/zsign/build/macos/Makefile +43 -43
  230. package/vendor/zsign/build/windows/vs2022/include/minizip/crypt.h +128 -128
  231. package/vendor/zsign/build/windows/vs2022/include/minizip/ioapi.h +216 -216
  232. package/vendor/zsign/build/windows/vs2022/include/minizip/iowin32.h +28 -28
  233. package/vendor/zsign/build/windows/vs2022/include/minizip/mztools.h +37 -37
  234. package/vendor/zsign/build/windows/vs2022/include/minizip/unzip.h +437 -437
  235. package/vendor/zsign/build/windows/vs2022/include/minizip/zip.h +364 -364
  236. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_EPILOGUE.H +22 -22
  237. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_PROLOGUE.H +26 -26
  238. package/vendor/zsign/build/windows/vs2022/include/openssl/aes.h +111 -111
  239. package/vendor/zsign/build/windows/vs2022/include/openssl/applink.c +153 -153
  240. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1_mac.h +10 -10
  241. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1err.h +142 -142
  242. package/vendor/zsign/build/windows/vs2022/include/openssl/async.h +104 -104
  243. package/vendor/zsign/build/windows/vs2022/include/openssl/asyncerr.h +29 -29
  244. package/vendor/zsign/build/windows/vs2022/include/openssl/bioerr.h +72 -72
  245. package/vendor/zsign/build/windows/vs2022/include/openssl/blowfish.h +78 -78
  246. package/vendor/zsign/build/windows/vs2022/include/openssl/bn.h +590 -590
  247. package/vendor/zsign/build/windows/vs2022/include/openssl/bnerr.h +47 -47
  248. package/vendor/zsign/build/windows/vs2022/include/openssl/buffer.h +62 -62
  249. package/vendor/zsign/build/windows/vs2022/include/openssl/buffererr.h +25 -25
  250. package/vendor/zsign/build/windows/vs2022/include/openssl/camellia.h +117 -117
  251. package/vendor/zsign/build/windows/vs2022/include/openssl/cast.h +71 -71
  252. package/vendor/zsign/build/windows/vs2022/include/openssl/cmac.h +52 -52
  253. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp_util.h +56 -56
  254. package/vendor/zsign/build/windows/vs2022/include/openssl/cmperr.h +131 -131
  255. package/vendor/zsign/build/windows/vs2022/include/openssl/cmserr.h +125 -125
  256. package/vendor/zsign/build/windows/vs2022/include/openssl/comperr.h +38 -38
  257. package/vendor/zsign/build/windows/vs2022/include/openssl/conf_api.h +46 -46
  258. package/vendor/zsign/build/windows/vs2022/include/openssl/conferr.h +52 -52
  259. package/vendor/zsign/build/windows/vs2022/include/openssl/conftypes.h +44 -44
  260. package/vendor/zsign/build/windows/vs2022/include/openssl/core.h +236 -236
  261. package/vendor/zsign/build/windows/vs2022/include/openssl/core_dispatch.h +1022 -1022
  262. package/vendor/zsign/build/windows/vs2022/include/openssl/core_object.h +41 -41
  263. package/vendor/zsign/build/windows/vs2022/include/openssl/crmferr.h +50 -50
  264. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr.h +56 -56
  265. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr_legacy.h +1466 -1466
  266. package/vendor/zsign/build/windows/vs2022/include/openssl/cterr.h +45 -45
  267. package/vendor/zsign/build/windows/vs2022/include/openssl/decoder.h +133 -133
  268. package/vendor/zsign/build/windows/vs2022/include/openssl/decodererr.h +28 -28
  269. package/vendor/zsign/build/windows/vs2022/include/openssl/des.h +211 -211
  270. package/vendor/zsign/build/windows/vs2022/include/openssl/dh.h +339 -339
  271. package/vendor/zsign/build/windows/vs2022/include/openssl/dherr.h +59 -59
  272. package/vendor/zsign/build/windows/vs2022/include/openssl/dsa.h +280 -280
  273. package/vendor/zsign/build/windows/vs2022/include/openssl/dsaerr.h +44 -44
  274. package/vendor/zsign/build/windows/vs2022/include/openssl/dtls1.h +57 -57
  275. package/vendor/zsign/build/windows/vs2022/include/openssl/e_os2.h +310 -310
  276. package/vendor/zsign/build/windows/vs2022/include/openssl/e_ostime.h +38 -38
  277. package/vendor/zsign/build/windows/vs2022/include/openssl/ebcdic.h +39 -39
  278. package/vendor/zsign/build/windows/vs2022/include/openssl/ec.h +1588 -1588
  279. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdh.h +10 -10
  280. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdsa.h +10 -10
  281. package/vendor/zsign/build/windows/vs2022/include/openssl/ecerr.h +104 -104
  282. package/vendor/zsign/build/windows/vs2022/include/openssl/encoder.h +124 -124
  283. package/vendor/zsign/build/windows/vs2022/include/openssl/encodererr.h +28 -28
  284. package/vendor/zsign/build/windows/vs2022/include/openssl/engine.h +833 -833
  285. package/vendor/zsign/build/windows/vs2022/include/openssl/engineerr.h +63 -63
  286. package/vendor/zsign/build/windows/vs2022/include/openssl/esserr.h +32 -32
  287. package/vendor/zsign/build/windows/vs2022/include/openssl/evp.h +2231 -2231
  288. package/vendor/zsign/build/windows/vs2022/include/openssl/evperr.h +140 -140
  289. package/vendor/zsign/build/windows/vs2022/include/openssl/fips_names.h +50 -50
  290. package/vendor/zsign/build/windows/vs2022/include/openssl/hmac.h +62 -62
  291. package/vendor/zsign/build/windows/vs2022/include/openssl/hpke.h +169 -169
  292. package/vendor/zsign/build/windows/vs2022/include/openssl/http.h +118 -118
  293. package/vendor/zsign/build/windows/vs2022/include/openssl/httperr.h +56 -56
  294. package/vendor/zsign/build/windows/vs2022/include/openssl/idea.h +82 -82
  295. package/vendor/zsign/build/windows/vs2022/include/openssl/indicator.h +31 -31
  296. package/vendor/zsign/build/windows/vs2022/include/openssl/kdf.h +138 -138
  297. package/vendor/zsign/build/windows/vs2022/include/openssl/kdferr.h +16 -16
  298. package/vendor/zsign/build/windows/vs2022/include/openssl/macros.h +338 -338
  299. package/vendor/zsign/build/windows/vs2022/include/openssl/md2.h +56 -56
  300. package/vendor/zsign/build/windows/vs2022/include/openssl/md4.h +63 -63
  301. package/vendor/zsign/build/windows/vs2022/include/openssl/md5.h +62 -62
  302. package/vendor/zsign/build/windows/vs2022/include/openssl/mdc2.h +55 -55
  303. package/vendor/zsign/build/windows/vs2022/include/openssl/modes.h +219 -219
  304. package/vendor/zsign/build/windows/vs2022/include/openssl/obj_mac.h +5820 -5820
  305. package/vendor/zsign/build/windows/vs2022/include/openssl/objects.h +184 -184
  306. package/vendor/zsign/build/windows/vs2022/include/openssl/objectserr.h +28 -28
  307. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsperr.h +53 -53
  308. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslconf.h +17 -17
  309. package/vendor/zsign/build/windows/vs2022/include/openssl/ossl_typ.h +16 -16
  310. package/vendor/zsign/build/windows/vs2022/include/openssl/param_build.h +63 -63
  311. package/vendor/zsign/build/windows/vs2022/include/openssl/params.h +160 -160
  312. package/vendor/zsign/build/windows/vs2022/include/openssl/pem.h +543 -543
  313. package/vendor/zsign/build/windows/vs2022/include/openssl/pem2.h +19 -19
  314. package/vendor/zsign/build/windows/vs2022/include/openssl/pemerr.h +58 -58
  315. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12err.h +46 -46
  316. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7err.h +63 -63
  317. package/vendor/zsign/build/windows/vs2022/include/openssl/prov_ssl.h +38 -38
  318. package/vendor/zsign/build/windows/vs2022/include/openssl/proverr.h +162 -162
  319. package/vendor/zsign/build/windows/vs2022/include/openssl/provider.h +66 -66
  320. package/vendor/zsign/build/windows/vs2022/include/openssl/quic.h +70 -70
  321. package/vendor/zsign/build/windows/vs2022/include/openssl/rand.h +125 -125
  322. package/vendor/zsign/build/windows/vs2022/include/openssl/randerr.h +69 -69
  323. package/vendor/zsign/build/windows/vs2022/include/openssl/rc2.h +68 -68
  324. package/vendor/zsign/build/windows/vs2022/include/openssl/rc4.h +47 -47
  325. package/vendor/zsign/build/windows/vs2022/include/openssl/rc5.h +79 -79
  326. package/vendor/zsign/build/windows/vs2022/include/openssl/ripemd.h +59 -59
  327. package/vendor/zsign/build/windows/vs2022/include/openssl/rsa.h +615 -615
  328. package/vendor/zsign/build/windows/vs2022/include/openssl/rsaerr.h +107 -107
  329. package/vendor/zsign/build/windows/vs2022/include/openssl/seed.h +113 -113
  330. package/vendor/zsign/build/windows/vs2022/include/openssl/self_test.h +98 -98
  331. package/vendor/zsign/build/windows/vs2022/include/openssl/sha.h +139 -139
  332. package/vendor/zsign/build/windows/vs2022/include/openssl/srtp.h +68 -68
  333. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl2.h +30 -30
  334. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl3.h +357 -357
  335. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr.h +379 -379
  336. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr_legacy.h +467 -467
  337. package/vendor/zsign/build/windows/vs2022/include/openssl/stack.h +90 -90
  338. package/vendor/zsign/build/windows/vs2022/include/openssl/store.h +377 -377
  339. package/vendor/zsign/build/windows/vs2022/include/openssl/storeerr.h +49 -49
  340. package/vendor/zsign/build/windows/vs2022/include/openssl/symhacks.h +39 -39
  341. package/vendor/zsign/build/windows/vs2022/include/openssl/thread.h +31 -31
  342. package/vendor/zsign/build/windows/vs2022/include/openssl/tls1.h +1220 -1220
  343. package/vendor/zsign/build/windows/vs2022/include/openssl/trace.h +320 -320
  344. package/vendor/zsign/build/windows/vs2022/include/openssl/ts.h +522 -522
  345. package/vendor/zsign/build/windows/vs2022/include/openssl/tserr.h +67 -67
  346. package/vendor/zsign/build/windows/vs2022/include/openssl/txt_db.h +63 -63
  347. package/vendor/zsign/build/windows/vs2022/include/openssl/types.h +245 -245
  348. package/vendor/zsign/build/windows/vs2022/include/openssl/uierr.h +38 -38
  349. package/vendor/zsign/build/windows/vs2022/include/openssl/whrlpool.h +62 -62
  350. package/vendor/zsign/build/windows/vs2022/include/openssl/x509err.h +70 -70
  351. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3err.h +96 -96
  352. package/vendor/zsign/src/archo.cpp +742 -742
  353. package/vendor/zsign/src/archo.h +61 -61
  354. package/vendor/zsign/src/bundle.cpp +589 -589
  355. package/vendor/zsign/src/bundle.h +46 -46
  356. package/vendor/zsign/src/common/archive.cpp +246 -246
  357. package/vendor/zsign/src/common/archive.h +22 -22
  358. package/vendor/zsign/src/common/common.h +56 -56
  359. package/vendor/zsign/src/common/fs.cpp +573 -573
  360. package/vendor/zsign/src/common/fs.h +50 -50
  361. package/vendor/zsign/src/common/log.cpp +145 -145
  362. package/vendor/zsign/src/common/log.h +37 -37
  363. package/vendor/zsign/src/common/mach-o.h +585 -585
  364. package/vendor/zsign/src/common/sha.cpp +133 -133
  365. package/vendor/zsign/src/common/sha.h +24 -24
  366. package/vendor/zsign/src/common/timer.cpp +28 -28
  367. package/vendor/zsign/src/common/timer.h +17 -17
  368. package/vendor/zsign/src/common/util.cpp +185 -185
  369. package/vendor/zsign/src/common/util.h +25 -25
  370. package/vendor/zsign/src/macho.cpp +273 -273
  371. package/vendor/zsign/src/macho.h +38 -38
  372. package/vendor/zsign/src/openssl.cpp +698 -698
  373. package/vendor/zsign/src/openssl.h +71 -71
  374. package/vendor/zsign/src/signing.cpp +745 -745
  375. package/vendor/zsign/src/signing.h +59 -59
  376. package/vendor/zsign/src/zsign.cpp +317 -317
  377. package/vendor/zsign/test/dylib/demo/Makefile +12 -12
  378. package/vendor/zsign/test/dylib/demo/control +9 -9
  379. package/vendor/zsign/test/dylib/demo/demo.m +21 -21
  380. package/vendor/zsign/test/linux/test.sh +19 -19
  381. package/vendor/zsign/test/macos/test.sh +19 -19
@@ -1,543 +1,543 @@
1
- /*
2
- * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
3
- *
4
- * Licensed under the Apache License 2.0 (the "License"). You may not use
5
- * this file except in compliance with the License. You can obtain a copy
6
- * in the file LICENSE in the source distribution or at
7
- * https://www.openssl.org/source/license.html
8
- */
9
-
10
- #ifndef OPENSSL_PEM_H
11
- # define OPENSSL_PEM_H
12
- # pragma once
13
-
14
- # include <openssl/macros.h>
15
- # ifndef OPENSSL_NO_DEPRECATED_3_0
16
- # define HEADER_PEM_H
17
- # endif
18
-
19
- # include <openssl/e_os2.h>
20
- # include <openssl/bio.h>
21
- # include <openssl/safestack.h>
22
- # include <openssl/evp.h>
23
- # include <openssl/x509.h>
24
- # include <openssl/pemerr.h>
25
- # ifndef OPENSSL_NO_STDIO
26
- # include <stdio.h>
27
- # endif
28
-
29
- #ifdef __cplusplus
30
- extern "C" {
31
- #endif
32
-
33
- # define PEM_BUFSIZE 1024
34
-
35
- # define PEM_STRING_X509_OLD "X509 CERTIFICATE"
36
- # define PEM_STRING_X509 "CERTIFICATE"
37
- # define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE"
38
- # define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST"
39
- # define PEM_STRING_X509_REQ "CERTIFICATE REQUEST"
40
- # define PEM_STRING_X509_CRL "X509 CRL"
41
- # define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY"
42
- # define PEM_STRING_PUBLIC "PUBLIC KEY"
43
- # define PEM_STRING_RSA "RSA PRIVATE KEY"
44
- # define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY"
45
- # define PEM_STRING_DSA "DSA PRIVATE KEY"
46
- # define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY"
47
- # define PEM_STRING_PKCS7 "PKCS7"
48
- # define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA"
49
- # define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY"
50
- # define PEM_STRING_PKCS8INF "PRIVATE KEY"
51
- # define PEM_STRING_DHPARAMS "DH PARAMETERS"
52
- # define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS"
53
- # define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS"
54
- # define PEM_STRING_DSAPARAMS "DSA PARAMETERS"
55
- # define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY"
56
- # define PEM_STRING_ECPARAMETERS "EC PARAMETERS"
57
- # define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY"
58
- # define PEM_STRING_PARAMETERS "PARAMETERS"
59
- # define PEM_STRING_CMS "CMS"
60
- # define PEM_STRING_SM2PARAMETERS "SM2 PARAMETERS"
61
- # define PEM_STRING_ACERT "ATTRIBUTE CERTIFICATE"
62
-
63
- # define PEM_TYPE_ENCRYPTED 10
64
- # define PEM_TYPE_MIC_ONLY 20
65
- # define PEM_TYPE_MIC_CLEAR 30
66
- # define PEM_TYPE_CLEAR 40
67
-
68
- /*
69
- * These macros make the PEM_read/PEM_write functions easier to maintain and
70
- * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or
71
- * IMPLEMENT_PEM_rw_cb(...)
72
- */
73
-
74
- # define PEM_read_cb_fnsig(name, type, INTYPE, readname) \
75
- type *PEM_##readname##_##name(INTYPE *out, type **x, \
76
- pem_password_cb *cb, void *u)
77
- # define PEM_read_cb_ex_fnsig(name, type, INTYPE, readname) \
78
- type *PEM_##readname##_##name##_ex(INTYPE *out, type **x, \
79
- pem_password_cb *cb, void *u, \
80
- OSSL_LIB_CTX *libctx, \
81
- const char *propq)
82
-
83
- # define PEM_write_fnsig(name, type, OUTTYPE, writename) \
84
- int PEM_##writename##_##name(OUTTYPE *out, const type *x)
85
- # define PEM_write_cb_fnsig(name, type, OUTTYPE, writename) \
86
- int PEM_##writename##_##name(OUTTYPE *out, const type *x, \
87
- const EVP_CIPHER *enc, \
88
- const unsigned char *kstr, int klen, \
89
- pem_password_cb *cb, void *u)
90
- # define PEM_write_ex_fnsig(name, type, OUTTYPE, writename) \
91
- int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \
92
- OSSL_LIB_CTX *libctx, \
93
- const char *propq)
94
- # define PEM_write_cb_ex_fnsig(name, type, OUTTYPE, writename) \
95
- int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \
96
- const EVP_CIPHER *enc, \
97
- const unsigned char *kstr, int klen, \
98
- pem_password_cb *cb, void *u, \
99
- OSSL_LIB_CTX *libctx, \
100
- const char *propq)
101
-
102
- # ifdef OPENSSL_NO_STDIO
103
-
104
- # define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/
105
- # define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/
106
- # ifndef OPENSSL_NO_DEPRECATED_3_0
107
- # define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/
108
- # endif
109
- # define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/
110
- # ifndef OPENSSL_NO_DEPRECATED_3_0
111
- # define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/
112
- # endif
113
- # else
114
-
115
- # define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
116
- type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u) \
117
- { \
118
- return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str, fp, \
119
- (void **)x, cb, u); \
120
- }
121
-
122
- # define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
123
- PEM_write_fnsig(name, type, FILE, write) \
124
- { \
125
- return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \
126
- x, NULL, NULL, 0, NULL, NULL); \
127
- }
128
-
129
- # ifndef OPENSSL_NO_DEPRECATED_3_0
130
- # define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \
131
- IMPLEMENT_PEM_write_fp(name, type, str, asn1)
132
- # endif
133
-
134
- # define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
135
- PEM_write_cb_fnsig(name, type, FILE, write) \
136
- { \
137
- return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \
138
- x, enc, kstr, klen, cb, u); \
139
- }
140
-
141
- # ifndef OPENSSL_NO_DEPRECATED_3_0
142
- # define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
143
- IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
144
- # endif
145
- # endif
146
-
147
- # define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
148
- type *PEM_read_bio_##name(BIO *bp, type **x, \
149
- pem_password_cb *cb, void *u) \
150
- { \
151
- return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str, bp, \
152
- (void **)x, cb, u); \
153
- }
154
-
155
- # define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
156
- PEM_write_fnsig(name, type, BIO, write_bio) \
157
- { \
158
- return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \
159
- x, NULL,NULL,0,NULL,NULL); \
160
- }
161
-
162
- # ifndef OPENSSL_NO_DEPRECATED_3_0
163
- # define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
164
- IMPLEMENT_PEM_write_bio(name, type, str, asn1)
165
- # endif
166
-
167
- # define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
168
- PEM_write_cb_fnsig(name, type, BIO, write_bio) \
169
- { \
170
- return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \
171
- x, enc, kstr, klen, cb, u); \
172
- }
173
-
174
- # ifndef OPENSSL_NO_DEPRECATED_3_0
175
- # define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
176
- IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
177
- # endif
178
-
179
- # define IMPLEMENT_PEM_write(name, type, str, asn1) \
180
- IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
181
- IMPLEMENT_PEM_write_fp(name, type, str, asn1)
182
-
183
- # ifndef OPENSSL_NO_DEPRECATED_3_0
184
- # define IMPLEMENT_PEM_write_const(name, type, str, asn1) \
185
- IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
186
- IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
187
- # endif
188
-
189
- # define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \
190
- IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
191
- IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
192
-
193
- # ifndef OPENSSL_NO_DEPRECATED_3_0
194
- # define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \
195
- IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
196
- IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
197
- # endif
198
-
199
- # define IMPLEMENT_PEM_read(name, type, str, asn1) \
200
- IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
201
- IMPLEMENT_PEM_read_fp(name, type, str, asn1)
202
-
203
- # define IMPLEMENT_PEM_rw(name, type, str, asn1) \
204
- IMPLEMENT_PEM_read(name, type, str, asn1) \
205
- IMPLEMENT_PEM_write(name, type, str, asn1)
206
-
207
- # ifndef OPENSSL_NO_DEPRECATED_3_0
208
- # define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \
209
- IMPLEMENT_PEM_read(name, type, str, asn1) \
210
- IMPLEMENT_PEM_write_const(name, type, str, asn1)
211
- # endif
212
-
213
- # define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \
214
- IMPLEMENT_PEM_read(name, type, str, asn1) \
215
- IMPLEMENT_PEM_write_cb(name, type, str, asn1)
216
-
217
- /* These are the same except they are for the declarations */
218
-
219
- /*
220
- * The mysterious 'extern' that's passed to some macros is innocuous,
221
- * and is there to quiet pre-C99 compilers that may complain about empty
222
- * arguments in macro calls.
223
- */
224
- # if defined(OPENSSL_NO_STDIO)
225
-
226
- # define DECLARE_PEM_read_fp_attr(attr, name, type) /**/
227
- # define DECLARE_PEM_read_fp_ex_attr(attr, name, type) /**/
228
- # define DECLARE_PEM_write_fp_attr(attr, name, type) /**/
229
- # define DECLARE_PEM_write_fp_ex_attr(attr, name, type) /**/
230
- # ifndef OPENSSL_NO_DEPRECATED_3_0
231
- # define DECLARE_PEM_write_fp_const_attr(attr, name, type) /**/
232
- # endif
233
- # define DECLARE_PEM_write_cb_fp_attr(attr, name, type) /**/
234
- # define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) /**/
235
-
236
- # else
237
-
238
- # define DECLARE_PEM_read_fp_attr(attr, name, type) \
239
- attr PEM_read_cb_fnsig(name, type, FILE, read);
240
- # define DECLARE_PEM_read_fp_ex_attr(attr, name, type) \
241
- attr PEM_read_cb_fnsig(name, type, FILE, read); \
242
- attr PEM_read_cb_ex_fnsig(name, type, FILE, read);
243
-
244
- # define DECLARE_PEM_write_fp_attr(attr, name, type) \
245
- attr PEM_write_fnsig(name, type, FILE, write);
246
- # define DECLARE_PEM_write_fp_ex_attr(attr, name, type) \
247
- attr PEM_write_fnsig(name, type, FILE, write); \
248
- attr PEM_write_ex_fnsig(name, type, FILE, write);
249
- # ifndef OPENSSL_NO_DEPRECATED_3_0
250
- # define DECLARE_PEM_write_fp_const_attr(attr, name, type) \
251
- attr PEM_write_fnsig(name, type, FILE, write);
252
- # endif
253
- # define DECLARE_PEM_write_cb_fp_attr(attr, name, type) \
254
- attr PEM_write_cb_fnsig(name, type, FILE, write);
255
- # define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) \
256
- attr PEM_write_cb_fnsig(name, type, FILE, write); \
257
- attr PEM_write_cb_ex_fnsig(name, type, FILE, write);
258
-
259
- # endif
260
-
261
- # define DECLARE_PEM_read_fp(name, type) \
262
- DECLARE_PEM_read_fp_attr(extern, name, type)
263
- # define DECLARE_PEM_write_fp(name, type) \
264
- DECLARE_PEM_write_fp_attr(extern, name, type)
265
- # ifndef OPENSSL_NO_DEPRECATED_3_0
266
- # define DECLARE_PEM_write_fp_const(name, type) \
267
- DECLARE_PEM_write_fp_const_attr(extern, name, type)
268
- # endif
269
- # define DECLARE_PEM_write_cb_fp(name, type) \
270
- DECLARE_PEM_write_cb_fp_attr(extern, name, type)
271
-
272
- # define DECLARE_PEM_read_bio_attr(attr, name, type) \
273
- attr PEM_read_cb_fnsig(name, type, BIO, read_bio);
274
- # define DECLARE_PEM_read_bio_ex_attr(attr, name, type) \
275
- attr PEM_read_cb_fnsig(name, type, BIO, read_bio); \
276
- attr PEM_read_cb_ex_fnsig(name, type, BIO, read_bio);
277
- # define DECLARE_PEM_read_bio(name, type) \
278
- DECLARE_PEM_read_bio_attr(extern, name, type)
279
- # define DECLARE_PEM_read_bio_ex(name, type) \
280
- DECLARE_PEM_read_bio_ex_attr(extern, name, type)
281
-
282
- # define DECLARE_PEM_write_bio_attr(attr, name, type) \
283
- attr PEM_write_fnsig(name, type, BIO, write_bio);
284
- # define DECLARE_PEM_write_bio_ex_attr(attr, name, type) \
285
- attr PEM_write_fnsig(name, type, BIO, write_bio); \
286
- attr PEM_write_ex_fnsig(name, type, BIO, write_bio);
287
- # define DECLARE_PEM_write_bio(name, type) \
288
- DECLARE_PEM_write_bio_attr(extern, name, type)
289
- # define DECLARE_PEM_write_bio_ex(name, type) \
290
- DECLARE_PEM_write_bio_ex_attr(extern, name, type)
291
-
292
- # ifndef OPENSSL_NO_DEPRECATED_3_0
293
- # define DECLARE_PEM_write_bio_const_attr(attr, name, type) \
294
- attr PEM_write_fnsig(name, type, BIO, write_bio);
295
- # define DECLARE_PEM_write_bio_const(name, type) \
296
- DECLARE_PEM_write_bio_const_attr(extern, name, type)
297
- # endif
298
-
299
- # define DECLARE_PEM_write_cb_bio_attr(attr, name, type) \
300
- attr PEM_write_cb_fnsig(name, type, BIO, write_bio);
301
- # define DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \
302
- attr PEM_write_cb_fnsig(name, type, BIO, write_bio); \
303
- attr PEM_write_cb_ex_fnsig(name, type, BIO, write_bio);
304
- # define DECLARE_PEM_write_cb_bio(name, type) \
305
- DECLARE_PEM_write_cb_bio_attr(extern, name, type)
306
- # define DECLARE_PEM_write_cb_ex_bio(name, type) \
307
- DECLARE_PEM_write_cb_bio_ex_attr(extern, name, type)
308
-
309
- # define DECLARE_PEM_write_attr(attr, name, type) \
310
- DECLARE_PEM_write_bio_attr(attr, name, type) \
311
- DECLARE_PEM_write_fp_attr(attr, name, type)
312
- # define DECLARE_PEM_write_ex_attr(attr, name, type) \
313
- DECLARE_PEM_write_bio_ex_attr(attr, name, type) \
314
- DECLARE_PEM_write_fp_ex_attr(attr, name, type)
315
- # define DECLARE_PEM_write(name, type) \
316
- DECLARE_PEM_write_attr(extern, name, type)
317
- # define DECLARE_PEM_write_ex(name, type) \
318
- DECLARE_PEM_write_ex_attr(extern, name, type)
319
- # ifndef OPENSSL_NO_DEPRECATED_3_0
320
- # define DECLARE_PEM_write_const_attr(attr, name, type) \
321
- DECLARE_PEM_write_bio_const_attr(attr, name, type) \
322
- DECLARE_PEM_write_fp_const_attr(attr, name, type)
323
- # define DECLARE_PEM_write_const(name, type) \
324
- DECLARE_PEM_write_const_attr(extern, name, type)
325
- # endif
326
- # define DECLARE_PEM_write_cb_attr(attr, name, type) \
327
- DECLARE_PEM_write_cb_bio_attr(attr, name, type) \
328
- DECLARE_PEM_write_cb_fp_attr(attr, name, type)
329
- # define DECLARE_PEM_write_cb_ex_attr(attr, name, type) \
330
- DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \
331
- DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type)
332
- # define DECLARE_PEM_write_cb(name, type) \
333
- DECLARE_PEM_write_cb_attr(extern, name, type)
334
- # define DECLARE_PEM_write_cb_ex(name, type) \
335
- DECLARE_PEM_write_cb_ex_attr(extern, name, type)
336
- # define DECLARE_PEM_read_attr(attr, name, type) \
337
- DECLARE_PEM_read_bio_attr(attr, name, type) \
338
- DECLARE_PEM_read_fp_attr(attr, name, type)
339
- # define DECLARE_PEM_read_ex_attr(attr, name, type) \
340
- DECLARE_PEM_read_bio_ex_attr(attr, name, type) \
341
- DECLARE_PEM_read_fp_ex_attr(attr, name, type)
342
- # define DECLARE_PEM_read(name, type) \
343
- DECLARE_PEM_read_attr(extern, name, type)
344
- # define DECLARE_PEM_read_ex(name, type) \
345
- DECLARE_PEM_read_ex_attr(extern, name, type)
346
- # define DECLARE_PEM_rw_attr(attr, name, type) \
347
- DECLARE_PEM_read_attr(attr, name, type) \
348
- DECLARE_PEM_write_attr(attr, name, type)
349
- # define DECLARE_PEM_rw_ex_attr(attr, name, type) \
350
- DECLARE_PEM_read_ex_attr(attr, name, type) \
351
- DECLARE_PEM_write_ex_attr(attr, name, type)
352
- # define DECLARE_PEM_rw(name, type) \
353
- DECLARE_PEM_rw_attr(extern, name, type)
354
- # define DECLARE_PEM_rw_ex(name, type) \
355
- DECLARE_PEM_rw_ex_attr(extern, name, type)
356
- # ifndef OPENSSL_NO_DEPRECATED_3_0
357
- # define DECLARE_PEM_rw_const_attr(attr, name, type) \
358
- DECLARE_PEM_read_attr(attr, name, type) \
359
- DECLARE_PEM_write_const_attr(attr, name, type)
360
- # define DECLARE_PEM_rw_const(name, type) \
361
- DECLARE_PEM_rw_const_attr(extern, name, type)
362
- # endif
363
- # define DECLARE_PEM_rw_cb_attr(attr, name, type) \
364
- DECLARE_PEM_read_attr(attr, name, type) \
365
- DECLARE_PEM_write_cb_attr(attr, name, type)
366
- # define DECLARE_PEM_rw_cb_ex_attr(attr, name, type) \
367
- DECLARE_PEM_read_ex_attr(attr, name, type) \
368
- DECLARE_PEM_write_cb_ex_attr(attr, name, type)
369
- # define DECLARE_PEM_rw_cb(name, type) \
370
- DECLARE_PEM_rw_cb_attr(extern, name, type)
371
- # define DECLARE_PEM_rw_cb_ex(name, type) \
372
- DECLARE_PEM_rw_cb_ex_attr(extern, name, type)
373
-
374
- int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher);
375
- int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len,
376
- pem_password_cb *callback, void *u);
377
-
378
- int PEM_read_bio(BIO *bp, char **name, char **header,
379
- unsigned char **data, long *len);
380
- # define PEM_FLAG_SECURE 0x1
381
- # define PEM_FLAG_EAY_COMPATIBLE 0x2
382
- # define PEM_FLAG_ONLY_B64 0x4
383
- int PEM_read_bio_ex(BIO *bp, char **name, char **header,
384
- unsigned char **data, long *len, unsigned int flags);
385
- int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm,
386
- const char *name, BIO *bp, pem_password_cb *cb,
387
- void *u);
388
- int PEM_write_bio(BIO *bp, const char *name, const char *hdr,
389
- const unsigned char *data, long len);
390
- int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,
391
- const char *name, BIO *bp, pem_password_cb *cb,
392
- void *u);
393
- void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x,
394
- pem_password_cb *cb, void *u);
395
- int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
396
- const void *x, const EVP_CIPHER *enc,
397
- const unsigned char *kstr, int klen,
398
- pem_password_cb *cb, void *u);
399
-
400
- STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk,
401
- pem_password_cb *cb, void *u);
402
- STACK_OF(X509_INFO)
403
- *PEM_X509_INFO_read_bio_ex(BIO *bp, STACK_OF(X509_INFO) *sk,
404
- pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx,
405
- const char *propq);
406
-
407
- int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER *enc,
408
- const unsigned char *kstr, int klen,
409
- pem_password_cb *cd, void *u);
410
-
411
- #ifndef OPENSSL_NO_STDIO
412
- int PEM_read(FILE *fp, char **name, char **header,
413
- unsigned char **data, long *len);
414
- int PEM_write(FILE *fp, const char *name, const char *hdr,
415
- const unsigned char *data, long len);
416
- void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,
417
- pem_password_cb *cb, void *u);
418
- int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,
419
- const void *x, const EVP_CIPHER *enc,
420
- const unsigned char *kstr, int klen,
421
- pem_password_cb *callback, void *u);
422
- STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
423
- pem_password_cb *cb, void *u);
424
- STACK_OF(X509_INFO)
425
- *PEM_X509_INFO_read_ex(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb,
426
- void *u, OSSL_LIB_CTX *libctx, const char *propq);
427
- #endif
428
-
429
- int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type);
430
- int PEM_SignUpdate(EVP_MD_CTX *ctx, const unsigned char *d, unsigned int cnt);
431
- int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
432
- unsigned int *siglen, EVP_PKEY *pkey);
433
-
434
- /* The default pem_password_cb that's used internally */
435
- int PEM_def_callback(char *buf, int num, int rwflag, void *userdata);
436
- void PEM_proc_type(char *buf, int type);
437
- void PEM_dek_info(char *buf, const char *type, int len, const char *str);
438
-
439
- # include <openssl/symhacks.h>
440
-
441
- DECLARE_PEM_rw(X509, X509)
442
- DECLARE_PEM_rw(X509_AUX, X509)
443
- DECLARE_PEM_rw(X509_REQ, X509_REQ)
444
- DECLARE_PEM_write(X509_REQ_NEW, X509_REQ)
445
- DECLARE_PEM_rw(X509_CRL, X509_CRL)
446
- DECLARE_PEM_rw(X509_PUBKEY, X509_PUBKEY)
447
- DECLARE_PEM_rw(PKCS7, PKCS7)
448
- DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE)
449
- DECLARE_PEM_rw(PKCS8, X509_SIG)
450
- DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO)
451
- # ifndef OPENSSL_NO_DEPRECATED_3_0
452
- DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA)
453
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSAPublicKey, RSA)
454
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSA_PUBKEY, RSA)
455
- # endif
456
- # ifndef OPENSSL_NO_DEPRECATED_3_0
457
- # ifndef OPENSSL_NO_DSA
458
- DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, DSAPrivateKey, DSA)
459
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSA_PUBKEY, DSA)
460
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSAparams, DSA)
461
- # endif
462
- # endif
463
-
464
- # ifndef OPENSSL_NO_DEPRECATED_3_0
465
- # ifndef OPENSSL_NO_EC
466
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters, EC_GROUP)
467
- DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, ECPrivateKey, EC_KEY)
468
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY)
469
- # endif
470
- # endif
471
-
472
- # ifndef OPENSSL_NO_DH
473
- # ifndef OPENSSL_NO_DEPRECATED_3_0
474
- DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH)
475
- DECLARE_PEM_write_attr(OSSL_DEPRECATEDIN_3_0, DHxparams, DH)
476
- # endif
477
- # endif
478
- DECLARE_PEM_rw_cb_ex(PrivateKey, EVP_PKEY)
479
- DECLARE_PEM_rw_ex(PUBKEY, EVP_PKEY)
480
-
481
- int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x,
482
- const EVP_CIPHER *enc,
483
- const unsigned char *kstr, int klen,
484
- pem_password_cb *cb, void *u);
485
-
486
- /* Why do these take a signed char *kstr? */
487
- int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x, int nid,
488
- const char *kstr, int klen,
489
- pem_password_cb *cb, void *u);
490
- int PEM_write_bio_PKCS8PrivateKey(BIO *, const EVP_PKEY *, const EVP_CIPHER *,
491
- const char *kstr, int klen,
492
- pem_password_cb *cb, void *u);
493
- int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc,
494
- const char *kstr, int klen,
495
- pem_password_cb *cb, void *u);
496
- int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid,
497
- const char *kstr, int klen,
498
- pem_password_cb *cb, void *u);
499
- EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
500
- void *u);
501
-
502
- # ifndef OPENSSL_NO_STDIO
503
- int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc,
504
- const char *kstr, int klen,
505
- pem_password_cb *cb, void *u);
506
- int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid,
507
- const char *kstr, int klen,
508
- pem_password_cb *cb, void *u);
509
- int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int nid,
510
- const char *kstr, int klen,
511
- pem_password_cb *cb, void *u);
512
-
513
- EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,
514
- void *u);
515
-
516
- int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc,
517
- const char *kstr, int klen,
518
- pem_password_cb *cd, void *u);
519
- # endif
520
- EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x,
521
- OSSL_LIB_CTX *libctx, const char *propq);
522
- EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x);
523
- int PEM_write_bio_Parameters(BIO *bp, const EVP_PKEY *x);
524
-
525
- EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length);
526
- EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length);
527
- EVP_PKEY *b2i_PrivateKey_bio(BIO *in);
528
- EVP_PKEY *b2i_PublicKey_bio(BIO *in);
529
- int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk);
530
- int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk);
531
- EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
532
- EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,
533
- OSSL_LIB_CTX *libctx, const char *propq);
534
- int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel,
535
- pem_password_cb *cb, void *u);
536
- int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel,
537
- pem_password_cb *cb, void *u,
538
- OSSL_LIB_CTX *libctx, const char *propq);
539
-
540
- # ifdef __cplusplus
541
- }
542
- # endif
543
- #endif
1
+ /*
2
+ * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
5
+ * this file except in compliance with the License. You can obtain a copy
6
+ * in the file LICENSE in the source distribution or at
7
+ * https://www.openssl.org/source/license.html
8
+ */
9
+
10
+ #ifndef OPENSSL_PEM_H
11
+ # define OPENSSL_PEM_H
12
+ # pragma once
13
+
14
+ # include <openssl/macros.h>
15
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
16
+ # define HEADER_PEM_H
17
+ # endif
18
+
19
+ # include <openssl/e_os2.h>
20
+ # include <openssl/bio.h>
21
+ # include <openssl/safestack.h>
22
+ # include <openssl/evp.h>
23
+ # include <openssl/x509.h>
24
+ # include <openssl/pemerr.h>
25
+ # ifndef OPENSSL_NO_STDIO
26
+ # include <stdio.h>
27
+ # endif
28
+
29
+ #ifdef __cplusplus
30
+ extern "C" {
31
+ #endif
32
+
33
+ # define PEM_BUFSIZE 1024
34
+
35
+ # define PEM_STRING_X509_OLD "X509 CERTIFICATE"
36
+ # define PEM_STRING_X509 "CERTIFICATE"
37
+ # define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE"
38
+ # define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST"
39
+ # define PEM_STRING_X509_REQ "CERTIFICATE REQUEST"
40
+ # define PEM_STRING_X509_CRL "X509 CRL"
41
+ # define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY"
42
+ # define PEM_STRING_PUBLIC "PUBLIC KEY"
43
+ # define PEM_STRING_RSA "RSA PRIVATE KEY"
44
+ # define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY"
45
+ # define PEM_STRING_DSA "DSA PRIVATE KEY"
46
+ # define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY"
47
+ # define PEM_STRING_PKCS7 "PKCS7"
48
+ # define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA"
49
+ # define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY"
50
+ # define PEM_STRING_PKCS8INF "PRIVATE KEY"
51
+ # define PEM_STRING_DHPARAMS "DH PARAMETERS"
52
+ # define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS"
53
+ # define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS"
54
+ # define PEM_STRING_DSAPARAMS "DSA PARAMETERS"
55
+ # define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY"
56
+ # define PEM_STRING_ECPARAMETERS "EC PARAMETERS"
57
+ # define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY"
58
+ # define PEM_STRING_PARAMETERS "PARAMETERS"
59
+ # define PEM_STRING_CMS "CMS"
60
+ # define PEM_STRING_SM2PARAMETERS "SM2 PARAMETERS"
61
+ # define PEM_STRING_ACERT "ATTRIBUTE CERTIFICATE"
62
+
63
+ # define PEM_TYPE_ENCRYPTED 10
64
+ # define PEM_TYPE_MIC_ONLY 20
65
+ # define PEM_TYPE_MIC_CLEAR 30
66
+ # define PEM_TYPE_CLEAR 40
67
+
68
+ /*
69
+ * These macros make the PEM_read/PEM_write functions easier to maintain and
70
+ * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or
71
+ * IMPLEMENT_PEM_rw_cb(...)
72
+ */
73
+
74
+ # define PEM_read_cb_fnsig(name, type, INTYPE, readname) \
75
+ type *PEM_##readname##_##name(INTYPE *out, type **x, \
76
+ pem_password_cb *cb, void *u)
77
+ # define PEM_read_cb_ex_fnsig(name, type, INTYPE, readname) \
78
+ type *PEM_##readname##_##name##_ex(INTYPE *out, type **x, \
79
+ pem_password_cb *cb, void *u, \
80
+ OSSL_LIB_CTX *libctx, \
81
+ const char *propq)
82
+
83
+ # define PEM_write_fnsig(name, type, OUTTYPE, writename) \
84
+ int PEM_##writename##_##name(OUTTYPE *out, const type *x)
85
+ # define PEM_write_cb_fnsig(name, type, OUTTYPE, writename) \
86
+ int PEM_##writename##_##name(OUTTYPE *out, const type *x, \
87
+ const EVP_CIPHER *enc, \
88
+ const unsigned char *kstr, int klen, \
89
+ pem_password_cb *cb, void *u)
90
+ # define PEM_write_ex_fnsig(name, type, OUTTYPE, writename) \
91
+ int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \
92
+ OSSL_LIB_CTX *libctx, \
93
+ const char *propq)
94
+ # define PEM_write_cb_ex_fnsig(name, type, OUTTYPE, writename) \
95
+ int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \
96
+ const EVP_CIPHER *enc, \
97
+ const unsigned char *kstr, int klen, \
98
+ pem_password_cb *cb, void *u, \
99
+ OSSL_LIB_CTX *libctx, \
100
+ const char *propq)
101
+
102
+ # ifdef OPENSSL_NO_STDIO
103
+
104
+ # define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/
105
+ # define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/
106
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
107
+ # define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/
108
+ # endif
109
+ # define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/
110
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
111
+ # define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/
112
+ # endif
113
+ # else
114
+
115
+ # define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
116
+ type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u) \
117
+ { \
118
+ return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str, fp, \
119
+ (void **)x, cb, u); \
120
+ }
121
+
122
+ # define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
123
+ PEM_write_fnsig(name, type, FILE, write) \
124
+ { \
125
+ return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \
126
+ x, NULL, NULL, 0, NULL, NULL); \
127
+ }
128
+
129
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
130
+ # define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \
131
+ IMPLEMENT_PEM_write_fp(name, type, str, asn1)
132
+ # endif
133
+
134
+ # define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
135
+ PEM_write_cb_fnsig(name, type, FILE, write) \
136
+ { \
137
+ return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \
138
+ x, enc, kstr, klen, cb, u); \
139
+ }
140
+
141
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
142
+ # define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
143
+ IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
144
+ # endif
145
+ # endif
146
+
147
+ # define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
148
+ type *PEM_read_bio_##name(BIO *bp, type **x, \
149
+ pem_password_cb *cb, void *u) \
150
+ { \
151
+ return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str, bp, \
152
+ (void **)x, cb, u); \
153
+ }
154
+
155
+ # define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
156
+ PEM_write_fnsig(name, type, BIO, write_bio) \
157
+ { \
158
+ return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \
159
+ x, NULL,NULL,0,NULL,NULL); \
160
+ }
161
+
162
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
163
+ # define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
164
+ IMPLEMENT_PEM_write_bio(name, type, str, asn1)
165
+ # endif
166
+
167
+ # define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
168
+ PEM_write_cb_fnsig(name, type, BIO, write_bio) \
169
+ { \
170
+ return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \
171
+ x, enc, kstr, klen, cb, u); \
172
+ }
173
+
174
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
175
+ # define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
176
+ IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
177
+ # endif
178
+
179
+ # define IMPLEMENT_PEM_write(name, type, str, asn1) \
180
+ IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
181
+ IMPLEMENT_PEM_write_fp(name, type, str, asn1)
182
+
183
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
184
+ # define IMPLEMENT_PEM_write_const(name, type, str, asn1) \
185
+ IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
186
+ IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
187
+ # endif
188
+
189
+ # define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \
190
+ IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
191
+ IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
192
+
193
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
194
+ # define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \
195
+ IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
196
+ IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
197
+ # endif
198
+
199
+ # define IMPLEMENT_PEM_read(name, type, str, asn1) \
200
+ IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
201
+ IMPLEMENT_PEM_read_fp(name, type, str, asn1)
202
+
203
+ # define IMPLEMENT_PEM_rw(name, type, str, asn1) \
204
+ IMPLEMENT_PEM_read(name, type, str, asn1) \
205
+ IMPLEMENT_PEM_write(name, type, str, asn1)
206
+
207
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
208
+ # define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \
209
+ IMPLEMENT_PEM_read(name, type, str, asn1) \
210
+ IMPLEMENT_PEM_write_const(name, type, str, asn1)
211
+ # endif
212
+
213
+ # define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \
214
+ IMPLEMENT_PEM_read(name, type, str, asn1) \
215
+ IMPLEMENT_PEM_write_cb(name, type, str, asn1)
216
+
217
+ /* These are the same except they are for the declarations */
218
+
219
+ /*
220
+ * The mysterious 'extern' that's passed to some macros is innocuous,
221
+ * and is there to quiet pre-C99 compilers that may complain about empty
222
+ * arguments in macro calls.
223
+ */
224
+ # if defined(OPENSSL_NO_STDIO)
225
+
226
+ # define DECLARE_PEM_read_fp_attr(attr, name, type) /**/
227
+ # define DECLARE_PEM_read_fp_ex_attr(attr, name, type) /**/
228
+ # define DECLARE_PEM_write_fp_attr(attr, name, type) /**/
229
+ # define DECLARE_PEM_write_fp_ex_attr(attr, name, type) /**/
230
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
231
+ # define DECLARE_PEM_write_fp_const_attr(attr, name, type) /**/
232
+ # endif
233
+ # define DECLARE_PEM_write_cb_fp_attr(attr, name, type) /**/
234
+ # define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) /**/
235
+
236
+ # else
237
+
238
+ # define DECLARE_PEM_read_fp_attr(attr, name, type) \
239
+ attr PEM_read_cb_fnsig(name, type, FILE, read);
240
+ # define DECLARE_PEM_read_fp_ex_attr(attr, name, type) \
241
+ attr PEM_read_cb_fnsig(name, type, FILE, read); \
242
+ attr PEM_read_cb_ex_fnsig(name, type, FILE, read);
243
+
244
+ # define DECLARE_PEM_write_fp_attr(attr, name, type) \
245
+ attr PEM_write_fnsig(name, type, FILE, write);
246
+ # define DECLARE_PEM_write_fp_ex_attr(attr, name, type) \
247
+ attr PEM_write_fnsig(name, type, FILE, write); \
248
+ attr PEM_write_ex_fnsig(name, type, FILE, write);
249
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
250
+ # define DECLARE_PEM_write_fp_const_attr(attr, name, type) \
251
+ attr PEM_write_fnsig(name, type, FILE, write);
252
+ # endif
253
+ # define DECLARE_PEM_write_cb_fp_attr(attr, name, type) \
254
+ attr PEM_write_cb_fnsig(name, type, FILE, write);
255
+ # define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) \
256
+ attr PEM_write_cb_fnsig(name, type, FILE, write); \
257
+ attr PEM_write_cb_ex_fnsig(name, type, FILE, write);
258
+
259
+ # endif
260
+
261
+ # define DECLARE_PEM_read_fp(name, type) \
262
+ DECLARE_PEM_read_fp_attr(extern, name, type)
263
+ # define DECLARE_PEM_write_fp(name, type) \
264
+ DECLARE_PEM_write_fp_attr(extern, name, type)
265
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
266
+ # define DECLARE_PEM_write_fp_const(name, type) \
267
+ DECLARE_PEM_write_fp_const_attr(extern, name, type)
268
+ # endif
269
+ # define DECLARE_PEM_write_cb_fp(name, type) \
270
+ DECLARE_PEM_write_cb_fp_attr(extern, name, type)
271
+
272
+ # define DECLARE_PEM_read_bio_attr(attr, name, type) \
273
+ attr PEM_read_cb_fnsig(name, type, BIO, read_bio);
274
+ # define DECLARE_PEM_read_bio_ex_attr(attr, name, type) \
275
+ attr PEM_read_cb_fnsig(name, type, BIO, read_bio); \
276
+ attr PEM_read_cb_ex_fnsig(name, type, BIO, read_bio);
277
+ # define DECLARE_PEM_read_bio(name, type) \
278
+ DECLARE_PEM_read_bio_attr(extern, name, type)
279
+ # define DECLARE_PEM_read_bio_ex(name, type) \
280
+ DECLARE_PEM_read_bio_ex_attr(extern, name, type)
281
+
282
+ # define DECLARE_PEM_write_bio_attr(attr, name, type) \
283
+ attr PEM_write_fnsig(name, type, BIO, write_bio);
284
+ # define DECLARE_PEM_write_bio_ex_attr(attr, name, type) \
285
+ attr PEM_write_fnsig(name, type, BIO, write_bio); \
286
+ attr PEM_write_ex_fnsig(name, type, BIO, write_bio);
287
+ # define DECLARE_PEM_write_bio(name, type) \
288
+ DECLARE_PEM_write_bio_attr(extern, name, type)
289
+ # define DECLARE_PEM_write_bio_ex(name, type) \
290
+ DECLARE_PEM_write_bio_ex_attr(extern, name, type)
291
+
292
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
293
+ # define DECLARE_PEM_write_bio_const_attr(attr, name, type) \
294
+ attr PEM_write_fnsig(name, type, BIO, write_bio);
295
+ # define DECLARE_PEM_write_bio_const(name, type) \
296
+ DECLARE_PEM_write_bio_const_attr(extern, name, type)
297
+ # endif
298
+
299
+ # define DECLARE_PEM_write_cb_bio_attr(attr, name, type) \
300
+ attr PEM_write_cb_fnsig(name, type, BIO, write_bio);
301
+ # define DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \
302
+ attr PEM_write_cb_fnsig(name, type, BIO, write_bio); \
303
+ attr PEM_write_cb_ex_fnsig(name, type, BIO, write_bio);
304
+ # define DECLARE_PEM_write_cb_bio(name, type) \
305
+ DECLARE_PEM_write_cb_bio_attr(extern, name, type)
306
+ # define DECLARE_PEM_write_cb_ex_bio(name, type) \
307
+ DECLARE_PEM_write_cb_bio_ex_attr(extern, name, type)
308
+
309
+ # define DECLARE_PEM_write_attr(attr, name, type) \
310
+ DECLARE_PEM_write_bio_attr(attr, name, type) \
311
+ DECLARE_PEM_write_fp_attr(attr, name, type)
312
+ # define DECLARE_PEM_write_ex_attr(attr, name, type) \
313
+ DECLARE_PEM_write_bio_ex_attr(attr, name, type) \
314
+ DECLARE_PEM_write_fp_ex_attr(attr, name, type)
315
+ # define DECLARE_PEM_write(name, type) \
316
+ DECLARE_PEM_write_attr(extern, name, type)
317
+ # define DECLARE_PEM_write_ex(name, type) \
318
+ DECLARE_PEM_write_ex_attr(extern, name, type)
319
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
320
+ # define DECLARE_PEM_write_const_attr(attr, name, type) \
321
+ DECLARE_PEM_write_bio_const_attr(attr, name, type) \
322
+ DECLARE_PEM_write_fp_const_attr(attr, name, type)
323
+ # define DECLARE_PEM_write_const(name, type) \
324
+ DECLARE_PEM_write_const_attr(extern, name, type)
325
+ # endif
326
+ # define DECLARE_PEM_write_cb_attr(attr, name, type) \
327
+ DECLARE_PEM_write_cb_bio_attr(attr, name, type) \
328
+ DECLARE_PEM_write_cb_fp_attr(attr, name, type)
329
+ # define DECLARE_PEM_write_cb_ex_attr(attr, name, type) \
330
+ DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \
331
+ DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type)
332
+ # define DECLARE_PEM_write_cb(name, type) \
333
+ DECLARE_PEM_write_cb_attr(extern, name, type)
334
+ # define DECLARE_PEM_write_cb_ex(name, type) \
335
+ DECLARE_PEM_write_cb_ex_attr(extern, name, type)
336
+ # define DECLARE_PEM_read_attr(attr, name, type) \
337
+ DECLARE_PEM_read_bio_attr(attr, name, type) \
338
+ DECLARE_PEM_read_fp_attr(attr, name, type)
339
+ # define DECLARE_PEM_read_ex_attr(attr, name, type) \
340
+ DECLARE_PEM_read_bio_ex_attr(attr, name, type) \
341
+ DECLARE_PEM_read_fp_ex_attr(attr, name, type)
342
+ # define DECLARE_PEM_read(name, type) \
343
+ DECLARE_PEM_read_attr(extern, name, type)
344
+ # define DECLARE_PEM_read_ex(name, type) \
345
+ DECLARE_PEM_read_ex_attr(extern, name, type)
346
+ # define DECLARE_PEM_rw_attr(attr, name, type) \
347
+ DECLARE_PEM_read_attr(attr, name, type) \
348
+ DECLARE_PEM_write_attr(attr, name, type)
349
+ # define DECLARE_PEM_rw_ex_attr(attr, name, type) \
350
+ DECLARE_PEM_read_ex_attr(attr, name, type) \
351
+ DECLARE_PEM_write_ex_attr(attr, name, type)
352
+ # define DECLARE_PEM_rw(name, type) \
353
+ DECLARE_PEM_rw_attr(extern, name, type)
354
+ # define DECLARE_PEM_rw_ex(name, type) \
355
+ DECLARE_PEM_rw_ex_attr(extern, name, type)
356
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
357
+ # define DECLARE_PEM_rw_const_attr(attr, name, type) \
358
+ DECLARE_PEM_read_attr(attr, name, type) \
359
+ DECLARE_PEM_write_const_attr(attr, name, type)
360
+ # define DECLARE_PEM_rw_const(name, type) \
361
+ DECLARE_PEM_rw_const_attr(extern, name, type)
362
+ # endif
363
+ # define DECLARE_PEM_rw_cb_attr(attr, name, type) \
364
+ DECLARE_PEM_read_attr(attr, name, type) \
365
+ DECLARE_PEM_write_cb_attr(attr, name, type)
366
+ # define DECLARE_PEM_rw_cb_ex_attr(attr, name, type) \
367
+ DECLARE_PEM_read_ex_attr(attr, name, type) \
368
+ DECLARE_PEM_write_cb_ex_attr(attr, name, type)
369
+ # define DECLARE_PEM_rw_cb(name, type) \
370
+ DECLARE_PEM_rw_cb_attr(extern, name, type)
371
+ # define DECLARE_PEM_rw_cb_ex(name, type) \
372
+ DECLARE_PEM_rw_cb_ex_attr(extern, name, type)
373
+
374
+ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher);
375
+ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len,
376
+ pem_password_cb *callback, void *u);
377
+
378
+ int PEM_read_bio(BIO *bp, char **name, char **header,
379
+ unsigned char **data, long *len);
380
+ # define PEM_FLAG_SECURE 0x1
381
+ # define PEM_FLAG_EAY_COMPATIBLE 0x2
382
+ # define PEM_FLAG_ONLY_B64 0x4
383
+ int PEM_read_bio_ex(BIO *bp, char **name, char **header,
384
+ unsigned char **data, long *len, unsigned int flags);
385
+ int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm,
386
+ const char *name, BIO *bp, pem_password_cb *cb,
387
+ void *u);
388
+ int PEM_write_bio(BIO *bp, const char *name, const char *hdr,
389
+ const unsigned char *data, long len);
390
+ int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,
391
+ const char *name, BIO *bp, pem_password_cb *cb,
392
+ void *u);
393
+ void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x,
394
+ pem_password_cb *cb, void *u);
395
+ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
396
+ const void *x, const EVP_CIPHER *enc,
397
+ const unsigned char *kstr, int klen,
398
+ pem_password_cb *cb, void *u);
399
+
400
+ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk,
401
+ pem_password_cb *cb, void *u);
402
+ STACK_OF(X509_INFO)
403
+ *PEM_X509_INFO_read_bio_ex(BIO *bp, STACK_OF(X509_INFO) *sk,
404
+ pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx,
405
+ const char *propq);
406
+
407
+ int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER *enc,
408
+ const unsigned char *kstr, int klen,
409
+ pem_password_cb *cd, void *u);
410
+
411
+ #ifndef OPENSSL_NO_STDIO
412
+ int PEM_read(FILE *fp, char **name, char **header,
413
+ unsigned char **data, long *len);
414
+ int PEM_write(FILE *fp, const char *name, const char *hdr,
415
+ const unsigned char *data, long len);
416
+ void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,
417
+ pem_password_cb *cb, void *u);
418
+ int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,
419
+ const void *x, const EVP_CIPHER *enc,
420
+ const unsigned char *kstr, int klen,
421
+ pem_password_cb *callback, void *u);
422
+ STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
423
+ pem_password_cb *cb, void *u);
424
+ STACK_OF(X509_INFO)
425
+ *PEM_X509_INFO_read_ex(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb,
426
+ void *u, OSSL_LIB_CTX *libctx, const char *propq);
427
+ #endif
428
+
429
+ int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type);
430
+ int PEM_SignUpdate(EVP_MD_CTX *ctx, const unsigned char *d, unsigned int cnt);
431
+ int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
432
+ unsigned int *siglen, EVP_PKEY *pkey);
433
+
434
+ /* The default pem_password_cb that's used internally */
435
+ int PEM_def_callback(char *buf, int num, int rwflag, void *userdata);
436
+ void PEM_proc_type(char *buf, int type);
437
+ void PEM_dek_info(char *buf, const char *type, int len, const char *str);
438
+
439
+ # include <openssl/symhacks.h>
440
+
441
+ DECLARE_PEM_rw(X509, X509)
442
+ DECLARE_PEM_rw(X509_AUX, X509)
443
+ DECLARE_PEM_rw(X509_REQ, X509_REQ)
444
+ DECLARE_PEM_write(X509_REQ_NEW, X509_REQ)
445
+ DECLARE_PEM_rw(X509_CRL, X509_CRL)
446
+ DECLARE_PEM_rw(X509_PUBKEY, X509_PUBKEY)
447
+ DECLARE_PEM_rw(PKCS7, PKCS7)
448
+ DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE)
449
+ DECLARE_PEM_rw(PKCS8, X509_SIG)
450
+ DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO)
451
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
452
+ DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA)
453
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSAPublicKey, RSA)
454
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSA_PUBKEY, RSA)
455
+ # endif
456
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
457
+ # ifndef OPENSSL_NO_DSA
458
+ DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, DSAPrivateKey, DSA)
459
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSA_PUBKEY, DSA)
460
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSAparams, DSA)
461
+ # endif
462
+ # endif
463
+
464
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
465
+ # ifndef OPENSSL_NO_EC
466
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters, EC_GROUP)
467
+ DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, ECPrivateKey, EC_KEY)
468
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY)
469
+ # endif
470
+ # endif
471
+
472
+ # ifndef OPENSSL_NO_DH
473
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
474
+ DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH)
475
+ DECLARE_PEM_write_attr(OSSL_DEPRECATEDIN_3_0, DHxparams, DH)
476
+ # endif
477
+ # endif
478
+ DECLARE_PEM_rw_cb_ex(PrivateKey, EVP_PKEY)
479
+ DECLARE_PEM_rw_ex(PUBKEY, EVP_PKEY)
480
+
481
+ int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x,
482
+ const EVP_CIPHER *enc,
483
+ const unsigned char *kstr, int klen,
484
+ pem_password_cb *cb, void *u);
485
+
486
+ /* Why do these take a signed char *kstr? */
487
+ int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x, int nid,
488
+ const char *kstr, int klen,
489
+ pem_password_cb *cb, void *u);
490
+ int PEM_write_bio_PKCS8PrivateKey(BIO *, const EVP_PKEY *, const EVP_CIPHER *,
491
+ const char *kstr, int klen,
492
+ pem_password_cb *cb, void *u);
493
+ int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc,
494
+ const char *kstr, int klen,
495
+ pem_password_cb *cb, void *u);
496
+ int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid,
497
+ const char *kstr, int klen,
498
+ pem_password_cb *cb, void *u);
499
+ EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
500
+ void *u);
501
+
502
+ # ifndef OPENSSL_NO_STDIO
503
+ int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc,
504
+ const char *kstr, int klen,
505
+ pem_password_cb *cb, void *u);
506
+ int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid,
507
+ const char *kstr, int klen,
508
+ pem_password_cb *cb, void *u);
509
+ int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int nid,
510
+ const char *kstr, int klen,
511
+ pem_password_cb *cb, void *u);
512
+
513
+ EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,
514
+ void *u);
515
+
516
+ int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc,
517
+ const char *kstr, int klen,
518
+ pem_password_cb *cd, void *u);
519
+ # endif
520
+ EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x,
521
+ OSSL_LIB_CTX *libctx, const char *propq);
522
+ EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x);
523
+ int PEM_write_bio_Parameters(BIO *bp, const EVP_PKEY *x);
524
+
525
+ EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length);
526
+ EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length);
527
+ EVP_PKEY *b2i_PrivateKey_bio(BIO *in);
528
+ EVP_PKEY *b2i_PublicKey_bio(BIO *in);
529
+ int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk);
530
+ int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk);
531
+ EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
532
+ EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,
533
+ OSSL_LIB_CTX *libctx, const char *propq);
534
+ int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel,
535
+ pem_password_cb *cb, void *u);
536
+ int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel,
537
+ pem_password_cb *cb, void *u,
538
+ OSSL_LIB_CTX *libctx, const char *propq);
539
+
540
+ # ifdef __cplusplus
541
+ }
542
+ # endif
543
+ #endif