use ironcrypt::{IronCrypt, IronCryptConfig};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut config = IronCryptConfig::default();
config.rsa_key_size = 2048; config.argon2_memory_cost = 32768;
let crypt = IronCrypt::new("keys", "v1", config)?;
println!("IronCrypt initialized for key version 'v1'.");
let password = "MySecurePassword123!";
println!("Encrypting password...");
let encrypted_json = crypt.encrypt_password(password)?;
println!("Password encrypted successfully.");
println!("Encrypted JSON: {}", encrypted_json);
println!("\nVerifying correct password...");
let is_valid = crypt.verify_password(&encrypted_json, password)?;
if is_valid {
println!("Verification successful: The password is correct.");
} else {
println!("Verification failed: The password is NOT correct.");
}
println!("\nVerifying incorrect password...");
let is_valid_bad = crypt.verify_password(&encrypted_json, "WrongPassword!");
match is_valid_bad {
Err(e) => println!("Verification failed as expected: {}", e),
Ok(_) => println!("Verification succeeded unexpectedly!"),
}
Ok(())
}