Spec-Zone.ru › Qt 5.12

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

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

Заголовок: #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 Network.

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

перечисление 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.

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

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

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

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

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

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

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

перечисление QSsl::SslOptionФлаги 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.

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

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

END_OF_DOCUMENT_MARKER
Постоянная Значение Описание
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::DtlsV1_0 11 DTLSv1.0
QSsl::DtlsV1_0OrLater 12 DTLSv1.0 и более поздние версии.
QSsl::DtlsV1_2 13 DTLSv1.2
QSsl::DtlsV1_2OrLater 14 DTLSv1.2 и более поздние версии.
QSsl::TlsV1_3 15 TLSv1.3. (Начиная с Qt 5.12)
QSsl::TlsV1_3OrLater 16 TLSv1.3 и более поздние версии. (Начиная с Qt 5.12)
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/qt-5.12/qssl.html

Spec-Zone.ru

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