Message ID | 20200205103317.29356-2-roberto.sassu@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ima: support stronger algorithms for attestation | expand |
On Wed, Feb 05, 2020 at 11:33:10AM +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. > > 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> > Cc: stable@vger.kernel.org Cc should be first. /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); }