Message ID | 20200210100048.21448-2-roberto.sassu@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ima: support stronger algorithms for attestation | expand |
On Mon, Feb 10, 2020 at 11:00:41AM +0100, Roberto Sassu wrote: > chip->allocated_banks, an array of tpm_bank_info structures, contains the > list of TPM algorithm IDs of allocated PCR banks. It also contains the > corresponding ID of the crypto subsystem, so that users of the TPM driver > can calculate a digest for a PCR extend operation. > > However, if there is no mapping between TPM algorithm ID and crypto ID, the > crypto_id field of tpm_bank_info remains set to zero (the array is > allocated and initialized with kcalloc() in tpm2_get_pcr_allocation()). > Zero should not be used as value for unknown mappings, as it is a valid > crypto ID (HASH_ALGO_MD4). > > Thus, initialize crypto_id to HASH_ALGO__LAST. > > Cc: stable@vger.kernel.org # 5.1.x > Fixes: 879b589210a9 ("tpm: retrieve digest size of unknown algorithms with PCR read") > Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com> > Reviewed-by: Petr Vorel <pvorel@suse.cz> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> /Jarkko
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c index 13696deceae8..760329598b99 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -525,6 +525,8 @@ static int tpm2_init_bank_info(struct tpm_chip *chip, u32 bank_index) return 0; } + bank->crypto_id = HASH_ALGO__LAST; + return tpm2_pcr_read(chip, 0, &digest, &bank->digest_size); }