diff options
author | Randall Spangler <rspangler@chromium.org> | 2016-06-17 10:48:16 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-03 19:40:41 -0700 |
commit | 814aaf09ceecddb16a01e1cbe0df4299b83b5699 (patch) | |
tree | 2d8cdeed4ee062c83dd6e84a341ff53cf343fd1c /firmware | |
parent | 31f04ada58bc67680ec9d62a404365803c76ffc1 (diff) | |
download | vboot-814aaf09ceecddb16a01e1cbe0df4299b83b5699.tar.gz |
futility: Create signatures using vboot 2.0 APIsstabilize-8688.B
Refactor futility to use only vboot 2.0 APIs to create signatures.
BUG=chromium:611535
BRANCH=none
TEST=make runtests
Change-Id: I176e7f424fa556d34d8fe691df5681f1e43210ce
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/356128
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/include/vboot_struct.h | 92 | ||||
-rw-r--r-- | firmware/lib20/include/vb2_struct.h | 4 |
2 files changed, 4 insertions, 92 deletions
diff --git a/firmware/include/vboot_struct.h b/firmware/include/vboot_struct.h index 3a3f534e..f2704559 100644 --- a/firmware/include/vboot_struct.h +++ b/firmware/include/vboot_struct.h @@ -91,94 +91,6 @@ typedef struct VbKeyBlockHeader { /****************************************************************************/ -#define FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR 2 -#define FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR 1 - -/* - * Preamble block for rewritable firmware, version 2.0. All 2.x versions of - * this struct must start with the same data, to be compatible with version 2.0 - * readers. - */ -typedef struct VbFirmwarePreambleHeader2_0 { - /* - * Size of this preamble, including keys, signatures, and padding, in - * bytes - */ - uint64_t preamble_size; - /* - * Signature for this preamble (header + kernel subkey + body - * signature) - */ - VbSignature preamble_signature; - /* Version of this header format (= 2) */ - uint32_t header_version_major; - /* Version of this header format (= 0) */ - uint32_t header_version_minor; - - /* Firmware version */ - uint64_t firmware_version; - /* Key to verify kernel key block */ - VbPublicKey kernel_subkey; - /* Signature for the firmware body */ - VbSignature body_signature; -} __attribute__((packed)) VbFirmwarePreambleHeader2_0; - -#define EXPECTED_VBFIRMWAREPREAMBLEHEADER2_0_SIZE 104 - -/* Flags for VbFirmwarePreambleHeader.flags */ -/* - * Use the normal/dev boot path from the read-only firmware, instead of - * verifying the body signature. - */ -#define VB_FIRMWARE_PREAMBLE_USE_RO_NORMAL 0x00000001 - -/* Premable block for rewritable firmware, 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. - */ -typedef struct VbFirmwarePreambleHeader { - /* - * Size of this preamble, including keys, signatures, and padding, in - * bytes - */ - uint64_t preamble_size; - /* - * Signature for this preamble (header + kernel subkey + body - * signature) - */ - VbSignature preamble_signature; - /* Version of this header format */ - uint32_t header_version_major; - /* Version of this header format */ - uint32_t header_version_minor; - - /* Firmware version */ - uint64_t firmware_version; - /* Key to verify kernel key block */ - VbPublicKey kernel_subkey; - /* Signature for the firmware body */ - VbSignature body_signature; - - /* - * Fields added in header version 2.1. You must verify the header - * version before reading these fields! - */ - /* - * Flags; see VB_FIRMWARE_PREAMBLE_*. Readers should return 0 for - * header version < 2.1. - */ - uint32_t flags; -} __attribute__((packed)) VbFirmwarePreambleHeader; - -#define EXPECTED_VBFIRMWAREPREAMBLEHEADER2_1_SIZE 108 - -/****************************************************************************/ - #define KERNEL_PREAMBLE_HEADER_VERSION_MAJOR 2 #define KERNEL_PREAMBLE_HEADER_VERSION_MINOR 2 @@ -187,7 +99,7 @@ typedef struct VbFirmwarePreambleHeader { * 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 (VBFirmwarePreambleHeader + body signature + * 2) The signature data for (vb2_kernel_preamble + body signature * data), pointed to by preamble_signature.sig_offset. */ typedef struct VbKernelPreambleHeader2_0 { @@ -222,7 +134,7 @@ typedef struct VbKernelPreambleHeader2_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 (VBFirmwarePreambleHeader + body signature + * 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. diff --git a/firmware/lib20/include/vb2_struct.h b/firmware/lib20/include/vb2_struct.h index eeaf0cec..5220fa36 100644 --- a/firmware/lib20/include/vb2_struct.h +++ b/firmware/lib20/include/vb2_struct.h @@ -120,8 +120,8 @@ struct vb2_keyblock { #define FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR 1 /* Flags for vb2_fw_preamble.flags */ -/* Reserved; do not use */ -#define VB2_FIRMWARE_PREAMBLE_RESERVED0 0x00000001 +/* 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 |