OLD | NEW |
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 * | 4 * |
5 * Functions for verifying a verified boot kernel image. | 5 * Functions for verifying a verified boot kernel image. |
6 * (Firmware portion) | 6 * (Firmware portion) |
7 */ | 7 */ |
8 | 8 |
9 #include "kernel_image_fw.h" | 9 #include "kernel_image_fw.h" |
10 | 10 |
11 #include "padding.h" | 11 #include "cryptolib.h" |
12 #include "rollback_index.h" | 12 #include "rollback_index.h" |
13 #include "rsa_utility.h" | |
14 #include "sha_utility.h" | |
15 #include "utility.h" | 13 #include "utility.h" |
16 | 14 |
17 /* Macro to determine the size of a field structure in the KernelImage | 15 /* Macro to determine the size of a field structure in the KernelImage |
18 * structure. */ | 16 * structure. */ |
19 #define FIELD_LEN(field) (sizeof(((KernelImage*)0)->field)) | 17 #define FIELD_LEN(field) (sizeof(((KernelImage*)0)->field)) |
20 #define KERNEL_CONFIG_FIELD_LEN (FIELD_LEN(kernel_version) + FIELD_LEN(options.v
ersion) + \ | 18 #define KERNEL_CONFIG_FIELD_LEN (FIELD_LEN(kernel_version) + FIELD_LEN(options.v
ersion) + \ |
21 FIELD_LEN(options.cmd_line) + \ | 19 FIELD_LEN(options.cmd_line) + \ |
22 FIELD_LEN(options.kernel_len) + \ | 20 FIELD_LEN(options.kernel_len) + \ |
23 FIELD_LEN(options.kernel_load_addr) + \ | 21 FIELD_LEN(options.kernel_load_addr) + \ |
24 FIELD_LEN(options.kernel_entry_addr)) | 22 FIELD_LEN(options.kernel_entry_addr)) |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 /* Lock Kernel TPM rollback indices from further writes. | 357 /* Lock Kernel TPM rollback indices from further writes. |
360 * TODO(gauravsh): Figure out if these can be combined into one | 358 * TODO(gauravsh): Figure out if these can be combined into one |
361 * 32-bit location since we seem to always use them together. This can help | 359 * 32-bit location since we seem to always use them together. This can help |
362 * us minimize the number of NVRAM writes/locks (which are limited over flash | 360 * us minimize the number of NVRAM writes/locks (which are limited over flash |
363 * memory lifetimes. | 361 * memory lifetimes. |
364 */ | 362 */ |
365 LockStoredVersion(KERNEL_KEY_VERSION); | 363 LockStoredVersion(KERNEL_KEY_VERSION); |
366 LockStoredVersion(KERNEL_VERSION); | 364 LockStoredVersion(KERNEL_VERSION); |
367 return kernel_to_boot; | 365 return kernel_to_boot; |
368 } | 366 } |
OLD | NEW |