Skip to main content

01_smoke/
01_smoke.rs

1use security::prelude::*;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    let account = "doom-fish-smoke";
5    let service = format!("doom-fish-smoke-test-{}", std::process::id());
6
7    let _ = Keychain::delete(account, &service);
8    Keychain::set(account, &service, "hunter2")?;
9
10    let value = Keychain::get(account, &service)?;
11    assert_eq!(value, "hunter2");
12
13    let accounts = Keychain::list_accounts(&service)?;
14    assert!(accounts.iter().any(|candidate| candidate == account));
15
16    Keychain::delete(account, &service)?;
17
18    let random = SecureRandom::bytes(32)?;
19    assert!(random.iter().any(|&byte| byte != 0));
20
21    println!("✅ security keychain + RNG OK");
22    Ok(())
23}