soc/intel/alderlake: Add ADL-P 4+4 with 28W TDP
[coreboot.git] / src / lib / Kconfig.cbfs_verification
blob9b053e1c1658cf4b45787fdf10926368d07a94bd
1 # SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later
3 # This file is sourced from src/security/Kconfig for menuconfig convenience.
5 menu "CBFS verification"
7 config CBFS_VERIFICATION
8         bool "Enable CBFS verification"
9         select VBOOT_LIB
10         help
11           Say yes here to enable code that cryptographically verifies each CBFS
12           file as it gets loaded by chaining it to a trust anchor that is
13           embedded in the bootblock. This only makes sense if you use some
14           out-of-band mechanism to guarantee the integrity of the bootblock
15           itself, such as Intel Boot Guard or flash write-protection.
17           If a CBFS image was created with this option enabled, cbfstool will
18           automatically update the hash embedded in the bootblock whenever it
19           modifies the CBFS.
21 if CBFS_VERIFICATION
23 config TOCTOU_SAFETY
24         bool "Protect against time-of-check vs. time-of-use vulnerabilities"
25         depends on !NO_FMAP_CACHE
26         depends on !NO_CBFS_MCACHE
27         depends on !USE_OPTION_TABLE && !FSP_CAR  # Known to access CBFS before CBMEM init
28         depends on !VBOOT # TODO: can only allow this once vboot fully integrated
29         depends on NO_XIP_EARLY_STAGES
30         help
31           Say yes here to eliminate time-of-check vs. time-of-use vulnerabilities
32           for CBFS verification. This means that data from flash must be verified
33           every time it is loaded (not just the first time), which requires a bit
34           more overhead and is incompatible with certain configurations.
36           Using this option only makes sense when the mechanism securing the
37           bootblock is also safe against these vulnerabilities (i.e. there's no
38           point in enabling this when you just rely on flash write-protection).
40 config CBFS_HASH_ALGO
41         int
42         default 1 if CBFS_HASH_SHA1
43         default 2 if CBFS_HASH_SHA256
44         default 3 if CBFS_HASH_SHA512
46 choice
47         prompt "Hash algorithm"
48         default CBFS_HASH_SHA256
49         help
50           Select the hash algorithm used in CBFS verification. Note that SHA-1 is
51           generally considered insecure today and should not be used without good
52           reason. When using CBFS verification together with measured boot, using
53           the same hash algorithm (usually SHA-256) for both is more efficient.
55 config CBFS_HASH_SHA1
56         bool "SHA-1"
58 config CBFS_HASH_SHA256
59         bool "SHA-256"
61 config CBFS_HASH_SHA512
62         bool "SHA-512"
64 endchoice
66 endif
68 endmenu