hane 1.0.0

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 (488) hide show
  1. package/README.md +32 -0
  2. package/binding.gyp +87 -0
  3. package/dist/index.d.ts +34 -0
  4. package/dist/index.js +1 -0
  5. package/package.json +33 -0
  6. package/src/native/addon.cc +231 -0
  7. package/src/native/zsign_driver.cc +87 -0
  8. package/src/native/zsign_driver.h +38 -0
  9. package/vendor/zlib/.cmake-format.yaml +245 -0
  10. package/vendor/zlib/.github/workflows/c-std.yml +230 -0
  11. package/vendor/zlib/.github/workflows/cmake.yml +112 -0
  12. package/vendor/zlib/.github/workflows/configure.yml +136 -0
  13. package/vendor/zlib/.github/workflows/fuzz.yml +25 -0
  14. package/vendor/zlib/.github/workflows/msys-cygwin.yml +77 -0
  15. package/vendor/zlib/BUILD.bazel +134 -0
  16. package/vendor/zlib/CMakeLists.txt +330 -0
  17. package/vendor/zlib/ChangeLog +1621 -0
  18. package/vendor/zlib/FAQ +367 -0
  19. package/vendor/zlib/INDEX +68 -0
  20. package/vendor/zlib/LICENSE +22 -0
  21. package/vendor/zlib/MODULE.bazel +9 -0
  22. package/vendor/zlib/Makefile.in +419 -0
  23. package/vendor/zlib/README +115 -0
  24. package/vendor/zlib/README-cmake.md +83 -0
  25. package/vendor/zlib/adler32.c +164 -0
  26. package/vendor/zlib/amiga/Makefile.pup +69 -0
  27. package/vendor/zlib/amiga/Makefile.sas +68 -0
  28. package/vendor/zlib/compress.c +75 -0
  29. package/vendor/zlib/configure +966 -0
  30. package/vendor/zlib/contrib/README.contrib +57 -0
  31. package/vendor/zlib/contrib/ada/buffer_demo.adb +106 -0
  32. package/vendor/zlib/contrib/ada/mtest.adb +156 -0
  33. package/vendor/zlib/contrib/ada/read.adb +156 -0
  34. package/vendor/zlib/contrib/ada/readme.txt +65 -0
  35. package/vendor/zlib/contrib/ada/test.adb +463 -0
  36. package/vendor/zlib/contrib/ada/zlib-streams.adb +225 -0
  37. package/vendor/zlib/contrib/ada/zlib-streams.ads +114 -0
  38. package/vendor/zlib/contrib/ada/zlib-thin.adb +142 -0
  39. package/vendor/zlib/contrib/ada/zlib-thin.ads +450 -0
  40. package/vendor/zlib/contrib/ada/zlib.adb +701 -0
  41. package/vendor/zlib/contrib/ada/zlib.ads +328 -0
  42. package/vendor/zlib/contrib/ada/zlib.gpr +20 -0
  43. package/vendor/zlib/contrib/blast/Makefile +8 -0
  44. package/vendor/zlib/contrib/blast/README +4 -0
  45. package/vendor/zlib/contrib/blast/blast.c +466 -0
  46. package/vendor/zlib/contrib/blast/blast.h +83 -0
  47. package/vendor/zlib/contrib/blast/test.pk +0 -0
  48. package/vendor/zlib/contrib/blast/test.txt +1 -0
  49. package/vendor/zlib/contrib/delphi/ZLib.pas +557 -0
  50. package/vendor/zlib/contrib/delphi/ZLibConst.pas +11 -0
  51. package/vendor/zlib/contrib/delphi/readme.txt +76 -0
  52. package/vendor/zlib/contrib/delphi/zlibd32.mak +99 -0
  53. package/vendor/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  54. package/vendor/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  55. package/vendor/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  56. package/vendor/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  57. package/vendor/zlib/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  58. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  59. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  60. package/vendor/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  61. package/vendor/zlib/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  62. package/vendor/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  63. package/vendor/zlib/contrib/dotzlib/DotZLib.build +33 -0
  64. package/vendor/zlib/contrib/dotzlib/DotZLib.chm +0 -0
  65. package/vendor/zlib/contrib/dotzlib/DotZLib.sln +21 -0
  66. package/vendor/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  67. package/vendor/zlib/contrib/dotzlib/readme.txt +58 -0
  68. package/vendor/zlib/contrib/gcc_gvmat64/gvmat64.S +574 -0
  69. package/vendor/zlib/contrib/infback9/README +1 -0
  70. package/vendor/zlib/contrib/infback9/infback9.c +603 -0
  71. package/vendor/zlib/contrib/infback9/infback9.h +37 -0
  72. package/vendor/zlib/contrib/infback9/inffix9.h +107 -0
  73. package/vendor/zlib/contrib/infback9/inflate9.h +47 -0
  74. package/vendor/zlib/contrib/infback9/inftree9.c +319 -0
  75. package/vendor/zlib/contrib/infback9/inftree9.h +61 -0
  76. package/vendor/zlib/contrib/iostream/test.cpp +24 -0
  77. package/vendor/zlib/contrib/iostream/zfstream.cpp +329 -0
  78. package/vendor/zlib/contrib/iostream/zfstream.h +128 -0
  79. package/vendor/zlib/contrib/iostream2/zstream.h +307 -0
  80. package/vendor/zlib/contrib/iostream2/zstream_test.cpp +25 -0
  81. package/vendor/zlib/contrib/iostream3/README +35 -0
  82. package/vendor/zlib/contrib/iostream3/TODO +17 -0
  83. package/vendor/zlib/contrib/iostream3/test.cc +50 -0
  84. package/vendor/zlib/contrib/iostream3/zfstream.cc +479 -0
  85. package/vendor/zlib/contrib/iostream3/zfstream.h +466 -0
  86. package/vendor/zlib/contrib/minizip/CMakeLists.txt +380 -0
  87. package/vendor/zlib/contrib/minizip/Makefile +37 -0
  88. package/vendor/zlib/contrib/minizip/Makefile.am +45 -0
  89. package/vendor/zlib/contrib/minizip/MiniZip64_Changes.txt +6 -0
  90. package/vendor/zlib/contrib/minizip/MiniZip64_info.txt +74 -0
  91. package/vendor/zlib/contrib/minizip/configure.ac +32 -0
  92. package/vendor/zlib/contrib/minizip/crypt.h +128 -0
  93. package/vendor/zlib/contrib/minizip/ints.h +57 -0
  94. package/vendor/zlib/contrib/minizip/ioapi.c +231 -0
  95. package/vendor/zlib/contrib/minizip/ioapi.h +183 -0
  96. package/vendor/zlib/contrib/minizip/iowin32.c +448 -0
  97. package/vendor/zlib/contrib/minizip/iowin32.h +28 -0
  98. package/vendor/zlib/contrib/minizip/make_vms.com +25 -0
  99. package/vendor/zlib/contrib/minizip/miniunz.c +647 -0
  100. package/vendor/zlib/contrib/minizip/miniunzip.1 +63 -0
  101. package/vendor/zlib/contrib/minizip/minizip.1 +46 -0
  102. package/vendor/zlib/contrib/minizip/minizip.c +512 -0
  103. package/vendor/zlib/contrib/minizip/minizip.pc.in +12 -0
  104. package/vendor/zlib/contrib/minizip/minizip.pc.txt +13 -0
  105. package/vendor/zlib/contrib/minizip/minizipConfig.cmake.in +35 -0
  106. package/vendor/zlib/contrib/minizip/mztools.c +288 -0
  107. package/vendor/zlib/contrib/minizip/mztools.h +37 -0
  108. package/vendor/zlib/contrib/minizip/skipset.h +361 -0
  109. package/vendor/zlib/contrib/minizip/test/CMakeLists.txt +121 -0
  110. package/vendor/zlib/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in +29 -0
  111. package/vendor/zlib/contrib/minizip/test/add_subdirectory_test.cmake.in +28 -0
  112. package/vendor/zlib/contrib/minizip/test/find_package_test.cmake.in +25 -0
  113. package/vendor/zlib/contrib/minizip/test/test_helper.cm +32 -0
  114. package/vendor/zlib/contrib/minizip/unzip.c +1981 -0
  115. package/vendor/zlib/contrib/minizip/unzip.h +441 -0
  116. package/vendor/zlib/contrib/minizip/zip.c +2199 -0
  117. package/vendor/zlib/contrib/minizip/zip.h +370 -0
  118. package/vendor/zlib/contrib/nuget/nuget.csproj +43 -0
  119. package/vendor/zlib/contrib/nuget/nuget.sln +22 -0
  120. package/vendor/zlib/contrib/pascal/example.pas +599 -0
  121. package/vendor/zlib/contrib/pascal/readme.txt +76 -0
  122. package/vendor/zlib/contrib/pascal/zlibd32.mak +99 -0
  123. package/vendor/zlib/contrib/pascal/zlibpas.pas +276 -0
  124. package/vendor/zlib/contrib/puff/Makefile +42 -0
  125. package/vendor/zlib/contrib/puff/README +63 -0
  126. package/vendor/zlib/contrib/puff/puff.c +840 -0
  127. package/vendor/zlib/contrib/puff/puff.h +35 -0
  128. package/vendor/zlib/contrib/puff/pufftest.c +169 -0
  129. package/vendor/zlib/contrib/puff/zeros.raw +0 -0
  130. package/vendor/zlib/contrib/testzlib/testzlib.c +275 -0
  131. package/vendor/zlib/contrib/testzlib/testzlib.txt +10 -0
  132. package/vendor/zlib/contrib/untgz/Makefile +14 -0
  133. package/vendor/zlib/contrib/untgz/Makefile.msc +17 -0
  134. package/vendor/zlib/contrib/untgz/untgz.c +667 -0
  135. package/vendor/zlib/contrib/vstudio/readme.txt +81 -0
  136. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj +310 -0
  137. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters +22 -0
  138. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj +307 -0
  139. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters +22 -0
  140. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj +412 -0
  141. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters +55 -0
  142. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj +310 -0
  143. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters +22 -0
  144. package/vendor/zlib/contrib/vstudio/vc10/zlib.rc +32 -0
  145. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj +449 -0
  146. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters +74 -0
  147. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.def +161 -0
  148. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.sln +135 -0
  149. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj +633 -0
  150. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters +115 -0
  151. package/vendor/zlib/contrib/vstudio/vc11/miniunz.vcxproj +314 -0
  152. package/vendor/zlib/contrib/vstudio/vc11/minizip.vcxproj +311 -0
  153. package/vendor/zlib/contrib/vstudio/vc11/testzlib.vcxproj +418 -0
  154. package/vendor/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj +314 -0
  155. package/vendor/zlib/contrib/vstudio/vc11/zlib.rc +32 -0
  156. package/vendor/zlib/contrib/vstudio/vc11/zlibstat.vcxproj +456 -0
  157. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.def +161 -0
  158. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.sln +117 -0
  159. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.vcxproj +664 -0
  160. package/vendor/zlib/contrib/vstudio/vc12/miniunz.vcxproj +316 -0
  161. package/vendor/zlib/contrib/vstudio/vc12/minizip.vcxproj +313 -0
  162. package/vendor/zlib/contrib/vstudio/vc12/testzlib.vcxproj +422 -0
  163. package/vendor/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj +316 -0
  164. package/vendor/zlib/contrib/vstudio/vc12/zlib.rc +32 -0
  165. package/vendor/zlib/contrib/vstudio/vc12/zlibstat.vcxproj +459 -0
  166. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.def +161 -0
  167. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.sln +119 -0
  168. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.vcxproj +668 -0
  169. package/vendor/zlib/contrib/vstudio/vc14/miniunz.vcxproj +316 -0
  170. package/vendor/zlib/contrib/vstudio/vc14/minizip.vcxproj +313 -0
  171. package/vendor/zlib/contrib/vstudio/vc14/testzlib.vcxproj +422 -0
  172. package/vendor/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj +316 -0
  173. package/vendor/zlib/contrib/vstudio/vc14/zlib.rc +32 -0
  174. package/vendor/zlib/contrib/vstudio/vc14/zlibstat.vcxproj +459 -0
  175. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.def +161 -0
  176. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.sln +119 -0
  177. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.vcxproj +668 -0
  178. package/vendor/zlib/contrib/vstudio/vc17/miniunz.vcxproj +409 -0
  179. package/vendor/zlib/contrib/vstudio/vc17/minizip.vcxproj +405 -0
  180. package/vendor/zlib/contrib/vstudio/vc17/testzlib.vcxproj +473 -0
  181. package/vendor/zlib/contrib/vstudio/vc17/testzlibdll.vcxproj +409 -0
  182. package/vendor/zlib/contrib/vstudio/vc17/zlib.rc +32 -0
  183. package/vendor/zlib/contrib/vstudio/vc17/zlibstat.vcxproj +602 -0
  184. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.def +161 -0
  185. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.sln +179 -0
  186. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.vcxproj +875 -0
  187. package/vendor/zlib/contrib/vstudio/vc9/miniunz.vcproj +565 -0
  188. package/vendor/zlib/contrib/vstudio/vc9/minizip.vcproj +562 -0
  189. package/vendor/zlib/contrib/vstudio/vc9/testzlib.vcproj +796 -0
  190. package/vendor/zlib/contrib/vstudio/vc9/testzlibdll.vcproj +565 -0
  191. package/vendor/zlib/contrib/vstudio/vc9/zlib.rc +32 -0
  192. package/vendor/zlib/contrib/vstudio/vc9/zlibstat.vcproj +781 -0
  193. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.def +161 -0
  194. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.sln +144 -0
  195. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.vcproj +1100 -0
  196. package/vendor/zlib/crc32.c +1049 -0
  197. package/vendor/zlib/crc32.h +9446 -0
  198. package/vendor/zlib/deflate.c +2152 -0
  199. package/vendor/zlib/deflate.h +380 -0
  200. package/vendor/zlib/doc/algorithm.txt +209 -0
  201. package/vendor/zlib/doc/crc-doc.1.0.pdf +0 -0
  202. package/vendor/zlib/doc/rfc1950.txt +619 -0
  203. package/vendor/zlib/doc/rfc1951.txt +955 -0
  204. package/vendor/zlib/doc/rfc1952.txt +675 -0
  205. package/vendor/zlib/doc/txtvsbin.txt +107 -0
  206. package/vendor/zlib/examples/README.examples +54 -0
  207. package/vendor/zlib/examples/enough.c +597 -0
  208. package/vendor/zlib/examples/fitblk.c +233 -0
  209. package/vendor/zlib/examples/gun.c +702 -0
  210. package/vendor/zlib/examples/gzappend.c +504 -0
  211. package/vendor/zlib/examples/gzjoin.c +449 -0
  212. package/vendor/zlib/examples/gzlog.c +1061 -0
  213. package/vendor/zlib/examples/gzlog.h +91 -0
  214. package/vendor/zlib/examples/gznorm.c +474 -0
  215. package/vendor/zlib/examples/zlib_how.html +549 -0
  216. package/vendor/zlib/examples/zpipe.c +209 -0
  217. package/vendor/zlib/examples/zran.c +550 -0
  218. package/vendor/zlib/examples/zran.h +53 -0
  219. package/vendor/zlib/gzclose.c +23 -0
  220. package/vendor/zlib/gzguts.h +215 -0
  221. package/vendor/zlib/gzlib.c +585 -0
  222. package/vendor/zlib/gzread.c +603 -0
  223. package/vendor/zlib/gzwrite.c +631 -0
  224. package/vendor/zlib/infback.c +628 -0
  225. package/vendor/zlib/inffast.c +320 -0
  226. package/vendor/zlib/inffast.h +11 -0
  227. package/vendor/zlib/inffixed.h +94 -0
  228. package/vendor/zlib/inflate.c +1526 -0
  229. package/vendor/zlib/inflate.h +126 -0
  230. package/vendor/zlib/inftrees.c +299 -0
  231. package/vendor/zlib/inftrees.h +62 -0
  232. package/vendor/zlib/make_vms.com +867 -0
  233. package/vendor/zlib/msdos/Makefile.bor +115 -0
  234. package/vendor/zlib/msdos/Makefile.dj2 +104 -0
  235. package/vendor/zlib/msdos/Makefile.emx +69 -0
  236. package/vendor/zlib/msdos/Makefile.msc +112 -0
  237. package/vendor/zlib/msdos/Makefile.tc +100 -0
  238. package/vendor/zlib/nintendods/Makefile +126 -0
  239. package/vendor/zlib/nintendods/README +5 -0
  240. package/vendor/zlib/old/Makefile.emx +69 -0
  241. package/vendor/zlib/old/Makefile.riscos +151 -0
  242. package/vendor/zlib/old/README +3 -0
  243. package/vendor/zlib/old/descrip.mms +48 -0
  244. package/vendor/zlib/old/os2/Makefile.os2 +136 -0
  245. package/vendor/zlib/old/os2/zlib.def +51 -0
  246. package/vendor/zlib/old/visual-basic.txt +160 -0
  247. package/vendor/zlib/os400/README400 +48 -0
  248. package/vendor/zlib/os400/bndsrc +133 -0
  249. package/vendor/zlib/os400/make.sh +366 -0
  250. package/vendor/zlib/os400/zlib.inc +531 -0
  251. package/vendor/zlib/qnx/package.qpg +141 -0
  252. package/vendor/zlib/test/CMakeLists.txt +265 -0
  253. package/vendor/zlib/test/add_subdirectory_exclude_test.cmake.in +29 -0
  254. package/vendor/zlib/test/add_subdirectory_test.cmake.in +28 -0
  255. package/vendor/zlib/test/example.c +552 -0
  256. package/vendor/zlib/test/find_package_test.cmake.in +26 -0
  257. package/vendor/zlib/test/infcover.c +672 -0
  258. package/vendor/zlib/test/minigzip.c +590 -0
  259. package/vendor/zlib/treebuild.xml +116 -0
  260. package/vendor/zlib/trees.c +1119 -0
  261. package/vendor/zlib/trees.h +128 -0
  262. package/vendor/zlib/uncompr.c +85 -0
  263. package/vendor/zlib/watcom/watcom_f.mak +43 -0
  264. package/vendor/zlib/watcom/watcom_l.mak +43 -0
  265. package/vendor/zlib/win32/DLL_FAQ.txt +381 -0
  266. package/vendor/zlib/win32/Makefile.bor +109 -0
  267. package/vendor/zlib/win32/Makefile.gcc +177 -0
  268. package/vendor/zlib/win32/Makefile.msc +159 -0
  269. package/vendor/zlib/win32/README-WIN32.txt +103 -0
  270. package/vendor/zlib/win32/VisualC.txt +3 -0
  271. package/vendor/zlib/win32/zlib.def +98 -0
  272. package/vendor/zlib/win32/zlib1.rc +37 -0
  273. package/vendor/zlib/zconf.h.in +544 -0
  274. package/vendor/zlib/zlib.3 +149 -0
  275. package/vendor/zlib/zlib.3.pdf +0 -0
  276. package/vendor/zlib/zlib.h +1957 -0
  277. package/vendor/zlib/zlib.map +104 -0
  278. package/vendor/zlib/zlib.pc.cmakein +13 -0
  279. package/vendor/zlib/zlib.pc.in +13 -0
  280. package/vendor/zlib/zlibConfig.cmake.in +26 -0
  281. package/vendor/zlib/zutil.c +299 -0
  282. package/vendor/zlib/zutil.h +257 -0
  283. package/vendor/zsign/.gitattributes +4 -0
  284. package/vendor/zsign/LICENSE +21 -0
  285. package/vendor/zsign/README.md +142 -0
  286. package/vendor/zsign/build/linux/Makefile +43 -0
  287. package/vendor/zsign/build/macos/Makefile +43 -0
  288. package/vendor/zsign/build/windows/vs2022/include/minizip/crypt.h +128 -0
  289. package/vendor/zsign/build/windows/vs2022/include/minizip/ioapi.h +216 -0
  290. package/vendor/zsign/build/windows/vs2022/include/minizip/iowin32.h +28 -0
  291. package/vendor/zsign/build/windows/vs2022/include/minizip/mztools.h +37 -0
  292. package/vendor/zsign/build/windows/vs2022/include/minizip/unzip.h +437 -0
  293. package/vendor/zsign/build/windows/vs2022/include/minizip/zip.h +364 -0
  294. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_EPILOGUE.H +22 -0
  295. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_PROLOGUE.H +26 -0
  296. package/vendor/zsign/build/windows/vs2022/include/openssl/aes.h +111 -0
  297. package/vendor/zsign/build/windows/vs2022/include/openssl/applink.c +153 -0
  298. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1.h +1133 -0
  299. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1_mac.h +10 -0
  300. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1err.h +142 -0
  301. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1t.h +946 -0
  302. package/vendor/zsign/build/windows/vs2022/include/openssl/async.h +104 -0
  303. package/vendor/zsign/build/windows/vs2022/include/openssl/asyncerr.h +29 -0
  304. package/vendor/zsign/build/windows/vs2022/include/openssl/bio.h +1015 -0
  305. package/vendor/zsign/build/windows/vs2022/include/openssl/bioerr.h +72 -0
  306. package/vendor/zsign/build/windows/vs2022/include/openssl/blowfish.h +78 -0
  307. package/vendor/zsign/build/windows/vs2022/include/openssl/bn.h +590 -0
  308. package/vendor/zsign/build/windows/vs2022/include/openssl/bnerr.h +47 -0
  309. package/vendor/zsign/build/windows/vs2022/include/openssl/buffer.h +62 -0
  310. package/vendor/zsign/build/windows/vs2022/include/openssl/buffererr.h +25 -0
  311. package/vendor/zsign/build/windows/vs2022/include/openssl/camellia.h +117 -0
  312. package/vendor/zsign/build/windows/vs2022/include/openssl/cast.h +71 -0
  313. package/vendor/zsign/build/windows/vs2022/include/openssl/cmac.h +52 -0
  314. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp.h +727 -0
  315. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp_util.h +56 -0
  316. package/vendor/zsign/build/windows/vs2022/include/openssl/cmperr.h +131 -0
  317. package/vendor/zsign/build/windows/vs2022/include/openssl/cms.h +508 -0
  318. package/vendor/zsign/build/windows/vs2022/include/openssl/cmserr.h +125 -0
  319. package/vendor/zsign/build/windows/vs2022/include/openssl/comp.h +98 -0
  320. package/vendor/zsign/build/windows/vs2022/include/openssl/comperr.h +38 -0
  321. package/vendor/zsign/build/windows/vs2022/include/openssl/conf.h +214 -0
  322. package/vendor/zsign/build/windows/vs2022/include/openssl/conf_api.h +46 -0
  323. package/vendor/zsign/build/windows/vs2022/include/openssl/conferr.h +52 -0
  324. package/vendor/zsign/build/windows/vs2022/include/openssl/configuration.h +188 -0
  325. package/vendor/zsign/build/windows/vs2022/include/openssl/conftypes.h +44 -0
  326. package/vendor/zsign/build/windows/vs2022/include/openssl/core.h +236 -0
  327. package/vendor/zsign/build/windows/vs2022/include/openssl/core_dispatch.h +1022 -0
  328. package/vendor/zsign/build/windows/vs2022/include/openssl/core_names.h +545 -0
  329. package/vendor/zsign/build/windows/vs2022/include/openssl/core_object.h +41 -0
  330. package/vendor/zsign/build/windows/vs2022/include/openssl/crmf.h +260 -0
  331. package/vendor/zsign/build/windows/vs2022/include/openssl/crmferr.h +50 -0
  332. package/vendor/zsign/build/windows/vs2022/include/openssl/crypto.h +580 -0
  333. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr.h +56 -0
  334. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr_legacy.h +1466 -0
  335. package/vendor/zsign/build/windows/vs2022/include/openssl/ct.h +573 -0
  336. package/vendor/zsign/build/windows/vs2022/include/openssl/cterr.h +45 -0
  337. package/vendor/zsign/build/windows/vs2022/include/openssl/decoder.h +133 -0
  338. package/vendor/zsign/build/windows/vs2022/include/openssl/decodererr.h +28 -0
  339. package/vendor/zsign/build/windows/vs2022/include/openssl/des.h +211 -0
  340. package/vendor/zsign/build/windows/vs2022/include/openssl/dh.h +339 -0
  341. package/vendor/zsign/build/windows/vs2022/include/openssl/dherr.h +59 -0
  342. package/vendor/zsign/build/windows/vs2022/include/openssl/dsa.h +280 -0
  343. package/vendor/zsign/build/windows/vs2022/include/openssl/dsaerr.h +44 -0
  344. package/vendor/zsign/build/windows/vs2022/include/openssl/dtls1.h +57 -0
  345. package/vendor/zsign/build/windows/vs2022/include/openssl/e_os2.h +310 -0
  346. package/vendor/zsign/build/windows/vs2022/include/openssl/e_ostime.h +38 -0
  347. package/vendor/zsign/build/windows/vs2022/include/openssl/ebcdic.h +39 -0
  348. package/vendor/zsign/build/windows/vs2022/include/openssl/ec.h +1588 -0
  349. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdh.h +10 -0
  350. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdsa.h +10 -0
  351. package/vendor/zsign/build/windows/vs2022/include/openssl/ecerr.h +104 -0
  352. package/vendor/zsign/build/windows/vs2022/include/openssl/encoder.h +124 -0
  353. package/vendor/zsign/build/windows/vs2022/include/openssl/encodererr.h +28 -0
  354. package/vendor/zsign/build/windows/vs2022/include/openssl/engine.h +833 -0
  355. package/vendor/zsign/build/windows/vs2022/include/openssl/engineerr.h +63 -0
  356. package/vendor/zsign/build/windows/vs2022/include/openssl/err.h +512 -0
  357. package/vendor/zsign/build/windows/vs2022/include/openssl/ess.h +128 -0
  358. package/vendor/zsign/build/windows/vs2022/include/openssl/esserr.h +32 -0
  359. package/vendor/zsign/build/windows/vs2022/include/openssl/evp.h +2231 -0
  360. package/vendor/zsign/build/windows/vs2022/include/openssl/evperr.h +140 -0
  361. package/vendor/zsign/build/windows/vs2022/include/openssl/fips_names.h +50 -0
  362. package/vendor/zsign/build/windows/vs2022/include/openssl/fipskey.h +41 -0
  363. package/vendor/zsign/build/windows/vs2022/include/openssl/hmac.h +62 -0
  364. package/vendor/zsign/build/windows/vs2022/include/openssl/hpke.h +169 -0
  365. package/vendor/zsign/build/windows/vs2022/include/openssl/http.h +118 -0
  366. package/vendor/zsign/build/windows/vs2022/include/openssl/httperr.h +56 -0
  367. package/vendor/zsign/build/windows/vs2022/include/openssl/idea.h +82 -0
  368. package/vendor/zsign/build/windows/vs2022/include/openssl/indicator.h +31 -0
  369. package/vendor/zsign/build/windows/vs2022/include/openssl/kdf.h +138 -0
  370. package/vendor/zsign/build/windows/vs2022/include/openssl/kdferr.h +16 -0
  371. package/vendor/zsign/build/windows/vs2022/include/openssl/lhash.h +398 -0
  372. package/vendor/zsign/build/windows/vs2022/include/openssl/macros.h +338 -0
  373. package/vendor/zsign/build/windows/vs2022/include/openssl/md2.h +56 -0
  374. package/vendor/zsign/build/windows/vs2022/include/openssl/md4.h +63 -0
  375. package/vendor/zsign/build/windows/vs2022/include/openssl/md5.h +62 -0
  376. package/vendor/zsign/build/windows/vs2022/include/openssl/mdc2.h +55 -0
  377. package/vendor/zsign/build/windows/vs2022/include/openssl/modes.h +219 -0
  378. package/vendor/zsign/build/windows/vs2022/include/openssl/obj_mac.h +5820 -0
  379. package/vendor/zsign/build/windows/vs2022/include/openssl/objects.h +184 -0
  380. package/vendor/zsign/build/windows/vs2022/include/openssl/objectserr.h +28 -0
  381. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsp.h +483 -0
  382. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsperr.h +53 -0
  383. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslconf.h +17 -0
  384. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslv.h +114 -0
  385. package/vendor/zsign/build/windows/vs2022/include/openssl/ossl_typ.h +16 -0
  386. package/vendor/zsign/build/windows/vs2022/include/openssl/param_build.h +63 -0
  387. package/vendor/zsign/build/windows/vs2022/include/openssl/params.h +160 -0
  388. package/vendor/zsign/build/windows/vs2022/include/openssl/pem.h +543 -0
  389. package/vendor/zsign/build/windows/vs2022/include/openssl/pem2.h +19 -0
  390. package/vendor/zsign/build/windows/vs2022/include/openssl/pemerr.h +58 -0
  391. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12.h +366 -0
  392. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12err.h +46 -0
  393. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7.h +430 -0
  394. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7err.h +63 -0
  395. package/vendor/zsign/build/windows/vs2022/include/openssl/prov_ssl.h +38 -0
  396. package/vendor/zsign/build/windows/vs2022/include/openssl/proverr.h +162 -0
  397. package/vendor/zsign/build/windows/vs2022/include/openssl/provider.h +66 -0
  398. package/vendor/zsign/build/windows/vs2022/include/openssl/quic.h +70 -0
  399. package/vendor/zsign/build/windows/vs2022/include/openssl/rand.h +125 -0
  400. package/vendor/zsign/build/windows/vs2022/include/openssl/randerr.h +69 -0
  401. package/vendor/zsign/build/windows/vs2022/include/openssl/rc2.h +68 -0
  402. package/vendor/zsign/build/windows/vs2022/include/openssl/rc4.h +47 -0
  403. package/vendor/zsign/build/windows/vs2022/include/openssl/rc5.h +79 -0
  404. package/vendor/zsign/build/windows/vs2022/include/openssl/ripemd.h +59 -0
  405. package/vendor/zsign/build/windows/vs2022/include/openssl/rsa.h +615 -0
  406. package/vendor/zsign/build/windows/vs2022/include/openssl/rsaerr.h +107 -0
  407. package/vendor/zsign/build/windows/vs2022/include/openssl/safestack.h +297 -0
  408. package/vendor/zsign/build/windows/vs2022/include/openssl/seed.h +113 -0
  409. package/vendor/zsign/build/windows/vs2022/include/openssl/self_test.h +98 -0
  410. package/vendor/zsign/build/windows/vs2022/include/openssl/sha.h +139 -0
  411. package/vendor/zsign/build/windows/vs2022/include/openssl/srp.h +285 -0
  412. package/vendor/zsign/build/windows/vs2022/include/openssl/srtp.h +68 -0
  413. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl.h +2878 -0
  414. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl2.h +30 -0
  415. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl3.h +357 -0
  416. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr.h +379 -0
  417. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr_legacy.h +467 -0
  418. package/vendor/zsign/build/windows/vs2022/include/openssl/stack.h +90 -0
  419. package/vendor/zsign/build/windows/vs2022/include/openssl/store.h +377 -0
  420. package/vendor/zsign/build/windows/vs2022/include/openssl/storeerr.h +49 -0
  421. package/vendor/zsign/build/windows/vs2022/include/openssl/symhacks.h +39 -0
  422. package/vendor/zsign/build/windows/vs2022/include/openssl/thread.h +31 -0
  423. package/vendor/zsign/build/windows/vs2022/include/openssl/tls1.h +1220 -0
  424. package/vendor/zsign/build/windows/vs2022/include/openssl/trace.h +320 -0
  425. package/vendor/zsign/build/windows/vs2022/include/openssl/ts.h +522 -0
  426. package/vendor/zsign/build/windows/vs2022/include/openssl/tserr.h +67 -0
  427. package/vendor/zsign/build/windows/vs2022/include/openssl/txt_db.h +63 -0
  428. package/vendor/zsign/build/windows/vs2022/include/openssl/types.h +245 -0
  429. package/vendor/zsign/build/windows/vs2022/include/openssl/ui.h +407 -0
  430. package/vendor/zsign/build/windows/vs2022/include/openssl/uierr.h +38 -0
  431. package/vendor/zsign/build/windows/vs2022/include/openssl/whrlpool.h +62 -0
  432. package/vendor/zsign/build/windows/vs2022/include/openssl/x509.h +1304 -0
  433. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_acert.h +263 -0
  434. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_vfy.h +902 -0
  435. package/vendor/zsign/build/windows/vs2022/include/openssl/x509err.h +70 -0
  436. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3.h +1500 -0
  437. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3err.h +96 -0
  438. package/vendor/zsign/build/windows/vs2022/include/zlib/zconf.h +553 -0
  439. package/vendor/zsign/build/windows/vs2022/include/zlib/zlib.h +1938 -0
  440. package/vendor/zsign/build/windows/vs2022/lib/minizip/x64/mt/minizip.lib +0 -0
  441. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libcrypto.lib +0 -0
  442. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libssl.lib +0 -0
  443. package/vendor/zsign/build/windows/vs2022/lib/zlib/x64/mt/zlib.lib +0 -0
  444. package/vendor/zsign/build/windows/vs2022/zsign/src/common_win32.h +44 -0
  445. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.cpp +69 -0
  446. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.h +20 -0
  447. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.cpp +138 -0
  448. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.h +38 -0
  449. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj +177 -0
  450. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj.filters +120 -0
  451. package/vendor/zsign/build/windows/vs2022/zsign.sln +28 -0
  452. package/vendor/zsign/src/archo.cpp +742 -0
  453. package/vendor/zsign/src/archo.h +61 -0
  454. package/vendor/zsign/src/bundle.cpp +589 -0
  455. package/vendor/zsign/src/bundle.h +46 -0
  456. package/vendor/zsign/src/common/archive.cpp +246 -0
  457. package/vendor/zsign/src/common/archive.h +22 -0
  458. package/vendor/zsign/src/common/base64.cpp +166 -0
  459. package/vendor/zsign/src/common/base64.h +30 -0
  460. package/vendor/zsign/src/common/common.h +56 -0
  461. package/vendor/zsign/src/common/fs.cpp +573 -0
  462. package/vendor/zsign/src/common/fs.h +50 -0
  463. package/vendor/zsign/src/common/json.cpp +3380 -0
  464. package/vendor/zsign/src/common/json.h +530 -0
  465. package/vendor/zsign/src/common/log.cpp +145 -0
  466. package/vendor/zsign/src/common/log.h +37 -0
  467. package/vendor/zsign/src/common/mach-o.h +585 -0
  468. package/vendor/zsign/src/common/sha.cpp +133 -0
  469. package/vendor/zsign/src/common/sha.h +24 -0
  470. package/vendor/zsign/src/common/timer.cpp +28 -0
  471. package/vendor/zsign/src/common/timer.h +17 -0
  472. package/vendor/zsign/src/common/util.cpp +185 -0
  473. package/vendor/zsign/src/common/util.h +25 -0
  474. package/vendor/zsign/src/macho.cpp +273 -0
  475. package/vendor/zsign/src/macho.h +38 -0
  476. package/vendor/zsign/src/openssl.cpp +698 -0
  477. package/vendor/zsign/src/openssl.h +71 -0
  478. package/vendor/zsign/src/signing.cpp +745 -0
  479. package/vendor/zsign/src/signing.h +59 -0
  480. package/vendor/zsign/src/zsign.cpp +317 -0
  481. package/vendor/zsign/test/dylib/bin/demo1.dylib +0 -0
  482. package/vendor/zsign/test/dylib/bin/demo2.dylib +0 -0
  483. package/vendor/zsign/test/dylib/demo/Makefile +12 -0
  484. package/vendor/zsign/test/dylib/demo/control +9 -0
  485. package/vendor/zsign/test/dylib/demo/demo.m +21 -0
  486. package/vendor/zsign/test/linux/test.sh +19 -0
  487. package/vendor/zsign/test/macos/test.sh +19 -0
  488. package/vendor/zsign/test/windows/test.ps1 +17 -0
