ZipReader

ZIP reader over a seekable RandomAccessSource (+ZIP64). Reads the central directory at the tail (the authoritative record), so entries is a cheap "browse without extract", and read seeks to a single local header for partial extract. This reader decodes STORE and DEFLATE. Other methods appear in entries, but read throws for them.

Security: duplicate local-header offsets (the overlapping-bomb signature) are rejected at parse time; read enforces ArchiveLimits (size + ratio) and verifies the stored CRC-32. This reader returns entry names raw. Run them through io.github.yuroyami.kitearchive.security.PathGuard before writing to disk.

Constructors

Link copied to clipboard
constructor(source: RandomAccessSource)

Properties

Link copied to clipboard
open override val format: ArchiveFormat

The container format this reader handles.

Functions

Link copied to clipboard
open fun close()

Release the underlying source.

Link copied to clipboard
open override fun entries(): List<ArchiveEntry>

List members from the header/directory only.

Link copied to clipboard
open override fun read(entry: ArchiveEntry, limits: ArchiveLimits = ArchiveLimits.DEFAULT): ByteArray

Read one entry's uncompressed bytes, enforcing limits.