coreboot-kgpe-d16/src/lib
Vadim Bendebury f5ef699f40 tpm2: implement and use pcr_extend command
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>
2016-07-14 00:00:30 +02:00
..
b64_decode.c
boot_device.c
bootblock.c lib: Add asmlinkage attribute to bootblock_main_with_timestamp 2016-06-09 17:15:35 +02:00
bootmem.c lib/bootmem: allow architecture specific bootmem ranges 2016-04-21 20:46:45 +02:00
bootmode.c
cbfs.c cbfs: Use NO_XIP_EARLY_STAGES to decide if stage is XIP 2016-06-02 17:21:39 +02:00
cbfs_spi.c memlayout: Fix unified CBFS_CACHE macro 2016-01-21 09:05:06 +01:00
cbmem_common.c
cbmem_console.c
cbmem_stage_cache.c
compute_ip_checksum.c
coreboot_table.c coreboot_tables: Extend serial port description 2016-05-09 17:21:22 +02:00
debug.c
delay.c
edid.c edid: Make framebuffer row alignment configurable 2016-04-07 20:46:38 +02:00
ext_stage_cache.c
fallback_boot.c
fmap.c lib: remove FLASHMAP_OFFSET config variable 2016-05-11 21:32:44 +02:00
gcc.c
gcov-glue.c lib/gcov-glue.c: Remove trailing number from COVERAGE_MAGIC macro 2016-02-02 01:39:28 +01:00
gcov-io.c
gcov-io.h
gcov-iov.h
generic_dump_spd.c
generic_sdram.c
gpio.c lib/gpio: add pullup & pulldown gpio_base2_value() variants 2016-07-07 20:44:36 +02:00
halt.c
hardwaremain.c lib/hardwaremain: Add \n to "Boot failed" message 2016-05-31 20:20:44 +02:00
hexdump.c lib/hexdump: Refactor to skip lines with all ones as well 2016-01-22 14:10:28 +01:00
hexstrtobin.c hexstrtobin: Add a library function to decode ASCII hex into binary 2016-05-21 05:58:51 +02:00
imd.c Correct some common spelling mistakes 2016-01-07 22:57:02 +01:00
imd_cbmem.c cbmem: Fix cbmem_add_bootmem() 2016-03-11 09:52:46 +01:00
jpeg.c
jpeg.h
libgcc.c
libgcov.c
lzma.c lib: remove ulzma() 2016-07-01 23:55:16 +02:00
lzmadecode.c lzma: Port size-checking ulzman() version to coreboot 2016-02-12 22:00:55 +01:00
lzmadecode.h
Makefile.inc tpm2: add marshaling/unmarshaling layer 2016-07-11 23:52:56 +02:00
malloc.c
memchr.c
memcmp.c
memcpy.c
memmove.c
memrange.c lib/memrange: avoid shadow object declarations 2016-02-26 02:14:56 +01:00
memset.c
mocked_tlcl.c
nhlt.c lib/nhlt: add helper functions for adding endpoints 2016-06-29 23:13:54 +02:00
primitive_memtest.c
prog_loaders.c region: Add writeat and eraseat support 2016-06-24 20:48:12 +02:00
prog_ops.c lib/prog_loading: introduce prog_segment_loaded() 2016-04-02 03:56:37 +02:00
program.ld program.ld: Don't exclude sbe region from verstage 2016-05-21 06:04:32 +02:00
ramtest.c
reg_script.c lib/reg_script: Fix braces 2016-05-05 19:41:29 +02:00
rmodule.c lib/prog_loading: introduce prog_segment_loaded() 2016-04-02 03:56:37 +02:00
rmodule.ld
romstage_stack.c intel post-car: Consolidate choose_top_of_stack() 2016-07-10 11:16:07 +02:00
rtc.c lib: Add real-time-clock functions 2016-06-24 20:22:05 +02:00
selfboot.c lib/selfboot: clear BSS segments 2016-07-12 23:39:14 +02:00
stack.c
thread.c
timer.c
timer_queue.c
timestamp.c lib/timestamp: Do not initialize cache in timestamp_cache_get() 2016-05-19 18:26:17 +02:00
tlcl.c
tlcl_internal.h
tlcl_structures.h
tpm2_marshaling.c tpm2: implement and use pcr_extend command 2016-07-14 00:00:30 +02:00
tpm2_marshaling.h tpm2: avoid comparison between signed and unsigned ints 2016-07-13 23:58:32 +02:00
tpm2_tlcl.c tpm2: implement and use pcr_extend command 2016-07-14 00:00:30 +02:00
tpm2_tlcl_structures.h tpm2: implement and use pcr_extend command 2016-07-14 00:00:30 +02:00
tpm_error_messages.h
trace.c src/lib/trace.c: Make address size generic 2016-03-10 17:28:26 +01:00
version.c
wrdd.c lib: Implement framework for retrieving WiFi regulatory domain 2016-03-08 18:41:33 +01:00