pub trait DeniableEmbedder {
// Required methods
fn embed_dual(
&self,
cover: CoverMedia,
pair: &DeniablePayloadPair,
keys: &DeniableKeySet,
embedder: &dyn EmbedTechnique,
) -> Result<CoverMedia, DeniableError>;
fn extract_with_key(
&self,
stego: &CoverMedia,
key: &[u8],
extractor: &dyn ExtractTechnique,
) -> Result<Payload, DeniableError>;
}Expand description
Dual-payload deniable steganography port.
The stego cover is indistinguishable regardless of which key is presented.
Required Methods§
Sourcefn embed_dual(
&self,
cover: CoverMedia,
pair: &DeniablePayloadPair,
keys: &DeniableKeySet,
embedder: &dyn EmbedTechnique,
) -> Result<CoverMedia, DeniableError>
fn embed_dual( &self, cover: CoverMedia, pair: &DeniablePayloadPair, keys: &DeniableKeySet, embedder: &dyn EmbedTechnique, ) -> Result<CoverMedia, DeniableError>
Embed both the real and decoy payload in cover.
The resulting cover decrypts to pair.real_payload under
keys.primary_key and to pair.decoy_payload under keys.decoy_key.
§Errors
Returns DeniableError::InsufficientCapacity or
DeniableError::EmbedFailed.
Sourcefn extract_with_key(
&self,
stego: &CoverMedia,
key: &[u8],
extractor: &dyn ExtractTechnique,
) -> Result<Payload, DeniableError>
fn extract_with_key( &self, stego: &CoverMedia, key: &[u8], extractor: &dyn ExtractTechnique, ) -> Result<Payload, DeniableError>
Extract a payload from stego using the provided key.
Returns the decoy payload when given the decoy key, and the real payload when given the primary key — neither party can prove which.
§Errors
Returns DeniableError::ExtractionFailed.