X500Principal Distinguished Name заказ
Я использую библиотеку Bouncycastle для генерации сертификатов из запросов PKCS10 с использованием класса X509v3CertificateBuilder.
Он возвращает построение объекта X509CertificateHolder, который содержит сгенерированный сертификат. Если я вызываю getIssuer для держателя, он возвращает отличительное имя эмитента в правильном порядке (то же самое возвращается, если я вызываю getSubjectX500Principal () для сертификата эмитента), если я анализирую закодированную версию из держателя с помощью java CertificateFactory, getIssuerX500Principal () метод сгенерированного сертификата возвращает DN в обратном порядке, что не так?
Вот пример кода того, что я пытаюсь сделать:
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