java-xades4j中缺少CountersignedSignature类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-xades4j中缺少CountersignedSignature类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1944字,纯文字阅读大概需要3分钟。
内容图文
![java-xades4j中缺少CountersignedSignature类型](/upload/InfoBanner/zyjiaocheng/660/206ecc9e7e1d42e8a87d88cb078cc059.jpg)
我注意到在以xades4j签名的文档中,“带签名的签名的引用”中没有Type =“ .. CountersignedSignature”.在document.signed.bes.cs.xml中的xades4j单元测试中也是如此.
另一方面,在xades4j.properties.CounterSignatureProperty中,我可以看到定义的以下属性:
public String COUNTER_SIGNATURE_TYPE_URI = "http://uri.etsi.org/01903#CountersignedSignature";
如何强制Xades使用该属性?如果缺少type属性,则在使用其他第三方软件验证文档时会遇到问题.
我使用了SignerBESTest编写的代码.
Document doc = getTestDocument();
Element elemToSign = doc.getDocumentElement();
XadesBesSigningProfile profile = new XadesBesSigningProfile(keyingProviderMy);
final XadesSigner counterSigner = profile.newSigner();
profile.withSignaturePropertiesProvider(new SignaturePropertiesProvider() {
@Override
public void provideProperties(final SignaturePropertiesCollector signedPropsCol) {
signedPropsCol.addCounterSignature(new CounterSignatureProperty(counterSigner));
signedPropsCol.setSignerRole(new SignerRoleProperty("CounterSignature"));
}
});
final XadesSignatureFormatExtender extender = new XadesFormatExtenderProfile().getFormatExtender();
final List<UnsignedSignatureProperty> unsignedProps = new ArrayList<UnsignedSignatureProperty>();
unsignedProps.add(new CounterSignatureProperty(counterSigner));
org.apache.xml.security.Init.init();
final Element sigElem = (Element) documentSource.getElementsByTagName("ds:Signature").item(0);
final XMLSignature xmlSig = new XMLSignature(sigElem, documentSource.getBaseURI());
extender.enrichSignature(xmlSig, new UnsignedProperties(unsignedProps));
提前致谢!
编辑1:
我将补充说,通过修改xades4j源我知道了该解决方案,但是我对只能在源代码中应用的解决方案更感兴趣.
解决方法:
XAdES规范定义了两种管理计数器签名的机制:
>在任意签名上使用Type属性
>使用CounterSignature属性,该属性包含一个计数器签名,该计数器签名实际上是一个封装的签名(包含在原始签名中).
XAdES4j使用第二种方法,因此不包括Type属性.另外,也没有办法在API上强制其存在.也就是说,我可以检查是否容易包含该属性.
内容总结
以上是互联网集市为您收集整理的java-xades4j中缺少CountersignedSignature类型全部内容,希望文章能够帮你解决java-xades4j中缺少CountersignedSignature类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。