vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
use crate::passutil::must_get_password;
use crate::vault::vault_crypto::decrypt_vault;
use std::io::{self, Write};

pub fn run_decryption() {
    let mut path = String::new();
    let mut key = String::new();

    print!("🔓 Enter path to .vault file: ");
    io::stdout().flush().unwrap();
    io::stdin().read_line(&mut path).unwrap();
    let path = path.trim();

    print!("🗝️ Enter decryption key: ");
    io::stdout().flush().unwrap();
    io::stdin().read_line(&mut key).unwrap();

    let password = must_get_password("Enter password: ");
    match decrypt_vault(path, &password) {
        Ok(payload) => {
            println!("\n🔓 Decrypted Vault Content:");
            println!("🧠 Raw Content: {:?}", payload.content);
            println!("📅 Timestamp:   {:?}", payload.metadata.created_at);
        }
        Err(e) => eprintln!("❌ Decryption failed: {e:?}"),
    }
}