All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/12] efi_loader: capsule: improve capsule authentication support
@ 2021-12-20  5:02 AKASHI Takahiro
  2021-12-20  5:02 ` [PATCH v8 01/12] tools: mkeficapsule: rework the code a little bit AKASHI Takahiro
                   ` (11 more replies)
  0 siblings, 12 replies; 35+ messages in thread
From: AKASHI Takahiro @ 2021-12-20  5:02 UTC (permalink / raw)
  To: xypron.glpk, agraf, sjg
  Cc: ilias.apalodimas, sughosh.ganu, masami.hiramatsu, mark.kettenis,
	u-boot, AKASHI Takahiro

As I proposed and discussed in [1] and [2], I have made a couple of
improvements on the current implementation of capsule update in this
patch set.

* add signing feature to mkeficapsule
* add "--guid" option to mkeficapsule
* add man page of mkeficapsule
* update uefi document regarding capsule update
* revise pytests
* (as RFC) add CONFIG_EFI_CAPSULE_KEY_PATH and fdtsig.sh

We have had some discussion about fdtsig.sh.
So RFCs (patch#11,#12) are still included for further discussion
if they are useful or not.
For smooth merge, the rest (patch#1-10) should work without them.

[1] https://lists.denx.de/pipermail/u-boot/2021-April/447918.html
[2] https://lists.denx.de/pipermail/u-boot/2021-July/455292.html

Prerequisite patches
====================
None

Test
====
* locally passed the pytest which is included in this patch series
  on sandbox built.
  (CONFIG_EFI_CAPSULE_AUTHENTICATE should explicitly be turned on
  in order to exercise the authentication code.)

Changes
=======
v8 (Dec 20, 2021)
* rebase on v2022.01-rc3
* move the definition of CONFIG_TOOLS_MKEFICAPSULE to a proper patch
  (patch#2)

v7 (Nov 16, 2021)
* rebased on pre-v2022.01-rc2
* drop already-merged patch
* check for a size of firmware binary file (patch#1)
* enable mkeficapsule in tools-only_defconfig (patch#2)
* define eficapsule.h and include it from mkeficapsule (patch#3)
  Hopefully, the tool can now compile on non-linux host.

v6 (Nov 02, 2021)
* rebased on pre-v2022.01-rc1
* add patch#2 to rework/refactor the code for better readability (patch#2)
* use exit(EXIT_SUCCESS/FAILURE) (patch#3)
* truncate >80chars lines in pytest scripts (patch#6)

v5 (Oct 27, 2021)
* rebased on pre-v2022.01-rc1 (WIP/26Oct2021)
* drop already-merged patches
* drop __weak from efi_get_public_key_data() (patch#1)
* describe the format of public key node in device tree (patch#4)
* re-order patches by grouping closely-related patches (patch#6-8)
* modify pytest to make the test results correctly verified
  either with or without CONFIG_EFI_CAPSULE_AUTHENTICATE (patch#9)
* add RFCs for embedding public keys during the build process (patch#10,11)

v4 (Oct 7, 2021)
* rebased on v2021.10
* align with "Revert "efi_capsule: Move signature from DTB to .rodata""
* add more missing *revert* commits (patch#1,#2,#3)
* add fdtsig.sh, replacing dtb support in mkeficapsule (patch#4)
* update/revise the man/uefi doc (patch#6,#7)
* fix a bug in parsing guid string (patch#8)
* add a test for "--guid" option (patch#10)
* use dtb-based authentication test as done in v1 (patch#11)

v3 (Aug 31, 2021)
* rebased on v2021.10-rc3
* remove pytest-related patches
* add function descriptions in mkeficapsule.c
* correct format specifiers in printf()
* let main() return 0 or -1 only
* update doc/develop/uefi/uefi.rst for syntax change of mkeficapsule

v2 (July 28, 2021)
* rebased on v2021.10-rc*
* removed dependency on target's configuration
* removed fdtsig.sh and others
* add man page
* update the UEFI document
* add dedicate defconfig for testing on sandbox
* add gitlab CI support
* add "--guid" option to mkeficapsule
  (yet rather RFC)

Initial release (May 12, 2021)
* based on v2021.07-rc2

AKASHI Takahiro (12):
  tools: mkeficapsule: rework the code a little bit
  tools: build mkeficapsule with tools-only_defconfig
  tools: mkeficapsule: add firmwware image signing
  tools: mkeficapsule: add man page
  doc: update UEFI document for usage of mkeficapsule
  test/py: efi_capsule: add image authentication test
  tools: mkeficapsule: allow for specifying GUID explicitly
  test/py: efi_capsule: align with the syntax change of mkeficapsule
  test/py: efi_capsule: add a test for "--guid" option
  test/py: efi_capsule: check the results in case of
    CAPSULE_AUTHENTICATE
  (RFC) tools: add fdtsig.sh
  (RFC) efi_loader, dts: add public keys for capsules to device tree

 MAINTAINERS                                   |   2 +
 configs/tools-only_defconfig                  |   1 +
 doc/develop/uefi/uefi.rst                     | 143 ++--
 doc/mkeficapsule.1                            | 107 +++
 dts/Makefile                                  |  23 +-
 lib/efi_loader/Kconfig                        |   7 +
 .../py/tests/test_efi_capsule/capsule_defs.py |   5 +
 test/py/tests/test_efi_capsule/conftest.py    |  59 +-
 test/py/tests/test_efi_capsule/signature.dts  |  10 +
 .../test_efi_capsule/test_capsule_firmware.py |  91 ++-
 .../test_capsule_firmware_signed.py           | 254 +++++++
 tools/Kconfig                                 |   8 +
 tools/Makefile                                |   8 +-
 tools/eficapsule.h                            | 115 +++
 tools/fdtsig.sh                               |  40 ++
 tools/mkeficapsule.c                          | 680 +++++++++++++++---
 16 files changed, 1360 insertions(+), 193 deletions(-)
 create mode 100644 doc/mkeficapsule.1
 create mode 100644 test/py/tests/test_efi_capsule/signature.dts
 create mode 100644 test/py/tests/test_efi_capsule/test_capsule_firmware_signed.py
 create mode 100644 tools/eficapsule.h
 create mode 100755 tools/fdtsig.sh

-- 
2.33.0


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2022-01-17  8:11 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-20  5:02 [PATCH v8 00/12] efi_loader: capsule: improve capsule authentication support AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 01/12] tools: mkeficapsule: rework the code a little bit AKASHI Takahiro
2022-01-01 21:35   ` Heinrich Schuchardt
2022-01-06  9:01     ` AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 02/12] tools: build mkeficapsule with tools-only_defconfig AKASHI Takahiro
2022-01-01 21:42   ` Heinrich Schuchardt
2022-01-06  9:20     ` AKASHI Takahiro
2022-01-12 20:03   ` Simon Glass
2021-12-20  5:02 ` [PATCH v8 03/12] tools: mkeficapsule: add firmwware image signing AKASHI Takahiro
2022-01-01 21:50   ` Heinrich Schuchardt
2022-01-17  8:11     ` AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 04/12] tools: mkeficapsule: add man page AKASHI Takahiro
2022-01-01 22:02   ` Heinrich Schuchardt
2022-01-06 10:25     ` AKASHI Takahiro
2022-01-06 19:26       ` Heinrich Schuchardt
2022-01-07  2:31         ` AKASHI Takahiro
2022-01-09 22:40           ` Heinrich Schuchardt
2021-12-20  5:02 ` [PATCH v8 05/12] doc: update UEFI document for usage of mkeficapsule AKASHI Takahiro
2022-01-01 22:09   ` Heinrich Schuchardt
2022-01-07  2:20     ` AKASHI Takahiro
2022-01-09 22:36       ` Heinrich Schuchardt
2021-12-20  5:02 ` [PATCH v8 06/12] test/py: efi_capsule: add image authentication test AKASHI Takahiro
2022-01-01 22:18   ` Heinrich Schuchardt
2022-01-17  2:03     ` AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 07/12] tools: mkeficapsule: allow for specifying GUID explicitly AKASHI Takahiro
2022-01-01 22:42   ` Heinrich Schuchardt
2022-01-17  2:14     ` AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 08/12] test/py: efi_capsule: align with the syntax change of mkeficapsule AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 09/12] test/py: efi_capsule: add a test for "--guid" option AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 10/12] test/py: efi_capsule: check the results in case of CAPSULE_AUTHENTICATE AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 11/12] (RFC) tools: add fdtsig.sh AKASHI Takahiro
2021-12-20  5:02 ` [PATCH v8 12/12] (RFC) efi_loader, dts: add public keys for capsules to device tree AKASHI Takahiro
2022-01-01 22:53   ` Heinrich Schuchardt
2022-01-12 20:03     ` Simon Glass
2022-01-17  1:42       ` AKASHI Takahiro

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.