Пространство имён QSsl
Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в Qt Network. Подробнее...
| Заголовок: | #include <QSsl> |
| CMake: | find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
Типы
| перечисление с классами | УровеньПредупреждения { Предупреждение, Критический, Неизвестный } |
| перечисление с классами | ТипПредупреждения { Закрытие, НеожиданноеСообщение, НеверныйЗаписьMac, ПереполнениеЗаписи, ОшибкаДекомпрессии, …, НеизвестноеСообщениеОбОшибке } |
| перечисление | ТипЗаписиАльтернативногоИмени { АдресПочты, DNS-запись, IP-адрес } |
| перечисление | ФорматКодирования { Pem, Der } |
| перечисление с классами | РеализованныйКласс { Ключ, Сертификат, Сокет, Диффи-Хеллман, ЭллиптическаяКривая, …, DtlsCookie } |
| перечисление | АлгоритмКлюча { Rsa, Dsa, Ec, Dh, Opaque } |
| перечисление | ТипКлюча { ЗакрытыйКлюч, ОткрытыйКлюч } |
| перечисление | ПараметрSsl { ОтключитьПустыеФрагменты, ОтключитьТокеныСессий, ОтключитьСжатие, ОтключитьУказаниеИмениСервера, ОтключитьУстаревшееПереподключение, …, ОтключитьПредпочтениеШифровСервера } |
| флаги | ПараметрыSsl |
| перечисление | ПротоколSsl { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, БезопасныеПротоколы } |
| перечисление с классами | ПоддерживаемаяФункция { ПроверкаСертификата, КлиентскаяСторонаAlpn, СервернаяСторонаAlpn, Ocsp, Psk, …, Предупреждения } |
Подробное описание
Документация по типам
[since 6.0] перечисление с классами УровеньПредупреждения
Описывает уровень сообщения об ошибке
Это перечисление описывает уровень сообщения об ошибке, которое было отправлено или получено.
| Постоянная | Значение | Описание |
|---|---|---|
QSslSocket::AlertLevel::Warning |
0 |
Сообщение об ошибке, которое не является фатальным |
QSslSocket::AlertLevel::Fatal |
1 |
Фатальное сообщение об ошибке, основной компонент обработает такую ошибку должным образом и закроет соединение. |
QSslSocket::AlertLevel::Unknown |
2 |
Сообщение об ошибке с неизвестным уровнем серьезности. |
Это перечисление было введено или изменено в Qt 6.0.
[since 6.0] перечисление AlertType
Перечисляет возможные коды сообщений об ошибках
См. RFC 8446, раздел 6 для возможных значений и их значений.
| Константа | Значение | Описание |
|---|---|---|
QSslSocket::AlertType::CloseNotify |
0 |
, |
QSslSocket::AlertType::UnexpectedMessage |
10 |
|
QSslSocket::AlertType::BadRecordMac |
20 |
|
QSslSocket::AlertType::RecordOverflow |
22 |
|
QSslSocket::AlertType::DecompressionFailure |
30 |
|
QSslSocket::AlertType::HandshakeFailure |
40 |
|
QSslSocket::AlertType::NoCertificate |
41 |
|
QSslSocket::AlertType::BadCertificate |
42 |
|
QSslSocket::AlertType::UnsupportedCertificate |
43 |
|
QSslSocket::AlertType::CertificateRevoked |
44 |
|
QSslSocket::AlertType::CertificateExpired |
45 |
|
QSslSocket::AlertType::CertificateUnknown |
46 |
|
QSslSocket::AlertType::IllegalParameter |
47 |
|
QSslSocket::AlertType::UnknownCa |
48 |
|
QSslSocket::AlertType::AccessDenied |
49 |
|
QSslSocket::AlertType::DecodeError |
50 |
|
QSslSocket::AlertType::DecryptError |
51 |
|
QSslSocket::AlertType::ExportRestriction |
60 |
|
QSslSocket::AlertType::ProtocolVersion |
70 |
|
QSslSocket::AlertType::InsufficientSecurity |
71 |
|
QSslSocket::AlertType::InternalError |
80 |
|
QSslSocket::AlertType::InappropriateFallback |
86 |
|
QSslSocket::AlertType::UserCancelled |
90 |
|
QSslSocket::AlertType::NoRenegotiation |
100 |
|
QSslSocket::AlertType::MissingExtension |
109 |
|
QSslSocket::AlertType::UnsupportedExtension |
110 |
|
QSslSocket::AlertType::CertificateUnobtainable |
111 |
|
QSslSocket::AlertType::UnrecognizedName |
112 |
|
QSslSocket::AlertType::BadCertificateStatusResponse |
113 |
|
QSslSocket::AlertType::BadCertificateHashValue |
114 |
|
QSslSocket::AlertType::UnknownPskIdentity |
115 |
|
QSslSocket::AlertType::CertificateRequired |
116 |
|
QSslSocket::AlertType::NoApplicationProtocol |
120 |
|
QSslSocket::AlertType::UnknownAlertMessage |
255 |
Это перечисление было введено или изменено в Qt 6.0.
перечисление QSsl::AlternativeNameEntryType
Описывает типы ключей для записей альтернативных имен в QSslCertificate.
| Константа | Значение | Описание |
|---|---|---|
QSsl::EmailEntry |
0 |
Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен. |
QSsl::DnsEntry |
1 |
Запись имени хоста DNS; запись содержит запись имени хоста, для которого сертификат действителен. Запись может содержать подстановочные знаки. |
QSsl::IpAddressEntry |
2 |
Запись IP-адреса; запись содержит запись IP-адреса, для которого сертификат действителен, введена в Qt 5.13. |
См. также QSslCertificate::subjectAlternativeNames().
перечисление QSsl::EncodingFormat
Описывает поддерживаемые форматы кодирования для сертификатов и ключей.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::Pem |
0 |
Формат PEM. |
QSsl::Der |
1 |
Формат DER. |
[since 6.1] перечисление ImplementedClass
Перечисляет классы, реализованные TLS-бекендом.
В QtNetwork некоторые классы имеют реализацию, специфичную для бэкенда, и поэтому могут быть не реализованы. Перечислители в этом перечислении указывают, какой класс имеет рабочую реализацию в бэкенде.
| Постоянная | Значение | Описание |
|---|---|---|
QSslSocket::ImplementedClass::Key |
0 |
Класс QSslKey. |
QSslSocket::ImplementedClass::Certificate |
1 |
Класс QSslCertificate. |
QSslSocket::ImplementedClass::Socket |
2 |
Класс QSslSocket. |
QSslSocket::ImplementedClass::DiffieHellman |
3 |
Класс QSslDiffieHellmanParameters. |
QSslSocket::ImplementedClass::EllipticCurve |
4 |
Класс QSslEllipticCurve. |
QSslSocket::ImplementedClass::Dtls |
5 |
Класс QDtls. |
QSslSocket::ImplementedClass::DtlsCookie |
6 |
Класс QDtlsClientVerifier. |
Это перечисление было введено или изменено в Qt 6.1.
перечисление QSsl::KeyAlgorithm
Описывает различные алгоритмы ключей, поддерживаемые QSslKey.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::Rsa |
1 |
Алгоритм RSA. |
QSsl::Dsa |
2 |
Алгоритм DSA. |
QSsl::Ec |
3 |
Алгоритм эллиптических кривых. |
QSsl::Dh |
4 |
Алгоритм Диффи-Хеллмана. |
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 session ticket. Это может привести к замедлению установления соединения, однако некоторые серверы несовместимы с этим расширением. |
QSsl::SslOptionDisableCompression |
0x04 |
Отключает расширение сжатия SSL. При включении это позволяет сжимать данные, передаваемые через SSL, однако некоторые серверы несовместимы с этим расширением. |
QSsl::SslOptionDisableServerNameIndication |
0x08 |
Отключает расширение SSL server name indication. При включении это сообщает серверу о виртуальном хосте, к которому осуществляется доступ, позволяя ему ответить с правильным сертификатом. |
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
Описывает протокол шифра.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::TlsV1_0 |
0 |
TLSv1.0 |
QSsl::TlsV1_0OrLater |
5 |
TLSv1.0 и более поздние версии. |
QSsl::TlsV1_1 |
1 |
TLSv1.1. |
QSsl::TlsV1_1OrLater |
6 |
TLSv1.1 и более поздние версии. |
QSsl::TlsV1_2 |
2 |
TLSv1.2. |
QSsl::TlsV1_2OrLater |
7 |
TLSv1.2 и более поздние версии. |
QSsl::DtlsV1_0 |
8 |
DTLSv1.0 |
QSsl::DtlsV1_0OrLater |
9 |
DTLSv1.0 и более поздние версии. |
QSsl::DtlsV1_2 |
10 |
DTLSv1.2 |
QSsl::DtlsV1_2OrLater |
11 |
DTLSv1.2 и более поздние версии. |
QSsl::TlsV1_3 |
12 |
TLSv1.3. (Начиная с Qt 5.12) |
QSsl::TlsV1_3OrLater |
13 |
TLSv1.3 и более поздние версии. (Начиная с Qt 5.12) |
QSsl::UnknownProtocol |
-1 |
Протокол шифра определить невозможно. |
QSsl::AnyProtocol |
3 |
Любой поддерживаемый протокол. Это значение используется только QSslSocket. |
QSsl::SecureProtocols |
4 |
Значение по умолчанию, использующее протоколы, известные как безопасные. |
[since 6.1] перечисление SupportedFeature
Перечисляет возможные функции, которые поддерживает бэкэнд TLS
В QtNetwork классы, связанные с TLS, имеют публичный API, который может быть не реализован некоторыми бэкэндами, например, наш бэкэнд SecureTransport не поддерживает ALPN на стороне сервера. Перечислители из перечисления SupportedFeature указывают, что конкретная функция поддерживается.
| Константа | Значение | Описание |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification |
0 |
Указывает, что QSslCertificate::verify() реализовано бэкендом. |
QSslSocket::SupportedFeature::ClientSideAlpn |
1 |
ALPN (Протокол согласования протоколов прикладного уровня) на стороне клиента. |
QSslSocket::SupportedFeature::ServerSideAlpn |
2 |
ALPN на стороне сервера. |
QSslSocket::SupportedFeature::Ocsp |
3 |
OCSP-стапляж (Протокол статуса сертификата онлайн). |
QSslSocket::SupportedFeature::Psk |
4 |
Предварительно согласованные ключи. |
QSslSocket::SupportedFeature::SessionTicket |
5 |
Жетоны сеанса. |
QSslSocket::SupportedFeature::Alerts |
6 |
Информация об отправленных и полученных сообщениях об ошибках. |
Этот перечисление был введён или изменён в Qt 6.1.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qssl.html