NikitolProject
ce9012c5c5
feat(03-01): create library crate, update main.rs imports, add dev-dependencies
...
- Create src/lib.rs re-exporting all modules as public
- Update main.rs to use encrypted_archive:: imports instead of local mod declarations
- Add dev-dependencies: tempfile, assert_cmd, hex-literal, predicates
2026-02-25 00:29:01 +03:00
NikitolProject
be507070b6
feat(02-02): implement pack, unpack, and inspect archive commands
...
- pack: two-pass algorithm reads/hashes/compresses/encrypts files then writes header+TOC+data
- inspect: reads header and TOC, displays all metadata (sizes, offsets, IVs, HMACs, SHA-256)
- unpack: HMAC-first verification, AES-256-CBC decryption, optional gzip decompression, SHA-256 check
- CLI dispatch wired from main.rs to archive module
- Directory traversal protection: rejects filenames starting with / or containing ..
- Compression auto-detection: .apk/.zip/etc stored without gzip (flags=0x00 when no file compressed)
- Round-trip verified: pack+unpack produces byte-identical files
- HMAC tamper detection verified: flipped ciphertext byte triggers rejection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 00:03:28 +03:00
NikitolProject
c647f3a90e
feat(02-01): project scaffolding with Cargo, CLI skeleton, and key module
...
- Initialize Rust project with aes, cbc, hmac, sha2, flate2, clap, rand, anyhow dependencies
- Add clap derive CLI with pack/unpack/inspect subcommands
- Add hardcoded 32-byte AES-256 key constant
- Create stub modules for format, crypto, compression, archive
- All 7 source files in place, cargo build succeeds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-24 23:56:09 +03:00