Skip to content
Novus Examples
zip577 B

ZIP - Extended Timestamp and Unix UID/GID Extra Fields

The DOS timestamp in a ZIP header has 2-second resolution and no timezone, so Info-ZIP adds a 0x5455 extended timestamp and a 0x7875 uid/gid field. Here the uid/gid field appears in the local header only, matching what Info-ZIP actually writes, so a reader that reads extras from the central directory alone sees the timestamp but loses the ownership.

Archive contents — 2 entrieszip
  • README.txt
  • records.csv

Specifications

Seed
20260807
Members
2
Extra Fields
0x5455 (UT), 0x7875 (Unix uid/gid)
Dos Timestamp Resolution
2 seconds, local time, no zone
Unix Timestamp
1767225600
Uid
1000
Gid
1000
Asymmetry
0x7875 is present in the local header only, as Info-ZIP writes it

Testing contract

Expected to pass
Scenario
Read each member's modification time and owner from the extra fields rather than the DOS date, taking local and central extras into account.
Expected result
Both members report Unix time 1767225600 exactly, and uid/gid 1000/1000 read from the local header; the central directory carries the timestamp but no ownership.

What is a .zip file?

ZIP is a widely supported archive format that bundles multiple files and directories into one container, typically with per-file DEFLATE compression and a central directory index. It supports random access to individual entries without decompressing the whole archive. It underlies many document formats such as DOCX and EPUB.

How to use this file

Use an example ZIP to test archive extraction, central-directory parsing, per-entry decompression, and protection against path-traversal (zip-slip) during unpacking.

How to use this file for testing

“ZIP - Extended Timestamp and Unix UID/GID Extra Fields” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l extended-timestamps.zip     # list members
unzip extended-timestamps.zip -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.