Commit Graph

4 Commits

Author SHA1 Message Date
NikitolProject
e0605b2955 docs: Add README files & etc 2026-02-25 02:50:47 +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
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