用于在TPM中签名数据的GnuTLS(tpmtools)API

时间:2018-11-23 16:28:27

标签: security cryptography tpm gnutls

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

事件的顺序是这样的:

  1. 调用gnutls_tpm_key_list_get_url以获得TPM密钥列表。
  2. 从列表中选择要签名的密钥,并使用gnutls_privkey_import_tpm_url导入。
  3. 现在您拥有gnutls_privkey_t对象,您可以将abstract API与其他任何键一样使用。就您而言,您可能想使用gnutls_privkey_sign_data或类似的签名功能之一。

请记住,采用这种方法会限制您使用TPM 1.2。来自GnuTLS docs

  

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