OpenSSL 4.0.0-alpha1 现已发布,这是一个功能版本,为 OpenSSL 添加了许多重要的新功能。此版本包含以下可能具有重大影响或不兼容的更改:
- 在以十六进制格式 printing key data(例如 modulus)时,若首位(most significant)字节 ≥0x80,则移除前导的额外'00:'。
- 将十六进制转储的宽度标准化为:签名 24 字节(以保持在 80 个字符的限制内),其他所有内容 16 字节。
- 现在在使用
PKCS5_PBKDF2_HMACAPI with FIPS provider 时,会强制执行 Lower bounds 检查。
- 当设置
X509_V_FLAG_X509_STRICT时,新增 AKID 验证检查。
- 增强型 CRL 验证流程,增加了多项检查。
libcrypto不再通过atexit()清理全局分配的数据。
OPENSSL_cleanup()现在会在全局析构函数中运行,或者默认情况下根本不运行。
ASN1_STRING已改为不透明类型。
- 许多 API 函数(包括与 X509 处理相关的函数)的签名都进行了更改,在适用情况下为参数类型和返回类型添加了
const限定符。
- 弃用 X509_cmp_time()、X509_cmp_current_time() 和 X509_cmp_timeframe() 函数,建议改用X509_check_certificate_times()。
- 移除了对 SSLv2 客户端 Hello 的支持。
- 已移除对 SSLv3 的支持。SSLv3 自 2015 年起已被弃用,OpenSSL 自 1.1.0 版本(2016 年)起默认禁用 SSLv3。
- 已移除对引擎的支持。
no-engine构建选项和OPENSSL_NO_ENGINE宏始终可用。
- 根据 RFC 8422,默认在编译时禁用 TLS 中已弃用的椭圆曲线支持。要启用此功能,建议使用
enable-tls-deprecated-ec配置选项。
- 已移除
c_rehash脚本工具。建议改用openssl rehash其他工具。
- 从
openssl ca命令中移除了已弃用的msie-hack选项。
- 已移除
BIO_f_reliable()实现,且不作替代方案。该功能自 3.0 版本发布后即存在缺陷,但未收到任何反馈。
- 移除了已弃用的函数
ERR_get_state()、ERR_remove_state()以及ERR_remove_thread_state()。ERR_STATE对象现始终为不透明类型。
- 从配置中删除
darwin-i386{,-cc}和darwin-ppc{,64}{,-cc}targets。
本次版本更新新增了以下功能:
- 支持 Encrypted Client Hello (ECH,RFC 9849 )。详情参阅
doc/designs/ech-api.md。
- 支持 RFC 8998、签名算法
sm2sig_sm3、密钥交换组curveSM2和 [tls-hybrid-sm2-mlkem] 后量子组curveSM2MLKEM768。
- 支持 SP 800-185 中的 cSHAKE function。
- 支持“ML-DSA-MU”摘要算法。
- 支持 SNMP KDF 和 SRTP KDF。
- 安装 FIPS 模块时,可通过
openssl fipsinstall命令的-defer_tests选项延迟执行 FIPS 自检,按需运行。
- 支持在 Windows 上使用静态或动态 VC 运行时链接。
详情可查看更新说明:https://github.com/openssl/openssl/releases/tag/openssl-4.0.0-alpha1