Skip to main content

test_link/
test_link.rs

1// Copyright (c) 2026 Christoph Gaffga
2// SPDX-License-Identifier: GPL-3.0-only
3// https://github.com/cgaffga/phasmcore
4
5//! Quick decode test for stego images.
6//!
7//! Usage: `cargo run -p phasm-core --example test_link -- <stego.jpg>`
8
9use phasm_core::stego::smart_decode;
10use std::time::Instant;
11
12fn main() {
13    let args: Vec<String> = std::env::args().collect();
14    let path = args.get(1).map_or("/tmp/phasm_shared.jpg", |s| s.as_str());
15    let img = std::fs::read(path).unwrap_or_else(|e| {
16        eprintln!("Error reading {path}: {e}");
17        std::process::exit(1);
18    });
19    eprintln!("Image: {} bytes", img.len());
20    let start = Instant::now();
21    eprintln!("Trying empty passphrase...");
22    match smart_decode(&img, "") {
23        Ok((p, _q)) => eprintln!("SUCCESS (empty): text='{}' [{:.1}s]", p.text, start.elapsed().as_secs_f64()),
24        Err(e) => eprintln!("FAILED (empty): {:?} [{:.1}s]", e, start.elapsed().as_secs_f64()),
25    }
26}