Пространство имён QSsl
Пространство имён QSsl объявляет перечисления, общие для всех классов SSL в Qt Network. Подробнее...
| Заголовок: | #include <QSsl> |
| CMake: | find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
Типы
| Перечисление | УровеньПредупреждения { Предупреждение, КритическаяОшибка, Неизвестный } |
| Перечисление | ТипПредупреждения { ЗакрытиеСообщения, НеожиданноеСообщение, ОшибкаРекорда, ПереполнениеРекорда, ОшибкаДекомпрессии, …, НеизвестноеСообщение } |
| Перечисление | ТипВходаАльтернативногоИмени { АдресПочта, DNS_запись, IP_адрес } |
| Перечисление | ФорматКодирования { PEM, DER } |
| Перечисление | АлгоритмКлюча { RSA, DSA, EC, DH, Неявный } |
| Перечисление | ТипКлюча { ПриватныйКлюч, ПубличныйКлюч } |
| Перечисление | ПараметрSSL { ОтключитьПустыеФрагменты, ОтключитьСеансовыеТокены, ОтключитьСжатие, ОтключитьУказаниеИмениСервера, ОтключитьНаследуемуюПереговоры, …, ОтключитьПредпочтениеШифрованияСервера } |
| Флаги | ПараметрыSSL |
| Перечисление | ПротоколSSL { TLSv1_0, TLSv1_0ИлиПозже, TLSv1_1, TLSv1_1ИлиПозже, TLSv1_2, …, БезопасныеПротоколы } |
Подробное описание
Документация по типам
[since 6.0] Перечисление УровеньПредупреждения
Описывает уровень сообщения об ошибке
Это перечисление описывает уровень сообщения об ошибке, которое было отправлено или получено.
| Константа | Значение | Описание |
|---|---|---|
QSslSocket::AlertLevel::Warning |
0 |
Сообщение об ошибке, не являющееся фатальным |
QSslSocket::AlertLevel::Fatal |
1 |
Фатальное сообщение об ошибке, бэкэнд обработает такое сообщение об ошибке должным образом и закроет подключение. |
QSslSocket::AlertLevel::Unknown |
2 |
Ошибка неизвестного уровня серьезности. |
Это перечисление было введено или изменено в Qt 6.0.
[since 6.0] Перечисление ТипПредупреждения
Перечисляет возможные коды, которые может иметь сообщение об ошибке.
См. 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. |
enum QSsl::KeyAlgorithm
Описывает различные алгоритмы шифрования ключей, поддерживаемые QSslKey.
| Постоянная | Значение | Описание |
|---|---|---|
QSsl::Rsa |
1 |
Алгоритм RSA. |
QSsl::Dsa |
2 |
Алгоритм DSA. |
QSsl::Ec |
3 |
Алгоритм кривой эллипса. |
QSsl::Dh |
4 |
Алгоритм Диффи-Хеллмана. |
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::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 |
Параметр по умолчанию, использующий известные безопасные протоколы. |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qssl.html