ソースからビルドされた静的ライブラリに対してリンクしており、のヘッダーではなくローカルヘッダーを含め/usr/includeていますが、Xcodeのリストは減価償却されたものとして機能する可能性があり、シンボルを見つけることができません。誰かがlibsslをLionに取り組んでいますか?
2 に答える
はい、Lion では SSL 機能は非推奨です。
代わりにCommonCryptoのものを使用する必要があります。基本的に、すべての SSL 機能の代替品があり、通常は互換性があります。
たとえば、MD5 (openssl/md5.h) を使用すると、非推奨の警告が表示されます。CommonDigest をインクルードし、古い MD5_* 関数の代わりに CC_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 のみですが、他のほとんどの機能についてはいくつか実行できるはずです。
編集
CommonCrypto は、CCCryptor による対称暗号化のみをサポートします。
非対称暗号化が必要な場合は、セキュリティ フレームワークを使用する必要があります。
Security Transforms Programming Guideを必ず参照してください。
私の後に来る人のために、Apple のセキュリティ フレームワークには、特に (キーチェーンからキーを取得するため)、(PEM 形式にエクスポートするため)、および (NSData からキーを作成するため) を探しているものSecKeyGeneratePairがSecItemCopyMatchingありSecItemExportますSecKeyCreateFromData。署名と検証は両方ともSecTransforms で行われます。適切な用語を検索すれば、Apple にはこれらすべての機能に関する適切なドキュメントがあります。