- SUMMARY.md: 7 golden vectors + 6 round-trip integration tests - STATE.md: Phase 3 complete (50% overall), 5 plans done - ROADMAP.md: Phase 3 marked complete - REQUIREMENTS.md: INT-02, TST-01, TST-02 marked complete Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
80 lines
3.1 KiB
Markdown
80 lines
3.1 KiB
Markdown
# Project State
|
|
|
|
## Project Reference
|
|
|
|
See: .planning/PROJECT.md (updated 2026-02-24)
|
|
|
|
**Core value:** Archive impossible to unpack without knowing the format -- standard tools (7z, tar, unzip, binwalk) cannot recognize or extract contents
|
|
**Current focus:** Phase 3 complete, ready for Phase 4
|
|
|
|
## Current Position
|
|
|
|
Phase: 3 of 6 (Round-Trip Verification) -- COMPLETE
|
|
Plan: 2 of 2 in current phase (all done)
|
|
Status: Phase 3 complete, ready for Phase 4
|
|
Last activity: 2026-02-24 -- Golden vectors + round-trip integration tests (32 total tests passing)
|
|
|
|
Progress: [█████░░░░░] 50%
|
|
|
|
## Performance Metrics
|
|
|
|
**Velocity:**
|
|
- Total plans completed: 5
|
|
- Average duration: 4.6 min
|
|
- Total execution time: 0.4 hours
|
|
|
|
**By Phase:**
|
|
|
|
| Phase | Plans | Total | Avg/Plan |
|
|
|-------|-------|-------|----------|
|
|
| 1. Format Specification | 1 | 7 min | 7 min |
|
|
| 2. Core Archiver | 2/2 | 6 min | 3 min |
|
|
| 3. Round-Trip Verification | 2/2 | 8 min | 4 min |
|
|
|
|
**Recent Trend:**
|
|
- Last 5 plans: 7min, 4min, 2min, 3min, 5min
|
|
- Trend: stable
|
|
|
|
*Updated after each plan completion*
|
|
|
|
## Accumulated Context
|
|
|
|
### Decisions
|
|
|
|
Decisions are logged in PROJECT.md Key Decisions table.
|
|
Recent decisions affecting current work:
|
|
|
|
- Roadmap: Format spec must precede all implementation (all three decoders build against same spec)
|
|
- Roadmap: Obfuscation (XOR headers, encrypted TOC, decoy padding) deferred to Phase 6 after all decoders work without it
|
|
- Phase 1: IV stored only in TOC, not duplicated in data blocks (simplifies shell dd extraction)
|
|
- Phase 1: Same 32-byte key for AES-256-CBC and HMAC-SHA-256 in v1 (v2 will use HKDF)
|
|
- Phase 1: Magic bytes 0x00 0xEA 0x72 0x63 (leading null signals binary)
|
|
- Phase 1: HMAC scope = IV (16 bytes) || ciphertext (encrypted_size bytes)
|
|
- Phase 2: Used rand::Fill::fill() for IV generation (correct rand 0.9 API)
|
|
- Phase 2: Manual binary serialization with to_le_bytes/from_le_bytes (no serde/bincode)
|
|
- Phase 2: Filename-only entry names (not full paths) for archive portability
|
|
- Phase 2: HMAC failure skips file and continues; SHA-256 mismatch warns but writes
|
|
- Phase 2: Flags bit 0 set only when at least one file is actually compressed
|
|
- Phase 3: Library crate with pub mod re-exports for all 6 modules
|
|
- Phase 3: Unit tests embedded in modules via #[cfg(test)] (not separate files)
|
|
- Phase 3: hex-literal v1.1 for compile-time SHA-256 known-value assertions
|
|
- Phase 3: Corrected HMAC golden vector (openssl pipe+xxd produced wrong value; verified with file input and Python)
|
|
- Phase 3: cargo_bin! macro for non-deprecated assert_cmd binary resolution
|
|
- Phase 3: 11MB deterministic pseudo-random data for large file test (wrapping_mul Knuth hash)
|
|
|
|
### Pending Todos
|
|
|
|
None yet.
|
|
|
|
### Blockers/Concerns
|
|
|
|
- Open question: Does target busybox have `openssl enc -aes-256-cbc` with `-K`/`-iv` flags? (affects Phase 5)
|
|
- Open question: Is `xxd` available in target busybox? Fallback: `od` (affects Phase 5; spec includes od fallback functions)
|
|
- RESOLVED: HMAC uses same key as AES in v1 (decided in Phase 1 spec, v2 will use HKDF)
|
|
|
|
## Session Continuity
|
|
|
|
Last session: 2026-02-24
|
|
Stopped at: Completed 03-02-PLAN.md (Golden vectors + round-trip tests; Phase 3 complete)
|
|
Resume file: None
|