| /* 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_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <stdint.h> |
| |
| /* 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 |
| * @warn - bool indicating whether we should complain if expected doesn't match |
| * return - 0 for success, non-zero indicates failure |
| * |
| */ |
| int chromeos_verity(const char *alg, |
| const char *device, |
| unsigned blocksize, |
| uint64_t fs_blocks, |
| const char *salt, |
| const char *expected, |
| int warn); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // INSTALLER_CHROMEOS_VERITY_H_ |