Crate paranoid_vault

crate paranoid_vault

Functions

fn init_vault(path: impl AsRef<Path>, master_password: &str) -> Result<VaultHeader, VaultError>
fn unlock_vault(path: impl AsRef<Path>, master_password: &str) -> Result<UnlockedVault, VaultError>

Enums

enum VaultError
InvalidArguments(String)
VaultExists(String)
VaultNotFound(String)
UnlockFailed
ItemNotFound(String)
RandomFailure(String)
CryptoFailure(String)
Sqlite(rusqlite::Error)
Io(std::io::Error)
Json(serde_json::Error)
Argon2(String)
Generator(String)
enum VaultItemKind
Login

Implementations

impl VaultItemKind

Functions

fn as_str(&self) -> &'static str
enum VaultItemPayload
Login(LoginRecord)
enum VaultKeyslotKind
Password
Device

Structs and Unions

struct LoginRecord
title: String
username: String
password: String
url: Option<String>
notes: Option<String>
struct NewLoginRecord
title: String
username: String
password: String
url: Option<String>
notes: Option<String>
struct UnlockedVault

Implementations

impl UnlockedVault

Functions

fn add_login(&self, record: NewLoginRecord) -> Result<VaultItem, VaultError>
fn delete_item(&self, id: &str) -> Result<(), VaultError>
fn generate_and_store(&self, request: &ParanoidRequest, title: String, username: String, url: Option<String>, notes: Option<String>) -> Result<(GenerationReport, VaultItem), VaultError>
fn get_item(&self, id: &str) -> Result<VaultItem, VaultError>
fn header(&self) -> &VaultHeader
fn list_items(&self) -> Result<Vec<VaultItemSummary>, VaultError>
fn path(&self) -> &Path
fn update_login(&self, id: &str, update: UpdateLoginRecord) -> Result<VaultItem, VaultError>
struct UpdateLoginRecord
title: Option<String>
username: Option<String>
password: Option<String>
url: Option<Option<String>>
notes: Option<Option<String>>
struct VaultHeader
format_version: u32
created_at_epoch: i64
migration_state: String
kdf: VaultKdfParams
keyslots: Vec<VaultKeyslot>
struct VaultItem
id: String
kind: VaultItemKind
created_at_epoch: i64
updated_at_epoch: i64
payload: VaultItemPayload
struct VaultItemSummary
id: String
kind: VaultItemKind
title: String
username: String
url: Option<String>
updated_at_epoch: i64
struct VaultKdfParams
algorithm: String
memory_cost_kib: u32
iterations: u32
parallelism: u32
derived_key_len: usize
struct VaultKeyslot
id: String
kind: VaultKeyslotKind
wrapped_by_os_keystore: bool
salt_hex: String
nonce_hex: String
tag_hex: String
encrypted_master_key_hex: String