| /* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef INSTALLER_CHROMEOS_VERITY_H_ | |
| #define INSTALLER_CHROMEOS_VERITY_H_ | |
| #include <stdint.h> | |
| #include <string> | |
| /* chromeos_verity | |
| * This calculated the verity hash-trie for a filesystem and places it | |
| * immdiately after the FS on the device, and checks that the expected | |
| * root hash is generated. | |
| * | |
| * @alg - algorithm to use. md5, sha1, or sha256 | |
| * @device - block device which contains the fs and will contain hash trie | |
| * @blocksize - size of block to hash on. Usually page size - 4k on x86. | |
| * @salt - ascii string with a salt value to add before calculating each hash | |
| * @expected - ascii string with the exptected final root hash value | |
| * @enforce_rootfs_verification - bool indicating whether we should complain if | |
| * expected doesn't match | |
| * return - 0 for success, non-zero indicates failure | |
| * | |
| */ | |
| int chromeos_verity(const std::string& alg, | |
| const std::string& device, | |
| unsigned blocksize, | |
| uint64_t fs_blocks, | |
| const std::string& salt, | |
| const std::string& expected, | |
| bool enforce_rootfs_verification); | |
| #endif // INSTALLER_CHROMEOS_VERITY_H_ |