Доступен новый выпуск компактной криптографической библиотеки wolfSSL 5.0.0, оптимизированной для использования на встраиваемых устройствах с ограниченными ресурсами процессора и памяти, таких как устройства интернета вещей, системы умного дома, автомобильные информационные системы, маршрутизаторы и мобильные телефоны. Код написан на языке Си и распространяется под лицензией GPLv2.
Библиотека предоставляет высокопроизводительные реализации современных криптоалгоритмов, включая ChaCha20, Curve25519, NTRU, RSA, Blake2b, TLS 1.0-1.3 и DTLS 1.2, которые по заявлению разработчиков в 20 раз компактнее, чем реализации из OpenSSL. Предоставляется как свой упрощённый API, так и прослойка для совместимости с API OpenSSL. Имеется поддержка OCSP (Online Certificate Status Protocol) и CRL (Certificate Revocation List) для проверки отзыва сертификатов.
Основные новшества wolfSSL 5.0.0:
- Добавлена поддержка платформ: IoT-Safe (с поддержкой TLS), SE050 (с поддержкой RNG, SHA, AES, ECC и ED25519) и Renesas TSIP 1.13 (для микроконтроллеров RX72N).
- Добавлена поддержка алгоритмов постквантовой криптографии, стойких к подбору на квантовом компьютере: группы NIST Round 3 KEM для TLS 1.3 и гибридные группы NIST ECC на базе проекта OQS (Open Quantum Safe, liboqs). Стойкие к подбору на квантовом компьютере группы в том числе добавлены и в прослойку для обеспечения совместимости. Прекращена поддержка алгоритмов NTRU и QSH.
- В модуле для ядра Linux реализована поддержка криптографических алгоритмов, соответствующих стандарту безопасности FIPS 140-3. Представлен отдельный продукт с реализацией FIPS 140-3, код которого пока находится на стадии тестирования, рецензирования и проверки.
- В модуль для ядра Linux добавлены варианты алгоритмов RSA, ECC, DH, DSA, AES/AES-GCM, ускоренные при помощи векторных инструкций CPU x86. При помощи векторных инструкций также ускорены обработчики прерываний. Добавлена поддержка подсистемы для проверки модулей по цифровым подписям. Обеспечена возможность сборки встраиваемого криптодвижка wolfCrypt в режиме “–enable-linuxkm-pie” (position-independent). В модуле обеспечена поддержка ядер Linux 3.16, 4.4, 4.9, 5.4 и 5.10.
- В прослойку для обеспечения совместимости с другими библиотеками и приложениями добавлена поддержка libssh2, pyOpenSSL, libimobiledevice, rsyslog, OpenSSH 8.5p1 и Python 3.8.5.
- Добавлена большая порция новых API, включая EVP_blake2, wolfSSL_set_client_CA_list, wolfSSL_EVP_sha512_256, wc_Sha512*, EVP_shake256, SSL_CIPHER_*, SSL_SESSION_* и т.п.
- Устранены две уязвимости, которые признаны неопасными: зависание при создании цифровых подписей DSA с определёнными параметрами и некорректная проверка сертификатов с несколькими альтернативными именами объекта, при использовании связанных с именами ограничений.