web-dev-qa-db-ja.com

Bouncycastle:X509CertificateHolderからX509Certificateへ?

R146より前のバージョンでは、X509Certificateオブジェクトを直接作成することが可能でした。このAPIは廃止され、新しいAPIはX509CertificateHolderオブジェクトのみを提供します。

X509CertificateHolderX509Certificateに変換する方法が見つかりません。

これはどのように行うことができますか?

41
Steffen Heil

他の誰かが同じ問題を抱えている場合に備えて、私は自分の質問に回答しますが、削除はしません。

return new JcaX509CertificateConverter().setProvider( "BC" )
  .getCertificate( certificateHolder );

そして属性証明書の場合:

return new X509V2AttributeCertificate( attributeCertificateHolder.getEncoded() );

エンコードとデコードなので、うまくいきませんが、動作します。

75
Steffen Heil

別のオプションはこれです:)

CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(certificateHolder.getEncoded());
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
1
Diego Palomar