问题标签 [xmlsec]

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 投票
3 回答
2779 浏览

c - C中的XML签名验证库?

是否有任何可用的 C 语言库来验证 XML 签名?我只能从http://santuario.apache.org/cindex.html找到一个 C++ 库。

0 投票
1 回答
2867 浏览

c - 如何为 xmlsec 定义加密库

我想使用任何可用的开源库在 C 中编写 XML 签名验证代码。我正在尝试使用 xmlsec。我安装了http://www.zlatkovic.com/libxml.en.html中提到的依赖库。但是当我尝试编译http://www.aleksey.com/xmlsec/api/xmlsec-notes-verify-x509.html中给出的示例代码时,出现错误

“./xmlsec/crypto.h:61:2:错误:#error 未定义加密库”。

我正在尝试使用 gcc 在 ubuntu 中编译它。

有人可以指出如何定义crptolibrary(在这种情况下我想使用openssl)。我使用“./configure make makeinstall”命令安装了 openssl。

0 投票
1 回答
83 浏览

xml - xmlsec 在退出时是否返回 0?

我需要知道,如果文件通过了良好的身份验证,xmlsec 是否返回 0?

0 投票
2 回答
12076 浏览

php - 如何使用 PHP/linux 工具为封装的 XML 签名生成 DigestValue 和 SignatureValue

我一直在尝试寻找一些关于如何为 XML 签名(WSDL)生成 DigestValue 和 SignatureValue 的示例。

下面是应用程序的示例 SOAP:

我有一个来自应用程序提供商的示例,我似乎无法生成与示例相同的 DigestValue 和 SignatureValue。根据应用程序文档,我需要从整个 Body 部分创建 digestValue。

我知道我必须规范化,sha1,然后是base64encode。但是我如何规范化身体部分?(sha1 和 base64 编码很容易理解)。

最初我想尝试创建一个字符串变量:

但后来我发现 PHP 中没有 c14n 函数这样的东西(至少对于像 var 这样的字符串,以及 PHP 5.2 及以下版本;不用担心,我有 5.2.6)。

我看了看 xmlseclibs.php 代码,它似乎使用 DOMelement 对象来获取 C14N 函数。我对DOMelement是什么不是很熟悉..

我尝试使用 xmlseclibs.php 对我的 XML 进行签名,但它似乎不起作用,我从应用程序中收到“签名无效”错误。

有人可以帮助启发新手(阅读,我:))吗?

非常感谢您的合作。

0 投票
1 回答
892 浏览

c++ - 使用 libxmlsec 从内存中加载 RSA 私钥

我目前在我的 C++ 软件中使用libxmlsec,并尝试从内存中加载 RSA 私钥。为此,我搜索了 API 并找到了这个函数

它采用二进制数据、大小、格式字符串和几个 PEM 回调相关参数。

当我调用该函数时,它只是卡住了,使用了 100% 的 CPU 时间并且永远不会返回。很烦人,因为我无法找出问题所在。

这是我的代码:

dataconst char*指向我的 RSA 密钥的原始字节(使用i2d_RSAPrivateKey(), 来自OpenSSLdatalendata.

我的测试私钥没有密码,所以我决定暂时不使用回调。

有人已经做过类似的事情了吗?你们有没有看到我可以改变/测试以解决这个问题?

我昨天才发现图书馆,所以我可能会错过一些明显的东西;我只是看不到它。

非常感谢您的帮助。

0 投票
2 回答
2570 浏览

c++ - 在 libxml2 和 xmlsec 中禁用调试输出

在我的软件中,我使用libxml2xmlsec来操作(显然)XML 数据结构。我主要使用 XSD 模式验证,到目前为止,它运行良好。

当客户端输入的数据结构与 XSD 架构不匹配时,libxml2(或 xmlsec)会向控制台输出一些调试字符串。

这是一个例子:

虽然这些字符串对于调试目的很有用,但我不希望它们出现并污染已发布软件中的控制台输出。到目前为止,我找不到这样做的官方方法。

您知道如何抑制调试输出或(甚至更好)将其重定向到自定义函数吗?

非常感谢。

0 投票
1 回答
1437 浏览

cocoa - 如何在 Cocoa 中验证 XML 数字签名?

我有一个 C# 应用程序,它使用 XML 数字签名来签署许可证文件。我使用了此处描述的标准 Microsoft 方法。

我将应用程序移植到 MAC 并需要验证签名。我的一般问题是如何最好地做到这一点?

这就是我所做的:

  • 我使用 macport 来安装 Aleksey 的 xmlsec1 库。

  • 使用 Chilkat 库将我的 XML 公钥转换为 PEM 文件

    Chilkat.PublicKey pubKey = new Chilkat.PublicKey(); pubKey.LoadXml(publicKeyXml); pubKey.SaveOpenSslPemFile("publicKey.pem");

  • 编译并运行 alekseys 示例程序。请参阅 ( http://www.aleksey.com/xmlsec/api/xmlsec-verify-with-key.html ) 以验证 XML dsig。

结果:我的许可证文件无法验证。对 xmlSecDSigCtxVerify 的调用失败并显示 status=unknown。现在针对我的具体问题:下一步我能做什么?

杰夫

0 投票
1 回答
614 浏览

c - 将 SSL 私钥转换为字符串

从 pkcs12 文件中,我使用以下命令提取了私钥和证书 - PKCS12_parse(p12, argv[2], &privatekey, &cert, &ca);

现在,我需要使用私钥和证书来使用 xmlsec 库对 XML 进行签名。

但是, xmlSecCryptoAppKeyLoad() 需要 const char* 格式的密钥。

我该如何进行转换?

或者,我可以使用 xmlSecCryptoAppKeyLoadMemory() 和 privatekey 而无需进行转换吗?

0 投票
1 回答
2884 浏览

apache - XMLSec:签名有什么问题?(“对 URI 的引用没有 XMLSignatureInput”)

我正在使用 apache-santuario 1.4.4 生成此签名消息:

当我将它发送到我正在使用的服务时,它会回复:

我用谷歌搜索了很多,但几乎没有发现任何关于这个错误的信息。是否声明了引用错误?有什么问题?任何想法将不胜感激。

提前致谢。

0 投票
2 回答
8008 浏览

java - 使用 Java XML 数字签名 API 的 xml 签名的摘要值错误

我需要将签名的 XML 文件发送给巴西的政府机构。问题是我的 Java 代码计算的摘要(使用Java XML 数字签名 API )与使用XMLSEC等其他工具生成的摘要不同。

这是我用来为某些 XML 节点生成 XML 签名的代码:

如果我尝试使用 xmlsec 验证生成的 XML,则会收到以下错误:

但是,如果我尝试使用 xmlsec(使用相同的私钥)签署同一个文件(consult.xml),该错误就会消失:

Consult.xml 和 doc-signed.xml(由 xmlsec 生成)之间的区别在于 SignatureValue 和 DigestValue 标记的内容:

咨询.xml:

文档签名.xml:

我不会发布任何一个文件的其余部分,因为它们是相等的,并且会使这篇文章更加冗长。

据我所知,接收此 XML 文件的 Web 应用程序是一个 .NET 应用程序,它计算的签名摘要与我的 Java 代码不同(很像 xmlsec 所做的)。有任何想法吗?