[PATCH v4 3/3] integrity/platform_certs: Allow loading of keys in the static key management mode
R Nageswara Sastry
rnsastry at linux.ibm.com
Fri Jul 4 18:43:08 AEST 2025
On 11/06/25 2:49 AM, Srish Srinivasan wrote:
> On PLPKS enabled PowerVM LPAR, there is no provision to load signed
> third-party kernel modules when the key management mode is static. This
> is because keys from secure boot secvars are only loaded when the key
> management mode is dynamic.
>
> Allow loading of the trustedcadb and moduledb keys even in the static
> key management mode, where the secvar format string takes the form
> "ibm,plpks-sb-v0".
>
> Signed-off-by: Srish Srinivasan <ssrish at linux.ibm.com>
> Reviewed-by: Mimi Zohar <zohar at linux.ibm.com>
> Reviewed-by: Stefan Berger <stefanb at linux.ibm.com>
> Reviewed-by: Nayna Jain <nayna at linux.ibm.com>
> Reviewed-by: Andrew Donnellan <ajd at linux.ibm.com>
Tested-by: R Nageswara Sastry <rnsastry at linux.ibm.com>
With the following scenarios:
1. With and with out secure boot by enabling keystore_signed_updates and
keystore_kbytes
2. With Dynamic Key Guest Secure Boot
3. With Static Key Guest Secure Boot
> ---
> security/integrity/platform_certs/load_powerpc.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/security/integrity/platform_certs/load_powerpc.c b/security/integrity/platform_certs/load_powerpc.c
> index c85febca3343..714c961a00f5 100644
> --- a/security/integrity/platform_certs/load_powerpc.c
> +++ b/security/integrity/platform_certs/load_powerpc.c
> @@ -75,12 +75,13 @@ static int __init load_powerpc_certs(void)
> return -ENODEV;
>
> // Check for known secure boot implementations from OPAL or PLPKS
> - if (strcmp("ibm,edk2-compat-v1", buf) && strcmp("ibm,plpks-sb-v1", buf)) {
> + if (strcmp("ibm,edk2-compat-v1", buf) && strcmp("ibm,plpks-sb-v1", buf) &&
> + strcmp("ibm,plpks-sb-v0", buf)) {
> pr_err("Unsupported secvar implementation \"%s\", not loading certs\n", buf);
> return -ENODEV;
> }
>
> - if (strcmp("ibm,plpks-sb-v1", buf) == 0)
> + if (strcmp("ibm,plpks-sb-v1", buf) == 0 || strcmp("ibm,plpks-sb-v0", buf) == 0)
> /* PLPKS authenticated variables ESL data is prefixed with 8 bytes of timestamp */
> offset = 8;
>
--
Thanks and Regards
R.Nageswara Sastry
More information about the Linuxppc-dev
mailing list