diff options
-rw-r--r-- | firmware/2lib/include/2struct.h | 192 | ||||
-rw-r--r-- | firmware/include/vb2_api.h | 1 | ||||
-rw-r--r-- | firmware/include/vboot_struct.h | 97 | ||||
-rw-r--r-- | firmware/lib20/common.c | 2 | ||||
-rw-r--r-- | firmware/lib20/include/vb2_common.h | 1 | ||||
-rw-r--r-- | firmware/lib20/include/vb2_struct.h | 188 | ||||
-rw-r--r-- | firmware/lib20/kernel.c | 2 | ||||
-rw-r--r-- | futility/cmd_sign.c | 1 | ||||
-rw-r--r-- | futility/cmd_vbutil_kernel.c | 1 | ||||
-rw-r--r-- | futility/dump_kernel_config_lib.c | 1 | ||||
-rw-r--r-- | host/lib/extract_vmlinuz.c | 1 | ||||
-rw-r--r-- | host/lib/host_common.c | 8 | ||||
-rw-r--r-- | host/lib/host_keyblock.c | 1 | ||||
-rw-r--r-- | tests/vb2_api_tests.c | 1 | ||||
-rw-r--r-- | tests/vboot_common_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_kernel_tests.c | 3 |
16 files changed, 199 insertions, 305 deletions
diff --git a/firmware/2lib/include/2struct.h b/firmware/2lib/include/2struct.h index a992d7ab..a5908d00 100644 --- a/firmware/2lib/include/2struct.h +++ b/firmware/2lib/include/2struct.h @@ -446,4 +446,196 @@ struct vb2_keyblock { #define EXPECTED_VB2_KEYBLOCK_SIZE 112 +/****************************************************************************/ + +/* + * Rollback protection currently uses a 32-bit value comprised of the bottom 16 + * bits of the (firmware or kernel) preamble version and the bottom 16 bits of + * the key version. So each of those versions is effectively limited to 16 + * bits even though they get stored in 32-bit fields. + */ +#define VB2_MAX_KEY_VERSION 0xffff +#define VB2_MAX_PREAMBLE_VERSION 0xffff + +/****************************************************************************/ + +/* Firmware preamble header */ +#define VB2_FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR 2 +#define VB2_FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR 1 + +/* Flags for vb2_fw_preamble.flags */ +/* Use RO-normal firmware (deprecated; do not use) */ +#define VB2_FIRMWARE_PREAMBLE_USE_RO_NORMAL 0x00000001 +/* Do not allow use of any hardware crypto accelerators. */ +#define VB2_FIRMWARE_PREAMBLE_DISALLOW_HWCRYPTO 0x00000002 + +/* Premable block for rewritable firmware, vboot1 version 2.1. + * + * The firmware preamble header should be followed by: + * 1) The kernel_subkey key data, pointed to by kernel_subkey.key_offset. + * 2) The signature data for the firmware body, pointed to by + * body_signature.sig_offset. + * 3) The signature data for (header + kernel_subkey data + body signature + * data), pointed to by preamble_signature.sig_offset. + */ +struct vb2_fw_preamble { + /* + * Size of this preamble, including keys, signatures, and padding, in + * bytes + */ + uint32_t preamble_size; + uint32_t reserved0; + + /* + * Signature for this preamble (header + kernel subkey + body + * signature) + */ + struct vb2_signature preamble_signature; + + /* Version of this header format */ + uint32_t header_version_major; + uint32_t header_version_minor; + + /* Firmware version */ + uint32_t firmware_version; + uint32_t reserved1; + + /* Key to verify kernel keyblock */ + struct vb2_packed_key kernel_subkey; + + /* Signature for the firmware body */ + struct vb2_signature body_signature; + + /* + * Fields added in header version 2.1. You must verify the header + * version before reading these fields! + */ + + /* + * Flags; see VB2_FIRMWARE_PREAMBLE_*. Readers should return 0 for + * header version < 2.1. + */ + uint32_t flags; +} __attribute__((packed)); + +#define EXPECTED_VB2_FW_PREAMBLE_SIZE 108 + +_Static_assert(EXPECTED_VB2_FW_PREAMBLE_SIZE == sizeof(struct vb2_fw_preamble), + "EXPECTED_VB2_FW_PREAMBLE_SIZE incorrect"); + +/****************************************************************************/ + +/* Kernel preamble header */ +#define VB2_KERNEL_PREAMBLE_HEADER_VERSION_MAJOR 2 +#define VB2_KERNEL_PREAMBLE_HEADER_VERSION_MINOR 2 + +/* Flags for vb2_kernel_preamble.flags */ +/* Kernel image type = bits 1:0 */ +#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_MASK 0x00000003 +#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_CROS 0 +#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_BOOTIMG 1 +#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_MULTIBOOT 2 +/* Kernel type 3 is reserved for future use */ + +/* + * Preamble block for kernel, version 2.2 + * + * This should be followed by: + * 1) The signature data for the kernel body, pointed to by + * body_signature.sig_offset. + * 2) The signature data for (vb2_kernel_preamble + body signature data), + * pointed to by preamble_signature.sig_offset. + * 3) The 16-bit vmlinuz header, which is used for reconstruction of + * vmlinuz image. + */ +struct vb2_kernel_preamble { + /* + * Size of this preamble, including keys, signatures, vmlinuz header, + * and padding, in bytes + */ + uint32_t preamble_size; + uint32_t reserved0; + + /* Signature for this preamble (header + body signature) */ + struct vb2_signature preamble_signature; + + /* Version of this header format */ + uint32_t header_version_major; + uint32_t header_version_minor; + + /* Kernel version */ + uint32_t kernel_version; + uint32_t reserved1; + + /* Load address for kernel body */ + uint64_t body_load_address; + /* TODO (vboot 2.1): we never used that */ + + /* Address of bootloader, after body is loaded at body_load_address */ + uint64_t bootloader_address; + /* TODO (vboot 2.1): should be a 32-bit offset */ + + /* Size of bootloader in bytes */ + uint32_t bootloader_size; + uint32_t reserved2; + + /* Signature for the kernel body */ + struct vb2_signature body_signature; + + /* + * TODO (vboot 2.1): fields for kernel offset and size. Right now the + * size is implicitly the same as the size of data signed by the body + * signature, and the offset is implicitly at the end of the preamble. + * But that forces us to pad the preamble to 64KB rather than just + * having a tiny preamble and an offset field. + */ + + /* + * Fields added in header version 2.1. You must verify the header + * version before reading these fields! + */ + + /* + * Address of 16-bit header for vmlinuz reassembly. Readers should + * return 0 for header version < 2.1. + */ + uint64_t vmlinuz_header_address; + + /* Size of 16-bit header for vmlinuz in bytes. Readers should return 0 + for header version < 2.1 */ + uint32_t vmlinuz_header_size; + uint32_t reserved3; + + /* + * Fields added in header version 2.2. You must verify the header + * version before reading these fields! + */ + + /* + * Flags; see VB2_KERNEL_PREAMBLE_*. Readers should return 0 for + * header version < 2.2. Flags field is currently defined as: + * [31:2] - Reserved (for future use) + * [1:0] - Kernel image type (0b00 - CrOS, + * 0b01 - bootimg, + * 0b10 - multiboot) + */ + uint32_t flags; +} __attribute__((packed)); + +#define EXPECTED_VB2_KERNEL_PREAMBLE_2_0_SIZE 96 +#define EXPECTED_VB2_KERNEL_PREAMBLE_2_1_SIZE 112 +#define EXPECTED_VB2_KERNEL_PREAMBLE_2_2_SIZE 116 + +_Static_assert(EXPECTED_VB2_KERNEL_PREAMBLE_2_0_SIZE + == offsetof(struct vb2_kernel_preamble, vmlinuz_header_address), + "EXPECTED_VB2_KERNEL_PREAMBLE_2_0_SIZE incorrect"); + +_Static_assert(EXPECTED_VB2_KERNEL_PREAMBLE_2_1_SIZE + == offsetof(struct vb2_kernel_preamble, flags), + "EXPECTED_VB2_KERNEL_PREAMBLE_2_1_SIZE incorrect"); + +_Static_assert(EXPECTED_VB2_KERNEL_PREAMBLE_2_2_SIZE + == sizeof(struct vb2_kernel_preamble), + "EXPECTED_VB2_KERNEL_PREAMBLE_2_2_SIZE incorrect"); + #endif /* VBOOT_REFERENCE_2STRUCT_H_ */ diff --git a/firmware/include/vb2_api.h b/firmware/include/vb2_api.h index d6400c45..027df89e 100644 --- a/firmware/include/vb2_api.h +++ b/firmware/include/vb2_api.h @@ -37,7 +37,6 @@ #include "../2lib/include/2nvstorage.h" #include "../2lib/include/2nvstorage_fields.h" #include "../2lib/include/2struct.h" -#include "../lib20/include/vb2_struct.h" #endif #endif /* VBOOT_REFERENCE_VB2_API_H_ */ diff --git a/firmware/include/vboot_struct.h b/firmware/include/vboot_struct.h index f92a37db..849d4b2f 100644 --- a/firmware/include/vboot_struct.h +++ b/firmware/include/vboot_struct.h @@ -23,103 +23,6 @@ extern "C" { #endif /* __cplusplus */ -#define KERNEL_PREAMBLE_HEADER_VERSION_MAJOR 2 -#define KERNEL_PREAMBLE_HEADER_VERSION_MINOR 2 - -/* Preamble block for kernel, version 2.0 - * - * This should be followed by: - * 1) The signature data for the kernel body, pointed to by - * body_signature.sig_offset. - * 2) The signature data for (vb2_kernel_preamble + body signature - * data), pointed to by preamble_signature.sig_offset. - */ -typedef struct VbKernelPreambleHeader2_0 { - /* - * Size of this preamble, including keys, signatures, and padding, in - * bytes - */ - uint64_t preamble_size; - /* Signature for this preamble (header + body signature) */ - struct vb2_signature preamble_signature; - /* Version of this header format */ - uint32_t header_version_major; - /* Version of this header format */ - uint32_t header_version_minor; - - /* Kernel version */ - uint64_t kernel_version; - /* Load address for kernel body */ - uint64_t body_load_address; - /* Address of bootloader, after body is loaded at body_load_address */ - uint64_t bootloader_address; - /* Size of bootloader in bytes */ - uint64_t bootloader_size; - /* Signature for the kernel body */ - struct vb2_signature body_signature; -} __attribute__((packed)) VbKernelPreambleHeader2_0; - -#define EXPECTED_VBKERNELPREAMBLEHEADER2_0_SIZE 96 - -/* Preamble block for kernel, version 2.1 - * - * This should be followed by: - * 1) The signature data for the kernel body, pointed to by - * body_signature.sig_offset. - * 2) The signature data for (vb2_fw_preamble + body signature - * data), pointed to by preamble_signature.sig_offset. - * 3) The 16-bit vmlinuz header, which is used for reconstruction of - * vmlinuz image. - */ -typedef struct VbKernelPreambleHeader { - /* - * Size of this preamble, including keys, signatures, vmlinuz header, - * and padding, in bytes - */ - uint64_t preamble_size; - /* Signature for this preamble (header + body signature) */ - struct vb2_signature preamble_signature; - /* Version of this header format */ - uint32_t header_version_major; - /* Version of this header format */ - uint32_t header_version_minor; - - /* Kernel version */ - uint64_t kernel_version; - /* Load address for kernel body */ - uint64_t body_load_address; - /* Address of bootloader, after body is loaded at body_load_address */ - uint64_t bootloader_address; - /* Size of bootloader in bytes */ - uint64_t bootloader_size; - /* Signature for the kernel body */ - struct vb2_signature body_signature; - /* - * Fields added in header version 2.1. You must verify the header - * version before reading these fields! - */ - /* Address of 16-bit header for vmlinuz reassembly. Readers should - return 0 for header version < 2.1 */ - uint64_t vmlinuz_header_address; - /* Size of 16-bit header for vmlinuz in bytes. Readers should return 0 - for header version < 2.1 */ - uint64_t vmlinuz_header_size; - /* - * Flags passed in by the signer. Readers should return 0 for header - * version < 2.2. Flags field is currently defined as: - * [31:2] - Reserved (for future use) - * [1:0] - Kernel image type (0b00 - CrOS, - * 0b01 - bootimg, - * 0b10 - multiboot) - */ - uint32_t flags; -} __attribute__((packed)) VbKernelPreambleHeader; - -#define EXPECTED_VBKERNELPREAMBLEHEADER2_1_SIZE 112 -#define EXPECTED_VBKERNELPREAMBLEHEADER2_2_SIZE 116 - -/****************************************************************************/ - /* Constants and sub-structures for VbSharedDataHeader */ /* Magic number for recognizing VbSharedDataHeader ("VbSD") */ diff --git a/firmware/lib20/common.c b/firmware/lib20/common.c index 6a6eff32..d0cc8553 100644 --- a/firmware/lib20/common.c +++ b/firmware/lib20/common.c @@ -170,7 +170,7 @@ vb2_error_t vb2_verify_fw_preamble(struct vb2_fw_preamble *preamble, return VB2_ERROR_PREAMBLE_TOO_SMALL_FOR_HEADER; } if (preamble->header_version_major != - FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR) { + VB2_FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR) { VB2_DEBUG("Incompatible firmware preamble header version.\n"); return VB2_ERROR_PREAMBLE_HEADER_VERSION; } diff --git a/firmware/lib20/include/vb2_common.h b/firmware/lib20/include/vb2_common.h index 5bac7a89..9e2c40d9 100644 --- a/firmware/lib20/include/vb2_common.h +++ b/firmware/lib20/include/vb2_common.h @@ -14,7 +14,6 @@ #include "2sha.h" #include "2struct.h" #include "2sysincludes.h" -#include "vb2_struct.h" struct vb2_public_key; diff --git a/firmware/lib20/include/vb2_struct.h b/firmware/lib20/include/vb2_struct.h deleted file mode 100644 index 75330c18..00000000 --- a/firmware/lib20/include/vb2_struct.h +++ /dev/null @@ -1,188 +0,0 @@ -/* Copyright (c) 2014 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. - * - * Vboot 2.0 data structures (compatible with vboot1) - * - * Note: Many of the structs have pairs of 32-bit fields and reserved fields. - * This is to be backwards-compatible with older verified boot data which used - * 64-bit fields (when we thought that hey, UEFI is 64-bit so all our fields - * should be too). - * - * Offsets should be padded to 32-bit boundaries, since some architectures - * have trouble with accessing unaligned integers. - */ - -#ifndef VBOOT_REFERENCE_VB2_STRUCT_H_ -#define VBOOT_REFERENCE_VB2_STRUCT_H_ - -#include <stdint.h> - -/* - * Rollback protection currently uses a 32-bit value comprised of the bottom 16 - * bits of the (firmware or kernel) preamble version and the bottom 16 bits of - * the key version. So each of those versions is effectively limited to 16 - * bits even though they get stored in 32-bit fields. - */ -#define VB2_MAX_KEY_VERSION 0xffff -#define VB2_MAX_PREAMBLE_VERSION 0xffff - -/* Firmware preamble header */ -#define FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR 2 -#define FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR 1 - -/* Flags for vb2_fw_preamble.flags */ -/* Use RO-normal firmware (deprecated; do not use) */ -#define VB2_FIRMWARE_PREAMBLE_USE_RO_NORMAL 0x00000001 -/* Do not allow use of any hardware crypto accelerators. */ -#define VB2_FIRMWARE_PREAMBLE_DISALLOW_HWCRYPTO 0x00000002 - -/* Premable block for rewritable firmware, vboot1 version 2.1. - * - * The firmware preamble header should be followed by: - * 1) The kernel_subkey key data, pointed to by kernel_subkey.key_offset. - * 2) The signature data for the firmware body, pointed to by - * body_signature.sig_offset. - * 3) The signature data for (header + kernel_subkey data + body signature - * data), pointed to by preamble_signature.sig_offset. - */ -struct vb2_fw_preamble { - /* - * Size of this preamble, including keys, signatures, and padding, in - * bytes - */ - uint32_t preamble_size; - uint32_t reserved0; - - /* - * Signature for this preamble (header + kernel subkey + body - * signature) - */ - struct vb2_signature preamble_signature; - - /* Version of this header format */ - uint32_t header_version_major; - uint32_t header_version_minor; - - /* Firmware version */ - uint32_t firmware_version; - uint32_t reserved1; - - /* Key to verify kernel keyblock */ - struct vb2_packed_key kernel_subkey; - - /* Signature for the firmware body */ - struct vb2_signature body_signature; - - /* - * Fields added in header version 2.1. You must verify the header - * version before reading these fields! - */ - - /* - * Flags; see VB2_FIRMWARE_PREAMBLE_*. Readers should return 0 for - * header version < 2.1. - */ - uint32_t flags; -} __attribute__((packed)); - -#define EXPECTED_VB2_FW_PREAMBLE_SIZE 108 - -/* Kernel preamble header */ -#define KERNEL_PREAMBLE_HEADER_VERSION_MAJOR 2 -#define KERNEL_PREAMBLE_HEADER_VERSION_MINOR 2 - -/* Flags for vb2_kernel_preamble.flags */ -/* Kernel image type = bits 1:0 */ -#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_MASK 0x00000003 -#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_CROS 0 -#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_BOOTIMG 1 -#define VB2_KERNEL_PREAMBLE_KERNEL_TYPE_MULTIBOOT 2 -/* Kernel type 3 is reserved for future use */ - -/* - * Preamble block for kernel, version 2.2 - * - * This should be followed by: - * 1) The signature data for the kernel body, pointed to by - * body_signature.sig_offset. - * 2) The signature data for (vb2_kernel_preamble + body signature data), - * pointed to by preamble_signature.sig_offset. - * 3) The 16-bit vmlinuz header, which is used for reconstruction of - * vmlinuz image. - */ -struct vb2_kernel_preamble { - /* - * Size of this preamble, including keys, signatures, vmlinuz header, - * and padding, in bytes - */ - uint32_t preamble_size; - uint32_t reserved0; - - /* Signature for this preamble (header + body signature) */ - struct vb2_signature preamble_signature; - - /* Version of this header format */ - uint32_t header_version_major; - uint32_t header_version_minor; - - /* Kernel version */ - uint32_t kernel_version; - uint32_t reserved1; - - /* Load address for kernel body */ - uint64_t body_load_address; - /* TODO (vboot 2.1): we never used that */ - - /* Address of bootloader, after body is loaded at body_load_address */ - uint64_t bootloader_address; - /* TODO (vboot 2.1): should be a 32-bit offset */ - - /* Size of bootloader in bytes */ - uint32_t bootloader_size; - uint32_t reserved2; - - /* Signature for the kernel body */ - struct vb2_signature body_signature; - - /* - * TODO (vboot 2.1): fields for kernel offset and size. Right now the - * size is implicitly the same as the size of data signed by the body - * signature, and the offset is implicitly at the end of the preamble. - * But that forces us to pad the preamble to 64KB rather than just - * having a tiny preamble and an offset field. - */ - - /* - * Fields added in header version 2.1. You must verify the header - * version before reading these fields! - */ - - /* - * Address of 16-bit header for vmlinuz reassembly. Readers should - * return 0 for header version < 2.1. - */ - uint64_t vmlinuz_header_address; - - /* Size of 16-bit header for vmlinuz in bytes. Readers should return 0 - for header version < 2.1 */ - uint32_t vmlinuz_header_size; - uint32_t reserved3; - - /* - * Fields added in header version 2.2. You must verify the header - * version before reading these fields! - */ - - /* - * Flags; see VB2_KERNEL_PREAMBLE_*. Readers should return 0 for - * header version < 2.2. - */ - uint32_t flags; -} __attribute__((packed)); - -#define EXPECTED_VB2_KERNEL_PREAMBLE_2_0_SIZE 96 -#define EXPECTED_VB2_KERNEL_PREAMBLE_2_1_SIZE 112 -#define EXPECTED_VB2_KERNEL_PREAMBLE_2_2_SIZE 116 - -#endif /* VBOOT_REFERENCE_VB2_STRUCT_H_ */ diff --git a/firmware/lib20/kernel.c b/firmware/lib20/kernel.c index 3b3e2c54..2c837efd 100644 --- a/firmware/lib20/kernel.c +++ b/firmware/lib20/kernel.c @@ -254,7 +254,7 @@ vb2_error_t vb2_verify_kernel_preamble(struct vb2_kernel_preamble *preamble, return VB2_ERROR_PREAMBLE_TOO_SMALL_FOR_HEADER; } if (preamble->header_version_major != - KERNEL_PREAMBLE_HEADER_VERSION_MAJOR) { + VB2_KERNEL_PREAMBLE_HEADER_VERSION_MAJOR) { VB2_DEBUG("Incompatible kernel preamble header version.\n"); return VB2_ERROR_PREAMBLE_HEADER_VERSION; } diff --git a/futility/cmd_sign.c b/futility/cmd_sign.c index 1973143b..ce37e87e 100644 --- a/futility/cmd_sign.c +++ b/futility/cmd_sign.c @@ -30,7 +30,6 @@ #include "vb1_helper.h" #include "vb21_common.h" #include "vb2_common.h" -#include "vb2_struct.h" /* Options */ struct sign_option_s sign_option = { diff --git a/futility/cmd_vbutil_kernel.c b/futility/cmd_vbutil_kernel.c index 99ffcfc2..aeb6da61 100644 --- a/futility/cmd_vbutil_kernel.c +++ b/futility/cmd_vbutil_kernel.c @@ -27,7 +27,6 @@ #include "kernel_blob.h" #include "vb1_helper.h" #include "vb2_common.h" -#include "vb2_struct.h" #include "vboot_common.h" /* Global opts */ diff --git a/futility/dump_kernel_config_lib.c b/futility/dump_kernel_config_lib.c index 2315a0ab..5f7aa20e 100644 --- a/futility/dump_kernel_config_lib.c +++ b/futility/dump_kernel_config_lib.c @@ -17,7 +17,6 @@ #include "futility.h" #include "host_common.h" #include "kernel_blob.h" -#include "vb2_struct.h" #include "vboot_api.h" #include "vboot_host.h" diff --git a/host/lib/extract_vmlinuz.c b/host/lib/extract_vmlinuz.c index 93fabaac..1260f112 100644 --- a/host/lib/extract_vmlinuz.c +++ b/host/lib/extract_vmlinuz.c @@ -10,7 +10,6 @@ #include "2common.h" #include "2struct.h" -#include "vb2_struct.h" #include "vboot_host.h" #include "vboot_struct.h" diff --git a/host/lib/host_common.c b/host/lib/host_common.c index 67ad1c07..1833c62d 100644 --- a/host/lib/host_common.c +++ b/host/lib/host_common.c @@ -38,8 +38,8 @@ struct vb2_fw_preamble *vb2_create_fw_preamble( uint8_t *body_sig_dest = kernel_subkey_dest + kernel_subkey->key_size; uint8_t *block_sig_dest = body_sig_dest + body_signature->sig_size; - h->header_version_major = FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR; - h->header_version_minor = FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR; + h->header_version_major = VB2_FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR; + h->header_version_minor = VB2_FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR; h->preamble_size = block_size; h->firmware_version = firmware_version; h->flags = flags; @@ -106,8 +106,8 @@ struct vb2_kernel_preamble *vb2_create_kernel_preamble( uint8_t *body_sig_dest = (uint8_t *)(h + 1); uint8_t *block_sig_dest = body_sig_dest + body_signature->sig_size; - h->header_version_major = KERNEL_PREAMBLE_HEADER_VERSION_MAJOR; - h->header_version_minor = KERNEL_PREAMBLE_HEADER_VERSION_MINOR; + h->header_version_major = VB2_KERNEL_PREAMBLE_HEADER_VERSION_MAJOR; + h->header_version_minor = VB2_KERNEL_PREAMBLE_HEADER_VERSION_MINOR; h->preamble_size = block_size; h->kernel_version = kernel_version; h->body_load_address = body_load_address; diff --git a/host/lib/host_keyblock.c b/host/lib/host_keyblock.c index 34071f4a..522e87a9 100644 --- a/host/lib/host_keyblock.c +++ b/host/lib/host_keyblock.c @@ -18,7 +18,6 @@ #include "host_keyblock.h" #include "host_key.h" #include "vb2_common.h" -#include "vb2_struct.h" struct vb2_keyblock *vb2_create_keyblock( const struct vb2_packed_key *data_key, diff --git a/tests/vb2_api_tests.c b/tests/vb2_api_tests.c index a7143b7f..b3ad5fda 100644 --- a/tests/vb2_api_tests.c +++ b/tests/vb2_api_tests.c @@ -15,7 +15,6 @@ #include "2secdata.h" #include "2sysincludes.h" #include "test_common.h" -#include "vb2_struct.h" #include "vb2_common.h" /* Common context for tests */ diff --git a/tests/vboot_common_tests.c b/tests/vboot_common_tests.c index 57f43824..b41020ab 100644 --- a/tests/vboot_common_tests.c +++ b/tests/vboot_common_tests.c @@ -21,10 +21,6 @@ */ static void StructPackingTest(void) { - TEST_EQ(EXPECTED_VBKERNELPREAMBLEHEADER2_2_SIZE, - sizeof(VbKernelPreambleHeader), - "sizeof(VbKernelPreambleHeader)"); - TEST_EQ(VB_SHARED_DATA_HEADER_SIZE_V1, (long)&((VbSharedDataHeader*)NULL)->recovery_reason, "sizeof(VbSharedDataHeader) V1"); diff --git a/tests/vboot_kernel_tests.c b/tests/vboot_kernel_tests.c index 4075e25d..fdbc7575 100644 --- a/tests/vboot_kernel_tests.c +++ b/tests/vboot_kernel_tests.c @@ -22,7 +22,6 @@ #include "secdata_tpm.h" #include "test_common.h" #include "vb2_common.h" -#include "vb2_struct.h" #include "vboot_api.h" #include "vboot_common.h" #include "vboot_kernel.h" @@ -62,7 +61,7 @@ static uint8_t shared_data[VB_SHARED_DATA_MIN_SIZE]; static VbSharedDataHeader *shared = (VbSharedDataHeader *)shared_data; static LoadKernelParams lkp; static struct vb2_keyblock kbh; -static VbKernelPreambleHeader kph; +static struct vb2_kernel_preamble kph; static struct vb2_secdata_fwmp *fwmp; static uint8_t mock_disk[MOCK_SECTOR_SIZE * MOCK_SECTOR_COUNT]; static GptHeader *mock_gpt_primary = |