security/tpm: Fix TCPA log feature
Until now the TCPA log wasn't working correctly. * Refactor TCPA log code. * Add TCPA log dump fucntion. * Make TCPA log available in bootblock. * Fix TCPA log formatting. * Add x86 and Cavium memory for early log. Change-Id: Ic93133531b84318f48940d34bded48cbae739c44 Signed-off-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/29563 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
@@ -21,26 +21,46 @@
|
||||
#include <security/tpm/tss.h>
|
||||
#include <commonlib/tcpa_log_serialized.h>
|
||||
#include <commonlib/region.h>
|
||||
#include <vb2_api.h>
|
||||
|
||||
#define TPM_PCR_MAX_LEN 64
|
||||
#define HASH_DATA_CHUNK_SIZE 1024
|
||||
#define TPM_PCR_MAX_LEN 64
|
||||
#define HASH_DATA_CHUNK_SIZE 1024
|
||||
|
||||
/**
|
||||
* Clears the pre-RAM tcpa log data and initializes
|
||||
* any content with default values
|
||||
*/
|
||||
void tcpa_preram_log_clear(void);
|
||||
|
||||
/**
|
||||
* Add table entry for cbmem TCPA log.
|
||||
* @param name Name of the hashed data
|
||||
* @param pcr PCR used to extend hashed data
|
||||
* @param diget_algo sets the digest algorithm
|
||||
* @param digest sets the hash extended into the tpm
|
||||
* @param digest_len the length of the digest
|
||||
*/
|
||||
void tcpa_log_add_table_entry(const char *name, const uint32_t pcr,
|
||||
enum vb2_hash_algorithm digest_algo,
|
||||
const uint8_t *digest,
|
||||
const size_t digest_length);
|
||||
const size_t digest_len);
|
||||
|
||||
/**
|
||||
* Dump TCPA log entries on console
|
||||
*/
|
||||
void tcpa_log_dump(void *unused);
|
||||
|
||||
/**
|
||||
* Ask vboot for a digest and extend a TPM PCR with it.
|
||||
* @param pcr sets the pcr index
|
||||
* @param diget_algo sets the digest algorithm
|
||||
* @param digest sets the hash to extend into the tpm
|
||||
* @param digest_len the length of the digest
|
||||
* @param name sets additional info where the digest comes from
|
||||
* @return TPM_SUCCESS on success. If not a tpm error is returned
|
||||
*/
|
||||
uint32_t tpm_extend_pcr(int pcr, uint8_t *digest, size_t digest_len,
|
||||
uint32_t tpm_extend_pcr(int pcr, enum vb2_hash_algorithm digest_algo,
|
||||
uint8_t *digest, size_t digest_len,
|
||||
const char *name);
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user