ZIP Study Table Edits

Thorsten Behrens tbehrens at novell.com
Tue Dec 7 12:00:19 CET 2010


Hi,

attached are my edits to
http://www.xmlopen.org/wg1-wiki/index.php/Zip_Study

It's not yet pushed to the wiki, I've found a number of issues (did
*not* yet check whether we've any DRs on that), and a few questions
remain:

Inconsistencies:
 * the compression algorithm supported is DEFLATE, as described in the
   .ZIP specification. The package implementer shall not use any
   compression algorithm other than DEFLATE. But Store is also
   permitted below.
 * ZIP-based packages shall not include encryption as described in the
   ZIP specification. Package implementers shall enforce this
   restriction. But why is this then in need of support for pass
   through editing?

Limitations:
 * do not exceed 65,535 bytes for the combined length of the item
   name, Extra field, and Comment fields
 * various limits in permissible values for local file header

Extensions:
 * growth hint

Notes: 
 - in the ZIP study table: local header parity with data descriptors -
   what's that, couldn't map to any appnote / part 2 item
 - support is for pass-through editing only:
   * AV Info
   * Reserved for future Unicode file name data (PFS)
   * OS/2 extended attributes (also Info-ZIP)
   * NTFS (Win9x/WinNT FileTimes)
   * OpenVMS (also Info-ZIP)
   * Unix
   * Reserved for file stream and fork descriptors
   * Patch Descriptor
   * PKCS#7 Store for X.509 Certificates
   * X.509 Certificate ID and Signature for individual file
   * X.509 Certificate ID for Central Directory
   * Strong Encryption Header
   * Record Management Controls
   * PKCS#7 Encryption Recipient Certificate List
   * IBM S/390 (Z390), AS/400 (I400) attributes - uncompressed
   * Reserved for IBM S/390 (Z390), AS/400 (I400)  attributes - compressed
   * Info-ZIP Macintosh (old, J. Lee)
   * ZipIt Macintosh (first version)
   * ZipIt Macintosh v 1.3.5 and newer (w/o full filename)
   * ZipIt Macintosh 1.3.5+
   * Info-ZIP Macintosh (new, D. Haase's 'Mac3' field)
   * Tandem NSK
   * Acorn/SparkFS (David Pilling)
   * Windows NT security descriptor (binary ACL)
   * VM/CMS
   * MVS
   * Theos, old inofficial port
   * FWKCS MD5 (see below)
   * OS/2 access control list (text ACL)
   * Info-ZIP OpenVMS (obsolete)
   * Macintosh SmartZIP, by Macro Bambini
   * Xceed original location extra field
   * AOS/VS (binary ACL)
   * extended timestamp
   * Xceed unicode extra field
   * Info-ZIP Unix (original; also OS/2, NT, etc.)
   * BeOS (BeBox, PowerMac, etc.)
   * Theos
   * AtheOS (AtheOS/Syllable attributes)
   * ASi Unix
   * Info-ZIP Unix (new)
   * SMS/QDOS

Regards,

-- Thorsten
-------------- next part --------------
== Administrivia ==

The [http://mailman.vse.cz/mailman/listinfo/sc34wg1study mailing list] archive for this group's discussions is [http://mailman.vse.cz/pipermail/sc34wg1study/ here].

== Problem Statement ==

=== Background ===
ZIP archive compression is a long-standing, widely-adopted technology, originally described by PKWARE in their ZIP Application Note.  This technology is used for many purposes in the industry, from the archiving and compression of files to packaging of applications.

Additionally, in recent years there have been a number of document format standards that use ZIP as a "container file" for storing XML and related resources.  For example, OASIS ODF (ISO/IEC 26300), Ecma OOXML (ISO/IEC 29500), IDPF EPUB and W3C Widgets.

=== Problem statement ===

This use of the ZIP Application Note, as an external normative reference, by International Standards or specifications which may be on the track to become International Standards, presents the following problems:

*The .ZIP Application Note lacks an official standards infrastructure, such as a Standards Compatible Reference, Test Suites, and a feedback mechanism.
*There is an ambiguous IPR landscape, especially related to the IPR referenced in the .ZIP Application Note.
*There are technical issues related to the use of ZIP as a document package which are not covered by the .ZIP Application Note, such as specification of additional manifests, embedding of encryption and signature artifacts, and additional constraints on internal file types and naming.
*ZIP is a ubiquitous and highly interoperable technology, and any standards activity relating to ZIP should not negatively impact the current use of ZIP or its current use in standards. [''This is a constraint, not a problem statement ]

=== Associated Issues ===

As a back up to the main problems identified above, here are a set of more specific issues that fall under these categories:

*No Standards Compatible Reference 
**Current Application Note is not referenceable by International Standards
**There is no mechanism to reference parts of the Application Note
**There is ambiguity in terms of the future maintenance of the Application Note (e.g. feedback procedures and transparency)
**There is a lack of formal conformance definitions identifying the requirements of a conforming ZIP archive, the requirements of a conforming ZIP producer, and a conforming ZIP consumer.
** There is a lack of an official test suite to define interoperability.
*Ambiguous IPR Landscape
**It is not possible to identify which parts of the Application Note are subject to IP and which are not
**The use of ZIP in Open Standards (which are implementable in all Open Source) requires any IP used in the standards to be licensed under RF terms.
*Technical Issues related to the use of ZIP as a Document Package
**Minimum feature set relevant to all document packaging use of ZIP
**additional syntax
**additional objects and metadata
**signatures and encryption
**ZIP URL protocol & fragment identifiers
*Do No Harm to the Current Usage of ZIP
**Ubiquitous nature of ZIP creates wide reaching benefits (utilities built into all development platforms and OSes)
**Currently in use by wide range of standards
***ODF, OOXML, EPUB
***W3C widgets
***Java (jar, war, ear, java.util.zip)
***XPI
***ADL-SCORM
* Issues around Zip resources, per [http://www.itscj.ipsj.or.jp/sc34/def/1473.pdf liaison statement] (defined access) from [http://www.itscj.ipsj.or.jp/sc29/29w12911.htm SC 29/WG 11]
** how can URLs be constructed to refer to the parts of an archive:
*** from outside the archive, and
*** from within archive resources?
** Should there be a formal definition of the MIME type and 'anchor' / 'fragment' syntax for addressing purposes
** Having the central directory at the end of archives inhibits index-aware processing of streamed archives; can this be addressed?

== Technical features of the "Zip" format ==

=== Normative References ===

The following is a (probably rough) list of technologies referenced by the PKWare appnote 6.3.2. Whatever route is taken for standardizing/referencing ZIP, all of these technologies must be cited and maintained in accord with JTC 1 process:

* "enhanced compression"
* "reduce" compression [defined in appnote as methods 2-5?]
* "shrink" compression [Dynamic Ziv-Lempel-Welch compression algorithm with partial clearing]
* "standard MS-DOS format" for date/time
* 3DES encryption
* AES encryption
* Blowfish encryption
* BZIP2 compression
* corrected RC2 encryption
* corrected RC2-64 encryption
* CRC-32
* Deflate compression [Huffman compression]
* Deflate64(tm) compression
* DES encryption
* EBCDIC 
* IBM Code Page 437
* IBM LZ77 z Architecture (PFS) compression
* Implosion compression (& Shannon-Fano trees?)
* LZMA compression
* MD5
* non-OAEP key wrapping
* Optimal Asymmetric Encryption Padding
* original RC2 encryption
* patch data set 
* PKWARE Data Compression Library Imploding (old IBM TERSE)
* PKWARE DCL Implode
* PPMd version I, Rev 1
* PPMd+ compression
* RC4 encryption
* Tokenizing compression
* traditional PKWARE encryption [probably, defined in appnote]
* Twofish encryption
* WavPack compressed data
* X.509 Certificates, etc 
* ZIP64(tm) [specified in appnote]

=== General Features ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|local file headers
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
|-
| align="left"|data descriptors
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|local header parity with data descriptors
| &#160;
| &#160;
| &#160;
| &#160;
| &#160;
| &#160;
|-
| align="left"|archive decryption header
| &#160;
| &#160;
| &#160;
| bgcolor="#faa"|&#x2718;
| &#160;
| &#160;
|-
| align="left"|archive extra data record
| &#160;
| &#160;
| &#160;
| bgcolor="#faa"|&#x2718;
| &#160;
| &#160;
|-
| align="left"|central directory
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|zip64 end of central directory record V1
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|zip64 end of central directory record V2
| &#160;
| &#160;
| &#160;
| bgcolor="#faa"|&#x2718;
| &#160;
| &#160;
|-
| align="left"|zip64 end of central directory locator
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|end of central directory record
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|license agreement within text
| &#160;
| &#160;
| &#160;
| bgcolor="#faa"|&#x2718;
| &#160;
| &#160;
|-
| align="left"|encryption
| &#160;
| &#160;
| &#160;
| bgcolor="#faa"|&#x2718;
| &#160;
| &#160;
|}

=== Local header fields ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|local file header signature (4 bytes) (0x04034b50)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|version needed to extract (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|general purpose bit flag (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|compression method (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|last mod file time (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|last mod file date (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|crc-32 (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|compressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|uncompressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|file name length (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|extra field length (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|file name (variable size)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|extra field (variable size)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|}

=== Extra field IDs ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|0x0001 ZIP64 extended information extra field
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0007 AV Info
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0008 Reserved for future Unicode file name data (PFS)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0009 OS/2 extended attributes (also Info-ZIP)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x000a NTFS (Win9x/WinNT FileTimes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x000c OpenVMS (also Info-ZIP)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x000d Unix
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x000e Reserved for file stream and fork descriptors
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x000f Patch Descriptor
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0014 PKCS#7 Store for X.509 Certificates
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0015 X.509 Certificate ID and Signature for individual file
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0016 X.509 Certificate ID for Central Directory
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0017 Strong Encryption Header
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0018 Record Management Controls
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0019 PKCS#7 Encryption Recipient Certificate List
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0065 IBM S/390 (Z390), AS/400 (I400) attributes - uncompressed
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x0066 Reserved for IBM S/390 (Z390), AS/400 (I400)  attributes - compressed
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x07c8 Info-ZIP Macintosh (old, J. Lee)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x2605 ZipIt Macintosh (first version)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x2705 ZipIt Macintosh v 1.3.5 and newer (w/o full filename)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x2805 ZipIt Macintosh 1.3.5+
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x334d Info-ZIP Macintosh (new, D. Haase's 'Mac3' field)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4154 Tandem NSK
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4341 Acorn/SparkFS (David Pilling)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4453 Windows NT security descriptor (binary ACL)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4704 VM/CMS
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x470f MVS
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4854 Theos, old inofficial port
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4b46 FWKCS MD5 (see below)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4c41 OS/2 access control list (text ACL)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4d49 Info-ZIP OpenVMS (obsolete)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4d63 Macintosh SmartZIP, by Macro Bambini
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x4f4c Xceed original location extra field
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x5356 AOS/VS (binary ACL)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x5455 extended timestamp
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x554e Xceed unicode extra field
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x5855 Info-ZIP Unix (original; also OS/2, NT, etc.)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x6542 BeOS (BeBox, PowerMac, etc.)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x6854 Theos
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x7441 AtheOS (AtheOS/Syllable attributes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x756e ASi Unix
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0x7855 Info-ZIP Unix (new)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|0xfb4a SMS/QDOS
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|}

=== Data descriptor fields ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|data descriptor header (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|crc-32 (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|compressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|uncompressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|}

=== Storage methods ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|store
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| &#160;
|-
| align="left"|deflate (IETF RFC 1951)
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| &#160;
|-
| align="left"|implode
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| &#160;
|-
| align="left"|shrink
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| &#160;
|-
| align="left"|bzip2
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|WAVPack
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|Reduce/expand
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| &#160;
|-
| align="left"|Tokenizing compression algorithm
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|Deflate64&trade;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|old IBM TERSE
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|[http://en.wikipedia.org/wiki/Lzma LZMA] (EFS)
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|new IBM TERSE
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|IBM LZ77 z Architecture
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|-
| align="left"|[http://en.wikipedia.org/wiki/Prediction_by_partial_matching PPMd]
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| bgcolor="#afa"|&#x2714;
| bgcolor="#faa"|&#x2718;
| bgcolor="#faa"|&#x2718;
| &#160;
|}

=== Central directory fields ===

{| border="1" class="wikitable sortable" style="font-size: 85%; text-align: center; width: auto;"
|-
! width="180"|Feature<br>
! width="100"|Info-Zip<br>Note 970311<br>
! width="100"|PKWare<br>appnote 4.5<br>
! width="100"|PKWare<br>appnote 6.3.2<br>
! width="100"|ISO/IEC 29500<br>
! width="100"|ISO/IEC 26300<br>
! width="100"|EPUB<br>
|-
| align="left"|central file header signature (4 bytes)  (0x02014b50)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|version made by (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|version needed to extract (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|general purpose bit flag (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|compression method (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|last mod file time (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|last mod file date (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|crc-32 (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|compressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|uncompressed size (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|file name length (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|extra field length (2 bytes)
| &#160;
| &#160;
| &#160;
| &#160;
| &#160;
| &#160;
|-
| align="left"|file comment length (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|disk number start (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|internal file attributes (2 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|external file attributes (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|relative offset of local header (4 bytes)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|file name (variable size)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|extra field (variable size)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|-
| align="left"|file comment (variable size)
| &#160;
| &#160;
| &#160;
| bgcolor="#afa"|&#x2714;
| &#160;
| &#160;
|}

== Links ==

=== Standardization ===
* [http://www.itscj.ipsj.or.jp/sc34/open/1414.pdf New Work Item Proposal on Document Packaging (SC 34 N 1414)]
* [http://www.itscj.ipsj.or.jp/sc34/def/1461.pdf Summary of voting on SC 34 N 1414] (defined access)
* [http://www.itscj.ipsj.or.jp/sc34/def/1473.pdf Liaison Statement from SC 29/WG 11 to SC 34 on Work Item on Document Packaging] (defined access)
* [http://www.itscj.ipsj.or.jp/sc34/def/1494.htm WG 1 Response to comments in SC 34 N 1461] (defined access)
* [http://www.itscj.ipsj.or.jp/sc34/open/1495.htm Recommendations of the SC 34/WG 1 Meeting, Tokyo, Japan, 2010-09-08/09 ]
* [http://www.itscj.ipsj.or.jp/sc34/open/1501.htm Resolutions of ISO/IEC JTC 1/SC 34 Plenary Meeting, Tokyo, Japan, 2010-09-10]

==== Procedural ====

* [http://isotc.iso.org/livelink/livelink?func=ll&objId=9384365&objAction=browse&sort=name JTC 1 documents]

=== Specifications using Zip ===
* ISO/IEC 29500
* ISO/IEC 26300
* [http://www.idpf.org/specs.htm EPUB]
* [http://www.w3.org/TR/widgets/ W3C Widget Packaging and Configuration]
* [http://www.dreamweavermx2.biz/devnet/indesign/documentation.html#idml Adobe IDML]
* Java's [http://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html jar], [http://en.wikipedia.org/wiki/WAR_(Sun_file_format) war], [http://en.wikipedia.org/wiki/EAR_(file_format) ear], [http://download.oracle.com/javase/6/docs/api/java/util/zip/package-summary.html java.util.zip], and [http://download.oracle.com/javase/6/docs/api/java/util/jar/package-summary.html java.util.jar] ''(The [http://download.oracle.com/javase/1.4.2/docs/api/java/util/jar/package-summary.html java.util.jar] spec. states that "The JAR format is based on the Info-ZIP file format" and links us to the Info-Zip application note 970311, available [http://www.mirrorservice.org/sites/ftp.info-zip.org/pub/infozip/doc/appnote-19970311-iz.zip here]).''

=== Zip specifications ===
* [http://www.pkware.com/support/zip-app-note PKWare .Zip Application Note]
* [http://www.mirrorservice.org/sites/ftp.info-zip.org/pub/infozip/doc/ Info-Zip appnote]

=== Some implementations ===
* [http://www.7-zip.org/ 7-Zip]
* [http://www.info-zip.org/ Info-Zip]
* [http://www.pkware.com/ PKWare's PKZip, SecureZip]
* [http://www.winzip.com/index.htm WinZip]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zip-study.diff
Type: text/x-patch
Size: 10310 bytes
Desc: not available
URL: <http://mailman.vse.cz/pipermail/sc34wg4/attachments/20101207/1d2eb277/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://mailman.vse.cz/pipermail/sc34wg4/attachments/20101207/1d2eb277/attachment-0001.pgp>


More information about the sc34wg4 mailing list