pub trait SimpleSecretStore: Send + Sync {
Show 21 methods // Required methods fn insert_account( &self, vault: SecretVaultRef, secret: Secret, password: &Password ) -> Result<StoreAccountRef, Error>; fn insert_derived( &self, vault: SecretVaultRef, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation ) -> Result<StoreAccountRef, Error>; fn change_password( &self, account: &StoreAccountRef, old_password: &Password, new_password: &Password ) -> Result<(), Error>; fn export_account( &self, account: &StoreAccountRef, password: &Password ) -> Result<OpaqueKeyFile, Error>; fn remove_account( &self, account: &StoreAccountRef, password: &Password ) -> Result<(), Error>; fn generate_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation ) -> Result<Address, Error>; fn sign( &self, account: &StoreAccountRef, password: &Password, message: &Message ) -> Result<Signature, Error>; fn sign_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation, message: &Message ) -> Result<Signature, Error>; fn decrypt( &self, account: &StoreAccountRef, password: &Password, shared_mac: &[u8], message: &[u8] ) -> Result<Vec<u8>, Error>; fn agree( &self, account: &StoreAccountRef, password: &Password, other: &Public ) -> Result<Secret, Error>; fn accounts(&self) -> Result<Vec<StoreAccountRef>, Error>; fn account_ref(&self, address: &Address) -> Result<StoreAccountRef, Error>; fn create_vault(&self, name: &str, password: &Password) -> Result<(), Error>; fn open_vault(&self, name: &str, password: &Password) -> Result<(), Error>; fn close_vault(&self, name: &str) -> Result<(), Error>; fn list_vaults(&self) -> Result<Vec<String>, Error>; fn list_opened_vaults(&self) -> Result<Vec<String>, Error>; fn change_vault_password( &self, name: &str, new_password: &Password ) -> Result<(), Error>; fn change_account_vault( &self, vault: SecretVaultRef, account: StoreAccountRef ) -> Result<StoreAccountRef, Error>; fn get_vault_meta(&self, name: &str) -> Result<String, Error>; fn set_vault_meta(&self, name: &str, meta: &str) -> Result<(), Error>;
}
Expand description

Simple Secret Store API

Required Methods§

source

fn insert_account( &self, vault: SecretVaultRef, secret: Secret, password: &Password ) -> Result<StoreAccountRef, Error>

Inserts new accounts to the store (or vault) with given password.

source

fn insert_derived( &self, vault: SecretVaultRef, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation ) -> Result<StoreAccountRef, Error>

Inserts new derived account to the store (or vault) with given password.

source

fn change_password( &self, account: &StoreAccountRef, old_password: &Password, new_password: &Password ) -> Result<(), Error>

Changes accounts password.

source

fn export_account( &self, account: &StoreAccountRef, password: &Password ) -> Result<OpaqueKeyFile, Error>

Exports key details for account.

source

fn remove_account( &self, account: &StoreAccountRef, password: &Password ) -> Result<(), Error>

Entirely removes account from the store and underlying storage.

source

fn generate_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation ) -> Result<Address, Error>

Generates new derived account.

source

fn sign( &self, account: &StoreAccountRef, password: &Password, message: &Message ) -> Result<Signature, Error>

Sign a message with given account.

source

fn sign_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation, message: &Message ) -> Result<Signature, Error>

Sign a message with derived account.

source

fn decrypt( &self, account: &StoreAccountRef, password: &Password, shared_mac: &[u8], message: &[u8] ) -> Result<Vec<u8>, Error>

Decrypt a messages with given account.

source

fn agree( &self, account: &StoreAccountRef, password: &Password, other: &Public ) -> Result<Secret, Error>

Agree on shared key.

source

fn accounts(&self) -> Result<Vec<StoreAccountRef>, Error>

Returns all accounts in this secret store.

source

fn account_ref(&self, address: &Address) -> Result<StoreAccountRef, Error>

Get reference to some account with given address. This method could be removed if we will guarantee that there is max(1) account for given address.

source

fn create_vault(&self, name: &str, password: &Password) -> Result<(), Error>

Create new vault with given password

source

fn open_vault(&self, name: &str, password: &Password) -> Result<(), Error>

Open vault with given password

source

fn close_vault(&self, name: &str) -> Result<(), Error>

Close vault

source

fn list_vaults(&self) -> Result<Vec<String>, Error>

List all vaults

source

fn list_opened_vaults(&self) -> Result<Vec<String>, Error>

List all currently opened vaults

source

fn change_vault_password( &self, name: &str, new_password: &Password ) -> Result<(), Error>

Change vault password

source

fn change_account_vault( &self, vault: SecretVaultRef, account: StoreAccountRef ) -> Result<StoreAccountRef, Error>

Cnage account’ vault

source

fn get_vault_meta(&self, name: &str) -> Result<String, Error>

Get vault metadata string.

source

fn set_vault_meta(&self, name: &str, meta: &str) -> Result<(), Error>

Set vault metadata string.

Implementors§