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

如何在Cocoa中验证XML数字签名?,cocoa,openssl,xml-signature,xmlsec,Cocoa,Openssl,Xml Signature,Xmlsec,我有一个C#应用程序,它使用XML数字签名来签署许可证文件。我使用了所描述的标准Microsoft方法 我正在将应用程序移植到MAC,需要验证签名。我的一般问题是如何最好地做到这一点 这就是我所做的: 我使用macport安装了Aleksey的xmlsec1库 使用Chilkat库将我的XML公钥转换为PEM文件 Chilkat.PublicKey pubKey=新的Chilkat.PublicKey(); LoadXml(publicKeyXml); SaveOpenSslPemFile(“

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

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

这就是我所做的:

  • 我使用macport安装了Aleksey的xmlsec1库

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

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

  • 编译并运行alekseys示例程序。请参见()以验证XML dsig

结果:我的许可证文件无法验证。调用xmlSecDSigCtxVerify失败,状态为未知。现在我要问一个具体的问题:下一步我能做什么


杰夫

解决方案是定义如下:

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