pub trait IdentityTrait: 'static + AsyncTryClone + Send + Sync {
Show 21 methods fn identifier<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<IdentityIdentifier, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn create_key<'life0, 'async_trait>(
        &'life0 mut self,
        label: String
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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<(), Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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<(), Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_root_secret_key<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Secret, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_root_public_key<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<PublicKey, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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<Vec<u8, Global>, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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 IdentityIdentifier,
        proof_slice: &'life3 [u8]
    ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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: IdentityChangeEvent
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_changes<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<IdentityChangeEvent, Global>, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn verify_changes<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_contacts<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Contact, Global>, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn as_contact<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<Contact, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_contact<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        contact_id: &'life1 IdentityIdentifier
    ) -> Pin<Box<dyn Future<Output = Result<Option<Contact>, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn verify_and_update_contact<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 mut self,
        contact_id: &'life1 IdentityIdentifier,
        change_events: &'life2 [IdentityChangeEvent]
    ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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: usize
    ) -> Pin<Box<dyn Future<Output = Result<Lease, Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    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<(), Error>> + Send + 'async_trait, Global>>Notable traits for Pin<P>impl<P> Future for Pin<P> where
    P: DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;

    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
}
Expand description

Identity

Required methods

Return unique Identity 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 identity.

Add a change event.

Return change history chain

Verify the whole change event chain

Return all known to this identity Contacts

Convert Identity to Contact

Return Contact with given IdentityIdentifier

Verify cryptographically whole event chain. Also verify sequence correctness

Verify and add new Contact to Identity’s Contact list

Verify and update known Contact with new IdentityChangeEvents

Implementors