[PATCH 0/2] efi: Implement EFI Security Architecture protocols

Ian Mullins imullins at redhat.com
Fri Jul 10 15:23:07 CEST 2026


This series implements the EFI_SECURITY_ARCH_PROTOCOL and
EFI_SECURITY2_ARCH_PROTOCOL. The primary motivation is to support EFI
applications like systemd-stub in Unified Kernel Images (UKI) so they
can temporarily override authentication for embedded payloads.

Note: This work was originally authored by Enric Balletbo i Serra. 
I am submitting it upstream on his behalf with additional testing.

---
Testing Performed

I have validated these patches across various secure boot scenarios on 
both physical hardware and emulators to ensure the new overrides work 
without regressing standard secure boot enforcement.

Hardware: Renesas R-Car S4 (EBBR UKI boot)
- [PASS] Unsigned image, Secure Boot disabled, without patch
  (Boots)
- [PASS] Unsigned image, Secure Boot compiled (not enforcing),
  without patch (Boots)
- [PASS] Signed image, Secure Boot enforcing, without patch
  (Fails to boot as expected)
- [PASS] Signed image, Secure Boot enforcing, with patch
  (Boots successfully)
- [PASS] Signed image (wrong keys), Secure Boot enforcing, with patch
  (Fails to boot as expected)

Emulator: QEMU (qemu UKI boot)
- [PASS] Unsigned image, Secure Boot disabled, without patch
  (Boots)
- [PASS] Unsigned image, Secure Boot enabled, without patch
  (Boots)
- [PASS] Signed image, Secure Boot enabled, without patch
  (Fails to boot as expected)
- [PASS] Signed image, Secure Boot enabled, with patch
  (Boots successfully)

Signed-off-by: Ian Mullins <imullins at redhat.com>

---
Enric Balletbo i Serra (2):
      efi_loader: implement EFI Security Architecture protocols
      efi_selftest: add tests for security architecture protocols

 include/efi_api.h                                  |  30 +++
 include/efi_loader.h                               |  15 +-
 lib/efi_loader/Kconfig                             |  11 ++
 lib/efi_loader/Makefile                            |   1 +
 lib/efi_loader/efi_boottime.c                      |   3 +-
 lib/efi_loader/efi_image_loader.c                  |  31 ++-
 lib/efi_loader/efi_security.c                      |  99 ++++++++++
 lib/efi_loader/efi_setup.c                         |   7 +
 lib/efi_selftest/Makefile                          |   1 +
 lib/efi_selftest/efi_selftest_security_arch.c      | 110 +++++++++++
 .../py/tests/test_efi_secboot/README.security_arch | 208 +++++++++++++++++++++
 .../tests/test_efi_secboot/test_security_arch.py   |  73 ++++++++
 12 files changed, 580 insertions(+), 9 deletions(-)
---
base-commit: 913fedc816570c07bfc7f9c4046dc2a3a55e4099
change-id: 20260710-efi_security_protocol-6b9fb0e8da41

Best regards,
-- 
Ian Mullins <imullins at redhat.com>



More information about the U-Boot mailing list