org bouncy certificate deprecated bouncycastle x509

certificate - org - bouncy castle java



Bouncycastle: X509CertificateHolder a X509Certificate? (3)

En versiones anteriores a r146, era posible crear objetos X509Certificate directamente. Ahora que la API está en desuso y la nueva solo entrega un objeto X509CertificateHolder .

No puedo encontrar una forma de transformar un X509CertificateHolder a X509Certificate .

¿Cómo puede hacerse esto?


Esta es una posibilidad de obtener X509CertificateHolder a X509Certificate y toString . (La primera frase del código es irrelevante)

X509CertificateHolder selfSignedCertificate = CertificateUtils.selfSignCertificate(certificationRequest, keyPair.getPrivate()); byte[] content = selfSignedCertificate.getEncoded(); CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(content)); logger.debug("cert: {}", cert.toString());

........


Otra opción es esta :)

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


Responderé a mis propias preguntas, pero no las eliminaré, en caso de que alguien más tenga los mismos problemas:

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

Y para certificados de atributos:

return new X509V2AttributeCertificate( attributeCertificateHolder.getEncoded() );

No es agradable, ya que es codificación y decodificación, pero funciona.