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

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

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

  3. 在 Select 用于存储密钥对的TPM句柄时,我有什么需要注意的事项或最佳做法吗?

我非常感谢任何指导、代码示例或相关文档的参考,它们可以帮助我了解如何找到可用的TPM句柄来将新的密钥对对象保存在tpm中.预先感谢您的帮助.

以下是我try 过的:

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

  2. 正在try 将密钥对保存在TPM永久存储器中.

推荐答案

我不知道Go TPM库,但从低级的Angular 来看,您可以使用TPM2_GetCapability命令,使用TPM_CAP_HANDLES(0x00000001)作为功能参数,0x8TPM2_GetCapability0000作为属性参数,例如32作为PropertyCount参数.

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

Go相关问答推荐

为什么使用append时Go切片的初始容量会随着int32和int64类型的不同而变化?

Pulumi-S3-当策略依赖于访问点时,如何将AccesspintPolicy附加到访问点

Go-Colly:将数据切片为POST请求

有没有办法通过Go cmdline或IDE(IntelliJ)找出我的 struct 实现了什么接口?

无法使用Segentio;S Kafka-Go连接到融合的Kafka

Makefilego version和read命令

从文件读取字节,将其保存到 struct 体并修改值

如何在 Chi Router 的受保护路由下提供静态文件(尤其是图像)?

Kusto Go API 从多个表查询

使用 Go Colly 抓取所有可能的标签并将它们放入一个变量中

当客户端同时是服务器时,需要什么 mTLS 证书?

将 struct 转换为 CSV 字符串

如何将整数哈希细分为范围

通过 golang 中的 gremlin-go 库嵌入 gremlin 服务器

如何在Go中替换符号并使下一个字母大写

有没有办法判断值是否满足接口中定义的类型约束?

没有堆栈跟踪的 go 程序崩溃是什么意思?

防止在 Go 公用文件夹中列出目录

行之间的模板交替设计

如何扩充 ResponseWriter 的 Header() 返回的 map