pub struct StorableBuilder<T: EntropySource> { /* private fields */ }Expand description
StorableBuilder is a utility to build and deconstruct Storable objects.
It provides client-side Encrypt-then-MAC using ChaCha20-Poly1305.
Implementations§
Source§impl<T: EntropySource> StorableBuilder<T>
impl<T: EntropySource> StorableBuilder<T>
Sourcepub fn new(
data_encryption_key: [u8; 32],
entropy_source: T,
) -> StorableBuilder<T>
pub fn new( data_encryption_key: [u8; 32], entropy_source: T, ) -> StorableBuilder<T>
Constructs a new instance.
Source§impl<T: EntropySource> StorableBuilder<T>
impl<T: EntropySource> StorableBuilder<T>
Sourcepub fn build(&self, input: Vec<u8>, version: i64) -> Storable
pub fn build(&self, input: Vec<u8>, version: i64) -> Storable
Creates a Storable that can be serialized and stored as value in PutObjectRequest.
Uses ChaCha20 for encrypting input and Poly1305 for generating a mac/tag.
Refer to docs on Storable for more information.
Sourcepub fn deconstruct(&self, storable: Storable) -> Result<(Vec<u8>, i64)>
pub fn deconstruct(&self, storable: Storable) -> Result<(Vec<u8>, i64)>
Deconstructs the provided Storable and returns constituent decrypted data and its
corresponding version as stored at the time of PutObjectRequest.
Auto Trait Implementations§
impl<T> Freeze for StorableBuilder<T>where
T: Freeze,
impl<T> RefUnwindSafe for StorableBuilder<T>where
T: RefUnwindSafe,
impl<T> Send for StorableBuilder<T>where
T: Send,
impl<T> Sync for StorableBuilder<T>where
T: Sync,
impl<T> Unpin for StorableBuilder<T>where
T: Unpin,
impl<T> UnwindSafe for StorableBuilder<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more