OpenSSL更新到更新版本:不推荐使用的“ OPENSSL_config”替代

时间:2019-02-06 15:20:54

标签: c openssl deprecated

在我的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;
}

因此,按照最佳做法的规定,在我的情况下,应该避免使用不赞成使用的函数,并使用其他方法?

1 个答案:

答案 0 :(得分:2)

OPENSSL_config全部说明:

  

不建议使用此功能,应避免使用它。   应用程序应该在执行过程中调用CONF_modules_load()   初始化(即在启动任何线程之前)。

SSL_load_error_stringsOpenSSL_add_all_algorithms也被弃用。

对于openssl> = 1.1,您可以删除上面的整个启动和清理代码,因为不再需要它。现在,这一切都自动为您完成。