QSsl Namespace
El espacio de nombres QSsl declara enums comunes a todas las clases SSL en Qt Network. Más...
| Cabecera: | #include <QSsl> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- QSsl forma parte de la API de programación de redes.
Tipos
(since 6.0) enum class | AlertLevel { Warning, Fatal, Unknown } |
(since 6.0) enum class | AlertType { CloseNotify, UnexpectedMessage, BadRecordMac, RecordOverflow, DecompressionFailure, …, UnknownAlertMessage } |
| enum | AlternativeNameEntryType { EmailEntry, DnsEntry, IpAddressEntry } |
| enum | EncodingFormat { Pem, Der } |
(since 6.1) enum class | ImplementedClass { Key, Certificate, Socket, DiffieHellman, EllipticCurve, …, DtlsCookie } |
| enum | KeyAlgorithm { MlDsa, Rsa, Dsa, Ec, Dh, Opaque } |
| enum | KeyType { PrivateKey, PublicKey } |
| enum | SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, …, SslOptionDisableServerCipherPreference } |
| flags | SslOptions |
| enum | SslProtocol { TlsV1_0, TlsV1_0OrLater, TlsV1_1, TlsV1_1OrLater, TlsV1_2, …, SecureProtocols } |
(since 6.1) enum class | SupportedFeature { CertificateVerification, ClientSideAlpn, ServerSideAlpn, Ocsp, Psk, …, Alerts } |
Documentación de tipos
[since 6.0] enum class AlertLevel
Describe el nivel de un mensaje de alerta
Este enum describe el nivel de un mensaje de alerta enviado o recibido.
| Constante | Valor | Descripción |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | Mensaje de alerta no fatal |
QSslSocket::AlertLevel::Fatal | 1 | Mensaje de alerta fatal, el backend subyacente gestionará dicha alerta correctamente y cerrará la conexión. |
QSslSocket::AlertLevel::Unknown | 2 | Una alerta de nivel de gravedad desconocido. |
Este enum se introdujo en Qt 6.0.
[since 6.0] enum class AlertType
Enumera los posibles códigos que puede tener un mensaje de alerta.
Véase RFC 8446, sección 6 para los posibles valores y su significado.
| Constante | Valor | Descripción |
|---|---|---|
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 |
Este enum se introdujo en Qt 6.0.
enum QSsl::AlternativeNameEntryType
Describe los tipos de clave para las entradas de nombres alternativos en QSslCertificate.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::EmailEntry | 0 | Una entrada de correo electrónico; la entrada contiene una dirección de correo electrónico para la que es válido el certificado. |
QSsl::DnsEntry | 1 | Una entrada de nombre de host DNS; la entrada contiene una entrada de nombre de host para la que es válido el certificado. La entrada puede contener comodines. |
QSsl::IpAddressEntry | 2 | Una entrada de dirección IP; la entrada contiene una entrada de dirección IP para la que es válido el certificado, introducida en Qt 5.13. |
Véase también QSslCertificate::subjectAlternativeNames().
enum QSsl::EncodingFormat
Describe los formatos de codificación admitidos para certificados y claves.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::Pem | 0 | El formato PEM. |
QSsl::Der | 1 | El formato DER. |
[since 6.1] enum class ImplementedClass
Enumera las clases que implementa un backend TLS.
En QtNetwork, algunas clases tienen una implementación específica del backend y, por lo tanto, pueden dejarse sin implementar. Los enumeradores de este enum indican qué clase tiene una implementación operativa en el backend.
| Constante | Valor | Descripción |
|---|---|---|
QSslSocket::ImplementedClass::Key | 0 | Clase QSslKey. |
QSslSocket::ImplementedClass::Certificate | 1 | Clase QSslCertificate. |
QSslSocket::ImplementedClass::Socket | 2 | Clase QSslSocket. |
QSslSocket::ImplementedClass::DiffieHellman | 3 | Clase QSslDiffieHellmanParameters. |
QSslSocket::ImplementedClass::EllipticCurve | 4 | Clase QSslEllipticCurve. |
QSslSocket::ImplementedClass::Dtls | 5 | Clase QDtls. |
QSslSocket::ImplementedClass::DtlsCookie | 6 | Clase QDtlsClientVerifier. |
Este enum se introdujo en Qt 6.1.
enum QSsl::KeyAlgorithm
Describe los distintos algoritmos de clave que admite QSslKey.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::MlDsa | 5 | El algoritmo ML-DSA. |
QSsl::Rsa | 1 | Algoritmo RSA. |
QSsl::Dsa | 2 | Algoritmo DSA. |
QSsl::Ec | 3 | Algoritmo de la curva elíptica. |
QSsl::Dh | 4 | El algoritmo Diffie-Hellman. |
QSsl::Opaque | 0 | Una clave que debe ser tratada como una "caja negra" por QSslKey. |
La facilidad de clave opaca permite a las aplicaciones añadir soporte para facilidades como PKCS#11 que Qt no ofrece actualmente de forma nativa.
enum QSsl::KeyType
Describe los dos tipos de claves que admite QSslKey.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::PrivateKey | 0 | Una clave privada. |
QSsl::PublicKey | 1 | Una clave pública. |
enum QSsl::SslOption
flags QSsl::SslOptions
Describe las opciones que se pueden utilizar para controlar los detalles del comportamiento SSL. Estas opciones se utilizan generalmente para desactivar funciones y evitar errores en los servidores.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | Desactiva la inserción de fragmentos vacíos en los datos cuando se utilizan cifrados por bloques. Cuando se activa, esto previene algunos ataques (como el ataque BEAST), sin embargo es incompatible con algunos servidores. |
QSsl::SslOptionDisableSessionTickets | 0x02 | Desactiva la extensión de ticket de sesión SSL. Esto puede ralentizar la conexión, pero algunos servidores no son compatibles con esta extensión. |
QSsl::SslOptionDisableCompression | 0x04 | Desactiva la extensión de compresión SSL. Cuando está activada, permite comprimir los datos que se transmiten a través de SSL, aunque algunos servidores no son compatibles con esta extensión. |
QSsl::SslOptionDisableServerNameIndication | 0x08 | Desactiva la extensión de indicación del nombre del servidor SSL. Si está activada, indica al servidor el host virtual al que se está accediendo, lo que le permite responder con el certificado correcto. |
QSsl::SslOptionDisableLegacyRenegotiation | 0x10 | Desactiva el antiguo mecanismo inseguro de renegociación de los parámetros de conexión. Cuando está activada, esta opción puede permitir conexiones para servidores heredados, pero introduce la posibilidad de que un atacante pueda inyectar texto plano en la sesión SSL. |
QSsl::SslOptionDisableSessionSharing | 0x20 | Desactiva el uso compartido de la sesión SSL a través del atributo handshake de ID de sesión. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | Desactiva el almacenamiento de la sesión SSL en formato ASN.1, tal y como devuelve QSslConfiguration::sessionTicket(). Activar esta función añade una sobrecarga de memoria de aproximadamente 1K por ticket de sesión utilizado. |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | Desactiva la selección del cifrado elegido basándose en las preferencias del servidor en lugar del orden en que los cifrados fueron enviados por el cliente. Esta opción sólo es relevante para los sockets de servidor, y sólo es respetada por el backend OpenSSL. |
Por defecto, SslOptionDisableEmptyFragments está activado ya que causa problemas con un gran número de servidores. SslOptionDisableLegacyRenegotiation también está activada, ya que introduce un riesgo de seguridad. SslOptionDisableCompression está activado para prevenir el ataque publicado por CRIME. SslOptionDisableSessionPersistence está activada para optimizar el uso de memoria. Las demás opciones están desactivadas.
Nota: La disponibilidad de las opciones anteriores depende de la versión del backend SSL en uso.
El tipo SslOptions es un typedef para QFlags<SslOption>. Almacena una combinación OR de valores SslOption.
enum QSsl::SslProtocol
Describe el protocolo del cifrado.
| Constante | Valor | Descripción |
|---|---|---|
QSsl::TlsV1_0 | 0 | TLSv1.0 |
QSsl::TlsV1_0OrLater | 5 | TLSv1.0 y versiones posteriores. |
QSsl::TlsV1_1 | 1 | TLSv1.1 |
QSsl::TlsV1_1OrLater | 6 | TLSv1.1 y versiones posteriores. |
QSsl::TlsV1_2 | 2 | TLSv1.2. |
QSsl::TlsV1_2OrLater | 7 | TLSv1.2 y versiones posteriores. |
QSsl::DtlsV1_0 | 8 | DTLSv1.0 |
QSsl::DtlsV1_0OrLater | 9 | DTLSv1.0 y versiones posteriores. |
QSsl::DtlsV1_2 | 10 | DTLSv1.2 |
QSsl::DtlsV1_2OrLater | 11 | DTLSv1.2 y versiones posteriores. |
QSsl::TlsV1_3 (since Qt 5.12) | 12 | TLSv1.3 |
QSsl::TlsV1_3OrLater (since Qt 5.12) | 13 | TLSv1.3 y versiones posteriores. |
QSsl::UnknownProtocol | -1 | No se puede determinar el protocolo del cifrado. |
QSsl::AnyProtocol | 3 | Cualquier protocolo soportado. Este valor sólo lo utiliza QSslSocket. |
QSsl::SecureProtocols | 4 | La opción por defecto, usando protocolos conocidos por ser seguros. |
[since 6.1] enum class SupportedFeature
Enumera las posibles características que soporta un backend TLS
En QtNetwork las clases relacionadas con TLS tienen una API pública, que puede no ser implementada por algún backend, por ejemplo, nuestro backend SecureTransport no soporta ALPN del lado del servidor. Los enumeradores del enum SupportedFeature indican que se admite una característica determinada.
| Constante | Valor | Descripción |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | Indica que el backend implementa QSslCertificate::verify(). |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | ALPN (Application Layer Protocol Negotiation) del lado del cliente. |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | ALPN del lado del servidor. |
QSslSocket::SupportedFeature::Ocsp | 3 | Engrapado OCSP (protocolo de estado de certificados en línea). |
QSslSocket::SupportedFeature::Psk | 4 | Claves precompartidas. |
QSslSocket::SupportedFeature::SessionTicket | 5 | Tickets de sesión. |
QSslSocket::SupportedFeature::Alerts | 6 | Información sobre mensajes de alerta enviados y recibidos. |
Este enum se introdujo en Qt 6.1.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.