X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Ftpm.h;h=c6316329f5ab58c720135eb8b68f4cb107aa7aa6;hb=51cd5a147dbd0ea31df5b2b543624ef309b4272b;hp=f88388f3530f99cebf7ded7456bc5740a65f99a0;hpb=0f4b2ba1762d74c0b5520d99a58796d6ca78abf0;p=u-boot diff --git a/include/tpm.h b/include/tpm.h index f88388f353..c6316329f5 100644 --- a/include/tpm.h +++ b/include/tpm.h @@ -1,8 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (c) 2013 The Chromium OS Authors. * Coypright (c) 2013 Guntermann & Drunck GmbH - * - * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __TPM_H @@ -84,9 +83,12 @@ enum tpm_capability_areas { }; #define TPM_NV_PER_GLOBALLOCK (1U << 15) +#define TPM_NV_PER_PPREAD (1U << 16) #define TPM_NV_PER_PPWRITE (1U << 0) #define TPM_NV_PER_READ_STCLEAR (1U << 31) #define TPM_NV_PER_WRITE_STCLEAR (1U << 14) +#define TPM_NV_PER_WRITEDEFINE (1U << 13) +#define TPM_NV_PER_WRITEALL (1U << 12) enum { TPM_PUBEK_SIZE = 256, @@ -651,4 +653,16 @@ uint32_t tpm_flush_specific(uint32_t key_handle, uint32_t resource_type); uint32_t tpm_find_key_sha1(const uint8_t auth[20], const uint8_t pubkey_digest[20], uint32_t *handle); #endif /* CONFIG_TPM_LOAD_KEY_BY_SHA1 */ + +/** + * Read random bytes from the TPM RNG. The implementation deals with the fact + * that the TPM may legally return fewer bytes than requested by retrying + * until @p count bytes have been received. + * + * @param data output buffer for the random bytes + * @param count size of output buffer + * @return return code of the operation + */ +uint32_t tpm_get_random(void *data, uint32_t count); + #endif /* __TPM_H */