Struct ironoxide::IronOxide[][src]

pub struct IronOxide { /* fields omitted */ }

Primary SDK Object

Struct that is used to make authenticated requests to the IronCore API. Instantiated with the details of an account’s various ids, device, and signing keys. Once instantiated all operations will be performed in the context of the account provided.

Implementations

impl IronOxide[src]

pub fn device(&self) -> &DeviceContext[src]

DeviceContext that was used to create this SDK instance

pub fn clear_policy_cache(&self) -> usize[src]

Clears all entries from the policy cache.

Returns the number of entries cleared from the cache.

pub async fn rotate_all(
    &self,
    rotations: &PrivateKeyRotationCheckResult,
    password: &str,
    timeout: Option<Duration>
) -> Result<(Option<UserUpdatePrivateKeyResult>, Option<Vec<GroupUpdatePrivateKeyResult>>)>
[src]

Rotate the private key of the calling user and all groups they are an administrator of where needs_rotation is true. Note that this function has the potential to take much longer than other functions, as rotation will be done individually on each user/group. If rotation is only needed for a specific group, it is strongly recommended to call user_rotate_private_key or group_rotate_private_key instead.

Arguments

  • rotations - PrivateKeyRotationCheckResult that holds all users and groups to be rotated
  • password - Password to unlock the current user’s user master key
  • timeout - timeout for rotate_all. This is a separate timeout from the SDK-wide timeout as it is expected that this operation might take significantly longer than other operations.

Trait Implementations

impl BlindIndexSearchInitialize for IronOxide[src]

fn create_blind_index<'life0, 'life1, 'async_trait>(
    &'life0 self,
    group_id: &'life1 GroupId
) -> Pin<Box<dyn Future<Output = Result<EncryptedBlindIndexSalt>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Create an index and encrypt it to the provided group_id.

impl Debug for IronOxide[src]

Manual implementation of Debug without the recrypt or rng fields

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl DocumentAdvancedOps for IronOxide[src]

fn document_encrypt_unmanaged<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    data: &'life1 [u8],
    encrypt_opts: &'life2 DocumentEncryptOpts
) -> Pin<Box<dyn Future<Output = Result<DocumentEncryptUnmanagedResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Encrypts the provided document bytes without being managed by the IronCore service. Read more

fn document_decrypt_unmanaged<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    encrypted_data: &'life1 [u8],
    encrypted_deks: &'life2 [u8]
) -> Pin<Box<dyn Future<Output = Result<DocumentDecryptUnmanagedResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Decrypts a document not managed by the IronCore service. Read more

impl DocumentOps for IronOxide[src]

fn document_encrypt<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    document_data: &'life1 [u8],
    encrypt_opts: &'life2 DocumentEncryptOpts
) -> Pin<Box<dyn Future<Output = Result<DocumentEncryptResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Encrypts the provided document bytes. Read more

fn document_decrypt<'life0, 'life1, 'async_trait>(
    &'life0 self,
    encrypted_document: &'life1 [u8]
) -> Pin<Box<dyn Future<Output = Result<DocumentDecryptResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Decrypts an IronCore encrypted document. Read more

fn document_list<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<DocumentListResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Lists metadata for all of the encrypted documents that the calling user can read or decrypt. Read more

fn document_get_metadata<'life0, 'life1, 'async_trait>(
    &'life0 self,
    id: &'life1 DocumentId
) -> Pin<Box<dyn Future<Output = Result<DocumentMetadataResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Returns the metadata for an encrypted document. Read more

fn document_get_id_from_bytes(
    &self,
    encrypted_document: &[u8]
) -> Result<DocumentId>
[src]

Returns the document ID from the bytes of an encrypted document. Read more

fn document_update_bytes<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 DocumentId,
    new_document_data: &'life2 [u8]
) -> Pin<Box<dyn Future<Output = Result<DocumentEncryptResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Updates the contents of an existing IronCore encrypted document. Read more

fn document_update_name<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 DocumentId,
    name: Option<&'life2 DocumentName>
) -> Pin<Box<dyn Future<Output = Result<DocumentMetadataResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Modifies or removes a document’s name. Read more

fn document_grant_access<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 DocumentId,
    grant_list: &'life2 Vec<UserOrGroup>
) -> Pin<Box<dyn Future<Output = Result<DocumentAccessResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Grants decryption access to a document for the provided users and/or groups. Read more

