public inbox for linux-integrity@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Stefan Berger" <stefanb@linux.ibm.com>,
	"James Bottomley" <James.Bottomley@HansenPartnership.com>,
	<linux-integrity@vger.kernel.org>
Cc: <keyrings@vger.kernel.org>, "Ard Biesheuvel" <ardb@kernel.org>
Subject: Re: [PATCH v4 06/13] tpm: add buffer function to point to returned parameters
Date: Wed, 03 May 2023 14:31:38 +0300	[thread overview]
Message-ID: <CSCLXUWIMPCG.D6K372YA1HMK@suppilovahvero> (raw)
In-Reply-To: <d5c86f6f-6854-c649-d2a9-8090cc7d74cd@linux.ibm.com>

On Tue May 2, 2023 at 5:09 PM EEST, Stefan Berger wrote:
>
>
> On 4/3/23 17:39, James Bottomley wrote:
> > Introducing encryption sessions changes where the return parameters

s/Introducing/Introduce/

Commit messages should always be in the imperative form.

> > are located in the buffer because if a return session is present
> > they're 4 bytes beyond the header with those 4 bytes showing the
> > parameter length.  If there is no return session, then they're in the
> > usual place immediately after the header.  The tpm_buf_parameters()
> > encapsulates this calculation and should be used everywhere
> > &buf.data[TPM_HEADER_SIZE] is used now.
> > 
> > Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
> > 
> > ---
> > v4: add kdoc
> > ---
> >   drivers/char/tpm/tpm-buf.c | 27 +++++++++++++++++++++++++++
> >   include/linux/tpm.h        |  2 ++
> >   2 files changed, 29 insertions(+)
> > 
> > diff --git a/drivers/char/tpm/tpm-buf.c b/drivers/char/tpm/tpm-buf.c
> > index da0f6e725c3f..d107321bcdff 100644
> > --- a/drivers/char/tpm/tpm-buf.c
> > +++ b/drivers/char/tpm/tpm-buf.c
> > @@ -277,3 +277,30 @@ u32 tpm_get_inc_u32(const u8 **ptr)
> >   	return val;
> >   }
> >   EXPORT_SYMBOL_GPL(tpm_get_inc_u32);
> > +
> > +static u16 tpm_buf_tag(struct tpm_buf *buf)
> > +{
> > +	struct tpm_header *head = (struct tpm_header *)buf->data;
> > +
> > +	return be16_to_cpu(head->tag);
> > +}
> > +
> > +/**
> > + * tpm_buf_parameters - return the parameters area of the tpm_buf
>
> in a TPM response
>
>
> > + * @buf: tpm_buf to use
> > + *
> > + * Where the parameters are located depends on the tag of a TPM
> > + * command. Evaluate this and return a pointer to the first byte of
> > + * the parameters area.
>
> I would also describe here what the non-obvious 4 bytes are that you are skipping over in case of TPM2_ST_SESSIONS.
>
> With this:
>
> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
>
> > + *
> > + * @return: pointer to parameters area
> > + */
> > +u8 *tpm_buf_parameters(struct tpm_buf *buf)
> > +{
> > +	int offset = TPM_HEADER_SIZE;
> > +
> > +	if (tpm_buf_tag(buf) == TPM2_ST_SESSIONS)
> > +		offset += 4;
> > +
> > +	return &buf->data[offset];
> > +}
> > diff --git a/include/linux/tpm.h b/include/linux/tpm.h
> > index 845eadfed715..d2fea2afd37c 100644
> > --- a/include/linux/tpm.h
> > +++ b/include/linux/tpm.h
> > @@ -340,6 +340,8 @@ u8 tpm_get_inc_u8(const u8 **ptr);
> >   u16 tpm_get_inc_u16(const u8 **ptr);
> >   u32 tpm_get_inc_u32(const u8 **ptr);
> >   
> > +u8 *tpm_buf_parameters(struct tpm_buf *buf);
> > +
> >   /*
> >    * Check if TPM device is in the firmware upgrade mode.
> >    */

