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");
let plaintext = "๐ This is a test of the Sovereign Vault Memory.";
let password = "ownYourImprint";
let (ciphertext, iv) = encrypt_vault(plaintext, password)?;
println!("๐ Encrypted Vault: {}", ciphertext);
println!("๐ IV: {}", iv);
let file_path = save_vault(&ciphertext, &iv, password)?;
println!("๐ Vault saved to: {}", file_path);
let (loaded_ciphertext, loaded_iv) = load_vault(&file_path)?;
println!("๐ค Loaded Vault - Ciphertext: {}", loaded_ciphertext);
println!("๐ค Loaded Vault - IV: {}", loaded_iv);
let decrypted = decrypt_vault(&loaded_ciphertext, password, &loaded_iv)?;
println!("๐ Decrypted Vault Memory: {}", decrypted);
assert_eq!(plaintext, decrypted);
Ok(())
}