Сообщается о присвоении ветке GnuTLS 3.4.x статуса стабильных выпусков, что сигнализирует о переключении разработчиков на развитие новой экспериментальной ветки 3.5.x (master) и закрытия ветки 3.4.x от принятия существенных изменений.
Основные новшества GnuTLS 3.4:
- Представлен упрощённый API для аутентифицированного шифрования (AEAD), который трудно использовать некорректно. В настоящее время через новый API можно использовать шифры AES-GCM, AES-CCM, CAMELLIA-GCM и CHACHA20-POLY1305;
- Добавлен API для переопределения существующих шифров, алгоритмов хэширования и MAC-ов. Например, можно задействовать собственную реализациют AES-GCM, использующую аппаратное ускорение;
- Добавлен упрощённый API для верификации TLS-сертификатов;
- Добавлен API для работы с системными приватными ключами («gnutls/system-keys.h»);
- Добавлен API для генерации структур и цифровых подписей на базе PKCS
- Добавлена поддержка доменных имён, содержащих символы национальных алфавитов (IDN, Internationalized Domain Names);
- Поддержка потокового шифра ChaCha20 и алгоритма аутентификации сообщений Poly1305, разработанных Дэниэлом Бернштейном (Daniel J. Bernstein). По умолчанию данные шифры не активированы, для включения следует указать «+CHACHA20-POLY1305»;
- Поддержка наборов шифров AES-CCM (RFC6655) и AES-CCM-8 (RFC7251);
- Поддержка режима аутентификации после шифрования (ETM, encrypt-then-authenticate) для шифров CBC
- Реализация TLS-расширения Extended Master Secret;
- SSL 3.0, ARCFOUR (RC4), DSA и DHE-DSS исключены из списка шифров и методов хэширования , доступных по умолчанию. Для включения следует указать «NORMAL:+VERS-SSL3.0», «NORMAL:+ARCFOUR-128» или «NORMAL:+DHE-DSS:+SIGN-DSA-SHA256:+SIGN-DSA-SHA1»;
- Полностью удалена строка выбора экспортных шифров (EXPORT);
- В gnutls_x509_crt_check_hostname() и подобных функциях задействован новый метод сравнения доменных имён, соответствующий требованиям RFC6125;
- Осуществлено задействование функций getrandom(), getentropy() и pthread_atfork(), при их наличии;
- Добавлены функции для извлечения информации из структур PKCS
- Прекращена сборка прослойки libgnutls-openssl;
- В утилиту certtool добавлены новые опции: —p8-info, —key-info, —key-id, —fingerprint, —verify-hostname, —verify-email,
—verify-purpose, —p12-info, —set-id, —set-label; - В gnutls-cli добавлены опции —priority-list и —save-cert;
- Проведена чистка API и ABI на предмет удаления устаревших функций.