coreboot/src/lib
Vadim Bendebury 73388139db 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 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: I1a9bab7396fdb652e2e3bc8529b828ea3423d851
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/358098
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
2016-07-07 22:14:28 -07:00
..
b64_decode.c lib: add base64 decoder 2015-04-22 08:50:54 +02:00
boot_device.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
bootblock.c UPSTREAM: lib: Add asmlinkage attribute to bootblock_main_with_timestamp 2016-06-10 00:17:50 -07:00
bootmem.c lib/bootmem: allow architecture specific bootmem ranges 2016-04-21 20:46:45 +02:00
bootmode.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbfs.c UPSTREAM: cbfs: Use NO_XIP_EARLY_STAGES to decide if stage is XIP 2016-06-02 14:06:38 -07:00
cbfs_spi.c memlayout: Fix unified CBFS_CACHE macro 2016-01-21 09:05:06 +01:00
cbmem_common.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbmem_console.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbmem_stage_cache.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
compute_ip_checksum.c lib: Fix spelling 2013-07-10 20:17:51 +02:00
coreboot_table.c coreboot_tables: Extend serial port description 2016-05-09 17:21:22 +02:00
debug.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
delay.c
edid.c edid: Make framebuffer row alignment configurable 2016-04-07 20:46:38 +02:00
ext_stage_cache.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
fallback_boot.c drivers/pc80: Rework normal / fallback selector code 2015-11-03 21:55:20 +01:00
fmap.c lib: remove FLASHMAP_OFFSET config variable 2016-05-11 21:32:44 +02:00
gcc.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
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 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
gcov-io.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
gcov-iov.h
generic_dump_spd.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
generic_sdram.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
gpio.c UPSTREAM: lib/gpio: add pullup & pulldown gpio_base2_value() variants 2016-07-07 19:29:24 -07:00
halt.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
hardwaremain.c UPSTREAM: lib/hardwaremain: Add \n to Boot failed message 2016-06-01 20:36:59 -07:00
hexdump.c lib/hexdump: Refactor to skip lines with all ones as well 2016-01-22 14:10:28 +01:00
hexstrtobin.c UPSTREAM: hexstrtobin: Add a library function to decode ASCII hex into binary 2016-05-26 03:21:43 -07: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 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
jpeg.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
libgcc.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
libgcov.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
lzma.c UPSTREAM: lib: remove ulzma() 2016-07-07 01:08:55 -07:00
lzmadecode.c lzma: Port size-checking ulzman() version to coreboot 2016-02-12 22:00:55 +01:00
lzmadecode.h
Makefile.inc UPSTREAM: lib: Add real-time-clock functions 2016-07-07 01:08:44 -07:00
malloc.c Remove leftover smi_get_tseg_base 2015-05-29 07:06:37 +02:00
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 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
nhlt.c UPSTREAM: lib/nhlt: add helper functions for adding endpoints 2016-06-30 23:10:34 -07:00
primitive_memtest.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
prog_loaders.c UPSTREAM: region: Add writeat and eraseat support 2016-06-27 17:13:18 -07: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-20 22:21:32 +00:00
ramtest.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
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 rmodule: use program.ld for linking 2015-09-09 19:35:30 +00:00
rtc.c UPSTREAM: lib: Add real-time-clock functions 2016-07-07 01:08:44 -07:00
selfboot.c ensure correct byte ordering for cbfs segment list 2016-04-25 23:30:00 +02:00
stack.c lib/stack: Add stack overrun detection 2015-10-24 05:57:33 +02:00
thread.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
timer.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
timer_queue.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
timestamp.c UPSTREAM: lib/timestamp: Do not initialize cache in timestamp_cache_get() 2016-05-26 03:21:36 -07:00
tlcl.c chromeos: vboot2: Add TPM PCR extension support 2015-04-20 17:06:28 +02:00
tlcl_internal.h vboot2: read secdata and nvdata 2015-03-23 19:51:47 +01:00
tlcl_structures.h vboot2: copy tlcl from vboot_reference as a preparation for vboot2 integration 2015-01-27 01:43:57 +01:00
tpm2_marshaling.c tpm2: implement and use pcr_extend command 2016-07-07 22:14:28 -07:00
tpm2_marshaling.h tpm2: avoid comparison between signed and unsigned ints 2016-07-07 19:30:09 -07:00
tpm2_tlcl.c tpm2: implement and use pcr_extend command 2016-07-07 22:14:28 -07:00
tpm2_tlcl_structures.h tpm2: implement and use pcr_extend command 2016-07-07 22:14:28 -07:00
tpm_error_messages.h TPM: Fix whitespace 2015-02-06 00:25:59 +01:00
trace.c src/lib/trace.c: Make address size generic 2016-03-10 17:28:26 +01:00
version.c build.h: remove variable for the builduser, -hostname and -domain 2015-03-09 17:53:16 +01:00
wrdd.c lib: Implement framework for retrieving WiFi regulatory domain 2016-03-08 18:41:33 +01:00