libmspack 0.10.1 → 0.10.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +37 -0
- data/.gitignore +2 -0
- data/ext/Rakefile +1 -1
- data/ext/x86_64-linux/libmspack.so +0 -0
- data/ext/x86_64-windows/mspack.dll +0 -0
- data/lib/libmspack/version.rb +1 -1
- data/lib/libmspack.rb +1 -1
- data/libmspack.gemspec +1 -1
- metadata +6 -348
- data/.travis.yml +0 -5
- data/ext/i386-windows/libmspack.dll +0 -0
- data/ext/libmspack/doc/Doxyfile +0 -9
- data/ext/libmspack/doc/Makefile +0 -8
- data/ext/libmspack/doc/html/annotated.html +0 -104
- data/ext/libmspack/doc/html/bc_s.png +0 -0
- data/ext/libmspack/doc/html/bdwn.png +0 -0
- data/ext/libmspack/doc/html/classes.html +0 -85
- data/ext/libmspack/doc/html/closed.png +0 -0
- data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
- data/ext/libmspack/doc/html/doc.png +0 -0
- data/ext/libmspack/doc/html/doxygen.css +0 -1596
- data/ext/libmspack/doc/html/doxygen.png +0 -0
- data/ext/libmspack/doc/html/dynsections.js +0 -97
- data/ext/libmspack/doc/html/files.html +0 -78
- data/ext/libmspack/doc/html/folderclosed.png +0 -0
- data/ext/libmspack/doc/html/folderopen.png +0 -0
- data/ext/libmspack/doc/html/functions.html +0 -454
- data/ext/libmspack/doc/html/functions_vars.html +0 -454
- data/ext/libmspack/doc/html/globals.html +0 -406
- data/ext/libmspack/doc/html/globals_defs.html +0 -316
- data/ext/libmspack/doc/html/globals_func.html +0 -161
- data/ext/libmspack/doc/html/graph_legend.html +0 -102
- data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
- data/ext/libmspack/doc/html/graph_legend.png +0 -0
- data/ext/libmspack/doc/html/index.html +0 -167
- data/ext/libmspack/doc/html/jquery.js +0 -87
- data/ext/libmspack/doc/html/menu.js +0 -26
- data/ext/libmspack/doc/html/menudata.js +0 -56
- data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
- data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
- data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
- data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
- data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
- data/ext/libmspack/doc/html/nav_f.png +0 -0
- data/ext/libmspack/doc/html/nav_g.png +0 -0
- data/ext/libmspack/doc/html/nav_h.png +0 -0
- data/ext/libmspack/doc/html/open.png +0 -0
- data/ext/libmspack/doc/html/search/all_0.html +0 -26
- data/ext/libmspack/doc/html/search/all_0.js +0 -6
- data/ext/libmspack/doc/html/search/all_1.html +0 -26
- data/ext/libmspack/doc/html/search/all_1.js +0 -5
- data/ext/libmspack/doc/html/search/all_10.html +0 -26
- data/ext/libmspack/doc/html/search/all_10.js +0 -8
- data/ext/libmspack/doc/html/search/all_11.html +0 -26
- data/ext/libmspack/doc/html/search/all_11.js +0 -4
- data/ext/libmspack/doc/html/search/all_12.html +0 -26
- data/ext/libmspack/doc/html/search/all_12.js +0 -4
- data/ext/libmspack/doc/html/search/all_13.html +0 -26
- data/ext/libmspack/doc/html/search/all_13.js +0 -4
- data/ext/libmspack/doc/html/search/all_2.html +0 -26
- data/ext/libmspack/doc/html/search/all_2.js +0 -14
- data/ext/libmspack/doc/html/search/all_3.html +0 -26
- data/ext/libmspack/doc/html/search/all_3.js +0 -13
- data/ext/libmspack/doc/html/search/all_4.html +0 -26
- data/ext/libmspack/doc/html/search/all_4.js +0 -6
- data/ext/libmspack/doc/html/search/all_5.html +0 -26
- data/ext/libmspack/doc/html/search/all_5.js +0 -13
- data/ext/libmspack/doc/html/search/all_6.html +0 -26
- data/ext/libmspack/doc/html/search/all_6.js +0 -4
- data/ext/libmspack/doc/html/search/all_7.html +0 -26
- data/ext/libmspack/doc/html/search/all_7.js +0 -5
- data/ext/libmspack/doc/html/search/all_8.html +0 -26
- data/ext/libmspack/doc/html/search/all_8.js +0 -5
- data/ext/libmspack/doc/html/search/all_9.html +0 -26
- data/ext/libmspack/doc/html/search/all_9.js +0 -7
- data/ext/libmspack/doc/html/search/all_a.html +0 -26
- data/ext/libmspack/doc/html/search/all_a.js +0 -144
- data/ext/libmspack/doc/html/search/all_b.html +0 -26
- data/ext/libmspack/doc/html/search/all_b.js +0 -10
- data/ext/libmspack/doc/html/search/all_c.html +0 -26
- data/ext/libmspack/doc/html/search/all_c.js +0 -5
- data/ext/libmspack/doc/html/search/all_d.html +0 -26
- data/ext/libmspack/doc/html/search/all_d.js +0 -7
- data/ext/libmspack/doc/html/search/all_e.html +0 -26
- data/ext/libmspack/doc/html/search/all_e.js +0 -5
- data/ext/libmspack/doc/html/search/all_f.html +0 -26
- data/ext/libmspack/doc/html/search/all_f.js +0 -15
- data/ext/libmspack/doc/html/search/classes_0.html +0 -26
- data/ext/libmspack/doc/html/search/classes_0.js +0 -30
- data/ext/libmspack/doc/html/search/close.png +0 -0
- data/ext/libmspack/doc/html/search/defines_0.html +0 -26
- data/ext/libmspack/doc/html/search/defines_0.js +0 -84
- data/ext/libmspack/doc/html/search/files_0.html +0 -26
- data/ext/libmspack/doc/html/search/files_0.js +0 -4
- data/ext/libmspack/doc/html/search/functions_0.html +0 -26
- data/ext/libmspack/doc/html/search/functions_0.js +0 -33
- data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
- data/ext/libmspack/doc/html/search/nomatches.html +0 -12
- data/ext/libmspack/doc/html/search/search.css +0 -271
- data/ext/libmspack/doc/html/search/search.js +0 -791
- data/ext/libmspack/doc/html/search/search_l.png +0 -0
- data/ext/libmspack/doc/html/search/search_m.png +0 -0
- data/ext/libmspack/doc/html/search/search_r.png +0 -0
- data/ext/libmspack/doc/html/search/searchdata.js +0 -30
- data/ext/libmspack/doc/html/search/variables_0.html +0 -26
- data/ext/libmspack/doc/html/search/variables_0.js +0 -6
- data/ext/libmspack/doc/html/search/variables_1.html +0 -26
- data/ext/libmspack/doc/html/search/variables_1.js +0 -5
- data/ext/libmspack/doc/html/search/variables_10.html +0 -26
- data/ext/libmspack/doc/html/search/variables_10.js +0 -8
- data/ext/libmspack/doc/html/search/variables_11.html +0 -26
- data/ext/libmspack/doc/html/search/variables_11.js +0 -4
- data/ext/libmspack/doc/html/search/variables_12.html +0 -26
- data/ext/libmspack/doc/html/search/variables_12.js +0 -4
- data/ext/libmspack/doc/html/search/variables_13.html +0 -26
- data/ext/libmspack/doc/html/search/variables_13.js +0 -4
- data/ext/libmspack/doc/html/search/variables_2.html +0 -26
- data/ext/libmspack/doc/html/search/variables_2.js +0 -14
- data/ext/libmspack/doc/html/search/variables_3.html +0 -26
- data/ext/libmspack/doc/html/search/variables_3.js +0 -13
- data/ext/libmspack/doc/html/search/variables_4.html +0 -26
- data/ext/libmspack/doc/html/search/variables_4.js +0 -6
- data/ext/libmspack/doc/html/search/variables_5.html +0 -26
- data/ext/libmspack/doc/html/search/variables_5.js +0 -13
- data/ext/libmspack/doc/html/search/variables_6.html +0 -26
- data/ext/libmspack/doc/html/search/variables_6.js +0 -4
- data/ext/libmspack/doc/html/search/variables_7.html +0 -26
- data/ext/libmspack/doc/html/search/variables_7.js +0 -5
- data/ext/libmspack/doc/html/search/variables_8.html +0 -26
- data/ext/libmspack/doc/html/search/variables_8.js +0 -5
- data/ext/libmspack/doc/html/search/variables_9.html +0 -26
- data/ext/libmspack/doc/html/search/variables_9.js +0 -7
- data/ext/libmspack/doc/html/search/variables_a.html +0 -26
- data/ext/libmspack/doc/html/search/variables_a.js +0 -5
- data/ext/libmspack/doc/html/search/variables_b.html +0 -26
- data/ext/libmspack/doc/html/search/variables_b.js +0 -10
- data/ext/libmspack/doc/html/search/variables_c.html +0 -26
- data/ext/libmspack/doc/html/search/variables_c.js +0 -5
- data/ext/libmspack/doc/html/search/variables_d.html +0 -26
- data/ext/libmspack/doc/html/search/variables_d.js +0 -7
- data/ext/libmspack/doc/html/search/variables_e.html +0 -26
- data/ext/libmspack/doc/html/search/variables_e.js +0 -5
- data/ext/libmspack/doc/html/search/variables_f.html +0 -26
- data/ext/libmspack/doc/html/search/variables_f.js +0 -15
- data/ext/libmspack/doc/html/splitbar.png +0 -0
- data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
- data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
- data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
- data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
- data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
- data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
- data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
- data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
- data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
- data/ext/libmspack/doc/html/structmspack__file.html +0 -107
- data/ext/libmspack/doc/html/structmspack__system.html +0 -404
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
- data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
- data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
- data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
- data/ext/libmspack/doc/html/sync_off.png +0 -0
- data/ext/libmspack/doc/html/sync_on.png +0 -0
- data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
- data/ext/libmspack/doc/html/tab_a.png +0 -0
- data/ext/libmspack/doc/html/tab_b.png +0 -0
- data/ext/libmspack/doc/html/tab_h.png +0 -0
- data/ext/libmspack/doc/html/tab_s.png +0 -0
- data/ext/libmspack/doc/html/tabs.css +0 -1
- data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
- data/ext/libmspack/examples/cabd_memory.c +0 -179
- data/ext/libmspack/examples/cabrip.c +0 -85
- data/ext/libmspack/examples/chmextract.c +0 -121
- data/ext/libmspack/examples/msexpand.c +0 -48
- data/ext/libmspack/examples/multifh.c +0 -435
- data/ext/libmspack/examples/oabextract.c +0 -41
- data/ext/libmspack/test/cabd_md5.c +0 -161
- data/ext/libmspack/test/cabd_test.c +0 -468
- data/ext/libmspack/test/chmd_find.c +0 -95
- data/ext/libmspack/test/chmd_md5.c +0 -67
- data/ext/libmspack/test/chmd_order.c +0 -144
- data/ext/libmspack/test/chmd_test.c +0 -134
- data/ext/libmspack/test/chminfo.c +0 -285
- data/ext/libmspack/test/error.h +0 -22
- data/ext/libmspack/test/kwajd_test.c +0 -119
- data/ext/libmspack/test/md5.c +0 -450
- data/ext/libmspack/test/md5.h +0 -166
- data/ext/libmspack/test/md5_fh.h +0 -123
- data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
- data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
- data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
- data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
- data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
- data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
- data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
- data/ext/x86_64-linux/liblibmspack.so +0 -0
- data/ext/x86_64-windows/libmspack.dll +0 -0
- data/ext/x86_64-windows-msys/libmspack.dll +0 -0
data/ext/libmspack/test/md5_fh.h
DELETED
@@ -1,123 +0,0 @@
|
|
1
|
-
/* an mspack_system implementation which reads one or more files, and
|
2
|
-
* only writes to one file; the file is not actually written to, but
|
3
|
-
* an MD5 sum is computed and is available once the written-to file is
|
4
|
-
* closed. You can use anything for the written-to filename, NULL is
|
5
|
-
* probably the most obvious. The code is not multithreadable.
|
6
|
-
*/
|
7
|
-
|
8
|
-
#include <md5.h>
|
9
|
-
#include <stdio.h>
|
10
|
-
#include <stdarg.h>
|
11
|
-
|
12
|
-
struct md5_ctx md5_context;
|
13
|
-
char md5_string[33];
|
14
|
-
|
15
|
-
struct mspack_file_p {
|
16
|
-
FILE *fh;
|
17
|
-
};
|
18
|
-
|
19
|
-
static struct mspack_file *m_open(struct mspack_system *self, const char *filename, int mode) {
|
20
|
-
struct mspack_file_p *fh;
|
21
|
-
if (mode != MSPACK_SYS_OPEN_WRITE &&
|
22
|
-
mode != MSPACK_SYS_OPEN_READ) return NULL;
|
23
|
-
|
24
|
-
if ((fh = (struct mspack_file_p *) malloc(sizeof(struct mspack_file_p)))) {
|
25
|
-
if (mode == MSPACK_SYS_OPEN_WRITE) {
|
26
|
-
fh->fh = NULL;
|
27
|
-
md5_init_ctx(&md5_context);
|
28
|
-
return (struct mspack_file *) fh;
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
if ((fh->fh = fopen(filename, "rb")))
|
32
|
-
return (struct mspack_file *) fh;
|
33
|
-
}
|
34
|
-
/* error - free file handle and return NULL */
|
35
|
-
free(fh);
|
36
|
-
}
|
37
|
-
return NULL;
|
38
|
-
}
|
39
|
-
|
40
|
-
static void m_close(struct mspack_file *file) {
|
41
|
-
struct mspack_file_p *self = (struct mspack_file_p *) file;
|
42
|
-
if (self) {
|
43
|
-
if (self->fh) fclose(self->fh);
|
44
|
-
else {
|
45
|
-
unsigned char md5[16];
|
46
|
-
md5_finish_ctx(&md5_context, (void *) &md5);
|
47
|
-
snprintf(md5_string, sizeof(md5_string),
|
48
|
-
"%02x%02x%02x%02x%02x%02x%02x%02x"
|
49
|
-
"%02x%02x%02x%02x%02x%02x%02x%02x",
|
50
|
-
md5[0], md5[1], md5[2], md5[3],
|
51
|
-
md5[4], md5[5], md5[6], md5[7],
|
52
|
-
md5[8], md5[9], md5[10], md5[11],
|
53
|
-
md5[12], md5[13], md5[14], md5[15]);
|
54
|
-
}
|
55
|
-
free(self);
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
static int m_read(struct mspack_file *file, void *buffer, int bytes) {
|
60
|
-
struct mspack_file_p *self = (struct mspack_file_p *) file;
|
61
|
-
if (self && self->fh && buffer && bytes >= 0) {
|
62
|
-
size_t count = fread(buffer, 1, bytes, self->fh);
|
63
|
-
if (!ferror(self->fh)) return (int) count;
|
64
|
-
}
|
65
|
-
return -1;
|
66
|
-
}
|
67
|
-
|
68
|
-
static int m_write(struct mspack_file *file, void *buffer, int bytes) {
|
69
|
-
struct mspack_file_p *self = (struct mspack_file_p *) file;
|
70
|
-
if (!self || self->fh || !buffer || bytes < 0) return -1;
|
71
|
-
md5_process_bytes(buffer, bytes, &md5_context);
|
72
|
-
return bytes;
|
73
|
-
}
|
74
|
-
|
75
|
-
static int m_seek(struct mspack_file *file, off_t offset, int mode) {
|
76
|
-
struct mspack_file_p *self = (struct mspack_file_p *) file;
|
77
|
-
if (self && self->fh) {
|
78
|
-
switch (mode) {
|
79
|
-
case MSPACK_SYS_SEEK_START: mode = SEEK_SET; break;
|
80
|
-
case MSPACK_SYS_SEEK_CUR: mode = SEEK_CUR; break;
|
81
|
-
case MSPACK_SYS_SEEK_END: mode = SEEK_END; break;
|
82
|
-
default: return -1;
|
83
|
-
}
|
84
|
-
#if HAVE_FSEEKO
|
85
|
-
return fseeko(self->fh, offset, mode);
|
86
|
-
#else
|
87
|
-
return fseek(self->fh, offset, mode);
|
88
|
-
#endif
|
89
|
-
}
|
90
|
-
return -1;
|
91
|
-
}
|
92
|
-
|
93
|
-
static off_t m_tell(struct mspack_file *file) {
|
94
|
-
struct mspack_file_p *self = (struct mspack_file_p *) file;
|
95
|
-
#if HAVE_FSEEKO
|
96
|
-
return (self && self->fh) ? (off_t) ftello(self->fh) : 0;
|
97
|
-
#else
|
98
|
-
return (self && self->fh) ? (off_t) ftell(self->fh) : 0;
|
99
|
-
#endif
|
100
|
-
}
|
101
|
-
|
102
|
-
static void m_msg(struct mspack_file *file, const char *format, ...) {
|
103
|
-
va_list ap;
|
104
|
-
va_start(ap, format);
|
105
|
-
vfprintf(stderr, format, ap);
|
106
|
-
va_end(ap);
|
107
|
-
fputc((int) '\n', stderr);
|
108
|
-
fflush(stderr);
|
109
|
-
}
|
110
|
-
static void *m_alloc(struct mspack_system *self, size_t bytes) {
|
111
|
-
return malloc(bytes);
|
112
|
-
}
|
113
|
-
static void m_free(void *buffer) {
|
114
|
-
free(buffer);
|
115
|
-
}
|
116
|
-
static void m_copy(void *src, void *dest, size_t bytes) {
|
117
|
-
memcpy(dest, src, bytes);
|
118
|
-
}
|
119
|
-
|
120
|
-
static struct mspack_system read_files_write_md5 = {
|
121
|
-
&m_open, &m_close, &m_read, &m_write, &m_seek,
|
122
|
-
&m_tell, &m_msg, &m_alloc, &m_free, &m_copy, NULL
|
123
|
-
};
|
@@ -1,84 +0,0 @@
|
|
1
|
-
#!perl -w
|
2
|
-
use strict;
|
3
|
-
|
4
|
-
sub byte($) {pack 'c',$_[0]};
|
5
|
-
sub ubyte($) {pack 'C',$_[0]};
|
6
|
-
sub uword($) {pack 'v',$_[0]};
|
7
|
-
sub ulong($) {pack 'V',$_[0]};
|
8
|
-
|
9
|
-
my $RESV_HEADER = 'reserved header test 12345';
|
10
|
-
#my $RESV_HEADER = '';
|
11
|
-
#my $RESV_FOLDER = 'reserved folder test 12345';
|
12
|
-
my $RESV_FOLDER = '';
|
13
|
-
my $RESV_DATA = 'reserved data test 12345';
|
14
|
-
#my $RESV_DATA = '';
|
15
|
-
|
16
|
-
my $header
|
17
|
-
= 'MSCF' # 00 SIGNATURE
|
18
|
-
. ulong(0) # 04
|
19
|
-
. ulong(0) # 08 CABINET SIZE
|
20
|
-
. ulong(0) # 0C
|
21
|
-
. ulong(0) # 10 FILES OFFSET
|
22
|
-
. ulong(0) # 14
|
23
|
-
. ubyte(3) # 18 MINOR VERSION
|
24
|
-
. ubyte(1) # 19 MAJOR VERSION
|
25
|
-
. uword(1) # 1A number of folders
|
26
|
-
. uword(2) # 1C number of files
|
27
|
-
. uword(4) # 1E flags
|
28
|
-
. uword(1) # 20 set id
|
29
|
-
. uword(0) # 22 cab index
|
30
|
-
|
31
|
-
. uword(length($RESV_HEADER)) # 00 header reserved
|
32
|
-
. ubyte(length($RESV_FOLDER)) # 02 folder resv
|
33
|
-
. ubyte(length($RESV_DATA)) # 03 data resv
|
34
|
-
. $RESV_HEADER
|
35
|
-
;
|
36
|
-
|
37
|
-
my $folder
|
38
|
-
= ulong(0) # data offset
|
39
|
-
. uword(2) # number of blocks
|
40
|
-
. uword(0) # compression method
|
41
|
-
. $RESV_FOLDER
|
42
|
-
;
|
43
|
-
|
44
|
-
my $files
|
45
|
-
= ulong(5) # uncompressed size
|
46
|
-
. ulong(0) # folder offset
|
47
|
-
. uword(0) # folder index
|
48
|
-
. uword(0x226C) # time
|
49
|
-
. uword(0x59BA) # date
|
50
|
-
. uword(0x20) # attribs
|
51
|
-
. "test1.txt\0"
|
52
|
-
|
53
|
-
. ulong(5) # uncompressed size
|
54
|
-
. ulong(5) # folder offset
|
55
|
-
. uword(0) # folder index
|
56
|
-
. uword(0x226C) # time
|
57
|
-
. uword(0x59BA) # date
|
58
|
-
. uword(0x20) # attribs
|
59
|
-
. "test2.txt\0"
|
60
|
-
;
|
61
|
-
|
62
|
-
my $datablocks
|
63
|
-
= ulong(0) # checksum
|
64
|
-
. uword(5) # compressed size
|
65
|
-
. uword(5) # uncompressed size
|
66
|
-
. $RESV_DATA
|
67
|
-
. "TEST\n" # actual data
|
68
|
-
|
69
|
-
. ulong(0) # checksum
|
70
|
-
. uword(5) # compressed size
|
71
|
-
. uword(5) # uncompressed size
|
72
|
-
. $RESV_DATA
|
73
|
-
. "test\n" # actual data
|
74
|
-
;
|
75
|
-
|
76
|
-
my $pre_files = $header . $folder;
|
77
|
-
my $pre_data = $pre_files . $files;
|
78
|
-
my $cab = $pre_data . $datablocks;
|
79
|
-
|
80
|
-
substr($header, 0x08, 4, ulong(length($cab)));
|
81
|
-
substr($header, 0x10, 4, ulong(length($pre_files)));
|
82
|
-
substr($folder, 0x00, 4, ulong(length($pre_data)));
|
83
|
-
|
84
|
-
print $header . $folder . $files . $datablocks;
|
@@ -1,75 +0,0 @@
|
|
1
|
-
#!perl -w
|
2
|
-
use strict;
|
3
|
-
|
4
|
-
sub byte($) {pack 'c',$_[0]};
|
5
|
-
sub ubyte($) {pack 'C',$_[0]};
|
6
|
-
sub uword($) {pack 'v',$_[0]};
|
7
|
-
sub ulong($) {pack 'V',$_[0]};
|
8
|
-
|
9
|
-
my $header
|
10
|
-
= 'MSCF' # 00 SIGNATURE
|
11
|
-
. ulong(0) # 04
|
12
|
-
. ulong(0) # 08 CABINET SIZE
|
13
|
-
. ulong(0) # 0C
|
14
|
-
. ulong(0) # 10 FILES OFFSET
|
15
|
-
. ulong(0) # 14
|
16
|
-
. ubyte(3) # 18 MINOR VERSION
|
17
|
-
. ubyte(1) # 19 MAJOR VERSION
|
18
|
-
. uword(1) # 1A number of folders
|
19
|
-
. uword(3) # 1C number of files
|
20
|
-
. uword(1) # 1E flags
|
21
|
-
. uword(12345) # 20 set id
|
22
|
-
. uword(4) # 22 cab index
|
23
|
-
. "cabd_multi_basic_pt4.cab\0"
|
24
|
-
. "basic multipart test part 4\0"
|
25
|
-
|
26
|
-
;
|
27
|
-
|
28
|
-
my $folder
|
29
|
-
= ulong(0) # data offset
|
30
|
-
. uword(1) # number of blocks
|
31
|
-
. uword(0) # compression method
|
32
|
-
;
|
33
|
-
|
34
|
-
my $files
|
35
|
-
= ulong(76) # uncompressed size
|
36
|
-
. ulong(0) # folder offset
|
37
|
-
. uword(0xFFFD) # folder index
|
38
|
-
. uword(0x226C) # time
|
39
|
-
. uword(0x59BA) # date
|
40
|
-
. uword(0x20) # attribs
|
41
|
-
. "test1.txt\0"
|
42
|
-
|
43
|
-
. ulong(38) # uncompressed size
|
44
|
-
. ulong(76) # folder offset
|
45
|
-
. uword(0xFFFD) # folder index
|
46
|
-
. uword(0x226C) # time
|
47
|
-
. uword(0x59BA) # date
|
48
|
-
. uword(0x20) # attribs
|
49
|
-
. "test2.txt\0"
|
50
|
-
|
51
|
-
. ulong(76) # uncompressed size
|
52
|
-
. ulong(76+38) # folder offset
|
53
|
-
. uword(0xFFFD) # folder index
|
54
|
-
. uword(0x226C) # time
|
55
|
-
. uword(0x59BA) # date
|
56
|
-
. uword(0x20) # attribs
|
57
|
-
. "test3.txt\0"
|
58
|
-
;
|
59
|
-
|
60
|
-
my $datablocks
|
61
|
-
= ulong(0) # checksum
|
62
|
-
. uword(38) # compressed size
|
63
|
-
. uword(190) # uncompressed size
|
64
|
-
. "This is the data from cabinet part 5.\n" # actual data
|
65
|
-
;
|
66
|
-
|
67
|
-
my $pre_files = $header . $folder;
|
68
|
-
my $pre_data = $pre_files . $files;
|
69
|
-
my $cab = $pre_data . $datablocks;
|
70
|
-
|
71
|
-
substr($header, 0x08, 4, ulong(length($cab)));
|
72
|
-
substr($header, 0x10, 4, ulong(length($pre_files)));
|
73
|
-
substr($folder, 0x00, 4, ulong(length($pre_data)));
|
74
|
-
|
75
|
-
print $header . $folder . $files . $datablocks;
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/perl -w
|
2
|
-
use strict;
|
3
|
-
my $name = '123456789';
|
4
|
-
for my $file (0 .. 9) {
|
5
|
-
for my $ext (0 .. 4) {
|
6
|
-
open my $fh, '>', "f$file$ext.kwj";
|
7
|
-
my $offset = 14 + $file + $ext;
|
8
|
-
my $flags = ($file > 0 ? 8 : 0) | ($ext > 0 ? 16 : 0);
|
9
|
-
print $fh pack 'A4Vvvv', 'KWAJ', 0xD127F088, 0, $offset, $flags;
|
10
|
-
print $fh substr $name, 0, $file if $file > 0;
|
11
|
-
print $fh "\0" if $file > 0 && $file < 9;
|
12
|
-
print $fh substr $name, 0, $ext if $ext > 0;
|
13
|
-
print $fh "\0" if $ext > 0 && $ext < 4;
|
14
|
-
print $fh "\xFF";
|
15
|
-
close $fh;
|
16
|
-
}
|
17
|
-
}
|
Binary file
|
Binary file
|
Binary file
|