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,647 +1,647 @@
1
- /*
2
- miniunz.c
3
- Version 1.1, February 14h, 2010
4
- sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
5
-
6
- Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
7
-
8
- Modifications of Unzip for Zip64
9
- Copyright (C) 2007-2008 Even Rouault
10
-
11
- Modifications for Zip64 support on both zip and unzip
12
- Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
13
- */
14
-
15
- #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
16
- #ifndef __USE_FILE_OFFSET64
17
- #define __USE_FILE_OFFSET64
18
- #endif
19
- #ifndef __USE_LARGEFILE64
20
- #define __USE_LARGEFILE64
21
- #endif
22
- #ifndef _LARGEFILE64_SOURCE
23
- #define _LARGEFILE64_SOURCE
24
- #endif
25
- #ifndef _FILE_OFFSET_BIT
26
- #define _FILE_OFFSET_BIT 64
27
- #endif
28
- #endif
29
-
30
- #if defined(__APPLE__) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
31
- // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
32
- #define FOPEN_FUNC(filename, mode) fopen(filename, mode)
33
- #define FTELLO_FUNC(stream) ftello(stream)
34
- #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
35
- #else
36
- #define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
37
- #define FTELLO_FUNC(stream) ftello64(stream)
38
- #define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
39
- #endif
40
-
41
-
42
- #ifndef _CRT_SECURE_NO_WARNINGS
43
- # define _CRT_SECURE_NO_WARNINGS
44
- #endif
45
- #include <stdio.h>
46
- #include <stdlib.h>
47
- #include <string.h>
48
- #include <time.h>
49
- #include <errno.h>
50
- #include <fcntl.h>
51
- #include <sys/stat.h>
52
-
53
- #ifdef _WIN32
54
- # include <direct.h>
55
- # include <io.h>
56
- #else
57
- # include <unistd.h>
58
- # include <utime.h>
59
- #endif
60
-
61
-
62
- #include "unzip.h"
63
-
64
- #define CASESENSITIVITY (0)
65
- #define WRITEBUFFERSIZE (8192)
66
- #define MAXFILENAME (256)
67
-
68
- #ifdef _WIN32
69
- #define USEWIN32IOAPI
70
- #include "iowin32.h"
71
- #endif
72
- /*
73
- mini unzip, demo of unzip package
74
-
75
- usage :
76
- Usage : miniunz [-exvlo] file.zip [file_to_extract] [-d extractdir]
77
-
78
- list the file in the zipfile, and print the content of FILE_ID.ZIP or README.TXT
79
- if it exists
80
- */
81
-
82
-
83
- /* change_file_date : change the date/time of a file
84
- filename : the filename of the file where date/time must be modified
85
- dosdate : the new date at the MSDOS format (4 bytes)
86
- tmu_date : the SAME new date at the tm_unz format */
87
- static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_date) {
88
- #ifdef _WIN32
89
- (void)tmu_date;
90
- HANDLE hFile;
91
- FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite;
92
-
93
- hFile = CreateFileA(filename,GENERIC_READ | GENERIC_WRITE,
94
- 0,NULL,OPEN_EXISTING,0,NULL);
95
- GetFileTime(hFile,&ftCreate,&ftLastAcc,&ftLastWrite);
96
- DosDateTimeToFileTime((WORD)(dosdate>>16),(WORD)dosdate,&ftLocal);
97
- LocalFileTimeToFileTime(&ftLocal,&ftm);
98
- SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
99
- CloseHandle(hFile);
100
- #elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
101
- (void)dosdate;
102
- struct utimbuf ut;
103
- struct tm newdate;
104
- newdate.tm_sec = tmu_date.tm_sec;
105
- newdate.tm_min=tmu_date.tm_min;
106
- newdate.tm_hour=tmu_date.tm_hour;
107
- newdate.tm_mday=tmu_date.tm_mday;
108
- newdate.tm_mon=tmu_date.tm_mon;
109
- if (tmu_date.tm_year > 1900)
110
- newdate.tm_year=tmu_date.tm_year - 1900;
111
- else
112
- newdate.tm_year=tmu_date.tm_year ;
113
- newdate.tm_isdst=-1;
114
-
115
- ut.actime=ut.modtime=mktime(&newdate);
116
- utime(filename,&ut);
117
- #else
118
- (void)filename;
119
- (void)dosdate;
120
- (void)tmu_date;
121
- #endif
122
- }
123
-
124
-
125
- /* mymkdir and change_file_date are not 100 % portable
126
- As I don't know well Unix, I wait feedback for the unix portion */
127
-
128
- static int mymkdir(const char* dirname) {
129
- int ret=0;
130
- #ifdef _WIN32
131
- ret = _mkdir(dirname);
132
- #elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
133
- ret = mkdir (dirname,0775);
134
- #else
135
- (void)dirname;
136
- #endif
137
- return ret;
138
- }
139
-
140
- static int makedir(const char *newdir) {
141
- char *buffer ;
142
- char *p;
143
- size_t len = strlen(newdir);
144
-
145
- if (len == 0)
146
- return 0;
147
-
148
- buffer = (char*)malloc(len+1);
149
- if (buffer==NULL)
150
- {
151
- printf("Error allocating memory\n");
152
- return UNZ_INTERNALERROR;
153
- }
154
- strcpy(buffer,newdir);
155
-
156
- if (buffer[len-1] == '/') {
157
- buffer[len-1] = '\0';
158
- }
159
- if (mymkdir(buffer) == 0)
160
- {
161
- free(buffer);
162
- return 1;
163
- }
164
-
165
- p = buffer+1;
166
- while (1)
167
- {
168
- char hold;
169
-
170
- while(*p && *p != '\\' && *p != '/')
171
- p++;
172
- hold = *p;
173
- *p = 0;
174
- if ((mymkdir(buffer) == -1) && (errno == ENOENT))
175
- {
176
- printf("couldn't create directory %s\n",buffer);
177
- free(buffer);
178
- return 0;
179
- }
180
- if (hold == 0)
181
- break;
182
- *p++ = hold;
183
- }
184
- free(buffer);
185
- return 1;
186
- }
187
-
188
- static void do_banner(void) {
189
- printf("MiniUnz 1.1, demo of zLib + Unz package written by Gilles Vollant\n");
190
- printf("more info at http://www.winimage.com/zLibDll/unzip.html\n\n");
191
- }
192
-
193
- static void do_help(void) {
194
- printf("Usage : miniunz [-e] [-x] [-v] [-l] [-o] [-p password] file.zip [file_to_extr.] [-d extractdir]\n\n" \
195
- " -e Extract without pathname (junk paths)\n" \
196
- " -x Extract with pathname\n" \
197
- " -v list files\n" \
198
- " -l list files\n" \
199
- " -d directory to extract into\n" \
200
- " -o overwrite files without prompting\n" \
201
- " -p extract encrypted file using password\n\n");
202
- }
203
-
204
- static void Display64BitsSize(ZPOS64_T n, int size_char) {
205
- /* to avoid compatibility problem , we do here the conversion */
206
- char number[21];
207
- int offset=19;
208
- int pos_string = 19;
209
- number[20]=0;
210
- for (;;) {
211
- number[offset]=(char)((n%10)+'0');
212
- if (number[offset] != '0')
213
- pos_string=offset;
214
- n/=10;
215
- if (offset==0)
216
- break;
217
- offset--;
218
- }
219
- {
220
- int size_display_string = 19-pos_string;
221
- while (size_char > size_display_string)
222
- {
223
- size_char--;
224
- printf(" ");
225
- }
226
- }
227
-
228
- printf("%s",&number[pos_string]);
229
- }
230
-
231
- static int do_list(unzFile uf) {
232
- uLong i;
233
- unz_global_info64 gi;
234
- int err;
235
-
236
- err = unzGetGlobalInfo64(uf,&gi);
237
- if (err!=UNZ_OK)
238
- printf("error %d with zipfile in unzGetGlobalInfo \n",err);
239
- printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
240
- printf(" ------ ------ ---- ----- ---- ---- ------ ----\n");
241
- for (i=0;i<gi.number_entry;i++)
242
- {
243
- char filename_inzip[65536+1];
244
- unz_file_info64 file_info;
245
- uLong ratio=0;
246
- const char *string_method = "";
247
- char charCrypt=' ';
248
- err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
249
- if (err!=UNZ_OK)
250
- {
251
- printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
252
- break;
253
- }
254
- if (file_info.uncompressed_size>0)
255
- ratio = (uLong)((file_info.compressed_size*100)/file_info.uncompressed_size);
256
-
257
- /* display a '*' if the file is encrypted */
258
- if ((file_info.flag & 1) != 0)
259
- charCrypt='*';
260
-
261
- if (file_info.compression_method==0)
262
- string_method="Stored";
263
- else
264
- if (file_info.compression_method==Z_DEFLATED)
265
- {
266
- uInt iLevel=(uInt)((file_info.flag & 0x6)/2);
267
- if (iLevel==0)
268
- string_method="Defl:N";
269
- else if (iLevel==1)
270
- string_method="Defl:X";
271
- else if ((iLevel==2) || (iLevel==3))
272
- string_method="Defl:F"; /* 2:fast , 3 : extra fast*/
273
- }
274
- else
275
- if (file_info.compression_method==Z_BZIP2ED)
276
- {
277
- string_method="BZip2 ";
278
- }
279
- else
280
- string_method="Unkn. ";
281
-
282
- Display64BitsSize(file_info.uncompressed_size,7);
283
- printf(" %6s%c",string_method,charCrypt);
284
- Display64BitsSize(file_info.compressed_size,7);
285
- printf(" %3lu%% %2.2lu-%2.2lu-%2.2lu %2.2lu:%2.2lu %8.8lx %s\n",
286
- ratio,
287
- (uLong)file_info.tmu_date.tm_mon + 1,
288
- (uLong)file_info.tmu_date.tm_mday,
289
- (uLong)file_info.tmu_date.tm_year % 100,
290
- (uLong)file_info.tmu_date.tm_hour,(uLong)file_info.tmu_date.tm_min,
291
- (uLong)file_info.crc,filename_inzip);
292
- if ((i+1)<gi.number_entry)
293
- {
294
- err = unzGoToNextFile(uf);
295
- if (err!=UNZ_OK)
296
- {
297
- printf("error %d with zipfile in unzGoToNextFile\n",err);
298
- break;
299
- }
300
- }
301
- }
302
-
303
- return 0;
304
- }
305
-
306
-
307
- static int do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password) {
308
- char filename_inzip[65536+1];
309
- char* filename_withoutpath;
310
- char* p;
311
- int err=UNZ_OK;
312
- FILE *fout=NULL;
313
- void* buf;
314
- uInt size_buf;
315
-
316
- unz_file_info64 file_info;
317
- err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
318
-
319
- if (err!=UNZ_OK)
320
- {
321
- printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
322
- return err;
323
- }
324
-
325
- size_buf = WRITEBUFFERSIZE;
326
- buf = (void*)malloc(size_buf);
327
- if (buf==NULL)
328
- {
329
- printf("Error allocating memory\n");
330
- return UNZ_INTERNALERROR;
331
- }
332
-
333
- p = filename_withoutpath = filename_inzip;
334
- while ((*p) != '\0')
335
- {
336
- if (((*p)=='/') || ((*p)=='\\'))
337
- filename_withoutpath = p+1;
338
- p++;
339
- }
340
-
341
- if ((*filename_withoutpath)=='\0')
342
- {
343
- if ((*popt_extract_without_path)==0)
344
- {
345
- printf("creating directory: %s\n",filename_inzip);
346
- mymkdir(filename_inzip);
347
- }
348
- }
349
- else
350
- {
351
- const char* write_filename;
352
- int skip=0;
353
-
354
- if ((*popt_extract_without_path)==0)
355
- write_filename = filename_inzip;
356
- else
357
- write_filename = filename_withoutpath;
358
-
359
- if (write_filename[0]!='\0')
360
- {
361
- const char* relative_check = write_filename;
362
- while (relative_check[1]!='\0')
363
- {
364
- if (relative_check[0]=='.' && relative_check[1]=='.')
365
- write_filename = relative_check;
366
- relative_check++;
367
- }
368
- }
369
-
370
- while (write_filename[0]=='/' || write_filename[0]=='.')
371
- write_filename++;
372
-
373
- err = unzOpenCurrentFilePassword(uf,password);
374
- if (err!=UNZ_OK)
375
- {
376
- printf("error %d with zipfile in unzOpenCurrentFilePassword\n",err);
377
- }
378
-
379
- if (((*popt_overwrite)==0) && (err==UNZ_OK))
380
- {
381
- char rep=0;
382
- FILE* ftestexist;
383
- ftestexist = FOPEN_FUNC(write_filename,"rb");
384
- if (ftestexist!=NULL)
385
- {
386
- fclose(ftestexist);
387
- do
388
- {
389
- char answer[128];
390
- int ret;
391
-
392
- printf("The file %s exists. Overwrite ? [y]es, [n]o, [A]ll: ",write_filename);
393
- ret = scanf("%1s",answer);
394
- if (ret != 1)
395
- {
396
- exit(EXIT_FAILURE);
397
- }
398
- rep = answer[0] ;
399
- if ((rep>='a') && (rep<='z'))
400
- rep -= 0x20;
401
- }
402
- while ((rep!='Y') && (rep!='N') && (rep!='A'));
403
- }
404
-
405
- if (rep == 'N')
406
- skip = 1;
407
-
408
- if (rep == 'A')
409
- *popt_overwrite=1;
410
- }
411
-
412
- if ((skip==0) && (err==UNZ_OK))
413
- {
414
- fout=FOPEN_FUNC(write_filename,"wb");
415
- /* some zipfile don't contain directory alone before file */
416
- if ((fout==NULL) && ((*popt_extract_without_path)==0) &&
417
- (filename_withoutpath!=(char*)filename_inzip))
418
- {
419
- char c=*(filename_withoutpath-1);
420
- *(filename_withoutpath-1)='\0';
421
- makedir(write_filename);
422
- *(filename_withoutpath-1)=c;
423
- fout=FOPEN_FUNC(write_filename,"wb");
424
- }
425
-
426
- if (fout==NULL)
427
- {
428
- printf("error opening %s\n",write_filename);
429
- }
430
- }
431
-
432
- if (fout!=NULL)
433
- {
434
- printf(" extracting: %s\n",write_filename);
435
-
436
- do
437
- {
438
- err = unzReadCurrentFile(uf,buf,size_buf);
439
- if (err<0)
440
- {
441
- printf("error %d with zipfile in unzReadCurrentFile\n",err);
442
- break;
443
- }
444
- if (err>0)
445
- if (fwrite(buf,(unsigned)err,1,fout)!=1)
446
- {
447
- printf("error in writing extracted file\n");
448
- err=UNZ_ERRNO;
449
- break;
450
- }
451
- }
452
- while (err>0);
453
- if (fout)
454
- fclose(fout);
455
-
456
- if (err==0)
457
- change_file_date(write_filename,file_info.dosDate,
458
- file_info.tmu_date);
459
- }
460
-
461
- if (err==UNZ_OK)
462
- {
463
- err = unzCloseCurrentFile (uf);
464
- if (err!=UNZ_OK)
465
- {
466
- printf("error %d with zipfile in unzCloseCurrentFile\n",err);
467
- }
468
- }
469
- else
470
- unzCloseCurrentFile(uf); /* don't lose the error */
471
- }
472
-
473
- free(buf);
474
- return err;
475
- }
476
-
477
-
478
- static int do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrite, const char* password) {
479
- uLong i;
480
- unz_global_info64 gi;
481
- int err;
482
-
483
- err = unzGetGlobalInfo64(uf,&gi);
484
- if (err!=UNZ_OK)
485
- printf("error %d with zipfile in unzGetGlobalInfo \n",err);
486
-
487
- for (i=0;i<gi.number_entry;i++)
488
- {
489
- if (do_extract_currentfile(uf,&opt_extract_without_path,
490
- &opt_overwrite,
491
- password) != UNZ_OK)
492
- break;
493
-
494
- if ((i+1)<gi.number_entry)
495
- {
496
- err = unzGoToNextFile(uf);
497
- if (err!=UNZ_OK)
498
- {
499
- printf("error %d with zipfile in unzGoToNextFile\n",err);
500
- break;
501
- }
502
- }
503
- }
504
-
505
- return 0;
506
- }
507
-
508
- static int do_extract_onefile(unzFile uf, const char* filename, int opt_extract_without_path, int opt_overwrite, const char* password) {
509
- if (unzLocateFile(uf,filename,CASESENSITIVITY)!=UNZ_OK)
510
- {
511
- printf("file %s not found in the zipfile\n",filename);
512
- return 2;
513
- }
514
-
515
- if (do_extract_currentfile(uf,&opt_extract_without_path,
516
- &opt_overwrite,
517
- password) == UNZ_OK)
518
- return 0;
519
- else
520
- return 1;
521
- }
522
-
523
-
524
- int main(int argc, char *argv[]) {
525
- const char *zipfilename=NULL;
526
- const char *filename_to_extract=NULL;
527
- const char *password=NULL;
528
- char filename_try[MAXFILENAME+16] = "";
529
- int i;
530
- int ret_value=0;
531
- int opt_do_list=0;
532
- int opt_do_extract=1;
533
- int opt_do_extract_withoutpath=0;
534
- int opt_overwrite=0;
535
- int opt_extractdir=0;
536
- const char *dirname=NULL;
537
- unzFile uf=NULL;
538
-
539
- do_banner();
540
- if (argc==1)
541
- {
542
- do_help();
543
- return 0;
544
- }
545
- else
546
- {
547
- for (i=1;i<argc;i++)
548
- {
549
- if ((*argv[i])=='-')
550
- {
551
- const char *p=argv[i]+1;
552
-
553
- while ((*p)!='\0')
554
- {
555
- char c=*(p++);
556
- if ((c=='l') || (c=='L'))
557
- opt_do_list = 1;
558
- if ((c=='v') || (c=='V'))
559
- opt_do_list = 1;
560
- if ((c=='x') || (c=='X'))
561
- opt_do_extract = 1;
562
- if ((c=='e') || (c=='E'))
563
- opt_do_extract = opt_do_extract_withoutpath = 1;
564
- if ((c=='o') || (c=='O'))
565
- opt_overwrite=1;
566
- if ((c=='d') || (c=='D'))
567
- {
568
- opt_extractdir=1;
569
- dirname=argv[i+1];
570
- }
571
-
572
- if (((c=='p') || (c=='P')) && (i+1<argc))
573
- {
574
- password=argv[i+1];
575
- i++;
576
- }
577
- }
578
- }
579
- else
580
- {
581
- if (zipfilename == NULL)
582
- zipfilename = argv[i];
583
- else if ((filename_to_extract==NULL) && (!opt_extractdir))
584
- filename_to_extract = argv[i] ;
585
- }
586
- }
587
- }
588
-
589
- if (zipfilename!=NULL)
590
- {
591
-
592
- # ifdef USEWIN32IOAPI
593
- zlib_filefunc64_def ffunc;
594
- # endif
595
-
596
- strncpy(filename_try, zipfilename,MAXFILENAME-1);
597
- /* strncpy doesn't append the trailing NULL, of the string is too long. */
598
- filename_try[ MAXFILENAME ] = '\0';
599
-
600
- # ifdef USEWIN32IOAPI
601
- fill_win32_filefunc64A(&ffunc);
602
- uf = unzOpen2_64(zipfilename,&ffunc);
603
- # else
604
- uf = unzOpen64(zipfilename);
605
- # endif
606
- if (uf==NULL)
607
- {
608
- strcat(filename_try,".zip");
609
- # ifdef USEWIN32IOAPI
610
- uf = unzOpen2_64(filename_try,&ffunc);
611
- # else
612
- uf = unzOpen64(filename_try);
613
- # endif
614
- }
615
- }
616
-
617
- if (uf==NULL)
618
- {
619
- printf("Cannot open %s or %s.zip\n",zipfilename,zipfilename);
620
- return 1;
621
- }
622
- printf("%s opened\n",filename_try);
623
-
624
- if (opt_do_list==1)
625
- ret_value = do_list(uf);
626
- else if (opt_do_extract==1)
627
- {
628
- #ifdef _WIN32
629
- if (opt_extractdir && _chdir(dirname))
630
- #else
631
- if (opt_extractdir && chdir(dirname))
632
- #endif
633
- {
634
- printf("Error changing into %s, aborting\n", dirname);
635
- exit(-1);
636
- }
637
-
638
- if (filename_to_extract == NULL)
639
- ret_value = do_extract(uf, opt_do_extract_withoutpath, opt_overwrite, password);
640
- else
641
- ret_value = do_extract_onefile(uf, filename_to_extract, opt_do_extract_withoutpath, opt_overwrite, password);
642
- }
643
-
644
- unzClose(uf);
645
-
646
- return ret_value;
647
- }
1
+ /*
2
+ miniunz.c
3
+ Version 1.1, February 14h, 2010
4
+ sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
5
+
6
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
7
+
8
+ Modifications of Unzip for Zip64
9
+ Copyright (C) 2007-2008 Even Rouault
10
+
11
+ Modifications for Zip64 support on both zip and unzip
12
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
13
+ */
14
+
15
+ #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
16
+ #ifndef __USE_FILE_OFFSET64
17
+ #define __USE_FILE_OFFSET64
18
+ #endif
19
+ #ifndef __USE_LARGEFILE64
20
+ #define __USE_LARGEFILE64
21
+ #endif
22
+ #ifndef _LARGEFILE64_SOURCE
23
+ #define _LARGEFILE64_SOURCE
24
+ #endif
25
+ #ifndef _FILE_OFFSET_BIT
26
+ #define _FILE_OFFSET_BIT 64
27
+ #endif
28
+ #endif
29
+
30
+ #if defined(__APPLE__) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
31
+ // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
32
+ #define FOPEN_FUNC(filename, mode) fopen(filename, mode)
33
+ #define FTELLO_FUNC(stream) ftello(stream)
34
+ #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
35
+ #else
36
+ #define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
37
+ #define FTELLO_FUNC(stream) ftello64(stream)
38
+ #define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
39
+ #endif
40
+
41
+
42
+ #ifndef _CRT_SECURE_NO_WARNINGS
43
+ # define _CRT_SECURE_NO_WARNINGS
44
+ #endif
45
+ #include <stdio.h>
46
+ #include <stdlib.h>
47
+ #include <string.h>
48
+ #include <time.h>
49
+ #include <errno.h>
50
+ #include <fcntl.h>
51
+ #include <sys/stat.h>
52
+
53
+ #ifdef _WIN32
54
+ # include <direct.h>
55
+ # include <io.h>
56
+ #else
57
+ # include <unistd.h>
58
+ # include <utime.h>
59
+ #endif
60
+
61
+
62
+ #include "unzip.h"
63
+
64
+ #define CASESENSITIVITY (0)
65
+ #define WRITEBUFFERSIZE (8192)
66
+ #define MAXFILENAME (256)
67
+
68
+ #ifdef _WIN32
69
+ #define USEWIN32IOAPI
70
+ #include "iowin32.h"
71
+ #endif
72
+ /*
73
+ mini unzip, demo of unzip package
74
+
75
+ usage :
76
+ Usage : miniunz [-exvlo] file.zip [file_to_extract] [-d extractdir]
77
+
78
+ list the file in the zipfile, and print the content of FILE_ID.ZIP or README.TXT
79
+ if it exists
80
+ */
81
+
82
+
83
+ /* change_file_date : change the date/time of a file
84
+ filename : the filename of the file where date/time must be modified
85
+ dosdate : the new date at the MSDOS format (4 bytes)
86
+ tmu_date : the SAME new date at the tm_unz format */
87
+ static void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_date) {
88
+ #ifdef _WIN32
89
+ (void)tmu_date;
90
+ HANDLE hFile;
91
+ FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite;
92
+
93
+ hFile = CreateFileA(filename,GENERIC_READ | GENERIC_WRITE,
94
+ 0,NULL,OPEN_EXISTING,0,NULL);
95
+ GetFileTime(hFile,&ftCreate,&ftLastAcc,&ftLastWrite);
96
+ DosDateTimeToFileTime((WORD)(dosdate>>16),(WORD)dosdate,&ftLocal);
97
+ LocalFileTimeToFileTime(&ftLocal,&ftm);
98
+ SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
99
+ CloseHandle(hFile);
100
+ #elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
101
+ (void)dosdate;
102
+ struct utimbuf ut;
103
+ struct tm newdate;
104
+ newdate.tm_sec = tmu_date.tm_sec;
105
+ newdate.tm_min=tmu_date.tm_min;
106
+ newdate.tm_hour=tmu_date.tm_hour;
107
+ newdate.tm_mday=tmu_date.tm_mday;
108
+ newdate.tm_mon=tmu_date.tm_mon;
109
+ if (tmu_date.tm_year > 1900)
110
+ newdate.tm_year=tmu_date.tm_year - 1900;
111
+ else
112
+ newdate.tm_year=tmu_date.tm_year ;
113
+ newdate.tm_isdst=-1;
114
+
115
+ ut.actime=ut.modtime=mktime(&newdate);
116
+ utime(filename,&ut);
117
+ #else
118
+ (void)filename;
119
+ (void)dosdate;
120
+ (void)tmu_date;
121
+ #endif
122
+ }
123
+
124
+
125
+ /* mymkdir and change_file_date are not 100 % portable
126
+ As I don't know well Unix, I wait feedback for the unix portion */
127
+
128
+ static int mymkdir(const char* dirname) {
129
+ int ret=0;
130
+ #ifdef _WIN32
131
+ ret = _mkdir(dirname);
132
+ #elif defined(__unix__) || defined(__unix) || defined(__APPLE__)
133
+ ret = mkdir (dirname,0775);
134
+ #else
135
+ (void)dirname;
136
+ #endif
137
+ return ret;
138
+ }
139
+
140
+ static int makedir(const char *newdir) {
141
+ char *buffer ;
142
+ char *p;
143
+ size_t len = strlen(newdir);
144
+
145
+ if (len == 0)
146
+ return 0;
147
+
148
+ buffer = (char*)malloc(len+1);
149
+ if (buffer==NULL)
150
+ {
151
+ printf("Error allocating memory\n");
152
+ return UNZ_INTERNALERROR;
153
+ }
154
+ strcpy(buffer,newdir);
155
+
156
+ if (buffer[len-1] == '/') {
157
+ buffer[len-1] = '\0';
158
+ }
159
+ if (mymkdir(buffer) == 0)
160
+ {
161
+ free(buffer);
162
+ return 1;
163
+ }
164
+
165
+ p = buffer+1;
166
+ while (1)
167
+ {
168
+ char hold;
169
+
170
+ while(*p && *p != '\\' && *p != '/')
171
+ p++;
172
+ hold = *p;
173
+ *p = 0;
174
+ if ((mymkdir(buffer) == -1) && (errno == ENOENT))
175
+ {
176
+ printf("couldn't create directory %s\n",buffer);
177
+ free(buffer);
178
+ return 0;
179
+ }
180
+ if (hold == 0)
181
+ break;
182
+ *p++ = hold;
183
+ }
184
+ free(buffer);
185
+ return 1;
186
+ }
187
+
188
+ static void do_banner(void) {
189
+ printf("MiniUnz 1.1, demo of zLib + Unz package written by Gilles Vollant\n");
190
+ printf("more info at http://www.winimage.com/zLibDll/unzip.html\n\n");
191
+ }
192
+
193
+ static void do_help(void) {
194
+ printf("Usage : miniunz [-e] [-x] [-v] [-l] [-o] [-p password] file.zip [file_to_extr.] [-d extractdir]\n\n" \
195
+ " -e Extract without pathname (junk paths)\n" \
196
+ " -x Extract with pathname\n" \
197
+ " -v list files\n" \
198
+ " -l list files\n" \
199
+ " -d directory to extract into\n" \
200
+ " -o overwrite files without prompting\n" \
201
+ " -p extract encrypted file using password\n\n");
202
+ }
203
+
204
+ static void Display64BitsSize(ZPOS64_T n, int size_char) {
205
+ /* to avoid compatibility problem , we do here the conversion */
206
+ char number[21];
207
+ int offset=19;
208
+ int pos_string = 19;
209
+ number[20]=0;
210
+ for (;;) {
211
+ number[offset]=(char)((n%10)+'0');
212
+ if (number[offset] != '0')
213
+ pos_string=offset;
214
+ n/=10;
215
+ if (offset==0)
216
+ break;
217
+ offset--;
218
+ }
219
+ {
220
+ int size_display_string = 19-pos_string;
221
+ while (size_char > size_display_string)
222
+ {
223
+ size_char--;
224
+ printf(" ");
225
+ }
226
+ }
227
+
228
+ printf("%s",&number[pos_string]);
229
+ }
230
+
231
+ static int do_list(unzFile uf) {
232
+ uLong i;
233
+ unz_global_info64 gi;
234
+ int err;
235
+
236
+ err = unzGetGlobalInfo64(uf,&gi);
237
+ if (err!=UNZ_OK)
238
+ printf("error %d with zipfile in unzGetGlobalInfo \n",err);
239
+ printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
240
+ printf(" ------ ------ ---- ----- ---- ---- ------ ----\n");
241
+ for (i=0;i<gi.number_entry;i++)
242
+ {
243
+ char filename_inzip[65536+1];
244
+ unz_file_info64 file_info;
245
+ uLong ratio=0;
246
+ const char *string_method = "";
247
+ char charCrypt=' ';
248
+ err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
249
+ if (err!=UNZ_OK)
250
+ {
251
+ printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
252
+ break;
253
+ }
254
+ if (file_info.uncompressed_size>0)
255
+ ratio = (uLong)((file_info.compressed_size*100)/file_info.uncompressed_size);
256
+
257
+ /* display a '*' if the file is encrypted */
258
+ if ((file_info.flag & 1) != 0)
259
+ charCrypt='*';
260
+
261
+ if (file_info.compression_method==0)
262
+ string_method="Stored";
263
+ else
264
+ if (file_info.compression_method==Z_DEFLATED)
265
+ {
266
+ uInt iLevel=(uInt)((file_info.flag & 0x6)/2);
267
+ if (iLevel==0)
268
+ string_method="Defl:N";
269
+ else if (iLevel==1)
270
+ string_method="Defl:X";
271
+ else if ((iLevel==2) || (iLevel==3))
272
+ string_method="Defl:F"; /* 2:fast , 3 : extra fast*/
273
+ }
274
+ else
275
+ if (file_info.compression_method==Z_BZIP2ED)
276
+ {
277
+ string_method="BZip2 ";
278
+ }
279
+ else
280
+ string_method="Unkn. ";
281
+
282
+ Display64BitsSize(file_info.uncompressed_size,7);
283
+ printf(" %6s%c",string_method,charCrypt);
284
+ Display64BitsSize(file_info.compressed_size,7);
285
+ printf(" %3lu%% %2.2lu-%2.2lu-%2.2lu %2.2lu:%2.2lu %8.8lx %s\n",
286
+ ratio,
287
+ (uLong)file_info.tmu_date.tm_mon + 1,
288
+ (uLong)file_info.tmu_date.tm_mday,
289
+ (uLong)file_info.tmu_date.tm_year % 100,
290
+ (uLong)file_info.tmu_date.tm_hour,(uLong)file_info.tmu_date.tm_min,
291
+ (uLong)file_info.crc,filename_inzip);
292
+ if ((i+1)<gi.number_entry)
293
+ {
294
+ err = unzGoToNextFile(uf);
295
+ if (err!=UNZ_OK)
296
+ {
297
+ printf("error %d with zipfile in unzGoToNextFile\n",err);
298
+ break;
299
+ }
300
+ }
301
+ }
302
+
303
+ return 0;
304
+ }
305
+
306
+
307
+ static int do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password) {
308
+ char filename_inzip[65536+1];
309
+ char* filename_withoutpath;
310
+ char* p;
311
+ int err=UNZ_OK;
312
+ FILE *fout=NULL;
313
+ void* buf;
314
+ uInt size_buf;
315
+
316
+ unz_file_info64 file_info;
317
+ err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
318
+
319
+ if (err!=UNZ_OK)
320
+ {
321
+ printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
322
+ return err;
323
+ }
324
+
325
+ size_buf = WRITEBUFFERSIZE;
326
+ buf = (void*)malloc(size_buf);
327
+ if (buf==NULL)
328
+ {
329
+ printf("Error allocating memory\n");
330
+ return UNZ_INTERNALERROR;
331
+ }
332
+
333
+ p = filename_withoutpath = filename_inzip;
334
+ while ((*p) != '\0')
335
+ {
336
+ if (((*p)=='/') || ((*p)=='\\'))
337
+ filename_withoutpath = p+1;
338
+ p++;
339
+ }
340
+
341
+ if ((*filename_withoutpath)=='\0')
342
+ {
343
+ if ((*popt_extract_without_path)==0)
344
+ {
345
+ printf("creating directory: %s\n",filename_inzip);
346
+ mymkdir(filename_inzip);
347
+ }
348
+ }
349
+ else
350
+ {
351
+ const char* write_filename;
352
+ int skip=0;
353
+
354
+ if ((*popt_extract_without_path)==0)
355
+ write_filename = filename_inzip;
356
+ else
357
+ write_filename = filename_withoutpath;
358
+
359
+ if (write_filename[0]!='\0')
360
+ {
361
+ const char* relative_check = write_filename;
362
+ while (relative_check[1]!='\0')
363
+ {
364
+ if (relative_check[0]=='.' && relative_check[1]=='.')
365
+ write_filename = relative_check;
366
+ relative_check++;
367
+ }
368
+ }
369
+
370
+ while (write_filename[0]=='/' || write_filename[0]=='.')
371
+ write_filename++;
372
+
373
+ err = unzOpenCurrentFilePassword(uf,password);
374
+ if (err!=UNZ_OK)
375
+ {
376
+ printf("error %d with zipfile in unzOpenCurrentFilePassword\n",err);
377
+ }
378
+
379
+ if (((*popt_overwrite)==0) && (err==UNZ_OK))
380
+ {
381
+ char rep=0;
382
+ FILE* ftestexist;
383
+ ftestexist = FOPEN_FUNC(write_filename,"rb");
384
+ if (ftestexist!=NULL)
385
+ {
386
+ fclose(ftestexist);
387
+ do
388
+ {
389
+ char answer[128];
390
+ int ret;
391
+
392
+ printf("The file %s exists. Overwrite ? [y]es, [n]o, [A]ll: ",write_filename);
393
+ ret = scanf("%1s",answer);
394
+ if (ret != 1)
395
+ {
396
+ exit(EXIT_FAILURE);
397
+ }
398
+ rep = answer[0] ;
399
+ if ((rep>='a') && (rep<='z'))
400
+ rep -= 0x20;
401
+ }
402
+ while ((rep!='Y') && (rep!='N') && (rep!='A'));
403
+ }
404
+
405
+ if (rep == 'N')
406
+ skip = 1;
407
+
408
+ if (rep == 'A')
409
+ *popt_overwrite=1;
410
+ }
411
+
412
+ if ((skip==0) && (err==UNZ_OK))
413
+ {
414
+ fout=FOPEN_FUNC(write_filename,"wb");
415
+ /* some zipfile don't contain directory alone before file */
416
+ if ((fout==NULL) && ((*popt_extract_without_path)==0) &&
417
+ (filename_withoutpath!=(char*)filename_inzip))
418
+ {
419
+ char c=*(filename_withoutpath-1);
420
+ *(filename_withoutpath-1)='\0';
421
+ makedir(write_filename);
422
+ *(filename_withoutpath-1)=c;
423
+ fout=FOPEN_FUNC(write_filename,"wb");
424
+ }
425
+
426
+ if (fout==NULL)
427
+ {
428
+ printf("error opening %s\n",write_filename);
429
+ }
430
+ }
431
+
432
+ if (fout!=NULL)
433
+ {
434
+ printf(" extracting: %s\n",write_filename);
435
+
436
+ do
437
+ {
438
+ err = unzReadCurrentFile(uf,buf,size_buf);
439
+ if (err<0)
440
+ {
441
+ printf("error %d with zipfile in unzReadCurrentFile\n",err);
442
+ break;
443
+ }
444
+ if (err>0)
445
+ if (fwrite(buf,(unsigned)err,1,fout)!=1)
446
+ {
447
+ printf("error in writing extracted file\n");
448
+ err=UNZ_ERRNO;
449
+ break;
450
+ }
451
+ }
452
+ while (err>0);
453
+ if (fout)
454
+ fclose(fout);
455
+
456
+ if (err==0)
457
+ change_file_date(write_filename,file_info.dosDate,
458
+ file_info.tmu_date);
459
+ }
460
+
461
+ if (err==UNZ_OK)
462
+ {
463
+ err = unzCloseCurrentFile (uf);
464
+ if (err!=UNZ_OK)
465
+ {
466
+ printf("error %d with zipfile in unzCloseCurrentFile\n",err);
467
+ }
468
+ }
469
+ else
470
+ unzCloseCurrentFile(uf); /* don't lose the error */
471
+ }
472
+
473
+ free(buf);
474
+ return err;
475
+ }
476
+
477
+
478
+ static int do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrite, const char* password) {
479
+ uLong i;
480
+ unz_global_info64 gi;
481
+ int err;
482
+
483
+ err = unzGetGlobalInfo64(uf,&gi);
484
+ if (err!=UNZ_OK)
485
+ printf("error %d with zipfile in unzGetGlobalInfo \n",err);
486
+
487
+ for (i=0;i<gi.number_entry;i++)
488
+ {
489
+ if (do_extract_currentfile(uf,&opt_extract_without_path,
490
+ &opt_overwrite,
491
+ password) != UNZ_OK)
492
+ break;
493
+
494
+ if ((i+1)<gi.number_entry)
495
+ {
496
+ err = unzGoToNextFile(uf);
497
+ if (err!=UNZ_OK)
498
+ {
499
+ printf("error %d with zipfile in unzGoToNextFile\n",err);
500
+ break;
501
+ }
502
+ }
503
+ }
504
+
505
+ return 0;
506
+ }
507
+
508
+ static int do_extract_onefile(unzFile uf, const char* filename, int opt_extract_without_path, int opt_overwrite, const char* password) {
509
+ if (unzLocateFile(uf,filename,CASESENSITIVITY)!=UNZ_OK)
510
+ {
511
+ printf("file %s not found in the zipfile\n",filename);
512
+ return 2;
513
+ }
514
+
515
+ if (do_extract_currentfile(uf,&opt_extract_without_path,
516
+ &opt_overwrite,
517
+ password) == UNZ_OK)
518
+ return 0;
519
+ else
520
+ return 1;
521
+ }
522
+
523
+
524
+ int main(int argc, char *argv[]) {
525
+ const char *zipfilename=NULL;
526
+ const char *filename_to_extract=NULL;
527
+ const char *password=NULL;
528
+ char filename_try[MAXFILENAME+16] = "";
529
+ int i;
530
+ int ret_value=0;
531
+ int opt_do_list=0;
532
+ int opt_do_extract=1;
533
+ int opt_do_extract_withoutpath=0;
534
+ int opt_overwrite=0;
535
+ int opt_extractdir=0;
536
+ const char *dirname=NULL;
537
+ unzFile uf=NULL;
538
+
539
+ do_banner();
540
+ if (argc==1)
541
+ {
542
+ do_help();
543
+ return 0;
544
+ }
545
+ else
546
+ {
547
+ for (i=1;i<argc;i++)
548
+ {
549
+ if ((*argv[i])=='-')
550
+ {
551
+ const char *p=argv[i]+1;
552
+
553
+ while ((*p)!='\0')
554
+ {
555
+ char c=*(p++);
556
+ if ((c=='l') || (c=='L'))
557
+ opt_do_list = 1;
558
+ if ((c=='v') || (c=='V'))
559
+ opt_do_list = 1;
560
+ if ((c=='x') || (c=='X'))
561
+ opt_do_extract = 1;
562
+ if ((c=='e') || (c=='E'))
563
+ opt_do_extract = opt_do_extract_withoutpath = 1;
564
+ if ((c=='o') || (c=='O'))
565
+ opt_overwrite=1;
566
+ if ((c=='d') || (c=='D'))
567
+ {
568
+ opt_extractdir=1;
569
+ dirname=argv[i+1];
570
+ }
571
+
572
+ if (((c=='p') || (c=='P')) && (i+1<argc))
573
+ {
574
+ password=argv[i+1];
575
+ i++;
576
+ }
577
+ }
578
+ }
579
+ else
580
+ {
581
+ if (zipfilename == NULL)
582
+ zipfilename = argv[i];
583
+ else if ((filename_to_extract==NULL) && (!opt_extractdir))
584
+ filename_to_extract = argv[i] ;
585
+ }
586
+ }
587
+ }
588
+
589
+ if (zipfilename!=NULL)
590
+ {
591
+
592
+ # ifdef USEWIN32IOAPI
593
+ zlib_filefunc64_def ffunc;
594
+ # endif
595
+
596
+ strncpy(filename_try, zipfilename,MAXFILENAME-1);
597
+ /* strncpy doesn't append the trailing NULL, of the string is too long. */
598
+ filename_try[ MAXFILENAME ] = '\0';
599
+
600
+ # ifdef USEWIN32IOAPI
601
+ fill_win32_filefunc64A(&ffunc);
602
+ uf = unzOpen2_64(zipfilename,&ffunc);
603
+ # else
604
+ uf = unzOpen64(zipfilename);
605
+ # endif
606
+ if (uf==NULL)
607
+ {
608
+ strcat(filename_try,".zip");
609
+ # ifdef USEWIN32IOAPI
610
+ uf = unzOpen2_64(filename_try,&ffunc);
611
+ # else
612
+ uf = unzOpen64(filename_try);
613
+ # endif
614
+ }
615
+ }
616
+
617
+ if (uf==NULL)
618
+ {
619
+ printf("Cannot open %s or %s.zip\n",zipfilename,zipfilename);
620
+ return 1;
621
+ }
622
+ printf("%s opened\n",filename_try);
623
+
624
+ if (opt_do_list==1)
625
+ ret_value = do_list(uf);
626
+ else if (opt_do_extract==1)
627
+ {
628
+ #ifdef _WIN32
629
+ if (opt_extractdir && _chdir(dirname))
630
+ #else
631
+ if (opt_extractdir && chdir(dirname))
632
+ #endif
633
+ {
634
+ printf("Error changing into %s, aborting\n", dirname);
635
+ exit(-1);
636
+ }
637
+
638
+ if (filename_to_extract == NULL)
639
+ ret_value = do_extract(uf, opt_do_extract_withoutpath, opt_overwrite, password);
640
+ else
641
+ ret_value = do_extract_onefile(uf, filename_to_extract, opt_do_extract_withoutpath, opt_overwrite, password);
642
+ }
643
+
644
+ unzClose(uf);
645
+
646
+ return ret_value;
647
+ }