openssl 1.1.x 中的 EVP_CIPHER_CTX

openssl 1.1.x 中的 EVP_CIPHER_CTX

错误:“ctx”的存储大小未知 EVP_CIPHER_CTX ctx;

我在 openssl -1.1.1 中收到此错误。与 openssl-1.0.* 和 openssl-1.1.1 相比,此 EVP_CIPHER_CTX 结构在 openssl-1.1.1 中尚未变得不透明。

那么为什么我会收到此错误?

答案1

OpenSSL 1.1.0 变更:

“libssl 公共头文件中的所有结构都已被删除,因此它们对库用户来说是“不透明的”。您应该使用提供的访问器函数。”

这个(它的底层结构evp_cipher_ctx_st)和其他结构从 1.1.0 开始是隐藏的,现在必须通过 API 访问(创建、修改、销毁)。要引用此类对象,您现在只需使用指向它们的指针,而不必创建自己的实例。优点包括这些数据类型的封装以及改进的二进制 API 兼容性。

EVP_CIPHER_meth_new(3)

优秀的人们在哥萨克实验室一个有用的博客文章,讨论他们需要做出的改变用于 OpenSSL 1.1 迁移。

相关内容