GnuTLS (tpmtools) api 用于在 TPM 中签署数据
GnuTLS (tpmtools) api for signing data in a TPM
最近我开始使用 TPM(1.2 版),在检查了官方 GnuTLS API 之后,我想知道哪些 API 函数是执行所有加密内容的正确函数芯片(签名证书获得 pk+ 密钥等...)。
目前我能够在 TPM 之外获取此数据,因此我可以在我的 C 代码中签名或获取私钥,但这不是我想要的。
谢谢大家!
事件的顺序是这样的:
- 调用
gnutls_tpm_key_list_get_url
获取 TPM 密钥列表。
- 从列表中选择您要用于签名的密钥并使用
gnutls_privkey_import_tpm_url
导入它。
- 现在您有了
gnutls_privkey_t
对象,您可以像使用任何其他键一样将其与 abstract API 一起使用。在您的情况下,您可能想使用 gnutls_privkey_sign_data
或类似的签名功能之一。
请记住,使用这种方法会限制您使用 TPM 1.2。来自 GnuTLS docs:
Note that we recommend against using TPM with this API because it is
restricted to TPM 1.2. We recommend instead to use PKCS#11 wrappers
for TPM such as CHAPS14 or opencryptoki15. These will allow using the
standard smart card and HSM functionality (see Smart cards and HSMs)
for TPM keys.
最近我开始使用 TPM(1.2 版),在检查了官方 GnuTLS API 之后,我想知道哪些 API 函数是执行所有加密内容的正确函数芯片(签名证书获得 pk+ 密钥等...)。
目前我能够在 TPM 之外获取此数据,因此我可以在我的 C 代码中签名或获取私钥,但这不是我想要的。
谢谢大家!
事件的顺序是这样的:
- 调用
gnutls_tpm_key_list_get_url
获取 TPM 密钥列表。 - 从列表中选择您要用于签名的密钥并使用
gnutls_privkey_import_tpm_url
导入它。 - 现在您有了
gnutls_privkey_t
对象,您可以像使用任何其他键一样将其与 abstract API 一起使用。在您的情况下,您可能想使用gnutls_privkey_sign_data
或类似的签名功能之一。
请记住,使用这种方法会限制您使用 TPM 1.2。来自 GnuTLS docs:
Note that we recommend against using TPM with this API because it is restricted to TPM 1.2. We recommend instead to use PKCS#11 wrappers for TPM such as CHAPS14 or opencryptoki15. These will allow using the standard smart card and HSM functionality (see Smart cards and HSMs) for TPM keys.