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,466 +1,466 @@
1
- /*
2
- * A C++ I/O streams interface to the zlib gz* functions
3
- *
4
- * by Ludwig Schwardt <schwardt@sun.ac.za>
5
- * original version by Kevin Ruland <kevin@rodin.wustl.edu>
6
- *
7
- * This version is standard-compliant and compatible with gcc 3.x.
8
- */
9
-
10
- #ifndef ZFSTREAM_H
11
- #define ZFSTREAM_H
12
-
13
- #include <istream> // not iostream, since we don't need cin/cout
14
- #include <ostream>
15
- #include "zlib.h"
16
-
17
- /*****************************************************************************/
18
-
19
- /**
20
- * @brief Gzipped file stream buffer class.
21
- *
22
- * This class implements basic_filebuf for gzipped files. It doesn't yet support
23
- * seeking (allowed by zlib but slow/limited), putback and read/write access
24
- * (tricky). Otherwise, it attempts to be a drop-in replacement for the standard
25
- * file streambuf.
26
- */
27
- class gzfilebuf : public std::streambuf
28
- {
29
- public:
30
- // Default constructor.
31
- gzfilebuf();
32
-
33
- // Destructor.
34
- virtual
35
- ~gzfilebuf();
36
-
37
- /**
38
- * @brief Set compression level and strategy on the fly.
39
- * @param comp_level Compression level (see zlib.h for allowed values)
40
- * @param comp_strategy Compression strategy (see zlib.h for allowed values)
41
- * @return Z_OK on success, Z_STREAM_ERROR otherwise.
42
- *
43
- * Unfortunately, these parameters cannot be modified separately, as the
44
- * previous zfstream version assumed. Since the strategy is seldom changed,
45
- * it can default and setcompression(level) then becomes like the old
46
- * setcompressionlevel(level).
47
- */
48
- int
49
- setcompression(int comp_level,
50
- int comp_strategy = Z_DEFAULT_STRATEGY);
51
-
52
- /**
53
- * @brief Check if file is open.
54
- * @return True if file is open.
55
- */
56
- bool
57
- is_open() const { return (file != NULL); }
58
-
59
- /**
60
- * @brief Open gzipped file.
61
- * @param name File name.
62
- * @param mode Open mode flags.
63
- * @return @c this on success, NULL on failure.
64
- */
65
- gzfilebuf*
66
- open(const char* name,
67
- std::ios_base::openmode mode);
68
-
69
- /**
70
- * @brief Attach to already open gzipped file.
71
- * @param fd File descriptor.
72
- * @param mode Open mode flags.
73
- * @return @c this on success, NULL on failure.
74
- */
75
- gzfilebuf*
76
- attach(int fd,
77
- std::ios_base::openmode mode);
78
-
79
- /**
80
- * @brief Close gzipped file.
81
- * @return @c this on success, NULL on failure.
82
- */
83
- gzfilebuf*
84
- close();
85
-
86
- protected:
87
- /**
88
- * @brief Convert ios open mode int to mode string used by zlib.
89
- * @return True if valid mode flag combination.
90
- */
91
- bool
92
- open_mode(std::ios_base::openmode mode,
93
- char* c_mode) const;
94
-
95
- /**
96
- * @brief Number of characters available in stream buffer.
97
- * @return Number of characters.
98
- *
99
- * This indicates number of characters in get area of stream buffer.
100
- * These characters can be read without accessing the gzipped file.
101
- */
102
- virtual std::streamsize
103
- showmanyc();
104
-
105
- /**
106
- * @brief Fill get area from gzipped file.
107
- * @return First character in get area on success, EOF on error.
108
- *
109
- * This actually reads characters from gzipped file to stream
110
- * buffer. Always buffered.
111
- */
112
- virtual int_type
113
- underflow();
114
-
115
- /**
116
- * @brief Write put area to gzipped file.
117
- * @param c Extra character to add to buffer contents.
118
- * @return Non-EOF on success, EOF on error.
119
- *
120
- * This actually writes characters in stream buffer to
121
- * gzipped file. With unbuffered output this is done one
122
- * character at a time.
123
- */
124
- virtual int_type
125
- overflow(int_type c = traits_type::eof());
126
-
127
- /**
128
- * @brief Installs external stream buffer.
129
- * @param p Pointer to char buffer.
130
- * @param n Size of external buffer.
131
- * @return @c this on success, NULL on failure.
132
- *
133
- * Call setbuf(0,0) to enable unbuffered output.
134
- */
135
- virtual std::streambuf*
136
- setbuf(char_type* p,
137
- std::streamsize n);
138
-
139
- /**
140
- * @brief Flush stream buffer to file.
141
- * @return 0 on success, -1 on error.
142
- *
143
- * This calls underflow(EOF) to do the job.
144
- */
145
- virtual int
146
- sync();
147
-
148
- //
149
- // Some future enhancements
150
- //
151
- // virtual int_type uflow();
152
- // virtual int_type pbackfail(int_type c = traits_type::eof());
153
- // virtual pos_type
154
- // seekoff(off_type off,
155
- // std::ios_base::seekdir way,
156
- // std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
157
- // virtual pos_type
158
- // seekpos(pos_type sp,
159
- // std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
160
-
161
- private:
162
- /**
163
- * @brief Allocate internal buffer.
164
- *
165
- * This function is safe to call multiple times. It will ensure
166
- * that a proper internal buffer exists if it is required. If the
167
- * buffer already exists or is external, the buffer pointers will be
168
- * reset to their original state.
169
- */
170
- void
171
- enable_buffer();
172
-
173
- /**
174
- * @brief Destroy internal buffer.
175
- *
176
- * This function is safe to call multiple times. It will ensure
177
- * that the internal buffer is deallocated if it exists. In any
178
- * case, it will also reset the buffer pointers.
179
- */
180
- void
181
- disable_buffer();
182
-
183
- /**
184
- * Underlying file pointer.
185
- */
186
- gzFile file;
187
-
188
- /**
189
- * Mode in which file was opened.
190
- */
191
- std::ios_base::openmode io_mode;
192
-
193
- /**
194
- * @brief True if this object owns file descriptor.
195
- *
196
- * This makes the class responsible for closing the file
197
- * upon destruction.
198
- */
199
- bool own_fd;
200
-
201
- /**
202
- * @brief Stream buffer.
203
- *
204
- * For simplicity this remains allocated on the free store for the
205
- * entire life span of the gzfilebuf object, unless replaced by setbuf.
206
- */
207
- char_type* buffer;
208
-
209
- /**
210
- * @brief Stream buffer size.
211
- *
212
- * Defaults to system default buffer size (typically 8192 bytes).
213
- * Modified by setbuf.
214
- */
215
- std::streamsize buffer_size;
216
-
217
- /**
218
- * @brief True if this object owns stream buffer.
219
- *
220
- * This makes the class responsible for deleting the buffer
221
- * upon destruction.
222
- */
223
- bool own_buffer;
224
- };
225
-
226
- /*****************************************************************************/
227
-
228
- /**
229
- * @brief Gzipped file input stream class.
230
- *
231
- * This class implements ifstream for gzipped files. Seeking and putback
232
- * is not supported yet.
233
- */
234
- class gzifstream : public std::istream
235
- {
236
- public:
237
- // Default constructor
238
- gzifstream();
239
-
240
- /**
241
- * @brief Construct stream on gzipped file to be opened.
242
- * @param name File name.
243
- * @param mode Open mode flags (forced to contain ios::in).
244
- */
245
- explicit
246
- gzifstream(const char* name,
247
- std::ios_base::openmode mode = std::ios_base::in);
248
-
249
- /**
250
- * @brief Construct stream on already open gzipped file.
251
- * @param fd File descriptor.
252
- * @param mode Open mode flags (forced to contain ios::in).
253
- */
254
- explicit
255
- gzifstream(int fd,
256
- std::ios_base::openmode mode = std::ios_base::in);
257
-
258
- /**
259
- * Obtain underlying stream buffer.
260
- */
261
- gzfilebuf*
262
- rdbuf() const
263
- { return const_cast<gzfilebuf*>(&sb); }
264
-
265
- /**
266
- * @brief Check if file is open.
267
- * @return True if file is open.
268
- */
269
- bool
270
- is_open() { return sb.is_open(); }
271
-
272
- /**
273
- * @brief Open gzipped file.
274
- * @param name File name.
275
- * @param mode Open mode flags (forced to contain ios::in).
276
- *
277
- * Stream will be in state good() if file opens successfully;
278
- * otherwise in state fail(). This differs from the behavior of
279
- * ifstream, which never sets the state to good() and therefore
280
- * won't allow you to reuse the stream for a second file unless
281
- * you manually clear() the state. The choice is a matter of
282
- * convenience.
283
- */
284
- void
285
- open(const char* name,
286
- std::ios_base::openmode mode = std::ios_base::in);
287
-
288
- /**
289
- * @brief Attach to already open gzipped file.
290
- * @param fd File descriptor.
291
- * @param mode Open mode flags (forced to contain ios::in).
292
- *
293
- * Stream will be in state good() if attach succeeded; otherwise
294
- * in state fail().
295
- */
296
- void
297
- attach(int fd,
298
- std::ios_base::openmode mode = std::ios_base::in);
299
-
300
- /**
301
- * @brief Close gzipped file.
302
- *
303
- * Stream will be in state fail() if close failed.
304
- */
305
- void
306
- close();
307
-
308
- private:
309
- /**
310
- * Underlying stream buffer.
311
- */
312
- gzfilebuf sb;
313
- };
314
-
315
- /*****************************************************************************/
316
-
317
- /**
318
- * @brief Gzipped file output stream class.
319
- *
320
- * This class implements ofstream for gzipped files. Seeking and putback
321
- * is not supported yet.
322
- */
323
- class gzofstream : public std::ostream
324
- {
325
- public:
326
- // Default constructor
327
- gzofstream();
328
-
329
- /**
330
- * @brief Construct stream on gzipped file to be opened.
331
- * @param name File name.
332
- * @param mode Open mode flags (forced to contain ios::out).
333
- */
334
- explicit
335
- gzofstream(const char* name,
336
- std::ios_base::openmode mode = std::ios_base::out);
337
-
338
- /**
339
- * @brief Construct stream on already open gzipped file.
340
- * @param fd File descriptor.
341
- * @param mode Open mode flags (forced to contain ios::out).
342
- */
343
- explicit
344
- gzofstream(int fd,
345
- std::ios_base::openmode mode = std::ios_base::out);
346
-
347
- /**
348
- * Obtain underlying stream buffer.
349
- */
350
- gzfilebuf*
351
- rdbuf() const
352
- { return const_cast<gzfilebuf*>(&sb); }
353
-
354
- /**
355
- * @brief Check if file is open.
356
- * @return True if file is open.
357
- */
358
- bool
359
- is_open() { return sb.is_open(); }
360
-
361
- /**
362
- * @brief Open gzipped file.
363
- * @param name File name.
364
- * @param mode Open mode flags (forced to contain ios::out).
365
- *
366
- * Stream will be in state good() if file opens successfully;
367
- * otherwise in state fail(). This differs from the behavior of
368
- * ofstream, which never sets the state to good() and therefore
369
- * won't allow you to reuse the stream for a second file unless
370
- * you manually clear() the state. The choice is a matter of
371
- * convenience.
372
- */
373
- void
374
- open(const char* name,
375
- std::ios_base::openmode mode = std::ios_base::out);
376
-
377
- /**
378
- * @brief Attach to already open gzipped file.
379
- * @param fd File descriptor.
380
- * @param mode Open mode flags (forced to contain ios::out).
381
- *
382
- * Stream will be in state good() if attach succeeded; otherwise
383
- * in state fail().
384
- */
385
- void
386
- attach(int fd,
387
- std::ios_base::openmode mode = std::ios_base::out);
388
-
389
- /**
390
- * @brief Close gzipped file.
391
- *
392
- * Stream will be in state fail() if close failed.
393
- */
394
- void
395
- close();
396
-
397
- private:
398
- /**
399
- * Underlying stream buffer.
400
- */
401
- gzfilebuf sb;
402
- };
403
-
404
- /*****************************************************************************/
405
-
406
- /**
407
- * @brief Gzipped file output stream manipulator class.
408
- *
409
- * This class defines a two-argument manipulator for gzofstream. It is used
410
- * as base for the setcompression(int,int) manipulator.
411
- */
412
- template<typename T1, typename T2>
413
- class gzomanip2
414
- {
415
- public:
416
- // Allows inserter to peek at internals
417
- template <typename Ta, typename Tb>
418
- friend gzofstream&
419
- operator<<(gzofstream&,
420
- const gzomanip2<Ta,Tb>&);
421
-
422
- // Constructor
423
- gzomanip2(gzofstream& (*f)(gzofstream&, T1, T2),
424
- T1 v1,
425
- T2 v2);
426
- private:
427
- // Underlying manipulator function
428
- gzofstream&
429
- (*func)(gzofstream&, T1, T2);
430
-
431
- // Arguments for manipulator function
432
- T1 val1;
433
- T2 val2;
434
- };
435
-
436
- /*****************************************************************************/
437
-
438
- // Manipulator function thunks through to stream buffer
439
- inline gzofstream&
440
- setcompression(gzofstream &gzs, int l, int s = Z_DEFAULT_STRATEGY)
441
- {
442
- (gzs.rdbuf())->setcompression(l, s);
443
- return gzs;
444
- }
445
-
446
- // Manipulator constructor stores arguments
447
- template<typename T1, typename T2>
448
- inline
449
- gzomanip2<T1,T2>::gzomanip2(gzofstream &(*f)(gzofstream &, T1, T2),
450
- T1 v1,
451
- T2 v2)
452
- : func(f), val1(v1), val2(v2)
453
- { }
454
-
455
- // Inserter applies underlying manipulator function to stream
456
- template<typename T1, typename T2>
457
- inline gzofstream&
458
- operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)
459
- { return (*m.func)(s, m.val1, m.val2); }
460
-
461
- // Insert this onto stream to simplify setting of compression level
462
- inline gzomanip2<int,int>
463
- setcompression(int l, int s = Z_DEFAULT_STRATEGY)
464
- { return gzomanip2<int,int>(&setcompression, l, s); }
465
-
466
- #endif // ZFSTREAM_H
1
+ /*
2
+ * A C++ I/O streams interface to the zlib gz* functions
3
+ *
4
+ * by Ludwig Schwardt <schwardt@sun.ac.za>
5
+ * original version by Kevin Ruland <kevin@rodin.wustl.edu>
6
+ *
7
+ * This version is standard-compliant and compatible with gcc 3.x.
8
+ */
9
+
10
+ #ifndef ZFSTREAM_H
11
+ #define ZFSTREAM_H
12
+
13
+ #include <istream> // not iostream, since we don't need cin/cout
14
+ #include <ostream>
15
+ #include "zlib.h"
16
+
17
+ /*****************************************************************************/
18
+
19
+ /**
20
+ * @brief Gzipped file stream buffer class.
21
+ *
22
+ * This class implements basic_filebuf for gzipped files. It doesn't yet support
23
+ * seeking (allowed by zlib but slow/limited), putback and read/write access
24
+ * (tricky). Otherwise, it attempts to be a drop-in replacement for the standard
25
+ * file streambuf.
26
+ */
27
+ class gzfilebuf : public std::streambuf
28
+ {
29
+ public:
30
+ // Default constructor.
31
+ gzfilebuf();
32
+
33
+ // Destructor.
34
+ virtual
35
+ ~gzfilebuf();
36
+
37
+ /**
38
+ * @brief Set compression level and strategy on the fly.
39
+ * @param comp_level Compression level (see zlib.h for allowed values)
40
+ * @param comp_strategy Compression strategy (see zlib.h for allowed values)
41
+ * @return Z_OK on success, Z_STREAM_ERROR otherwise.
42
+ *
43
+ * Unfortunately, these parameters cannot be modified separately, as the
44
+ * previous zfstream version assumed. Since the strategy is seldom changed,
45
+ * it can default and setcompression(level) then becomes like the old
46
+ * setcompressionlevel(level).
47
+ */
48
+ int
49
+ setcompression(int comp_level,
50
+ int comp_strategy = Z_DEFAULT_STRATEGY);
51
+
52
+ /**
53
+ * @brief Check if file is open.
54
+ * @return True if file is open.
55
+ */
56
+ bool
57
+ is_open() const { return (file != NULL); }
58
+
59
+ /**
60
+ * @brief Open gzipped file.
61
+ * @param name File name.
62
+ * @param mode Open mode flags.
63
+ * @return @c this on success, NULL on failure.
64
+ */
65
+ gzfilebuf*
66
+ open(const char* name,
67
+ std::ios_base::openmode mode);
68
+
69
+ /**
70
+ * @brief Attach to already open gzipped file.
71
+ * @param fd File descriptor.
72
+ * @param mode Open mode flags.
73
+ * @return @c this on success, NULL on failure.
74
+ */
75
+ gzfilebuf*
76
+ attach(int fd,
77
+ std::ios_base::openmode mode);
78
+
79
+ /**
80
+ * @brief Close gzipped file.
81
+ * @return @c this on success, NULL on failure.
82
+ */
83
+ gzfilebuf*
84
+ close();
85
+
86
+ protected:
87
+ /**
88
+ * @brief Convert ios open mode int to mode string used by zlib.
89
+ * @return True if valid mode flag combination.
90
+ */
91
+ bool
92
+ open_mode(std::ios_base::openmode mode,
93
+ char* c_mode) const;
94
+
95
+ /**
96
+ * @brief Number of characters available in stream buffer.
97
+ * @return Number of characters.
98
+ *
99
+ * This indicates number of characters in get area of stream buffer.
100
+ * These characters can be read without accessing the gzipped file.
101
+ */
102
+ virtual std::streamsize
103
+ showmanyc();
104
+
105
+ /**
106
+ * @brief Fill get area from gzipped file.
107
+ * @return First character in get area on success, EOF on error.
108
+ *
109
+ * This actually reads characters from gzipped file to stream
110
+ * buffer. Always buffered.
111
+ */
112
+ virtual int_type
113
+ underflow();
114
+
115
+ /**
116
+ * @brief Write put area to gzipped file.
117
+ * @param c Extra character to add to buffer contents.
118
+ * @return Non-EOF on success, EOF on error.
119
+ *
120
+ * This actually writes characters in stream buffer to
121
+ * gzipped file. With unbuffered output this is done one
122
+ * character at a time.
123
+ */
124
+ virtual int_type
125
+ overflow(int_type c = traits_type::eof());
126
+
127
+ /**
128
+ * @brief Installs external stream buffer.
129
+ * @param p Pointer to char buffer.
130
+ * @param n Size of external buffer.
131
+ * @return @c this on success, NULL on failure.
132
+ *
133
+ * Call setbuf(0,0) to enable unbuffered output.
134
+ */
135
+ virtual std::streambuf*
136
+ setbuf(char_type* p,
137
+ std::streamsize n);
138
+
139
+ /**
140
+ * @brief Flush stream buffer to file.
141
+ * @return 0 on success, -1 on error.
142
+ *
143
+ * This calls underflow(EOF) to do the job.
144
+ */
145
+ virtual int
146
+ sync();
147
+
148
+ //
149
+ // Some future enhancements
150
+ //
151
+ // virtual int_type uflow();
152
+ // virtual int_type pbackfail(int_type c = traits_type::eof());
153
+ // virtual pos_type
154
+ // seekoff(off_type off,
155
+ // std::ios_base::seekdir way,
156
+ // std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
157
+ // virtual pos_type
158
+ // seekpos(pos_type sp,
159
+ // std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
160
+
161
+ private:
162
+ /**
163
+ * @brief Allocate internal buffer.
164
+ *
165
+ * This function is safe to call multiple times. It will ensure
166
+ * that a proper internal buffer exists if it is required. If the
167
+ * buffer already exists or is external, the buffer pointers will be
168
+ * reset to their original state.
169
+ */
170
+ void
171
+ enable_buffer();
172
+
173
+ /**
174
+ * @brief Destroy internal buffer.
175
+ *
176
+ * This function is safe to call multiple times. It will ensure
177
+ * that the internal buffer is deallocated if it exists. In any
178
+ * case, it will also reset the buffer pointers.
179
+ */
180
+ void
181
+ disable_buffer();
182
+
183
+ /**
184
+ * Underlying file pointer.
185
+ */
186
+ gzFile file;
187
+
188
+ /**
189
+ * Mode in which file was opened.
190
+ */
191
+ std::ios_base::openmode io_mode;
192
+
193
+ /**
194
+ * @brief True if this object owns file descriptor.
195
+ *
196
+ * This makes the class responsible for closing the file
197
+ * upon destruction.
198
+ */
199
+ bool own_fd;
200
+
201
+ /**
202
+ * @brief Stream buffer.
203
+ *
204
+ * For simplicity this remains allocated on the free store for the
205
+ * entire life span of the gzfilebuf object, unless replaced by setbuf.
206
+ */
207
+ char_type* buffer;
208
+
209
+ /**
210
+ * @brief Stream buffer size.
211
+ *
212
+ * Defaults to system default buffer size (typically 8192 bytes).
213
+ * Modified by setbuf.
214
+ */
215
+ std::streamsize buffer_size;
216
+
217
+ /**
218
+ * @brief True if this object owns stream buffer.
219
+ *
220
+ * This makes the class responsible for deleting the buffer
221
+ * upon destruction.
222
+ */
223
+ bool own_buffer;
224
+ };
225
+
226
+ /*****************************************************************************/
227
+
228
+ /**
229
+ * @brief Gzipped file input stream class.
230
+ *
231
+ * This class implements ifstream for gzipped files. Seeking and putback
232
+ * is not supported yet.
233
+ */
234
+ class gzifstream : public std::istream
235
+ {
236
+ public:
237
+ // Default constructor
238
+ gzifstream();
239
+
240
+ /**
241
+ * @brief Construct stream on gzipped file to be opened.
242
+ * @param name File name.
243
+ * @param mode Open mode flags (forced to contain ios::in).
244
+ */
245
+ explicit
246
+ gzifstream(const char* name,
247
+ std::ios_base::openmode mode = std::ios_base::in);
248
+
249
+ /**
250
+ * @brief Construct stream on already open gzipped file.
251
+ * @param fd File descriptor.
252
+ * @param mode Open mode flags (forced to contain ios::in).
253
+ */
254
+ explicit
255
+ gzifstream(int fd,
256
+ std::ios_base::openmode mode = std::ios_base::in);
257
+
258
+ /**
259
+ * Obtain underlying stream buffer.
260
+ */
261
+ gzfilebuf*
262
+ rdbuf() const
263
+ { return const_cast<gzfilebuf*>(&sb); }
264
+
265
+ /**
266
+ * @brief Check if file is open.
267
+ * @return True if file is open.
268
+ */
269
+ bool
270
+ is_open() { return sb.is_open(); }
271
+
272
+ /**
273
+ * @brief Open gzipped file.
274
+ * @param name File name.
275
+ * @param mode Open mode flags (forced to contain ios::in).
276
+ *
277
+ * Stream will be in state good() if file opens successfully;
278
+ * otherwise in state fail(). This differs from the behavior of
279
+ * ifstream, which never sets the state to good() and therefore
280
+ * won't allow you to reuse the stream for a second file unless
281
+ * you manually clear() the state. The choice is a matter of
282
+ * convenience.
283
+ */
284
+ void
285
+ open(const char* name,
286
+ std::ios_base::openmode mode = std::ios_base::in);
287
+
288
+ /**
289
+ * @brief Attach to already open gzipped file.
290
+ * @param fd File descriptor.
291
+ * @param mode Open mode flags (forced to contain ios::in).
292
+ *
293
+ * Stream will be in state good() if attach succeeded; otherwise
294
+ * in state fail().
295
+ */
296
+ void
297
+ attach(int fd,
298
+ std::ios_base::openmode mode = std::ios_base::in);
299
+
300
+ /**
301
+ * @brief Close gzipped file.
302
+ *
303
+ * Stream will be in state fail() if close failed.
304
+ */
305
+ void
306
+ close();
307
+
308
+ private:
309
+ /**
310
+ * Underlying stream buffer.
311
+ */
312
+ gzfilebuf sb;
313
+ };
314
+
315
+ /*****************************************************************************/
316
+
317
+ /**
318
+ * @brief Gzipped file output stream class.
319
+ *
320
+ * This class implements ofstream for gzipped files. Seeking and putback
321
+ * is not supported yet.
322
+ */
323
+ class gzofstream : public std::ostream
324
+ {
325
+ public:
326
+ // Default constructor
327
+ gzofstream();
328
+
329
+ /**
330
+ * @brief Construct stream on gzipped file to be opened.
331
+ * @param name File name.
332
+ * @param mode Open mode flags (forced to contain ios::out).
333
+ */
334
+ explicit
335
+ gzofstream(const char* name,
336
+ std::ios_base::openmode mode = std::ios_base::out);
337
+
338
+ /**
339
+ * @brief Construct stream on already open gzipped file.
340
+ * @param fd File descriptor.
341
+ * @param mode Open mode flags (forced to contain ios::out).
342
+ */
343
+ explicit
344
+ gzofstream(int fd,
345
+ std::ios_base::openmode mode = std::ios_base::out);
346
+
347
+ /**
348
+ * Obtain underlying stream buffer.
349
+ */
350
+ gzfilebuf*
351
+ rdbuf() const
352
+ { return const_cast<gzfilebuf*>(&sb); }
353
+
354
+ /**
355
+ * @brief Check if file is open.
356
+ * @return True if file is open.
357
+ */
358
+ bool
359
+ is_open() { return sb.is_open(); }
360
+
361
+ /**
362
+ * @brief Open gzipped file.
363
+ * @param name File name.
364
+ * @param mode Open mode flags (forced to contain ios::out).
365
+ *
366
+ * Stream will be in state good() if file opens successfully;
367
+ * otherwise in state fail(). This differs from the behavior of
368
+ * ofstream, which never sets the state to good() and therefore
369
+ * won't allow you to reuse the stream for a second file unless
370
+ * you manually clear() the state. The choice is a matter of
371
+ * convenience.
372
+ */
373
+ void
374
+ open(const char* name,
375
+ std::ios_base::openmode mode = std::ios_base::out);
376
+
377
+ /**
378
+ * @brief Attach to already open gzipped file.
379
+ * @param fd File descriptor.
380
+ * @param mode Open mode flags (forced to contain ios::out).
381
+ *
382
+ * Stream will be in state good() if attach succeeded; otherwise
383
+ * in state fail().
384
+ */
385
+ void
386
+ attach(int fd,
387
+ std::ios_base::openmode mode = std::ios_base::out);
388
+
389
+ /**
390
+ * @brief Close gzipped file.
391
+ *
392
+ * Stream will be in state fail() if close failed.
393
+ */
394
+ void
395
+ close();
396
+
397
+ private:
398
+ /**
399
+ * Underlying stream buffer.
400
+ */
401
+ gzfilebuf sb;
402
+ };
403
+
404
+ /*****************************************************************************/
405
+
406
+ /**
407
+ * @brief Gzipped file output stream manipulator class.
408
+ *
409
+ * This class defines a two-argument manipulator for gzofstream. It is used
410
+ * as base for the setcompression(int,int) manipulator.
411
+ */
412
+ template<typename T1, typename T2>
413
+ class gzomanip2
414
+ {
415
+ public:
416
+ // Allows inserter to peek at internals
417
+ template <typename Ta, typename Tb>
418
+ friend gzofstream&
419
+ operator<<(gzofstream&,
420
+ const gzomanip2<Ta,Tb>&);
421
+
422
+ // Constructor
423
+ gzomanip2(gzofstream& (*f)(gzofstream&, T1, T2),
424
+ T1 v1,
425
+ T2 v2);
426
+ private:
427
+ // Underlying manipulator function
428
+ gzofstream&
429
+ (*func)(gzofstream&, T1, T2);
430
+
431
+ // Arguments for manipulator function
432
+ T1 val1;
433
+ T2 val2;
434
+ };
435
+
436
+ /*****************************************************************************/
437
+
438
+ // Manipulator function thunks through to stream buffer
439
+ inline gzofstream&
440
+ setcompression(gzofstream &gzs, int l, int s = Z_DEFAULT_STRATEGY)
441
+ {
442
+ (gzs.rdbuf())->setcompression(l, s);
443
+ return gzs;
444
+ }
445
+
446
+ // Manipulator constructor stores arguments
447
+ template<typename T1, typename T2>
448
+ inline
449
+ gzomanip2<T1,T2>::gzomanip2(gzofstream &(*f)(gzofstream &, T1, T2),
450
+ T1 v1,
451
+ T2 v2)
452
+ : func(f), val1(v1), val2(v2)
453
+ { }
454
+
455
+ // Inserter applies underlying manipulator function to stream
456
+ template<typename T1, typename T2>
457
+ inline gzofstream&
458
+ operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)
459
+ { return (*m.func)(s, m.val1, m.val2); }
460
+
461
+ // Insert this onto stream to simplify setting of compression level
462
+ inline gzomanip2<int,int>
463
+ setcompression(int l, int s = Z_DEFAULT_STRATEGY)
464
+ { return gzomanip2<int,int>(&setcompression, l, s); }
465
+
466
+ #endif // ZFSTREAM_H