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,479 +1,479 @@
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
- #include "zfstream.h"
11
- #include <cstring> // for strcpy, strcat, strlen (mode strings)
12
- #include <cstdio> // for BUFSIZ
13
-
14
- // Internal buffer sizes (default and "unbuffered" versions)
15
- #define BIGBUFSIZE BUFSIZ
16
- #define SMALLBUFSIZE 1
17
-
18
- /*****************************************************************************/
19
-
20
- // Default constructor
21
- gzfilebuf::gzfilebuf()
22
- : file(NULL), io_mode(std::ios_base::openmode(0)), own_fd(false),
23
- buffer(NULL), buffer_size(BIGBUFSIZE), own_buffer(true)
24
- {
25
- // No buffers to start with
26
- this->disable_buffer();
27
- }
28
-
29
- // Destructor
30
- gzfilebuf::~gzfilebuf()
31
- {
32
- // Sync output buffer and close only if responsible for file
33
- // (i.e. attached streams should be left open at this stage)
34
- this->sync();
35
- if (own_fd)
36
- this->close();
37
- // Make sure internal buffer is deallocated
38
- this->disable_buffer();
39
- }
40
-
41
- // Set compression level and strategy
42
- int
43
- gzfilebuf::setcompression(int comp_level,
44
- int comp_strategy)
45
- {
46
- return gzsetparams(file, comp_level, comp_strategy);
47
- }
48
-
49
- // Open gzipped file
50
- gzfilebuf*
51
- gzfilebuf::open(const char *name,
52
- std::ios_base::openmode mode)
53
- {
54
- // Fail if file already open
55
- if (this->is_open())
56
- return NULL;
57
- // Don't support simultaneous read/write access (yet)
58
- if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
59
- return NULL;
60
-
61
- // Build mode string for gzopen and check it [27.8.1.3.2]
62
- char char_mode[6] = "\0\0\0\0\0";
63
- if (!this->open_mode(mode, char_mode))
64
- return NULL;
65
-
66
- // Attempt to open file
67
- if ((file = gzopen(name, char_mode)) == NULL)
68
- return NULL;
69
-
70
- // On success, allocate internal buffer and set flags
71
- this->enable_buffer();
72
- io_mode = mode;
73
- own_fd = true;
74
- return this;
75
- }
76
-
77
- // Attach to gzipped file
78
- gzfilebuf*
79
- gzfilebuf::attach(int fd,
80
- std::ios_base::openmode mode)
81
- {
82
- // Fail if file already open
83
- if (this->is_open())
84
- return NULL;
85
- // Don't support simultaneous read/write access (yet)
86
- if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
87
- return NULL;
88
-
89
- // Build mode string for gzdopen and check it [27.8.1.3.2]
90
- char char_mode[6] = "\0\0\0\0\0";
91
- if (!this->open_mode(mode, char_mode))
92
- return NULL;
93
-
94
- // Attempt to attach to file
95
- if ((file = gzdopen(fd, char_mode)) == NULL)
96
- return NULL;
97
-
98
- // On success, allocate internal buffer and set flags
99
- this->enable_buffer();
100
- io_mode = mode;
101
- own_fd = false;
102
- return this;
103
- }
104
-
105
- // Close gzipped file
106
- gzfilebuf*
107
- gzfilebuf::close()
108
- {
109
- // Fail immediately if no file is open
110
- if (!this->is_open())
111
- return NULL;
112
- // Assume success
113
- gzfilebuf* retval = this;
114
- // Attempt to sync and close gzipped file
115
- if (this->sync() == -1)
116
- retval = NULL;
117
- if (gzclose(file) < 0)
118
- retval = NULL;
119
- // File is now gone anyway (postcondition [27.8.1.3.8])
120
- file = NULL;
121
- own_fd = false;
122
- // Destroy internal buffer if it exists
123
- this->disable_buffer();
124
- return retval;
125
- }
126
-
127
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
128
-
129
- // Convert int open mode to mode string
130
- bool
131
- gzfilebuf::open_mode(std::ios_base::openmode mode,
132
- char* c_mode) const
133
- {
134
- bool testb = mode & std::ios_base::binary;
135
- bool testi = mode & std::ios_base::in;
136
- bool testo = mode & std::ios_base::out;
137
- bool testt = mode & std::ios_base::trunc;
138
- bool testa = mode & std::ios_base::app;
139
-
140
- // Check for valid flag combinations - see [27.8.1.3.2] (Table 92)
141
- // Original zfstream hardcoded the compression level to maximum here...
142
- // Double the time for less than 1% size improvement seems
143
- // excessive though - keeping it at the default level
144
- // To change back, just append "9" to the next three mode strings
145
- if (!testi && testo && !testt && !testa)
146
- strcpy(c_mode, "w");
147
- if (!testi && testo && !testt && testa)
148
- strcpy(c_mode, "a");
149
- if (!testi && testo && testt && !testa)
150
- strcpy(c_mode, "w");
151
- if (testi && !testo && !testt && !testa)
152
- strcpy(c_mode, "r");
153
- // No read/write mode yet
154
- // if (testi && testo && !testt && !testa)
155
- // strcpy(c_mode, "r+");
156
- // if (testi && testo && testt && !testa)
157
- // strcpy(c_mode, "w+");
158
-
159
- // Mode string should be empty for invalid combination of flags
160
- if (strlen(c_mode) == 0)
161
- return false;
162
- if (testb)
163
- strcat(c_mode, "b");
164
- return true;
165
- }
166
-
167
- // Determine number of characters in internal get buffer
168
- std::streamsize
169
- gzfilebuf::showmanyc()
170
- {
171
- // Calls to underflow will fail if file not opened for reading
172
- if (!this->is_open() || !(io_mode & std::ios_base::in))
173
- return -1;
174
- // Make sure get area is in use
175
- if (this->gptr() && (this->gptr() < this->egptr()))
176
- return std::streamsize(this->egptr() - this->gptr());
177
- else
178
- return 0;
179
- }
180
-
181
- // Fill get area from gzipped file
182
- gzfilebuf::int_type
183
- gzfilebuf::underflow()
184
- {
185
- // If something is left in the get area by chance, return it
186
- // (this shouldn't normally happen, as underflow is only supposed
187
- // to be called when gptr >= egptr, but it serves as error check)
188
- if (this->gptr() && (this->gptr() < this->egptr()))
189
- return traits_type::to_int_type(*(this->gptr()));
190
-
191
- // If the file hasn't been opened for reading, produce error
192
- if (!this->is_open() || !(io_mode & std::ios_base::in))
193
- return traits_type::eof();
194
-
195
- // Attempt to fill internal buffer from gzipped file
196
- // (buffer must be guaranteed to exist...)
197
- int bytes_read = gzread(file, buffer, buffer_size);
198
- // Indicates error or EOF
199
- if (bytes_read <= 0)
200
- {
201
- // Reset get area
202
- this->setg(buffer, buffer, buffer);
203
- return traits_type::eof();
204
- }
205
- // Make all bytes read from file available as get area
206
- this->setg(buffer, buffer, buffer + bytes_read);
207
-
208
- // Return next character in get area
209
- return traits_type::to_int_type(*(this->gptr()));
210
- }
211
-
212
- // Write put area to gzipped file
213
- gzfilebuf::int_type
214
- gzfilebuf::overflow(int_type c)
215
- {
216
- // Determine whether put area is in use
217
- if (this->pbase())
218
- {
219
- // Double-check pointer range
220
- if (this->pptr() > this->epptr() || this->pptr() < this->pbase())
221
- return traits_type::eof();
222
- // Add extra character to buffer if not EOF
223
- if (!traits_type::eq_int_type(c, traits_type::eof()))
224
- {
225
- *(this->pptr()) = traits_type::to_char_type(c);
226
- this->pbump(1);
227
- }
228
- // Number of characters to write to file
229
- int bytes_to_write = this->pptr() - this->pbase();
230
- // Overflow doesn't fail if nothing is to be written
231
- if (bytes_to_write > 0)
232
- {
233
- // If the file hasn't been opened for writing, produce error
234
- if (!this->is_open() || !(io_mode & std::ios_base::out))
235
- return traits_type::eof();
236
- // If gzipped file won't accept all bytes written to it, fail
237
- if (gzwrite(file, this->pbase(), bytes_to_write) != bytes_to_write)
238
- return traits_type::eof();
239
- // Reset next pointer to point to pbase on success
240
- this->pbump(-bytes_to_write);
241
- }
242
- }
243
- // Write extra character to file if not EOF
244
- else if (!traits_type::eq_int_type(c, traits_type::eof()))
245
- {
246
- // If the file hasn't been opened for writing, produce error
247
- if (!this->is_open() || !(io_mode & std::ios_base::out))
248
- return traits_type::eof();
249
- // Impromptu char buffer (allows "unbuffered" output)
250
- char_type last_char = traits_type::to_char_type(c);
251
- // If gzipped file won't accept this character, fail
252
- if (gzwrite(file, &last_char, 1) != 1)
253
- return traits_type::eof();
254
- }
255
-
256
- // If you got here, you have succeeded (even if c was EOF)
257
- // The return value should therefore be non-EOF
258
- if (traits_type::eq_int_type(c, traits_type::eof()))
259
- return traits_type::not_eof(c);
260
- else
261
- return c;
262
- }
263
-
264
- // Assign new buffer
265
- std::streambuf*
266
- gzfilebuf::setbuf(char_type* p,
267
- std::streamsize n)
268
- {
269
- // First make sure stuff is sync'ed, for safety
270
- if (this->sync() == -1)
271
- return NULL;
272
- // If buffering is turned off on purpose via setbuf(0,0), still allocate one...
273
- // "Unbuffered" only really refers to put [27.8.1.4.10], while get needs at
274
- // least a buffer of size 1 (very inefficient though, therefore make it bigger?)
275
- // This follows from [27.5.2.4.3]/12 (gptr needs to point at something, it seems)
276
- if (!p || !n)
277
- {
278
- // Replace existing buffer (if any) with small internal buffer
279
- this->disable_buffer();
280
- buffer = NULL;
281
- buffer_size = 0;
282
- own_buffer = true;
283
- this->enable_buffer();
284
- }
285
- else
286
- {
287
- // Replace existing buffer (if any) with external buffer
288
- this->disable_buffer();
289
- buffer = p;
290
- buffer_size = n;
291
- own_buffer = false;
292
- this->enable_buffer();
293
- }
294
- return this;
295
- }
296
-
297
- // Write put area to gzipped file (i.e. ensures that put area is empty)
298
- int
299
- gzfilebuf::sync()
300
- {
301
- return traits_type::eq_int_type(this->overflow(), traits_type::eof()) ? -1 : 0;
302
- }
303
-
304
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
305
-
306
- // Allocate internal buffer
307
- void
308
- gzfilebuf::enable_buffer()
309
- {
310
- // If internal buffer required, allocate one
311
- if (own_buffer && !buffer)
312
- {
313
- // Check for buffered vs. "unbuffered"
314
- if (buffer_size > 0)
315
- {
316
- // Allocate internal buffer
317
- buffer = new char_type[buffer_size];
318
- // Get area starts empty and will be expanded by underflow as need arises
319
- this->setg(buffer, buffer, buffer);
320
- // Setup entire internal buffer as put area.
321
- // The one-past-end pointer actually points to the last element of the buffer,
322
- // so that overflow(c) can safely add the extra character c to the sequence.
323
- // These pointers remain in place for the duration of the buffer
324
- this->setp(buffer, buffer + buffer_size - 1);
325
- }
326
- else
327
- {
328
- // Even in "unbuffered" case, (small?) get buffer is still required
329
- buffer_size = SMALLBUFSIZE;
330
- buffer = new char_type[buffer_size];
331
- this->setg(buffer, buffer, buffer);
332
- // "Unbuffered" means no put buffer
333
- this->setp(0, 0);
334
- }
335
- }
336
- else
337
- {
338
- // If buffer already allocated, reset buffer pointers just to make sure no
339
- // stale chars are lying around
340
- this->setg(buffer, buffer, buffer);
341
- this->setp(buffer, buffer + buffer_size - 1);
342
- }
343
- }
344
-
345
- // Destroy internal buffer
346
- void
347
- gzfilebuf::disable_buffer()
348
- {
349
- // If internal buffer exists, deallocate it
350
- if (own_buffer && buffer)
351
- {
352
- // Preserve unbuffered status by zeroing size
353
- if (!this->pbase())
354
- buffer_size = 0;
355
- delete[] buffer;
356
- buffer = NULL;
357
- this->setg(0, 0, 0);
358
- this->setp(0, 0);
359
- }
360
- else
361
- {
362
- // Reset buffer pointers to initial state if external buffer exists
363
- this->setg(buffer, buffer, buffer);
364
- if (buffer)
365
- this->setp(buffer, buffer + buffer_size - 1);
366
- else
367
- this->setp(0, 0);
368
- }
369
- }
370
-
371
- /*****************************************************************************/
372
-
373
- // Default constructor initializes stream buffer
374
- gzifstream::gzifstream()
375
- : std::istream(NULL), sb()
376
- { this->init(&sb); }
377
-
378
- // Initialize stream buffer and open file
379
- gzifstream::gzifstream(const char* name,
380
- std::ios_base::openmode mode)
381
- : std::istream(NULL), sb()
382
- {
383
- this->init(&sb);
384
- this->open(name, mode);
385
- }
386
-
387
- // Initialize stream buffer and attach to file
388
- gzifstream::gzifstream(int fd,
389
- std::ios_base::openmode mode)
390
- : std::istream(NULL), sb()
391
- {
392
- this->init(&sb);
393
- this->attach(fd, mode);
394
- }
395
-
396
- // Open file and go into fail() state if unsuccessful
397
- void
398
- gzifstream::open(const char* name,
399
- std::ios_base::openmode mode)
400
- {
401
- if (!sb.open(name, mode | std::ios_base::in))
402
- this->setstate(std::ios_base::failbit);
403
- else
404
- this->clear();
405
- }
406
-
407
- // Attach to file and go into fail() state if unsuccessful
408
- void
409
- gzifstream::attach(int fd,
410
- std::ios_base::openmode mode)
411
- {
412
- if (!sb.attach(fd, mode | std::ios_base::in))
413
- this->setstate(std::ios_base::failbit);
414
- else
415
- this->clear();
416
- }
417
-
418
- // Close file
419
- void
420
- gzifstream::close()
421
- {
422
- if (!sb.close())
423
- this->setstate(std::ios_base::failbit);
424
- }
425
-
426
- /*****************************************************************************/
427
-
428
- // Default constructor initializes stream buffer
429
- gzofstream::gzofstream()
430
- : std::ostream(NULL), sb()
431
- { this->init(&sb); }
432
-
433
- // Initialize stream buffer and open file
434
- gzofstream::gzofstream(const char* name,
435
- std::ios_base::openmode mode)
436
- : std::ostream(NULL), sb()
437
- {
438
- this->init(&sb);
439
- this->open(name, mode);
440
- }
441
-
442
- // Initialize stream buffer and attach to file
443
- gzofstream::gzofstream(int fd,
444
- std::ios_base::openmode mode)
445
- : std::ostream(NULL), sb()
446
- {
447
- this->init(&sb);
448
- this->attach(fd, mode);
449
- }
450
-
451
- // Open file and go into fail() state if unsuccessful
452
- void
453
- gzofstream::open(const char* name,
454
- std::ios_base::openmode mode)
455
- {
456
- if (!sb.open(name, mode | std::ios_base::out))
457
- this->setstate(std::ios_base::failbit);
458
- else
459
- this->clear();
460
- }
461
-
462
- // Attach to file and go into fail() state if unsuccessful
463
- void
464
- gzofstream::attach(int fd,
465
- std::ios_base::openmode mode)
466
- {
467
- if (!sb.attach(fd, mode | std::ios_base::out))
468
- this->setstate(std::ios_base::failbit);
469
- else
470
- this->clear();
471
- }
472
-
473
- // Close file
474
- void
475
- gzofstream::close()
476
- {
477
- if (!sb.close())
478
- this->setstate(std::ios_base::failbit);
479
- }
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
+ #include "zfstream.h"
11
+ #include <cstring> // for strcpy, strcat, strlen (mode strings)
12
+ #include <cstdio> // for BUFSIZ
13
+
14
+ // Internal buffer sizes (default and "unbuffered" versions)
15
+ #define BIGBUFSIZE BUFSIZ
16
+ #define SMALLBUFSIZE 1
17
+
18
+ /*****************************************************************************/
19
+
20
+ // Default constructor
21
+ gzfilebuf::gzfilebuf()
22
+ : file(NULL), io_mode(std::ios_base::openmode(0)), own_fd(false),
23
+ buffer(NULL), buffer_size(BIGBUFSIZE), own_buffer(true)
24
+ {
25
+ // No buffers to start with
26
+ this->disable_buffer();
27
+ }
28
+
29
+ // Destructor
30
+ gzfilebuf::~gzfilebuf()
31
+ {
32
+ // Sync output buffer and close only if responsible for file
33
+ // (i.e. attached streams should be left open at this stage)
34
+ this->sync();
35
+ if (own_fd)
36
+ this->close();
37
+ // Make sure internal buffer is deallocated
38
+ this->disable_buffer();
39
+ }
40
+
41
+ // Set compression level and strategy
42
+ int
43
+ gzfilebuf::setcompression(int comp_level,
44
+ int comp_strategy)
45
+ {
46
+ return gzsetparams(file, comp_level, comp_strategy);
47
+ }
48
+
49
+ // Open gzipped file
50
+ gzfilebuf*
51
+ gzfilebuf::open(const char *name,
52
+ std::ios_base::openmode mode)
53
+ {
54
+ // Fail if file already open
55
+ if (this->is_open())
56
+ return NULL;
57
+ // Don't support simultaneous read/write access (yet)
58
+ if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
59
+ return NULL;
60
+
61
+ // Build mode string for gzopen and check it [27.8.1.3.2]
62
+ char char_mode[6] = "\0\0\0\0\0";
63
+ if (!this->open_mode(mode, char_mode))
64
+ return NULL;
65
+
66
+ // Attempt to open file
67
+ if ((file = gzopen(name, char_mode)) == NULL)
68
+ return NULL;
69
+
70
+ // On success, allocate internal buffer and set flags
71
+ this->enable_buffer();
72
+ io_mode = mode;
73
+ own_fd = true;
74
+ return this;
75
+ }
76
+
77
+ // Attach to gzipped file
78
+ gzfilebuf*
79
+ gzfilebuf::attach(int fd,
80
+ std::ios_base::openmode mode)
81
+ {
82
+ // Fail if file already open
83
+ if (this->is_open())
84
+ return NULL;
85
+ // Don't support simultaneous read/write access (yet)
86
+ if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
87
+ return NULL;
88
+
89
+ // Build mode string for gzdopen and check it [27.8.1.3.2]
90
+ char char_mode[6] = "\0\0\0\0\0";
91
+ if (!this->open_mode(mode, char_mode))
92
+ return NULL;
93
+
94
+ // Attempt to attach to file
95
+ if ((file = gzdopen(fd, char_mode)) == NULL)
96
+ return NULL;
97
+
98
+ // On success, allocate internal buffer and set flags
99
+ this->enable_buffer();
100
+ io_mode = mode;
101
+ own_fd = false;
102
+ return this;
103
+ }
104
+
105
+ // Close gzipped file
106
+ gzfilebuf*
107
+ gzfilebuf::close()
108
+ {
109
+ // Fail immediately if no file is open
110
+ if (!this->is_open())
111
+ return NULL;
112
+ // Assume success
113
+ gzfilebuf* retval = this;
114
+ // Attempt to sync and close gzipped file
115
+ if (this->sync() == -1)
116
+ retval = NULL;
117
+ if (gzclose(file) < 0)
118
+ retval = NULL;
119
+ // File is now gone anyway (postcondition [27.8.1.3.8])
120
+ file = NULL;
121
+ own_fd = false;
122
+ // Destroy internal buffer if it exists
123
+ this->disable_buffer();
124
+ return retval;
125
+ }
126
+
127
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
128
+
129
+ // Convert int open mode to mode string
130
+ bool
131
+ gzfilebuf::open_mode(std::ios_base::openmode mode,
132
+ char* c_mode) const
133
+ {
134
+ bool testb = mode & std::ios_base::binary;
135
+ bool testi = mode & std::ios_base::in;
136
+ bool testo = mode & std::ios_base::out;
137
+ bool testt = mode & std::ios_base::trunc;
138
+ bool testa = mode & std::ios_base::app;
139
+
140
+ // Check for valid flag combinations - see [27.8.1.3.2] (Table 92)
141
+ // Original zfstream hardcoded the compression level to maximum here...
142
+ // Double the time for less than 1% size improvement seems
143
+ // excessive though - keeping it at the default level
144
+ // To change back, just append "9" to the next three mode strings
145
+ if (!testi && testo && !testt && !testa)
146
+ strcpy(c_mode, "w");
147
+ if (!testi && testo && !testt && testa)
148
+ strcpy(c_mode, "a");
149
+ if (!testi && testo && testt && !testa)
150
+ strcpy(c_mode, "w");
151
+ if (testi && !testo && !testt && !testa)
152
+ strcpy(c_mode, "r");
153
+ // No read/write mode yet
154
+ // if (testi && testo && !testt && !testa)
155
+ // strcpy(c_mode, "r+");
156
+ // if (testi && testo && testt && !testa)
157
+ // strcpy(c_mode, "w+");
158
+
159
+ // Mode string should be empty for invalid combination of flags
160
+ if (strlen(c_mode) == 0)
161
+ return false;
162
+ if (testb)
163
+ strcat(c_mode, "b");
164
+ return true;
165
+ }
166
+
167
+ // Determine number of characters in internal get buffer
168
+ std::streamsize
169
+ gzfilebuf::showmanyc()
170
+ {
171
+ // Calls to underflow will fail if file not opened for reading
172
+ if (!this->is_open() || !(io_mode & std::ios_base::in))
173
+ return -1;
174
+ // Make sure get area is in use
175
+ if (this->gptr() && (this->gptr() < this->egptr()))
176
+ return std::streamsize(this->egptr() - this->gptr());
177
+ else
178
+ return 0;
179
+ }
180
+
181
+ // Fill get area from gzipped file
182
+ gzfilebuf::int_type
183
+ gzfilebuf::underflow()
184
+ {
185
+ // If something is left in the get area by chance, return it
186
+ // (this shouldn't normally happen, as underflow is only supposed
187
+ // to be called when gptr >= egptr, but it serves as error check)
188
+ if (this->gptr() && (this->gptr() < this->egptr()))
189
+ return traits_type::to_int_type(*(this->gptr()));
190
+
191
+ // If the file hasn't been opened for reading, produce error
192
+ if (!this->is_open() || !(io_mode & std::ios_base::in))
193
+ return traits_type::eof();
194
+
195
+ // Attempt to fill internal buffer from gzipped file
196
+ // (buffer must be guaranteed to exist...)
197
+ int bytes_read = gzread(file, buffer, buffer_size);
198
+ // Indicates error or EOF
199
+ if (bytes_read <= 0)
200
+ {
201
+ // Reset get area
202
+ this->setg(buffer, buffer, buffer);
203
+ return traits_type::eof();
204
+ }
205
+ // Make all bytes read from file available as get area
206
+ this->setg(buffer, buffer, buffer + bytes_read);
207
+
208
+ // Return next character in get area
209
+ return traits_type::to_int_type(*(this->gptr()));
210
+ }
211
+
212
+ // Write put area to gzipped file
213
+ gzfilebuf::int_type
214
+ gzfilebuf::overflow(int_type c)
215
+ {
216
+ // Determine whether put area is in use
217
+ if (this->pbase())
218
+ {
219
+ // Double-check pointer range
220
+ if (this->pptr() > this->epptr() || this->pptr() < this->pbase())
221
+ return traits_type::eof();
222
+ // Add extra character to buffer if not EOF
223
+ if (!traits_type::eq_int_type(c, traits_type::eof()))
224
+ {
225
+ *(this->pptr()) = traits_type::to_char_type(c);
226
+ this->pbump(1);
227
+ }
228
+ // Number of characters to write to file
229
+ int bytes_to_write = this->pptr() - this->pbase();
230
+ // Overflow doesn't fail if nothing is to be written
231
+ if (bytes_to_write > 0)
232
+ {
233
+ // If the file hasn't been opened for writing, produce error
234
+ if (!this->is_open() || !(io_mode & std::ios_base::out))
235
+ return traits_type::eof();
236
+ // If gzipped file won't accept all bytes written to it, fail
237
+ if (gzwrite(file, this->pbase(), bytes_to_write) != bytes_to_write)
238
+ return traits_type::eof();
239
+ // Reset next pointer to point to pbase on success
240
+ this->pbump(-bytes_to_write);
241
+ }
242
+ }
243
+ // Write extra character to file if not EOF
244
+ else if (!traits_type::eq_int_type(c, traits_type::eof()))
245
+ {
246
+ // If the file hasn't been opened for writing, produce error
247
+ if (!this->is_open() || !(io_mode & std::ios_base::out))
248
+ return traits_type::eof();
249
+ // Impromptu char buffer (allows "unbuffered" output)
250
+ char_type last_char = traits_type::to_char_type(c);
251
+ // If gzipped file won't accept this character, fail
252
+ if (gzwrite(file, &last_char, 1) != 1)
253
+ return traits_type::eof();
254
+ }
255
+
256
+ // If you got here, you have succeeded (even if c was EOF)
257
+ // The return value should therefore be non-EOF
258
+ if (traits_type::eq_int_type(c, traits_type::eof()))
259
+ return traits_type::not_eof(c);
260
+ else
261
+ return c;
262
+ }
263
+
264
+ // Assign new buffer
265
+ std::streambuf*
266
+ gzfilebuf::setbuf(char_type* p,
267
+ std::streamsize n)
268
+ {
269
+ // First make sure stuff is sync'ed, for safety
270
+ if (this->sync() == -1)
271
+ return NULL;
272
+ // If buffering is turned off on purpose via setbuf(0,0), still allocate one...
273
+ // "Unbuffered" only really refers to put [27.8.1.4.10], while get needs at
274
+ // least a buffer of size 1 (very inefficient though, therefore make it bigger?)
275
+ // This follows from [27.5.2.4.3]/12 (gptr needs to point at something, it seems)
276
+ if (!p || !n)
277
+ {
278
+ // Replace existing buffer (if any) with small internal buffer
279
+ this->disable_buffer();
280
+ buffer = NULL;
281
+ buffer_size = 0;
282
+ own_buffer = true;
283
+ this->enable_buffer();
284
+ }
285
+ else
286
+ {
287
+ // Replace existing buffer (if any) with external buffer
288
+ this->disable_buffer();
289
+ buffer = p;
290
+ buffer_size = n;
291
+ own_buffer = false;
292
+ this->enable_buffer();
293
+ }
294
+ return this;
295
+ }
296
+
297
+ // Write put area to gzipped file (i.e. ensures that put area is empty)
298
+ int
299
+ gzfilebuf::sync()
300
+ {
301
+ return traits_type::eq_int_type(this->overflow(), traits_type::eof()) ? -1 : 0;
302
+ }
303
+
304
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
305
+
306
+ // Allocate internal buffer
307
+ void
308
+ gzfilebuf::enable_buffer()
309
+ {
310
+ // If internal buffer required, allocate one
311
+ if (own_buffer && !buffer)
312
+ {
313
+ // Check for buffered vs. "unbuffered"
314
+ if (buffer_size > 0)
315
+ {
316
+ // Allocate internal buffer
317
+ buffer = new char_type[buffer_size];
318
+ // Get area starts empty and will be expanded by underflow as need arises
319
+ this->setg(buffer, buffer, buffer);
320
+ // Setup entire internal buffer as put area.
321
+ // The one-past-end pointer actually points to the last element of the buffer,
322
+ // so that overflow(c) can safely add the extra character c to the sequence.
323
+ // These pointers remain in place for the duration of the buffer
324
+ this->setp(buffer, buffer + buffer_size - 1);
325
+ }
326
+ else
327
+ {
328
+ // Even in "unbuffered" case, (small?) get buffer is still required
329
+ buffer_size = SMALLBUFSIZE;
330
+ buffer = new char_type[buffer_size];
331
+ this->setg(buffer, buffer, buffer);
332
+ // "Unbuffered" means no put buffer
333
+ this->setp(0, 0);
334
+ }
335
+ }
336
+ else
337
+ {
338
+ // If buffer already allocated, reset buffer pointers just to make sure no
339
+ // stale chars are lying around
340
+ this->setg(buffer, buffer, buffer);
341
+ this->setp(buffer, buffer + buffer_size - 1);
342
+ }
343
+ }
344
+
345
+ // Destroy internal buffer
346
+ void
347
+ gzfilebuf::disable_buffer()
348
+ {
349
+ // If internal buffer exists, deallocate it
350
+ if (own_buffer && buffer)
351
+ {
352
+ // Preserve unbuffered status by zeroing size
353
+ if (!this->pbase())
354
+ buffer_size = 0;
355
+ delete[] buffer;
356
+ buffer = NULL;
357
+ this->setg(0, 0, 0);
358
+ this->setp(0, 0);
359
+ }
360
+ else
361
+ {
362
+ // Reset buffer pointers to initial state if external buffer exists
363
+ this->setg(buffer, buffer, buffer);
364
+ if (buffer)
365
+ this->setp(buffer, buffer + buffer_size - 1);
366
+ else
367
+ this->setp(0, 0);
368
+ }
369
+ }
370
+
371
+ /*****************************************************************************/
372
+
373
+ // Default constructor initializes stream buffer
374
+ gzifstream::gzifstream()
375
+ : std::istream(NULL), sb()
376
+ { this->init(&sb); }
377
+
378
+ // Initialize stream buffer and open file
379
+ gzifstream::gzifstream(const char* name,
380
+ std::ios_base::openmode mode)
381
+ : std::istream(NULL), sb()
382
+ {
383
+ this->init(&sb);
384
+ this->open(name, mode);
385
+ }
386
+
387
+ // Initialize stream buffer and attach to file
388
+ gzifstream::gzifstream(int fd,
389
+ std::ios_base::openmode mode)
390
+ : std::istream(NULL), sb()
391
+ {
392
+ this->init(&sb);
393
+ this->attach(fd, mode);
394
+ }
395
+
396
+ // Open file and go into fail() state if unsuccessful
397
+ void
398
+ gzifstream::open(const char* name,
399
+ std::ios_base::openmode mode)
400
+ {
401
+ if (!sb.open(name, mode | std::ios_base::in))
402
+ this->setstate(std::ios_base::failbit);
403
+ else
404
+ this->clear();
405
+ }
406
+
407
+ // Attach to file and go into fail() state if unsuccessful
408
+ void
409
+ gzifstream::attach(int fd,
410
+ std::ios_base::openmode mode)
411
+ {
412
+ if (!sb.attach(fd, mode | std::ios_base::in))
413
+ this->setstate(std::ios_base::failbit);
414
+ else
415
+ this->clear();
416
+ }
417
+
418
+ // Close file
419
+ void
420
+ gzifstream::close()
421
+ {
422
+ if (!sb.close())
423
+ this->setstate(std::ios_base::failbit);
424
+ }
425
+
426
+ /*****************************************************************************/
427
+
428
+ // Default constructor initializes stream buffer
429
+ gzofstream::gzofstream()
430
+ : std::ostream(NULL), sb()
431
+ { this->init(&sb); }
432
+
433
+ // Initialize stream buffer and open file
434
+ gzofstream::gzofstream(const char* name,
435
+ std::ios_base::openmode mode)
436
+ : std::ostream(NULL), sb()
437
+ {
438
+ this->init(&sb);
439
+ this->open(name, mode);
440
+ }
441
+
442
+ // Initialize stream buffer and attach to file
443
+ gzofstream::gzofstream(int fd,
444
+ std::ios_base::openmode mode)
445
+ : std::ostream(NULL), sb()
446
+ {
447
+ this->init(&sb);
448
+ this->attach(fd, mode);
449
+ }
450
+
451
+ // Open file and go into fail() state if unsuccessful
452
+ void
453
+ gzofstream::open(const char* name,
454
+ std::ios_base::openmode mode)
455
+ {
456
+ if (!sb.open(name, mode | std::ios_base::out))
457
+ this->setstate(std::ios_base::failbit);
458
+ else
459
+ this->clear();
460
+ }
461
+
462
+ // Attach to file and go into fail() state if unsuccessful
463
+ void
464
+ gzofstream::attach(int fd,
465
+ std::ios_base::openmode mode)
466
+ {
467
+ if (!sb.attach(fd, mode | std::ios_base::out))
468
+ this->setstate(std::ios_base::failbit);
469
+ else
470
+ this->clear();
471
+ }
472
+
473
+ // Close file
474
+ void
475
+ gzofstream::close()
476
+ {
477
+ if (!sb.close())
478
+ this->setstate(std::ios_base::failbit);
479
+ }