首页 > 文章列表 > 寻找空闲的TPM句柄以储存新的密钥对对象的方法

寻找空闲的TPM句柄以储存新的密钥对对象的方法

363 2024-02-03
问题内容

我是 TPM 新手,目前正在从事一个涉及使用 tpm 生成和存储多个密钥对的项目。我想知道如何找到可用于保存新密钥对对象的可用 TPM 句柄。我搜索了有关该主题的信息,但没有找到明确的答案。以下是我的一些具体问题:

  1. 如何以编程方式确定 TPM 句柄是否指向空白区域并可用于保存新的密钥对对象?

  2. Go-TPM 软件包中是否有任何特定函数或方法可以帮助我完成此任务?

  3. 在选择用于存储密钥对的 TPM 句柄时,我应该注意哪些注意事项或最佳实践?

如果有任何指导、代码示例或相关文档的参考,可以帮助我了解如何找到可用的 TPM 句柄以在 tpm 中保存新的密钥对对象,我将不胜感激。提前感谢您的帮助。

这是我尝试过的:

  1. 使用特定句柄(例如 0x81010001 或 0x81010002)手动创建密钥对。

  2. 尝试将密钥对保存在 TPM 持久内存中。


正确答案


我不知道 Go TPM 库,但从低级别的角度来看,您可以使用 TPM_CAP_HANDLES 的“nofollow noreferrer">TPM2_GetCapability 命令 (0x00000001)作为功​​能参数,0x81000000 作为属性参数,例如 32 作为 propertyCount 参数。

这将返回持久对象句柄范围内已分配句柄的列表,选择不在列表中且在 0x81000000 - 0x817FFFFF 范围内的索引。