Выпуск криптографической библиотеки Botan 3.1.0

Доступен выпуск криптографической библиотеки 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.