opessl版本过低造成的函数使用错误

1、openssl由于版本过低的问题造成原先低版本下的openssl函数定义不兼容高版本的openssl,造成出现以下问题如图1所示:


opessl版本过低造成的函数使用错误_不兼容

图 1

2、面对以上问题的解决办法:

【1】 EVP_CIPHER_CTX ctx;

改为: ​​EVP_CIPHER_CTX *ctx;​

【2】EVP_CIPHER_CTX_init(&ctx);

改为: ​​EVP_CIPHER_CTX_new();​

【3】EVP_EncryptInit(&ctx, (const EVP_CIPHER *)cipher, key, def_iv)

改为:​​ EVP_EncryptInit(ctx, (const EVP_CIPHER *)cipher, key, def_iv)​

注意:凡是带“&”符号的ctx都要将其前的“&”符号去掉

【4】EVP_CIPHER_CTX_cleanup(&ctx);

改为:​​ EVP_CIPHER_CTX_free(ctx);​