u-boot/lib/efi_loader
Weizhao Ouyang 3b7d26eb2b efi_loader: Fix EFI_VARIABLE_APPEND_WRITE hash check
According to UEFI v2.10 spec section 8.2.6, if a caller invokes the
SetVariables() service, it will produce a digest from hash(VariableName,
VendorGuid, Attributes, TimeStamp, DataNew_variable_content), then the
firmware that implements the SetVariable() service will compare the
digest with the result of applying the signer’s public key to the
signature. For EFI variable append write, efitools sign-efi-sig-list has
an option "-a" to add EFI_VARIABLE_APPEND_WRITE attr, and u-boot will
drop this attribute in efi_set_variable_int(). So if a caller uses
"sign-efi-sig-list -a" to create the authenticated variable, this append
write will fail in the u-boot due to "hash check failed".

This patch resumes writing the EFI_VARIABLE_APPEND_WRITE attr to ensure
that the hash check is correct. And also update the "test_efi_secboot"
test case to compliance with the change.

Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
2024-06-10 15:01:44 +02:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
boothart.c efi_loader: add an EFI binary to print boot hart ID 2022-12-02 19:17:24 +01:00
capsule_esl.dtsi.in scripts/Makefile.lib: Embed capsule public key in platform's dtb 2023-08-29 13:38:55 -04:00
dtbdump.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_acpi.c efi_loader: 'EFI using ACPI tables at' should be debug message 2024-04-13 11:03:12 +02:00
efi_bootbin.c efi_loader: correct handling of EFI binary return code 2024-03-21 07:28:43 +01:00
efi_bootmgr.c efi_loader: do not install dtb if bootmgr fails 2024-05-01 07:39:00 +02:00
efi_boottime.c efi_loader: Clean up efi_dp_append and efi_dp_concat 2024-01-13 18:17:47 +01:00
efi_capsule.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_conformance.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_console.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_device_path.c efi_loader: fix description efi_dp_shorten 2024-05-01 08:39:52 +02:00
efi_device_path_to_text.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_device_path_utilities.c efi_loader: Clean up efi_dp_append and efi_dp_concat 2024-01-13 18:17:47 +01:00
efi_disk.c efi_loader: simplify error message in efi_disk_create_raw() 2024-02-12 17:35:34 +01:00
efi_dt_fixup.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_esrt.c efi_loader: fix iteration of FMP protocols 2024-01-13 18:17:46 +01:00
efi_file.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_firmware.c efi_loader: check efi_get_variable_int return value 2024-01-29 11:31:44 +01:00
efi_freestanding.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_gop.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_helper.c efi_loader: pass GUID by address to efi_dp_from_lo 2024-05-01 08:40:42 +02:00
efi_hii.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_hii_config.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_image_loader.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_load_initrd.c efi_loader: pass GUID by address to efi_dp_from_lo 2024-05-01 08:40:42 +02:00
efi_load_options.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_memory.c efi_loader: eliminate duplicate runtime section definitions 2024-04-13 11:03:12 +02:00
efi_net.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_riscv.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_rng.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_root_node.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_runtime.c efi_loader: enable QueryVariableInfo at runtime for file backed variables 2024-05-01 07:40:05 +02:00
efi_setup.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_signature.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_smbios.c smbios: copy QEMU tables 2024-01-16 17:05:29 -05:00
efi_string.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
efi_tcg2.c tpm-v2: add support for mapping algorithm names to algos 2024-05-27 09:00:07 +03:00
efi_unicode_collation.c lib/charset: Map Unicode code points to CP437 code points 1-31 2024-03-21 06:56:13 +01:00
efi_var_common.c efi_loader: enable QueryVariableInfo at runtime for file backed variables 2024-05-01 07:40:05 +02:00
efi_var_file.c efi_loader: move efi_var_collect to common functions 2024-04-13 11:03:12 +02:00
efi_var_mem.c efi_loader: address coverity report 492766 for dead code 2024-05-01 07:39:27 +02:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: Fix EFI_VARIABLE_APPEND_WRITE hash check 2024-06-10 15:01:44 +02:00
efi_variable_tee.c efi_loader: enable QueryVariableInfo at runtime for file backed variables 2024-05-01 07:40:05 +02:00
efi_watchdog.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
helloworld.c efi_loader: print file path w/o boot device 2023-05-13 11:09:51 +02:00
initrddump.c efi_loader: Remove <common.h> 2023-12-21 08:54:37 -05:00
Kconfig Merge patch series "Kconfig: some cleanups" 2024-04-22 11:01:56 -06:00
Makefile efi_loader: move efi_var_collect to common functions 2024-04-13 11:03:12 +02:00
smbiosdump.c smbios: correctly name Structure Table Maximum Size field 2024-02-02 19:57:45 +01:00