opessl版本过低造成的函数使用错误
1、openssl由于版本过低的问题造成原先低版本下的openssl函数定义不兼容高版本的openssl,造成出现以下问题如图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);
参考博客:
https://blog.csdn.net/gusijin/article/details/116445417