Repository navigation
Conversation
DAA was missing. The new descriptor reads and writes format 0x100: the
76-byte header (CRC-32 checked), descriptors (password and multi-volume
refused), the 3-byte chunk-length table (high, low, middle byte) and the
raw-deflate chunks, each followed by a little-endian CRC-32 of its deflate
bytes. image.iso is returned to the ISO size; replacing it rewrites the
container with the same chunk size.
The per-chunk CRC was found by measurement: PowerISO 1.3 writes it on every
chunk and refuses images without it ("file format is invalid"); daa2iso
never reads it.
Oracle: PowerISO for Linux 1.3 (freeware, sha256-pinned, black box).
It converts our DAA images back to identical ISOs (1, 147 and 489 sectors)
and we read the DAA images it writes; a PowerISO-written fixture with its
source ISO hash is checked in with provenance. New CI gate downloads and
verifies the binary.
Format 0x110 (bit-packed/obfuscated table, LZMA+BCJ chunks), split images
and gBurner GBI stay refused: no tool available here writes them, so
nothing could be verified.
Sourcing: rung 2 for the layout (daa2iso 0.1.7e, GPL-2.0, read for
behaviour only) plus measurement of PowerISO output; recorded in
docs/DAA-ON-DISK.md.
DAA inherited the default purge-to-empty capability while its modifier and creator require the logical ISO image. The fallback therefore failed with ArgumentException after a removal refusal. Declare CanPurgeToEmpty=false so maintenance discovery omits purge and the shared guard refuses before any mutation; keep replacement supported and regenerate the support matrix and API reference. Verified: both new purge regressions failed before the fix and now pass for zero-length and populated images, preserving archive and payload bytes. Release solution build; full required suite: 34,130 passed, 1,561 skipped, zero failures; 64 focused checks passed with 14 tool-dependent skips.
Retain the validated mandatory-image purge restriction and regression cases while incorporating current main and regenerating the combined FileSystems API count and reference. Verified: Release solution build, 71 refreshed format/architecture/documentation checks passed with 15 tool-dependent skips; documentation generation completed without errors. Before this main refresh the required suite passed 34,130 tests with 1,561 skipped and zero failures.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
Daa(R/W for format 0x100):image.iso+metadata.ini. 0x110, split, password and gBurner GBI refused (no verifiable samples).Verification
Compression.Tests/Daa/ReferenceVectors, provenance README) decodes to the pinned source-ISO hash.Finding: every 0x100 chunk carries a little-endian CRC-32 of its deflate bytes; PowerISO rejects images without it (not documented by daa2iso).
Sourcing: rung 2 (daa2iso, GPL) + measurement;
docs/DAA-ON-DISK.md.DAA requires its logical ISO image, so the descriptor declares
CanPurgeToEmpty=false: purge is omitted from maintenance discovery and refused before mutation, while image replacement remains supported. Regression cases cover empty and populated payloads and verify the archive and decoded image remain unchanged.Integration validation: Release solution build; full local required suite, 34,130 passed / 1,561 skipped / 0 failed; 71 refreshed format, architecture and documentation checks passed with 15 tool-dependent skips. The support matrix and API reference were regenerated from the built descriptor.