Package: game-data-packager Version: 43 Severity: wishlist
The InnoSetup format stored SHA1 or MD5 of all files; maybe this could be used at archive detection phase without having to unpack everything. Maybe a pull request against innoextract for a new '--list' sub-option could be proposed to make it easier. That would output - file size in bytes - the hash (we can guess from it's length if it is a md5 or sha1) - file name ... in a machine-readable format, that could be the same one as used in the yaml files: - size + n whitepspaces + hash + n whitespace + remainder = name https://github.com/dscharrer/innoextract/blob/d1102ea5e43c605d119394e9bbe0944cb9d7ffae/src/setup/data.cpp if(version >= INNO_VERSION(5, 3, 9)) { is.read(file.checksum.sha1, std::streamsize(sizeof(file.checksum.sha1))); file.checksum.type = crypto::SHA1; } else if(version >= INNO_VERSION(4, 2, 0)) { is.read(file.checksum.md5, std::streamsize(sizeof(file.checksum.md5))); file.checksum.type = crypto::MD5; } else if(version >= INNO_VERSION(4, 0, 1)) { file.checksum.crc32 = util::load<boost::uint32_t>(is); file.checksum.type = crypto::CRC32; } else { file.checksum.adler32 = util::load<boost::uint32_t>(is); file.checksum.type = crypto::Adler32; } -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (500, 'testing'), (450, 'unstable'), (400, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.3.0-1-amd64 (SMP w/6 CPU cores) Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)