Пространство имён 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 } |
| Перечисление | РеализованныйКласс { Ключ, Сертификат, Сокет, DiffieHellman, ЭллиптическаяКривая, Dtls } |
| Перечисление | АлгоритмКлюча { RSA, DSA, EC, DH, Неявный } |
| Перечисление | ТипКлюча { ПриватныйКлюч, ПубличныйКлюч } |
| Перечисление | ПараметрSSL { ОтключитьПустыеФрагменты, ОтключитьБилетыСеанса, ОтключитьСжатие, ОтключитьУказаниеИмениСервера, ОтключитьНаследованиеНаследияПереподключения, …, ОтключитьПредпочтениеШифрованияСервера } |
| Флаги | ПараметрыSSL |
| Перечисление | ПротоколSSL { TlsV1_0, TlsV1_0ИлиПозже, TlsV1_1, TlsV1_1ИлиПозже, 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] enum class 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.
enum QSsl::AlternativeNameEntryType
Описывает типы ключей для записей альтернативных имен в QSslCertificate.
| Константа | Значение | Описание |
|---|---|---|
QSsl::EmailEntry |
0 |
Запись электронной почты; запись содержит адрес электронной почты, для которого сертификат действителен. |
QSsl::DnsEntry |
1 |
Запись имени хоста DNS; запись содержит имя хоста, для которого сертификат действителен. Запись может содержать подстановки. |
QSsl::IpAddressEntry |
2 |
Запись IP-адреса; запись содержит запись IP-адреса, для которого сертификат действителен, добавлена в Qt 5.13. |
См. также QSslCertificate::subjectAlternativeNames().
enum 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 и 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 |
Открытый ключ. |
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::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] enum class 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.1/qssl.html