pub struct EncryptedMode;Expand description
Encrypted chunk mode.
JoinMode (decryption) is always available. SplitMode (encryption)
requires the encryption feature because key generation depends on rand.
Trait Implementations§
Source§impl Debug for EncryptedMode
impl Debug for EncryptedMode
Source§impl JoinMode for EncryptedMode
impl JoinMode for EncryptedMode
Source§const REF_SIZE: usize = ENCRYPTED_REF_SIZE
const REF_SIZE: usize = ENCRYPTED_REF_SIZE
Size of a single reference in bytes (32 plain, 64 encrypted).
Source§type RootRef = EncryptedChunkRef
type RootRef = EncryptedChunkRef
Root reference type:
ChunkAddress (plain) or EncryptedChunkRef (encrypted).Source§type JoinerContext = EncryptionKey
type JoinerContext = EncryptionKey
Per-chunk context carried through tree traversal:
() (plain) or EncryptionKey.Source§fn root_address(input: &EncryptedChunkRef) -> ChunkAddress
fn root_address(input: &EncryptedChunkRef) -> ChunkAddress
Extract the chunk address from a root reference (for fetching).
Source§fn init_from_chunk<const BS: usize>(
root_ref: EncryptedChunkRef,
chunk: ContentChunk<BS>,
) -> Result<(ChunkAddress, u64, EncryptionKey)>
fn init_from_chunk<const BS: usize>( root_ref: EncryptedChunkRef, chunk: ContentChunk<BS>, ) -> Result<(ChunkAddress, u64, EncryptionKey)>
Initialize joiner from a root ref and pre-fetched root chunk.
Source§fn decode_body<const BS: usize>(
chunk: ContentChunk<BS>,
key: &EncryptionKey,
span: u64,
) -> Result<Bytes>
fn decode_body<const BS: usize>( chunk: ContentChunk<BS>, key: &EncryptionKey, span: u64, ) -> Result<Bytes>
Decode a fetched chunk into body bytes (decrypting if needed).
Source§fn parse_child_ref(
body: &[u8],
ref_start: usize,
) -> Result<(ChunkAddress, EncryptionKey)>
fn parse_child_ref( body: &[u8], ref_start: usize, ) -> Result<(ChunkAddress, EncryptionKey)>
Parse a child reference from body bytes at offset. Returns (address, child_context).
Source§fn refs_per_chunk(body_size: usize) -> usize
fn refs_per_chunk(body_size: usize) -> usize
Number of child references per intermediate chunk.
Source§impl SplitMode for EncryptedMode
Available on crate feature encryption only.
impl SplitMode for EncryptedMode
Available on crate feature
encryption only.Source§fn prepare_chunk<const BS: usize>(
data: Vec<u8>,
) -> Result<(ContentChunk<BS>, [u8; 64])>
fn prepare_chunk<const BS: usize>( data: Vec<u8>, ) -> Result<(ContentChunk<BS>, [u8; 64])>
Prepare chunk data (span + body) for storage, returning chunk and reference bytes.
Takes ownership of the payload to avoid an extra allocation.
Source§fn process_empty<const BS: usize, S: SyncChunkPut<BS>>(
store: &S,
) -> Result<EncryptedChunkRef>
fn process_empty<const BS: usize, S: SyncChunkPut<BS>>( store: &S, ) -> Result<EncryptedChunkRef>
Process empty file, store chunk, return root ref.
Source§fn extract_root(buffer: &[u8]) -> Result<EncryptedChunkRef>
fn extract_root(buffer: &[u8]) -> Result<EncryptedChunkRef>
Extract root reference from top of buffer.
Source§fn process_chunk<const BS: usize, S: SyncChunkPut<BS>>(
data: Vec<u8>,
store: &S,
) -> Result<Self::RefBytes>
fn process_chunk<const BS: usize, S: SyncChunkPut<BS>>( data: Vec<u8>, store: &S, ) -> Result<Self::RefBytes>
Process chunk data (span + body), store it, return reference bytes.
Takes ownership of the payload to avoid an extra allocation.
Auto Trait Implementations§
impl Freeze for EncryptedMode
impl RefUnwindSafe for EncryptedMode
impl Send for EncryptedMode
impl Sync for EncryptedMode
impl Unpin for EncryptedMode
impl UnsafeUnpin for EncryptedMode
impl UnwindSafe for EncryptedMode
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more