Пространство имен 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