pub struct MerkleVerifier { /* private fields */ }Expand description
Verifies data against the leaf hashes of a merkle tree.
Implementations§
Source§impl MerkleVerifier
impl MerkleVerifier
Sourcepub fn new(root: Hash, hashes: Box<[Hash]>) -> Result<Self, Status>
pub fn new(root: Hash, hashes: Box<[Hash]>) -> Result<Self, Status>
Constructs a MerkleVerifier from the root and leaf hashes of a merkle tree.
Returns IO_DATA_INTEGRITY if the leaf hashes are inconsistent with the root.
Sourcepub fn verify(&self, offset: usize, data: &[u8]) -> Result<(), Status>
pub fn verify(&self, offset: usize, data: &[u8]) -> Result<(), Status>
Verifies a data slice against the Merkle tree, assuming it corresponds to original data
starting at offset.
§Requirements:
- The
offsetmust be aligned toBLOCK_SIZE. - The length of
datamust be a multiple ofBLOCK_SIZE, except ifdatacontains the final chunk of the original data source.
Sourcepub fn verify_aligned(
&self,
offset: usize,
data: PtrByteSlice<'_>,
unaligned_len: usize,
) -> Result<(), Status>
pub fn verify_aligned( &self, offset: usize, data: PtrByteSlice<'_>, unaligned_len: usize, ) -> Result<(), Status>
Verifies aligned, zero-padded data against the Merkle tree.
The buffer length (data.len()) must be a multiple of 4096 bytes.
unaligned_len specifies the actual valid data length within the buffer
(0 < unaligned_len <= data.len()).
Any buffer bytes beyond unaligned_len up to data.len() MUST be zeroed for verification
to pass.
Note: Does not support the null blob (empty 0-length blob, unaligned_len == 0).
Trait Implementations§
Source§impl Clone for MerkleVerifier
impl Clone for MerkleVerifier
Source§fn clone(&self) -> MerkleVerifier
fn clone(&self) -> MerkleVerifier
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MerkleVerifier
impl RefUnwindSafe for MerkleVerifier
impl Send for MerkleVerifier
impl Sync for MerkleVerifier
impl Unpin for MerkleVerifier
impl UnsafeUnpin for MerkleVerifier
impl UnwindSafe for MerkleVerifier
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