实现 TPM2_MakeCredential 的库函数
Library function that implements TPM2_MakeCredential
对于使用 TPM 的远程证明,在服务器端我需要 TPM2_MakeCredential 函数。请注意,此函数是在 TPM 中实现的,但它有点偏离,因为它不依赖于任何 TPM 状态,它是完全无状态的(不同于 TPM2_ActivateCredential 函数 - 在客户端上是 运行侧 - 这严重依赖于 TPM 密钥)。根据文档,它是为了方便而提供的。没关系,但问题是服务器没有(也不需要)TPM。但是我还是想用TPM2_MakeCredential函数。
遗憾的是,我没能找到这个函数的库实现。 Microsoft 提供了一个成熟的 TPM2.0 仿真器,TPM.MSR 库可以连接到该仿真器。这可行,但它需要启动和管理设置套接字等的模拟器进程,我宁愿避免。我想知道是否有作为库提供的纯 C/C++/C# 实现?我一直在使用各种解决方案,但重新实现该功能并非易事,从模拟器中提取也并非易事。
事实证明,TPM.MSR 库本身通过 TpmPublic 上的 CreateActivationCredentials() 函数公开了此功能(完全在库本身中实现,不依赖于 TPM)。
对于使用 TPM 的远程证明,在服务器端我需要 TPM2_MakeCredential 函数。请注意,此函数是在 TPM 中实现的,但它有点偏离,因为它不依赖于任何 TPM 状态,它是完全无状态的(不同于 TPM2_ActivateCredential 函数 - 在客户端上是 运行侧 - 这严重依赖于 TPM 密钥)。根据文档,它是为了方便而提供的。没关系,但问题是服务器没有(也不需要)TPM。但是我还是想用TPM2_MakeCredential函数。
遗憾的是,我没能找到这个函数的库实现。 Microsoft 提供了一个成熟的 TPM2.0 仿真器,TPM.MSR 库可以连接到该仿真器。这可行,但它需要启动和管理设置套接字等的模拟器进程,我宁愿避免。我想知道是否有作为库提供的纯 C/C++/C# 实现?我一直在使用各种解决方案,但重新实现该功能并非易事,从模拟器中提取也并非易事。
事实证明,TPM.MSR 库本身通过 TpmPublic 上的 CreateActivationCredentials() 函数公开了此功能(完全在库本身中实现,不依赖于 TPM)。