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

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

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

Changes accounts password.

Exports key details for account.

Entirely removes account from the store and underlying storage.

Generates new derived account.

Sign a message with given account.

Sign a message with derived account.

Decrypt a messages with given account.

Agree on shared key.

Returns all accounts in this secret store.

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.

Create new vault with given password

Open vault with given password

Close vault

List all vaults

List all currently opened vaults

Change vault password

Cnage account' vault

Get vault metadata string.

Set vault metadata string.

Implementors