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§
Sourcefn insert_account(
&self,
vault: SecretVaultRef,
secret: Secret,
password: &Password,
) -> Result<StoreAccountRef, Error>
fn insert_account( &self, vault: SecretVaultRef, secret: Secret, password: &Password, ) -> Result<StoreAccountRef, Error>
Inserts new accounts to the store (or vault) with given password.
Sourcefn insert_derived(
&self,
vault: SecretVaultRef,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation,
) -> Result<StoreAccountRef, Error>
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.
Sourcefn change_password(
&self,
account: &StoreAccountRef,
old_password: &Password,
new_password: &Password,
) -> Result<(), Error>
fn change_password( &self, account: &StoreAccountRef, old_password: &Password, new_password: &Password, ) -> Result<(), Error>
Changes accounts password.
Sourcefn export_account(
&self,
account: &StoreAccountRef,
password: &Password,
) -> Result<OpaqueKeyFile, Error>
fn export_account( &self, account: &StoreAccountRef, password: &Password, ) -> Result<OpaqueKeyFile, Error>
Exports key details for account.
Sourcefn remove_account(
&self,
account: &StoreAccountRef,
password: &Password,
) -> Result<(), Error>
fn remove_account( &self, account: &StoreAccountRef, password: &Password, ) -> Result<(), Error>
Entirely removes account from the store and underlying storage.
Sourcefn generate_derived(
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation,
) -> Result<Address, Error>
fn generate_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation, ) -> Result<Address, Error>
Generates new derived account.
Sourcefn sign(
&self,
account: &StoreAccountRef,
password: &Password,
message: &Message,
) -> Result<Signature, Error>
fn sign( &self, account: &StoreAccountRef, password: &Password, message: &Message, ) -> Result<Signature, Error>
Sign a message with given account.
Sourcefn sign_derived(
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation,
message: &Message,
) -> Result<Signature, Error>
fn sign_derived( &self, account_ref: &StoreAccountRef, password: &Password, derivation: Derivation, message: &Message, ) -> Result<Signature, Error>
Sign a message with derived account.
Sourcefn decrypt(
&self,
account: &StoreAccountRef,
password: &Password,
shared_mac: &[u8],
message: &[u8],
) -> Result<Vec<u8>, Error>
fn decrypt( &self, account: &StoreAccountRef, password: &Password, shared_mac: &[u8], message: &[u8], ) -> Result<Vec<u8>, Error>
Decrypt a messages with given account.
Sourcefn agree(
&self,
account: &StoreAccountRef,
password: &Password,
other: &Public,
) -> Result<Secret, Error>
fn agree( &self, account: &StoreAccountRef, password: &Password, other: &Public, ) -> Result<Secret, Error>
Agree on shared key.
Sourcefn accounts(&self) -> Result<Vec<StoreAccountRef>, Error>
fn accounts(&self) -> Result<Vec<StoreAccountRef>, Error>
Returns all accounts in this secret store.
Sourcefn account_ref(&self, address: &Address) -> Result<StoreAccountRef, Error>
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.
Sourcefn create_vault(&self, name: &str, password: &Password) -> Result<(), Error>
fn create_vault(&self, name: &str, password: &Password) -> Result<(), Error>
Create new vault with given password
Sourcefn open_vault(&self, name: &str, password: &Password) -> Result<(), Error>
fn open_vault(&self, name: &str, password: &Password) -> Result<(), Error>
Open vault with given password
Sourcefn change_vault_password(
&self,
name: &str,
new_password: &Password,
) -> Result<(), Error>
fn change_vault_password( &self, name: &str, new_password: &Password, ) -> Result<(), Error>
Change vault password
Sourcefn change_account_vault(
&self,
vault: SecretVaultRef,
account: StoreAccountRef,
) -> Result<StoreAccountRef, Error>
fn change_account_vault( &self, vault: SecretVaultRef, account: StoreAccountRef, ) -> Result<StoreAccountRef, Error>
Cnage account’ vault