From: Jarkko Sakkinen <jarkko@kernel.org>
To: ross.philipson@oracle.com
Cc: linux-integrity@vger.kernel.org, Peter Huewe <peterhuewe@gmx.de>,
Jason Gunthorpe <jgg@ziepe.ca>,
David Howells <dhowells@redhat.com>,
Paul Moore <paul@paul-moore.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
open list <linux-kernel@vger.kernel.org>,
"open list:KEYS/KEYRINGS" <keyrings@vger.kernel.org>,
"open list:SECURITY SUBSYSTEM"
<linux-security-module@vger.kernel.org>
Subject: Re: [PATCH v6 05/11] tpm2-sessions: Remove AUTH_MAX_NAMES
Date: Wed, 14 Jan 2026 17:55:43 +0200 [thread overview]
Message-ID: <aWe8fwkw3tN9mFO9@kernel.org> (raw)
In-Reply-To: <b19c064b-9dfe-45d6-b23d-1bfaca6afb02@oracle.com>
On Mon, Jan 12, 2026 at 04:22:24PM -0800, ross.philipson@oracle.com wrote:
> On 12/14/25 7:38 AM, Jarkko Sakkinen wrote:
> > In all of the call sites only one session is ever append. Thus, reduce
> > AUTH_MAX_NAMES, which leads into removing constant completely.
> >
> > Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> > ---
> > drivers/char/tpm/tpm2-sessions.c | 31 +++++++++++--------------------
> > 1 file changed, 11 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm2-sessions.c b/drivers/char/tpm/tpm2-sessions.c
> > index 3bc3c31cf512..37570dc088cf 100644
> > --- a/drivers/char/tpm/tpm2-sessions.c
> > +++ b/drivers/char/tpm/tpm2-sessions.c
> > @@ -72,9 +72,6 @@
> > #include <crypto/sha2.h>
> > #include <crypto/utils.h>
> > -/* maximum number of names the TPM must remember for authorization */
> > -#define AUTH_MAX_NAMES 3
> > -
> > #define AES_KEY_BYTES AES_KEYSIZE_128
> > #define AES_KEY_BITS (AES_KEY_BYTES*8)
> > @@ -136,8 +133,8 @@ struct tpm2_auth {
> > * handle, but they are part of the session by name, which
> > * we must compute and remember
> > */
> > - u8 name[AUTH_MAX_NAMES][TPM2_MAX_NAME_SIZE];
> > - u16 name_size_tbl[AUTH_MAX_NAMES];
> > + u8 name[TPM2_MAX_NAME_SIZE];
> > + u16 name_size;
> > };
> > #ifdef CONFIG_TCG_TPM2_HMAC
> > @@ -261,11 +258,14 @@ EXPORT_SYMBOL_GPL(tpm2_read_public);
> > int tpm_buf_append_name(struct tpm_chip *chip, struct tpm_buf *buf,
> > u32 handle, u8 *name, u16 name_size)
> > {
> > -#ifdef CONFIG_TCG_TPM2_HMAC
>
> Removing CONFIG_TCG_TPM2_HMAC here causes a warning during compile since the
> auth variable is only used in the CONFIG_TCG_TPM2_HMAC block below.
Thanks for the remark, I'll look into this.
I should have next week bandwidth to look into your patch set too (still
rebooting from the holidays)
>
> Ross
>
> > struct tpm2_auth *auth;
> > - int slot;
> > int ret;
> > -#endif
> > +
> > + if (tpm_buf_length(buf) != TPM_HEADER_SIZE) {
> > + dev_err(&chip->dev, "too many handles\n");
> > + ret = -EIO;
> > + goto err;
> > + }
> > if (!tpm2_chip_auth(chip)) {
> > tpm_buf_append_handle(chip, buf, handle);
> > @@ -273,12 +273,6 @@ int tpm_buf_append_name(struct tpm_chip *chip, struct tpm_buf *buf,
> > }
> > #ifdef CONFIG_TCG_TPM2_HMAC
> > - slot = (tpm_buf_length(buf) - TPM_HEADER_SIZE) / 4;
> > - if (slot >= AUTH_MAX_NAMES) {
> > - dev_err(&chip->dev, "too many handles\n");
> > - ret = -EIO;
> > - goto err;
> > - }
> > auth = chip->auth;
> > if (auth->session != tpm_buf_length(buf)) {
> > dev_err(&chip->dev, "session state malformed");
> > @@ -287,16 +281,14 @@ int tpm_buf_append_name(struct tpm_chip *chip, struct tpm_buf *buf,
> > }
> > tpm_buf_append_u32(buf, handle);
> > auth->session += 4;
> > - memcpy(auth->name[slot], name, name_size);
> > - auth->name_size_tbl[slot] = name_size;
> > + memcpy(auth->name, name, name_size);
> > + auth->name_size = name_size;
> > #endif
> > return 0;
> > -#ifdef CONFIG_TCG_TPM2_HMAC
> > err:
> > tpm2_end_auth_session(chip);
> > return ret;
> > -#endif
> > }
> > EXPORT_SYMBOL_GPL(tpm_buf_append_name);
> > @@ -665,8 +657,7 @@ int tpm_buf_fill_hmac_session(struct tpm_chip *chip, struct tpm_buf *buf)
> > /* ordinal is already BE */
> > sha256_update(&sctx, (u8 *)&head->ordinal, sizeof(head->ordinal));
> > /* add the handle names */
> > - for (i = 0; i < handles; i++)
> > - sha256_update(&sctx, auth->name[i], auth->name_size_tbl[i]);
> > + sha256_update(&sctx, auth->name, auth->name_size);
> > if (offset_s != tpm_buf_length(buf))
> > sha256_update(&sctx, &buf->data[offset_s],
> > tpm_buf_length(buf) - offset_s);
>
BR, Jarkko
next prev parent reply other threads:[~2026-01-14 15:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-14 15:37 [PATCH v6 00/11] Streamline TPM2 HMAC sessions Jarkko Sakkinen
2025-12-14 15:37 ` [PATCH v6 01/11] tpm2-sessions: Define TPM2_NAME_MAX_SIZE Jarkko Sakkinen
2025-12-14 15:37 ` [PATCH v6 02/11] KEYS: trusted: Open code tpm2_buf_append() Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 03/11] KEYS: trusted: Remove dead branch from tpm2_unseal_cmd Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 04/11] KEYS: trusted: Re-orchestrate tpm2_read_public() calls Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 05/11] tpm2-sessions: Remove AUTH_MAX_NAMES Jarkko Sakkinen
2025-12-22 10:45 ` kernel test robot
2026-01-13 0:22 ` ross.philipson
2026-01-14 15:55 ` Jarkko Sakkinen [this message]
2025-12-14 15:38 ` [PATCH v6 06/11] tpm: Orchestrate TPM commands in tpm_get_random() Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 07/11] tpm: Send only one at most TPM2_GetRandom command Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 08/11] tpm: In tpm_get_random() replace 'retries' with a zero check Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 09/11] tpm-buf: Merge TPM_BUF_BOUNDARY_ERROR and TPM_BUF_OVERFLOW Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 10/11] tpm-buf: Implement managed allocations Jarkko Sakkinen
2025-12-14 15:38 ` [PATCH v6 11/11] tpm-buf: Remove tpm_buf_append_handle Jarkko Sakkinen
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=aWe8fwkw3tN9mFO9@kernel.org \
--to=jarkko@kernel.org \
--cc=dhowells@redhat.com \
--cc=jgg@ziepe.ca \
--cc=jmorris@namei.org \
--cc=keyrings@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=peterhuewe@gmx.de \
--cc=ross.philipson@oracle.com \
--cc=serge@hallyn.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 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.