diff options
Diffstat (limited to 'tools/releasetools/test_verity_utils.py')
| -rw-r--r-- | tools/releasetools/test_verity_utils.py | 140 |
1 files changed, 1 insertions, 139 deletions
diff --git a/tools/releasetools/test_verity_utils.py b/tools/releasetools/test_verity_utils.py index 32f7ccee61..ada70e6d70 100644 --- a/tools/releasetools/test_verity_utils.py +++ b/tools/releasetools/test_verity_utils.py @@ -28,149 +28,11 @@ from test_utils import ( get_testdata_dir, ReleaseToolsTestCase, SkipIfExternalToolsUnavailable) from verity_utils import ( CalculateVbmetaDigest, CreateHashtreeInfoGenerator, - CreateVerityImageBuilder, HashtreeInfo, - VerifiedBootVersion1HashtreeInfoGenerator) + CreateVerityImageBuilder, HashtreeInfo) BLOCK_SIZE = common.BLOCK_SIZE -class VerifiedBootVersion1HashtreeInfoGeneratorTest(ReleaseToolsTestCase): - - def setUp(self): - self.testdata_dir = get_testdata_dir() - - self.partition_size = 1024 * 1024 - self.prop_dict = { - 'verity': 'true', - 'verity_fec': 'true', - 'system_verity_block_device': '/dev/block/system', - 'system_size': self.partition_size - } - - self.hash_algorithm = "sha256" - self.fixed_salt = ( - "aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7") - self.expected_root_hash = ( - "0b7c4565e87b1026e11fbab91c0bc29e185c847a5b44d40e6e86e461e8adf80d") - - def _CreateSimg(self, raw_data): # pylint: disable=no-self-use - output_file = common.MakeTempFile() - raw_image = common.MakeTempFile() - with open(raw_image, 'wb') as f: - f.write(raw_data) - - cmd = ["img2simg", raw_image, output_file, '4096'] - common.RunAndCheckOutput(cmd) - return output_file - - def _GenerateImage(self): - partition_size = 1024 * 1024 - prop_dict = { - 'partition_size': str(partition_size), - 'verity': 'true', - 'verity_block_device': '/dev/block/system', - 'verity_key': os.path.join(self.testdata_dir, 'testkey'), - 'verity_fec': 'true', - 'verity_signer_cmd': 'verity_signer', - } - verity_image_builder = CreateVerityImageBuilder(prop_dict) - self.assertIsNotNone(verity_image_builder) - adjusted_size = verity_image_builder.CalculateMaxImageSize() - - raw_image = bytearray(adjusted_size) - for i in range(adjusted_size): - raw_image[i] = ord('0') + i % 10 - - output_file = self._CreateSimg(raw_image) - - # Append the verity metadata. - verity_image_builder.Build(output_file) - - return output_file - - @SkipIfExternalToolsUnavailable() - def test_CreateHashtreeInfoGenerator(self): - image_file = sparse_img.SparseImage(self._GenerateImage()) - - generator = CreateHashtreeInfoGenerator( - 'system', image_file, self.prop_dict) - self.assertEqual( - VerifiedBootVersion1HashtreeInfoGenerator, type(generator)) - self.assertEqual(self.partition_size, generator.partition_size) - self.assertTrue(generator.fec_supported) - - @SkipIfExternalToolsUnavailable() - def test_DecomposeSparseImage(self): - image_file = sparse_img.SparseImage(self._GenerateImage()) - - generator = VerifiedBootVersion1HashtreeInfoGenerator( - self.partition_size, 4096, True) - generator.DecomposeSparseImage(image_file) - self.assertEqual(991232, generator.filesystem_size) - self.assertEqual(12288, generator.hashtree_size) - self.assertEqual(32768, generator.metadata_size) - - @SkipIfExternalToolsUnavailable() - def test_ParseHashtreeMetadata(self): - image_file = sparse_img.SparseImage(self._GenerateImage()) - generator = VerifiedBootVersion1HashtreeInfoGenerator( - self.partition_size, 4096, True) - generator.DecomposeSparseImage(image_file) - - # pylint: disable=protected-access - generator._ParseHashtreeMetadata() - - self.assertEqual( - self.hash_algorithm, generator.hashtree_info.hash_algorithm) - self.assertEqual(self.fixed_salt, generator.hashtree_info.salt) - self.assertEqual(self.expected_root_hash, generator.hashtree_info.root_hash) - - @SkipIfExternalToolsUnavailable() - def test_ValidateHashtree_smoke(self): - generator = VerifiedBootVersion1HashtreeInfoGenerator( - self.partition_size, 4096, True) - generator.image = sparse_img.SparseImage(self._GenerateImage()) - - generator.hashtree_info = info = HashtreeInfo() - info.filesystem_range = RangeSet(data=[0, 991232 // 4096]) - info.hashtree_range = RangeSet( - data=[991232 // 4096, (991232 + 12288) // 4096]) - info.hash_algorithm = self.hash_algorithm - info.salt = self.fixed_salt - info.root_hash = self.expected_root_hash - - self.assertTrue(generator.ValidateHashtree()) - - @SkipIfExternalToolsUnavailable() - def test_ValidateHashtree_failure(self): - generator = VerifiedBootVersion1HashtreeInfoGenerator( - self.partition_size, 4096, True) - generator.image = sparse_img.SparseImage(self._GenerateImage()) - - generator.hashtree_info = info = HashtreeInfo() - info.filesystem_range = RangeSet(data=[0, 991232 // 4096]) - info.hashtree_range = RangeSet( - data=[991232 // 4096, (991232 + 12288) // 4096]) - info.hash_algorithm = self.hash_algorithm - info.salt = self.fixed_salt - info.root_hash = "a" + self.expected_root_hash[1:] - - self.assertFalse(generator.ValidateHashtree()) - - @SkipIfExternalToolsUnavailable() - def test_Generate(self): - image_file = sparse_img.SparseImage(self._GenerateImage()) - generator = CreateHashtreeInfoGenerator('system', 4096, self.prop_dict) - info = generator.Generate(image_file) - - self.assertEqual(RangeSet(data=[0, 991232 // 4096]), info.filesystem_range) - self.assertEqual(RangeSet(data=[991232 // 4096, (991232 + 12288) // 4096]), - info.hashtree_range) - self.assertEqual(self.hash_algorithm, info.hash_algorithm) - self.assertEqual(self.fixed_salt, info.salt) - self.assertEqual(self.expected_root_hash, info.root_hash) - - class VerifiedBootVersion2VerityImageBuilderTest(ReleaseToolsTestCase): DEFAULT_PROP_DICT = { |