如何从存储在HSM中的私钥中获取公钥

时间:2019-06-11 16:54:05

标签: hsm pkcs#11

我在HSM中存储了一些私钥,但是没有公钥。我想使用PKCS11接口获取相应的公钥。

如果私钥是RSA密钥,则可以从CKA_MODULUS提取模数,从CKA_PUBLIC_EXPONENT提取指数,然后用这两个数字构造公钥。

但是,当涉及ECDSA(或DSA)密钥时,我如何实现相同的目标?
CKA_EC_POINT属性不适用于私钥。
我认为我可以获得的唯一有用信息是来自CKA_EC_PARAMS的曲线参数,这不足以获取公共点。

1 个答案:

答案 0 :(得分:1)

如果您正在使用实现PKCS#11 specification v2.40的PKCS#11库,那么您正在寻找CKA_PUBLIC_KEY_INFO属性。

如果您使用的PKCS#11库实现的PKCS#11规范早于2.40,那么您将无法从EC私钥对象中读取EC公钥值,除非您的设备供应商提供了一些类似于CKA_PUBLIC_KEY_INFO的特定于供应商的属性属性。