问题标签 [xml-signature]
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.
.net - 使用 XPath Filter 2.0 转换在 .NET 中生成 XML 签名
我正在尝试在 .NET 应用程序中生成XML 签名。我还想在此签名中使用XPath Filter 2.0转换。
System.Security.Cryptography.Xml命名空间提供了实现 XML 签名规范的类。然而,.NET 似乎只支持XPath 过滤,如 xmldsig-core 规范中描述的XmlDsigXPathTransform类。这与 XPath Filter 2.0 不同。
我应该研究 XPath Filter 2.0 规范并尝试实现我自己的Transform类吗?或者有没有更简单的方法可以继续?
.net - 使用 SignedXml.ComputeSignature 将签名添加到配置文件后的“无法识别的配置部分”
我有一个使用 .NET 3.5 Framework 构建的 Windows 窗体应用程序,它自托管 WCF 服务。服务和应用程序自行正常运行。
担心在 app.config 文件中可以访问地址和绑定信息,我决定使用 System.Security.Cryptography.Xml.SignedXml.ComputeSignature 添加数字签名。然后我将签名添加到 app.config 并保存。这会在 app.config 中创建一个 Signature 元素,作为 app.config 文件的配置节点的最终子节点。
我添加了一个功能来在启动服务之前检查签名。该应用程序正确验证了签名,但是当尝试启动服务时,它会引发以下嵌套错误:
- 'System.ServiceModel.DiagnosticUtility' 的类型初始化程序引发了异常。
2.配置系统初始化失败
3.无法识别的配置节签名。
我将 Signature 元素放在 app.config 中的哪个位置似乎并不重要。签名总是能正确验证,并且服务总是会抱怨无法识别的配置部分。注释掉 app.config 中的 Signature 元素和代码中的签名检查,服务将再次启动而没有问题。
为什么服务会抛出这些错误,我可以做些什么来解决它们?
这是带有编辑的应用程序名称和 URL 的 app.config:
c# - 我可以在沙箱中验证 XML 签名吗?
我有一些代码可以检索一些 xml,然后尝试验证 xml 签名。根据this post,SignedXml类型的验证方法需要完全信任才能进行xml签名验证。由于我的代码需要在沙箱中运行,我没有完全信任,因此引发了安全异常。
如果是这种情况,那么是否有其他方法来验证 xml 签名(最好不需要购买第 3 方软件)?
c# - 将 byte[] 转换为 AsymmetricAlgorithm 的一些实现
我需要将 byte[] 转换为 AsymmetricAlgorithm 的一些实现。我正在尝试签署 a xml
,但我只能在字节数组中获取私钥。如果有人需要知道,我正在使用相当不错的PKCS11.Net来访问令牌。
我用来签名的类是这样的:System.Security.Cryptography.Xml.SignedXml
该属性只要求 AsymmetricAlgorithm : XmlSignedXml.SigningKey
;
有谁知道该怎么做?
.net - 使用 SignedXml 验证部分文档的 xml 签名
我正在使用 SignedXml 类来验证 XML 文档中的签名。签名仅指文件的一部分。
我能够验证签名,但如何确定签名正在签署我需要验证的文档的特定部分?有人可以简单地使用相同的密钥签署文档的不同部分,并且签名仍然有效。
java - 如何使用证书和私钥在 java 中签署 XML 文档?
我正在尝试使用从数据库中正确检索到的私钥和证书签署 XML 文档。这个私钥和证书是给我的,所以我不太确定 Java 中的提供者等价性。为了签署 XML 文档,我使用了本教程
我为此实现的代码如下:
运行程序时出现以下异常:
有什么建议么?
c# - Java 中 XMLSignature 中的 DigestValue 与 C# 不同
我有一个在 C# 中运行的程序,它将 XMLSignature 应用于 xml 文档。在这两种情况下(C# 和 Java)我都有相同的 XML 文档,但我没有得到相同的摘要和签名值。我知道我的 C 程序的结果是正确的,但我无法在 Java 中正确地得到它们。
这里是 C# 代码:
Java 代码如下:
使用相同的 xml 文档、证书和私钥,我在每个中都得到以下摘要值:
爪哇:
EZTMZuMvR9D0WSUgbT2AdFYTBh4=
C#:
EsJDdWiUMIOaQp9CC26wQWA6kJ0=
为什么会这样?
c# - WCF 客户端 - 指定 WS-Security Timestamp 签名的签名算法
我有一个 WCF 客户端正在向非 WCF 服务发送消息,并且该服务在处理用于签署 WS-Security Timestamp 元素的 HMAC-SHA1 签名方法时遇到问题。理想情况下,我们希望使用 RSA-SHA1 签名方法,但我无法让 WCF 使用该签名方法。
我使用的绑定是一个自定义绑定,它允许我通过 HTTPS 发送 SAML 2.0 令牌:
传出请求中的签名如下所示:
注意<SignatureMethod>
是http://www.w3.org/2000/09/xmldsig#hmac-sha1
一件有趣的事情是 HMAC-SHA1 算法是对称的(一个密钥来加密和解密),而 RSA-SHA1 是不对称的(需要一个密钥来加密和一个解密)。我认为 WCF 使用 HMAC-SHA1 算法,因为它是对称的,并且正在交换的 SAML 令牌是共享密钥(密钥)。使用 SAML 令牌作为对称算法的共享密钥是有意义的,但是是否有一个选项可以强制 WCF 使用像 RSA-SHA1 这样的非对称算法?
通过更改 binding/security/defaultAlgorithmSuite 属性,我已经能够对签名方法进行一些细微的修改,但是各种选项不能让我在此处指定 RSA-SHA1:
defaultAlgorithm = 默认值:
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
默认算法 = Basic256:
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
默认算法 = Basic256Rsa15:
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
默认算法 = Basic256Sha256:
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
默认算法 = Basic256Sha256Rsa15:
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
有没有办法强制 WCF 在时间戳签名上使用 RSA-SHA1?
silverlight - Silverlight 4/5 数字签名 XML
我读到您无法从 Silverlight 访问 Windows 证书存储(至少在 SL3 和 4 中)。是否有可能从 SL5 获得它?如果没有,我如何从 Silverlight 签署 XML?
xml - Node.js 上的 XML 签名支持
有人知道是否有任何 node.js 模块支持 XML 签名吗?谢谢!