1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-botan

Клонировать/Скачать
news.rst 50 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.06.2025 17:14 b6e786e

Заметки о выпусках

Версия 3.9.0, еще не выпущена

  • Добавлена реализация SHA-1 с использованием AVX2/BMI2 (GH #4852)
  • Добавлена реализация Camellia с использованием GFNI/AVX2 (GH #4848)
  • Изменена BOTAN_CLEAR_CPUID так, чтобы очистка ssse3 также отключала AVX2/AVX512 (GH #4853)
  • Обход ошибки компиляции GCC 13/14 при использовании LTO (GH #4863 #4862)
  • Добавлена поддержка нулевых шифров TLS 1.2 (GH #4776)

Версия 3.8.1, 2025-05-07

  • Исправлена ошибка, которая препятствовала сборке с использованием политик модулей fips140 или modern (GH #4854 #4856)
  • Исправлено отсутствие включения, которое вызывало ошибки компиляции с libc++20 (GH #4855 #4857)

Версия 3.8.0, 2025-05-06

  • Начато обсуждение планов по Botan4, текущая оценка времени выхода — 2027. Проверьте трекинговый тикет в https://github.com/randombit/botan/issues/4666 для текущих планов.
  • Продолжаются оптимизации и улучшения эллиптических кривых (GH #4554 #4620 #4623 #4625 #4627 #4632 #4634 #4686 #4687 #4688 #4689 #4690 #4692 #4695 #4703 #4706 #4708 #4710 #4711 #4746 #4794)
  • Добавлена поддержка расширенных приватных ключей в ML-KEM для обработки определенных реализаций, которые не используют кодирование сидов. (GH #4817)
  • Добавлена поддержка инструкций SHA-512, добавленных в предстоящих процессорах Intel (GH #4766)
  • Добавлена поддержка инструкций SM4, добавленных в предстоящих процессорах Intel (GH #4768)
  • Реализация SHA-1 с использованием SSE2 была расширена для поддержки NEON и LoongArch LSX. (GH #4809)
  • Добавлены реализации SHA-256 и SHA-512 с использованием AVX2/BMI2 (GH #4818 #4821)
  • Добавлена реализация SHA-512 с использованием AVX-512/BMI2 (GH #4842 #4849)
  • Добавлена реализация SHA-256 с использованием SSSE3 или NEON для расширения сообщений (GH #4819)
  • По умолчанию политика TLS теперь предпочитает AES/GCM ChaCha20Poly1305 (GH #4843)
  • Добавлена поддержка постквантового KEM secp384r1/ML-KEM-1024 в TLS 1.3 (GH #4752)
  • Исправлены ошибки в серверной реализации постквантового гибридного шифрования в TLS 1.3, которые затрагивали шифры, использующие кривые NIST. (GH #4752)
  • Ранее build.h включал различные параметры, которые могли быть изменены пользователем перед компиляцией. Эти параметры были удалены. (GH #4639)
  • Ранее build.h содержал макросы, отражающие информацию о целевой системе, такие как BOTAN_TARGET_OS_IS_LINUX. Теперь все такие макросы были перемещены в новый внутренний заголовочный файл. Это позволяет использовать все установленные заголовочные файлы, включая build.h, в нескольких разных сборках библиотеки, при условии, что у всех они имеют одну и ту же версию и выбор модулей. Это упрощает интеграцию библиотеки. (GH #4642 #4747)
  • Многие заголовочные файлы были изменены для минимизации количества включаемых файлов. Возможно, вам потребуется изменить ваше приложение для прямого включения любых заголовочных файлов, которые до сих пор подключались неявно. (GH #4650)
  • Добавлен пример FFI, который также работает как тест в CI, предотвращающий случайные изменения ffi.h или build.h, которые делают их несовместимыми с C. (GH #4640)
  • Добавлены новые функции FFI для управляемых приватных ключей (GH #4700), OIDS (GH #4816), и EC_Group (GH #4834)
  • Добавлены недостающие проверки на null-указатели в FFI (#4704)
  • Более быстрое кодирование base32 с использованием техники SWAR (GH #4765)
  • Добавлена поддержка CRL X.509 с полем nextUpdate, которое не установлено. Такие CRL запрещены RFC 5280, но к сожалению существуют в экосистеме. (GH #4732)
  • При кодировании структуры RSASSA-PSS-Params пропускайте кодирование значения по умолчанию поля trailer, как требуется RFC 4055 (GH #4731)
  • Расширена поддержка перестановки AES для систем big-endian AltiVec/VMX. (GH #4738)
  • Расширена поддержка инструкции POWER VMULL для систем big-endian. (GH #4743)
  • Исправлена кодировка расширенного использования ключей в PKCS10 запросах (GH #4725)
  • Добавлен внутренний API для гибридных PQ комбинированных ключей (GH #4067)
  • Внутренние рефакторинги обнаружения функций процессора. (GH #4718)
  • Добавлена поддержка обнаружения функций процессора на RISCV64 (GH #4800 #4815)
  • Добавлена поддержка расширения SIMD LoongArch LSX в AES, SHA-1, ZFEC, ChaCha (GH #4799)
  • Многие SIMD-оптимизированные реализации, которые ранее требовали только SSE2, теперь также требуют SSSE3. Такие оптимизации больше не будут использоваться на (теперь довольно редких) процессорах, которые поддерживают SSE2, но не SSSE3. (GH #4803)
  • Оптимизация парсинга больших CRL (GH #4789 #4790 #4792)
  • Улучшение производительности парсинга публичных и приватных ключей RSA (GH #4793)
  • Добавлены примеры использования шифрования с сохранением формата (GH #4758)
  • Улучшения и очистка CI (GH #4756 #4761 #4762 #4767 #4770 #4812 #4813)
  • Конструктор Ed25519_PrivateKey имел поведение, зависящее от длины входных данных. Добавлены явные функции from_seed и from_bytes, которые делают два варианта явными. (GH #4701 #4702)
  • Добавлены примеры использования шифрования с сохранением формата (GH #4758)
  • Добавлен новый более чистый интерфейс для обработки флагов ECIES (GH #4691)
  • Снижение использования кучи в GCM/GMAC (GH #4826) и hex/base64 (GH #4832)
  • Новая более быстрая реализация редукции Barrett (GH #4835)
  • Внутренние улучшения подушечной обработки подписей RSA (GH #4635)
  • Очистка реализаций SHA-1 и SHA-256 с использованием SHA-NI (GH #4773 #4774)
  • Очистка для уменьшения размера кода там, где это возможно (GH #4775 #4777 #4781 #4825)
  • Исправлена ошибка, из-за которой тесты пропускали тестирование AES-NI, если поддерживался AES-VAES. (GH #4649)
  • Исправлены проблемы с интеграцией CMake при сборке в Debian-подобных многоархитектурных конфигурациях. (GH #4839)
  • Теперь даже для полностью статических сборок библиотеки используется -fPIC для компиляции объектов библиотеки. Это позволяет связывать позиционно независимые исполняемые файлы (PIE) со статической библиотекой. (GH #4716)
  • Удалена поддержка NetBSD _dlauxinfo, которая не предоставляла информацию, которую ожидала библиотека. (GH #4736)
  • Добавлен скрипт для сравнения производительности между версиями (GH #4693 #4754)
  • Обновление действий GHA CodeQL (GH #4644)

Версия 3.7.1, 2025-02-05

  • Откат изменений, которые препятствовали использованию build.h из C приложений. (GH #4636 #4637)

Версия 3.7.0, 2025-02-04

  • Добавлена постквантовая схема Classic McEliece (GH #3883 #4448 #4458 #4508 #4605)
  • В TLS по умолчанию включена гибридная x25519/ML-KEM-768 постквантовая безопасная ключевая обмен для клиентов и серверов. (GH #4305)
  • Поддержка предварительного стандарта ключевого обмена Kyber-r3 была удалена из TLS (GH #4507 #4403)
  • В TLS добавлена поддержка "чистого" ключевого обмена ML-KEM, в дополнение к существующим гибридным ML-KEM + EC наборам шифров. (GH #4393)
  • Добавлены новые конструкторы EC ключей (GH #4437 #4563)
  • Внутренние оптимизации и улучшения EC (GH #4385 #4432 #4436 #4492 #4479 #4510)
  • Важное примечание, касающееся групп EC, особенно для пользователей, которые не собирают библиотеку с использованием параметров модулей по умолчанию (например, с помощью --minimized-build или --disable-deprecated-features). До версии 3.7.0 поддержка алгоритма эллиптической кривой, такого как ECDSA, также неявно подключала поддержку всех эллиптических кривых. Это больше не так. Вы можете снова включить поддержку конкретных именованных кривых, добавив модуль pcurves, например pcurves_secp256r1 или pcurves_brainpool384r1. Также в версии 3.7.0 старая реализация арифметики EC на основе BigInt была перемещена в legacy_ec_point, которая помечена как устаревшая. Отключение этого модуля отключит поддержку определенных (также устаревших) эллиптических кривых, таких как "x962_p239v1" и "secp22k1". Она также отключит поддержку специфических приложений кривых. В зависимости от вашего использования вам может потребоваться включить модуль legacy_ec_point. (GH #4027)
  • Изменение форматирования OID и названия подушечной обработки подписей PK для избежания устаревших названий IEEE 1363 (GH #4600)
  • Улучшение производительности парсинга приватных ключей RSA (GH #4588)
  • Исправлена регрессия, введенная в версии 3.6.0, которая вызывала отклонение многих секретных ключей P-521 как недействительных из-за отсутствия ожидаемой длины. (GH #4539 GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH )
  • Добавлены новые операции в EC_AffinePoint (GH GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG )
  • Добавлена поддержка сертификатов с подписью PSS с использованием SHA-3 (GG GG )
  • Объявление типа PSS_Params (GG GG )
  • Оптимизация модульных инверсий (GG )
  • Современное обновление KDF внутренностей (GG )
  • Разделение compiler.h на api.h и compiler.h (GG )
  • Устаревание создания неинициализированных DL_Group или EC_Group (GG )
  • Расширение SP800-108 KDFs для поддержки полей переменной длины (GG )
  • Улучшения TPM 2.0 (GG GG GG )
  • Добавлена поддержка вызова источника энтропии и менеджера DRNG Manager (ESDM) RNG (GG )
  • Улучшение поддержки baremetal среды (GG GG GG )
  • Исправлена ошибка, препятствующая парсингу ответов OCSP, содержащих более одного закрепленного сертификата (GG )
  • Расширение тестирования постоянного времени в CI для охвата как GCC, так и Clang, и нескольких уровней оптимизации. (GG )
  • Разрешение настройки во время сборки того, как реализуются барьеры значений постоянного времени. (GG )
  • Внутренние очистки GCM/GHASH (GG )
  • Обновление документации (GG )
  • Внутренние очистки, связанные с вызовом getauxval (GG )
  • Добавление опции --timer-unit= к botan speed (GG GG )
  • Переименование политики nist в fips1� для более точного отражения использования. Обновление в соответствии с последними стандартами NIST. (GG )
  • Обновление тестового набора Limbo (GG )
  • Пометка нескольких классов, не предназначенных для наследования, как final (GG )
  • Добавление отладки итераторов в CI (GG )
  • Начиная с версии 3.6.0 configure.py передавал любые значения, установленные как CXXFLAGS, также в вызов линковщика. Это было сделано для поддержки опций LTO. Однако это вызывало регрессии сборки, особенно с MSVC, и поэтому было отменено. Использование новой опции --lto-cxxflags-to-ldflags позволит продолжить это поведение передачи значений. (GG GG GG GG )
  • Исправление ошибки итератора в тестовом наборе (GG )
  • Исправление проблем сборки, вызванных несовместимыми изменениями в Boost 1.87 (GG )
  • Исправление проблемы сборки при отключенной поддержке AVX2 (GG )
  • Исправление проблемы сборки при компиляции с MSVC на ARM (GG )
  • Устранение новых предупреждений от Clang 19 (GG GG GG )

Версия 3.6.1, 202�-10-26

  • Обратите внимание: Botan 3.7.0 удалит поддержку экспериментальных TLS наборов шифров Kyber r3, оставив только стандартизованные наборы ML-KEM. (GG GG )
  • Исправлена ошибка в детекции CPUID x86, введенная в версии 3.6.0, которая вызывала аварийное завершение работы на системах, имеющих BMI1, но не BMI2. (GG GG )
  • Исправлена ошибка подписи SLH-DSA, которая не использовала по умолчанию требуемую FIPS случайную вариацию. (GG )
  • Изменен способ выполнения маскировки эллиптической кривой, что снижает количество самосуммирований, которые могут происходить во время умножения. (GG )
  • В командной строке speed также несколько раз выполняется генерация ключей. (GG )

Версия 3.6.0, 202�-10-21

  • Полная интеграция и дальнейшая оптимизация новой библиотеки ECC, впервые представленной в версии 3.5.0. Для распространенных кривых операции стали быстрее на 2–3 раза. Это также вводит новый API для низкоуровневых операций EC, таких как умножение точек, используя типы EC_Scalar и EC_AffinePoint. (GG GG GG GG GG GG GG GG GG GG

    GG GG GG GG GG GG GG GG GG GG )

  • Добавлена поддержка FIPS 203 ML-KEM, стандартизированной версии Kyber NIST (GG )
  • Добавлена поддержка FIPS 20� ML-DSA, стандартизированной версии Dilithium NIST (GG )
  • Добавлена поддержка FIPS 205 SLH-DSA, стандартизированной версии SPHINCS+ NIST (GG )
  • Добавлена поддержка аппаратного обеспечения TPM2 (GG )
  • Добавлена поддержка генератора случайных чисел jitterentropy RNG (GG )
  • Улучшения программирования постоянного времени, включая CT::Option (GG )
  • Улучшение производительности hex и base6�
  • В ECDSA маскируется постоянное время инверсии nonce как дополнительная предосторожность против атак через побочные каналы.
  • Добавлена поддержка инструкций AVX2-VAES
  • Добавлена ускоренная реализация SM� с использованием GFNI-AVX
  • Добавлена поддержка эллиптической кривой numsp
  • Применены аннотации проверки постоянного времени к Dilithium и Kyber
  • Рефакторинг внутренних элементов Dilithium и Kyber для совместного использования общих элементов
  • Добавлен тестовый набор для проверки аннотаций постоянного времени
  • Внутренние рефакторинги шифрования открытого ключа для улучшения безопасности памяти и устойчивости к побочным каналам.
  • Кэширование DER кодирования формата OID эллиптической кривой
  • Исправлены несоответствия при использовании BOTAN_CLEAR_CPUID, где зависимые наборы инструкций не всегда отключались.
  • Устаревание набора шифров x2�/Kyber-51
  • Добавлен ночной тест CI с использованием Intel SDE для тестирования AVX-**
  • Исправление детекции функций процессора armv*/aarch** на FreeBSD
  • Добавление поддержки детекции функций процессора armv*/aarch*/ppc** на OpenBSD, используя новый API, добавленный в OpenBSD **
  • Исправление ошибки в утилите командной строки speed, которая приводила к неверным значениям, особенно для шифров/хешей с малыми входными данными.
  • Исправление ошибки установки файлов CMake и pkg-config по неверному пути
  • Исправление проверки сертификатов при доверенном корне самоподписанного сертификата MD*
  • Внутренние улучшения "сильных типов"
  • Рефакторинг утилиты командной строки speed
  • Исправление теста, который был несколько хрупким и мог проваливаться, если определенный сертификат отсутствовал в системном хранилище доверенных корней.
  • Обновление некоторых комментариев документации
  • В Argon*, избегайте создания пула потоков при p == *
  • Отключение пула потоков по умолчанию на целевой платформе Emscripten
  • Добавление опции компиляции для отключения всех использования инлайн ассемблера

Версия *, **//**

CVE-**-*: Исправление DoS, вызванного чрезмерными ограничениями имени**.

CVE-**-*: Исправление ошибки обработки ограничений имени**, где если правила разрешения и исключения применялись к одному и тому же сертификату, проверялись только правила разрешения.

Добавлена новая гораздо более быстрая реализация эллиптической кривой. В этом выпуске эта реализация используется только для hash-to-curve.

Добавлена поддержка подписей на основе хеша LMS.

Добавлена поддержка логирования SSLKEYLOGFILE.

Оптимизация обработки в FFI botan_cipher_update.

Добавлен Public_Key::raw_public_key_bits.

Оптимизация режима XTS.

Оптимизация обработки ограничений имени.

Оптимизация FrodoKEM-AES.

Система сборки теперь различает LLVM Clang и XCode's Clang fork. Для последнего используется целевая платформа "xcode".

Исправлена ошибка автоподбора scrypt, где при вызове с номинальным максимальным пределом памяти равным нулю (что означает отсутствие ограничений) всегда возвращались параметры с использованием только ** МБ.

Улучшения программирования постоянного времени, включая ::value_barrier и ::Choice.

Рефакторинг и оптимизация AlternativeName. Включает новый API; старый API сохранен но помечен как устаревший.

Рефакторинг внутренних элементов Kyber.

Генерация таблиц Kuznyechik во время компиляции вместо жесткого кодирования их.

Включение использования sysctlbyname на iOS.

Ранее Curve* использовалось для обозначения обмена ключами по Montgomery кривой модуло ^*-. Теперь это называется X** во всех случаях. Типedefs и устаревший заголовок сохранены для совместимости со старыми версиями.

Исправление нескольких ошибок, связанных с кодированием и декодированием ASN.* объектных идентификаторов, когда вторая дуга превышает **.

Избегайте отправки IP адресов в расширении Server Name Indicator TLS, если IP адрес используется для инициализации структуры TLS_Server_Info.

При проверке X.* сертификата сначала проверяйте всю последовательность подписей, затем выполняйте другие проверки.

В DTLS исправлена ошибка, влияющая на повторную передачу клиентских приветствий.

Исправление нескольких ошибок, связанных с обработкой ограничений имени.

Добавлена поддержка парсинга TNAuthList из RFC ***.

Добавлен One-Step KDF из SP *-C*.

Исправлена ошибка режима RFC *-* ECDSA**. Это вызывало проблемы только при тестировании с определенными кривыми и не имеет никаких последствий для безопасности или совместимости.

Ранее приватные ключи эллиптической кривой могли быть любого размера, с эффективным ключом, уменьшенным по модулю порядка группы. Теперь при декодировании приватный ключ должен находиться в указанном диапазоне.

Группы эллиптической кривой теперь проверяют, что простое число и порядок группы связаны так, как это ожидается.

Добавлен скрипт для запуска тестового набора Limbo X.* пути проверки сертификата.

Обновление тестового набора BoGo TLS.

Устаревание различных низкоуровневых интерфейсов BigInt и эллиптической кривой.

Начиная с версии .*, поддержка специфических приложений кривых в EC_Group с параметрами больше ** бит была объявлена устаревшей. Этот выпуск расширяет эту депрециацию для дальнейшего ограничения будущего использования специфических приложений кривых. Добавлен новый конструктор EC_Group, который соблюдает эти ограничения.Исправление ошибки при создании запроса PKCS* или самоподписанного сертификата X.* при наличии SubjectAlternativeName в предоставленных расширениях. Если это происходило, любые другие значения игнорировались.

Различные рефакторинги и улучшения низкоуровневых многозначных целых чисел.

Увеличение максимальной длины ключа KMAC до ** байтов.

Улучшение утилит для безопасного сложения и умножения.

Оптимизация парсинга строк IPv*.**

Система маркировки модулей как устаревших была представлена в версии **.*.*, но она не помечала никакие модули как устаревшие. Теперь это применено к различным модулям, которые будут отключены при использовании опции --disable-deprecated-features во время сборки.

Исправление ошибки configure.py, из-за которой --with-stack-protector не работал.

Обновление CI до использования XCode .* на x*-* и XCode .* на aarch*.

Обновление большинства сборок CI до выполнения на Ubuntu **.*.*

Различные исправления clang-tidy.

Исправления для GCC **.

Исправление Roughtime для исключения ссылок на устаревший сервер Cloudflare.

Версия .*, **//**

Добавлены подписи Ed*** и обмен ключами X***.

Проверка X.* сертификатов теперь может опционально игнорировать срок действия корневых сертификатов.

Поддержка "гибридного" кодирования точек EC теперь объявлена устаревшей.

Поддержка создания объектов EC_Group с параметрами больше ** бит теперь объявлена устаревшей.

Добавлены новые параметры сборки для отключения устаревших функций и включения экспериментальных функций.

Исправление ошибки при использовании SIV и CCM шифров через FFI интерфейс.

Добавлен новый FFI интерфейс botan_cipher_requires_entire_message.

Внутренние рефакторинги слоя mp для поддержки новой библиотеки эллиптической кривой.

Использование нового метода постоянного времени деления в Kyber для избежания возможного побочного канала, где компилятор может внедрить использование переменного времени деления.

Рефакторинг использования тестового RNG для улучшения воспроизводимости.

Добавлены интерфейсы std::span к BigInt.

Рефакторинги и улучшения низкоуровневых функций загрузки/хранения данных.

Исправление сборки amalgamation на ARM***.

Добавлен CI сборка на Mac ARM.

Исправление ошибки сериализации потоков, вызывающей спорадические ошибки тестирования.

Обновление действий GitHub Actions до v***.

Добавлены примеры шифрования на основе пароля и клиента HTTPS+ASIO.

Версия .*, **//**

CVE-****: Исправление потенциального отказа в обслуживании из-за принятия произвольной длины простых чисел как потенциальных параметров эллиптической кривой в ASN.* кодировках. При очень больших входных данных проверка простоты может стать вычислительно затратной. Теперь любое простое поле больше ** бит немедленно отклоняется. Сообщено Bing Shi.

Добавлен FrodoKEM постквантовый KEM.

Добавлена поддержка Blake*s.

Добавлена поддержка RFC * в TLS *.* для аутентификации сверстников с использованием открытых ключей.

Обновление политики BSI TLS до соответствия последнему TR, особенно добавление поддержки TLS .**.

Добавлен AsymmetricKey::generate_another() для генерации нового ключа того же типа и параметров, что и существующий ключ.

Добавлен Private_Key::remaining_operations(), указывающий количество оставшихся подписей для состоятельных хеш-базированных подписей.

Добавлена реализация EC_PrivateKey::check_key().

Добавлена аппаратная акселерация SHA-* на ARMv*

X.* сертификаты, содержащие расширения Authority Information Access (*A), теперь могут быть закодированы.

Различные функции, определенные в mem_ops.h теперь объявлены устаревшими для публичного использования.

Поток ASIO TLS теперь можно использовать с C++*** корутинами.

Новый публичный заголовок asio_compat.h для проверки совместимости потока ASIO TLS с доступной версией Boost (..*+).

Выравнивание последовательностей входных буферов в потоке ASIO TLS для избежания создания ненужно маленьких записей TLS.

Переименование потенциально опасного флага конфигурации сборки --terminate-on-asserts на --unsafe-terminate-on-asserts.

Использование современных API SQLite*** с аннотациями целочисленной ширины из SQLite*** ***

Генерация и установка файла конфигурации CMake пакета (*otan-config.cmake).

Добавлен метод предиката TLS::Channel::is_handshake_complete().

Добавлена поддержка установки имени потока на Haiku OS и Dragonfly***

Использование /Zc:throwingNew с MSVC

Обход предупреждения GCC ***

Добавлен CLI инструмент для тестирования побочных каналов RSA с использованием инструментария MARVIN

CLI инструмент 'tls_http_server' теперь основан на Boost Beast

CLI инструмент 'tls_client_hello' может обнаруживать и обрабатывать сообщения TLS .**

Добавлен подробный миграционный гайд для пользователей OpenSSL .*

Различные обновления документации и примеров кода

Исправления и улучшения опыта сборки с использованием ninja

Исправление обработки кофакторов при выполнении маскирования скалярного значения в EC

Исправление потенциальных побочных каналов времени в Kyber

Исправление потенциальной* Несколько небольших исправлений для соответствия TLS, в основном связанных с отклонением недопустимого поведения со стороны клиента (GH #3520 #3537)

  • Адаптация TLS 1.3 для использования интерфейса KEM в подготовке к обмену ключами постквантовой криптографии (GH #3608)
  • Исправление логики интеграции пользовательского обмена ключами для сервера TLS 1.2 (GH #3539)
  • Добавление начальных оберток для использования AVX-512 и реализация версий ChaCha и Serpent на AVX-512. (GH #3206 #3536)
  • Добавление поддержки переменной окружения, которая может отключать расширения процессора (GH #3535)
  • Обновление политики BSI до последней версии TR (GH #3482)
  • Обновление шима тестового набора BoringSSL (GH #3616)
  • Добавление FFI-функций, связанных с управлением ключами Kyber (GH #3546)
  • Весь код был переформатирован с использованием clang-format. (GH #3502 #3558 #3559)
  • Исправление многих предупреждений, сгенерированных clang-tidy.
  • BigInt::random_integer мог занимать много времени, если требовалось сгенерировать число в небольшом диапазоне между двумя большими целыми числами. (GH #3594)
  • Исправление ошибок, связанных с опцией --library-suffix. (GH #3511)
  • Улучшение обработки конфигурации PBKDF в командной строке (GH #3518)
  • Исправление командной строки для правильного обновления состоятельных ключей (например, XMSS) при использовании такого ключа для подписи сертификата X.509 (GH #3579)
  • Добавление поддержки использования PSK в утилитах командной строки TLS (GH #3552)
  • Добавление примера гибридного шифрования RSA+симметричного (GH #3551)
  • В модуле Python функция pbkdf по умолчанию использовала 10K итераций. Теперь это значение изменено на 100K.
  • Переключение на использование coveralls.io для отчетов о покрытии (GH #3512)
  • Добавление скрипта для анализа вывода botan timing_test
  • Из-за проблем, возникающих, если каталог сборки и исходный каталог находятся на разных файловых системах, теперь жесткие ссылки используются только во время сборки, если они явно запрошены. (GH #3504)
  • Заголовок ffi.h больше не зависит от заголовка compiler.h. (GH #3531)
  • Избегание использования макросов с переменным числом аргументов для BOTAN_UNUSED (GH #3530)
  • Небольшая оптимизация кодирования base64 (GH #3528)
  • Если система сборки обнаруживает, что используемый компилятор не поддерживается, она сразу выдаст ошибку, а не позволит сборке завершиться неудачно. В настоящее время это поддерживается только для GCC, Clang и MSVC. (GH #3526)
  • Примеры теперь являются полноценной целью сборки; включите examples в набор, предоставляемый опции --build-targets= для их включения. (GH #3527)
  • Удаление поддержки CMake (не документированной и не поддерживаемой) (GH #3501)

Версия 3.0.0, 2023-04-11

  • Botan теперь является кодовой базой C++20; требования к компиляторам были увеличены до GCC 11, Clang 14 или MSVC 2022. (GH #2455 #3086)

Критические изменения

  • Удаление многих устаревших заголовков. В частности, все заголовки, специфичные для алгоритмов (например, aes.h), больше недоступны; вместо этого объекты должны создаваться через базовые функции create. (GH #2456)
  • Удаление большинства функций, ранее помеченных как устаревшие.
  • Удаление нескольких устаревших алгоритмов, включая CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE и CECPQ1 (GH #2434 #3094)
  • Удаление источника энтропии, который обходил /proc, так как он больше не требуется на современных системах. (GH #2692)
  • Удаление источника энтропии, который читал из /dev/random, так как он заменен существующим источником, который читает из системного RNG. (GH #2636)
  • Удаление использования shared_ptr из API хранилища сертификатов, так как с версии 2.4.0 X509_Certificate внутренне является shared_ptr. (GH #2484)
  • Несколько перечислений, включая DL_Group::Format, EC_Group_Formatting, CRL_Code, ASN1_Tag, Key_Constraints и Signature_Format, теперь являются enum class. Перечисление ASN1_Tag разделено на ASN1_Type и ASN1_Class. (GH #2551 #2552 #3084 #2584 #3225)
  • Избегание использования или возврата сырых указателей там, где это возможно. (GH #2683 #2684 #2685 #2687 #2688 #2690 #2691 #2693 #2694 #2695 #2696 #2697 #2700 #2703 #2708 #3220)
  • Удаление поддержки компиляторов HP и Pathscale, Google NaCL (GH #2455) и IncludeOS (GH #3406)
  • Удаление устаревшего класса Data_Store (GH #2461)
  • Удаление устаревших публичных членов классов OID, Attribute, BER_Object и AlgorithmIdentifier. (GH #2462)
  • "SHA-160" и "SHA1" больше не распознаются как имена для "SHA-1" (GH #3186)

Изменения в TLS

  • Добавлена поддержка TLS v1.3
  • Поддержка TLS 1.0, TLS 1.1 и DTLS 1.0 была удалена (GH #2631)
  • Удаление нескольких устаревших функций в TLS, включая шифры DSA (GH #2505), анонимные шифры (GH #2497), подписи SHA-1 в TLS 1.2 (GH #2537), шифры SRP (GH #2506), шифры SEED (GH #2509), шифры Camellia CBC (GH #2509), шифры AES-128 OCB (GH #2511), шифры DHE_PSK (GH #2512) и шифры CECPQ1 (GH #3094)

Новые криптографические алгоритмы

  • Добавлена поддержка постквантового KEM Kyber (GH #2872 #2500)
  • Добавлена поддержка подписей на основе решеток Dilithium (GH #2973 #3212)
  • Добавлена поддержка хеширования на эллиптическую кривую с использованием техники SSWU из черновика IRTF-CFRG-hash-to-curve (GH #2726)
  • Добавлена поддержка ключевого BLAKE2b (GH #2524)

Новые API

  • Добавлен новый интерфейс T::new_object, который заменяет T::clone. Разница заключается в том, что new_object возвращает unique_ptr<T> вместо сырого указателя T*. Метод T::clone сохранен, но просто освобождает результат new_object. (GH #2689 #2704)
  • Добавлен API к PasswordHash, принимающий AD и/или секретный ключ, позволяющий использовать эти возможности без использования специфичного для алгоритма API (GH #2707)
  • Добавлена новая функция X509_DN::DER_encode. (GH #2472)
  • Новый API Public_Key::get_int_field для получения целочисленных полей публичного (или приватного) ключа по имени (GH #3200)
  • Новые API для Cipher_Mode: ideal_granularity и requires_entire_message (GH #3172 #3168)
  • Новый метод Private_Key::public_key возвращает новый объект, содержащий публичный ключ, связанный с этим приватным ключом. (GH #2520)
  • Метод SymmetricAlgorithm::has_keying_material позволяет проверить, установлен ли уже ключ на объекте (GH #3295)
  • Множество новых функций в интерфейсе C89; см. справочник API для более подробной информации.

Улучшения реализации

  • Добавлена реализация Argon2 на AVX2 (GH #3205)
  • Использование меньших таблиц в реализациях Camellia, ARIA, SEED, DES и Whirlpool (GH #2534 #2558)
  • Изменение реализации DES/3DES для избегания большинства каналов утечки информации на основе кэша. (GH #2565 #2678)
  • Оптимизации для SHACAL2, особенно улучшение производительности на ARMv8 и POWER (GH #2556 #2557)
  • Добавление быстрого пути для инверсии по модулю 2*o с нечетным o, и изменение генерации ключей RSA так, чтобы phi(n) всегда имела эту форму. (GH #2634)
  • Использование кода с постоянным временем выполнения вместо таблиц при вычислении битов четности (GH #2560), выборе типа строки ASN.1 (GH #2559) и при преобразовании в/из варианта base64 bcrypt (GH #2561)
  • Изменение размера экспонент DL; теперь экспоненты немного больше и всегда выбираются так, чтобы быть выровненными по 8 битам. (GH #2545)

Другие улучшения

  • Изменения в TLS::Stream для совместимости с универсальными токенами завершения. (GH #2667 #2648)
  • При создании EC_Group из параметров установка OID, если это известная группа. (GH #2654 #2649)
  • Исправление ошибок в GMAC и SipHash, где они требовали предоставления нового ключа для каждого сообщения. (GH #2908)

Старые версии

  • Примечания к выпуску версий 2.0.0–2.19.5 можно найти в файле doc/news_2x.rst
  • Примечания к выпуску версий 0.7.0–1.11.34 можно найти в файле doc/old_news.rst

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-botan.git
git@api.gitlife.ru:oschina-mirror/mirrors-botan.git
oschina-mirror
mirrors-botan
mirrors-botan
master