Как я могу использовать libssl с Какао на Lion? - PullRequest
0 голосов
/ 18 января 2012

Я ссылаюсь на сборку статической библиотеки из источника, включая локальные заголовки, а не заголовки в /usr/include, но списки Xcode все еще могут функционировать как устаревшие, и он не может найти символы. Кто-нибудь получил libssl, работающий над Lion?

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Да, функции SSL устарели в Lion.

Вместо этого вы должны использовать вещи из CommonCrypto . По сути, он имеет замены для всех функций SSL, и они обычно совместимы.

Например, если вы используете MD5 (openssl / md5.h), вы получите эти устаревшие предупреждения. Вы можете включить CommonDigest и использовать функции CC_MD5_ * вместо старых MD5_ *.

Вы также должны иметь возможность создавать заголовок совместимости для поддержки других систем. Что-то вроде:

#if defined( __APPLE__ )

    #include <CommonCrypto/CommonDigest.h>

    #ifdef MD5_DIGEST_LENGTH

        #undef MD5_DIGEST_LENGTH

    #endif

    #define MD5_Init            CC_MD5_Init
    #define MD5_Update          CC_MD5_Update
    #define MD5_Final           CC_MD5_Final
    #define MD5_DIGEST_LENGTH   CC_MD5_DIGEST_LENGTH
    #define MD5_CTX             CC_MD5_CTX

#else

    #include <openssl/md5.h>

#endif

Это только для MD5, но вы должны быть в состоянии сделать некоторые для большинства других функций.

EDIT

CommonCrypto поддерживает только симметричное шифрование через CCCryptor.

Если вам нужно асимметричное шифрование, вы должны использовать Framework безопасности .

Обязательно ознакомьтесь с Руководством по программированию Security .

0 голосов
/ 20 января 2012

Для любого, кто придет за мной, у Apple Security Framework есть то, что вы ищете, в частности SecKeyGeneratePair, SecItemCopyMatching (для получения ключей из цепочки для ключей), SecItemExport (для экспорта в формат PEM) и SecKeyCreateFromData (сделать ключ из NSData).Подпишите и убедитесь, что все сделано с SecTransform s.Apple имеет разумную документацию для всех этих функций, если вы ищете правильные термины.

...