使用Java验证Lotus Forms XML数字签名 - 编程入门网
xforms:instance [@id="Generated"]/data/page1/signature1/
ds:Signature
</dsxp:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#
sha1"></ds:DigestMethod>
<ds:DigestValue></ds:DigestValue>
</ds:Reference>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2002/06/
xmldsig-filter2">
<dsxp:XPath Filter="intersect">here()/ancestor::
ds:Signature[1]/ds:Object [sigmeta:metadata]</dsxp:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#
sha1"></ds:DigestMethod>
<ds:DigestValue></ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue></ds:SignatureValue>
<ds:Object>
<sigmeta:metadata>
<sigmeta:timestamp>
<sigmeta:signtime></sigmeta:signtime>
<sigmeta:dst></sigmeta:dst>
<sigmeta:date></sigmeta:date>
</sigmeta:timestamp>
</sigmeta:metadata>
</ds:Object>
</ds:Signature>
</signature1>
</page1>
</data>
</xforms:instance>
</xforms:model>
使用Java验证Lotus Forms XML数字签名(2)时间:2011-05-15 IBM Eric FuXML 签名包含一个表示签名内容的 Reference 元素。Reference 不具有 URI 属性,在 XFDL 文档中这表示整个文档都应当被签名隐藏。Reference 然后包含 一个 Transform,可以去掉生成的 XML 签名。这一步是必需的,因为 XML 签名 被封装在已签名的 XFDL 文档的内部。当所引用的资源(XFDL 文档)的数字指纹 被计算后,Reference 的 DigestValue 元素将为空。计算结果随后被存储到 DigestValue 中,这将修改 XFDL 文档。然而,实际上没有发生修改(从 XML 文 档中去除 XML 签名),这就是我们从对其计算摘要的内容中去掉已封装签名的原 因。 在清单 1 中,SignedInfo 中还有一个 Reference。XML 签名可以对创建者所 需要的任意数量的资源进行签名。在本例中,我们使用它对生成的 XML 签名的额 外元数据进行签名。例如,这一特性可用于在生成的 XML 签名中包含一个简单的 XAdES 时间戳。 图 1. 样例签名表单 验证签名表单 查看应用程序(比如 IBM Lotus Forms Viewer)或程序可以使用一个私有密 匙对表单进行签名。下载 小节提供了一个未进行签名的样例表单。建议用户下载 Lotus Forms Viewer 来对表单进行签名并理解其工作原理。IBM Lotus Forms Server 还 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |