1/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. 4 * 5 * GUID structure. Defined in appendix A of EFI standard. 6 */ 7 8#ifndef VBOOT_REFERENCE_VBOOT_2GUID_H_ 9#define VBOOT_REFERENCE_VBOOT_2GUID_H_ 10#include <stdint.h> 11 12#define UUID_NODE_LEN 6 13#define GUID_SIZE 16 14 15struct vb2_guid { 16 union { 17 struct { 18 uint32_t time_low; 19 uint16_t time_mid; 20 uint16_t time_high_and_version; 21 uint8_t clock_seq_high_and_reserved; 22 uint8_t clock_seq_low; 23 uint8_t node[UUID_NODE_LEN]; 24 } uuid; 25 uint8_t raw[GUID_SIZE]; 26 }; 27} __attribute__((packed)); 28 29#define EXPECTED_GUID_SIZE GUID_SIZE 30 31/* Key GUIDs to use for VB2_SIG_NONE and hash algorithms */ 32 33#define VB2_GUID_NONE_SHA1 \ 34 {{{0xcfb5687a,0x6092,0x11e4,0x96,0xe1,{0x8f,0x3b,0x1a,0x60,0xa2,0x1d}}}} 35 36#define VB2_GUID_NONE_SHA256 \ 37 {{{0x0e4114e0,0x6093,0x11e4,0x9d,0xcb,{0x8f,0x8a,0xf4,0xca,0x2e,0x32}}}} 38 39#define VB2_GUID_NONE_SHA512 \ 40 {{{0x1c695960,0x6093,0x11e4,0x82,0x63,{0xdb,0xee,0xe9,0x3c,0xcd,0x7e}}}} 41 42#endif /* VBOOT_REFERENCE_VBOOT_2GUID_H_ */ 43