我正在尝试规范化一些 xml 文档。如我所见,可以通过执行 CMD 命令使用 XmlStar 来实现
xml c14n --exc-without-comments test_xml.xml > test_xml_canonicalize.xml
我的问题是使用 XmlDsigC14NTransform 类但没有 RSA 签名的 C# 是否可以实现相同的结果,如果可以,如何?
我正在尝试规范化一些 xml 文档。如我所见,可以通过执行 CMD 命令使用 XmlStar 来实现
xml c14n --exc-without-comments test_xml.xml > test_xml_canonicalize.xml
我的问题是使用 XmlDsigC14NTransform 类但没有 RSA 签名的 C# 是否可以实现相同的结果,如果可以,如何?
解决方案:
using (MemoryStream msIn = new MemoryStream(Encoding.UTF8.GetBytes(doc.InnerXml)))
{
var t = new XmlDsigExcC14NTransform(false);
t.LoadInput(msIn);
MemoryStream o = t.GetOutput() as MemoryStream;
string c14N = Encoding.UTF8.GetString(o?.ToArray() ?? throw new InvalidOperationException());
Console.WriteLine(c14N);
}