Spec-Zone.ru › Qt 5.11

Пространство имён QSsl

Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в сети Qt. Подробнее...

Заголовок: #include <QSsl>
qmake: QT += network
С момента: Qt 4.3
  • Устаревшие члены

Типы

перечисление AlternativeNameEntryType { EmailEntry, DnsEntry }
перечисление EncodingFormat { Pem, Der }
перечисление KeyAlgorithm { Rsa, Dsa, Ec, Opaque }
перечисление KeyType { PrivateKey, PublicKey }
перечисление SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, ..., SslOptionDisableServerCipherPreference }
флаги SslOptions
перечисление SslProtocol { SslV3, SslV2, TlsV1_0, TlsV1_0OrLater, ..., SecureProtocols }

Подробное описание

Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в сети Qt.

Документация по типам

перечисление QSsl::AlternativeNameEntryType

Описывает типы ключей для записей альтернативных имён в QSslCertificate.

Постоянная Значение Описание
QSsl::EmailEntry 0 Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен.
QSsl::DnsEntry 1 Запись имени хоста DNS; запись содержит запись имени хоста, для которого сертификат действителен. Запись может содержать подстановки.

Примечание: В Qt 4 это перечисление называлось AlternateNameEntryType. Это имя устарело в Qt 5.

См. также QSslCertificate::subjectAlternativeNames().

перечисление QSsl::EncodingFormat

Описывает поддерживаемые форматы кодирования для сертификатов и ключей.

Константа Значение Описание
QSsl::Pem 0 Формат PEM.
QSsl::Der 1 Формат DER.

enum QSsl::KeyAlgorithm

Описание различных алгоритмов ключей, поддерживаемых QSslKey.

Константа Значение Описание
QSsl::Rsa 1 Алгоритм RSA.
QSsl::Dsa 2 Алгоритм DSA.
QSsl::Ec 3 Алгоритм эллиптических кривых.
QSsl::Opaque 0 Ключ, который должен обрабатываться как «черный ящик» QSslKey.

Функциональность неявного ключа позволяет приложениям добавлять поддержку таких функций, как PKCS#11, которых Qt в настоящее время не предоставляет напрямую.

enum QSsl::KeyType

Описание двух типов ключей, поддерживаемых QSslKey.

Константа Значение Описание
QSsl::PrivateKey 0 Закрытый ключ.
QSsl::PublicKey 1 Открытый ключ.

enum QSsl::SslOptionflags QSsl::SslOptions

Описание параметров, которые могут быть использованы для управления деталями поведения SSL. Эти параметры обычно используются для отключения функций для решения проблем с глючными серверами.

Константа Значение Описание
QSsl::SslOptionDisableEmptyFragments 0x01 Отключает вставку пустых фрагментов в данные при использовании блочных шифров. При включении это предотвращает некоторые атаки (например, атаку BEAST), однако это несовместимо с некоторыми серверами.
QSsl::SslOptionDisableSessionTickets 0x02 Отключает расширение билета сеанса SSL. Это может привести к более медленному установлению соединения, однако некоторые серверы несовместимы с расширением.
QSsl::SslOptionDisableCompression 0x04 Отключает расширение сжатия SSL. При включении это позволяет сжимать данные, передаваемые по SSL, однако некоторые серверы несовместимы с этим расширением.
QSsl::SslOptionDisableServerNameIndication 0x08 Отключает расширение указания имени сервера SSL. При включении это сообщает серверу о виртуальном хосте, к которому осуществляется доступ, позволяя ему ответить соответствующим сертификатом.
QSsl::SslOptionDisableLegacyRenegotiation 0x10 Отключает более старый небезопасный механизм переустановки параметров соединения. При включении этот параметр может позволить подключения к устаревшим серверам, но он вводит возможность, что злоумышленник может вставить незашифрованный текст в сеанс SSL.
QSsl::SslOptionDisableSessionSharing 0x20 Отключает совместное использование сеанса SSL через атрибут рукопожатия идентификатора сеанса.
QSsl::SslOptionDisableSessionPersistence 0x40 Отключает хранение сеанса SSL в формате ASN.1, возвращаемом QSslConfiguration::sessionTicket(). Включение этой функции добавляет объем памяти примерно 1 КБ на каждый используемый билет сеанса.
QSsl::SslOptionDisableServerCipherPreference 0x80 Отключает выбор шифра, выбранного на основе предпочтений сервера, а не порядка шифров, отправленных клиентом. Этот параметр относится только к сокетам сервера и соблюдается только бэкендом OpenSSL.

По умолчанию SslOptionDisableEmptyFragments включен, так как это вызывает проблемы со многими серверами. SslOptionDisableLegacyRenegotiation также включен, так как он представляет собой риск для безопасности. SslOptionDisableCompression включен для предотвращения атаки, опубликованной в CRIME. SslOptionDisableSessionPersistence включен для оптимизации использования памяти. Другие параметры выключены.

Примечание: Доступность вышеперечисленных параметров зависит от версии используемого бэкенда SSL.

Тип SslOptions — это псевдоним для QFlags<SslOption>. Он хранит логическое ИЛИ сочетание значений SslOption.

enum QSsl::SslProtocol

Описание протокола шифра.

Постоянная Значение Описание
QSsl::SslV3 0 SSLv3. При использовании бэкенда WinRT этот параметр также включит TLSv1.0
QSsl::SslV2 1 SSLv2. Обратите внимание, что поддержка SSLv2 была удалена в OpenSSL 1.1.
QSsl::TlsV1_0 2 TLSv1.0
QSsl::TlsV1_0OrLater 8 TLSv1.0 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы.
QSsl::TlsV1 TlsV1_0 Устаревший, означает то же, что и TlsV1_0
QSsl::TlsV1_1 3 TLSv1.1. При использовании бэкенда WinRT этот параметр также включит TLSv1.0.
QSsl::TlsV1_1OrLater 9 TLSv1.1 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы.
QSsl::TlsV1_2 4 TLSv1.2. При использовании бэкенда WinRT этот параметр также включит TLSv1.0 и TLSv1.1.
QSsl::TlsV1_2OrLater 10 TLSv1.2 и более поздние версии. Этот параметр недоступен при использовании бэкенда WinRT из-за ограничений платформы.
QSsl::UnknownProtocol -1 Протокол шифра определить невозможно.
QSsl::AnyProtocol 5 Сокет понимает SSLv2, SSLv3, TLSv1.0 и все поддерживаемые более поздние версии TLS. Это значение используется только классом QSslSocket.
QSsl::TlsV1SslV3 6 На стороне клиента это отправит TLS 1.0 Client Hello, что позволит использовать соединения TLSv1_0 и SSLv3. На стороне сервера это позволит использовать соединения как SSLv3, так и TLSv1_0.
QSsl::SecureProtocols 7 Параметр по умолчанию, использующий известные безопасные протоколы; в настоящее время ведет себя аналогично TlsV1Ssl3, но отказывается от подключений SSLv3, которые не обновляются до TLS.

Примечание: большинство серверов понимают как SSL, так и TLS, но рекомендуется использовать только TLS по соображениям безопасности. Однако SSL и TLS несовместимы друг с другом: если у вас возникают неожиданные сбои рукопожатия, проверьте, что вы выбрали правильное значение для вашего протокола.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qssl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API