问题标签 [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.

0 投票
4 回答
20718 浏览

c# - 使用 SignedXml 类添加基于 Id 属性的引用时出现“格式错误的引用元素”

当存在命名空间前缀时,无法通过 Id 属性对元素进行签名:

ComputeSignature()此处将因“格式错误的参考元素”而失败,该怎么做?

0 投票
1 回答
1244 浏览

java - 使用 XPATH 创建的 XML 数字签名不断向每个节点添加架构定义

我有一个简单的 XML,我使用 XPATH 查询对 XML 进行了签名,例如 //*[@isDigSignReqd = 'true']。现在,签名的 XML 包含如下属性

xmlns="http://www.xyze.org/xservice" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

连接到每个节点。XML 签名验证发生得很好。但是,我可以删除这些属性吗?我对 XML 签名和所有这些都很陌生。请帮忙。

这就是 XML 的样子(部分)



变换是这样创建的。


0 投票
3 回答
13217 浏览

xml - 在 Java 中管理 XAdES 签名的库

我正在寻找一个允许创建和验证 XAdES 签名的 Java 库(格式越多越好:XAdES-BES、XAdES-C、XAdES-XL 等)。

我发现的最有趣的实现是:

  • Java XML 数字签名 API (JSR 105)(= Java SE 6 中包含的一种),它基于以下一种;
  • Apache Santuario ( http://santuario.apache.org/ ),它只为基本功能提供有用的支持;
  • XAdES4j(http://code.google.com/p/xades4j/,很好的演示:http ://prezi.com/06vyxbgohncv/xades4j-en/ ),这似乎很有趣,因为它“能够生产、验证和扩展主要 XAdES 形式的签名:XAdES-BES、XAdES-EPES、XAdES-T 和 XAdES-C。此外,通过丰富现有签名支持扩展形式。然而,它是一个系统的结果,它只有一个开发人员跟随;
  • eID 数字签名服务 ( http://code.google.com/p/eid-dss/ ),由比利时联邦 ICT 部门开发,支持 XAdES-XL 格式。

您会建议使用或构建哪一个?

0 投票
2 回答
5490 浏览

c# - Java 等效于 C# XML 签名方法

我编写了以下 .NET Framework 3.5 C# 方法,该方法获取 XML 文档的位置和 X509 数字证书(带有私钥)的对象表示,并将 XML 文档作为嵌入了 XML 签名 (XMLDsig) 的对象返回作为根的第一个子元素。

问题是我迫切需要能够使用 Java SE 6 执行完全相同的过程,但是我已经很久没有编写任何 Java 并且不知道从哪里开始。

任何人都可以在 Java 代码中提供产生完全相同的XML 输出的等效方法吗?

0 投票
1 回答
3129 浏览

ios - 将 XML Dsig 格式转换为 DER ASN.1 公钥

我正在开发一个 iPhone 应用程序,该应用程序以以下形式从 ASP.NET Web 服务中检索 RSA 公钥:

然后我需要将此响应转换为NSData *适当的格式(来自一些激烈的谷歌搜索,很可能是“ASN.1 DER”二进制格式。我已经准备好将这两个部分从它们的 Base64 表示形式转换为原始二进制值的代码,但我终其一生都无法找到一种合理的方法来创建一体式二进制密钥。

等待key的代码是来自Apple的示例项目-addPeerPublicKey:(NSString *) keyBits:(NSData *)的类的方法(代码在这里)。SecKeyWrapperCryptoExercise

我很乐意以另一种方式实现这一点——我只需要加密一个字符串(不需要解密)。不过,据我所知,如果我能缩小这种格式差距,内置的安全框架就可以满足我的需求。如果有一种方法可以转换密钥并从 Web 服务发送 Base64 编码的密钥,那也适用于我——但我也找不到任何 ASN.1 编码的方法。

0 投票
1 回答
11131 浏览

c# - SignedXml 的自定义命名空间问题

当我签署包含命名空间前缀和命名空间引用的 XML 文档然后对其进行验证时,就会出现问题。在这种情况下,验证总是失败(返回 false)。当我从 XML 中删除命名空间前缀和命名空间引用时,签名和验证工作正常。

你可以帮帮我吗 ?

这是我的代码:

从 SignedXml 继承的类

签署xml的类

在这里我调用签名方法

并用于验证

这是我签名的xml

预先感谢您!

0 投票
2 回答
3000 浏览

c# - X509Certificate 和 XmlDsig

我需要在 C#(4.0)中使用 X509Certificate(应验证签名的人提供的 .p7b 文件)签署 XML(XMLDSig 信封) 我没有安全经验,我的知识仅限于一些基本概念关于密码学。

这是我所做的:

1)我已将证书安装在:证书 - 当前用户 - 受信任的根证书。

2)从.net我成功地用这个代码加载了证书:

3)我尝试使用证书的公钥用以下代码创建签名;

但是在计算签名时出现异常:“对象仅包含密钥对的公共部分。还必须提供私钥。”

我检查了证书中的 HasPrivateKey 属性,它是错误的。我的(基本)理解是我不应该拥有私钥,我应该能够使用公钥创建签名。

我错过了什么?

提前致谢

0 投票
1 回答
529 浏览

digital-signature - XML 数字签名证书

我想知道我需要从证书颁发机构获得哪种类型的证书才能在 .NET 中签署 XML 文档 (XML-DSIG)?我应该获得 SSL 证书吗?

我们有一张 xml 电子发票,我们需要使用数字证书对其进行签名。

有什么想法吗?

0 投票
0 回答
532 浏览

digital-signature - 使用公钥验证分离的 xml 签名

我想使用公钥验证分离的 XML 签名。

我尝试过使用 gpg 和 openssl 但没有成功。任何人都可以向我提供使用公钥进行验证的步骤。

0 投票
1 回答
3440 浏览

xml - 如何在 iOS 应用程序中验证 XML 签名?

我正在从事的一个 iOS 项目让我进入了 XML 数字签名的世界;我需要验证 SAML 断言的数字签名。

我已经阅读了很多关于验证 XML 签名的内容,并且我想我了解了它如何使用私钥对摘要进行签名,并且我可以使用公钥(它应该在包含的 x509 证书中)来验证它,所以我可以确定 SAML 令牌的来源。

我找到了一个 C 库xmlsec,它看起来有很多我需要验证签名的代码,并且一直在努力实现它。但是,我一直无法弄清楚。据我了解,我很确定我必须用我的代码编译库。我已将源代码复制到我的项目中,但在编译过程中出现关于未定义事物的错误。

在我花费无数小时沿着这条道路前进之前,我想我会联系社区,看看是否有人有验证 xml 数字签名的经验,以及他们是否可以就在 iOS 项目中实现它提供见解。

对于它的价值,这是我从单点登录服务获得的 SAML 断言的一部分: