Sto utilizzando la libreria Bouncycastle per generare certificati dalle richieste PKCS10 utilizzando la classe X509v3CertificateBuilder.X500Principal Distinguished Name order
Restituisce un oggetto X509CertificateHolder che contiene il certificato generato. Se chiamo getIssuer sul titolare, restituisce il nome distinto dell'emittente nell'ordine corretto (lo stesso restituito se chiamo getSubjectX500Principal() sul certificato emittente), se analizzo la versione codificata dal titolare utilizzando java CertificateFactory, il Il metodo getIssuerX500Principal() del certificato generato restituisce il DN nell'ordine opposto, cosa c'è che non va?
Ecco un codice di esempio di quello che sto cercando di fare:
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