如何使用C++签署XML文档或验证XML文档的签名?

5

主题。我需要在本机C++(不使用.NET)下使用私钥进行签名/验证,使用公钥进行验证。

我在MSDN上看到了一些示例(http://msdn.microsoft.com/en-us/library/ms761363(VS.85).aspx),演示了如何使用CSP对文档进行签名(我不知道这是什么意思)。

对于我的情况,我需要使用来自二进制数据数组的“密钥”(使用DSA加密算法)……有人可以帮助我吗?

提前感谢您。


1
CSP是加密服务提供程序,它是一个.NET的东西。仅供参考。 - Henri
3个回答

4
我推荐使用适合此目的的 libxml2xmlsec
该API一开始可能难以理解,但它运行良好。 xmlsec 使用 OpenSSL 来实现加密部分。
在此提供一个“简短”的示例可能很难,因为这三个库需要一些初始化和大量的 C 调用。

据我所知,xmlsSec不支持DSA,对吗?但我需要它能够与我的密钥配合使用(用于签名/编码的私钥,用于验证的公钥)。您有其他想法吗? 谢谢。 - Budda
我承认我从未涉及DSA。我知道OpenSSL可以很好地处理DSA,而xmlsec依赖于OpenSSL。也许有一种方法可以将“DSA”处理程序添加到xmlsec代码中?你应该在邮件列表上向作者提问。 - ereOn
1
搜索这个问题后找到了答案。刚刚下载了 Windows 的二进制文件,今晚会去看一下。看起来很有希望(提供了 Delphi 绑定,太酷了!) - Leonardo Herrera

2

谷歌的keyczar库也非常易于使用。


忘了说,我需要那个库能够在Windows下工作。但是当前版本(0.6b)有限制。其中之一:-无法在Windows上运行(使用OpenSSL移植应该相对容易,但使用MS CAPI则需要更多的工作)。 - Budda
@Budda:我添加了“windows”标签以使其更明显。 - ereOn

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接