用通用加密替换 OpenSSL 依赖?(Mac App Store 收据验证)

Isa*_*aac 5 macos openssl objective-c osx-lion commoncrypto

我的理解是,在 OSX 10.7 中不推荐使用 OpenSSL 以支持 Common Crypto,但我似乎无法很好地处理如何从 OpenSSL 代码转换到 Common Crypto 代码。特别是,我正在查看带有 ValidateStoreReceipt 的 App Store 收据验证。我首先尝试找到一种方法来获取 PKCS#7 容器的内容,这似乎是 中的第一步dictionaryWithAppStoreReceipt,但我找不到任何有关如何执行此操作的文档。

是否可以重写此代码以便不依赖于 OpenSSL?如果是这样,如何?是否有我错过的文档或教程?

CRD*_*CRD 3

无需停止使用 OpenSSL。已弃用的是 OpenSSL 动态库,您仍然可以从 openssl.org 获取静态库/源并将其静态链接到您的代码。

Apple 给出的弃用原因是 OpenSSL 本身建议不要使用动态链接,因为该库在版本之间变化太大。通过静态链接,您的代码将始终使用您构建的库的版本,而不是当前安装在系统上的更高版本(可能不兼容)。

  • 嗯,*有*需要停止使用它。如果您继续使用 OpenSSL,您可以 (a) 链接到系统版本,该版本可能会以不兼容的方式更改,或者可能永远不会更新以修复安全漏洞;或 (b) 链接到您自己的版本,只要 OpenSSL 安全补丁影响到您,您就需要更新该版本。后者可能意味着您的用户必须大约在同一时间重新安装大量应用程序才能解决相同的 OpenSSL 问题。 (4认同)