@@ -0,0 +1,573 @@
1
+ #include "fs.h"
2
+
3
+ #if !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG)
4
+ #define S_ISREG(m) (((m)&S_IFMT) == S_IFREG)
5
+ #endif
6
+
7
+ map<void*, void*> ZFile::s_mapFiles;
8
+
9
+ bool ZFile::IsRegularFile(const char* path)
10
+ {
11
+ struct stat st = { 0 };
12
+ return 0 == stat(path, &st) && S_ISREG(st.st_mode);
13
+ }
14
+
15
+ void* ZFile::MapFile(const char* path, size_t offset, size_t size, size_t* psize, bool ro)
16
+ {
17
+ void* base = NULL;
18
+
19
+ #ifdef _WIN32
20
+
21
+ HANDLE hFile = ::CreateFileA(path, ro ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE), ro ? FILE_SHARE_READ : (FILE_SHARE_READ | FILE_SHARE_WRITE), NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
22
+ if (INVALID_HANDLE_VALUE != hFile) {
23
+ if (size <= 0) {
24
+ size = ::GetFileSize(hFile, NULL);
25
+ }
26
+
27
+ if (NULL != psize) {
28
+ *psize = size;
29
+ }
30
+
31
+ HANDLE hMap = ::CreateFileMapping(hFile, NULL, ro ? PAGE_READONLY : PAGE_READWRITE, 0, (DWORD)size, NULL);
32
+ if (NULL != hMap) {
33
+ base = ::MapViewOfFile(hMap, ro ? FILE_MAP_READ : FILE_MAP_ALL_ACCESS, 0, 0, size);
34
+ if (NULL != base) {
35
+ s_mapFiles[base] = hMap;
36
+ } else {
37
+ ::CloseHandle(hMap);
38
+ }
39
+ }
40
+ ::CloseHandle(hFile);
41
+ }
42
+
43
+ #else
44
+
45
+ int fd = open(path, ro ? O_RDONLY : O_RDWR);
46
+ if (fd <= 0) {
47
+ if(chmod(path, 0755) == 0) {
48
+ fd = open(path, ro ? O_RDONLY : O_RDWR);
49
+ }
50
+ }
51
+
52
+ if (fd > 0) {
53
+ if (size <= 0) {
54
+ struct stat st = { 0 };
55
+ fstat(fd, &st);
56
+ size = st.st_size;
57
+ }
58
+
59
+ if (NULL != psize) {
60
+ *psize = size;
61
+ }
62
+
63
+ base = mmap(NULL, size, ro ? PROT_READ : PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset);
64
+ if (MAP_FAILED == base) {
65
+ base = NULL;
66
+ }
67
+ close(fd);
68
+ }
69
+
70
+ #endif
71
+
72
+ return base;
73
+ }
74
+
75
+ bool ZFile::UnmapFile(void* base, size_t size)
76
+ {
77
+ #ifdef _WIN32
78
+ auto it = s_mapFiles.find(base);
79
+ if (it != s_mapFiles.end()) {
80
+ ::UnmapViewOfFile(base);
81
+ ::CloseHandle(it->second);
82
+ s_mapFiles.erase(it);
83
+ return true;
84
+ }
85
+ return false;
86
+ #else
87
+ return (0 == munmap(base, size));
88
+ #endif
89
+ }
90
+
91
+ bool ZFile::WriteFile(const char* szFile, const char* szData, size_t sLen)
92
+ {
93
+ if (NULL == szFile) {
94
+ return false;
95
+ }
96
+
97
+ FILE* fp = NULL;
98
+ _fopen64(fp, szFile, "wb");
99
+ if (NULL != fp) {
100
+ size_t written = 0;
101
+ size_t to_write = sLen;
102
+ if (NULL != szData) {
103
+ while (written < to_write) {
104
+ size_t ret = fwrite(szData + written, 1, to_write - written, fp);
105
+ if (ret <= 0) {
106
+ break;
107
+ }
108
+ written += ret;
109
+ }
110
+ }
111
+ fclose(fp);
112
+ return (written == to_write);
113
+ } else {
114
+ ZLog::ErrorV("WriteFile: Failed in fopen! %s, %s\n", szFile, strerror(errno));
115
+ }
116
+ return false;
117
+ }
118
+
119
+ bool ZFile::WriteFile(const char* szFile, const string& strData)
120
+ {
121
+ return WriteFile(szFile, strData.data(), strData.size());
122
+ }
123
+
124
+ bool ZFile::WriteFileV(string& strData, const char* szPath, ...)
125
+ {
126
+ FORMAT_V(szPath, szRealPath);
127
+ return WriteFile(szRealPath, strData);
128
+ }
129
+
130
+ bool ZFile::WriteFileV(const char* szData, size_t sLen, const char* szPath, ...)
131
+ {
132
+ FORMAT_V(szPath, szRealPath);
133
+ return WriteFile(szRealPath, szData, sLen);
134
+ }
135
+
136
+ bool ZFile::ReadFile(const char* szFile, string& strData)
137
+ {
138
+ strData.clear();
139
+ FILE* fp = NULL;
140
+ _fopen64(fp, szFile, "rb");
141
+ if (NULL != fp) {
142
+ _fseeki64(fp, 0, SEEK_END);
143
+ int64_t to_read = _ftelli64(fp);
144
+ _fseeki64(fp, 0, SEEK_SET);
145
+ to_read = (to_read > 0 ? to_read : 0);
146
+ strData.resize((size_t)to_read);
147
+ if (strData.capacity() >= (size_t)to_read) {
148
+ int64_t readed = 0;
149
+ while (readed < to_read) {
150
+ size_t ret = fread(&(strData[(size_t)readed]), 1, (size_t)(to_read - readed), fp);
151
+ if (ret <= 0) {
152
+ break;
153
+ }
154
+ readed += ret;
155
+ }
156
+ }
157
+ fclose(fp);
158
+ return (strData.size() == to_read);
159
+ }
160
+ return false;
161
+ }
162
+
163
+ bool ZFile::ReadFileV(string& strData, const char* szPath, ...)
164
+ {
165
+ FORMAT_V(szPath, szRealPath);
166
+ return ZFile::ReadFile(szRealPath, strData);
167
+ }
168
+
169
+ bool ZFile::AppendFile(const char* szFile, const char* szData, size_t sLen)
170
+ {
171
+ FILE* fp = NULL;
172
+ _fopen64(fp, szFile, "ab+");
173
+ if (NULL != fp) {
174
+ int64_t towrite = sLen;
175
+ while (towrite > 0) {
176
+ int64_t nwrite = fwrite(szData + (sLen - towrite), 1, towrite, fp);
177
+ if (nwrite <= 0) {
178
+ break;
179
+ }
180
+ towrite -= nwrite;
181
+ }
182
+
183
+ fclose(fp);
184
+ return (towrite > 0) ? false : true;
185
+ } else {
186
+ ZLog::ErrorV("AppendFile: Failed in fopen! %s, %s\n", szFile, strerror(errno));
187
+ }
188
+ return false;
189
+ }
190
+
191
+ bool ZFile::AppendFile(const char* szFile, const string& strData)
192
+ {
193
+ return AppendFile(szFile, strData.data(), strData.size());
194
+ }
195
+
196
+ bool ZFile::IsFolder(const char* szFolder)
197
+ {
198
+ #ifdef _WIN32
199
+ return ::PathIsDirectoryA(szFolder);
200
+ #else
201
+ struct stat st = { 0 };
202
+ return 0 == stat(szFolder, &st) && S_ISDIR(st.st_mode);
203
+ #endif
204
+ }
205
+
206
+ bool ZFile::IsFolderV(const char* szPath, ...)
207
+ {
208
+ FORMAT_V(szPath, szFolder);
209
+ return IsFolder(szFolder);
210
+ }
211
+
212
+ bool ZFile::CreateFolder(const char* szFolder)
213
+ {
214
+ string strPath = GetFullPath(szFolder);
215
+ if (!IsFolder(strPath.c_str())) {
216
+ #ifdef _WIN32
217
+ int32_t nRet = ::SHCreateDirectoryExA(NULL, strPath.c_str(), NULL);
218
+ if (ERROR_SUCCESS != nRet && ERROR_ALREADY_EXISTS != nRet) {
219
+ return false;
220
+ }
221
+ #else
222
+ size_t pos = 0;
223
+ pos = strPath.find('/', pos);
224
+ while (string::npos != pos) {
225
+ string strFolder = strPath.substr(0, pos++);
226
+ if (!strFolder.empty()) {
227
+ if (0 != mkdir(strFolder.c_str(), 0755)) {
228
+ if (EEXIST != errno) {
229
+ return false;
230
+ }
231
+ }
232
+ }
233
+ pos = strPath.find('/', pos);
234
+ }
235
+ if (0 != mkdir(strPath.c_str(), 0755)) {
236
+ if (EEXIST != errno) {
237
+ return false;
238
+ }
239
+ }
240
+ return true;
241
+ #endif
242
+ }
243
+ return true;
244
+ }
245
+
246
+ bool ZFile::CreateFolderV(const char* szPath, ...)
247
+ {
248
+ FORMAT_V(szPath, szFolder);
249
+ return CreateFolder(szFolder);
250
+ }
251
+
252
+ int ZFile::RemoveFolderCallBack(const char* fpath, const struct stat* sb, int typeflag, struct FTW* ftwbuf)
253
+ {
254
+ int ret = remove(fpath);
255
+ if (ret) {
256
+ perror(fpath);
257
+ }
258
+ return ret;
259
+ }
260
+
261
+ bool ZFile::RemoveFolder(const char* szFolder)
262
+ {
263
+ if (!IsFolder(szFolder)) {
264
+ RemoveFile(szFolder);
265
+ return true;
266
+ }
267
+ #ifdef _WIN32
268
+ string strFolder = szFolder;
269
+ strFolder.push_back('\0');
270
+
271
+ SHFILEOPSTRUCTA shfs;
272
+ memset(&shfs, 0, sizeof(shfs));
273
+ shfs.wFunc = FO_DELETE;
274
+ shfs.pFrom = strFolder.c_str();
275
+ shfs.fFlags = FOF_NOCONFIRMATION;
276
+ shfs.fFlags |= (FOF_SILENT | FOF_NOERRORUI);
277
+ return (0 == ::SHFileOperationA(&shfs));
278
+ #else
279
+ return nftw(szFolder, RemoveFolderCallBack, 64, FTW_DEPTH | FTW_PHYS);
280
+ #endif
281
+ }
282
+
283
+ bool ZFile::RemoveFolderV(const char* szPath, ...)
284
+ {
285
+ FORMAT_V(szPath, szFolder);
286
+ return RemoveFolder(szFolder);
287
+ }
288
+
289
+ bool ZFile::RemoveFile(const char* szFile)
290
+ {
291
+ return (0 == remove(szFile));
292
+ }
293
+
294
+ bool ZFile::RemoveFileV(const char* szPath, ...)
295
+ {
296
+ FORMAT_V(szPath, szFile);
297
+ return RemoveFile(szFile);
298
+ }
299
+
300
+ bool ZFile::IsFileExists(const char* szFile)
301
+ {
302
+ if (NULL == szFile) {
303
+ return false;
304
+ }
305
+
306
+ #ifdef _WIN32
307
+ return ::PathFileExistsA(szFile);
308
+ #else
309
+ return (0 == access(szFile, F_OK));
310
+ #endif
311
+ }
312
+
313
+ bool ZFile::IsFileExistsV(const char* szPath, ...)
314
+ {
315
+ FORMAT_V(szPath, szFile);
316
+ return IsFileExists(szFile);
317
+ }
318
+
319
+ bool ZFile::IsZipFile(const char* szFile)
320
+ {
321
+ if (NULL != szFile && !IsFolder(szFile)) {
322
+ FILE* fp = NULL;
323
+ _fopen64(fp, szFile, "rb");
324
+ if (NULL != fp) {
325
+ uint8_t buf[2] = { 0 };
326
+ fread(buf, 1, 2, fp);
327
+ fclose(fp);
328
+ return (0 == memcmp("PK", buf, 2));
329
+ }
330
+ }
331
+ return false;
332
+ }
333
+
334
+ bool ZFile::CopyFile(const char* szSrcFile, const char* szDestFile)
335
+ {
336
+ #ifdef _WIN32
337
+ return ::CopyFileA(szSrcFile, szDestFile, FALSE) ? true : false;
338
+ #else
339
+
340
+ int src_id = -1;
341
+ int dest_fd = -1;
342
+ ssize_t sum_readed = 0;
343
+ ssize_t sum_written = 0;
344
+ src_id = open(szSrcFile, O_RDONLY);
345
+ if (-1 != src_id) {
346
+ dest_fd = open(szDestFile, O_CREAT | O_WRONLY | O_TRUNC, 0644);
347
+ if (-1 != dest_fd) {
348
+ char buffer[4096];
349
+ ssize_t bytes_read = read(src_id, buffer, sizeof(buffer));
350
+ while (bytes_read > 0) {
351
+ sum_readed += bytes_read;
352
+ ssize_t bytes_written = write(dest_fd, buffer, bytes_read);
353
+ if (bytes_written != bytes_read) {
354
+ break;
355
+ }
356
+ sum_written += bytes_written;
357
+ bytes_read = read(src_id, buffer, sizeof(buffer));
358
+ }
359
+ close(dest_fd);
360
+ }
361
+ close(src_id);
362
+ }
363
+
364
+ if (-1 == src_id || -1 == dest_fd || sum_readed != sum_written) {
365
+ return false;
366
+ }
367
+
368
+ return true;
369
+
370
+ #endif
371
+ }
372
+
373
+ bool ZFile::CopyFileV(const char* szSrcFile, const char* szDestPath, ...)
374
+ {
375
+ FORMAT_V(szDestPath, szDestFile);
376
+ return CopyFile(szSrcFile, szDestFile);
377
+ }
378
+
379
+ string ZFile::GetFullPath(const char* szPath)
380
+ {
381
+ string strPath = szPath;
382
+ if (!strPath.empty()) {
383
+ #ifdef _WIN32
384
+ char path[PATH_MAX] = { 0 };
385
+ if (NULL != _fullpath(path, szPath, PATH_MAX)) {
386
+ strPath = path;
387
+ }
388
+ ZUtil::StringReplace(strPath, "/", "\\");
389
+ #else
390
+ char path[PATH_MAX] = { 0 };
391
+ if (NULL != realpath(szPath, path)) {
392
+ strPath = path;
393
+ }
394
+ ZUtil::StringReplace(strPath, "//", "/");
395
+ #endif
396
+ }
397
+ return strPath;
398
+ }
399
+
400
+ string ZFile::GetRealPathV(const char* szPath, ...)
401
+ {
402
+ FORMAT_V(szPath, szRealPath);
403
+ return GetFullPath(szRealPath);
404
+ }
405
+
406
+ int64_t ZFile::GetFileSize(FILE* fp)
407
+ {
408
+ if (NULL != fp) {
409
+ _fseeki64(fp, 0, SEEK_END);
410
+ int64_t size = _ftelli64(fp);
411
+ _fseeki64(fp, 0, SEEK_SET);
412
+ return (size > 0 ? size : 0);
413
+ }
414
+ return 0;
415
+ }
416
+
417
+ int64_t ZFile::GetFileSize(const char* szPath)
418
+ {
419
+ int64_t size = 0;
420
+ FILE* fp = NULL;
421
+ _fopen64(fp, szPath, "rb");
422
+ if (NULL != fp) {
423
+ size = GetFileSize(fp);
424
+ fclose(fp);
425
+ }
426
+ return size;
427
+ }
428
+
429
+ int64_t ZFile::GetFileSizeV(const char* szPath, ...)
430
+ {
431
+ FORMAT_V(szPath, szFile);
432
+ return GetFileSize(szFile);
433
+ }
434
+
435
+ string ZFile::GetFileSizeString(const char* szFile)
436
+ {
437
+ return ZUtil::FormatSize(GetFileSize(szFile), 1024);
438
+ }
439
+
440
+ bool ZFile::IsPathSuffix(const string& strPath, const char* suffix)
441
+ {
442
+ size_t nPos = strPath.rfind(suffix);
443
+ if (string::npos != nPos) {
444
+ if (nPos == (strPath.size() - strlen(suffix))) {
445
+ return true;
446
+ }
447
+ }
448
+ return false;
449
+ }
450
+
451
+ const char* ZFile::GetTempFolder()
452
+ {
453
+ static once_flag s_flag;
454
+ static string s_strTempFolder;
455
+ if (s_strTempFolder.empty()) {
456
+ call_once(s_flag, [&]() {
457
+ #ifdef _WIN32
458
+ char szTempPath[PATH_MAX] = { 0 };
459
+ if (0 != ::GetTempPathA(PATH_MAX, szTempPath)) {
460
+ s_strTempFolder = szTempPath;
461
+ } else {
462
+ s_strTempFolder = GetFullPath("./");
463
+ }
464
+ if (!s_strTempFolder.empty() && s_strTempFolder.back() == '\\') {
465
+ s_strTempFolder.pop_back();
466
+ }
467
+ #else
468
+ s_strTempFolder = "/tmp";
469
+ #endif
470
+ });
471
+ }
472
+ return s_strTempFolder.c_str();
473
+ }
474
+
475
+ bool ZFile::EnumFolder(const char* szFolder, bool bRecursive, enum_folder_callback filter, enum_folder_callback callback)
476
+ {
477
+ string strFolder = szFolder;
478
+ if (strFolder.empty() || NULL == callback) {
479
+ return false;
480
+ }
481
+
482
+ #ifdef _WIN32
483
+ string strFromFolder = strFolder + "\\*";
484
+ WIN32_FIND_DATAA fd = { 0 };
485
+ HANDLE hFind = ::FindFirstFileA(strFromFolder.c_str(), &fd);
486
+ if (INVALID_HANDLE_VALUE == hFind) {
487
+ return false;
488
+ }
489
+
490
+ while (::FindNextFileA(hFind, &fd)) {
491
+ if (0 == strcmp(fd.cFileName, ".") || 0 == strcmp(fd.cFileName, "..")) {
492
+ continue;
493
+ }
494
+
495
+ string strName = fd.cFileName;
496
+ string strPath = strFolder + "\\" + strName;
497
+ bool bFolder = (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? true : false;
498
+
499
+ if (NULL != filter) {
500
+ if (filter(bFolder, strPath)) {
501
+ continue;
502
+ }
503
+ }
504
+
505
+ if (callback(bFolder, strPath)) {
506
+ break;
507
+ }
508
+
509
+ if (bFolder && bRecursive) {
510
+ EnumFolder(strPath.c_str(), bRecursive, filter, callback);
511
+ }
512
+ }
513
+ ::FindClose(hFind);
514
+
515
+ #else
516
+
517
+ DIR* dir = opendir(szFolder);
518
+ if (NULL == dir) {
519
+ return false;
520
+ }
521
+
522
+ dirent* ptr = readdir(dir);
523
+ while (NULL != ptr) {
524
+ if (0 == strcmp(ptr->d_name, ".") || 0 == strcmp(ptr->d_name, "..")) {
525
+ ptr = readdir(dir);
526
+ continue;
527
+ }
528
+
529
+ string strPath = strFolder + "/" + ptr->d_name;
530
+
531
+ bool bFolder = false;
532
+ if (DT_DIR == ptr->d_type) {
533
+ bFolder = true;
534
+ } else if (DT_UNKNOWN == ptr->d_type) {
535
+ struct stat st = { 0 };
536
+ if (0 == stat(strPath.c_str(), &st) && S_ISDIR(st.st_mode)) {
537
+ bFolder = true;
538
+ }
539
+ }
540
+
541
+ if (NULL != filter) {
542
+ if (filter(bFolder, strPath)) {
543
+ ptr = readdir(dir);
544
+ continue;
545
+ }
546
+ }
547
+
548
+ if (callback(bFolder, strPath)) {
549
+ break;
550
+ }
551
+
552
+ if (bFolder && bRecursive) {
553
+ EnumFolder(strPath.c_str(), bRecursive, filter, callback);
554
+ }
555
+
556
+ ptr = readdir(dir);
557
+ }
558
+ closedir(dir);
559
+
560
+ #endif
561
+
562
+ return true;
563
+ }
564
+
565
+ bool ZFile::PathRemoveFileSpec(string& path)
566
+ {
567
+ size_t pos = path.find_last_of("/\\");
568
+ if (pos != std::string::npos) {
569
+ path = path.substr(0, pos);
570
+ return true;
571
+ }
572
+ return false;
573
+ }
@@ -0,0 +1,50 @@
1
+ #pragma once
2
+ #include "common.h"
3
+
4
+ typedef function<bool (bool bFolder, const string& strPath)> enum_folder_callback;
5
+
6
+ class ZFile
7
+ {
8
+ public:
9
+ static bool ReadFile(const char* szFile, string& strData);
10
+ static bool ReadFileV(string& strData, const char* szPath, ...);
11
+ static bool WriteFile(const char* szFile, const string& strData);
12
+ static bool WriteFile(const char* szFile, const char* szData, size_t sLen);
13
+ static bool WriteFileV(string& strData, const char* szPath, ...);
14
+ static bool WriteFileV(const char* szData, size_t sLen, const char* szPath, ...);
15
+ static bool AppendFile(const char* szFile, const string& strData);
16
+ static bool AppendFile(const char* szFile, const char* szData, size_t sLen);
17
+ static bool IsRegularFile(const char* szFile);
18
+ static bool IsFolder(const char* szFolder);
19
+ static bool IsFolderV(const char* szPath, ...);
20
+ static bool CreateFolder(const char* szFolder);
21
+ static bool CreateFolderV(const char* szPath, ...);
22
+ static bool RemoveFile(const char* szFile);
23
+ static bool RemoveFileV(const char* szPath, ...);
24
+ static bool RemoveFolder(const char* szFolder);
25
+ static bool RemoveFolderV(const char* szPath, ...);
26
+ static bool IsFileExists(const char* szFile);
27
+ static bool IsFileExistsV(const char* szPath, ...);
28
+ static int64_t GetFileSize(FILE* fp);
29
+ static int64_t GetFileSize(const char* szPath);
30
+ static int64_t GetFileSizeV(const char* szPath, ...);
31
+ static string GetFileSizeString(const char* szFile);
32
+ static bool IsZipFile(const char* szFile);
33
+ static bool CopyFile(const char* szSrcFile, const char* szDestFile);
34
+ static bool CopyFileV(const char* szSrcFile, const char* szDestPath, ...);
35
+ static string GetFullPath(const char* szPath);
36
+ static string GetRealPathV(const char* szPath, ...);
37
+ static void* MapFile(const char* path, size_t offset, size_t size, size_t* psize, bool ro);
38
+ static bool UnmapFile(void* base, size_t size);
39
+ static bool IsPathSuffix(const string& strPath, const char* suffix);
40
+ static const char* GetTempFolder();
41
+ static bool EnumFolder(const char* szFolder, bool bRecursive, enum_folder_callback filter, enum_folder_callback callback);
42
+
43
+ static bool PathRemoveFileSpec(string& path);
44
+
45
+ private:
46
+ static int RemoveFolderCallBack(const char* fpath, const struct stat* sb, int typeflag, struct FTW* ftwbuf);
47
+
48
+ private:
49
+ static map<void*, void*> s_mapFiles;
50
+ };