All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Roberto Sassu <roberto.sassu@huawei.com>
Cc: Mimi Zohar <zohar@linux.ibm.com>,
	david.safford@ge.com, monty.wiseman@ge.com,
	matthewgarrett@google.com, linux-integrity@vger.kernel.org,
	linux-security-module@vger.kernel.org, keyrings@vger.kernel.org,
	linux-kernel@vger.kernel.org, silviu.vlasceanu@huawei.com
Subject: Re: [PATCH v9 6/6] tpm: pass an array of tpm_extend_digest structures to tpm_pcr_extend()
Date: Mon, 04 Feb 2019 12:07:46 +0000	[thread overview]
Message-ID: <20190204120746.GG26799@linux.intel.com> (raw)
In-Reply-To: <9f8a64d6-d566-1497-1d2b-465440cdfa80@huawei.com>

On Mon, Feb 04, 2019 at 10:14:38AM +0100, Roberto Sassu wrote:
> On 2/1/2019 8:15 PM, Mimi Zohar wrote:
> > Hi Roberto,
> > 
> > Sorry for the delayed review.  A few comments inline below, minor
> > suggestions.
> > 
> > > diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
> > > index cc12f3449a72..e6b2dcb0846a 100644
> > > --- a/security/integrity/ima/ima.h
> > > +++ b/security/integrity/ima/ima.h
> > > @@ -56,6 +56,7 @@ extern int ima_policy_flag;
> > >   extern int ima_hash_algo;
> > >   extern int ima_appraise;
> > >   extern struct tpm_chip *ima_tpm_chip;
> > > +extern struct tpm_digest *digests;
> > >   /* IMA event related data */
> > >   struct ima_event_data {
> > > diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c
> > > index 6bb42a9c5e47..296a965b11ef 100644
> > > --- a/security/integrity/ima/ima_init.c
> > > +++ b/security/integrity/ima/ima_init.c
> > > @@ -27,6 +27,7 @@
> > >   /* name for boot aggregate entry */
> > >   static const char boot_aggregate_name[] = "boot_aggregate";
> > >   struct tpm_chip *ima_tpm_chip;
> > > +struct tpm_digest *digests;
> > 
> > "digests" is used in the new ima_init_digests() and in
> > ima_pcr_extend().  It's nice that the initialization routines are
> > grouped together here in ima_init.c, but wouldn't it better to define
> > "digests" in ima_queued.c, where it is currently being used?
> >   "digests" could then be defined as static.
> 
> 'digests' and ima_init_digests() can be moved to ima_queue.c, but I have
> to add the definition of ima_init_digests() to ima.h. Should I do it?
> 
> 
> > >   /* Add the boot aggregate to the IMA measurement list and extend
> > >    * the PCR register.
> > > @@ -104,6 +105,24 @@ void __init ima_load_x509(void)
> > >   }
> > >   #endif
> > > +int __init ima_init_digests(void)
> > > +{
> > > +	int i;
> > > +
> > > +	if (!ima_tpm_chip)
> > > +		return 0;
> > > +
> > > +	digests = kcalloc(ima_tpm_chip->nr_allocated_banks, sizeof(*digests),
> > > +			  GFP_NOFS);
> > > +	if (!digests)
> > > +		return -ENOMEM;
> > > +
> > > +	for (i = 0; i < ima_tpm_chip->nr_allocated_banks; i++)
> > > +		digests[i].alg_id = ima_tpm_chip->allocated_banks[i].alg_id;
> > > +
> > > +	return 0;
> > > +}
> > > +
> > >   int __init ima_init(void)
> > >   {
> > >   	int rc;
> > > @@ -125,6 +144,9 @@ int __init ima_init(void)
> > >   	ima_load_kexec_buffer();
> > > +	rc = ima_init_digests();
> > 
> > Ok. Getting the tpm chip is at the beginning of this function.
> >   Deferring allocating "digests" to here, avoids having to free memory
> > on failure.
> > 
> > ima_load_kexec_buffer() restores prior measurements, but doesn't
> > extend the TPM.  For anyone reading the code, a short comment above
> > ima_load_kexec_buffer() would make sense.
> 
> Ok. Should I resend the last patch again with the fixes you suggested?

Send the full patch set. For me it is easier then to apply the series
rather than cherry-picking patches from random versions of the patch
set.

/Jarkko

WARNING: multiple messages have this Message-ID (diff)
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Roberto Sassu <roberto.sassu@huawei.com>
Cc: Mimi Zohar <zohar@linux.ibm.com>,
	david.safford@ge.com, monty.wiseman@ge.com,
	matthewgarrett@google.com, linux-integrity@vger.kernel.org,
	linux-security-module@vger.kernel.org, keyrings@vger.kernel.org,
	linux-kernel@vger.kernel.org, silviu.vlasceanu@huawei.com
Subject: Re: [PATCH v9 6/6] tpm: pass an array of tpm_extend_digest structures to tpm_pcr_extend()
Date: Mon, 4 Feb 2019 14:07:46 +0200	[thread overview]
Message-ID: <20190204120746.GG26799@linux.intel.com> (raw)
In-Reply-To: <9f8a64d6-d566-1497-1d2b-465440cdfa80@huawei.com>

On Mon, Feb 04, 2019 at 10:14:38AM +0100, Roberto Sassu wrote:
> On 2/1/2019 8:15 PM, Mimi Zohar wrote:
> > Hi Roberto,
> > 
> > Sorry for the delayed review.  A few comments inline below, minor
> > suggestions.
> > 
> > > diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
> > > index cc12f3449a72..e6b2dcb0846a 100644
> > > --- a/security/integrity/ima/ima.h
> > > +++ b/security/integrity/ima/ima.h
> > > @@ -56,6 +56,7 @@ extern int ima_policy_flag;
> > >   extern int ima_hash_algo;
> > >   extern int ima_appraise;
> > >   extern struct tpm_chip *ima_tpm_chip;
> > > +extern struct tpm_digest *digests;
> > >   /* IMA event related data */
> > >   struct ima_event_data {
> > > diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c
> > > index 6bb42a9c5e47..296a965b11ef 100644
> > > --- a/security/integrity/ima/ima_init.c
> > > +++ b/security/integrity/ima/ima_init.c
> > > @@ -27,6 +27,7 @@
> > >   /* name for boot aggregate entry */
> > >   static const char boot_aggregate_name[] = "boot_aggregate";
> > >   struct tpm_chip *ima_tpm_chip;
> > > +struct tpm_digest *digests;
> > 
> > "digests" is used in the new ima_init_digests() and in
> > ima_pcr_extend().  It's nice that the initialization routines are
> > grouped together here in ima_init.c, but wouldn't it better to define
> > "digests" in ima_queued.c, where it is currently being used?
> >   "digests" could then be defined as static.
> 
> 'digests' and ima_init_digests() can be moved to ima_queue.c, but I have
> to add the definition of ima_init_digests() to ima.h. Should I do it?
> 
> 
> > >   /* Add the boot aggregate to the IMA measurement list and extend
> > >    * the PCR register.
> > > @@ -104,6 +105,24 @@ void __init ima_load_x509(void)
> > >   }
> > >   #endif
> > > +int __init ima_init_digests(void)
> > > +{
> > > +	int i;
> > > +
> > > +	if (!ima_tpm_chip)
> > > +		return 0;
> > > +
> > > +	digests = kcalloc(ima_tpm_chip->nr_allocated_banks, sizeof(*digests),
> > > +			  GFP_NOFS);
> > > +	if (!digests)
> > > +		return -ENOMEM;
> > > +
> > > +	for (i = 0; i < ima_tpm_chip->nr_allocated_banks; i++)
> > > +		digests[i].alg_id = ima_tpm_chip->allocated_banks[i].alg_id;
> > > +
> > > +	return 0;
> > > +}
> > > +
> > >   int __init ima_init(void)
> > >   {
> > >   	int rc;
> > > @@ -125,6 +144,9 @@ int __init ima_init(void)
> > >   	ima_load_kexec_buffer();
> > > +	rc = ima_init_digests();
> > 
> > Ok. Getting the tpm chip is at the beginning of this function.
> >   Deferring allocating "digests" to here, avoids having to free memory
> > on failure.
> > 
> > ima_load_kexec_buffer() restores prior measurements, but doesn't
> > extend the TPM.  For anyone reading the code, a short comment above
> > ima_load_kexec_buffer() would make sense.
> 
> Ok. Should I resend the last patch again with the fixes you suggested?

Send the full patch set. For me it is easier then to apply the series
rather than cherry-picking patches from random versions of the patch
set.

/Jarkko

  reply	other threads:[~2019-02-04 12:07 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-01 10:06 [PATCH v9 0/6] tpm: retrieve digest size of unknown algorithms from TPM Roberto Sassu
2019-02-01 10:06 ` Roberto Sassu
2019-02-01 10:06 ` [PATCH v9 1/6] tpm: dynamically allocate the allocated_banks array Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 13:34   ` Jarkko Sakkinen
2019-02-01 13:34     ` Jarkko Sakkinen
2019-02-01 10:06 ` [PATCH v9 2/6] tpm: rename and export tpm2_digest and tpm2_algorithms Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 13:36   ` Jarkko Sakkinen
2019-02-01 13:36     ` Jarkko Sakkinen
2019-02-01 10:06 ` [PATCH v9 3/6] tpm: retrieve digest size of unknown algorithms with PCR read Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 10:06 ` [PATCH v9 4/6] tpm: move tpm_chip definition to include/linux/tpm.h Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 13:38   ` Jarkko Sakkinen
2019-02-01 13:38     ` Jarkko Sakkinen
2019-02-04  8:58   ` kbuild test robot
2019-02-04  8:58     ` kbuild test robot
2019-02-01 10:06 ` [PATCH v9 5/6] KEYS: trusted: explicitly use tpm_chip structure from tpm_default_chip() Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 13:39   ` Jarkko Sakkinen
2019-02-01 13:39     ` Jarkko Sakkinen
2019-02-01 10:06 ` [PATCH v9 6/6] tpm: pass an array of tpm_extend_digest structures to tpm_pcr_extend() Roberto Sassu
2019-02-01 10:06   ` Roberto Sassu
2019-02-01 13:39   ` Jarkko Sakkinen
2019-02-01 13:39     ` Jarkko Sakkinen
2019-02-01 13:41     ` Jarkko Sakkinen
2019-02-01 13:41       ` Jarkko Sakkinen
2019-02-01 14:33       ` Mimi Zohar
2019-02-01 14:33         ` Mimi Zohar
2019-02-01 17:33         ` Jarkko Sakkinen
2019-02-01 17:33           ` Jarkko Sakkinen
2019-02-01 17:42           ` Jarkko Sakkinen
2019-02-01 17:42             ` Jarkko Sakkinen
2019-02-01 19:15   ` Mimi Zohar
2019-02-01 19:15     ` Mimi Zohar
2019-02-04  9:14     ` Roberto Sassu
2019-02-04  9:14       ` Roberto Sassu
2019-02-04 12:07       ` Jarkko Sakkinen [this message]
2019-02-04 12:07         ` Jarkko Sakkinen
2019-02-04 12:59         ` Mimi Zohar
2019-02-04 12:59           ` Mimi Zohar
2019-02-04 13:21         ` Roberto Sassu
2019-02-04 13:21           ` Roberto Sassu
2019-02-04 23:26           ` Jarkko Sakkinen
2019-02-04 23:26             ` Jarkko Sakkinen
2019-02-04 23:30             ` Jarkko Sakkinen
2019-02-04 23:30               ` Jarkko Sakkinen
2019-02-05 10:02     ` Roberto Sassu
2019-02-05 10:02       ` Roberto Sassu

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=20190204120746.GG26799@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=david.safford@ge.com \
    --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=matthewgarrett@google.com \
    --cc=monty.wiseman@ge.com \
    --cc=roberto.sassu@huawei.com \
    --cc=silviu.vlasceanu@huawei.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.