Struct vss_client::util::storable_builder::StorableBuilder
source · 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