在我的C项目中,我在编译代码时将OpenSSl库1.0.2g更新为较新的库(1.1.x版本),并引发了以下警告:
main.c:40:3:警告:“ OPENSSL_config”已弃用[-Wdeprecated-declarations] OPENSSL_config(NULL);
引发此错误的代码是:
#include <stdio.h>
// Openssl
#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/err.h>
int main(int argc, char *argv[]) {
/* Load the human readable error strings for libcrypto */
ERR_load_crypto_strings();
/* Load all digest and cipher algorithms */
OpenSSL_add_all_algorithms();
/* Load config file, and other important initialisation */
OPENSSL_config(NULL);
//Come code here
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
ERR_free_strings();
return 0;
}
因此,按照最佳做法的规定,在我的情况下,应该避免使用不赞成使用的函数,并使用其他方法?
答案 0 :(得分:2)
OPENSSL_config全部说明:
不建议使用此功能,应避免使用它。 应用程序应该在执行过程中调用CONF_modules_load() 初始化(即在启动任何线程之前)。
SSL_load_error_strings和OpenSSL_add_all_algorithms也被弃用。
对于openssl> = 1.1,您可以删除上面的整个启动和清理代码,因为不再需要它。现在,这一切都自动为您完成。