| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | #------------------------------------------------------------------------------# $File: zip,v 1.8 2021/10/24 15:53:56 christos Exp $# zip:  file(1) magic for zip files; this is not use# Note the version of magic in archive is currently stronger, this is# just an example until negative offsets are supported better# Note:	All fields unless otherwise noted are unsigned!# Zip Central Directory record0	name		zipcd>0	string		PK\001\002	Zip archive data!:mime	application/zip# no "made by" in local file header with PK\3\4 magic>>4	leshort		x		\b, made by>>4	use		zipversion>>4	use		ziphost# inside ./archive 1.151 called "at least" zipversion "to extract">>6	leshort		x		\b, extract using at least>>6	use		zipversion# This is DOS date like: ledate 21:00:48 19 Dec 2001 != DOS 00:00 1 Jan 2010 ~ 0000213C>>12	ulelong		x		\b, last modified>>14	lemsdosdate	x		\b, last modified %s>>12	lemsdostime	x		%s# uncompressed size of 1st entry; FFffFFff means real value stored in ZIP64 record>>24	ulelong		!0xFFffFFff	\b, uncompressed size %u# inside ./archive 1.151 called "compression method="zipcompression>>10	leshort		x		\b, method=>>10	use		zipcompression# URL:		https://en.wikipedia.org/wiki/Zip_(file_format)# reference:	https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT (Version: 6.3.9)# Zip known compressions0	name		zipcompression>0	leshort		0		\bstore>0	leshort		1		\bShrinking>0	leshort		6		\bImploding>0	leshort		7		\bTokenizing>0	leshort		8		\bdeflate>0	leshort		9		\bdeflate64>0	leshort		10		\bLibrary imploding#>0	leshort		11 		\bReserved by PKWARE>0	leshort		12		\bbzip2#>0	leshort		13 		\bReserved by PKWARE>0	leshort		14		\blzma#>0	leshort		15 		\bReserved by PKWARE>0	leshort		16		\bCMPSC (IBM z/OS)#>0	leshort		17 		\bReserved by PKWARE>0	leshort		18		\bIBM TERSE>0	leshort		19		\bIBM LZ77 (z/Architecture)>0	leshort		20		\bZstd (deprecated)>0	leshort		93		\bZstd>0	leshort		94		\bMP3>0	leshort		95		\bxz>0	leshort		96		\bJpeg>0	leshort		97		\bWavPack>0	leshort		98		\bPPMd>0	leshort		99		\bAES Encrypted>0	default		x>>0	leshort		x		\b[%#x]# Zip known versions0	name		zipversion# The lower byte indicates the ZIP version of this file. The value/10 indicates# the major version number, and the value mod 10 is the minor version number.>0	ubyte/10	x		v%u>0	ubyte%10	x		\b.%u# >0	leshort		0x09		v0.9# >0	leshort		0x0a		v1.0# >0	leshort		0x0b		v1.1# >0	leshort		0x14		v2.0# >0	leshort		0x15		v2.1# >0	leshort		0x19		v2.5# >0	leshort		0x1b		v2.7# >0	leshort		0x2d		v4.5# >0	leshort		0x2e		v4.6# >0	leshort		0x32		v5.0# >0	leshort		0x33		v5.1# >0	leshort		0x34		v5.2# >0	leshort		0x3d		v6.1# >0	leshort		0x3e		v6.2# >0	leshort		0x3f		v6.3# >0	default		x# >>0	leshort		x		v?[%#x]#	display compatible host system name of ZIP archive0	name		ziphost# The upper byte indicates the compatibility of the file attribute information.# If the file is compatible with MS-DOS (v 2.04g) then this value will be zero.#>1	ubyte		0		DOS>1	ubyte		1 		Amiga>1	ubyte		2		OpenVMS>1	ubyte		3		UNIX>1	ubyte		4		VM/CMS>1	ubyte		6		OS/2>1	ubyte		7		Macintosh>1	ubyte		11		MVS>1	ubyte		13		Acorn Risc>1	ubyte		16		BeOS>1	ubyte		17		Tandem# 9 untested>1	ubyte		5		Atari ST>1	ubyte		8		Z-System>1	ubyte		9		CP/M>1	ubyte		10		Windows NTFS>1	ubyte		12		VSE>1	ubyte		14		VFAT>1	ubyte		15		alternate MVS>1	ubyte		18		OS/400>1	ubyte		19		OS X# unused#>1	ubyte		>19		unused %#x# Zip End Of Central Directory record# GRR: wrong for ZIP with comment archive-22	string		PK\005\006#>4	uleshort	!0xFFff		\b, %u disks#>6	uleshort	!0xFFff		\b, central directory disk %u#>8	uleshort	!0xFFff		\b, %u central directories on this disk#>10	uleshort	!0xFFff		\b, %u central directories#>12	ulelong		!0xFFffFFff	\b, %u central directory bytes# offset of central directory#>16	ulelong		x		\b, central directory offset %#x>(16.l)	use		zipcd# archive comment length n#>>20	uleshort	>0		\b, comment length %u# archive comment>>20	pstring/l	>0		\b, %s
 |