Xades4j: ссылка SignedProperties не найдена

Я пытаюсь проверить подписи Xades, используя Xades4j.

Некоторые из этих подписей генерируются другим инструментом (который не является Xades4j), и эти подписи не имеют атрибута Type в теге Reference:

<ds:Reference URI="#signedProps">
  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
  <ds:DigestValue>KUAGWItLLNF6sNZ3kXy+/6oJyEo=</ds:DigestValue>
</ds:Reference>

у меня есть это исключение, когда я пытаюсь проверить его:

xades4j.verification.QualifyingPropertiesIncorporationException: SignedProperties reference not found
at xades4j.verification.SignatureUtils.processReferences(SignatureUtils.java:221)
at xades4j.verification.XadesVerifierImpl.verify(XadesVerifierImpl.java:132)
at com.jeremp.x4j.App.verify(App.java:110)
at com.jeremp.x4j.App.main(App.java:70)

Я изучил исходный код SignatureUtils.java, и кажется, что API использует атрибут Type для идентификации тега Reference.

Есть ли способ проверить эту подпись с помощью xades4j?

1 ответ

Решение

Нет способа проверить эти подписи с помощью xades4j, если вы не измените исходный код. Я бы не рекомендовал это, поскольку в спецификации XAdES четко указано, что атрибут Type является обязательным. Из раздела 6.3.1:

Кроме того, в настоящем документе ОБЯЗАНО использовать атрибут Type этого конкретного элемента ds:Reference, значение которого установлено на http://uri.etsi.org/01903.

Другие вопросы по тегам