Skip to content

A privacy-first Flutter app that encrypts messages with AES-256 and hides them inside images using steganography - fully offline.

Notifications You must be signed in to change notification settings

karthikshetty26/StegaX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

StegaX

Image-based encryption made simple.
StegaX is a Flutter application that hides encrypted messages inside images using modern cryptography and steganography - entirely on-device, with no network dependency.

This project focuses on correctness, transparency, and engineering discipline, not gimmicks.


Why StegaX Exists

Most “secure messaging” tools rely on:

  • Servers
  • Accounts
  • Network trust
  • Black-box implementations

StegaX takes a different approach:

  • No servers
  • No accounts
  • No tracking
  • No network calls
  • No hidden logic

All encryption and embedding happens locally on the device.
If the app is closed, nothing leaves the phone.


What the App Does

StegaX allows a user to:

  1. Select an image
  2. Enter a secret message
  3. Choose an encryption mode
  4. Embed the encrypted data into the image
  5. Save the resulting image to the device
  6. Reveal hidden messages from compatible images

Encryption Modes

Quick Mode (Default)

  • Automatically generates a secure random AES-256 key
  • No password required
  • Fast and simple
  • Key is embedded securely in the payload

Secure Mode

  • User-provided password
  • AES-256-GCM with key derivation (salted)
  • Password is never stored
  • Stronger protection against unauthorized extraction

Both modes use authenticated encryption to prevent tampering.


Technical Overview

Core Technologies

  • Flutter (Dart)
  • AES-256-GCM
  • Secure random key generation
  • Password-based key derivation
  • Image steganography
  • Strict null-safety & analysis

Architecture

  • UI layer separated from cryptographic logic
  • Core steganography and crypto modules
  • No business logic hidden in widgets
  • Defensive checks at service boundaries

Design Principles

  • Explicit mode handling
  • No silent failures
  • No nullable crypto assumptions
  • Strict linting enabled
  • Async-safe UI practices

Current Development Status

Status: 🟡 Active Development (Early Stable)

  • Core features implemented
  • APIs may evolve
  • UI/UX improvements ongoing
  • Not yet security-audited

Implemented Features

  • Image selection and preview
  • Message embedding with encryption
  • Message extraction and verification
  • AES-256-GCM encryption
  • Password-based key derivation
  • Random key generation
  • Strict error handling
  • Real-time theme switching
  • Local-only processing

Known Limitations

  • No forward secrecy
  • No key rotation
  • No compression
  • Capacity depends on image size
  • Not audited by third-party security experts

StegaX is not a replacement for enterprise-grade secure messaging systems.


Future Roadmap

  • Unit and integration tests
  • Packet format versioning
  • Capacity estimation
  • Better extraction diagnostics
  • Optional compression
  • Performance profiling
  • Documentation improvements
  • CI with flutter analyze

Open Source Philosophy

StegaX is open source to:

  • Enable auditability
  • Encourage learning
  • Demonstrate clean engineering practices

Security-through-obscurity is intentionally avoided.


License

MIT License


Disclaimer

Provided as-is, without warranty.
Use responsibly.


Author

Karthik Shetty

About

A privacy-first Flutter app that encrypts messages with AES-256 and hides them inside images using steganography - fully offline.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published