NikitolProject
2b470685e8
docs(08-01): complete Rust directory archiver plan
...
- Create 08-01-SUMMARY.md with execution results and metrics
- Update STATE.md: Phase 8 complete, 12/~19 plans (63%)
- Update ROADMAP.md: Phase 8 marked complete
- Update REQUIREMENTS.md: DIR-01 through DIR-05 marked complete
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:50:32 +03:00
NikitolProject
8760981717
test(08-01): add directory round-trip integration tests
...
- test_roundtrip_directory: full directory tree with permissions verification
- test_roundtrip_mixed_files_and_dirs: mixed file + directory pack/unpack
- test_inspect_shows_directory_info: inspect output contains dir/file types and permissions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:48:20 +03:00
NikitolProject
7820c18622
feat(08-01): add directory support to pack/unpack/inspect
...
- Implement collect_entries() with recursive directory traversal (DFS preorder)
- pack() handles mixed file and directory arguments with relative paths
- Directory entries stored with entry_type=1, zero-length crypto fields
- unpack() creates directory hierarchy and restores Unix mode bits
- inspect() displays entry type (dir/file) and octal permissions
- Update cli.rs doc comments for directory support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:47:15 +03:00
NikitolProject
4e25d19ff5
feat(08-01): update format.rs for v1.1 TOC entry layout
...
- Bump VERSION constant from 1 to 2
- Add entry_type (u8) and permissions (u16) fields to TocEntry struct
- Update write_toc_entry/read_toc_entry for new field order after name
- Update entry_size formula from 101 to 104 + name_length
- Update all unit tests for v1.1 layout (new fields, version 2, sizes)
- Add placeholder entry_type/permissions to archive.rs ProcessedFile for compilation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:45:20 +03:00
NikitolProject
7be915ff47
docs(08-rust-directory-archiver): create phase plan
2026-02-26 21:37:49 +03:00
NikitolProject
51e5b40045
docs(phase-07): complete phase execution
2026-02-26 21:32:27 +03:00
NikitolProject
034a6939f1
docs(07-01): complete format spec update plan
...
- SUMMARY.md with execution metrics and self-check
- STATE.md updated: Phase 7 complete, progress 58%
- ROADMAP.md: Phase 7 marked complete (1/1 plans)
- REQUIREMENTS.md: FMT-09, FMT-10, FMT-11, FMT-12 marked complete
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:28:15 +03:00
NikitolProject
37f7dd1f83
feat(07-01): replace worked example with v1.1 directory archive
...
- New worked example: 3 entries (2 dirs + 1 file) totaling 427 bytes
- Demonstrates nested dir (project/src), file (project/src/main.rs), empty dir (project/empty)
- Entry hex tables show entry_type and permissions fields
- Directory entries have all-zero crypto fields (iv, hmac, sha256, sizes)
- File entry shows full crypto pipeline with real SHA-256 hash
- Archive layout table with verified offsets (header=40, TOC=355, data=32)
- Complete annotated hex dump covers all 427 bytes
- Shell decode walkthrough handles directory entries (mkdir -p + chmod)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:25:55 +03:00
NikitolProject
e7535da7ce
feat(07-01): update TOC entry definition with entry_type, permissions, and path semantics
...
- Add entry_type (u8) and permissions (u16 LE) fields to TOC entry
- Add Entry Type Values table (0x00=file, 0x01=directory)
- Add Permission Bits Layout table (POSIX mode_t lower 12 bits)
- Add Entry Name Semantics subsection (relative paths, parent-before-child)
- Update entry size formula: 101 -> 104 + name_length
- Bump format version from 1 to 2
- Rename file_count to entry_count in header
- Update Decode Order of Operations for directory handling
- Update Version Compatibility Rules for v2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 21:21:13 +03:00
NikitolProject
a7c3e009c9
docs(07-format-spec-update): create phase plan
2026-02-26 21:13:34 +03:00
NikitolProject
a716d09178
docs: create milestone v1.1 roadmap (5 phases)
2026-02-25 04:10:09 +03:00
NikitolProject
d787e05794
docs: define milestone v1.1 requirements
2026-02-25 04:05:10 +03:00
NikitolProject
c336022fb9
docs: start milestone v1.1 Directory Support
2026-02-25 03:56:18 +03:00
NikitolProject
d876f42b5c
wip: milestone v1.0 completion paused — all phases done, archival pending
2026-02-25 03:49:42 +03:00
NikitolProject
7c24ae8558
feat: Delete depth with gitea.com in CI
CI / test (push) Successful in 42s
Release / Build and release (push) Failing after 1m40s
v1.0.0
2026-02-25 03:32:28 +03:00
NikitolProject
b9ed446deb
feat: Change CI logic
CI / test (push) Successful in 41s
Release / Build and release (push) Has been cancelled
2026-02-25 03:19:16 +03:00
NikitolProject
96048f31f2
clean: Delete unused .jar file
CI / test (push) Successful in 40s
2026-02-25 03:12:51 +03:00
NikitolProject
8920e8be24
feat: add CI with gitea workflows
CI / test (push) Successful in 1m22s
Release / Build aarch64-unknown-linux-musl (push) Has been cancelled
Release / Build x86_64-pc-windows-gnu (push) Has been cancelled
Release / Package decoders (push) Has been cancelled
Release / Create release (push) Has been cancelled
Release / Build x86_64-unknown-linux-musl (push) Has been cancelled
2026-02-25 02:59:34 +03:00
NikitolProject
e0605b2955
docs: Add README files & etc
2026-02-25 02:50:47 +03:00
NikitolProject
b04b7b1c2c
docs(phase-6): complete phase execution
2026-02-25 02:36:57 +03:00
NikitolProject
02dd009905
docs(06-02): complete Kotlin and Shell decoder obfuscation support plan
...
- Create 06-02-SUMMARY.md with execution results
- Update STATE.md: phase 6 complete, 100% progress, new decisions
- Update ROADMAP.md: phase 6 plans marked complete
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 02:29:05 +03:00
NikitolProject
ac51cc70aa
feat(06-02): add XOR header bootstrapping and encrypted TOC support to Shell decoder
...
- Add XOR_KEY_HEX constant and hex_to_bin() helper (xxd + od fallback)
- Replace magic check with XOR bootstrapping: read 40 bytes, XOR if mismatch
- Write de-XORed header to temp file for field parsing
- Add TOC decryption via openssl enc when flags bit 1 is set
- Switch TOC parsing loop from $ARCHIVE to $TOC_FILE variable
- Update HMAC verification to construct IV from parsed hex (not archive position)
- All 7 cross-validation tests pass (Rust pack -> Shell decode -> SHA-256 match)
2026-02-25 02:26:05 +03:00
NikitolProject
cef681fd13
feat(06-02): add XOR header bootstrapping and encrypted TOC support to Kotlin decoder
...
- Add XOR_KEY constant matching FORMAT.md Section 9.1
- Add xorHeader() function with signed byte masking (and 0xFF)
- Update decode() with XOR bootstrapping: check magic, XOR if mismatch
- Update decode() with TOC decryption: decrypt when flags bit 1 is set
- Backward compatible: plain headers and unencrypted TOC still work
2026-02-25 02:24:25 +03:00
NikitolProject
4eaedc2872
docs(06-01): complete Rust obfuscation pipeline plan
...
- Add 06-01-SUMMARY.md with execution results
- Update STATE.md: phase 6, plan 1/2, 90% progress
- Update ROADMAP.md: phase 06 plan progress 1/2
- Mark FMT-06, FMT-07, FMT-08 complete in REQUIREMENTS.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 02:21:52 +03:00
NikitolProject
b6fa51d9fd
feat(06-01): implement full obfuscation pipeline in archive.rs
...
- pack(): generate decoy padding (64-4096 random bytes per file)
- pack(): encrypt serialized TOC with AES-256-CBC using random toc_iv
- pack(): XOR header buffer before writing (8-byte cyclic key)
- pack(): set flags bits 1-3 (0x0E) for all obfuscation features
- unpack(): XOR bootstrapping via read_header_auto()
- unpack(): decrypt TOC when flags bit 1 is set
- inspect(): full de-obfuscation via shared read_archive_metadata()
- Factor out read_archive_metadata() helper for unpack/inspect reuse
- All existing tests pass (unit, golden, round-trip integration)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 02:19:48 +03:00
NikitolProject
8ac25125ab
feat(06-01): add XOR header obfuscation and buffer-based serialization to format.rs
...
- Add XOR_KEY constant (FORMAT.md Section 9.1)
- Add xor_header_buf() for cyclic 8-byte XOR encode/decode
- Add write_header_to_buf() for buffer-based header serialization
- Add read_header_auto() with XOR bootstrapping detection
- Add serialize_toc() and read_toc_from_buf() helpers for TOC encryption
- Add parse_header_from_buf() internal helper
- Add 6 new unit tests (XOR round-trip, magic change, auto-detect, buf helpers)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 02:17:59 +03:00
NikitolProject
0cd76d7a32
docs(06-obfuscation-hardening): create phase plan
2026-02-25 02:12:16 +03:00
NikitolProject
361f9bfb6b
docs(06): research phase domain
2026-02-25 02:08:11 +03:00
NikitolProject
b6ef40d826
docs(phase-5): complete phase execution
2026-02-25 01:50:55 +03:00
NikitolProject
230f447711
docs(05-02): complete shell decoder cross-validation tests plan
...
- SUMMARY.md: 6/6 tests pass (single, multi, no-compress, empty, large, Cyrillic)
- STATE.md: Phase 5 complete, 8 plans total, 80% progress
- ROADMAP.md: Phase 5 marked complete (2/2 plans)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:46:27 +03:00
NikitolProject
e9d7442ead
test(05-02): add cross-validation test script for shell decoder
...
- 6 test cases: single text, multiple files, no-compress, empty, large file, Cyrillic filename
- Uses Rust archiver to create archives, sh decode.sh to extract, SHA-256 to verify
- Follows same pattern as kotlin/test_decoder.sh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:43:58 +03:00
NikitolProject
ac169c286c
docs(05-01): complete shell decoder plan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:41:57 +03:00
NikitolProject
6df2639a45
feat(05-01): add busybox-compatible shell decoder script
...
- POSIX sh script with full decode pipeline: header parse -> TOC parse -> HMAC verify -> decrypt -> decompress -> SHA-256 verify -> write
- Hardcoded KEY_HEX matching src/key.rs
- xxd/od fallback detection for hex conversion
- Graceful HMAC degradation if openssl lacks -mac support
- UTF-8 filename preservation for Cyrillic names
- Verified byte-identical extraction against Rust archiver output
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:40:21 +03:00
NikitolProject
7331f4c0bb
docs(05-shell-decoder): create phase plan
2026-02-25 01:33:31 +03:00
NikitolProject
79a7ce2010
docs(phase5): research shell decoder domain
2026-02-25 01:29:50 +03:00
NikitolProject
4666a348fe
docs(phase-4): complete phase execution
2026-02-25 01:17:23 +03:00
NikitolProject
bd3dbbafcf
docs(04-01): complete Kotlin decoder plan
...
- SUMMARY.md with 2 tasks, 1 deviation, 4 requirements completed
- STATE.md updated: Phase 4 complete, 60% progress
- ROADMAP.md updated: Phase 4 marked complete
- REQUIREMENTS.md updated: KOT-01 through KOT-04 marked complete
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:12:29 +03:00
NikitolProject
62ff949194
feat(04-01): add cross-validation test script for Kotlin decoder
...
- Checks prerequisites (kotlinc, java, cargo) with install instructions
- Test 1: single text file round-trip (Rust pack -> Kotlin decode)
- Test 2: multiple files with mixed content (text + 10KB binary)
- Test 3: no-compress mode for pre-compressed files
- Test 4: empty file edge case
- Test 5: large file (100 KB random data)
- SHA-256 comparison of original vs extracted for each test
- Colored output, temp directory cleanup via trap, non-zero exit on failure
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:09:35 +03:00
NikitolProject
f2f3ed42da
feat(04-01): implement Kotlin archive decoder with full decode pipeline
...
- 40-byte header parsing with magic byte, version, and flags validation
- Variable-length TOC entry parsing with little-endian ByteBuffer helpers
- HMAC-SHA-256 verification BEFORE decryption (Encrypt-then-MAC)
- AES-256-CBC decryption via javax.crypto with PKCS5Padding
- Gzip decompression via java.util.zip when compression_flag == 1
- SHA-256 checksum verification after decompression
- Hardcoded 32-byte key matching src/key.rs exactly
- CLI main() for standalone JAR usage
- Zero third-party dependencies (only Android SDK / JVM stdlib)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 01:08:13 +03:00
NikitolProject
395f1329cb
docs(04-kotlin-decoder): create phase plan
2026-02-25 00:57:11 +03:00
NikitolProject
17e286942e
docs(04): research phase domain
2026-02-25 00:53:59 +03:00
NikitolProject
2d3320ada1
docs(phase-03): complete phase execution and verification
2026-02-25 00:45:09 +03:00
NikitolProject
387836ca14
docs(03-02): complete golden vectors and round-trip tests plan
...
- 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 >
2026-02-25 00:42:05 +03:00
NikitolProject
91ee354db6
test(03-02): add CLI round-trip integration tests
...
- 6 integration tests via assert_cmd: single file, multiple files, empty, Cyrillic filename, 11MB large, APK no-compress
- All tests verify byte-identical extraction (pack -> unpack -> assert_eq)
- Uses tempdir() for isolation and parallel safety
- Uses cargo_bin! macro (non-deprecated assert_cmd API)
- Covers Phase 3 edge cases: 0-byte PKCS7, >10MB file, UTF-8 non-ASCII names
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 00:39:33 +03:00
NikitolProject
329bed6f2b
test(03-02): add golden test vectors for crypto primitives
...
- 7 deterministic tests: AES-256-CBC encrypt/decrypt, empty, HMAC-SHA256, HMAC verify, SHA-256 x2
- Fixed IV vectors for reproducible results (no randomness)
- HMAC golden value cross-verified with openssl (file input) and Python hmac module
- SHA-256 values match FORMAT.md Section 12.3 known vectors
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 00:37:10 +03:00
NikitolProject
c67a170919
docs(03-01): complete library crate and unit tests plan
...
- SUMMARY.md with 19 unit tests across crypto/compression/format modules
- STATE.md updated to Phase 3 Plan 1/2, 43% progress
- ROADMAP.md marks 03-01-PLAN.md complete
- REQUIREMENTS.md marks TST-03 complete
2026-02-25 00:33:17 +03:00
NikitolProject
3e96b1ed88
test(03-01): add 19 unit tests for crypto, compression, and format modules
...
- crypto: encrypt/decrypt roundtrip, empty data, size formula, HMAC compute/verify, SHA-256 known values
- compression: compress/decompress roundtrip, empty data, large data, should_compress heuristic
- format: header write/read roundtrip, TOC entry roundtrip (ASCII + Cyrillic + empty name), bad magic/version rejection, entry size calculation matching FORMAT.md worked example
- Update hex-literal to v1.1
2026-02-25 00:30:47 +03:00
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
8447cc399c
docs(03): create phase plan for round-trip verification
2026-02-25 00:23:05 +03:00
NikitolProject
09a3593b8a
docs(phase-3): research round-trip verification and testing strategy
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 00:19:27 +03:00