gpt4 book ai didi

c# - 使用 XadES-BES 算法通过 XMLDSIG 进行 XML 验证

转载 作者:行者123 更新时间:2023-11-30 22:42:48 25 4
gpt4 key购买 nike

程序使用的一些信息使用 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 组件?提前致谢。

问候,

雷内

最佳答案

您显示的 XML 并不是真正的 XAdES 签名,而是 XMLDSIG。您可以看出这是因为没有 QualifyingProperties 节点(XAdES 添加了此节点,它必须位于 Object 标记内,作为 Signature 节点)。

正如 Ricardo 之前所说,我正在从事的项目 ( XAdES .Net Project ) 应该能够验证您提供的 xml。如果没有,请随时在我们的问题跟踪器上添加问题(您可能需要在 codeplex 注册,但它是免费的)。

此时,我们仍在构建库的骨架(真正旨在实现的是 .NET 中的 XAdES),因此您可能会发现错误或缺少功能。如果是这样,请再次添加您需要的任何问题。

此外,我们使用 .NET Framework 3.5 开发了该库,因此,如果您真的只能使用 1.1,它就无法工作:( Framework 1.1 更改后的安全层,因此它不向后兼容。我认为它会工作使用 2.0 及更高版本。

希望对你有帮助。

问候,

路易斯·维拉

关于c# - 使用 XadES-BES 算法通过 XMLDSIG 进行 XML 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com