Crate pixelveil

Crate pixelveil 

Source
Expand description

This crate provides steganography and steganalysis functionality in Rust as well as Python using PyO3.

§Usage Considerations for all Steganography Operations

It is recommended to use original and unique vessels each time you embed data using any steganography method. Please use original vessels that can’t be found online. That way attackers won’t be able to perform comparative analysis of the original vessel and the one that has data hidden in it. Please use different images when you perform multiple embedding operations, so attackers won’t be able to compare the different images.

Additionally, some steganography methods support specific filetypes or compression methods. Each method will have this info in its module level documentation.

§Custom Structs and Types Used in this Project

The RgbImage type is widely used in this project for image processing in this crate. It represents a 24-bit RGB image, this specific type of image is the standard and most common way to represent images.

There are some functions that use the DynamicImage enum because they don’t require a 24-bit RGB image specifically.

For instructions and utility functions on how to open, handle, and export RgbImages and DynamicImages, consult the image_utils module.

§Steganography Functionality

Lossless Images:

§Steganalysis Functionality

Image Steganalysis:

§Future Development

In the future I plan on implementing the following steganography methods (not in this particular order):

  • Image LSB (Least Significant Bit) — only for lossless filetypes
  • Lossless audio filetype (.wav) method(s)
  • Lossy audio filetype (.mp3) method(s)
  • Video steganography methods (.mp4)

Because I am a One Man Operation™, I need time to research, prototype, and finalize each one of these steganography methods. So don’t hold your breath :)

Re-exports§

pub use image::lossless::bpcs;
pub use steganalysis::image_steganalysis;
pub use utils::image_utils;

Modules§

errors
All of the custom errors that can be returned in a Result value in this package’s functions
image
Functionality regarding lossy and lossless image types
steganalysis
Steganalysis modules and functions
utils
Utility functions for both internal and external usage