我在HSM中存储了一些私钥,但是没有公钥。我想使用PKCS11接口获取相应的公钥。
如果私钥是RSA密钥,则可以从CKA_MODULUS提取模数,从CKA_PUBLIC_EXPONENT提取指数,然后用这两个数字构造公钥。
但是,当涉及ECDSA(或DSA)密钥时,我如何实现相同的目标?
CKA_EC_POINT属性不适用于私钥。
我认为我可以获得的唯一有用信息是来自CKA_EC_PARAMS的曲线参数,这不足以获取公共点。
答案 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
的特定于供应商的属性属性。