]> git.sur5r.net Git - u-boot/blobdiff - include/tpm.h
configs: Add DDR Kconfig support for Arria 10
[u-boot] / include / tpm.h
index 800f29c101bb17af26931a596da0da784ba13695..c6316329f5ab58c720135eb8b68f4cb107aa7aa6 100644 (file)
@@ -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,
@@ -639,4 +641,28 @@ uint32_t tpm_get_permissions(uint32_t index, uint32_t *perm);
  */
 uint32_t tpm_flush_specific(uint32_t key_handle, uint32_t resource_type);
 
+#ifdef CONFIG_TPM_LOAD_KEY_BY_SHA1
+/**
+ * Search for a key by usage AuthData and the hash of the parent's pub key.
+ *
+ * @param auth         Usage auth of the key to search for
+ * @param pubkey_digest        SHA1 hash of the pub key structure of the key
+ * @param[out] handle  The handle of the key (Non-null iff found)
+ * @return 0 if key was found in TPM; != 0 if not.
+ */
+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 */