首页 > 解决方案 > openssl 中已弃用的 AES_ige_encrypt() API 的替代方案

问题描述

从 OpenSSL 版本 1.0.0 升级到 1.1.1x 时,会出现警告说 APIAES_ige_encrypt()已被弃用,该 API 用于使用 AES_ige 进行加密和解密。尽管源评论说该功能已被弃用,但它没有提及任何有关此 API 的任何替代品的信息。搜索网络并没有提供任何有用的信息。如果有人可以建议提供与 API 相同功能的 OpenSSL API,那将非常有帮助AES_ige_encrypt()

标签: c++cencryptionopensslaes

解决方案


您确定您使用的是正确版本的 OpenSSL 吗?该功能在 master 分支中已被弃用(即将成为 OpenSSL 3.0 的版本),但在 1.1.1 中尚未弃用。

无论如何,您不应该使用这些模式。根据更改条目:

*) 函数 AES_ige_encrypt() 和 AES_bi_ige_encrypt() 已被弃用。这些未记录的函数从未集成到 EVP 层中,并实现了 AES Infinite Garble Extension (IGE) 模式和 AES 双向 IGE 模式。这些模式从未正式标准化,并且这些功能的使用被认为非常少。特别是 AES_bi_ige_encrypt() 有一个已知的错误。它接受 2 个 AES 密钥,但只使用过一个。安全隐患被认为是最小的,但出于向后兼容性的原因,这个问题从未得到解决。新代码不应使用这些模式。[马特·卡斯威尔]

根据我最后的评论 - 新代码不应使用这些模式。如果您正在使用它们,那么另一种方法是寻找满足您要求的替代模式并使用 EVP 功能来使用该模式。


推荐阅读