Aaron D. Lee 93420704e8 Add personality to the codebase (comments that don't suck)
The code now explains itself like a friend teaching you crypto:
- DCT module: Why mid-frequency? What's QIM? Why is scipy being weird?
- Steganography: How LSB actually works with visual examples
- Crypto: The multi-factor security model with ASCII art diagrams

Also adds kickoff-pi-test.sh - one command to flash, wait, setup, test.
No more manual steps between flashing and seeing if it works.

Comments should teach, not just describe. If you're reading the code
trying to understand how DCT steganography works, these comments
should actually help. Novel concept, I know.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 23:53:26 -05:00
2026-01-03 21:36:04 -05:00
2026-01-04 19:36:06 -05:00
2026-01-06 17:51:00 -05:00
2026-01-05 22:20:26 -05:00
2026-01-05 22:00:01 -05:00
2026-01-01 22:18:13 -05:00
2026-01-05 22:10:02 -05:00
2026-01-05 14:50:37 -05:00
2026-01-01 22:18:13 -05:00

Stegasoo

A secure steganography system for hiding encrypted messages in images using hybrid authentication.

Tests Lint Python License: MIT Security

Features

  • AES-256-GCM authenticated encryption
  • Argon2id memory-hard key derivation (256MB RAM requirement)
  • Pseudo-random pixel selection defeats steganalysis
  • Multi-factor authentication: Reference photo + passphrase + PIN/RSA key
  • Multiple interfaces: CLI, Web UI, REST API
  • File embedding: Hide any file type (PDF, ZIP, documents)
  • DCT steganography: JPEG-resilient embedding for social media
  • Channel keys: Private group communication channels

Embedding Modes

Mode Capacity (1080p) JPEG Resilient Best For
DCT (default) ~150 KB Yes Social media, messaging apps
LSB ~750 KB No Email, direct file transfer

Web UI

Home Encode Decode Generate
Home Encode Decode Generate

Quick Start

# Install (Python 3.10-3.12)
pip install -e ".[all]"

# Generate credentials
stegasoo generate --pin --words 4

# Encode a message
stegasoo encode \
  --ref my_photo.jpg \
  --carrier meme.jpg \
  --passphrase "apple forest thunder mountain" \
  --pin 123456 \
  --message "Secret message"

# Decode
stegasoo decode \
  --ref my_photo.jpg \
  --stego stego_image.png \
  --passphrase "apple forest thunder mountain" \
  --pin 123456

Interfaces

Interface Start Command Documentation
CLI stegasoo --help CLI.md
Web UI cd frontends/web && python app.py WEB_UI.md
REST API cd frontends/api && uvicorn main:app API.md

Security Model

Reference Photo ──┐
(~80-256 bits)    │
                  ├──► Argon2id KDF ──► AES-256-GCM Key
Passphrase ───────┤    (256MB RAM)
(~43-132 bits)    │
                  │
PIN ──────────────┤
(~20-30 bits)     │
                  │
RSA Key ──────────┘
(optional)
Configuration Entropy Use Case
4-word passphrase + 6-digit PIN ~153 bits Standard security
4-word passphrase + PIN + RSA ~280+ bits Maximum security

Requirements

Requirement Version
Python 3.10-3.12
RAM 512 MB+

Development

pip install -e ".[dev]"
pytest
black src/ tests/ frontends/
ruff check src/ tests/ frontends/

Docker

# Quick start
docker-compose up -d

# Access
# Web UI:   http://localhost:5000
# REST API: http://localhost:8000

See DOCKER.md for full documentation.

Raspberry Pi

Pre-built SD card images available for Pi 4/5:

# Flash image (download from GitHub Releases)
zstdcat stegasoo-rpi-*.img.zst | sudo dd of=/dev/sdX bs=4M status=progress

# First boot runs interactive setup wizard:
# - WiFi configuration
# - HTTPS with port 443
# - Channel key generation
# - Optional overclocking

See rpi/README.md for manual installation.

Documentation

License

MIT License - see LICENSE. Use responsibly.


This tool is for educational and legitimate privacy purposes. Users are responsible for complying with applicable laws.

Description
Stegasoo DCT/LSB steganography toolkit.
Readme 48 MiB
Languages
Python 61.8%
HTML 19%
Shell 10.1%
JavaScript 5.1%
CSS 3.5%
Other 0.5%