Skip to main content

01_keychain_password/
01_keychain_password.rs

1#[path = "support/mod.rs"]
2mod support;
3
4use security::{AccessControl, AccessControlFlags, AccessControlProtection, Keychain};
5
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7    let account = "example-account";
8    let service = support::unique_service("keychain");
9    let access_control = AccessControl::create(
10        AccessControlProtection::WhenUnlocked,
11        AccessControlFlags::PRIVATE_KEY_USAGE,
12    )?;
13    Keychain::set(account, &service, "secret-password")?;
14    let password = Keychain::get(account, &service)?;
15    let accounts = Keychain::list_accounts(&service)?;
16    Keychain::delete(account, &service)?;
17    println!(
18        "password={password} accounts={accounts:?} access_control_created={}",
19        access_control.is_valid()
20    );
21    Ok(())
22}