1

我有一个 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。现在针对我的具体问题:下一步我能做什么?

杰夫

4

1 回答 1

3

解决方案是定义如下:

\#define XMLSEC_NO_SIZE_T

在包含任何 xmlsec 头文件之前。否则 xmlSecSize 类型的定义将与在 Mac 上构建程序时不同,并且 xmlSecDSigCtx 结构在库中将出现损坏。有关详细信息,请参阅 xmlsec.h。

于 2010-06-18T12:41:10.147 回答