vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
use std::path::Path;

use vios_core::vault::vault_crypto::must_get_password;
use vios_core::vault::vault_structs::VaultMetadata;
use vios_core::vault::vault_writer::write_vault_file;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Usage: whisper_input_saver <out_path> [password] [text]
    let mut args = std::env::args().skip(1);
    let out = args
        .next()
        .unwrap_or_else(|| "whisper_input_saved.vault".to_string());
    let password = args.next().unwrap_or_else(must_get_password);
    let text = args
        .next()
        .unwrap_or_else(|| "whisper input saver".to_string());

    let meta = VaultMetadata {
        creator_name: whoami::realname(),
        ..Default::default()
    };

    write_vault_file(Path::new(&out), &password, &text, Some(meta))
        .map_err(std::io::Error::other)?;
    println!("✅ saved: {out}");
    Ok(())
}