pub struct DataMap {
pub chunk_identifiers: Vec<ChunkInfo>,
pub child: Option<usize>,
}Expand description
Holds the information that is required to recover the content of the encrypted file.
This is held as a vector of ChunkInfo, i.e. a list of the file’s chunk hashes.
Only files larger than 3072 bytes (3 * MIN_CHUNK_SIZE) can be self-encrypted.
Smaller files will have to be batched together.
Fields§
§chunk_identifiers: Vec<ChunkInfo>List of chunk hashes
child: Option<usize>Child value, None means root data map and any other valuesignifies how many levels of data map we have shrunk
Implementations§
Source§impl DataMap
impl DataMap
Sourcepub fn new(keys: Vec<ChunkInfo>) -> Self
pub fn new(keys: Vec<ChunkInfo>) -> Self
A new instance from a vec of partial keys.
Sorts on instantiation. The algorithm requires this to be a sorted list to allow get_pad_iv_key to obtain the correct pre-encryption hashes for decryption/encryption.
Sourcepub fn with_child(keys: Vec<ChunkInfo>, child: usize) -> Self
pub fn with_child(keys: Vec<ChunkInfo>, child: usize) -> Self
Creates a new DataMap with a specified child value
Sourcepub fn original_file_size(&self) -> usize
pub fn original_file_size(&self) -> usize
Original (pre-encryption) size of the file.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for DataMap
impl<'de> Deserialize<'de> for DataMap
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for DataMap
impl Ord for DataMap
Source§impl PartialOrd for DataMap
impl PartialOrd for DataMap
impl Eq for DataMap
impl StructuralPartialEq for DataMap
Auto Trait Implementations§
impl Freeze for DataMap
impl RefUnwindSafe for DataMap
impl Send for DataMap
impl Sync for DataMap
impl Unpin for DataMap
impl UnwindSafe for DataMap
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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