linux-stable/drivers/char/tpm
Nayna Jain c1f92b4b04 tpm: enhance TPM 2.0 PCR extend to support multiple banks
The current TPM 2.0 device driver extends only the SHA1 PCR bank
but the TCG Specification[1] recommends extending all active PCR
banks, to prevent malicious users from setting unused PCR banks with
fake measurements and quoting them.

The existing in-kernel interface(tpm_pcr_extend()) expects only a
SHA1 digest.  To extend all active PCR banks with differing
digest sizes, the SHA1 digest is padded with trailing 0's as needed.

This patch reuses the defined digest sizes from the crypto subsystem,
adding a dependency on CRYPTO_HASH_INFO module.

[1] TPM 2.0 Specification referred here is "TCG PC Client Specific
Platform Firmware Profile for TPM 2.0"

Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Kenneth Goldman <kgold@linux.vnet.ibm.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
2017-02-03 22:03:14 +02:00
..
st33zp24 tpm/st33zp24: Remove unneeded linux/miscdevice.h include 2017-01-23 18:28:18 +02:00
Kconfig tpm: enhance TPM 2.0 PCR extend to support multiple banks 2017-02-03 22:03:14 +02:00
Makefile tpm: redefine read_log() to handle ACPI/OF at runtime 2016-11-28 01:31:32 +02:00
tpm-chip.c tmp: use pdev for parent device in tpm_chip_alloc 2017-01-23 18:28:18 +02:00
tpm-dev.c tpm: Begin the process to deprecate user_read_timer 2017-02-03 22:03:14 +02:00
tpm-interface.c tpm: enhance TPM 2.0 PCR extend to support multiple banks 2017-02-03 22:03:14 +02:00
tpm-sysfs.c tpm: Check size of response before accessing data 2017-01-23 18:28:18 +02:00
tpm.h tpm: enhance TPM 2.0 PCR extend to support multiple banks 2017-02-03 22:03:14 +02:00
tpm2-cmd.c tpm: enhance TPM 2.0 PCR extend to support multiple banks 2017-02-03 22:03:14 +02:00
tpm_acpi.c tpm: Fix handling of missing event log 2016-11-28 01:31:32 +02:00
tpm_atmel.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_atmel.h tpm: remove tpm_read_index and tpm_write_index from tpm.h 2017-02-03 22:03:14 +02:00
tpm_crb.c tpm, tpm_crb: Handle 64-bit resource in crb_check_resource() 2017-01-23 18:28:18 +02:00
tpm_eventlog.c tpm: adjust return value of tpm_read_log 2016-11-28 01:31:33 +02:00
tpm_eventlog.h tpm: redefine read_log() to handle ACPI/OF at runtime 2016-11-28 01:31:32 +02:00
tpm_i2c_atmel.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
tpm_i2c_infineon.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
tpm_i2c_nuvoton.c tpm: Add TPM 2.0 support to the Nuvoton i2c driver (NPCT6xx family) 2016-07-19 17:43:38 +03:00
tpm_ibmvtpm.c tpm/vtpm: fix kdoc warnings 2017-01-23 18:28:18 +02:00
tpm_ibmvtpm.h tpm_ibmvtpm: properly handle interrupted packet receptions 2015-12-20 15:27:12 +02:00
tpm_infineon.c tpm: Get rid of chip->pdev 2016-06-25 17:26:35 +03:00
tpm_nsc.c tpm: remove tpm_read_index and tpm_write_index from tpm.h 2017-02-03 22:03:14 +02:00
tpm_of.c tpm: Fix handling of missing event log 2016-11-28 01:31:32 +02:00
tpm_ppi.c tpm: move the PPI attributes to character device directory. 2015-10-19 01:01:20 +02:00
tpm_tis.c tpm_tis: use default timeout value if chip reports it as zero 2017-01-23 18:28:18 +02:00
tpm_tis_core.c tpm_tis: fix iTPM probe via probe_itpm() function 2017-02-03 22:03:14 +02:00
tpm_tis_core.h tpm_tis: use default timeout value if chip reports it as zero 2017-01-23 18:28:18 +02:00
tpm_tis_spi.c tpm/tpm_tis_spi: drop duplicate header module.h 2017-01-23 18:28:18 +02:00
tpm_vtpm_proxy.c tpm/vtpm: fix kdoc warnings 2017-01-23 18:28:18 +02:00
xen-tpmfront.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2016-12-14 13:57:44 -08:00