STEGA

crates.io license

A simple tool and library to conceal and reveal UTF-8 encoded data within PNG images.

Disclaimer

This tool and/or library does not guarantee the confidentiality of the data concealed in the resulting carrier images. Use this crate under your own risk.

Library

Consult the documentation for more information.

Installation

You must install Rust on your system for any of the next installation methods to work:

From crates.io

shell $ cargo install stega

From GitHub

shell $ cargo install --git https://github.com/septum/stega

From source

shell $ git clone https://github.com/septum/stega.git $ cd stega $ cargo install --path .

Usage

STEGA has two subcommands available:

Conceal

Using this subcommand will conceal UTF-8 encoded data into a PNG image:

shell $ stega conceal <IMAGE_PATH> [DATA]

On success, it will save the data-concealed PNG image in the same location as the the original image with the filename carrier.png, overwriting an already existing file.

Arguments

Examples

shell $ stega conceal ferris.png "🦀"

shell $ cat hello_world.txt | stega conceal image.png

Reveal

Using this subcommand will reveal UTF-8 encoded data concealed in a PNG image:

shell $ stega reveal <IMAGE_PATH>

On success, it will print the data to STDOUT.

Arguments

Examples

shell $ stega reveal carrier.png

shell $ stega reveal carrier.png > data.txt

License

This project is dual-licensed under either:

at your option.

Contributing

Contributions are very much welcome! If you find a bug, want a new feature or see an improvement opportunity, please open an issue or submit a PR.