X500Principal Orden de nombre distinguido

Estoy utilizando la biblioteca Bouncycastle para generar certificados a partir de solicitudes PKCS10 utilizando la clase X509v3CertificateBuilder.

Devuelve la creación de un objeto X509CertificateHolder que contiene el certificado generado. Si llamo a getIssuer en el titular, devuelve el nombre distinguido 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 el CertificateFactory java, el getIssuerX500Principal () el método del certificado generado devuelve el DN en el orden opuesto, ¿qué ocurre?

Aquí hay 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