All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roberto Sassu <roberto.sassu@huawei.com>
To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: <zohar@linux.ibm.com>, <david.safford@ge.com>,
	<monty.wiseman@ge.com>, <linux-integrity@vger.kernel.org>,
	<linux-security-module@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <silviu.vlasceanu@huawei.com>,
	Nayna Jain <nayna@linux.ibm.com>
Subject: Re: [PATCH v6 1/7] tpm: dynamically allocate the allocated_banks array
Date: Thu, 6 Dec 2018 18:56:33 +0100	[thread overview]
Message-ID: <9193bc05-8222-f0d6-9ad8-a2a7eaf1a34c@huawei.com> (raw)
In-Reply-To: <20181204231848.GA1233@linux.intel.com>

On 12/5/2018 12:18 AM, Jarkko Sakkinen wrote:
> On Tue, Dec 04, 2018 at 09:21:32AM +0100, Roberto Sassu wrote:
>> tpm2_get_pcr_allocation() determines if a PCR bank is allocated by checking
>> the mask in the TPML_PCR_SELECTION structure returned by the TPM for
>> TPM2_Get_Capability(). One PCR bank with algorithm set to SHA1 is always
>> allocated for TPM 1.x.
> 
> ...
> 
>> +		for (j = 0; j < pcr_selection.size_of_select; j++)
>> +			if (pcr_selection.pcr_select[j])
>> +				break;
>> +
>> +		if (j < pcr_selection.size_of_select) {
>> +			chip->allocated_banks[nr_alloc_banks] = hash_alg;
>> +			nr_alloc_banks++;
>> +		}
>> +
> 
> Why was this needed? Can CAP_PCRS return completely unallocated banks?

This was discussed for patch v4 1/6:
---

Nayna wrote:

# /usr/local/bin/tssgetcapability -cap 5
2 PCR selections
     hash TPM_ALG_SHA1
     TPMS_PCR_SELECTION length 3
     ff ff ff
     hash TPM_ALG_SHA256
     TPMS_PCR_SELECTION length 3
     00 00 00

The pcr_select fields - "ff ff ff" and "00 00 00" - are bit masks for
the enabled PCRs. The SHA1 bank is enabled for all PCRs (0-23), while
the SHA256 bank is not enabled.
---

> Kind of out-of-context for the rest of the changes.
> 
> Should this be a bug fix of its own because it looks like as this is a
> bug fix for existing code, and not a new feature? Just asking because
> I don't yet fully understand this change.

If we store in tpm_chip the possible banks, IMA would calculate more
digests unnecessarily. But this problem does not happen without my patch
set, because tpm_pcr_extend() only accepts a SHA1 digest.


> Anyway, I believe that you can streamline this by:
> 
> /* Check that at least some of the PCRs have been allocated. This is
>   * required because CAP_PCRS ...
>   */
> if (memchr_inv(pcr_selection.pcr_select, 0, pcr_selection.size_of_select))
> 	nr_allocated_banks++;
> 
> [yeah, comment would be awesome about CAP_PCRS. Did not finish up the
> comment because I don't know the answer]
> 
> In addition, it would be consistent to call the local variable also
> nr_allocated_banks (not nr_alloc_banks).

Unfortunately, I exceed the limit of characters per line.

Roberto


> /Jarkko
> 

-- 
HUAWEI TECHNOLOGIES Duesseldorf GmbH, HRB 56063
Managing Director: Bo PENG, Jian LI, Yanli SHI

  reply	other threads:[~2018-12-06 17:56 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04  8:21 [PATCH v6 0/7] tpm: retrieve digest size of unknown algorithms from TPM Roberto Sassu
2018-12-04  8:21 ` [PATCH v6 1/7] tpm: dynamically allocate the allocated_banks array Roberto Sassu
2018-12-04 23:18   ` Jarkko Sakkinen
2018-12-06 17:56     ` Roberto Sassu [this message]
2018-12-12 18:32       ` Jarkko Sakkinen
2018-12-13  8:14         ` Roberto Sassu
2018-12-11 21:01     ` Ken Goldman
2018-12-04  8:21 ` [PATCH v6 2/7] tpm: add _head suffix to tcg_efi_specid_event and tcg_pcr_event2 Roberto Sassu
2018-12-04 23:26   ` Jarkko Sakkinen
2018-12-09 12:10   ` Nayna Jain
2018-12-04  8:21 ` [PATCH v6 3/7] tpm: rename and export tpm2_digest and tpm2_algorithms Roberto Sassu
2018-12-04  8:21 ` [PATCH v6 4/7] tpm: modify tpm_pcr_read() definition to pass a TPM hash algorithm Roberto Sassu
2018-12-04 23:40   ` Jarkko Sakkinen
2018-12-05 20:31     ` Mimi Zohar
2018-12-06 19:49       ` Mimi Zohar
2018-12-07 14:51         ` Roberto Sassu
2018-12-09 20:32           ` Mimi Zohar
2018-12-10  7:55             ` Roberto Sassu
2018-12-06  8:14     ` Nayna Jain
2018-12-12 18:29       ` Jarkko Sakkinen
2018-12-09 12:04     ` Nayna Jain
2018-12-04  8:21 ` [PATCH v6 5/7] tpm: retrieve digest size of unknown algorithms with PCR read Roberto Sassu
2018-12-04 23:53   ` Jarkko Sakkinen
2018-12-06 18:00     ` Roberto Sassu
2018-12-12 18:16       ` Jarkko Sakkinen
2018-12-04  8:21 ` [PATCH v6 6/7] tpm: ensure that the output of PCR read contains the correct digest size Roberto Sassu
2018-12-05  0:09   ` Jarkko Sakkinen
2018-12-05  0:46     ` Jarkko Sakkinen
2018-12-06 18:07       ` Roberto Sassu
2018-12-12 18:18         ` Jarkko Sakkinen
2018-12-04  8:21 ` [PATCH v6 7/7] tpm: pass an array of tpm_bank_list structures to tpm_pcr_extend() Roberto Sassu
2018-12-05  0:14   ` Jarkko Sakkinen
2018-12-06 18:09     ` Roberto Sassu
2018-12-12 18:25       ` Jarkko Sakkinen
2018-12-06 18:38     ` Roberto Sassu
2018-12-12 18:27       ` Jarkko Sakkinen
2018-12-13  7:57         ` Roberto Sassu
2018-12-14  7:58           ` Jarkko Sakkinen
2018-12-05  0:21 ` [PATCH v6 0/7] tpm: retrieve digest size of unknown algorithms from TPM Jarkko Sakkinen
2018-12-05  0:23   ` 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=9193bc05-8222-f0d6-9ad8-a2a7eaf1a34c@huawei.com \
    --to=roberto.sassu@huawei.com \
    --cc=david.safford@ge.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=monty.wiseman@ge.com \
    --cc=nayna@linux.ibm.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.