Создатели OpenSSL полностью отказались от совместимости ради тотальной защиты данных.

Проект OpenSSL выпустил крупное обновление, которое заметно меняет как внутреннюю архитектуру, так и набор поддерживаемых технологий. Версия 4.0.0 не только добавляет новые возможности, но и избавляется от устаревших механизмов, которые долгое время сохранялись ради совместимости.
Разработчики сосредоточились на повышении безопасности и актуальности криптографической библиотеки. В новой версии полностью убрали поддержку SSLv3, который признали устаревшим ещё в 2015 году. Также исчезла поддержка SSLv2 Client Hello и так называемых «движков», через которые раньше подключали сторонние криптографические модули. Параллельно отключили ряд устаревших эллиптических кривых в TLS — их можно вернуть только при ручной сборке с особыми параметрами.
Изменения затронули и API. Многие функции, особенно связанные с обработкой X.509-сертификатов, получили уточнённые сигнатуры с добавлением модификатора const. Часть старых функций признали устаревшими и предложили замену. Некоторые внутренние структуры, такие как ASN1_STRING, сделали полностью скрытыми для внешнего доступа. Разработчики также пересмотрели механизм очистки глобальных данных — теперь библиотека не полагается на atexit, а использует другой подход или вовсе не выполняет очистку по умолчанию.
Наряду с этим усилили проверки безопасности. Например, ужесточили контроль параметров при использовании PKCS5_PBKDF2_HMAC совместно с FIPS-провайдером, добавили дополнительные проверки при работе с сертификатами и списками отзыва, а также внедрили проверку идентификаторов ключей при строгом режиме X.509.
Наряду с этим OpenSSL 4.0.0 получил поддержку современных криптографических технологий. В библиотеку добавили Encrypted Client Hello, который скрывает часть данных TLS-соединения от наблюдателей, а также алгоритмы, связанные с китайскими стандартами SM2 и SM3.
Появились и элементы постквантовой криптографии, включая гибридную группу curveSM2MLKEM768. Кроме того, реализовали функции cSHAKE, новые алгоритмы хэширования и генерации ключей, а также поддержку согласованного обмена ключами FFDHE в TLS 1.2.
Обновление затронуло и утилиты. Удалили устаревший скрипт c_rehash, предложив использовать встроенную команду openssl rehash. Некоторые редко используемые или некорректно работающие компоненты, такие как BIO_f_reliable, также исключили без замены.
В результате OpenSSL 4.0.0 стал заметно более требовательным к безопасности и одновременно ориентированным на современные стандарты шифрования. Переход на новую версию потребует от разработчиков адаптации к изменённому API и отказа от устаревших функций, но взамен предлагает более современную и защищённую криптографическую базу.