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,449 +1,449 @@
1
- /* gzjoin -- command to join gzip files into one gzip file
2
-
3
- Copyright (C) 2004, 2005, 2012 Mark Adler, all rights reserved
4
- version 1.2, 14 Aug 2012
5
-
6
- This software is provided 'as-is', without any express or implied
7
- warranty. In no event will the author be held liable for any damages
8
- arising from the use of this software.
9
-
10
- Permission is granted to anyone to use this software for any purpose,
11
- including commercial applications, and to alter it and redistribute it
12
- freely, subject to the following restrictions:
13
-
14
- 1. The origin of this software must not be misrepresented; you must not
15
- claim that you wrote the original software. If you use this software
16
- in a product, an acknowledgment in the product documentation would be
17
- appreciated but is not required.
18
- 2. Altered source versions must be plainly marked as such, and must not be
19
- misrepresented as being the original software.
20
- 3. This notice may not be removed or altered from any source distribution.
21
-
22
- Mark Adler madler@alumni.caltech.edu
23
- */
24
-
25
- /*
26
- * Change history:
27
- *
28
- * 1.0 11 Dec 2004 - First version
29
- * 1.1 12 Jun 2005 - Changed ssize_t to long for portability
30
- * 1.2 14 Aug 2012 - Clean up for z_const usage
31
- */
32
-
33
- /*
34
- gzjoin takes one or more gzip files on the command line and writes out a
35
- single gzip file that will uncompress to the concatenation of the
36
- uncompressed data from the individual gzip files. gzjoin does this without
37
- having to recompress any of the data and without having to calculate a new
38
- crc32 for the concatenated uncompressed data. gzjoin does however have to
39
- decompress all of the input data in order to find the bits in the compressed
40
- data that need to be modified to concatenate the streams.
41
-
42
- gzjoin does not do an integrity check on the input gzip files other than
43
- checking the gzip header and decompressing the compressed data. They are
44
- otherwise assumed to be complete and correct.
45
-
46
- Each joint between gzip files removes at least 18 bytes of previous trailer
47
- and subsequent header, and inserts an average of about three bytes to the
48
- compressed data in order to connect the streams. The output gzip file
49
- has a minimal ten-byte gzip header with no file name or modification time.
50
-
51
- This program was written to illustrate the use of the Z_BLOCK option of
52
- inflate() and the crc32_combine() function. gzjoin will not compile with
53
- versions of zlib earlier than 1.2.3.
54
- */
55
-
56
- #include <stdio.h> /* fputs(), fprintf(), fwrite(), putc() */
57
- #include <stdlib.h> /* exit(), malloc(), free() */
58
- #include <fcntl.h> /* open() */
59
- #include <unistd.h> /* close(), read(), lseek() */
60
- #include "zlib.h"
61
- /* crc32(), crc32_combine(), inflateInit2(), inflate(), inflateEnd() */
62
-
63
- #define local static
64
-
65
- /* exit with an error (return a value to allow use in an expression) */
66
- local int bail(char *why1, char *why2)
67
- {
68
- fprintf(stderr, "gzjoin error: %s%s, output incomplete\n", why1, why2);
69
- exit(1);
70
- return 0;
71
- }
72
-
73
- /* -- simple buffered file input with access to the buffer -- */
74
-
75
- #define CHUNK 32768 /* must be a power of two and fit in unsigned */
76
-
77
- /* bin buffered input file type */
78
- typedef struct {
79
- char *name; /* name of file for error messages */
80
- int fd; /* file descriptor */
81
- unsigned left; /* bytes remaining at next */
82
- unsigned char *next; /* next byte to read */
83
- unsigned char *buf; /* allocated buffer of length CHUNK */
84
- } bin;
85
-
86
- /* close a buffered file and free allocated memory */
87
- local void bclose(bin *in)
88
- {
89
- if (in != NULL) {
90
- if (in->fd != -1)
91
- close(in->fd);
92
- if (in->buf != NULL)
93
- free(in->buf);
94
- free(in);
95
- }
96
- }
97
-
98
- /* open a buffered file for input, return a pointer to type bin, or NULL on
99
- failure */
100
- local bin *bopen(char *name)
101
- {
102
- bin *in;
103
-
104
- in = malloc(sizeof(bin));
105
- if (in == NULL)
106
- return NULL;
107
- in->buf = malloc(CHUNK);
108
- in->fd = open(name, O_RDONLY, 0);
109
- if (in->buf == NULL || in->fd == -1) {
110
- bclose(in);
111
- return NULL;
112
- }
113
- in->left = 0;
114
- in->next = in->buf;
115
- in->name = name;
116
- return in;
117
- }
118
-
119
- /* load buffer from file, return -1 on read error, 0 or 1 on success, with
120
- 1 indicating that end-of-file was reached */
121
- local int bload(bin *in)
122
- {
123
- long len;
124
-
125
- if (in == NULL)
126
- return -1;
127
- if (in->left != 0)
128
- return 0;
129
- in->next = in->buf;
130
- do {
131
- len = (long)read(in->fd, in->buf + in->left, CHUNK - in->left);
132
- if (len < 0)
133
- return -1;
134
- in->left += (unsigned)len;
135
- } while (len != 0 && in->left < CHUNK);
136
- return len == 0 ? 1 : 0;
137
- }
138
-
139
- /* get a byte from the file, bail if end of file */
140
- #define bget(in) (in->left ? 0 : bload(in), \
141
- in->left ? (in->left--, *(in->next)++) : \
142
- bail("unexpected end of file on ", in->name))
143
-
144
- /* get a four-byte little-endian unsigned integer from file */
145
- local unsigned long bget4(bin *in)
146
- {
147
- unsigned long val;
148
-
149
- val = bget(in);
150
- val += (unsigned long)(bget(in)) << 8;
151
- val += (unsigned long)(bget(in)) << 16;
152
- val += (unsigned long)(bget(in)) << 24;
153
- return val;
154
- }
155
-
156
- /* skip bytes in file */
157
- local void bskip(bin *in, unsigned skip)
158
- {
159
- /* check pointer */
160
- if (in == NULL)
161
- return;
162
-
163
- /* easy case -- skip bytes in buffer */
164
- if (skip <= in->left) {
165
- in->left -= skip;
166
- in->next += skip;
167
- return;
168
- }
169
-
170
- /* skip what's in buffer, discard buffer contents */
171
- skip -= in->left;
172
- in->left = 0;
173
-
174
- /* seek past multiples of CHUNK bytes */
175
- if (skip > CHUNK) {
176
- unsigned left;
177
-
178
- left = skip & (CHUNK - 1);
179
- if (left == 0) {
180
- /* exact number of chunks: seek all the way minus one byte to check
181
- for end-of-file with a read */
182
- lseek(in->fd, skip - 1, SEEK_CUR);
183
- if (read(in->fd, in->buf, 1) != 1)
184
- bail("unexpected end of file on ", in->name);
185
- return;
186
- }
187
-
188
- /* skip the integral chunks, update skip with remainder */
189
- lseek(in->fd, skip - left, SEEK_CUR);
190
- skip = left;
191
- }
192
-
193
- /* read more input and skip remainder */
194
- bload(in);
195
- if (skip > in->left)
196
- bail("unexpected end of file on ", in->name);
197
- in->left -= skip;
198
- in->next += skip;
199
- }
200
-
201
- /* -- end of buffered input functions -- */
202
-
203
- /* skip the gzip header from file in */
204
- local void gzhead(bin *in)
205
- {
206
- int flags;
207
-
208
- /* verify gzip magic header and compression method */
209
- if (bget(in) != 0x1f || bget(in) != 0x8b || bget(in) != 8)
210
- bail(in->name, " is not a valid gzip file");
211
-
212
- /* get and verify flags */
213
- flags = bget(in);
214
- if ((flags & 0xe0) != 0)
215
- bail("unknown reserved bits set in ", in->name);
216
-
217
- /* skip modification time, extra flags, and os */
218
- bskip(in, 6);
219
-
220
- /* skip extra field if present */
221
- if (flags & 4) {
222
- unsigned len;
223
-
224
- len = bget(in);
225
- len += (unsigned)(bget(in)) << 8;
226
- bskip(in, len);
227
- }
228
-
229
- /* skip file name if present */
230
- if (flags & 8)
231
- while (bget(in) != 0)
232
- ;
233
-
234
- /* skip comment if present */
235
- if (flags & 16)
236
- while (bget(in) != 0)
237
- ;
238
-
239
- /* skip header crc if present */
240
- if (flags & 2)
241
- bskip(in, 2);
242
- }
243
-
244
- /* write a four-byte little-endian unsigned integer to out */
245
- local void put4(unsigned long val, FILE *out)
246
- {
247
- putc(val & 0xff, out);
248
- putc((val >> 8) & 0xff, out);
249
- putc((val >> 16) & 0xff, out);
250
- putc((val >> 24) & 0xff, out);
251
- }
252
-
253
- /* Load up zlib stream from buffered input, bail if end of file */
254
- local void zpull(z_streamp strm, bin *in)
255
- {
256
- if (in->left == 0)
257
- bload(in);
258
- if (in->left == 0)
259
- bail("unexpected end of file on ", in->name);
260
- strm->avail_in = in->left;
261
- strm->next_in = in->next;
262
- }
263
-
264
- /* Write header for gzip file to out and initialize trailer. */
265
- local void gzinit(unsigned long *crc, unsigned long *tot, FILE *out)
266
- {
267
- fwrite("\x1f\x8b\x08\0\0\0\0\0\0\xff", 1, 10, out);
268
- *crc = crc32(0L, Z_NULL, 0);
269
- *tot = 0;
270
- }
271
-
272
- /* Copy the compressed data from name, zeroing the last block bit of the last
273
- block if clr is true, and adding empty blocks as needed to get to a byte
274
- boundary. If clr is false, then the last block becomes the last block of
275
- the output, and the gzip trailer is written. crc and tot maintains the
276
- crc and length (modulo 2^32) of the output for the trailer. The resulting
277
- gzip file is written to out. gzinit() must be called before the first call
278
- of gzcopy() to write the gzip header and to initialize crc and tot. */
279
- local void gzcopy(char *name, int clr, unsigned long *crc, unsigned long *tot,
280
- FILE *out)
281
- {
282
- int ret; /* return value from zlib functions */
283
- int pos; /* where the "last block" bit is in byte */
284
- int last; /* true if processing the last block */
285
- bin *in; /* buffered input file */
286
- unsigned char *start; /* start of compressed data in buffer */
287
- unsigned char *junk; /* buffer for uncompressed data -- discarded */
288
- z_off_t len; /* length of uncompressed data (support > 4 GB) */
289
- z_stream strm; /* zlib inflate stream */
290
-
291
- /* open gzip file and skip header */
292
- in = bopen(name);
293
- if (in == NULL)
294
- bail("could not open ", name);
295
- gzhead(in);
296
-
297
- /* allocate buffer for uncompressed data and initialize raw inflate
298
- stream */
299
- junk = malloc(CHUNK);
300
- strm.zalloc = Z_NULL;
301
- strm.zfree = Z_NULL;
302
- strm.opaque = Z_NULL;
303
- strm.avail_in = 0;
304
- strm.next_in = Z_NULL;
305
- ret = inflateInit2(&strm, -15);
306
- if (junk == NULL || ret != Z_OK)
307
- bail("out of memory", "");
308
-
309
- /* inflate and copy compressed data, clear last-block bit if requested */
310
- len = 0;
311
- zpull(&strm, in);
312
- start = in->next;
313
- last = start[0] & 1;
314
- if (last && clr)
315
- start[0] &= ~1;
316
- strm.avail_out = 0;
317
- for (;;) {
318
- /* if input used and output done, write used input and get more */
319
- if (strm.avail_in == 0 && strm.avail_out != 0) {
320
- fwrite(start, 1, strm.next_in - start, out);
321
- start = in->buf;
322
- in->left = 0;
323
- zpull(&strm, in);
324
- }
325
-
326
- /* decompress -- return early when end-of-block reached */
327
- strm.avail_out = CHUNK;
328
- strm.next_out = junk;
329
- ret = inflate(&strm, Z_BLOCK);
330
- switch (ret) {
331
- case Z_MEM_ERROR:
332
- bail("out of memory", "");
333
- case Z_DATA_ERROR:
334
- bail("invalid compressed data in ", in->name);
335
- }
336
-
337
- /* update length of uncompressed data */
338
- len += CHUNK - strm.avail_out;
339
-
340
- /* check for block boundary (only get this when block copied out) */
341
- if (strm.data_type & 128) {
342
- /* if that was the last block, then done */
343
- if (last)
344
- break;
345
-
346
- /* number of unused bits in last byte */
347
- pos = strm.data_type & 7;
348
-
349
- /* find the next last-block bit */
350
- if (pos != 0) {
351
- /* next last-block bit is in last used byte */
352
- pos = 0x100 >> pos;
353
- last = strm.next_in[-1] & pos;
354
- if (last && clr)
355
- in->buf[strm.next_in - in->buf - 1] &= ~pos;
356
- }
357
- else {
358
- /* next last-block bit is in next unused byte */
359
- if (strm.avail_in == 0) {
360
- /* don't have that byte yet -- get it */
361
- fwrite(start, 1, strm.next_in - start, out);
362
- start = in->buf;
363
- in->left = 0;
364
- zpull(&strm, in);
365
- }
366
- last = strm.next_in[0] & 1;
367
- if (last && clr)
368
- in->buf[strm.next_in - in->buf] &= ~1;
369
- }
370
- }
371
- }
372
-
373
- /* update buffer with unused input */
374
- in->left = strm.avail_in;
375
- in->next = in->buf + (strm.next_in - in->buf);
376
-
377
- /* copy used input, write empty blocks to get to byte boundary */
378
- pos = strm.data_type & 7;
379
- fwrite(start, 1, in->next - start - 1, out);
380
- last = in->next[-1];
381
- if (pos == 0 || !clr)
382
- /* already at byte boundary, or last file: write last byte */
383
- putc(last, out);
384
- else {
385
- /* append empty blocks to last byte */
386
- last &= ((0x100 >> pos) - 1); /* assure unused bits are zero */
387
- if (pos & 1) {
388
- /* odd -- append an empty stored block */
389
- putc(last, out);
390
- if (pos == 1)
391
- putc(0, out); /* two more bits in block header */
392
- fwrite("\0\0\xff\xff", 1, 4, out);
393
- }
394
- else {
395
- /* even -- append 1, 2, or 3 empty fixed blocks */
396
- switch (pos) {
397
- case 6:
398
- putc(last | 8, out);
399
- last = 0;
400
- case 4:
401
- putc(last | 0x20, out);
402
- last = 0;
403
- case 2:
404
- putc(last | 0x80, out);
405
- putc(0, out);
406
- }
407
- }
408
- }
409
-
410
- /* update crc and tot */
411
- *crc = crc32_combine(*crc, bget4(in), len);
412
- *tot += (unsigned long)len;
413
-
414
- /* clean up */
415
- inflateEnd(&strm);
416
- free(junk);
417
- bclose(in);
418
-
419
- /* write trailer if this is the last gzip file */
420
- if (!clr) {
421
- put4(*crc, out);
422
- put4(*tot, out);
423
- }
424
- }
425
-
426
- /* join the gzip files on the command line, write result to stdout */
427
- int main(int argc, char **argv)
428
- {
429
- unsigned long crc, tot; /* running crc and total uncompressed length */
430
-
431
- /* skip command name */
432
- argc--;
433
- argv++;
434
-
435
- /* show usage if no arguments */
436
- if (argc == 0) {
437
- fputs("gzjoin usage: gzjoin f1.gz [f2.gz [f3.gz ...]] > fjoin.gz\n",
438
- stderr);
439
- return 0;
440
- }
441
-
442
- /* join gzip files on command line and write to stdout */
443
- gzinit(&crc, &tot, stdout);
444
- while (argc--)
445
- gzcopy(*argv++, argc, &crc, &tot, stdout);
446
-
447
- /* done */
448
- return 0;
449
- }
1
+ /* gzjoin -- command to join gzip files into one gzip file
2
+
3
+ Copyright (C) 2004, 2005, 2012 Mark Adler, all rights reserved
4
+ version 1.2, 14 Aug 2012
5
+
6
+ This software is provided 'as-is', without any express or implied
7
+ warranty. In no event will the author be held liable for any damages
8
+ arising from the use of this software.
9
+
10
+ Permission is granted to anyone to use this software for any purpose,
11
+ including commercial applications, and to alter it and redistribute it
12
+ freely, subject to the following restrictions:
13
+
14
+ 1. The origin of this software must not be misrepresented; you must not
15
+ claim that you wrote the original software. If you use this software
16
+ in a product, an acknowledgment in the product documentation would be
17
+ appreciated but is not required.
18
+ 2. Altered source versions must be plainly marked as such, and must not be
19
+ misrepresented as being the original software.
20
+ 3. This notice may not be removed or altered from any source distribution.
21
+
22
+ Mark Adler madler@alumni.caltech.edu
23
+ */
24
+
25
+ /*
26
+ * Change history:
27
+ *
28
+ * 1.0 11 Dec 2004 - First version
29
+ * 1.1 12 Jun 2005 - Changed ssize_t to long for portability
30
+ * 1.2 14 Aug 2012 - Clean up for z_const usage
31
+ */
32
+
33
+ /*
34
+ gzjoin takes one or more gzip files on the command line and writes out a
35
+ single gzip file that will uncompress to the concatenation of the
36
+ uncompressed data from the individual gzip files. gzjoin does this without
37
+ having to recompress any of the data and without having to calculate a new
38
+ crc32 for the concatenated uncompressed data. gzjoin does however have to
39
+ decompress all of the input data in order to find the bits in the compressed
40
+ data that need to be modified to concatenate the streams.
41
+
42
+ gzjoin does not do an integrity check on the input gzip files other than
43
+ checking the gzip header and decompressing the compressed data. They are
44
+ otherwise assumed to be complete and correct.
45
+
46
+ Each joint between gzip files removes at least 18 bytes of previous trailer
47
+ and subsequent header, and inserts an average of about three bytes to the
48
+ compressed data in order to connect the streams. The output gzip file
49
+ has a minimal ten-byte gzip header with no file name or modification time.
50
+
51
+ This program was written to illustrate the use of the Z_BLOCK option of
52
+ inflate() and the crc32_combine() function. gzjoin will not compile with
53
+ versions of zlib earlier than 1.2.3.
54
+ */
55
+
56
+ #include <stdio.h> /* fputs(), fprintf(), fwrite(), putc() */
57
+ #include <stdlib.h> /* exit(), malloc(), free() */
58
+ #include <fcntl.h> /* open() */
59
+ #include <unistd.h> /* close(), read(), lseek() */
60
+ #include "zlib.h"
61
+ /* crc32(), crc32_combine(), inflateInit2(), inflate(), inflateEnd() */
62
+
63
+ #define local static
64
+
65
+ /* exit with an error (return a value to allow use in an expression) */
66
+ local int bail(char *why1, char *why2)
67
+ {
68
+ fprintf(stderr, "gzjoin error: %s%s, output incomplete\n", why1, why2);
69
+ exit(1);
70
+ return 0;
71
+ }
72
+
73
+ /* -- simple buffered file input with access to the buffer -- */
74
+
75
+ #define CHUNK 32768 /* must be a power of two and fit in unsigned */
76
+
77
+ /* bin buffered input file type */
78
+ typedef struct {
79
+ char *name; /* name of file for error messages */
80
+ int fd; /* file descriptor */
81
+ unsigned left; /* bytes remaining at next */
82
+ unsigned char *next; /* next byte to read */
83
+ unsigned char *buf; /* allocated buffer of length CHUNK */
84
+ } bin;
85
+
86
+ /* close a buffered file and free allocated memory */
87
+ local void bclose(bin *in)
88
+ {
89
+ if (in != NULL) {
90
+ if (in->fd != -1)
91
+ close(in->fd);
92
+ if (in->buf != NULL)
93
+ free(in->buf);
94
+ free(in);
95
+ }
96
+ }
97
+
98
+ /* open a buffered file for input, return a pointer to type bin, or NULL on
99
+ failure */
100
+ local bin *bopen(char *name)
101
+ {
102
+ bin *in;
103
+
104
+ in = malloc(sizeof(bin));
105
+ if (in == NULL)
106
+ return NULL;
107
+ in->buf = malloc(CHUNK);
108
+ in->fd = open(name, O_RDONLY, 0);
109
+ if (in->buf == NULL || in->fd == -1) {
110
+ bclose(in);
111
+ return NULL;
112
+ }
113
+ in->left = 0;
114
+ in->next = in->buf;
115
+ in->name = name;
116
+ return in;
117
+ }
118
+
119
+ /* load buffer from file, return -1 on read error, 0 or 1 on success, with
120
+ 1 indicating that end-of-file was reached */
121
+ local int bload(bin *in)
122
+ {
123
+ long len;
124
+
125
+ if (in == NULL)
126
+ return -1;
127
+ if (in->left != 0)
128
+ return 0;
129
+ in->next = in->buf;
130
+ do {
131
+ len = (long)read(in->fd, in->buf + in->left, CHUNK - in->left);
132
+ if (len < 0)
133
+ return -1;
134
+ in->left += (unsigned)len;
135
+ } while (len != 0 && in->left < CHUNK);
136
+ return len == 0 ? 1 : 0;
137
+ }
138
+
139
+ /* get a byte from the file, bail if end of file */
140
+ #define bget(in) (in->left ? 0 : bload(in), \
141
+ in->left ? (in->left--, *(in->next)++) : \
142
+ bail("unexpected end of file on ", in->name))
143
+
144
+ /* get a four-byte little-endian unsigned integer from file */
145
+ local unsigned long bget4(bin *in)
146
+ {
147
+ unsigned long val;
148
+
149
+ val = bget(in);
150
+ val += (unsigned long)(bget(in)) << 8;
151
+ val += (unsigned long)(bget(in)) << 16;
152
+ val += (unsigned long)(bget(in)) << 24;
153
+ return val;
154
+ }
155
+
156
+ /* skip bytes in file */
157
+ local void bskip(bin *in, unsigned skip)
158
+ {
159
+ /* check pointer */
160
+ if (in == NULL)
161
+ return;
162
+
163
+ /* easy case -- skip bytes in buffer */
164
+ if (skip <= in->left) {
165
+ in->left -= skip;
166
+ in->next += skip;
167
+ return;
168
+ }
169
+
170
+ /* skip what's in buffer, discard buffer contents */
171
+ skip -= in->left;
172
+ in->left = 0;
173
+
174
+ /* seek past multiples of CHUNK bytes */
175
+ if (skip > CHUNK) {
176
+ unsigned left;
177
+
178
+ left = skip & (CHUNK - 1);
179
+ if (left == 0) {
180
+ /* exact number of chunks: seek all the way minus one byte to check
181
+ for end-of-file with a read */
182
+ lseek(in->fd, skip - 1, SEEK_CUR);
183
+ if (read(in->fd, in->buf, 1) != 1)
184
+ bail("unexpected end of file on ", in->name);
185
+ return;
186
+ }
187
+
188
+ /* skip the integral chunks, update skip with remainder */
189
+ lseek(in->fd, skip - left, SEEK_CUR);
190
+ skip = left;
191
+ }
192
+
193
+ /* read more input and skip remainder */
194
+ bload(in);
195
+ if (skip > in->left)
196
+ bail("unexpected end of file on ", in->name);
197
+ in->left -= skip;
198
+ in->next += skip;
199
+ }
200
+
201
+ /* -- end of buffered input functions -- */
202
+
203
+ /* skip the gzip header from file in */
204
+ local void gzhead(bin *in)
205
+ {
206
+ int flags;
207
+
208
+ /* verify gzip magic header and compression method */
209
+ if (bget(in) != 0x1f || bget(in) != 0x8b || bget(in) != 8)
210
+ bail(in->name, " is not a valid gzip file");
211
+
212
+ /* get and verify flags */
213
+ flags = bget(in);
214
+ if ((flags & 0xe0) != 0)
215
+ bail("unknown reserved bits set in ", in->name);
216
+
217
+ /* skip modification time, extra flags, and os */
218
+ bskip(in, 6);
219
+
220
+ /* skip extra field if present */
221
+ if (flags & 4) {
222
+ unsigned len;
223
+
224
+ len = bget(in);
225
+ len += (unsigned)(bget(in)) << 8;
226
+ bskip(in, len);
227
+ }
228
+
229
+ /* skip file name if present */
230
+ if (flags & 8)
231
+ while (bget(in) != 0)
232
+ ;
233
+
234
+ /* skip comment if present */
235
+ if (flags & 16)
236
+ while (bget(in) != 0)
237
+ ;
238
+
239
+ /* skip header crc if present */
240
+ if (flags & 2)
241
+ bskip(in, 2);
242
+ }
243
+
244
+ /* write a four-byte little-endian unsigned integer to out */
245
+ local void put4(unsigned long val, FILE *out)
246
+ {
247
+ putc(val & 0xff, out);
248
+ putc((val >> 8) & 0xff, out);
249
+ putc((val >> 16) & 0xff, out);
250
+ putc((val >> 24) & 0xff, out);
251
+ }
252
+
253
+ /* Load up zlib stream from buffered input, bail if end of file */
254
+ local void zpull(z_streamp strm, bin *in)
255
+ {
256
+ if (in->left == 0)
257
+ bload(in);
258
+ if (in->left == 0)
259
+ bail("unexpected end of file on ", in->name);
260
+ strm->avail_in = in->left;
261
+ strm->next_in = in->next;
262
+ }
263
+
264
+ /* Write header for gzip file to out and initialize trailer. */
265
+ local void gzinit(unsigned long *crc, unsigned long *tot, FILE *out)
266
+ {
267
+ fwrite("\x1f\x8b\x08\0\0\0\0\0\0\xff", 1, 10, out);
268
+ *crc = crc32(0L, Z_NULL, 0);
269
+ *tot = 0;
270
+ }
271
+
272
+ /* Copy the compressed data from name, zeroing the last block bit of the last
273
+ block if clr is true, and adding empty blocks as needed to get to a byte
274
+ boundary. If clr is false, then the last block becomes the last block of
275
+ the output, and the gzip trailer is written. crc and tot maintains the
276
+ crc and length (modulo 2^32) of the output for the trailer. The resulting
277
+ gzip file is written to out. gzinit() must be called before the first call
278
+ of gzcopy() to write the gzip header and to initialize crc and tot. */
279
+ local void gzcopy(char *name, int clr, unsigned long *crc, unsigned long *tot,
280
+ FILE *out)
281
+ {
282
+ int ret; /* return value from zlib functions */
283
+ int pos; /* where the "last block" bit is in byte */
284
+ int last; /* true if processing the last block */
285
+ bin *in; /* buffered input file */
286
+ unsigned char *start; /* start of compressed data in buffer */
287
+ unsigned char *junk; /* buffer for uncompressed data -- discarded */
288
+ z_off_t len; /* length of uncompressed data (support > 4 GB) */
289
+ z_stream strm; /* zlib inflate stream */
290
+
291
+ /* open gzip file and skip header */
292
+ in = bopen(name);
293
+ if (in == NULL)
294
+ bail("could not open ", name);
295
+ gzhead(in);
296
+
297
+ /* allocate buffer for uncompressed data and initialize raw inflate
298
+ stream */
299
+ junk = malloc(CHUNK);
300
+ strm.zalloc = Z_NULL;
301
+ strm.zfree = Z_NULL;
302
+ strm.opaque = Z_NULL;
303
+ strm.avail_in = 0;
304
+ strm.next_in = Z_NULL;
305
+ ret = inflateInit2(&strm, -15);
306
+ if (junk == NULL || ret != Z_OK)
307
+ bail("out of memory", "");
308
+
309
+ /* inflate and copy compressed data, clear last-block bit if requested */
310
+ len = 0;
311
+ zpull(&strm, in);
312
+ start = in->next;
313
+ last = start[0] & 1;
314
+ if (last && clr)
315
+ start[0] &= ~1;
316
+ strm.avail_out = 0;
317
+ for (;;) {
318
+ /* if input used and output done, write used input and get more */
319
+ if (strm.avail_in == 0 && strm.avail_out != 0) {
320
+ fwrite(start, 1, strm.next_in - start, out);
321
+ start = in->buf;
322
+ in->left = 0;
323
+ zpull(&strm, in);
324
+ }
325
+
326
+ /* decompress -- return early when end-of-block reached */
327
+ strm.avail_out = CHUNK;
328
+ strm.next_out = junk;
329
+ ret = inflate(&strm, Z_BLOCK);
330
+ switch (ret) {
331
+ case Z_MEM_ERROR:
332
+ bail("out of memory", "");
333
+ case Z_DATA_ERROR:
334
+ bail("invalid compressed data in ", in->name);
335
+ }
336
+
337
+ /* update length of uncompressed data */
338
+ len += CHUNK - strm.avail_out;
339
+
340
+ /* check for block boundary (only get this when block copied out) */
341
+ if (strm.data_type & 128) {
342
+ /* if that was the last block, then done */
343
+ if (last)
344
+ break;
345
+
346
+ /* number of unused bits in last byte */
347
+ pos = strm.data_type & 7;
348
+
349
+ /* find the next last-block bit */
350
+ if (pos != 0) {
351
+ /* next last-block bit is in last used byte */
352
+ pos = 0x100 >> pos;
353
+ last = strm.next_in[-1] & pos;
354
+ if (last && clr)
355
+ in->buf[strm.next_in - in->buf - 1] &= ~pos;
356
+ }
357
+ else {
358
+ /* next last-block bit is in next unused byte */
359
+ if (strm.avail_in == 0) {
360
+ /* don't have that byte yet -- get it */
361
+ fwrite(start, 1, strm.next_in - start, out);
362
+ start = in->buf;
363
+ in->left = 0;
364
+ zpull(&strm, in);
365
+ }
366
+ last = strm.next_in[0] & 1;
367
+ if (last && clr)
368
+ in->buf[strm.next_in - in->buf] &= ~1;
369
+ }
370
+ }
371
+ }
372
+
373
+ /* update buffer with unused input */
374
+ in->left = strm.avail_in;
375
+ in->next = in->buf + (strm.next_in - in->buf);
376
+
377
+ /* copy used input, write empty blocks to get to byte boundary */
378
+ pos = strm.data_type & 7;
379
+ fwrite(start, 1, in->next - start - 1, out);
380
+ last = in->next[-1];
381
+ if (pos == 0 || !clr)
382
+ /* already at byte boundary, or last file: write last byte */
383
+ putc(last, out);
384
+ else {
385
+ /* append empty blocks to last byte */
386
+ last &= ((0x100 >> pos) - 1); /* assure unused bits are zero */
387
+ if (pos & 1) {
388
+ /* odd -- append an empty stored block */
389
+ putc(last, out);
390
+ if (pos == 1)
391
+ putc(0, out); /* two more bits in block header */
392
+ fwrite("\0\0\xff\xff", 1, 4, out);
393
+ }
394
+ else {
395
+ /* even -- append 1, 2, or 3 empty fixed blocks */
396
+ switch (pos) {
397
+ case 6:
398
+ putc(last | 8, out);
399
+ last = 0;
400
+ case 4:
401
+ putc(last | 0x20, out);
402
+ last = 0;
403
+ case 2:
404
+ putc(last | 0x80, out);
405
+ putc(0, out);
406
+ }
407
+ }
408
+ }
409
+
410
+ /* update crc and tot */
411
+ *crc = crc32_combine(*crc, bget4(in), len);
412
+ *tot += (unsigned long)len;
413
+
414
+ /* clean up */
415
+ inflateEnd(&strm);
416
+ free(junk);
417
+ bclose(in);
418
+
419
+ /* write trailer if this is the last gzip file */
420
+ if (!clr) {
421
+ put4(*crc, out);
422
+ put4(*tot, out);
423
+ }
424
+ }
425
+
426
+ /* join the gzip files on the command line, write result to stdout */
427
+ int main(int argc, char **argv)
428
+ {
429
+ unsigned long crc, tot; /* running crc and total uncompressed length */
430
+
431
+ /* skip command name */
432
+ argc--;
433
+ argv++;
434
+
435
+ /* show usage if no arguments */
436
+ if (argc == 0) {
437
+ fputs("gzjoin usage: gzjoin f1.gz [f2.gz [f3.gz ...]] > fjoin.gz\n",
438
+ stderr);
439
+ return 0;
440
+ }
441
+
442
+ /* join gzip files on command line and write to stdout */
443
+ gzinit(&crc, &tot, stdout);
444
+ while (argc--)
445
+ gzcopy(*argv++, argc, &crc, &tot, stdout);
446
+
447
+ /* done */
448
+ return 0;
449
+ }