vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
// ๐Ÿงช test_encrypt.rs โ€” End-to-End Vault Encryption Test (Encrypt โ†’ Save โ†’ Load โ†’ Decrypt)

mod aes_encrypt;
mod vault_io;

use aes_encrypt::{encrypt_vault, decrypt_vault};
use vault_io::{save_vault, load_vault};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    println!("๐Ÿงช VIOS | Sovereign Vault Encryption Test");

    // ๐Ÿง  Test Input
    let plaintext = "๐Ÿ”’ This is a test of the Sovereign Vault Memory.";
    let password = "ownYourImprint";

    // ๐Ÿ” Step 1: Encrypt Vault memory
    let (ciphertext, iv) = encrypt_vault(plaintext, password)?;
    println!("๐Ÿ” Encrypted Vault: {}", ciphertext);
    println!("๐Ÿ”‘ IV: {}", iv);

    // ๐Ÿ’พ Step 2: Save encrypted Vault to disk
    let file_path = save_vault(&ciphertext, &iv, password)?;
    println!("๐Ÿ“ Vault saved to: {}", file_path);

    // ๐Ÿ“‚ Step 3: Load Vault from disk
    let (loaded_ciphertext, loaded_iv) = load_vault(&file_path)?;
    println!("๐Ÿ“ค Loaded Vault - Ciphertext: {}", loaded_ciphertext);
    println!("๐Ÿ“ค Loaded Vault - IV: {}", loaded_iv);

    // ๐Ÿ”“ Step 4: Decrypt loaded data
    let decrypted = decrypt_vault(&loaded_ciphertext, password, &loaded_iv)?;
    println!("๐Ÿ”“ Decrypted Vault Memory: {}", decrypted);
    assert_eq!(plaintext, decrypted);

    Ok(())
}