BR, Jarkko

  reply	other threads:[~2023-05-03 11:31 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-03 21:39 [PATCH v4 00/13] add integrity and security to TPM2 transactions James Bottomley
2023-04-03 21:39 ` [PATCH v4 01/13] crypto: lib - implement library version of AES in CFB mode James Bottomley
2023-04-23  3:34   ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 02/13] tpm: move buffer handling from static inlines to real functions James Bottomley
2023-04-23  3:36   ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 03/13] tpm: add kernel doc to buffer handling functions James Bottomley
2023-04-23  3:40   ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 04/13] tpm: add buffer handling for TPM2B types James Bottomley
2023-04-23  4:12   ` Jarkko Sakkinen
2023-05-02 15:43   ` Stefan Berger
2023-05-03 11:29     ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 05/13] tpm: add cursor based buffer functions for response parsing James Bottomley
2023-04-23  4:14   ` Jarkko Sakkinen
2023-05-02 13:54   ` Stefan Berger
2023-08-22 11:15   ` Jarkko Sakkinen
2023-08-22 13:51     ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 06/13] tpm: add buffer function to point to returned parameters James Bottomley
2023-05-02 14:09   ` Stefan Berger
2023-05-03 11:31     ` Jarkko Sakkinen [this message]
2023-06-06  2:09       ` James Bottomley
2023-06-06 15:34         ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 07/13] tpm: export the context save and load commands James Bottomley
2023-05-02 14:12   ` Stefan Berger
2023-04-03 21:39 ` [PATCH v4 08/13] tpm: Add full HMAC and encrypt/decrypt session handling code James Bottomley
2023-04-04  1:49   ` kernel test robot
2023-04-23  5:29   ` Jarkko Sakkinen
2023-11-26  3:39   ` Jarkko Sakkinen
2023-11-26  3:45     ` Jarkko Sakkinen
2023-11-26 15:07       ` James Bottomley
2023-11-26 15:05     ` James Bottomley
2023-12-04  2:29       ` Jarkko Sakkinen
2023-12-04 12:35         ` James Bottomley
2023-12-04 13:43           ` Mimi Zohar
2023-12-04 13:53             ` James Bottomley
2023-12-04 13:59               ` Mimi Zohar
2023-12-04 14:02                 ` James Bottomley
2023-12-04 14:10                   ` Mimi Zohar
2023-12-04 14:23                     ` James Bottomley
2023-12-04 22:58             ` Jarkko Sakkinen
2023-12-04 22:46           ` Jarkko Sakkinen
2023-04-03 21:39 ` [PATCH v4 09/13] tpm: add hmac checks to tpm2_pcr_extend() James Bottomley
2023-04-23  5:32   ` Jarkko Sakkinen
2023-04-03 21:40 ` [PATCH v4 10/13] tpm: add session encryption protection to tpm2_get_random() James Bottomley
2023-04-03 21:40 ` [PATCH v4 11/13] KEYS: trusted: Add session encryption protection to the seal/unseal path James Bottomley
2023-04-03 21:40 ` [PATCH v4 12/13] tpm: add the null key name as a sysfs export James Bottomley
2023-04-23  5:38   ` Jarkko Sakkinen
2023-04-03 21:40 ` [PATCH v4 13/13] Documentation: add tpm-security.rst James Bottomley
2023-04-04 18:43 ` [PATCH v4 00/13] add integrity and security to TPM2 transactions William Roberts
2023-04-04 19:18   ` James Bottomley
2023-04-04 19:42     ` William Roberts
2023-04-04 20:19       ` James Bottomley
2023-04-04 21:10         ` William Roberts
2023-04-04 21:33           ` James Bottomley
2023-04-04 21:44             ` William Roberts
2023-04-05 18:39 ` William Roberts
2023-04-05 19:41   ` James Bottomley
2023-04-07 14:40     ` William Roberts
2023-04-23  5:42 ` Jarkko Sakkinen
2023-12-04 18:56 ` Stefan Berger
2023-12-04 19:24   ` James Bottomley
2023-12-04 21:02     ` Stefan Berger
2023-12-05 13:50       ` James Bottomley

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=CSCLXUWIMPCG.D6K372YA1HMK@suppilovahvero \
    --to=jarkko@kernel.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=ardb@kernel.org \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=stefanb@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