gpt4 book ai didi

C# 使用 XAdES 对 XML 文档进行签名

转载 作者:数据小太阳 更新时间:2023-10-29 02:14:10 32 4
gpt4 key购买 nike

我需要使用 XAdES 模板签署 xml。我正在使用 2 个引用。第二个问题是,如果我添加 Transform,它将正常工作(signedXml.CheckSignature() 返回 True),如果没有此转换,它将返回 False。

我的代码:

System.Security.Cryptography.Xml.Reference reference2; 
System.Security.Cryptography.Xml.SignedXml signedXml;
...
reference2 = new Reference();
reference2.Type = "http://uri.etsi.org/01903/v1.1.1#SignedProperties";
reference2.Uri = "#SignedPropertiesId";
//reference2.AddTransform(new XmlDsigExcC14NTransform()); IF I COMMENT THIS LINE IT WONT WORK
signedXml.AddReference(reference2);

signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();
xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));

signedXml.CheckSignature(); //return false if dont use Transform in second REF

signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();
xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));

签名的第二部分。

<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>cert...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<xds:QualifyingProperties Target="#SignatureId">
<xds:SignedProperties Id="SignedPropertiesId">
<xds:SignedSignatureProperties>

是 .NET 中的问题吗?

谢谢。

最佳答案

你做错了 XAdES 的节点在签名节点中,在对象节点之后,你需要正常计算签名然后添加对象节点和必要的节点,这可以通过编程轻松完成,这取决于 wut您要实现的 XAdES 级别。

关于C# 使用 XAdES 对 XML 文档进行签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529782/

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