我正在链接从源代码构建的静态库,包括本地头文件,而不是/usr/include
. 有没有人让 libssl 在 Lion 上工作?
问问题
979 次
2 回答
2
是的,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,但您应该能够为大多数其他功能执行某些操作。
编辑
CommonCrypto 仅支持对称加密,通过 CCCryptor。
如果你需要非对称加密,你应该使用安全框架。
请务必查看 Security Transforms Programming Guide。
于 2012-01-18T10:07:09.333 回答
0
对于任何追随我的人,Apple 的安全框架有你正在寻找的东西,特别是SecKeyGeneratePair
(SecItemCopyMatching
从钥匙串中获取密钥)、SecItemExport
(导出为 PEM 格式)和SecKeyCreateFromData
(从 NSData 生成密钥)。签名和验证都是用SecTransform
s 完成的。如果您搜索正确的术语,Apple 会为所有这些功能提供合理的文档。
于 2012-01-20T10:23:58.157 回答