aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2018-10-04 14:35:26 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-10-04 14:35:26 +0000
commit4d36fcba8c7ff690d3ac725b9e0fc79719aeef64 (patch)
tree282c8d3775b2e53dc7f1c743b2da49d9087babef
parentd6e5cb1addbdc00ac81f1228f4b62cc5b48c04cf (diff)
parent2f057467eb699c02111c4c999d018414d9a9740b (diff)
downloadbuild-4d36fcba8c7ff690d3ac725b9e0fc79719aeef64.tar.gz
Merge "releasetools: build_image.BuildVerityTree() returns a tuple."
-rwxr-xr-xtools/releasetools/build_image.py9
-rw-r--r--tools/releasetools/verity_utils.py20
2 files changed, 15 insertions, 14 deletions
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index f1594d7322..d5ab05525e 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -330,7 +330,7 @@ def BuildVerityFEC(sparse_image_path, verity_path, verity_fec_path,
"Failed to build FEC data:\n{}".format(output))
-def BuildVerityTree(sparse_image_path, verity_image_path, prop_dict):
+def BuildVerityTree(sparse_image_path, verity_image_path):
cmd = ["build_verity_tree", "-A", FIXED_SALT, sparse_image_path,
verity_image_path]
output, exit_code = RunCommand(cmd)
@@ -338,8 +338,7 @@ def BuildVerityTree(sparse_image_path, verity_image_path, prop_dict):
raise BuildImageError(
"Failed to build verity tree:\n{}".format(output))
root, salt = output.split()
- prop_dict["verity_root_hash"] = root
- prop_dict["verity_salt"] = salt
+ return root, salt
def BuildVerityMetadata(image_size, verity_metadata_path, root_hash, salt,
@@ -453,11 +452,9 @@ def MakeVerityEnabledImage(out_file, fec_supported, prop_dict):
verity_fec_path = os.path.join(tempdir_name, "verity_fec.img")
# Build the verity tree and get the root hash and salt.
- BuildVerityTree(out_file, verity_image_path, prop_dict)
+ root_hash, salt = BuildVerityTree(out_file, verity_image_path)
# Build the metadata blocks.
- root_hash = prop_dict["verity_root_hash"]
- salt = prop_dict["verity_salt"]
verity_disable = "verity_disable" in prop_dict
BuildVerityMetadata(
image_size, verity_metadata_path, root_hash, salt, block_dev, signer_path,
diff --git a/tools/releasetools/verity_utils.py b/tools/releasetools/verity_utils.py
index 0e605b172d..38ebcf5bf3 100644
--- a/tools/releasetools/verity_utils.py
+++ b/tools/releasetools/verity_utils.py
@@ -169,14 +169,17 @@ class VerifiedBootVersion1HashtreeInfoGenerator(HashtreeInfoGenerator):
self.image.WriteRangeDataToFd(self.hashtree_info.filesystem_range, fd)
generated_verity_tree = common.MakeTempFile(prefix="verity")
- prop_dict = {}
- BuildVerityTree(adjusted_partition, generated_verity_tree, prop_dict)
-
- assert prop_dict["verity_salt"] == self.hashtree_info.salt
- if prop_dict["verity_root_hash"] != self.hashtree_info.root_hash:
- print("Calculated verty root hash {} doesn't match the one in metadata"
- " {}".format(prop_dict["verity_root_hash"],
- self.hashtree_info.root_hash))
+ root_hash, salt = BuildVerityTree(adjusted_partition, generated_verity_tree)
+
+ # The salt should be always identical, as we use fixed value.
+ assert salt == self.hashtree_info.salt, \
+ "Calculated salt {} doesn't match the one in metadata {}".format(
+ salt, self.hashtree_info.salt)
+
+ if root_hash != self.hashtree_info.root_hash:
+ print(
+ "Calculated root hash {} doesn't match the one in metadata {}".format(
+ root_hash, self.hashtree_info.root_hash))
return False
# Reads the generated hash tree and checks if it has the exact same bytes
@@ -190,6 +193,7 @@ class VerifiedBootVersion1HashtreeInfoGenerator(HashtreeInfoGenerator):
Returns:
hashtree_info: The information needed to reconstruct the hashtree.
+
Raises:
HashtreeInfoGenerationError: If we fail to generate the exact bytes of
the hashtree.