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 * Data structure definitions for verified boot, for on-disk / in-eeprom | 5 * Data structure definitions for verified boot, for on-disk / in-eeprom |
6 * data. | 6 * data. |
7 */ | 7 */ |
8 | 8 |
9 #ifndef VBOOT_REFERENCE_VBOOT_STRUCT_H_ | 9 #ifndef VBOOT_REFERENCE_VBOOT_STRUCT_H_ |
10 #define VBOOT_REFERENCE_VBOOT_STRUCT_H_ | 10 #define VBOOT_REFERENCE_VBOOT_STRUCT_H_ |
11 | 11 |
12 #include "sysincludes.h" | 12 #include "sysincludes.h" |
13 | 13 |
14 #ifdef _MSC_VER | 14 __pragma(pack(push, 1)) /* Support packing for MSVC. */ |
15 #pragma pack(push, 1) /* Support packing for MSVC. */ | |
16 #endif | |
17 | 15 |
18 /* Public key data */ | 16 /* Public key data */ |
19 typedef struct VbPublicKey { | 17 typedef struct VbPublicKey { |
20 uint64_t key_offset; /* Offset of key data from start of this struct */ | 18 uint64_t key_offset; /* Offset of key data from start of this struct */ |
21 uint64_t key_size; /* Size of key data in bytes (NOT strength of key | 19 uint64_t key_size; /* Size of key data in bytes (NOT strength of key |
22 * in bits) */ | 20 * in bits) */ |
23 uint64_t algorithm; /* Signature algorithm used by the key */ | 21 uint64_t algorithm; /* Signature algorithm used by the key */ |
24 uint64_t key_version; /* Key version */ | 22 uint64_t key_version; /* Key version */ |
25 } __attribute__((packed)) VbPublicKey; | 23 } __attribute__((packed)) VbPublicKey; |
26 | 24 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 VbSignature body_signature; /* Signature for the kernel body */ | 124 VbSignature body_signature; /* Signature for the kernel body */ |
127 } __attribute__((packed)) VbKernelPreambleHeader; | 125 } __attribute__((packed)) VbKernelPreambleHeader; |
128 /* This should be followed by: | 126 /* This should be followed by: |
129 * 2) The signature data for the kernel body, pointed to by | 127 * 2) The signature data for the kernel body, pointed to by |
130 * body_signature.sig_offset. | 128 * body_signature.sig_offset. |
131 * 3) The signature data for (VBFirmwarePreambleHeader + body signature | 129 * 3) The signature data for (VBFirmwarePreambleHeader + body signature |
132 * data), pointed to by preamble_signature.sig_offset. */ | 130 * data), pointed to by preamble_signature.sig_offset. */ |
133 | 131 |
134 #define EXPECTED_VBKERNELPREAMBLEHEADER_SIZE 96 | 132 #define EXPECTED_VBKERNELPREAMBLEHEADER_SIZE 96 |
135 | 133 |
136 #ifdef _MSC_VER | 134 __pragma(pack(pop)) /* Support packing for MSVC. */ |
137 #pragma pack(pop) /* Support packing for MSVC. */ | |
138 #endif | |
139 | 135 |
140 #endif /* VBOOT_REFERENCE_VBOOT_STRUCT_H_ */ | 136 #endif /* VBOOT_REFERENCE_VBOOT_STRUCT_H_ */ |
OLD | NEW |