summaryrefslogtreecommitdiff
path: root/verity
diff options
context:
space:
mode:
authorKelvin Zhang <zhangkelvin@google.com>2021-05-11 09:44:19 -0400
committerKelvin Zhang <zhangkelvin@google.com>2021-05-11 09:56:18 -0400
commit5d61eeccef14a00ded81a7c49b47230bbf1e7114 (patch)
tree9f5760cf8b171e63378b3d6f51132334cbde31ed /verity
parent200df5e5f32a0c6f10e999c53cb372e893b3b71d (diff)
downloadextras-5d61eeccef14a00ded81a7c49b47230bbf1e7114.tar.gz
Expose a static method for computing hash tree size
Test: th Change-Id: I53cae3ffeaef262733faf9070815cd396590c7be
Diffstat (limited to 'verity')
-rw-r--r--verity/hash_tree_builder.cpp7
-rw-r--r--verity/include/verity/hash_tree_builder.h5
2 files changed, 8 insertions, 4 deletions
diff --git a/verity/hash_tree_builder.cpp b/verity/hash_tree_builder.cpp
index 52899a35..1cd2e291 100644
--- a/verity/hash_tree_builder.cpp
+++ b/verity/hash_tree_builder.cpp
@@ -96,18 +96,19 @@ bool HashTreeBuilder::ParseBytesArrayFromString(
return true;
}
-uint64_t HashTreeBuilder::CalculateSize(uint64_t input_size) const {
+uint64_t HashTreeBuilder::CalculateSize(
+ uint64_t input_size, size_t block_size, size_t hash_size) {
uint64_t verity_blocks = 0;
size_t level_blocks;
size_t levels = 0;
do {
level_blocks =
- verity_tree_blocks(input_size, block_size_, hash_size_, levels);
+ verity_tree_blocks(input_size, block_size, hash_size, levels);
levels++;
verity_blocks += level_blocks;
} while (level_blocks > 1);
- return verity_blocks * block_size_;
+ return verity_blocks * block_size;
}
bool HashTreeBuilder::Initialize(int64_t expected_data_size,
diff --git a/verity/include/verity/hash_tree_builder.h b/verity/include/verity/hash_tree_builder.h
index f4ceab8c..a601d1d9 100644
--- a/verity/include/verity/hash_tree_builder.h
+++ b/verity/include/verity/hash_tree_builder.h
@@ -35,7 +35,10 @@ class HashTreeBuilder {
public:
HashTreeBuilder(size_t block_size, const EVP_MD* md);
// Returns the size of the verity tree in bytes given the input data size.
- uint64_t CalculateSize(uint64_t input_size) const;
+ uint64_t CalculateSize(uint64_t input_size) const {
+ return CalculateSize(input_size, block_size_, hash_size_);
+ }
+ static uint64_t CalculateSize(uint64_t input_size, size_t block_size, size_t hash_size);
// Gets ready for the hash tree computation. We expect |expected_data_size|
// bytes source data.
bool Initialize(int64_t expected_data_size,