1

最近我开始使用 TPM(1.2 版),在检查了官方的 GnuTLS API 之后,我想知道哪些 API 函数是正确的,可以在芯片内执行所有加密操作(签名证书获取 pk+ 密钥等...) .

目前我能够在 TPM 之外获取这些数据,因此我可以在我的 C 代码中签名或获取私钥,但这不是我想要的。

谢谢大家!

4

1 回答 1

3

事件的顺序是这样的:

  1. 调用gnutls_tpm_key_list_get_url以获取 TPM 密钥列表。
  2. 从列表中选择您要签名的密钥并使用gnutls_privkey_import_tpm_url.
  3. 现在您有了gnutls_privkey_t可以与抽象 API一起使用的对象,就像任何其他键一样。在您的情况下,您可能想要使用gnutls_privkey_sign_data或类似的签名功能之一。

请记住,使用这种方法会将您限制为 TPM 1.2。来自GnuTLS 文档

请注意,我们建议不要将此 API 与 TPM 一起使用,因为它仅限于 TPM 1.2。我们建议改为对 TPM 使用 PKCS#11 包装器,例如 CHAPS14 或 opencryptoki15。这些将允许对 TPM 密钥使用标准智能卡和 HSM 功能(请参阅智能卡和 HSM)。

于 2018-11-23T17:59:20.670 回答