| Crates.io | pink072 |
| lib.rs | pink072 |
| version | 1.1.0 |
| created_at | 2025-12-01 11:46:36.825445+00 |
| updated_at | 2025-12-01 12:34:57.298682+00 |
| description | PINK-072 specification implementation for embedding payloads in pink cover images |
| homepage | |
| repository | https://github.com/kako-jun/pink-072 |
| max_upload_size | |
| id | 1959671 |
| size | 84,226 |
A Rust crate for concealing files and folders as pink-colored images (.pnk).
The "072" refers to the 72-byte (8 bytes × 9) seed used for cover image generation.
Note: This is NOT steganography.
Output files use the .pnk extension (PNG-compatible but indicates custom format).
[dependencies]
pink072 = "1.1"
use pink072::encode_file;
use std::path::Path;
let seed: [u8; 9] = [0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x11];
encode_file(Path::new("secret.jpg"), Path::new("output.pnk"), &seed)?;
use pink072::decode_file;
use std::path::Path;
let file_name = decode_file(Path::new("output.pnk"), Path::new("./extracted/"))?;
// Original file restored to ./extracted/secret.jpg
use pink072::encode_folder;
use std::path::Path;
let seed: [u8; 9] = [0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x11];
encode_folder(Path::new("secret_folder/"), Path::new("output.pnk"), &seed)?;
use pink072::{pink072_wrap, pink072_unwrap, encode_pnk, decode_pnk};
let seed: [u8; 9] = [0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x11];
// Wrap raw data
let frame = pink072_wrap(b"secret", 0, &seed)?;
// Convert to PNK format
let pnk = encode_pnk(&frame);
// Decode
let frame = decode_pnk(&pnk)?;
let (payload_type, data) = pink072_unwrap(frame)?;
| Type | Description |
|---|---|
| 0 | Raw data (no filename) |
| 1 | Single file (filename + data) |
| 2 | ZIP archive (preserves folder structure) |
GPL-3.0-or-later