【发布时间】:2022-08-17 19:46:04
【问题描述】:
我需要使用存储在 HSM 中的证书/密钥对使用 Hardware Lab Kit 创建的 HLKX 包进行签名。我确实将证书作为文件保存,但它仅包含公钥,而私钥存储在 HSM 中,该 HSM 未连接到包需要登录的计算机。
使用此处代码示例中提供的 Sign 函数: https://docs.microsoft.com/en-us/windows-hardware/test/hlk/user/hlk-signing-with-an-hsm 我得到了例外: System.Security.Cryptography.CryptographicException: \'找不到选定的数字证书。\'
我认为这是因为它没有属于可用证书的私钥。有一些关于提供实际签名功能的 CSP dll 的模糊信息,但我可以找到有关其接口外观的任何信息 - 以及如何告诉系统该 CSP dll 负责哪些证书。此外,HSM 连接到 Hashicorp Vault 并且不直接使用。
如果使用 signtool.exe 对二进制文件进行签名,很容易在一次调用中创建摘要,然后在自定义代码中使用该摘要来获取签名并再次调用 signtool.exe 以实际添加签名。但是我不清楚在签署 HLKX 包时这是如何完成的。是否有任何(有用的)文档或代码示例说明如何实现这一目标?
标签: windows certificate driver signing hsm