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.
next prev parent 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