Доступен выпуск криптографической библиотеки Botan 3.1.0, применяемой в проекте NeoPG, форке GnuPG 2. Библиотека предоставляет большую коллекцию готовых примитивов, используемых в протоколе TLS, сертификатах X.509, шифрах AEAD, модулях TPM, PKCS#11, хэшировании паролей и постквантовой криптографии (подписи на основе хэша и согласование ключей на основе McEliece). Библиотека написана на языке C++ и поставляется под лицензией BSD.
Среди изменений в новом выпуске:
- Добавлена поддержка алгоритма для работы с цифровыми подписями SPHINCS+, применяющего методы криптографии на основе хеш-функций, устойчивые к подбору на квантовом компьютере.
- Добавлены обвязки для использования инструкций AVX-512. Добавлены реализации алгоритмов ChaCha и Serpent, использующие AVX-512.
- Реализация TLS 1.3 переведена на использование интерфейса KEM (Key Encapsulation Mechanism).
- Добавлена возможность отключения определённых расширений CPU через выставление переменных окружения.
- Добавлены функции FFI, связанные с управлением ключами Kyber.
- Проведено переформатирование кода при помощи утилиты clang-format.
- Улучшена обработка настроек PBKDF в интерфейсе командной строки.
- В утилитах командной строки для работы с TLS добавлена поддержка использования PSK.
- Настройки PBKDF в python-модуле изменены с применения 10 тысяч итераций на 100 тысяч.
- Внесены исправления для улучшения соответствия спецификациям TLS, в основном связанные с обработкой некорректного поведения хостов.
- Проведена оптимизация кодирования методом base64.
- Удалена недокументированная поддержка сборки с использованием CMake.
Release.
Ссылка here.