Разработчики BoringSSL (https://boringssl.googlesource.com/boringssl/), форка (https://www.opennet.ru/opennews/art.shtml?num=40049) OpenSSL от компании Google, опубликовали (https://www.imperialviolet.org/2015/10/17/boringssl.html) обзор состояния проекта. Последнее время на BoringSSL уже переведены все программные продукты Google, как внутренние сервисы, так и такие проекты как Chrome/Chromium и Android. BoringSSL используется как единый TLS-стек для всех продуктов Google, что позволило значительно упростить сопровождение кодовой базы.
При этом использование BoringSSL в сторонних проектах может предоставлять трудности, так как код достаточно сильно почищен, разработчики не ставят перед собой цель полной совместимости с OpenSSL и ABI может меняться в зависимости от потребностей компании. В отличие от LibreSSL, разработка BoringSSL на заключалась в копировании имеющихся исходных текстов OpenSSL для их последующей переработки и чистки. Вместо этого BoringSSL развивался путём создания пустого проекта и поэтапного переноса кода из OpenSSL, функции за функцией с проведением их аудита, документирования и переработки.
В итоге, размер BoringSSL составляет около 200 тысяч строк кода, в то время как кодовая база OpenSSL оценивается в 468 тысяч строк. При пересборке проектов с BoringSSL их размер уменьшается 300 Кб по сравнению минимальной конфигурацией OpenSSL. В BoringSSL прекращена поддержка таких возможностей, как
Blowfish, Camllia, CMS, функций сжатия, движков, IDEA, JPAKE, Kerberos, MD2, MDC2, OCSP, PKCS#7, RC5, RIPE-MD, SEED, SRP, Whirlpool и т.п.
В BoringSSL переработаны такие механизмы, как система блокировок, поддержка многопоточности, обработка ошибок, добавлены механизмы динамического изменения размеров буферов и контроля за выходом за границы выделенных областей памяти. Вместо собственной реализации генератора псевдослучайных чисел в BoringSSL задействован штатный системный urandom. Из планов на ближайшее будущее отмечается продолжение чистки кода, реализация поддержки ChaCha20-Poly1305, Curve25519 и Ed25519, увеличение охвата функций тестовым набором.
URL: https://www.imperialviolet.org/2015/10/17/boringssl.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=43178