Expand description
StegoRust — image steganography with AES-256-GCM and Argon2id.
§Quick start
use stego_rust::{StegoEncoder, StegoDecoder};
// Encode
let images = vec![image::RgbImage::new(200, 200)];
let stego = StegoEncoder::builder()
.bits_per_channel(1)
.build()?
.encode(images, b"secret message", b"hunter2")?;
// Decode
let recovered = StegoDecoder::builder()
.build()
.decode(stego, b"hunter2")?;
assert_eq!(recovered, b"secret message");Structs§
- Chunk
Header - Per-chunk header embedded at the start of every stego image.
- Stego
Decoder - Decodes a secret message from one or more stego images.
- Stego
Encoder - Encodes a secret message into one or more cover images using LSB steganography.
Enums§
- Stego
Error - Errors returned by StegoRust operations.
Constants§
- CHUNK_
HEADER_ SIZE - Serialized size of a
ChunkHeaderin bytes.
Functions§
- image_
capacity - Returns the number of bytes that can be hidden in
imgusingbpcbits per channel. - scan_
used_ bytes - Returns the number of bytes already used in
imgby embedded messages. - scan_
used_ channels - Scans
imgsequentially readingChunkHeaders at bpc=1 to find how many channels are already occupied by existing messages. Stops at the first invalid header. This is O(n_messages), not O(pixels).
Type Aliases§
- Result
- Convenience alias for
Result<T, StegoError>.