使用数字签名签署 XML

Posted

技术标签:

【中文标题】使用数字签名签署 XML【英文标题】:Sign XML with digital signature 【发布时间】:2016-12-14 06:45:43 【问题描述】:

我正在使用一些网络服务,它需要通过 HTTP 发布请求发布经过数字签名的 XML。 他们只给了我一个文件 (key.dat),我应该将其应用于我的 XML。 我该怎么做?

【问题讨论】:

【参考方案1】:

你可以看一下here:

private static XmlElement GetXmlDigitalSignature(XmlDocument x, AsymmetricAlgorithm key)

    var signedXml = new SignedXml(x)  SigningKey = key ;
    var reference = new Reference  Uri = "", TransformChain = new TransformChain(), ;

    reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());

    signedXml.AddReference(reference);
    signedXml.ComputeSignature();

    return signedXml.GetXml();


var signature = GetXmlDigitalSignature(xmlDocument, algorithm);
xmlDocument.FirstChild.AppendChild(xmlDocument.ImportNode(signature, true));

【讨论】:

谢谢,但我真正需要的是将我的 key.dat 加密到 AssymmetricAlgorithm 密钥中。

以上是关于使用数字签名签署 XML的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 etoken c# 的不可导出私钥签署 xml 请求

如何用python签署数字签名?

签署二进制文件(不是代码签名)

Java - 使用 ECDSA(椭圆曲线)创建 XML 数字签名

接收方无法验证签名的 XML 消息

如何计算对包括 SignedProperties 的 XML XAdES 的签名?