fn document_revoke_access<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 DocumentId,
    revoke_list: &'life2 Vec<UserOrGroup>
) -> Pin<Box<dyn Future<Output = Result<DocumentAccessResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Revokes decryption access to a document for the provided users and/or groups. Read more

impl GroupOps for IronOxide[src]

fn group_create<'life0, 'life1, 'async_trait>(
    &'life0 self,
    opts: &'life1 GroupCreateOpts
) -> Pin<Box<dyn Future<Output = Result<GroupCreateResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Creates a group. Read more

fn group_get_metadata<'life0, 'life1, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId
) -> Pin<Box<dyn Future<Output = Result<GroupGetResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Gets the full metadata for a group. Read more

fn group_list<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<GroupListResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Lists all of the groups that the current user is an admin or a member of. Read more

fn group_update_name<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId,
    name: Option<&'life2 GroupName>
) -> Pin<Box<dyn Future<Output = Result<GroupMetaResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Modifies or removes a group’s name. Read more

fn group_rotate_private_key<'life0, 'life1, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId
) -> Pin<Box<dyn Future<Output = Result<GroupUpdatePrivateKeyResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Rotates a group’s private key while leaving its public key unchanged. Read more

fn group_add_members<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId,
    grant_list: &'life2 [UserId]
) -> Pin<Box<dyn Future<Output = Result<GroupAccessEditResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Adds members to a group. Read more

fn group_remove_members<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId,
    revoke_list: &'life2 [UserId]
) -> Pin<Box<dyn Future<Output = Result<GroupAccessEditResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Removes members from a group. Read more

fn group_add_admins<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId,
    users: &'life2 [UserId]
) -> Pin<Box<dyn Future<Output = Result<GroupAccessEditResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Adds administrators to a group. Read more

fn group_remove_admins<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId,
    revoke_list: &'life2 [UserId]
) -> Pin<Box<dyn Future<Output = Result<GroupAccessEditResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Removes administrators from a group. Read more

fn group_delete<'life0, 'life1, 'async_trait>(
    &'life0 self,
    id: &'life1 GroupId
) -> Pin<Box<dyn Future<Output = Result<GroupId>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Deletes a group. Read more

impl UserOps for IronOxide[src]

fn user_create<'life0, 'life1, 'life2, 'async_trait>(
    jwt: &'life0 Jwt,
    password: &'life1 str,
    user_create_opts: &'life2 UserCreateOpts,
    timeout: Option<Duration>
) -> Pin<Box<dyn Future<Output = Result<UserCreateResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait, 
[src]

Creates a user. Read more

fn generate_new_device<'life0, 'life1, 'life2, 'async_trait>(
    jwt: &'life0 Jwt,
    password: &'life1 str,
    device_create_options: &'life2 DeviceCreateOpts,
    timeout: Option<Duration>
) -> Pin<Box<dyn Future<Output = Result<DeviceAddResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait, 
[src]

Generates a new device for the user specified in the JWT. Read more

fn user_verify<'life0, 'async_trait>(
    jwt: &'life0 Jwt,
    timeout: Option<Duration>
) -> Pin<Box<dyn Future<Output = Result<Option<UserResult>>> + Send + 'async_trait>> where
    'life0: 'async_trait, 
[src]

Verifies the existence of a user using a JWT to identify their user record. Read more

fn user_list_devices<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<UserDeviceListResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Lists all of the devices for the current user. Read more

fn user_get_public_key<'life0, 'life1, 'async_trait>(
    &'life0 self,
    users: &'life1 [UserId]
) -> Pin<Box<dyn Future<Output = Result<HashMap<UserId, PublicKey>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Gets users’ public keys given their IDs. Read more

fn user_rotate_private_key<'life0, 'life1, 'async_trait>(
    &'life0 self,
    password: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<UserUpdatePrivateKeyResult>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Rotates the current user’s private key while leaving their public key the same. Read more

fn user_delete_device<'life0, 'life1, 'async_trait>(
    &'life0 self,
    device_id: Option<&'life1 DeviceId>
) -> Pin<Box<dyn Future<Output = Result<DeviceId>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Deletes a device. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V