Плохое производство oid 2.5.4.5 в X509IssuerName, предложение изменить

Я заметил, что во время подписи xades с помощью xades4j элемент X509IssuerName представляет неправильно отформатированное значение эмитента серийного номера, он показывает шестнадцатеричное кодирование PrintableString, я выполняю поиск в коде xades4j и обнаружил, что проблема заключается в классе DataGenBaseCertRefs, если вы установите

cert.getIssuerX500Principal().getName(X500Principal.RFC1779)

в метод генерации вы можете решить эту проблему и получить значение эмитента из этого:

2.5.4.5=#130b3037393435323131303036

к этому

OID.2.5.4.5=07945211006


person Michele Bortolato    schedule 14.10.2014    source источник


Ответы (1)


Я не уверен, что изменение правильное. XML-DSIG указывает, что при кодировании отличительных имен следует использовать RFC 4514. Что касается типа атрибута, в этом RFC говорится:

Если AttributeType определен как имеющий короткое имя (...), используется это короткое имя, descr. В противном случае AttributeType кодируется как десятичное с точками, нумероид, его ИДЕНТИФИКАТОРА ОБЪЕКТА.

В свою очередь, numericoid определяется в RFC 4512 следующим образом:

numericoid = число 1 * (число DOT)

Что касается значения атрибута, можно прочитать:

Если AttributeType имеет десятичную форму с точками, AttributeValue представлен символом числа ('#' U+0023), за которым следует шестнадцатеричное кодирование каждого из октетов кодировки BER. X.500 AttributeValue.

Насколько я понимаю, поскольку короткое имя неизвестно, следует использовать шестнадцатеричное значение. Что вы думаете?

Это на самом деле заставляет меня понять, что xades4j использует RFC 2253, поскольку это значение по умолчанию для getName().

  • Вы также включаете элемент X509IssuerSerial в KeyInfo/X509Data? Он отличается от сертификата?
  • Можете ли вы отправить мне по другому каналу сертификат с этими характеристиками для испытаний?
person lgoncalves    schedule 17.10.2014
comment
Apache Santuario также использует тот же подход, так что на мой первый вопрос дан ответ. См. здесь: svn.apache.org/viewvc/santuario/xml-security-java/tags/ - person lgoncalves; 18.10.2014
comment
Привет, спасибо за ответ, я не могу отправить вам сертификат, который я использовал, но это простой сертификат, выданный центром сертификации, который содержит 2.5.4.5 - id-at-serialNumber эмитента. - person Michele Bortolato; 21.10.2014