程序使用的某些信息使用 xml 格式的输入文件。这些文件具有以下结构。
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="urn:envelope">
<MyData Id="MyDataId">
<!-- some data -->
</MyData>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig-more#rsa-sha256" />
<Reference URI="#MyDataId">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<DigestValue>
<!-- digest for MyData -->
</DigestValue>
</Reference>
<Reference URI="#KeyInfoId">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<DigestValue>
<!-- digest for KeyInfo -->
</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
<!-- signature from SignedInfo data -->
</SignatureValue>
<KeyInfo id="KeyInfoId">
<X509Data>
<X509Certificate>
<!-- some certificate -->
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</Envelope>
我发现一些示例只有一个引用标记,但没有多个或仅引用,这些引用已经存在于 xml 文件的其余部分中。我知道编码是XADES-BES。有谁知道能够验证此类 XML 文件的 .NET 1.1 组件吗?提前致谢。
Regards,
René
您显示的 XML 并不是真正的 XAdES 签名,而是 XMLDSIG。你可以这么说,因为没有合格属性节点(XAdES 添加此节点,该节点必须位于Object标签,作为签名 node).
正如里卡多之前所说,我正在从事的项目(XAdES .Net 项目 http://xadesnet.codeplex.com)应该能够验证您提供的 xml。如果没有,请随时在我们的问题跟踪器中添加问题(您可能需要在 codeplex 上注册,但它是免费的)。
此时,我们仍在构建库的骨架(真正的目标是在.NET 中实现 XAdES),因此您可能会发现错误或缺少功能。如果是这样,请再次随时添加您需要的任何问题。
另外,我们使用 .NET Framework 3.5 开发了该库,因此,如果您真的只能使用 1.1,它将无法工作:( Framework 1.1 更改后的安全层,因此它不向后兼容。我认为使用 2.0 和多于。
我希望它有帮助。
Regards,
路易斯·M·维拉
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)