OpenSSL 项目已正式发布 4.0.0 版本。作为一次重大的功能更新,该版本为这款广泛使用的加密库引入了多项关键的新功能与协议支持。
开发者现在可以利用符合 RFC 984 规范的加密客户端问候 (ECH) 功能。此外,本次更新还实现了对 RFC 8998 的支持,其中包括 sm2sig_sm3 签名算法以及 curveSM2MLKEM768 后量子密钥交换组。
不兼容变更与移除项
由于本次发布包含若干不兼容的变更,开发者可能需要针对现有实现进行相应的更新。项目组已移除了对 SSLv2 Client Hello 和 SSLv3 的支持,其中 SSLv3 早在 2015 年就已被弃用。
OpenSSL 4.0.0 还移除了对 engines 的支持,这意味着 `no-engine` 编译选项和 `OPENSSL_NO_ENGINE` 宏将成为永久性的配置。此外,原有的 `c_rehash` 脚本工具已被 `openssl rehash` 命令所取代。
其他移除项还包括 `openssl ca` 命令中的 `msie-hack` 选项以及 `BIO_f_reliable()` 的实现。同时,项目组也停止了对旧版 Darwin 目标平台的支持,具体涉及 `darwin-i386` 和 `darwin-ppc` 配置。
4.0.0 版本的新特性还涵盖了多种加密标准。该库现在支持符合 NIST SP 800-185 标准的 cSHAKE 函数以及 ML-DSA-MU 摘要算法。
此外,本次更新还增加了对 SNMP KDF 和 SRTP KDF 的支持。对于 Windows 用户而言,新版本现在允许使用静态或动态的 VC 运行时链接。
对于使用 FIPS 模块的开发者,现在可以在执行 `openssl fipsinstall` 过程中使用 `-defer_tests` 选项,从而根据需要运行自检,而无需在安装时立即进行。