/aegis-vault-rs

Library for parsing and dumping Aegis vaults

Primary LanguageRustGNU General Public License v3.0GPL-3.0

aegis-vault-rs

Build Status dependency status Crates.io License file

Library for parsing and dumping Aegis vaults

Documentation for the Aegis vault format can be found here

The codebase was initially imported from the Gnome Authenticator project.

Usage

Save a database

use aegis_vault::{
    vault::{Aegis, Entry},
    algorithm::{Method}
};
use anyhow::Result;
use std::fs::File;

fn main() -> Result<()> {
    let mut vault = Aegis::default();

    let mut otp_entry = Entry::default();
    otp_entry.method = Method::TOTP;
    otp_entry.label = "Mason".to_string();
    otp_entry.issuer = Some("Deno".to_string());
    otp_entry.info.secret = "4SJHB4GSD43FZBAI7C2HLRJGPQ".to_string();
    otp_entry.info.period = Some(30);
    otp_entry.info.digits = 6;
    otp_entry.info.counter = None;
    vault.add_entry(otp_entry);

    vault.save(
      &mut File::create("my-aegis-vault.json")?,
      "password",
    )?;

    Ok(())
}

Open a database

TODO

License

GPL-3