f5ef699f40
TPM PCRs are used in Chrome OS for two purposes: to communicate crucial information from RO firmware and to protect FW and kernel rollback counters from being deleted. As implemented in a TPM1 compatible way, the PCR extension command requires a prebuilt digest to calculate a new PCR value. TPM2 specification introduces a PCR_Event command, where the TPM itself calculates the digest of an arbitrary length string, and then uses the calculated digest for PCR extension. PCR_Event could be a better option for Chrome OS, this needs to be investigated separately. BRANCH=none BUG=chrome-os-partner:50645 TEST=verified that the two PCRs are successfully extended before the RW firmware is called. Change-Id: I38fc88172de8ec8bef56fec026f83058480c8010 Signed-off-by: Martin Roth <martinroth@chromium.org> Original-Commit-Id: 73388139db3ffaf61a3d9027522c5ebecb3ad051 Original-Change-Id: I1a9bab7396fdb652e2e3bc8529b828ea3423d851 Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/358098 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Reviewed-by: Darren Krahn <dkrahn@chromium.org> Reviewed-on: https://review.coreboot.org/15639 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@googlemail.com> |
||
---|---|---|
.. | ||
b64_decode.c | ||
boot_device.c | ||
bootblock.c | ||
bootmem.c | ||
bootmode.c | ||
cbfs.c | ||
cbfs_spi.c | ||
cbmem_common.c | ||
cbmem_console.c | ||
cbmem_stage_cache.c | ||
compute_ip_checksum.c | ||
coreboot_table.c | ||
debug.c | ||
delay.c | ||
edid.c | ||
ext_stage_cache.c | ||
fallback_boot.c | ||
fmap.c | ||
gcc.c | ||
gcov-glue.c | ||
gcov-io.c | ||
gcov-io.h | ||
gcov-iov.h | ||
generic_dump_spd.c | ||
generic_sdram.c | ||
gpio.c | ||
halt.c | ||
hardwaremain.c | ||
hexdump.c | ||
hexstrtobin.c | ||
imd.c | ||
imd_cbmem.c | ||
jpeg.c | ||
jpeg.h | ||
libgcc.c | ||
libgcov.c | ||
lzma.c | ||
lzmadecode.c | ||
lzmadecode.h | ||
Makefile.inc | ||
malloc.c | ||
memchr.c | ||
memcmp.c | ||
memcpy.c | ||
memmove.c | ||
memrange.c | ||
memset.c | ||
mocked_tlcl.c | ||
nhlt.c | ||
primitive_memtest.c | ||
prog_loaders.c | ||
prog_ops.c | ||
program.ld | ||
ramtest.c | ||
reg_script.c | ||
rmodule.c | ||
rmodule.ld | ||
romstage_stack.c | ||
rtc.c | ||
selfboot.c | ||
stack.c | ||
thread.c | ||
timer.c | ||
timer_queue.c | ||
timestamp.c | ||
tlcl.c | ||
tlcl_internal.h | ||
tlcl_structures.h | ||
tpm2_marshaling.c | ||
tpm2_marshaling.h | ||
tpm2_tlcl.c | ||
tpm2_tlcl_structures.h | ||
tpm_error_messages.h | ||
trace.c | ||
version.c | ||
wrdd.c |