From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [PATCH v2 1/4] efi_loader: capsule: Remove the check for capsule_authentication_enabled environment variable
Date: Fri, 7 May 2021 17:42:54 +0900 [thread overview]
Message-ID: <20210507084254.GB32968@laputa> (raw)
In-Reply-To: <20210412150526.29822-2-sughosh.ganu@linaro.org>
On Mon, Apr 12, 2021 at 08:35:23PM +0530, Sughosh Ganu wrote:
> The current capsule authentication code checks if the environment
> variable capsule_authentication_enabled is set, for authenticating the
> capsule. This is in addition to the check for the config symbol
> CONFIG_EFI_CAPSULE_AUTHENTICATE. Remove the check for the environment
> variable. The capsule will now be authenticated if the config symbol
> is set.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> ---
>
> Changes since V1:
> * As pointed out by Heinrich in the review, remove the extra check of
> the env variable 'capsule_authentication_enabled'for authenticating
> the capsule. The capsule authentication will now be done based on
> whether the corresponding config symbol is enabled.
>
> board/emulation/common/qemu_capsule.c | 6 ------
> lib/efi_loader/efi_firmware.c | 5 ++---
> 2 files changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/board/emulation/common/qemu_capsule.c b/board/emulation/common/qemu_capsule.c
> index 5cb461d52b..6b8a87022a 100644
> --- a/board/emulation/common/qemu_capsule.c
> +++ b/board/emulation/common/qemu_capsule.c
> @@ -41,9 +41,3 @@ int efi_get_public_key_data(void **pkey, efi_uintn_t *pkey_len)
>
> return 0;
> }
> -
> -bool efi_capsule_auth_enabled(void)
> -{
> - return env_get("capsule_authentication_enabled") != NULL ?
> - true : false;
> -}
> diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
> index 7a3cca2793..a1b88dbfc2 100644
> --- a/lib/efi_loader/efi_firmware.c
> +++ b/lib/efi_loader/efi_firmware.c
> @@ -190,7 +190,7 @@ static efi_status_t efi_get_dfu_info(
> IMAGE_ATTRIBUTE_IMAGE_UPDATABLE;
>
> /* Check if the capsule authentication is enabled */
> - if (env_get("capsule_authentication_enabled"))
> + if (IS_ENABLED(CONFIG_EFI_CAPSULE_AUTHENTICATE))
> image_info[0].attributes_setting |=
> IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED;
>
> @@ -421,8 +421,7 @@ efi_status_t EFIAPI efi_firmware_raw_set_image(
> return EFI_EXIT(EFI_INVALID_PARAMETER);
>
> /* Authenticate the capsule if authentication enabled */
> - if (IS_ENABLED(CONFIG_EFI_CAPSULE_AUTHENTICATE) &&
> - env_get("capsule_authentication_enabled")) {
> + if (IS_ENABLED(CONFIG_EFI_CAPSULE_AUTHENTICATE)) {
This change is not enough;
1. When a *signed* capsule file is applied on U-Boot with
EFI_CAPSULE_AUTHENTICATE disabled, the "authenticode" data
must be excluded from the data to write.
In other words, the offset and the size in a capsule file,
image & image_size, must also be updated before writing even
if the authentication is not performed.
Otherwise, wrong data will be stored.
2. UEFI specification requires that the authentication must be
performed only if IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED is
set on the image (image type or ESRT?).
We must always check with the attribute.
-Takahiro Akashi
> capsule_payload = NULL;
> capsule_payload_size = 0;
> status = efi_capsule_authenticate(image, image_size,
> --
> 2.17.1
>
next prev parent reply other threads:[~2021-05-07 8:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-12 15:05 [PATCH v2 0/4] Add support for embedding public key in platform's dtb Sughosh Ganu
2021-04-12 15:05 ` [PATCH v2 1/4] efi_loader: capsule: Remove the check for capsule_authentication_enabled environment variable Sughosh Ganu
2021-04-25 7:15 ` Heinrich Schuchardt
2021-05-05 20:23 ` Heinrich Schuchardt
2021-05-07 8:42 ` AKASHI Takahiro [this message]
2021-04-12 15:05 ` [PATCH v2 2/4] efi_loader: Kconfig: Add symbols for embedding the public key into the platform's dtb Sughosh Ganu
2021-04-25 7:24 ` Heinrich Schuchardt
2021-04-28 4:55 ` AKASHI Takahiro
2021-04-28 5:01 ` AKASHI Takahiro
2021-05-10 6:45 ` AKASHI Takahiro
2021-04-12 15:05 ` [PATCH v2 3/4] efi_capsule: Add a function to get the public key needed for capsule authentication Sughosh Ganu
2021-04-14 19:37 ` Simon Glass
2021-04-15 10:25 ` Sughosh Ganu
2021-04-24 4:47 ` Heinrich Schuchardt
2021-05-11 1:14 ` AKASHI Takahiro
2021-04-28 5:27 ` AKASHI Takahiro
2021-04-12 15:05 ` [PATCH v2 4/4] Makefile: Add provision for embedding public key in platform's dtb Sughosh Ganu
2021-04-28 5:39 ` AKASHI Takahiro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210507084254.GB32968@laputa \
--to=takahiro.akashi@linaro.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox