2010-05-29 2 views
1

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

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

Это то, что я сделал:

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

  • Используется библиотека Chilkat конвертировать мой открытый ключ XML в PEM файл

    Chilkat.PublicKey Публичных = новый Chilkat.PublicKey(); pubKey.LoadXml (publicKeyXml); pubKey.SaveOpenSslPemFile ("publicKey.pem");

  • Скомпилирован и запущен образец программы alekseys. См. (http://www.aleksey.com/xmlsec/api/xmlsec-verify-with-key.html) для проверки XML-документа.

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

Geoff

ответ

3

Решение было определить следующим образом:

\#define XMLSEC_NO_SIZE_T 

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