pub trait Identity: AsyncTryClone + Send + Sync + 'static {
Show 21 methods fn identifier<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<ProfileIdentifier>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn create_key<'life0, 'async_trait>(
        &'life0 mut self,
        label: String
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn add_key<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        label: String,
        secret: &'life1 Secret
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn rotate_root_secret_key<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_root_secret_key<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Secret>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_secret_key<'life0, 'async_trait>(
        &'life0 self,
        label: String
    ) -> Pin<Box<dyn Future<Output = Result<Secret>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_root_public_key<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<PublicKey>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_public_key<'life0, 'async_trait>(
        &'life0 self,
        label: String
    ) -> Pin<Box<dyn Future<Output = Result<PublicKey>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn create_auth_proof<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        state_slice: &'life1 [u8]
    ) -> Pin<Box<dyn Future<Output = Result<AuthenticationProof>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn verify_auth_proof<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 mut self,
        state_slice: &'life1 [u8],
        peer_id: &'life2 ProfileIdentifier,
        proof_slice: &'life3 [u8]
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
;
fn add_change<'life0, 'async_trait>(
        &'life0 mut self,
        change_event: ProfileChangeEvent
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_changes<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Changes>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn verify_changes<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_contacts<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Contact>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn as_contact<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<Contact>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_contact<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        contact_id: &'life1 ProfileIdentifier
    ) -> Pin<Box<dyn Future<Output = Result<Option<Contact>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn verify_contact<'life0, 'async_trait>(
        &'life0 mut self,
        contact: Contact
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn verify_and_add_contact<'life0, 'async_trait>(
        &'life0 mut self,
        contact: Contact
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn verify_and_update_contact<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 mut self,
        contact_id: &'life1 ProfileIdentifier,
        change_events: &'life2 [ProfileChangeEvent]
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn get_lease<'life0, 'life1, 'async_trait>(
        &'life0 self,
        lease_manager_route: &'life1 Route,
        org_id: String,
        bucket: String,
        ttl: TTL
    ) -> Pin<Box<dyn Future<Output = Result<Lease>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn revoke_lease<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        lease_manager_route: &'life1 Route,
        lease: Lease
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
}
Expand description

Identity

Required methods

Return unique Profile identifier, which is equal to sha256 of the root public key

Create new key.

Add key that already exists in current Vault

Rotate existing key.

Get Secret key.

Get Secret key.

Get PublicKey.

Get PublicKey.

Create an authentication proof based on the given state

Verify a proof based on the given state, proof and profile.

Add a change event.

Return change history chain

Verify the whole change event chain

Return all known to this profile Contacts

Convert Profile to Contact

Return Contact with given ProfileIdentifier

Verify cryptographically whole event chain. Also verify sequence correctness

Verify and add new Contact to Profile’s Contact list

Verify and update known Contact with new ProfileChangeEvents

Implementors