class BlockVerifier

Defined at line 30 of file ../../src/devices/block/drivers/block-verity/block-verifier.h

`BlockVerifier` loads the integrity data merkle tree into memory and then can

be used to detect if any data block read from the device has changed since

the device was sealed.

Example usage:

BlockVerifier verifier(geometry, root_hash, block_loader);

verifier.PrepareAsync(this, OnVerifierReady);

... after OnVerifierReady called ...

zx_status_t result = verifier.VerifyDataBlockSync(dev_offset, buf);

Public Methods

void BlockVerifier (const Geometry & geometry, const std::array<uint8_t, kHashOutputSize> & integrity_root_hash, BlockLoaderInterface * block_loader)

Note: `block_loader` is expected to be caller-owned and must outlive this

`BlockVerfifier`

Defined at line 29 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc

void ~BlockVerifier ()

Defined at line 37 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc

void BlockVerifier (const BlockVerifier & )

Disallow copy, assign, move

Defined at line 38 of file ../../src/devices/block/drivers/block-verity/block-verifier.h

void BlockVerifier (BlockVerifier && )

Defined at line 39 of file ../../src/devices/block/drivers/block-verity/block-verifier.h

BlockVerifier & operator= (const BlockVerifier & )

Defined at line 40 of file ../../src/devices/block/drivers/block-verity/block-verifier.h

BlockVerifier & operator= (BlockVerifier && )

Defined at line 41 of file ../../src/devices/block/drivers/block-verity/block-verifier.h

zx_status_t PrepareAsync (void * cookie, BlockVerifierCallback callback)

Make whatever preparations are needed to be able to verify blocks, then

trigger callback when done.

Defined at line 48 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc

zx_status_t VerifyDataBlockSync (uint64_t data_block_index, const uint8_t * block_data)

Actually do the hashing to determine if the kBlockSize bytes of data

pointed to by block_data correctly represent the contents of data block

`block_index`. In the future, it might make sense to move to async

block verification.

Defined at line 115 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc

void LoadIntegrityBlocks ()

Issue the request to load integrity blocks to `block_loader_`.

Defined at line 80 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc

void OnIntegrityDataLoaded (zx_status_t status)

Callback used with `LoadIntegrityBlocks`.

Defined at line 87 of file ../../src/devices/block/drivers/block-verity/block-verifier.cc