2010-05-29 25 views
1

我有一个使用XML数字签名来签署许可证文件的C#应用​​程序。我使用了标准的微软方法here如何验证Cocoa中的XML数字签名?

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

这是我做了什么:

  • 我用macport安装阿列克谢的xmlsec1库。

  • 使用的奇尔卡特库到我的XML的公共密钥转换为PEM文件

    Chilkat.PublicKey PUBKEY =新Chilkat.PublicKey(); pubKey.LoadXml(publicKeyXml); pubKey.SaveOpenSslPemFile(“publicKey.pem”);

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

结果:我的许可证文件无法验证。对xmlSecDSigCtxVerify的调用失败,状态=未知。现在针对我的具体问题:接下来我可以做什么?

杰夫

回答

3

的解决方案是以下定义:

\#define XMLSEC_NO_SIZE_T 

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