【问题标题】:Mapping problem of PKCS11 EC public key to BC PKCS10 objectPKCS11 EC公钥到BC PKCS10对象的映射问题
【发布时间】:2019-11-22 11:07:58
【问题描述】:

我已经使用 PKCS11Interop 库在 HSM 中创建了 EC 密钥对,我需要使用此密钥创建 PKCS10 证书请求。为了生成 PKCS10,我使用 BC,在这种情况下,我需要将公钥设置为 PKCS10 请求的参数。 在 BC 我需要获取公钥作为 ECPublicKeyParameters 用于放入 PKCS10 对象。我不知道如何将 PKCS11 公钥映射到 ECPublicKeyParameters。

或者这种类型映射有其他方法吗?

提前致谢!

【问题讨论】:

  • 答案解决了你的问题吗?

标签: bouncycastle elliptic-curve pkcs11interop


【解决方案1】:
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
import org.bouncycastle.crypto.util.PublicKeyFactory;

AsymmetricKeyParameter keyParameters = PublicKeyFactory.createKey(publicKey.getEncoded());
if (keyParameters instanceof ECPublicKeyParameters) {
    ECPublicKeyParameters ecPublicKeyParameters = (ECPublicKeyParameters) keyParameters;


}

【讨论】:

  • 感谢您的回答。在你的代码中必须使用 pkcs11 公钥的哪些属性?我可以从 pkcs11 发布密钥中获取 cka_ec_params、cka_ec_point。从这些属性中,我怎样才能创建正确的 BC ecpublickey 参数?
  • 我以为您已经从密钥对生成中获得了一个 PublicKey 对象。这是我的代码中的 publicKey 对象。就是这样。对 PublicKeyFactory.createKey() 的调用已经生成了 ECPublicKeyParameters 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多