Linux Security Modules development
 help / color / mirror / Atom feed
From: "Singh, Jashandeep" <jashandeep.singh@hpe.com>
To: Roberto Sassu <roberto.sassu@huaweicloud.com>
Cc: Mimi Zohar <zohar@linux.ibm.com>,
	Roberto Sassu <roberto.sassu@huawei.com>,
	Dmitry Kasatkin <dmitry.kasatkin@gmail.com>,
	Eric Snowberg <eric.snowberg@oracle.com>,
	"linux-integrity@vger.kernel.org"
	<linux-integrity@vger.kernel.org>,
	"linux-security-module@vger.kernel.org"
	<linux-security-module@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Jashandeep Singh <jdsw@juniper.net>
Subject: Re: [PATCH] ima: select the SHA384 PCR bank for the boot aggregate
Date: Thu, 27 Aug 2026 14:46:14 +0000	[thread overview]
Message-ID: <037C125E-9343-464E-A1AF-8078D3B7BA38@hpe.com> (raw)
In-Reply-To: <92bf67810c6ed6bc4764f330d77c3ac2279781eb.camel@huaweicloud.com>

Mimi, the patch covers the case where the TPM is provisioned with a single PCR
bank, SHA-384, while the default IMA hash is configured as SHA-256.

The SHA-384 bank is present in nr_allocated_banks, but it matches neither the
configured default (SHA-256) nor the current hardcoded fallbacks (SHA-256, then
SHA-1). As a result, bank_idx remains -1, and we hit "No suitable TPM algorithm
for boot aggregate", leaving the boot aggregate zeroed.

Roberto, it is not strictly true that the boot aggregate algorithm is always the
same as the default IMA hash algorithm.

When the bank corresponding to the default hash is not allocated, the existing
SHA-256/SHA-1 fallback logic selects a different bank than the default.
Therefore, the boot aggregate can already use a different algorithm from the
configured IMA hash.

My patch adds SHA-384 as one more fallback for the case where SHA-384 is the
only allocated bank. This allows users with such a configuration to have the
boot aggregate computed, without requiring them to change their default IMA
hash to SHA-384.

Thanks,
Jashan

> On 27 Aug 2026, at 6:47 PM, Roberto Sassu <roberto.sassu@huaweicloud.com> wrote:
> 
> On Wed, 2026-08-26 at 19:14 -0400, Mimi Zohar wrote:
>> Hi Jashan,
>> 
>> Mail to the kernel mailing lists are in plain text. Please refer to
>> https://docs.kernel.org/process/submitting-patches.html#no-mime-no-links-no-compression-no-attachments-just-plain-text 
>> 
>> On Wed, 2026-08-26 at 22:35 +0000, Singh, Jashandeep wrote:
>>> Thanks Mimi.
>>> 
>>> 
>>> Agreed that all allocated banks are extended via tpm_pcr_extend() - but that's
>>> the PCR-extend (write) path. The failure is in ima_calc_boot_aggregate(), which
>>> reads PCRs 0-9 from a *single* selected bank.
>>> 
>>> 
>>> The issue is that a TPM can be provisioned with *only* the SHA-384 bank enabled,
>>> while the default IMA hash algorithm is SHA-256. In this configuration, the
>>> current selection logic only matches the configured IMA default, then SHA-256,
>>> and then SHA-1 - it never considers SHA-384.
>> 
>> It's walking the list of allocated TPM banks and, if allocated, sets bank_idx.
>> 
>>        for (i = 0; i < ima_tpm_chip->nr_allocated_banks; i++) {
>>                crypto_id = ima_tpm_chip->allocated_banks[i].crypto_id;
>>                if (crypto_id == hash->algo) {
>>                        bank_idx = i;
>>                        break;
>>                }
>> 
>> The question is why isn't the sha384 bank found in the list of
>> nr_allocated_banks?
> 
> The boot aggregate algorithm is the same as the default hash algorithm.
> 
> Please try ima_hash=sha384.
> 
> Thanks
> 
> Roberto
> 
>> Mimi
>> 
>>> 
>>> Adding a SHA-384 match allows the boot aggregate to be computed correctly
>>> (sha384:...) instead of returning 0 and logging "No suitable TPM algorithm for
>>> boot aggregate". The fact that the SHA-384 bank can be selected and the boot
>>> aggregate computed also confirms that the SHA-384 bank is recognized and
>>> allocated, rather than being missing.



  reply	other threads:[~2026-08-27 14:46 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-26 19:11 [PATCH] ima: select the SHA384 PCR bank for the boot aggregate Singh, Jashandeep
2026-08-26 21:20 ` Mimi Zohar
     [not found]   ` <PH7PR84MB16549E7A6AC842D358493B0F96AE2@PH7PR84MB1654.NAMPRD84.PROD.OUTLOOK.COM>
2026-08-26 23:14     ` Mimi Zohar
2026-08-27 13:17       ` Roberto Sassu
2026-08-27 14:46         ` Singh, Jashandeep [this message]
2026-08-27 14:56           ` Roberto Sassu
2026-08-27 15:49             ` Mimi Zohar
2026-08-27 20:03               ` Singh, Jashandeep

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=037C125E-9343-464E-A1AF-8078D3B7BA38@hpe.com \
    --to=jashandeep.singh@hpe.com \
    --cc=dmitry.kasatkin@gmail.com \
    --cc=eric.snowberg@oracle.com \
    --cc=jdsw@juniper.net \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=roberto.sassu@huawei.com \
    --cc=roberto.sassu@huaweicloud.com \
    --cc=zohar@linux.ibm.com \
    /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