Commit Graph

163 Commits

Author SHA1 Message Date
adlee-was-taken
7baec1cd67 feat: add group field to Entry and ManifestEntry
Add optional group: Option<String> to both Entry and ManifestEntry for
logical organization (e.g. "work", "personal"). Backwards-compatible via
skip_serializing_if so existing vaults deserialize with group: None.
Includes three new tests verifying round-trip and legacy deserialization.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 09:25:18 -04:00
adlee-was-taken
c7aab28484 docs: fix zig-zag position numbering and luminance rationale in imgsecret
Corrected zig-zag scan positions from 4-15 to 6-17 (verified against
standard JPEG zig-zag ordering). Fixed inverted HVS luminance reasoning
to correctly explain that luminance is used because it isn't spatially
subsampled by JPEG, not because of visual sensitivity.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 09:23:16 -04:00
adlee-was-taken
847051216d docs: add comprehensive doc comments to all Rust source files
Document every public function, struct, field, constant, and non-trivial
private function across idfoto-core and idfoto-cli. Module-level docs
explain each module's role in the architecture. Comments explain the "why"
(crypto choices, algorithm design, data model rationale) not just the "what".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 09:01:48 -04:00
adlee-was-taken
6b3edea5d8 test: add full-workflow integration test and two-factor independence verification
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:13:12 -04:00
adlee-was-taken
87167e31a5 feat: add full CLI with all commands and device management
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:13:08 -04:00
adlee-was-taken
1e08055d8d feat: add crop recovery and recompression survival
Adds dimension-search crop recovery that tries candidate original sizes
to reconstruct the embed grid, and fixes test imports for GenericImageView.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:07:50 -04:00
adlee-was-taken
8e1d7f5358 feat: add imgsecret embed/extract with DCT and majority voting
Implements DCT-based steganography module that hides 256-bit secrets in
JPEG luminance channel using Quantization Index Modulation (QIM) with
redundant copies and majority voting for reliable extraction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:07:17 -04:00
adlee-was-taken
9751ee4d7d feat: add vault encrypt/decrypt for entries and manifest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 22:57:17 -04:00
adlee-was-taken
86bd0b6db8 feat: add Entry, Manifest, ManifestEntry data model with serde
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 22:57:13 -04:00
adlee-was-taken
8e60bb70fb feat: add XChaCha20-Poly1305 encrypt/decrypt with binary format 2026-04-11 22:55:33 -04:00
adlee-was-taken
1ae6abe049 feat: add Argon2id key derivation with tests 2026-04-11 22:55:03 -04:00
adlee-was-taken
a77a1c8b42 feat: add IdfotoError enum with thiserror 2026-04-11 22:53:19 -04:00
adlee-was-taken
34cc926f82 feat: scaffold Cargo workspace with idfoto-core and idfoto-cli 2026-04-11 22:51:45 -04:00