X500Principal Distinguished Name order

Я использую библиотеку 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
5
задан Daniel 6 June 2012 в 13:20
поделиться