Trait ethstore::SimpleSecretStore [−][src]
pub trait SimpleSecretStore: Send + Sync { 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>; }
Simple Secret Store API
Required Methods
fn insert_account(
&self,
vault: SecretVaultRef,
secret: Secret,
password: &Password
) -> Result<StoreAccountRef, Error>
&self,
vault: SecretVaultRef,
secret: Secret,
password: &Password
) -> Result<StoreAccountRef, Error>
Inserts new accounts to the store (or vault) with given password.
fn insert_derived(
&self,
vault: SecretVaultRef,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation
) -> Result<StoreAccountRef, Error>
&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.
fn change_password(
&self,
account: &StoreAccountRef,
old_password: &Password,
new_password: &Password
) -> Result<(), Error>
&self,
account: &StoreAccountRef,
old_password: &Password,
new_password: &Password
) -> Result<(), Error>
Changes accounts password.
fn export_account(
&self,
account: &StoreAccountRef,
password: &Password
) -> Result<OpaqueKeyFile, Error>
&self,
account: &StoreAccountRef,
password: &Password
) -> Result<OpaqueKeyFile, Error>
Exports key details for account.
fn remove_account(
&self,
account: &StoreAccountRef,
password: &Password
) -> Result<(), Error>
&self,
account: &StoreAccountRef,
password: &Password
) -> Result<(), Error>
Entirely removes account from the store and underlying storage.
fn generate_derived(
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation
) -> Result<Address, Error>
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation
) -> Result<Address, Error>
Generates new derived account.
fn sign(
&self,
account: &StoreAccountRef,
password: &Password,
message: &Message
) -> Result<Signature, Error>
&self,
account: &StoreAccountRef,
password: &Password,
message: &Message
) -> Result<Signature, Error>
Sign a message with given account.
fn sign_derived(
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation,
message: &Message
) -> Result<Signature, Error>
&self,
account_ref: &StoreAccountRef,
password: &Password,
derivation: Derivation,
message: &Message
) -> Result<Signature, Error>
Sign a message with derived account.
fn decrypt(
&self,
account: &StoreAccountRef,
password: &Password,
shared_mac: &[u8],
message: &[u8]
) -> Result<Vec<u8>, Error>
&self,
account: &StoreAccountRef,
password: &Password,
shared_mac: &[u8],
message: &[u8]
) -> Result<Vec<u8>, Error>
Decrypt a messages with given account.
fn agree(
&self,
account: &StoreAccountRef,
password: &Password,
other: &Public
) -> Result<Secret, Error>
&self,
account: &StoreAccountRef,
password: &Password,
other: &Public
) -> Result<Secret, Error>
Agree on shared key.
fn accounts(&self) -> Result<Vec<StoreAccountRef>, Error>
Returns all accounts in this secret store.
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.
fn create_vault(&self, name: &str, password: &Password) -> Result<(), Error>
Create new vault with given password
fn open_vault(&self, name: &str, password: &Password) -> Result<(), Error>
Open vault with given password
fn close_vault(&self, name: &str) -> Result<(), Error>
Close vault
fn list_vaults(&self) -> Result<Vec<String>, Error>
List all vaults
fn list_opened_vaults(&self) -> Result<Vec<String>, Error>
List all currently opened vaults
fn change_vault_password(
&self,
name: &str,
new_password: &Password
) -> Result<(), Error>
&self,
name: &str,
new_password: &Password
) -> Result<(), Error>
Change vault password
fn change_account_vault(
&self,
vault: SecretVaultRef,
account: StoreAccountRef
) -> Result<StoreAccountRef, Error>
&self,
vault: SecretVaultRef,
account: StoreAccountRef
) -> Result<StoreAccountRef, Error>
Cnage account' vault
fn get_vault_meta(&self, name: &str) -> Result<String, Error>
Get vault metadata string.
fn set_vault_meta(&self, name: &str, meta: &str) -> Result<(), Error>
Set vault metadata string.
Implementors
impl SimpleSecretStore for EthStore
impl SimpleSecretStore for EthMultiStore