coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
metadata_hash.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */
2 
3 #ifndef _COMMONLIB_BSD_METADATA_HASH_H_
4 #define _COMMONLIB_BSD_METADATA_HASH_H_
5 
6 #include <stdint.h>
7 #include <vb2_sha.h>
8 
9 /* This structure is embedded somewhere in the (uncompressed) bootblock. */
12  struct vb2_hash cbfs_hash;
13  /* NOTE: This is just reserving space. sizeof(struct vb2_hash) may change between
14  configurations/versions and cannot be relied upon, so the FMAP hash must be placed
15  right after the actual data for the particular CBFS hash algorithm used ends. */
16  uint8_t reserved_space_for_fmap_hash[VB2_MAX_DIGEST_SIZE];
18 
19 /* Always use this function to figure out the actual location of the FMAP hash. It always uses
20  the same algorithm as the CBFS hash. */
22 {
23  return anchor->cbfs_hash.raw + vb2_digest_size(anchor->cbfs_hash.algo);
24 }
25 
26 /*
27  * Do not use this constant anywhere else in coreboot code to ensure the bit pattern really only
28  * appears once in the CBFS image. The only coreboot file allowed to use this is
29  * src/lib/metadata_anchor.c to define the actual anchor data structure. It is defined here so
30  * that it can be shared with cbfstool (which may use it freely).
31  */
32 #define DO_NOT_USE_METADATA_HASH_ANCHOR_MAGIC_DO_NOT_USE "\xadMdtHsh\x15"
33 
34 #endif /* _COMMONLIB_BSD_MASTER_HASH_H_ */
struct metadata_hash_anchor __packed
static uint8_t * metadata_hash_anchor_fmap_hash(struct metadata_hash_anchor *anchor)
Definition: metadata_hash.h:21
unsigned char uint8_t
Definition: stdint.h:8
struct vb2_hash cbfs_hash
Definition: metadata_hash.h:12
uint8_t reserved_space_for_fmap_hash[VB2_MAX_DIGEST_SIZE]
Definition: metadata_hash.h:16