我是 TPM 新手,目前正在从事一个涉及使用 tpm 生成和存储多个密钥对的项目。我想知道如何找到可用于保存新密钥对对象的可用 TPM 句柄。我搜索了有关此主题的信息,但尚未找到明确的答案。以下是我的一些具体问题:
如何以编程方式确定 TPM 句柄是否指向空白区域并且可以自由用于保存新的密钥对对象?
Go-TPM 包中是否有任何特定的函数或方法可以帮助我完成此任务?
在选择用于存储密钥对的 TPM 句柄时,我应该注意哪些注意事项或最佳实践?
我非常感谢任何指导、代码示例或相关文档的参考,它们可以帮助我了解如何找到可用的 TPM 句柄以在 tpm 中保存新的密钥对对象。提前感谢您的帮助。
这是我尝试过的:
使用特定句柄(如 0x81010001 或 0x81010002)手动创建密钥对。
尝试将密钥对保存在 TPM 持久内存中。
我不知道 Go TPM 库,但从低级别的角度来看,您可以使用 TPM2_GetCapability 命令,使用 TPM_CAP_HANDLES (0x00000001) 作为功能参数,0x81000000 作为属性参数,例如 32 作为 propertyCount 参数。
这将返回持久对象句柄范围内已分配句柄的列表,选择不在列表中且在 0x81000000 - 0x817FFFFF 范围内的索引。