После трёх лет разработки и 19 тестовых выпусков состоялся релиз библиотеки OpenSSL 3.0.0, в которой реализованы протоколы SSL/TLS и различные алгоритмы шифрования.
По сравнению с веткой OpenSSL 1.1.1 в OpenSSL 3.0.0 сделано более 7500 изменений, подготовленных 350 разработчиками.
Новая ветка включает изменения, нарушающие обратную совместимость на уровне API и ABI, но эти изменения не повлияют на работу большинства приложений, для перевода которых с OpenSSL 1.1.1 достаточно пересборки. Поддержка прошлой ветки OpenSSL 1.1.1 будет осуществляться до сентября 2023 года.
Значительное изменение номера версии связано с переходом на традиционную нумерацию «Major.Minor.Patch». Первая цифра (Major) в номере версии отныне будет меняться только при нарушении совместимости на уровне API/ABI, а вторая (Minor) при наращивании функциональности без изменения API/ABI. Корректирующие обновления будут поставляться с изменением третьей цифры (Patch). Номер 3.0.0 сразу после 1.1.1 выбран для избежания пересечений с находящимся в разработке FIPS-модулем к OpenSSL, для которого применялась нумерация 2.x.
Вторым важным для проекта изменением стал переход с двойной лицензии (OpenSSL и SSLeay) на лицензию Apache 2.0. Ранее применявшаяся собственная лицензия OpenSSL была основана на тексте устаревшей лицензии Apache 1.0 и требовала явного упоминания OpenSSL в рекламных материалах при использовании библиотек OpenSSL, а также добавления специального примечания в случае поставки OpenSSL в составе продукта. Подобные требования делали старую лицензию несовместимой с GPL, что создавало трудности при использовании OpenSSL в проектах с лицензией GPL. Для обхода данной несовместимости GPL-проекты вынуждены были применять специфичные лицензионные соглашения, в которых основной текст GPL дополнялся пунктом, явно разрешающим связывание приложения с библиотекой OpenSSL и упоминающим, что требования GPL не распространяется на связывание с OpenSSL.
>>> Подробности