Estoy usando la lib de Bouncycastle para generar certificados a partir de solicitudes PKCS10 utilizando la clase X509v3CertificateBuilder.Nombre distinguido X500Principal order
Devuelve crear un objeto X509CertificateHolder que contiene el certificado generado. Si llamo a getIssuer en el titular, devuelve el nombre completo del emisor en el orden correcto (lo mismo se devuelve si llamo a getSubjectX500Principal() en el certificado del emisor), si analizo la versión codificada del titular utilizando java CertificateFactory, el El método getIssuerX500Principal() del certificado generado devuelve el DN en el orden inverso, ¿qué ocurre?
Aquí es un código de ejemplo de lo que estoy tratando de hacer:
X509CertificateHolder holder = certBuilder.build(sigGen);
holder.getIssuer(); //Returns the DN in the correct order (same as in issuer cert)
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new ByteArrayInputStream(holder.getEncoded()));
cert.getIssuerX500Principal().getName(); //Returns issuer DN in reverse order