| Index: vboot_firmware/lib/include/vboot_struct.h
|
| diff --git a/vboot_firmware/lib/include/vboot_struct.h b/vboot_firmware/lib/include/vboot_struct.h
|
| index c77fa4bc747802965521d087fa12861ce4fa4f7f..98366fb25e7d3c14f1a96f44c929817538e57024 100644
|
| --- a/vboot_firmware/lib/include/vboot_struct.h
|
| +++ b/vboot_firmware/lib/include/vboot_struct.h
|
| @@ -19,7 +19,7 @@ typedef struct VbPublicKey {
|
| * in bits) */
|
| uint64_t algorithm; /* Signature algorithm used by the key */
|
| uint64_t key_version; /* Key version */
|
| -} VbPublicKey;
|
| +} __attribute__((packed)) VbPublicKey;
|
|
|
|
|
| /* Signature data (a secure hash, possibly signed) */
|
| @@ -28,7 +28,7 @@ typedef struct VbSignature {
|
| * struct */
|
| uint64_t sig_size; /* Size of signature data in bytes */
|
| uint64_t data_size; /* Size of the data block which was signed in bytes */
|
| -} VbSignature;
|
| +} __attribute__((packed)) VbSignature;
|
|
|
|
|
| #define KEY_BLOCK_MAGIC "CHROMEOS"
|
| @@ -61,7 +61,7 @@ typedef struct VbKeyBlockHeader {
|
| * For use with unsigned data keys */
|
| uint64_t key_block_flags; /* Flags for key (KEY_BLOCK_FLAG_*) */
|
| VbPublicKey data_key; /* Key to verify the chunk of data */
|
| -} VbKeyBlockHeader;
|
| +} __attribute__((packed)) VbKeyBlockHeader;
|
| /* This should be followed by:
|
| * 1) The data_key key data, pointed to by data_key.key_offset.
|
| * 2) The checksum data for (VBKeyBlockHeader + data_key data), pointed to
|
| @@ -86,7 +86,7 @@ typedef struct VbFirmwarePreambleHeader {
|
| uint64_t firmware_version; /* Firmware version */
|
| VbPublicKey kernel_subkey; /* Key to verify kernel key block */
|
| VbSignature body_signature; /* Signature for the firmware body */
|
| -} VbFirmwarePreambleHeader;
|
| +} __attribute__((packed)) VbFirmwarePreambleHeader;
|
| /* This 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
|
| @@ -114,7 +114,7 @@ typedef struct VbKernelPreambleHeader {
|
| * loaded at body_load_address */
|
| uint64_t bootloader_size; /* Size of bootloader in bytes */
|
| VbSignature body_signature; /* Signature for the kernel body */
|
| -} VbKernelPreambleHeader;
|
| +} __attribute__((packed)) VbKernelPreambleHeader;
|
| /* This should be followed by:
|
| * 2) The signature data for the kernel body, pointed to by
|
| * body_signature.sig_offset.
|
|
|