问题标签 [xmlseclibs]
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.
php - 有没有 xmlseclibs 的文档?
我已经签署了 XML,但我不知道如何在签名中包含 KeyValue 元素。拥有一些文档将节省大量时间。
下面的代码(如果你有兴趣的话)是我到目前为止用 xmlseclibs 做的事情:
XML 字符串
创建 XML 对象(用于签名)
使用 xmlseclibs 创建签名对象
试图关闭不起作用的 ds: 前缀
访问必要的关键数据
签署 XML 对象
添加公钥
将封装签名附加到 XML 对象
将签名的 XML 代码保存到文件
另外也想从这个库:
- 了解官方和可信赖的存储库,以确保库没有损坏。
- 关闭“ds:”前缀(因为我生成的 XML 的示例和文档均不包含此类前缀)。
- Base64 类型值中的每 X 个字符换行。
- 完全缩进(否则根本没有)。
提前致谢。
php - XML Signature DigestValue is invalid
I am trying to sign XML file with PHP and xmlseclibs. However all validation tools say that my signature is invalid. XMLSpy says: "The calculated digest value doesn't match the digest of reference"
This is my XML:
This is the digest I get:
Methods I used to get it:
1.) PHP:
2.) OpenSSL:
3.) This website: http://hash.online-convert.com/sha1-generator
This is the digest that XMLSpy somehow gets and that works:
How do I get this digest?
php - 使用 PHP 将 WSSE 标头添加到 XML
我目前正在开发一个 WS 客户端,该客户端需要在将其请求发送到服务器之前对其进行签名。为此,我有一个私钥和一个证书,但我正在努力处理安全标头。输出 XML 的预期结构应该是这样的:
我尝试使用 xmlseclibs,但我不知道如何包含所有必需的信息,因为这些示例相当基本。
我想我可以采用 DIY 方式并手动构建标头,但我希望尽可能简单。
有什么线索吗?
附加信息
我目前正在使用 SoapClient 来完成这项任务。问题是,我不知道该怎么做。我发送的 XML 需要对其内容进行签名,我已经手动完成了(使用 c14n 函数并计算其摘要 ..)。但是,为了对整个身体做同样的事情,我需要访问原始 XML(我想),所以我认为这行不通。
我没有尝试手动创建 SOAP 标头,因为我试图避免任何黑客攻击。我正在寻找既易于实施又易于工作的东西。
我的代码目前看起来像这样(将其保持在最低限度以提高可读性):
该xml
变量包含我知道是正确的 XML 代码。它已经在 SoapUI(我必须提供我的密钥和密码)和我的提供商提供的在线测试服务上进行了测试。这意味着发送的数据是 100% 正确的。
但是,我的 PHP 代码以“内部错误”告终。我假设这与缺乏证书等有关。我不确定是否有办法从响应中获取更多信息,但没有关于所述错误的文档。
我一直在玩弄几种格式的选项和密钥库、私钥和证书,但没有得到任何积极的结果。我认为这一切都与没有发送正确的标题有关。
非常感谢。
php - SAML 的正确 XML 规范化
我在验证 SAML 2.0 断言 XML 的签名时遇到了问题。我正在使用来自 simpleSAMLphp 项目的 SAML2 库,而该项目又使用 PHPxmlseclibs
库来签署 XML 并验证签名。
我收到来自我的合作伙伴的以下断言:
签名元素请求独占 C14N 规范化。库库将其xmlseclibs
规范化如下:
然而,我的伴侣实际签署的元素是:
几乎相同,但是没有xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
命名空间。命名空间在xsi
签名 Transform 元素中提到:<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default saml ds xs xsi"/></Transform>
由于签名中的 SHA1 摘要与在元素上计算的摘要 xmlseclibs 不匹配,因此 SAML 身份验证失败。
所以我想知道这里谁是正确的——是否必须包含 xsi 命名空间(即使此命名空间中没有元素),因为它包含在 InclusiveNamespaces 中,或者如果不是,为什么在xmlseclibs
其中包含该命名空间C14N 规范化?
mcrypt - simplesamlphp 失败,因为 mcrypt 库在 Linux 7 中不可用
我们正在尝试simplesamlphp
在 RedHat Linux 7 上作为 SP 运行。代码失败并出现 HP 致命错误:
调用未定义的函数 mcrypt_module_open()。
simplesamlphp
使用xmlseclibs 1.3.1
,而后者又使用mcrypt
,并且mcrypt
在 RedHat Linux 7 上不受支持。有没有人找到解决这个问题的方法?这是xmlseclibs
不使用mcrypt
的版本,还是simplesamlphp
不使用的版本xmlseclibs
?
php - php - xmlseclibs 无法签署我想要的节点
我已经签署与工作相关的 xml 快一年了,今天我发现我做错了(请原谅我的英语不好,这不是我的主要语言)
我为 php 使用 xmlseclibs 库,我希望签名是这样的:
以下示例应该可以帮助我演示我想要做什么。我们有以下 xml 文件:
在我签名后,看起来像这样:
现在,这就是我需要的结构,但是,当我这样做时,符号将应用于所有文档(节点 1 和节点 2),但我只想签署节点 2(这是我得到的错误,感谢 DigestValue,我注意到了)。
但是当我这样做时,我得到了以下信息:
我已经尝试了好几天,但我无法将签名放在我想要的位置(就在已签名的标签下方,而不是在里面)。
有什么想法吗?
我正在使用的功能是这样的:
有人知道该怎么做吗?
linux - 致命错误:xmlsec/xmlsec.h:没有这样的文件或目录
我有一个makefile如下:
这会引发编译错误xmlsec/xmlsec.h: No such file or directory
我已经下载了 xmlsec1 和 libxmlsec1 包,但错误仍然存在。不出所料,文件夹下仍然没有 xmlsec 目录/usr/include/
。有人可以帮我解决我缺少的相关包裹吗?
php - 如何签署复杂的 XML 文档?
我是 XML 和电子签名世界的新手。我正在尝试使用xmlseclibs库签署 XML 文档。
也许有人在签署更复杂的文件时遇到过这种方法。在我的 XML 文档中,我的这个标签没有任何价值,因此我必须在此部分中签署文档:
并使用此代码签署生成的文档:
PHP
结果
如您所见,签名出现在文档的末尾,但我需要的是在上述标签中生成签名。有人遇到过这种不便吗?
php - 如何使用证书发送 SOAP 数字签名消息
我想使用证书签署 XML 文档。它应该看起来像:
我尝试使用 XMLSecLibs,但不幸的是它不能很好地工作。首先,我不知道如何使用该工具添加包容性命名空间,也许这是正确签名的关键?我还尝试通过更改对上述模板的引用来复制摘要值和签名值,但它不起作用(我从 SOAP 服务器收到消息:“验证消息时遇到安全错误原因:签名或解密无效”)。
有一些丑陋的代码试图签名:
有人可以帮我吗?也许只缺少一个包含命名空间?我指望你,因为我没有想法..
此致
php - 如何将签名添加到 XMLdocument 中的特定位置?
我有 XML 文档:
我尝试这样做:
在错误位置使用 Singnature 的输出是:
我想将签名节点放在 ISSUER 和 ARTIFACT 之间。这个位置对于正确发送 SOAP Envelope 非常重要。有可能的?