1 unstable release
0.1.0 | Sep 25, 2022 |
---|
#6 in #reveal
90KB
516 lines
STEGA
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
$ cargo install stega
From GitHub
$ cargo install --git https://github.com/septum/stega
From source
$ 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:
$ 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
<IMAGE_PATH>
: Valid PNG image path[DATA]
: Optional UTF-8 encoded text argument (with a fallback through STDIN)
Examples
$ stega conceal ferris.png "🦀"
$ cat hello_world.txt | stega conceal image.png
Reveal
Using this subcommand will reveal UTF-8 encoded data concealed in a PNG image:
$ stega reveal <IMAGE_PATH>
On success, it will print the data to STDOUT.
Arguments
<IMAGE_PATH>
: Valid PNG image path
Examples
$ stega reveal carrier.png
$ stega reveal carrier.png > data.txt
License
This project is dual-licensed under either:
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
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.
Dependencies
~5MB
~90K SLoC