Как проверить цифровую подпись XML в Cocoa?

У меня есть приложение C#, которое использует цифровые подписи XML для подписания файлов лицензий. Я использовал стандартный подход Microsoft, описанный здесь.

Я переношу приложение на MAC и мне нужно проверить подпись. Мой общий вопрос: как лучше это сделать?

Вот что я сделал:

  • Я использовал macport для установки библиотеки Алексея xmlsec1.

  • Использовал библиотеку Chilkat для преобразования моего открытого ключа 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) для проверки DSIG XML.

Результат: мои файлы лицензий не проходят проверку. Вызов xmlSecDSigCtxVerify завершается с ошибкой со статусом=неизвестно. Теперь о моем конкретном вопросе: что мне делать дальше?

Джефф


person Geoff    schedule 29.05.2010    source источник


Ответы (1)


Решение заключалось в том, чтобы определить ниже:

\#define XMLSEC_NO_SIZE_T

перед включением любого из файлов заголовков xmlsec. В противном случае тип xmlSecSize будет определен иначе, чем при сборке программы на Mac, и структура xmlSecDSigCtx будет отображаться в библиотеке поврежденной. См. xmlsec.h для более подробной информации.

person Geoff    schedule 18.06.2010