u-boot/lib/efi_loader
AKASHI Takahiro 11bafb2596 efi_loader: image_loader: verification for all signatures should pass
A signed image may have multiple signatures in
  - each WIN_CERTIFICATE in authenticode, and/or
  - each SignerInfo in pkcs7 SignedData (of WIN_CERTIFICATE)

In the initial implementation of efi_image_authenticate(), the criteria
of verification check for multiple signatures case is a bit ambiguous
and it may cause inconsistent result.

With this patch, we will make sure that verification check in
efi_image_authenticate() should pass against all the signatures.
The only exception would be
  - the case where a digest algorithm used in signature is not supported by
    U-Boot, or
  - the case where parsing some portion of authenticode has failed
In those cases, we don't know how the signature be handled and should
just ignore them.

Please note that, due to this change, efi_signature_verify_with_sigdb()'s
function prototype will be modified, taking "dbx" as well as "db"
instead of outputing a "certificate." If "dbx" is null, the behavior would
be the exact same as before.
The function's name will be changed to efi_signature_verify() once
current efi_signature_verify() has gone due to further improvement
in intermediate certificates support.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
2020-07-11 23:14:15 +02:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
efi_acpi.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_bootmgr.c efi_loader: use log function in boot manager 2020-07-03 18:03:47 +02:00
efi_boottime.c efi_loader: allow compiling with clang 2020-06-03 17:19:17 +02:00
efi_console.c efi_loader: comments EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL 2020-06-05 04:04:41 +02:00
efi_device_path.c efi_loader: device path for SATA devices 2020-05-21 10:00:17 +02:00
efi_device_path_to_text.c efi_loader: device path for SATA devices 2020-05-21 10:00:17 +02:00
efi_device_path_utilities.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
efi_disk.c efi_loader: check device path is not installed twice 2020-05-21 10:00:17 +02:00
efi_file.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_freestanding.c efi_loader: fix freestanding memmove() 2020-03-22 11:06:23 +01:00
efi_gop.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_hii.c efi_loader: ListPackageLists() return EFI_NOT_FOUND 2019-06-20 22:26:19 +00:00
efi_hii_config.c efi_loader: debug output for HII protocols 2019-02-13 09:40:06 +01:00
efi_image_loader.c efi_loader: image_loader: verification for all signatures should pass 2020-07-11 23:14:15 +02:00
efi_load_initrd.c efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
efi_memory.c common: Drop net.h from common header 2020-05-18 17:33:31 -04:00
efi_net.c common: Drop net.h from common header 2020-05-18 17:33:31 -04:00
efi_rng.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_root_node.c efi_rng_protocol: Install the efi_rng_protocol on the root node 2020-01-07 18:08:22 +01:00
efi_runtime.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_setup.c efi_loader: export initialization state 2020-07-03 18:03:56 +02:00
efi_signature.c efi_loader: image_loader: verification for all signatures should pass 2020-07-11 23:14:15 +02:00
efi_smbios.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_unicode_collation.c efi_loader: function descriptions efi_unicode_collation.c 2020-04-16 08:10:01 +02:00
efi_variable.c efi_loader: rtc_mktime() called twice 2020-07-03 18:03:47 +02:00
efi_variable_tee.c efi_loader: Implement EFI variable handling via OP-TEE 2020-05-17 21:59:53 +02:00
efi_watchdog.c efi_loader: function descriptions efi_watchdog.c 2020-04-16 08:10:02 +02:00
helloworld.c efi_loader: consistent naming of protocol GUIDs 2019-04-23 00:37:27 +02:00
Kconfig efi_loader: imply FAT, FAT_WRITE 2020-07-03 18:03:56 +02:00
Makefile efi_loader: Implement EFI variable handling via OP-TEE 2020-05-17 21:59:53 +02:00