Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bounded Contexts

All bounded contexts live under crates/shadowforge/src/domain/. Each context owns its logic and types, interacting with the rest of the system through the shared type vocabulary (types.rs) and port traits (ports.rs).

Core Contexts

ContextModuleResponsibility
Cryptocrypto/ML-KEM-1024 encapsulation, ML-DSA-87 signing, AES-256-GCM encryption, Argon2id key derivation
Correctioncorrection/Reed-Solomon error correction, K-of-N shard splitting and recovery
Stegostego/10 steganographic techniques: LSB (image), DCT (JPEG), palette, phase/echo/spread (audio), zero-width text, PDF content-stream LSB, PDF metadata, corpus selection
Mediamedia/Image and audio format helpers (PNG, BMP, JPEG, GIF, WAV)
PDFpdf/PDF domain logic: embed/extract, page-render pipeline, content-stream LSB, metadata watermarking
Distributiondistribution/Distribution patterns: 1:1, 1:N, N:1, N:M matrix
Reconstructionreconstruction/K-of-N shard reassembly with manifest verification
Archivearchive/ZIP, TAR, TAR.GZ multi-carrier bundle support
Analysisanalysis/Capacity estimation and chi-square detectability scoring

Nation-State Countermeasure Contexts

ContextModuleThreat Addressed
Adaptiveadaptive/Automated steganalysis (STC-inspired optimisation, cover profile matching, compression-survivable embedding)
Deniabledeniable/Compelled decryption (dual-payload with plausible decoy)
Canarycanary/Distribution compromise (canary shard tripwires)
Dead Dropdeadrop/Traffic analysis (platform-aware cover generation for public posting)
Time-Locktimelock/Time-sensitive source protection (Rivest sequential squaring)
Scrubberscrubber/Stylometric identification (frequency-table normalisation)
Corpuscorpus/Statistical stego signatures (zero-modification cover selection via ANN)
Opsecopsec/Endpoint compromise (amnesiac mode, panic wipe, geographic manifests, forensic watermarks)

Inter-Context Communication

Contexts do not import each other directly. Communication flows through:

  1. Shared types in domain/types.rsPayload, Shard, CoverMedia, EncryptedPayload, etc.
  2. Port traits in domain/ports.rsEncryptor, Signer, SymmetricCipher, ErrorCorrector, MediaLoader, etc.
  3. Application services in application/ — orchestrate multiple contexts by accepting port trait references.

This keeps each context independently testable and replaceable.