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,377 +1,377 @@
1
- /*
2
- * Copyright 2016-2023 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_STORE_H
11
- # define OPENSSL_STORE_H
12
- # pragma once
13
-
14
- # include <openssl/macros.h>
15
- # ifndef OPENSSL_NO_DEPRECATED_3_0
16
- # define HEADER_OSSL_STORE_H
17
- # endif
18
-
19
- # include <stdarg.h>
20
- # include <openssl/types.h>
21
- # include <openssl/pem.h>
22
- # include <openssl/storeerr.h>
23
-
24
- # ifdef __cplusplus
25
- extern "C" {
26
- # endif
27
-
28
- /*-
29
- * The main OSSL_STORE functions.
30
- * ------------------------------
31
- *
32
- * These allow applications to open a channel to a resource with supported
33
- * data (keys, certs, crls, ...), read the data a piece at a time and decide
34
- * what to do with it, and finally close.
35
- */
36
-
37
- typedef struct ossl_store_ctx_st OSSL_STORE_CTX;
38
-
39
- /*
40
- * Typedef for the OSSL_STORE_INFO post processing callback. This can be used
41
- * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning
42
- * NULL).
43
- */
44
- typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *,
45
- void *);
46
-
47
- /*
48
- * Open a channel given a URI. The given UI method will be used any time the
49
- * loader needs extra input, for example when a password or pin is needed, and
50
- * will be passed the same user data every time it's needed in this context.
51
- *
52
- * Returns a context reference which represents the channel to communicate
53
- * through.
54
- */
55
- OSSL_STORE_CTX *
56
- OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, void *ui_data,
57
- OSSL_STORE_post_process_info_fn post_process,
58
- void *post_process_data);
59
- OSSL_STORE_CTX *
60
- OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
61
- const UI_METHOD *ui_method, void *ui_data,
62
- const OSSL_PARAM params[],
63
- OSSL_STORE_post_process_info_fn post_process,
64
- void *post_process_data);
65
-
66
- /*
67
- * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be
68
- * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to
69
- * determine which loader is used), except for common commands (see below).
70
- * Each command takes different arguments.
71
- */
72
- # ifndef OPENSSL_NO_DEPRECATED_3_0
73
- OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd,
74
- ... /* args */);
75
- OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd,
76
- va_list args);
77
- # endif
78
-
79
- # ifndef OPENSSL_NO_DEPRECATED_3_0
80
-
81
- /*
82
- * Common ctrl commands that different loaders may choose to support.
83
- */
84
- /* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */
85
- # define OSSL_STORE_C_USE_SECMEM 1
86
- /* Where custom commands start */
87
- # define OSSL_STORE_C_CUSTOM_START 100
88
-
89
- # endif
90
-
91
- /*
92
- * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE
93
- * functionality, given a context.
94
- * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be
95
- * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ...
96
- * NULL is returned on error, which may include that the data found at the URI
97
- * can't be figured out for certain or is ambiguous.
98
- */
99
- OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx);
100
-
101
- /*
102
- * Deletes the object in the store by URI.
103
- * Returns 1 on success, 0 otherwise.
104
- */
105
- int OSSL_STORE_delete(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
106
- const UI_METHOD *ui_method, void *ui_data,
107
- const OSSL_PARAM params[]);
108
-
109
- /*
110
- * Check if end of data (end of file) is reached
111
- * Returns 1 on end, 0 otherwise.
112
- */
113
- int OSSL_STORE_eof(OSSL_STORE_CTX *ctx);
114
-
115
- /*
116
- * Check if an error occurred
117
- * Returns 1 if it did, 0 otherwise.
118
- */
119
- int OSSL_STORE_error(OSSL_STORE_CTX *ctx);
120
-
121
- /*
122
- * Close the channel
123
- * Returns 1 on success, 0 on error.
124
- */
125
- int OSSL_STORE_close(OSSL_STORE_CTX *ctx);
126
-
127
- /*
128
- * Attach to a BIO. This works like OSSL_STORE_open() except it takes a
129
- * BIO instead of a uri, along with a scheme to use when reading.
130
- * The given UI method will be used any time the loader needs extra input,
131
- * for example when a password or pin is needed, and will be passed the
132
- * same user data every time it's needed in this context.
133
- *
134
- * Returns a context reference which represents the channel to communicate
135
- * through.
136
- *
137
- * Note that this function is considered unsafe, all depending on what the
138
- * BIO actually reads.
139
- */
140
- OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bio, const char *scheme,
141
- OSSL_LIB_CTX *libctx, const char *propq,
142
- const UI_METHOD *ui_method, void *ui_data,
143
- const OSSL_PARAM params[],
144
- OSSL_STORE_post_process_info_fn post_process,
145
- void *post_process_data);
146
-
147
- /*-
148
- * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs
149
- * ---------------------------------------------------------------
150
- */
151
-
152
- /*
153
- * Types of data that can be ossl_stored in a OSSL_STORE_INFO.
154
- * OSSL_STORE_INFO_NAME is typically found when getting a listing of
155
- * available "files" / "tokens" / what have you.
156
- */
157
- # define OSSL_STORE_INFO_NAME 1 /* char * */
158
- # define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */
159
- # define OSSL_STORE_INFO_PUBKEY 3 /* EVP_PKEY * */
160
- # define OSSL_STORE_INFO_PKEY 4 /* EVP_PKEY * */
161
- # define OSSL_STORE_INFO_CERT 5 /* X509 * */
162
- # define OSSL_STORE_INFO_CRL 6 /* X509_CRL * */
163
-
164
- /*
165
- * Functions to generate OSSL_STORE_INFOs, one function for each type we
166
- * support having in them, as well as a generic constructor.
167
- *
168
- * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO
169
- * and will therefore be freed when the OSSL_STORE_INFO is freed.
170
- */
171
- OSSL_STORE_INFO *OSSL_STORE_INFO_new(int type, void *data);
172
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name);
173
- int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc);
174
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params);
175
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_PUBKEY(EVP_PKEY *pubkey);
176
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey);
177
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509);
178
- OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl);
179
-
180
- /*
181
- * Functions to try to extract data from a OSSL_STORE_INFO.
182
- */
183
- int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info);
184
- void *OSSL_STORE_INFO_get0_data(int type, const OSSL_STORE_INFO *info);
185
- const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info);
186
- char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info);
187
- const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info);
188
- char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info);
189
- EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info);
190
- EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info);
191
- EVP_PKEY *OSSL_STORE_INFO_get0_PUBKEY(const OSSL_STORE_INFO *info);
192
- EVP_PKEY *OSSL_STORE_INFO_get1_PUBKEY(const OSSL_STORE_INFO *info);
193
- EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info);
194
- EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info);
195
- X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info);
196
- X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info);
197
- X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info);
198
- X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info);
199
-
200
- const char *OSSL_STORE_INFO_type_string(int type);
201
-
202
- /*
203
- * Free the OSSL_STORE_INFO
204
- */
205
- void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info);
206
-
207
-
208
- /*-
209
- * Functions to construct a search URI from a base URI and search criteria
210
- * -----------------------------------------------------------------------
211
- */
212
-
213
- /* OSSL_STORE search types */
214
- # define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */
215
- # define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2
216
- # define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3
217
- # define OSSL_STORE_SEARCH_BY_ALIAS 4
218
-
219
- /* To check what search types the scheme handler supports */
220
- int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type);
221
-
222
- /* Search term constructors */
223
- /*
224
- * The input is considered to be owned by the caller, and must therefore
225
- * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH
226
- */
227
- OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name);
228
- OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name,
229
- const ASN1_INTEGER
230
- *serial);
231
- OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest,
232
- const unsigned char
233
- *bytes, size_t len);
234
- OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias);
235
-
236
- /* Search term destructor */
237
- void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search);
238
-
239
- /* Search term accessors */
240
- int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion);
241
- X509_NAME *OSSL_STORE_SEARCH_get0_name(const OSSL_STORE_SEARCH *criterion);
242
- const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH
243
- *criterion);
244
- const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH
245
- *criterion, size_t *length);
246
- const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion);
247
- const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion);
248
-
249
- /*
250
- * Add search criterion and expected return type (which can be unspecified)
251
- * to the loading channel. This MUST happen before the first OSSL_STORE_load().
252
- */
253
- int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type);
254
- int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search);
255
-
256
-
257
- /*-
258
- * Function to fetch a loader and extract data from it
259
- * ---------------------------------------------------
260
- */
261
-
262
- typedef struct ossl_store_loader_st OSSL_STORE_LOADER;
263
-
264
- OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx,
265
- const char *scheme,
266
- const char *properties);
267
- int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader);
268
- void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader);
269
- const OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER *
270
- loader);
271
- const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader);
272
- const char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader);
273
- int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader,
274
- const char *scheme);
275
- void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx,
276
- void (*fn)(OSSL_STORE_LOADER *loader,
277
- void *arg),
278
- void *arg);
279
- int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader,
280
- void (*fn)(const char *name, void *data),
281
- void *data);
282
-
283
- /*-
284
- * Function to register a loader for the given URI scheme.
285
- * -------------------------------------------------------
286
- *
287
- * The loader receives all the main components of an URI except for the
288
- * scheme.
289
- */
290
-
291
- # ifndef OPENSSL_NO_DEPRECATED_3_0
292
-
293
- /* struct ossl_store_loader_ctx_st is defined differently by each loader */
294
- typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX;
295
- typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)
296
- (const OSSL_STORE_LOADER *loader, const char *uri,
297
- const UI_METHOD *ui_method, void *ui_data);
298
- typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_ex_fn)
299
- (const OSSL_STORE_LOADER *loader,
300
- const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
301
- const UI_METHOD *ui_method, void *ui_data);
302
-
303
- typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_attach_fn)
304
- (const OSSL_STORE_LOADER *loader, BIO *bio,
305
- OSSL_LIB_CTX *libctx, const char *propq,
306
- const UI_METHOD *ui_method, void *ui_data);
307
- typedef int (*OSSL_STORE_ctrl_fn)
308
- (OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args);
309
- typedef int (*OSSL_STORE_expect_fn)
310
- (OSSL_STORE_LOADER_CTX *ctx, int expected);
311
- typedef int (*OSSL_STORE_find_fn)
312
- (OSSL_STORE_LOADER_CTX *ctx, const OSSL_STORE_SEARCH *criteria);
313
- typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)
314
- (OSSL_STORE_LOADER_CTX *ctx, const UI_METHOD *ui_method, void *ui_data);
315
- typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx);
316
- typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx);
317
- typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx);
318
-
319
- # endif
320
- # ifndef OPENSSL_NO_DEPRECATED_3_0
321
- OSSL_DEPRECATEDIN_3_0
322
- OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme);
323
- OSSL_DEPRECATEDIN_3_0
324
- int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader,
325
- OSSL_STORE_open_fn open_function);
326
- OSSL_DEPRECATEDIN_3_0
327
- int OSSL_STORE_LOADER_set_open_ex(OSSL_STORE_LOADER *loader,
328
- OSSL_STORE_open_ex_fn open_ex_function);
329
- OSSL_DEPRECATEDIN_3_0
330
- int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader,
331
- OSSL_STORE_attach_fn attach_function);
332
- OSSL_DEPRECATEDIN_3_0
333
- int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader,
334
- OSSL_STORE_ctrl_fn ctrl_function);
335
- OSSL_DEPRECATEDIN_3_0
336
- int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,
337
- OSSL_STORE_expect_fn expect_function);
338
- OSSL_DEPRECATEDIN_3_0
339
- int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,
340
- OSSL_STORE_find_fn find_function);
341
- OSSL_DEPRECATEDIN_3_0
342
- int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader,
343
- OSSL_STORE_load_fn load_function);
344
- OSSL_DEPRECATEDIN_3_0
345
- int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader,
346
- OSSL_STORE_eof_fn eof_function);
347
- OSSL_DEPRECATEDIN_3_0
348
- int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader,
349
- OSSL_STORE_error_fn error_function);
350
- OSSL_DEPRECATEDIN_3_0
351
- int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader,
352
- OSSL_STORE_close_fn close_function);
353
- OSSL_DEPRECATEDIN_3_0
354
- const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader);
355
- OSSL_DEPRECATEDIN_3_0
356
- const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader);
357
- OSSL_DEPRECATEDIN_3_0
358
- int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader);
359
- OSSL_DEPRECATEDIN_3_0
360
- OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme);
361
- # endif
362
-
363
- /*-
364
- * Functions to list STORE loaders
365
- * -------------------------------
366
- */
367
- # ifndef OPENSSL_NO_DEPRECATED_3_0
368
- OSSL_DEPRECATEDIN_3_0
369
- int OSSL_STORE_do_all_loaders(void (*do_function)(const OSSL_STORE_LOADER *loader,
370
- void *do_arg),
371
- void *do_arg);
372
- # endif
373
-
374
- # ifdef __cplusplus
375
- }
376
- # endif
377
- #endif
1
+ /*
2
+ * Copyright 2016-2023 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_STORE_H
11
+ # define OPENSSL_STORE_H
12
+ # pragma once
13
+
14
+ # include <openssl/macros.h>
15
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
16
+ # define HEADER_OSSL_STORE_H
17
+ # endif
18
+
19
+ # include <stdarg.h>
20
+ # include <openssl/types.h>
21
+ # include <openssl/pem.h>
22
+ # include <openssl/storeerr.h>
23
+
24
+ # ifdef __cplusplus
25
+ extern "C" {
26
+ # endif
27
+
28
+ /*-
29
+ * The main OSSL_STORE functions.
30
+ * ------------------------------
31
+ *
32
+ * These allow applications to open a channel to a resource with supported
33
+ * data (keys, certs, crls, ...), read the data a piece at a time and decide
34
+ * what to do with it, and finally close.
35
+ */
36
+
37
+ typedef struct ossl_store_ctx_st OSSL_STORE_CTX;
38
+
39
+ /*
40
+ * Typedef for the OSSL_STORE_INFO post processing callback. This can be used
41
+ * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning
42
+ * NULL).
43
+ */
44
+ typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *,
45
+ void *);
46
+
47
+ /*
48
+ * Open a channel given a URI. The given UI method will be used any time the
49
+ * loader needs extra input, for example when a password or pin is needed, and
50
+ * will be passed the same user data every time it's needed in this context.
51
+ *
52
+ * Returns a context reference which represents the channel to communicate
53
+ * through.
54
+ */
55
+ OSSL_STORE_CTX *
56
+ OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, void *ui_data,
57
+ OSSL_STORE_post_process_info_fn post_process,
58
+ void *post_process_data);
59
+ OSSL_STORE_CTX *
60
+ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
61
+ const UI_METHOD *ui_method, void *ui_data,
62
+ const OSSL_PARAM params[],
63
+ OSSL_STORE_post_process_info_fn post_process,
64
+ void *post_process_data);
65
+
66
+ /*
67
+ * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be
68
+ * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to
69
+ * determine which loader is used), except for common commands (see below).
70
+ * Each command takes different arguments.
71
+ */
72
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
73
+ OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd,
74
+ ... /* args */);
75
+ OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd,
76
+ va_list args);
77
+ # endif
78
+
79
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
80
+
81
+ /*
82
+ * Common ctrl commands that different loaders may choose to support.
83
+ */
84
+ /* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */
85
+ # define OSSL_STORE_C_USE_SECMEM 1
86
+ /* Where custom commands start */
87
+ # define OSSL_STORE_C_CUSTOM_START 100
88
+
89
+ # endif
90
+
91
+ /*
92
+ * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE
93
+ * functionality, given a context.
94
+ * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be
95
+ * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ...
96
+ * NULL is returned on error, which may include that the data found at the URI
97
+ * can't be figured out for certain or is ambiguous.
98
+ */
99
+ OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx);
100
+
101
+ /*
102
+ * Deletes the object in the store by URI.
103
+ * Returns 1 on success, 0 otherwise.
104
+ */
105
+ int OSSL_STORE_delete(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
106
+ const UI_METHOD *ui_method, void *ui_data,
107
+ const OSSL_PARAM params[]);
108
+
109
+ /*
110
+ * Check if end of data (end of file) is reached
111
+ * Returns 1 on end, 0 otherwise.
112
+ */
113
+ int OSSL_STORE_eof(OSSL_STORE_CTX *ctx);
114
+
115
+ /*
116
+ * Check if an error occurred
117
+ * Returns 1 if it did, 0 otherwise.
118
+ */
119
+ int OSSL_STORE_error(OSSL_STORE_CTX *ctx);
120
+
121
+ /*
122
+ * Close the channel
123
+ * Returns 1 on success, 0 on error.
124
+ */
125
+ int OSSL_STORE_close(OSSL_STORE_CTX *ctx);
126
+
127
+ /*
128
+ * Attach to a BIO. This works like OSSL_STORE_open() except it takes a
129
+ * BIO instead of a uri, along with a scheme to use when reading.
130
+ * The given UI method will be used any time the loader needs extra input,
131
+ * for example when a password or pin is needed, and will be passed the
132
+ * same user data every time it's needed in this context.
133
+ *
134
+ * Returns a context reference which represents the channel to communicate
135
+ * through.
136
+ *
137
+ * Note that this function is considered unsafe, all depending on what the
138
+ * BIO actually reads.
139
+ */
140
+ OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bio, const char *scheme,
141
+ OSSL_LIB_CTX *libctx, const char *propq,
142
+ const UI_METHOD *ui_method, void *ui_data,
143
+ const OSSL_PARAM params[],
144
+ OSSL_STORE_post_process_info_fn post_process,
145
+ void *post_process_data);
146
+
147
+ /*-
148
+ * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs
149
+ * ---------------------------------------------------------------
150
+ */
151
+
152
+ /*
153
+ * Types of data that can be ossl_stored in a OSSL_STORE_INFO.
154
+ * OSSL_STORE_INFO_NAME is typically found when getting a listing of
155
+ * available "files" / "tokens" / what have you.
156
+ */
157
+ # define OSSL_STORE_INFO_NAME 1 /* char * */
158
+ # define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */
159
+ # define OSSL_STORE_INFO_PUBKEY 3 /* EVP_PKEY * */
160
+ # define OSSL_STORE_INFO_PKEY 4 /* EVP_PKEY * */
161
+ # define OSSL_STORE_INFO_CERT 5 /* X509 * */
162
+ # define OSSL_STORE_INFO_CRL 6 /* X509_CRL * */
163
+
164
+ /*
165
+ * Functions to generate OSSL_STORE_INFOs, one function for each type we
166
+ * support having in them, as well as a generic constructor.
167
+ *
168
+ * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO
169
+ * and will therefore be freed when the OSSL_STORE_INFO is freed.
170
+ */
171
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new(int type, void *data);
172
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name);
173
+ int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc);
174
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params);
175
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_PUBKEY(EVP_PKEY *pubkey);
176
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey);
177
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509);
178
+ OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl);
179
+
180
+ /*
181
+ * Functions to try to extract data from a OSSL_STORE_INFO.
182
+ */
183
+ int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info);
184
+ void *OSSL_STORE_INFO_get0_data(int type, const OSSL_STORE_INFO *info);
185
+ const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info);
186
+ char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info);
187
+ const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info);
188
+ char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info);
189
+ EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info);
190
+ EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info);
191
+ EVP_PKEY *OSSL_STORE_INFO_get0_PUBKEY(const OSSL_STORE_INFO *info);
192
+ EVP_PKEY *OSSL_STORE_INFO_get1_PUBKEY(const OSSL_STORE_INFO *info);
193
+ EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info);
194
+ EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info);
195
+ X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info);
196
+ X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info);
197
+ X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info);
198
+ X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info);
199
+
200
+ const char *OSSL_STORE_INFO_type_string(int type);
201
+
202
+ /*
203
+ * Free the OSSL_STORE_INFO
204
+ */
205
+ void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info);
206
+
207
+
208
+ /*-
209
+ * Functions to construct a search URI from a base URI and search criteria
210
+ * -----------------------------------------------------------------------
211
+ */
212
+
213
+ /* OSSL_STORE search types */
214
+ # define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */
215
+ # define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2
216
+ # define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3
217
+ # define OSSL_STORE_SEARCH_BY_ALIAS 4
218
+
219
+ /* To check what search types the scheme handler supports */
220
+ int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type);
221
+
222
+ /* Search term constructors */
223
+ /*
224
+ * The input is considered to be owned by the caller, and must therefore
225
+ * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH
226
+ */
227
+ OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name);
228
+ OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name,
229
+ const ASN1_INTEGER
230
+ *serial);
231
+ OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest,
232
+ const unsigned char
233
+ *bytes, size_t len);
234
+ OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias);
235
+
236
+ /* Search term destructor */
237
+ void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search);
238
+
239
+ /* Search term accessors */
240
+ int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion);
241
+ X509_NAME *OSSL_STORE_SEARCH_get0_name(const OSSL_STORE_SEARCH *criterion);
242
+ const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH
243
+ *criterion);
244
+ const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH
245
+ *criterion, size_t *length);
246
+ const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion);
247
+ const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion);
248
+
249
+ /*
250
+ * Add search criterion and expected return type (which can be unspecified)
251
+ * to the loading channel. This MUST happen before the first OSSL_STORE_load().
252
+ */
253
+ int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type);
254
+ int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search);
255
+
256
+
257
+ /*-
258
+ * Function to fetch a loader and extract data from it
259
+ * ---------------------------------------------------
260
+ */
261
+
262
+ typedef struct ossl_store_loader_st OSSL_STORE_LOADER;
263
+
264
+ OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx,
265
+ const char *scheme,
266
+ const char *properties);
267
+ int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader);
268
+ void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader);
269
+ const OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER *
270
+ loader);
271
+ const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader);
272
+ const char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader);
273
+ int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader,
274
+ const char *scheme);
275
+ void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx,
276
+ void (*fn)(OSSL_STORE_LOADER *loader,
277
+ void *arg),
278
+ void *arg);
279
+ int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader,
280
+ void (*fn)(const char *name, void *data),
281
+ void *data);
282
+
283
+ /*-
284
+ * Function to register a loader for the given URI scheme.
285
+ * -------------------------------------------------------
286
+ *
287
+ * The loader receives all the main components of an URI except for the
288
+ * scheme.
289
+ */
290
+
291
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
292
+
293
+ /* struct ossl_store_loader_ctx_st is defined differently by each loader */
294
+ typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX;
295
+ typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)
296
+ (const OSSL_STORE_LOADER *loader, const char *uri,
297
+ const UI_METHOD *ui_method, void *ui_data);
298
+ typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_ex_fn)
299
+ (const OSSL_STORE_LOADER *loader,
300
+ const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
301
+ const UI_METHOD *ui_method, void *ui_data);
302
+
303
+ typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_attach_fn)
304
+ (const OSSL_STORE_LOADER *loader, BIO *bio,
305
+ OSSL_LIB_CTX *libctx, const char *propq,
306
+ const UI_METHOD *ui_method, void *ui_data);
307
+ typedef int (*OSSL_STORE_ctrl_fn)
308
+ (OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args);
309
+ typedef int (*OSSL_STORE_expect_fn)
310
+ (OSSL_STORE_LOADER_CTX *ctx, int expected);
311
+ typedef int (*OSSL_STORE_find_fn)
312
+ (OSSL_STORE_LOADER_CTX *ctx, const OSSL_STORE_SEARCH *criteria);
313
+ typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)
314
+ (OSSL_STORE_LOADER_CTX *ctx, const UI_METHOD *ui_method, void *ui_data);
315
+ typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx);
316
+ typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx);
317
+ typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx);
318
+
319
+ # endif
320
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
321
+ OSSL_DEPRECATEDIN_3_0
322
+ OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme);
323
+ OSSL_DEPRECATEDIN_3_0
324
+ int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader,
325
+ OSSL_STORE_open_fn open_function);
326
+ OSSL_DEPRECATEDIN_3_0
327
+ int OSSL_STORE_LOADER_set_open_ex(OSSL_STORE_LOADER *loader,
328
+ OSSL_STORE_open_ex_fn open_ex_function);
329
+ OSSL_DEPRECATEDIN_3_0
330
+ int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader,
331
+ OSSL_STORE_attach_fn attach_function);
332
+ OSSL_DEPRECATEDIN_3_0
333
+ int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader,
334
+ OSSL_STORE_ctrl_fn ctrl_function);
335
+ OSSL_DEPRECATEDIN_3_0
336
+ int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,
337
+ OSSL_STORE_expect_fn expect_function);
338
+ OSSL_DEPRECATEDIN_3_0
339
+ int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,
340
+ OSSL_STORE_find_fn find_function);
341
+ OSSL_DEPRECATEDIN_3_0
342
+ int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader,
343
+ OSSL_STORE_load_fn load_function);
344
+ OSSL_DEPRECATEDIN_3_0
345
+ int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader,
346
+ OSSL_STORE_eof_fn eof_function);
347
+ OSSL_DEPRECATEDIN_3_0
348
+ int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader,
349
+ OSSL_STORE_error_fn error_function);
350
+ OSSL_DEPRECATEDIN_3_0
351
+ int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader,
352
+ OSSL_STORE_close_fn close_function);
353
+ OSSL_DEPRECATEDIN_3_0
354
+ const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader);
355
+ OSSL_DEPRECATEDIN_3_0
356
+ const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader);
357
+ OSSL_DEPRECATEDIN_3_0
358
+ int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader);
359
+ OSSL_DEPRECATEDIN_3_0
360
+ OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme);
361
+ # endif
362
+
363
+ /*-
364
+ * Functions to list STORE loaders
365
+ * -------------------------------
366
+ */
367
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
368
+ OSSL_DEPRECATEDIN_3_0
369
+ int OSSL_STORE_do_all_loaders(void (*do_function)(const OSSL_STORE_LOADER *loader,
370
+ void *do_arg),
371
+ void *do_arg);
372
+ # endif
373
+
374
+ # ifdef __cplusplus
375
+ }
376
+ # endif
377
+ #endif