All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Vitor Soares" <ivitro@gmail.com>,
	"James Bottomley" <James.Bottomley@HansenPartnership.com>,
	<linux-integrity@vger.kernel.org>
Cc: <keyrings@vger.kernel.org>, "Peter Huewe" <peterhuewe@gmx.de>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Mimi Zohar" <zohar@linux.ibm.com>,
	"David Howells" <dhowells@redhat.com>,
	"Paul Moore" <paul@paul-moore.com>,
	"James Morris" <jmorris@namei.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	<linux-kernel@vger.kernel.org>,
	<linux-security-module@vger.kernel.org>
Subject: Re: [PATCH 1/3] tpm: Disable TCG_TPM2_HMAC by default
Date: Mon, 27 May 2024 17:51:58 +0300	[thread overview]
Message-ID: <D1KIFPNBNGKH.IJKFRXH8WINU@kernel.org> (raw)
In-Reply-To: <3e4bbd0f0fe9f57fd7555a3775e8d71031c0d6c5.camel@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1717 bytes --]

On Thu May 23, 2024 at 10:59 AM EEST, Vitor Soares wrote:
> On Wed, 2024-05-22 at 19:11 +0300, Jarkko Sakkinen wrote:
> > On Wed May 22, 2024 at 5:58 PM EEST, Vitor Soares wrote:
> > > I did run with ftrace, but need some more time to go through it.
> > > 
> > > Here the step I did:
> > > kernel config:
> > >   CONFIG_FUNCTION_TRACER
> > >   CONFIG_FUNCTION_GRAPH_TRACER
> > > 
> > > ftrace:
> > >   # set filters
> > >   echo tpm* > set_ftrace_filter
> > > 
> > >   # set tracer
> > >   echo function_graph > current_tracer
> > > 
> > >   # take the sample
> > >   echo 1 > tracing_on; time modprobe tpm_tis_spi; echo 0 > tracing_on
> > > 
> > > regards,
> > > Vitor Soares
> > 
> > I'm now compiling distro kernel (OpenSUSE) for NUC7 with v6.10 contents.
> > 
> > After I have that setup, I'll develop a perf test either with perf or
> > bpftrace. I'll come back with the possible CONFIG_* that should be in
> > place in your kernel. Might take up until next week as I have some
> > conference stuff to prepare but I try to have stuff ready early next
> > week.
> > 
> > No need to rush with this as long as possible patches go to rc2 or rc3.
> > Let's do a proper analysis instead.
> > 
> > In the meantime you could check if you get perf and/or bpftrace to 
> > your image that use to boot up your device. Preferably both but
> > please inform about this.
> > 
>
> I already have perf running, for the bpftrace I might not be able to help.

The interesting function to look at with/without hmac is probably
tpm2_get_random().

I attached a patch that removes hmac shenigans out of tpm2_get_random()
for the sake of proper comparative testing.

BR, Jarkko

[-- Attachment #2: 0001-fixup.patch --]
[-- Type: text/x-patch, Size: 1663 bytes --]

From 91951ad86ed624416a15edf4f657ab553c84c5d1 Mon Sep 17 00:00:00 2001
From: Jarkko Sakkinen <jarkko@kernel.org>
Date: Mon, 27 May 2024 17:50:54 +0300
Subject: [PATCH] fixup

Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
---
 drivers/char/tpm/tpm2-cmd.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 1e856259219e..e1013762741a 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -294,28 +294,17 @@ int tpm2_get_random(struct tpm_chip *chip, u8 *dest, size_t max)
 	if (!num_bytes || max > TPM_MAX_RNG_DATA)
 		return -EINVAL;
 
-	err = tpm2_start_auth_session(chip);
-	if (err)
-		return err;
-
 	err = tpm_buf_init(&buf, 0, 0);
-	if (err) {
-		tpm2_end_auth_session(chip);
+	if (err)
 		return err;
-	}
 
 	do {
 		tpm_buf_reset(&buf, TPM2_ST_SESSIONS, TPM2_CC_GET_RANDOM);
-		tpm_buf_append_hmac_session_opt(chip, &buf, TPM2_SA_ENCRYPT
-						| TPM2_SA_CONTINUE_SESSION,
-						NULL, 0);
 		tpm_buf_append_u16(&buf, num_bytes);
-		tpm_buf_fill_hmac_session(chip, &buf);
 		err = tpm_transmit_cmd(chip, &buf,
 				       offsetof(struct tpm2_get_random_out,
 						buffer),
 				       "attempting get random");
-		err = tpm_buf_check_hmac_response(chip, &buf, err);
 		if (err) {
 			if (err > 0)
 				err = -EIO;
@@ -345,12 +334,10 @@ int tpm2_get_random(struct tpm_chip *chip, u8 *dest, size_t max)
 	} while (retries-- && total < max);
 
 	tpm_buf_destroy(&buf);
-	tpm2_end_auth_session(chip);
-
 	return total ? total : -EIO;
+
 out:
 	tpm_buf_destroy(&buf);
-	tpm2_end_auth_session(chip);
 	return err;
 }
 
-- 
2.45.1


  reply	other threads:[~2024-05-27 14:52 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-19 23:51 [PATCH 0/3] KEYS: trusted: bug fixes Jarkko Sakkinen
2024-05-19 23:51 ` [PATCH 1/3] tpm: Disable TCG_TPM2_HMAC by default Jarkko Sakkinen
2024-05-21  7:03   ` Vitor Soares
2024-05-21  7:10     ` Jarkko Sakkinen
2024-05-21 12:33       ` James Bottomley
2024-05-21 13:00         ` Jarkko Sakkinen
2024-05-21 13:11           ` Jarkko Sakkinen
2024-05-21 13:16             ` Jarkko Sakkinen
2024-05-22  8:18         ` Vitor Soares
2024-05-22 12:01           ` Jarkko Sakkinen
2024-05-22 13:17             ` Vitor Soares
2024-05-22 13:31               ` Vitor Soares
2024-05-22 14:11               ` Jarkko Sakkinen
2024-05-22 14:20                 ` James Bottomley
2024-05-22 14:39                   ` Jarkko Sakkinen
2024-05-22 13:35           ` James Bottomley
2024-05-22 14:13             ` Jarkko Sakkinen
2024-05-22 14:58               ` Vitor Soares
2024-05-22 16:11                 ` Jarkko Sakkinen
2024-05-23  7:59                   ` Vitor Soares
2024-05-27 14:51                     ` Jarkko Sakkinen [this message]
2024-05-27 15:01                       ` Jarkko Sakkinen
2024-05-27 15:12                         ` Jarkko Sakkinen
2024-05-27 15:34                           ` Jarkko Sakkinen
2024-05-27 17:57                             ` James Bottomley
2024-05-27 19:53                               ` Jarkko Sakkinen
2024-05-27 20:01                                 ` Jarkko Sakkinen
2024-05-27 21:36                                 ` James Bottomley
2024-05-27 23:17                                   ` Jarkko Sakkinen
2024-05-27 23:44                                     ` James Bottomley
2024-05-28  1:04                                       ` Jarkko Sakkinen
2024-05-28  1:07                                         ` Jarkko Sakkinen
2024-05-19 23:51 ` [PATCH 2/3] KEYS: trusted: Fix memory leak in tpm2_key_encode() Jarkko Sakkinen
2024-05-19 23:51 ` [PATCH 3/3] KEYS: trusted: Do not use WARN when encode fails 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=D1KIFPNBNGKH.IJKFRXH8WINU@kernel.org \
    --to=jarkko@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=dhowells@redhat.com \
    --cc=ivitro@gmail.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=serge@hallyn.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 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.