gpt4 book ai didi

c - OS X CommonCrypto 是否为 OpenSSL EVP_* 调用提供了兼容模式(就像 OpenSSL MD5 函数一样)?

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:33 25 4
gpt4 key购买 nike

在 Mac OS X10.7 上编译我的一个源文件并收到这些弃用警告:

xxx_evp.c:135:5: 'EVP_MD_CTX_init' is deprecated
xxx_evp.c:137:9: 'EVP_DigestInit_ex' is deprecated
xxx_evp.c:177:9: 'EVP_DigestUpdate' is deprecated
xxx_evp.c:227:13: 'EVP_DigestFinal_ex' is deprecated
xxx_evp.c:235:5: 'EVP_MD_CTX_cleanup' is deprecated

我有另一组 OpenSSL 弃用警告,其中我使用 openssl/md5.h 中的 MD5 函数,并且能够切换到 CommonCrypto 版本的 OpenSSL 调用,如下所示:

#if defined(__APPLE__)
# define COMMON_DIGEST_FOR_OPENSSL
# include <CommonCrypto/CommonDigest.h>
#else
# include <openssl/md5.h>
#endif

但我找不到任何关于与这些 EVP_* 调用相关的任何类型的 OpenSSL 兼容性的信息。对于这些 OpenSSL EVP_* 调用,我可以做一些类似的事情来在 OS X 10.7 上获得“免费”兼容性支持吗?

最佳答案

我查看了 /usr/include/CommonCrypto/ 中的 CommonCrypto header 文件,唯一注意到任何 OpenSSL 兼容性的文件是 CommonDigest.h。当 #define 符号 COMMON_DIGEST_FOR_OPENSSL 在此头文件包含您的代码之前定义时,以下 OpenSSL 函数类将映射到它们的 CommonCrypto 等价物:

  • MD2_xxxMD4_xxxMD5_xxx
  • SHA_xxxSHA1_xxxSHA224_xxxSHA256_xxxSHA384_xxxSHA512_xxx

OpenSSL EVP_xxx 函数似乎没有任何此类映射,至少作为 CommonCrypto 的一部分提供。

关于c - OS X CommonCrypto 是否为 OpenSSL EVP_* 调用提供了兼容模式(就像 OpenSSL MD5 函数一样)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com