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}