pub struct DctJpeg;Expand description
DCT-based JPEG steganography adapter (STUB).
NOT YET IMPLEMENTED: Requires a pure-Rust JPEG library that exposes DCT coefficients without unsafe code. Current Rust JPEG libraries either:
- Decode to pixels only (jpeg-decoder, image crate)
- Require unsafe bindings (mozjpeg-sys, libjpeg-turbo-sys)
TODO(T12): Implement DCT coefficient access and modification:
- Parse JPEG to access non-zero AC DCT coefficients
- Embed payload in LSBs of coefficients (skip DC and zeros)
- Preserve quantization and Huffman tables
- Re-encode JPEG with modified coefficients
Implementations§
Trait Implementations§
Source§impl EmbedTechnique for DctJpeg
impl EmbedTechnique for DctJpeg
Source§fn technique(&self) -> StegoTechnique
fn technique(&self) -> StegoTechnique
The technique identifier for this implementation.
Source§fn capacity(&self, _cover: &CoverMedia) -> Result<Capacity, StegoError>
fn capacity(&self, _cover: &CoverMedia) -> Result<Capacity, StegoError>
Estimate how many payload bytes
cover can hold. Read moreSource§fn embed(
&self,
_cover: CoverMedia,
_payload: &Payload,
) -> Result<CoverMedia, StegoError>
fn embed( &self, _cover: CoverMedia, _payload: &Payload, ) -> Result<CoverMedia, StegoError>
Source§impl ExtractTechnique for DctJpeg
impl ExtractTechnique for DctJpeg
Source§fn technique(&self) -> StegoTechnique
fn technique(&self) -> StegoTechnique
The technique identifier for this implementation.
Source§fn extract(&self, _cover: &CoverMedia) -> Result<Payload, StegoError>
fn extract(&self, _cover: &CoverMedia) -> Result<Payload, StegoError>
Extract a hidden payload from
stego. Read moreAuto Trait Implementations§
impl Freeze for DctJpeg
impl RefUnwindSafe for DctJpeg
impl Send for DctJpeg
impl Sync for DctJpeg
impl Unpin for DctJpeg
impl UnsafeUnpin for DctJpeg
impl UnwindSafe for DctJpeg
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more