问题标签 [signedxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2161 浏览

c# - SignedXml 规范化方法 - http://www.w3.org/2006/12/xml-c14n11

是否可以将http://www.w3.org/2006/12/xml-c14n11 CanonicalizationMethod 与 SignedXml 一起使用?

正在投掷

谢谢你!

0 投票
1 回答
2074 浏览

c# - 在 .Net 中使用 ECDsa 和 SHA256 签署 XML

我正在尝试在 .Net 中使用带有 ECDsa (ECDsaCng) 和 SHA256 的 SignedXml,我收到一条带有消息“无法创建签名密钥”的“CryptographicException”。有人知道如何实现这一目标,或者我是否应该知道有关 .net 对 ecdsa 的支持的相关信息?先感谢您。

“signedXml.ComputeSignature();”中出现错误 方法调用。

0 投票
0 回答
324 浏览

.net - 验证签名时 SignedXml 无法正常工作

是 Microsoft使用SignedXml类验证签名的示例,由于在代码中将XmlNode转换为XmlElement,它对我不起作用(在 Visual Studio 2013 和 .NET 版本 4.0 中):

“不起作用”是指即使我删除了引用的文件(那些在签名 XML文件中的引用中引用的文件),它也没有抛出任何异常。这意味着它只是没有检查它们。

但是当我以这种方式初始化signedXml时:

它在找不到引用文件时抛出异常并在找到所有引用文件时返回“真实”值(因为签名是正确的)完美地工作。

这意味着在将 XmlNode 转换为 XmlElement 时会发生错误,即使(即使它确实返回了我需要的节点)。我什至尝试用 XmlWriter 编写它并得到了我需要的东西。

问题是我需要将XmlNode 转换为 XmlElement的方式,因为我正在使用的 XML 文件在树的下方有一个Signature元素(也就是说,它不是根节点),我需要使用SelectSingleNodeGetItemByTagName . 我该如何解决这个问题?

0 投票
0 回答
166 浏览

c# - 在 Compact Framework 中手动执行 SignedXml.CheckSignature

我正在为 .net CF 寻找 SignedXml.CheckSignature 的一些实现,但没有成功。如何手动执行此功能?我在具有完整 .net 框架的台式机上使用函数 SignedXml.ComputeSignature 签署了 XML 文件。我需要在 .net CF 中检查这个 XML 文件的签名。我尝试使用 RSACryptoServiceProvider.VerifyData 对照 SignatureValue 检查整个 SignedInfo 节点,但它不起作用。SignedInfo 是否需要一些规范化?

0 投票
1 回答
1424 浏览

xml - 使用 PEM 证书在 Powershell 中验证 XML 签名

我正在尝试创建一个将使用 XML 文档中的数据的 powershell 脚本。但是,在做任何工作之前,我需要通过验证签名来验证 XML 未被篡改。

我有用于以 PEM 格式签署 XML 的证书的公钥副本,但我不知道如何让 powershell 使用该证书。

我已经开始让它工作的关闭是以下代码......

但是,当它运行时,我得到以下异常......

使用“2”参数调用“CheckSignature”的异常:“无法为提供的签名算法创建SignatureDescription。” 在 line:34 char:1 + $Check = $SignedXml.CheckSignature($CertPath, $true) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : CryptographicException

任何帮助,将不胜感激。谢谢!

0 投票
0 回答
235 浏览

.net - 您可以在 .net 中签署一个 Xml 文件,而私钥不在证书存储中吗?

我正在尝试编写一个应用程序,该应用程序将使用存储在数据库中的证书(公钥和私钥)对 xml 文件进行签名。

我遇到的问题是,每当我从文件(而不是从数据库)加载 pfx 文件时,并尝试使用以下方法计算 xml 的签名:

我得到以下异常:

我使用以下内容创建了 pfx:

只是为了进一步澄清这一点。它正在 ASP.NET 网站中使用,我无法将“加载用户配置文件”设置为 true。

0 投票
1 回答
542 浏览

c# - C# SignedXml CheckSignature 抛出 ArgumentNullException

我对 .NET 很陌生,我正在遵循这个MSDN 指南来验证 XML 文档中的签名。

我在第 7 步,在该对象CheckSignature上调用该方法。SignedXml我得到了一个ArgumentNullException,但这不是由我编写的任何代码引起的。我知道指南中存在名称不匹配的问题,并且我已经在我的代码中更正了它们。

当我查看异常详细信息时,它说Param namename并且它正在被传递到System.Security.Cryptography.CryptoConfig.CreateFromName方法中。我已经阅读文档和堆栈溢出问题好几个小时了,我很困惑。

编辑:这是代码。我尝试使用 SAML 断言附带的证书。我仍然得到相同的结果。

0 投票
1 回答
2088 浏览

c# - 如何在 C# 中为 Signature 元素添加前缀

我们正在使用 SignedXml 类对 xml 元素进行签名。要求是在 Ws Security 中添加签名节点以与服务通信。

我们可以对元素进行签名并对其进行验证。在这种情况下,xml示例代码如下

通过使用生成为 < 的此 Signature 元素signature> .... </signature>。但我们想将其生成为 <ds:signature> .... </ds:signature>

尝试显式设置前缀,但之后未验证签名。

您能否指导我们如何实现这一目标?

0 投票
1 回答
1042 浏览

java - SignedXml 检查签名返回 false。

我需要你的帮助。

因此,我在 java 上生成了带有 Xml 签名的文档,当我尝试在 C# 上进行验证时,我得到了false. 然后我在 C# 上生成了带有签名的相同文档,没关系。返回true

这是我在 C# 中生成的 xml:

这是我在java中生成的xml:

我生成了这些文件十亿次,但是这个 C# 代码类似于从 C# 生成的文件,但是我有由 java 生成的问题文件:

System.Security.Cryptography.Xml.SignedXml 是如何工作的。为什么xml签名无效?请帮忙。

0 投票
2 回答
1843 浏览

signedxml - 我可以签名,但无法使用自定义 SHA256 加密在 .NET 4.0 中验证 SignedXML 文档

长话短说,我可以很好地签署文件。但是每次验证它们都会返回错误。我浏览了 google 和 bing 的前 5 或 6 页寻找解决方案,但我发现的每一个“修复”都无济于事。任何帮助将不胜感激,因为我已经尝试解决这个问题一个多星期了。此外,这些证书的私钥不可导出,也不能。我不确定这是否重要。另外,我现在选择不包含 ValidateCertificate,因为它从来没有做到过那么远。它总是在 CheckSignature() 处失败。谢谢你。

这是我用来生成证书的内容:

makecert -a SHA256 -n "CN=JEA2.me" -pe -r -len 2048 -sy 24 -sky 签名 -sv jeame2.pvk jeame2.cer

certmgr /add jeame2.cer /s /r localmachine root

makecert -sk "jea2.me" -iv jeame2.pvk -n "CN=JEA2IIS.me" -eku 1.3.6.1.4.1.311.10.3.12 -pe -sy 24 -ss my -sr localmachine -len 2048 -sky 签名-ic Jeame2.cer IIS-ServerCert-Jeame2.cer

从这里我将它们直接安装到本地机器-> 受信任的根证书颁发机构

这是我的两个 XML 文件: 1.xml:

2.xml: