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,667 +1,667 @@
1
- /*
2
- * untgz.c -- Display contents and extract files from a gzip'd TAR file
3
- *
4
- * written by Pedro A. Aranda Gutierrez <paag@tid.es>
5
- * adaptation to Unix by Jean-loup Gailly <jloup@gzip.org>
6
- * various fixes by Cosmin Truta <cosmint@cs.ubbcluj.ro>
7
- *
8
- * This software is provided 'as-is', without any express or implied
9
- * warranty. In no event will the authors be held liable for any damages
10
- * arising from the use of this software.
11
- *
12
- * Permission is granted to anyone to use this software for any purpose,
13
- * including commercial applications, and to alter it and redistribute it
14
- * freely, subject to the following restrictions:
15
- *
16
- * 1. The origin of this software must not be misrepresented; you must not
17
- * claim that you wrote the original software. If you use this software
18
- * in a product, an acknowledgment in the product documentation would be
19
- * appreciated but is not required.
20
- * 2. Altered source versions must be plainly marked as such, and must not be
21
- * misrepresented as being the original software.
22
- * 3. This notice may not be removed or altered from any source distribution.
23
- */
24
-
25
- #include <stdio.h>
26
- #include <stdlib.h>
27
- #include <string.h>
28
- #include <time.h>
29
- #include <errno.h>
30
-
31
- #include "zlib.h"
32
-
33
- #ifdef _WIN32
34
- # include <direct.h>
35
- # include <io.h>
36
- # include <windows.h>
37
- # ifndef F_OK
38
- # define F_OK 0
39
- # endif
40
- # define mkdir(dirname,mode) _mkdir(dirname)
41
- # ifdef _MSC_VER
42
- # define access(path,mode) _access(path,mode)
43
- # define chmod(path,mode) _chmod(path,mode)
44
- # define strdup(str) _strdup(str)
45
- # endif
46
- #else
47
- # include <sys/stat.h>
48
- # include <unistd.h>
49
- # include <utime.h>
50
- #endif
51
-
52
-
53
- /* values used in typeflag field */
54
-
55
- #define REGTYPE '0' /* regular file */
56
- #define AREGTYPE '\0' /* regular file */
57
- #define LNKTYPE '1' /* link */
58
- #define SYMTYPE '2' /* reserved */
59
- #define CHRTYPE '3' /* character special */
60
- #define BLKTYPE '4' /* block special */
61
- #define DIRTYPE '5' /* directory */
62
- #define FIFOTYPE '6' /* FIFO special */
63
- #define CONTTYPE '7' /* reserved */
64
-
65
- /* GNU tar extensions */
66
-
67
- #define GNUTYPE_DUMPDIR 'D' /* file names from dumped directory */
68
- #define GNUTYPE_LONGLINK 'K' /* long link name */
69
- #define GNUTYPE_LONGNAME 'L' /* long file name */
70
- #define GNUTYPE_MULTIVOL 'M' /* continuation of file from another volume */
71
- #define GNUTYPE_NAMES 'N' /* file name that does not fit into main hdr */
72
- #define GNUTYPE_SPARSE 'S' /* sparse file */
73
- #define GNUTYPE_VOLHDR 'V' /* tape/volume header */
74
-
75
-
76
- /* tar header */
77
-
78
- #define BLOCKSIZE 512
79
- #define SHORTNAMESIZE 100
80
-
81
- struct tar_header
82
- { /* byte offset */
83
- char name[100]; /* 0 */
84
- char mode[8]; /* 100 */
85
- char uid[8]; /* 108 */
86
- char gid[8]; /* 116 */
87
- char size[12]; /* 124 */
88
- char mtime[12]; /* 136 */
89
- char chksum[8]; /* 148 */
90
- char typeflag; /* 156 */
91
- char linkname[100]; /* 157 */
92
- char magic[6]; /* 257 */
93
- char version[2]; /* 263 */
94
- char uname[32]; /* 265 */
95
- char gname[32]; /* 297 */
96
- char devmajor[8]; /* 329 */
97
- char devminor[8]; /* 337 */
98
- char prefix[155]; /* 345 */
99
- /* 500 */
100
- };
101
-
102
- union tar_buffer
103
- {
104
- char buffer[BLOCKSIZE];
105
- struct tar_header header;
106
- };
107
-
108
- struct attr_item
109
- {
110
- struct attr_item *next;
111
- char *fname;
112
- int mode;
113
- time_t time;
114
- };
115
-
116
- enum { TGZ_EXTRACT, TGZ_LIST, TGZ_INVALID };
117
-
118
- char *prog;
119
-
120
- void error(const char *msg)
121
- {
122
- fprintf(stderr, "%s: %s\n", prog, msg);
123
- exit(1);
124
- }
125
-
126
- const char *TGZsuffix[] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL };
127
-
128
- /* return the file name of the TGZ archive */
129
- /* or NULL if it does not exist */
130
-
131
- char *TGZfname (const char *arcname)
132
- {
133
- static char buffer[1024];
134
- int origlen,i;
135
-
136
- strcpy(buffer,arcname);
137
- origlen = strlen(buffer);
138
-
139
- for (i=0; TGZsuffix[i]; i++)
140
- {
141
- strcpy(buffer+origlen,TGZsuffix[i]);
142
- if (access(buffer,F_OK) == 0)
143
- return buffer;
144
- }
145
- return NULL;
146
- }
147
-
148
-
149
- /* error message for the filename */
150
-
151
- void TGZnotfound (const char *arcname)
152
- {
153
- int i;
154
-
155
- fprintf(stderr,"%s: Couldn't find ",prog);
156
- for (i=0;TGZsuffix[i];i++)
157
- fprintf(stderr,(TGZsuffix[i+1]) ? "%s%s, " : "or %s%s\n",
158
- arcname,
159
- TGZsuffix[i]);
160
- exit(1);
161
- }
162
-
163
-
164
- /* convert octal digits to int */
165
- /* on error return -1 */
166
-
167
- int getoct (char *p,int width)
168
- {
169
- int result = 0;
170
- char c;
171
-
172
- while (width--)
173
- {
174
- c = *p++;
175
- if (c == 0)
176
- break;
177
- if (c == ' ')
178
- continue;
179
- if (c < '0' || c > '7')
180
- return -1;
181
- result = result * 8 + (c - '0');
182
- }
183
- return result;
184
- }
185
-
186
-
187
- /* convert time_t to string */
188
- /* use the "YYYY/MM/DD hh:mm:ss" format */
189
-
190
- char *strtime (time_t *t)
191
- {
192
- struct tm *local;
193
- static char result[32];
194
-
195
- local = localtime(t);
196
- sprintf(result,"%4d/%02d/%02d %02d:%02d:%02d",
197
- local->tm_year+1900, local->tm_mon+1, local->tm_mday,
198
- local->tm_hour, local->tm_min, local->tm_sec);
199
- return result;
200
- }
201
-
202
-
203
- /* set file time */
204
-
205
- int setfiletime (char *fname,time_t ftime)
206
- {
207
- #ifdef _WIN32
208
- static int isWinNT = -1;
209
- SYSTEMTIME st;
210
- FILETIME locft, modft;
211
- struct tm *loctm;
212
- HANDLE hFile;
213
- int result;
214
-
215
- loctm = localtime(&ftime);
216
- if (loctm == NULL)
217
- return -1;
218
-
219
- st.wYear = (WORD)loctm->tm_year + 1900;
220
- st.wMonth = (WORD)loctm->tm_mon + 1;
221
- st.wDayOfWeek = (WORD)loctm->tm_wday;
222
- st.wDay = (WORD)loctm->tm_mday;
223
- st.wHour = (WORD)loctm->tm_hour;
224
- st.wMinute = (WORD)loctm->tm_min;
225
- st.wSecond = (WORD)loctm->tm_sec;
226
- st.wMilliseconds = 0;
227
- if (!SystemTimeToFileTime(&st, &locft) ||
228
- !LocalFileTimeToFileTime(&locft, &modft))
229
- return -1;
230
-
231
- if (isWinNT < 0)
232
- isWinNT = (GetVersion() < 0x80000000) ? 1 : 0;
233
- hFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
234
- (isWinNT ? FILE_FLAG_BACKUP_SEMANTICS : 0),
235
- NULL);
236
- if (hFile == INVALID_HANDLE_VALUE)
237
- return -1;
238
- result = SetFileTime(hFile, NULL, NULL, &modft) ? 0 : -1;
239
- CloseHandle(hFile);
240
- return result;
241
- #else
242
- struct utimbuf settime;
243
-
244
- settime.actime = settime.modtime = ftime;
245
- return utime(fname,&settime);
246
- #endif
247
- }
248
-
249
-
250
- /* push file attributes */
251
-
252
- void push_attr(struct attr_item **list,char *fname,int mode,time_t time)
253
- {
254
- struct attr_item *item;
255
-
256
- item = (struct attr_item *)malloc(sizeof(struct attr_item));
257
- if (item == NULL)
258
- error("Out of memory");
259
- item->fname = strdup(fname);
260
- item->mode = mode;
261
- item->time = time;
262
- item->next = *list;
263
- *list = item;
264
- }
265
-
266
-
267
- /* restore file attributes */
268
-
269
- void restore_attr(struct attr_item **list)
270
- {
271
- struct attr_item *item, *prev;
272
-
273
- for (item = *list; item != NULL; )
274
- {
275
- setfiletime(item->fname,item->time);
276
- chmod(item->fname,item->mode);
277
- prev = item;
278
- item = item->next;
279
- free(prev);
280
- }
281
- *list = NULL;
282
- }
283
-
284
-
285
- /* match regular expression */
286
-
287
- #define ISSPECIAL(c) (((c) == '*') || ((c) == '/'))
288
-
289
- int ExprMatch (char *string,char *expr)
290
- {
291
- while (1)
292
- {
293
- if (ISSPECIAL(*expr))
294
- {
295
- if (*expr == '/')
296
- {
297
- if (*string != '\\' && *string != '/')
298
- return 0;
299
- string ++; expr++;
300
- }
301
- else if (*expr == '*')
302
- {
303
- if (*expr ++ == 0)
304
- return 1;
305
- while (*++string != *expr)
306
- if (*string == 0)
307
- return 0;
308
- }
309
- }
310
- else
311
- {
312
- if (*string != *expr)
313
- return 0;
314
- if (*expr++ == 0)
315
- return 1;
316
- string++;
317
- }
318
- }
319
- }
320
-
321
-
322
- /* recursive mkdir */
323
- /* abort on ENOENT; ignore other errors like "directory already exists" */
324
- /* return 1 if OK */
325
- /* 0 on error */
326
-
327
- int makedir (char *newdir)
328
- {
329
- char *buffer = strdup(newdir);
330
- char *p;
331
- int len = strlen(buffer);
332
-
333
- if (len <= 0) {
334
- free(buffer);
335
- return 0;
336
- }
337
- if (buffer[len-1] == '/') {
338
- buffer[len-1] = '\0';
339
- }
340
- if (mkdir(buffer, 0755) == 0)
341
- {
342
- free(buffer);
343
- return 1;
344
- }
345
-
346
- p = buffer+1;
347
- while (1)
348
- {
349
- char hold;
350
-
351
- while(*p && *p != '\\' && *p != '/')
352
- p++;
353
- hold = *p;
354
- *p = 0;
355
- if ((mkdir(buffer, 0755) == -1) && (errno == ENOENT))
356
- {
357
- fprintf(stderr,"%s: Couldn't create directory %s\n",prog,buffer);
358
- free(buffer);
359
- return 0;
360
- }
361
- if (hold == 0)
362
- break;
363
- *p++ = hold;
364
- }
365
- free(buffer);
366
- return 1;
367
- }
368
-
369
-
370
- int matchname (int arg,int argc,char **argv,char *fname)
371
- {
372
- if (arg == argc) /* no arguments given (untgz tgzarchive) */
373
- return 1;
374
-
375
- while (arg < argc)
376
- if (ExprMatch(fname,argv[arg++]))
377
- return 1;
378
-
379
- return 0; /* ignore this for the moment being */
380
- }
381
-
382
-
383
- /* tar file list or extract */
384
-
385
- int tar (gzFile in,int action,int arg,int argc,char **argv)
386
- {
387
- union tar_buffer buffer;
388
- int len;
389
- int err;
390
- int getheader = 1;
391
- int remaining = 0;
392
- FILE *outfile = NULL;
393
- char fname[BLOCKSIZE];
394
- int tarmode;
395
- time_t tartime;
396
- struct attr_item *attributes = NULL;
397
-
398
- if (action == TGZ_LIST)
399
- printf(" date time size file\n"
400
- " ---------- -------- --------- -------------------------------------\n");
401
- while (1)
402
- {
403
- len = gzread(in, &buffer, BLOCKSIZE);
404
- if (len < 0)
405
- error(gzerror(in, &err));
406
- /*
407
- * Always expect complete blocks to process
408
- * the tar information.
409
- */
410
- if (len != BLOCKSIZE)
411
- {
412
- action = TGZ_INVALID; /* force error exit */
413
- remaining = 0; /* force I/O cleanup */
414
- }
415
-
416
- /*
417
- * If we have to get a tar header
418
- */
419
- if (getheader >= 1)
420
- {
421
- /*
422
- * if we met the end of the tar
423
- * or the end-of-tar block,
424
- * we are done
425
- */
426
- if (len == 0 || buffer.header.name[0] == 0)
427
- break;
428
-
429
- tarmode = getoct(buffer.header.mode,8);
430
- tartime = (time_t)getoct(buffer.header.mtime,12);
431
- if (tarmode == -1 || tartime == (time_t)-1)
432
- {
433
- buffer.header.name[0] = 0;
434
- action = TGZ_INVALID;
435
- }
436
-
437
- if (getheader == 1)
438
- {
439
- strncpy(fname,buffer.header.name,SHORTNAMESIZE);
440
- if (fname[SHORTNAMESIZE-1] != 0)
441
- fname[SHORTNAMESIZE] = 0;
442
- }
443
- else
444
- {
445
- /*
446
- * The file name is longer than SHORTNAMESIZE
447
- */
448
- if (strncmp(fname,buffer.header.name,SHORTNAMESIZE-1) != 0)
449
- error("bad long name");
450
- getheader = 1;
451
- }
452
-
453
- /*
454
- * Act according to the type flag
455
- */
456
- switch (buffer.header.typeflag)
457
- {
458
- case DIRTYPE:
459
- if (action == TGZ_LIST)
460
- printf(" %s <dir> %s\n",strtime(&tartime),fname);
461
- if (action == TGZ_EXTRACT)
462
- {
463
- makedir(fname);
464
- push_attr(&attributes,fname,tarmode,tartime);
465
- }
466
- break;
467
- case REGTYPE:
468
- case AREGTYPE:
469
- remaining = getoct(buffer.header.size,12);
470
- if (remaining == -1)
471
- {
472
- action = TGZ_INVALID;
473
- break;
474
- }
475
- if (action == TGZ_LIST)
476
- printf(" %s %9d %s\n",strtime(&tartime),remaining,fname);
477
- else if (action == TGZ_EXTRACT)
478
- {
479
- if (matchname(arg,argc,argv,fname))
480
- {
481
- outfile = fopen(fname,"wb");
482
- if (outfile == NULL) {
483
- /* try creating directory */
484
- char *p = strrchr(fname, '/');
485
- if (p != NULL) {
486
- *p = '\0';
487
- makedir(fname);
488
- *p = '/';
489
- outfile = fopen(fname,"wb");
490
- }
491
- }
492
- if (outfile != NULL)
493
- printf("Extracting %s\n",fname);
494
- else
495
- fprintf(stderr, "%s: Couldn't create %s",prog,fname);
496
- }
497
- else
498
- outfile = NULL;
499
- }
500
- getheader = 0;
501
- break;
502
- case GNUTYPE_LONGLINK:
503
- case GNUTYPE_LONGNAME:
504
- remaining = getoct(buffer.header.size,12);
505
- if (remaining < 0 || remaining >= BLOCKSIZE)
506
- {
507
- action = TGZ_INVALID;
508
- break;
509
- }
510
- len = gzread(in, fname, BLOCKSIZE);
511
- if (len < 0)
512
- error(gzerror(in, &err));
513
- if (fname[BLOCKSIZE-1] != 0 || (int)strlen(fname) > remaining)
514
- {
515
- action = TGZ_INVALID;
516
- break;
517
- }
518
- getheader = 2;
519
- break;
520
- default:
521
- if (action == TGZ_LIST)
522
- printf(" %s <---> %s\n",strtime(&tartime),fname);
523
- break;
524
- }
525
- }
526
- else
527
- {
528
- unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining;
529
-
530
- if (outfile != NULL)
531
- {
532
- if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes)
533
- {
534
- fprintf(stderr,
535
- "%s: Error writing %s -- skipping\n",prog,fname);
536
- fclose(outfile);
537
- outfile = NULL;
538
- remove(fname);
539
- }
540
- }
541
- remaining -= bytes;
542
- }
543
-
544
- if (remaining == 0)
545
- {
546
- getheader = 1;
547
- if (outfile != NULL)
548
- {
549
- fclose(outfile);
550
- outfile = NULL;
551
- if (action != TGZ_INVALID)
552
- push_attr(&attributes,fname,tarmode,tartime);
553
- }
554
- }
555
-
556
- /*
557
- * Abandon if errors are found
558
- */
559
- if (action == TGZ_INVALID)
560
- {
561
- error("broken archive");
562
- break;
563
- }
564
- }
565
-
566
- /*
567
- * Restore file modes and time stamps
568
- */
569
- restore_attr(&attributes);
570
-
571
- if (gzclose(in) != Z_OK)
572
- error("failed gzclose");
573
-
574
- return 0;
575
- }
576
-
577
-
578
- /* ============================================================ */
579
-
580
- void help(int exitval)
581
- {
582
- printf("untgz version 0.2.1\n"
583
- " using zlib version %s\n\n",
584
- zlibVersion());
585
- printf("Usage: untgz file.tgz extract all files\n"
586
- " untgz file.tgz fname ... extract selected files\n"
587
- " untgz -l file.tgz list archive contents\n"
588
- " untgz -h display this help\n");
589
- exit(exitval);
590
- }
591
-
592
-
593
- /* ============================================================ */
594
-
595
- #if defined(WIN32) && defined(__GNUC__)
596
- int _CRT_glob = 0; /* disable argument globbing in MinGW */
597
- #endif
598
-
599
- int main(int argc,char **argv)
600
- {
601
- int action = TGZ_EXTRACT;
602
- int arg = 1;
603
- char *TGZfile;
604
- gzFile f;
605
-
606
- prog = strrchr(argv[0],'\\');
607
- if (prog == NULL)
608
- {
609
- prog = strrchr(argv[0],'/');
610
- if (prog == NULL)
611
- {
612
- prog = strrchr(argv[0],':');
613
- if (prog == NULL)
614
- prog = argv[0];
615
- else
616
- prog++;
617
- }
618
- else
619
- prog++;
620
- }
621
- else
622
- prog++;
623
-
624
- if (argc == 1)
625
- help(0);
626
-
627
- if (strcmp(argv[arg],"-l") == 0)
628
- {
629
- action = TGZ_LIST;
630
- if (argc == ++arg)
631
- help(0);
632
- }
633
- else if (strcmp(argv[arg],"-h") == 0)
634
- {
635
- help(0);
636
- }
637
-
638
- if ((TGZfile = TGZfname(argv[arg])) == NULL)
639
- TGZnotfound(argv[arg]);
640
-
641
- ++arg;
642
- if ((action == TGZ_LIST) && (arg != argc))
643
- help(1);
644
-
645
- /*
646
- * Process the TGZ file
647
- */
648
- switch(action)
649
- {
650
- case TGZ_LIST:
651
- case TGZ_EXTRACT:
652
- f = gzopen(TGZfile,"rb");
653
- if (f == NULL)
654
- {
655
- fprintf(stderr,"%s: Couldn't gzopen %s\n",prog,TGZfile);
656
- return 1;
657
- }
658
- exit(tar(f, action, arg, argc, argv));
659
- break;
660
-
661
- default:
662
- error("Unknown option");
663
- exit(1);
664
- }
665
-
666
- return 0;
667
- }
1
+ /*
2
+ * untgz.c -- Display contents and extract files from a gzip'd TAR file
3
+ *
4
+ * written by Pedro A. Aranda Gutierrez <paag@tid.es>
5
+ * adaptation to Unix by Jean-loup Gailly <jloup@gzip.org>
6
+ * various fixes by Cosmin Truta <cosmint@cs.ubbcluj.ro>
7
+ *
8
+ * This software is provided 'as-is', without any express or implied
9
+ * warranty. In no event will the authors be held liable for any damages
10
+ * arising from the use of this software.
11
+ *
12
+ * Permission is granted to anyone to use this software for any purpose,
13
+ * including commercial applications, and to alter it and redistribute it
14
+ * freely, subject to the following restrictions:
15
+ *
16
+ * 1. The origin of this software must not be misrepresented; you must not
17
+ * claim that you wrote the original software. If you use this software
18
+ * in a product, an acknowledgment in the product documentation would be
19
+ * appreciated but is not required.
20
+ * 2. Altered source versions must be plainly marked as such, and must not be
21
+ * misrepresented as being the original software.
22
+ * 3. This notice may not be removed or altered from any source distribution.
23
+ */
24
+
25
+ #include <stdio.h>
26
+ #include <stdlib.h>
27
+ #include <string.h>
28
+ #include <time.h>
29
+ #include <errno.h>
30
+
31
+ #include "zlib.h"
32
+
33
+ #ifdef _WIN32
34
+ # include <direct.h>
35
+ # include <io.h>
36
+ # include <windows.h>
37
+ # ifndef F_OK
38
+ # define F_OK 0
39
+ # endif
40
+ # define mkdir(dirname,mode) _mkdir(dirname)
41
+ # ifdef _MSC_VER
42
+ # define access(path,mode) _access(path,mode)
43
+ # define chmod(path,mode) _chmod(path,mode)
44
+ # define strdup(str) _strdup(str)
45
+ # endif
46
+ #else
47
+ # include <sys/stat.h>
48
+ # include <unistd.h>
49
+ # include <utime.h>
50
+ #endif
51
+
52
+
53
+ /* values used in typeflag field */
54
+
55
+ #define REGTYPE '0' /* regular file */
56
+ #define AREGTYPE '\0' /* regular file */
57
+ #define LNKTYPE '1' /* link */
58
+ #define SYMTYPE '2' /* reserved */
59
+ #define CHRTYPE '3' /* character special */
60
+ #define BLKTYPE '4' /* block special */
61
+ #define DIRTYPE '5' /* directory */
62
+ #define FIFOTYPE '6' /* FIFO special */
63
+ #define CONTTYPE '7' /* reserved */
64
+
65
+ /* GNU tar extensions */
66
+
67
+ #define GNUTYPE_DUMPDIR 'D' /* file names from dumped directory */
68
+ #define GNUTYPE_LONGLINK 'K' /* long link name */
69
+ #define GNUTYPE_LONGNAME 'L' /* long file name */
70
+ #define GNUTYPE_MULTIVOL 'M' /* continuation of file from another volume */
71
+ #define GNUTYPE_NAMES 'N' /* file name that does not fit into main hdr */
72
+ #define GNUTYPE_SPARSE 'S' /* sparse file */
73
+ #define GNUTYPE_VOLHDR 'V' /* tape/volume header */
74
+
75
+
76
+ /* tar header */
77
+
78
+ #define BLOCKSIZE 512
79
+ #define SHORTNAMESIZE 100
80
+
81
+ struct tar_header
82
+ { /* byte offset */
83
+ char name[100]; /* 0 */
84
+ char mode[8]; /* 100 */
85
+ char uid[8]; /* 108 */
86
+ char gid[8]; /* 116 */
87
+ char size[12]; /* 124 */
88
+ char mtime[12]; /* 136 */
89
+ char chksum[8]; /* 148 */
90
+ char typeflag; /* 156 */
91
+ char linkname[100]; /* 157 */
92
+ char magic[6]; /* 257 */
93
+ char version[2]; /* 263 */
94
+ char uname[32]; /* 265 */
95
+ char gname[32]; /* 297 */
96
+ char devmajor[8]; /* 329 */
97
+ char devminor[8]; /* 337 */
98
+ char prefix[155]; /* 345 */
99
+ /* 500 */
100
+ };
101
+
102
+ union tar_buffer
103
+ {
104
+ char buffer[BLOCKSIZE];
105
+ struct tar_header header;
106
+ };
107
+
108
+ struct attr_item
109
+ {
110
+ struct attr_item *next;
111
+ char *fname;
112
+ int mode;
113
+ time_t time;
114
+ };
115
+
116
+ enum { TGZ_EXTRACT, TGZ_LIST, TGZ_INVALID };
117
+
118
+ char *prog;
119
+
120
+ void error(const char *msg)
121
+ {
122
+ fprintf(stderr, "%s: %s\n", prog, msg);
123
+ exit(1);
124
+ }
125
+
126
+ const char *TGZsuffix[] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL };
127
+
128
+ /* return the file name of the TGZ archive */
129
+ /* or NULL if it does not exist */
130
+
131
+ char *TGZfname (const char *arcname)
132
+ {
133
+ static char buffer[1024];
134
+ int origlen,i;
135
+
136
+ strcpy(buffer,arcname);
137
+ origlen = strlen(buffer);
138
+
139
+ for (i=0; TGZsuffix[i]; i++)
140
+ {
141
+ strcpy(buffer+origlen,TGZsuffix[i]);
142
+ if (access(buffer,F_OK) == 0)
143
+ return buffer;
144
+ }
145
+ return NULL;
146
+ }
147
+
148
+
149
+ /* error message for the filename */
150
+
151
+ void TGZnotfound (const char *arcname)
152
+ {
153
+ int i;
154
+
155
+ fprintf(stderr,"%s: Couldn't find ",prog);
156
+ for (i=0;TGZsuffix[i];i++)
157
+ fprintf(stderr,(TGZsuffix[i+1]) ? "%s%s, " : "or %s%s\n",
158
+ arcname,
159
+ TGZsuffix[i]);
160
+ exit(1);
161
+ }
162
+
163
+
164
+ /* convert octal digits to int */
165
+ /* on error return -1 */
166
+
167
+ int getoct (char *p,int width)
168
+ {
169
+ int result = 0;
170
+ char c;
171
+
172
+ while (width--)
173
+ {
174
+ c = *p++;
175
+ if (c == 0)
176
+ break;
177
+ if (c == ' ')
178
+ continue;
179
+ if (c < '0' || c > '7')
180
+ return -1;
181
+ result = result * 8 + (c - '0');
182
+ }
183
+ return result;
184
+ }
185
+
186
+
187
+ /* convert time_t to string */
188
+ /* use the "YYYY/MM/DD hh:mm:ss" format */
189
+
190
+ char *strtime (time_t *t)
191
+ {
192
+ struct tm *local;
193
+ static char result[32];
194
+
195
+ local = localtime(t);
196
+ sprintf(result,"%4d/%02d/%02d %02d:%02d:%02d",
197
+ local->tm_year+1900, local->tm_mon+1, local->tm_mday,
198
+ local->tm_hour, local->tm_min, local->tm_sec);
199
+ return result;
200
+ }
201
+
202
+
203
+ /* set file time */
204
+
205
+ int setfiletime (char *fname,time_t ftime)
206
+ {
207
+ #ifdef _WIN32
208
+ static int isWinNT = -1;
209
+ SYSTEMTIME st;
210
+ FILETIME locft, modft;
211
+ struct tm *loctm;
212
+ HANDLE hFile;
213
+ int result;
214
+
215
+ loctm = localtime(&ftime);
216
+ if (loctm == NULL)
217
+ return -1;
218
+
219
+ st.wYear = (WORD)loctm->tm_year + 1900;
220
+ st.wMonth = (WORD)loctm->tm_mon + 1;
221
+ st.wDayOfWeek = (WORD)loctm->tm_wday;
222
+ st.wDay = (WORD)loctm->tm_mday;
223
+ st.wHour = (WORD)loctm->tm_hour;
224
+ st.wMinute = (WORD)loctm->tm_min;
225
+ st.wSecond = (WORD)loctm->tm_sec;
226
+ st.wMilliseconds = 0;
227
+ if (!SystemTimeToFileTime(&st, &locft) ||
228
+ !LocalFileTimeToFileTime(&locft, &modft))
229
+ return -1;
230
+
231
+ if (isWinNT < 0)
232
+ isWinNT = (GetVersion() < 0x80000000) ? 1 : 0;
233
+ hFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
234
+ (isWinNT ? FILE_FLAG_BACKUP_SEMANTICS : 0),
235
+ NULL);
236
+ if (hFile == INVALID_HANDLE_VALUE)
237
+ return -1;
238
+ result = SetFileTime(hFile, NULL, NULL, &modft) ? 0 : -1;
239
+ CloseHandle(hFile);
240
+ return result;
241
+ #else
242
+ struct utimbuf settime;
243
+
244
+ settime.actime = settime.modtime = ftime;
245
+ return utime(fname,&settime);
246
+ #endif
247
+ }
248
+
249
+
250
+ /* push file attributes */
251
+
252
+ void push_attr(struct attr_item **list,char *fname,int mode,time_t time)
253
+ {
254
+ struct attr_item *item;
255
+
256
+ item = (struct attr_item *)malloc(sizeof(struct attr_item));
257
+ if (item == NULL)
258
+ error("Out of memory");
259
+ item->fname = strdup(fname);
260
+ item->mode = mode;
261
+ item->time = time;
262
+ item->next = *list;
263
+ *list = item;
264
+ }
265
+
266
+
267
+ /* restore file attributes */
268
+
269
+ void restore_attr(struct attr_item **list)
270
+ {
271
+ struct attr_item *item, *prev;
272
+
273
+ for (item = *list; item != NULL; )
274
+ {
275
+ setfiletime(item->fname,item->time);
276
+ chmod(item->fname,item->mode);
277
+ prev = item;
278
+ item = item->next;
279
+ free(prev);
280
+ }
281
+ *list = NULL;
282
+ }
283
+
284
+
285
+ /* match regular expression */
286
+
287
+ #define ISSPECIAL(c) (((c) == '*') || ((c) == '/'))
288
+
289
+ int ExprMatch (char *string,char *expr)
290
+ {
291
+ while (1)
292
+ {
293
+ if (ISSPECIAL(*expr))
294
+ {
295
+ if (*expr == '/')
296
+ {
297
+ if (*string != '\\' && *string != '/')
298
+ return 0;
299
+ string ++; expr++;
300
+ }
301
+ else if (*expr == '*')
302
+ {
303
+ if (*expr ++ == 0)
304
+ return 1;
305
+ while (*++string != *expr)
306
+ if (*string == 0)
307
+ return 0;
308
+ }
309
+ }
310
+ else
311
+ {
312
+ if (*string != *expr)
313
+ return 0;
314
+ if (*expr++ == 0)
315
+ return 1;
316
+ string++;
317
+ }
318
+ }
319
+ }
320
+
321
+
322
+ /* recursive mkdir */
323
+ /* abort on ENOENT; ignore other errors like "directory already exists" */
324
+ /* return 1 if OK */
325
+ /* 0 on error */
326
+
327
+ int makedir (char *newdir)
328
+ {
329
+ char *buffer = strdup(newdir);
330
+ char *p;
331
+ int len = strlen(buffer);
332
+
333
+ if (len <= 0) {
334
+ free(buffer);
335
+ return 0;
336
+ }
337
+ if (buffer[len-1] == '/') {
338
+ buffer[len-1] = '\0';
339
+ }
340
+ if (mkdir(buffer, 0755) == 0)
341
+ {
342
+ free(buffer);
343
+ return 1;
344
+ }
345
+
346
+ p = buffer+1;
347
+ while (1)
348
+ {
349
+ char hold;
350
+
351
+ while(*p && *p != '\\' && *p != '/')
352
+ p++;
353
+ hold = *p;
354
+ *p = 0;
355
+ if ((mkdir(buffer, 0755) == -1) && (errno == ENOENT))
356
+ {
357
+ fprintf(stderr,"%s: Couldn't create directory %s\n",prog,buffer);
358
+ free(buffer);
359
+ return 0;
360
+ }
361
+ if (hold == 0)
362
+ break;
363
+ *p++ = hold;
364
+ }
365
+ free(buffer);
366
+ return 1;
367
+ }
368
+
369
+
370
+ int matchname (int arg,int argc,char **argv,char *fname)
371
+ {
372
+ if (arg == argc) /* no arguments given (untgz tgzarchive) */
373
+ return 1;
374
+
375
+ while (arg < argc)
376
+ if (ExprMatch(fname,argv[arg++]))
377
+ return 1;
378
+
379
+ return 0; /* ignore this for the moment being */
380
+ }
381
+
382
+
383
+ /* tar file list or extract */
384
+
385
+ int tar (gzFile in,int action,int arg,int argc,char **argv)
386
+ {
387
+ union tar_buffer buffer;
388
+ int len;
389
+ int err;
390
+ int getheader = 1;
391
+ int remaining = 0;
392
+ FILE *outfile = NULL;
393
+ char fname[BLOCKSIZE];
394
+ int tarmode;
395
+ time_t tartime;
396
+ struct attr_item *attributes = NULL;
397
+
398
+ if (action == TGZ_LIST)
399
+ printf(" date time size file\n"
400
+ " ---------- -------- --------- -------------------------------------\n");
401
+ while (1)
402
+ {
403
+ len = gzread(in, &buffer, BLOCKSIZE);
404
+ if (len < 0)
405
+ error(gzerror(in, &err));
406
+ /*
407
+ * Always expect complete blocks to process
408
+ * the tar information.
409
+ */
410
+ if (len != BLOCKSIZE)
411
+ {
412
+ action = TGZ_INVALID; /* force error exit */
413
+ remaining = 0; /* force I/O cleanup */
414
+ }
415
+
416
+ /*
417
+ * If we have to get a tar header
418
+ */
419
+ if (getheader >= 1)
420
+ {
421
+ /*
422
+ * if we met the end of the tar
423
+ * or the end-of-tar block,
424
+ * we are done
425
+ */
426
+ if (len == 0 || buffer.header.name[0] == 0)
427
+ break;
428
+
429
+ tarmode = getoct(buffer.header.mode,8);
430
+ tartime = (time_t)getoct(buffer.header.mtime,12);
431
+ if (tarmode == -1 || tartime == (time_t)-1)
432
+ {
433
+ buffer.header.name[0] = 0;
434
+ action = TGZ_INVALID;
435
+ }
436
+
437
+ if (getheader == 1)
438
+ {
439
+ strncpy(fname,buffer.header.name,SHORTNAMESIZE);
440
+ if (fname[SHORTNAMESIZE-1] != 0)
441
+ fname[SHORTNAMESIZE] = 0;
442
+ }
443
+ else
444
+ {
445
+ /*
446
+ * The file name is longer than SHORTNAMESIZE
447
+ */
448
+ if (strncmp(fname,buffer.header.name,SHORTNAMESIZE-1) != 0)
449
+ error("bad long name");
450
+ getheader = 1;
451
+ }
452
+
453
+ /*
454
+ * Act according to the type flag
455
+ */
456
+ switch (buffer.header.typeflag)
457
+ {
458
+ case DIRTYPE:
459
+ if (action == TGZ_LIST)
460
+ printf(" %s <dir> %s\n",strtime(&tartime),fname);
461
+ if (action == TGZ_EXTRACT)
462
+ {
463
+ makedir(fname);
464
+ push_attr(&attributes,fname,tarmode,tartime);
465
+ }
466
+ break;
467
+ case REGTYPE:
468
+ case AREGTYPE:
469
+ remaining = getoct(buffer.header.size,12);
470
+ if (remaining == -1)
471
+ {
472
+ action = TGZ_INVALID;
473
+ break;
474
+ }
475
+ if (action == TGZ_LIST)
476
+ printf(" %s %9d %s\n",strtime(&tartime),remaining,fname);
477
+ else if (action == TGZ_EXTRACT)
478
+ {
479
+ if (matchname(arg,argc,argv,fname))
480
+ {
481
+ outfile = fopen(fname,"wb");
482
+ if (outfile == NULL) {
483
+ /* try creating directory */
484
+ char *p = strrchr(fname, '/');
485
+ if (p != NULL) {
486
+ *p = '\0';
487
+ makedir(fname);
488
+ *p = '/';
489
+ outfile = fopen(fname,"wb");
490
+ }
491
+ }
492
+ if (outfile != NULL)
493
+ printf("Extracting %s\n",fname);
494
+ else
495
+ fprintf(stderr, "%s: Couldn't create %s",prog,fname);
496
+ }
497
+ else
498
+ outfile = NULL;
499
+ }
500
+ getheader = 0;
501
+ break;
502
+ case GNUTYPE_LONGLINK:
503
+ case GNUTYPE_LONGNAME:
504
+ remaining = getoct(buffer.header.size,12);
505
+ if (remaining < 0 || remaining >= BLOCKSIZE)
506
+ {
507
+ action = TGZ_INVALID;
508
+ break;
509
+ }
510
+ len = gzread(in, fname, BLOCKSIZE);
511
+ if (len < 0)
512
+ error(gzerror(in, &err));
513
+ if (fname[BLOCKSIZE-1] != 0 || (int)strlen(fname) > remaining)
514
+ {
515
+ action = TGZ_INVALID;
516
+ break;
517
+ }
518
+ getheader = 2;
519
+ break;
520
+ default:
521
+ if (action == TGZ_LIST)
522
+ printf(" %s <---> %s\n",strtime(&tartime),fname);
523
+ break;
524
+ }
525
+ }
526
+ else
527
+ {
528
+ unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining;
529
+
530
+ if (outfile != NULL)
531
+ {
532
+ if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes)
533
+ {
534
+ fprintf(stderr,
535
+ "%s: Error writing %s -- skipping\n",prog,fname);
536
+ fclose(outfile);
537
+ outfile = NULL;
538
+ remove(fname);
539
+ }
540
+ }
541
+ remaining -= bytes;
542
+ }
543
+
544
+ if (remaining == 0)
545
+ {
546
+ getheader = 1;
547
+ if (outfile != NULL)
548
+ {
549
+ fclose(outfile);
550
+ outfile = NULL;
551
+ if (action != TGZ_INVALID)
552
+ push_attr(&attributes,fname,tarmode,tartime);
553
+ }
554
+ }
555
+
556
+ /*
557
+ * Abandon if errors are found
558
+ */
559
+ if (action == TGZ_INVALID)
560
+ {
561
+ error("broken archive");
562
+ break;
563
+ }
564
+ }
565
+
566
+ /*
567
+ * Restore file modes and time stamps
568
+ */
569
+ restore_attr(&attributes);
570
+
571
+ if (gzclose(in) != Z_OK)
572
+ error("failed gzclose");
573
+
574
+ return 0;
575
+ }
576
+
577
+
578
+ /* ============================================================ */
579
+
580
+ void help(int exitval)
581
+ {
582
+ printf("untgz version 0.2.1\n"
583
+ " using zlib version %s\n\n",
584
+ zlibVersion());
585
+ printf("Usage: untgz file.tgz extract all files\n"
586
+ " untgz file.tgz fname ... extract selected files\n"
587
+ " untgz -l file.tgz list archive contents\n"
588
+ " untgz -h display this help\n");
589
+ exit(exitval);
590
+ }
591
+
592
+
593
+ /* ============================================================ */
594
+
595
+ #if defined(WIN32) && defined(__GNUC__)
596
+ int _CRT_glob = 0; /* disable argument globbing in MinGW */
597
+ #endif
598
+
599
+ int main(int argc,char **argv)
600
+ {
601
+ int action = TGZ_EXTRACT;
602
+ int arg = 1;
603
+ char *TGZfile;
604
+ gzFile f;
605
+
606
+ prog = strrchr(argv[0],'\\');
607
+ if (prog == NULL)
608
+ {
609
+ prog = strrchr(argv[0],'/');
610
+ if (prog == NULL)
611
+ {
612
+ prog = strrchr(argv[0],':');
613
+ if (prog == NULL)
614
+ prog = argv[0];
615
+ else
616
+ prog++;
617
+ }
618
+ else
619
+ prog++;
620
+ }
621
+ else
622
+ prog++;
623
+
624
+ if (argc == 1)
625
+ help(0);
626
+
627
+ if (strcmp(argv[arg],"-l") == 0)
628
+ {
629
+ action = TGZ_LIST;
630
+ if (argc == ++arg)
631
+ help(0);
632
+ }
633
+ else if (strcmp(argv[arg],"-h") == 0)
634
+ {
635
+ help(0);
636
+ }
637
+
638
+ if ((TGZfile = TGZfname(argv[arg])) == NULL)
639
+ TGZnotfound(argv[arg]);
640
+
641
+ ++arg;
642
+ if ((action == TGZ_LIST) && (arg != argc))
643
+ help(1);
644
+
645
+ /*
646
+ * Process the TGZ file
647
+ */
648
+ switch(action)
649
+ {
650
+ case TGZ_LIST:
651
+ case TGZ_EXTRACT:
652
+ f = gzopen(TGZfile,"rb");
653
+ if (f == NULL)
654
+ {
655
+ fprintf(stderr,"%s: Couldn't gzopen %s\n",prog,TGZfile);
656
+ return 1;
657
+ }
658
+ exit(tar(f, action, arg, argc, argv));
659
+ break;
660
+
661
+ default:
662
+ error("Unknown option");
663
+ exit(1);
664
+ }
665
+
666
+ return 0;
667
+ }