我正在尝试使用Xades4j验证Xades签名。
其中一些签名是由另一个工具(不是Xades4j)生成的,而这些签名在引用标记中没有Type属性:
<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属性来标识引用标记。
有办法用xades4j验证这种签名吗?
发布于 2013-06-13 13:26:34
除非您更改了源代码,否则无法使用xades4j验证这些签名。我不建议这样做,因为XAdES规范清楚地规定了是强制性的。第6.3.1节:
此外,本文档要求使用此特定ds:Reference元素的Type属性,其值设置为http://uri.etsi.org/01903#SignedProperties。
https://stackoverflow.com/questions/17086725
复制相似问题