Sur cette page

QSsl Namespace

L'espace de noms QSsl déclare des enums communs à toutes les classes SSL dans Qt Network. Plus...

En-tête : #include <QSsl>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Types d'API

(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 }

Description détaillée

Documentation des types

[since 6.0] enum class AlertLevel

Décrit le niveau d'un message d'alerte

Cette énumération décrit le niveau d'un message d'alerte envoyé ou reçu.

ConstanteValeurDescription du message
QSslSocket::AlertLevel::Warning0Message d'alerte non fatal
QSslSocket::AlertLevel::Fatal1Message d'alerte fatale, le backend sous-jacent traitera cette alerte correctement et fermera la connexion.
QSslSocket::AlertLevel::Unknown2Une alerte dont le niveau de gravité est inconnu.

Cette liste a été introduite dans Qt 6.0.

[since 6.0] enum class AlertType

Enumère les codes possibles qu'un message d'alerte peut avoir

Voir RFC 8446, section 6 pour les valeurs possibles et leur signification.

ConstanteValeurDescription
QSslSocket::AlertType::CloseNotify0,
QSslSocket::AlertType::UnexpectedMessage10
QSslSocket::AlertType::BadRecordMac20
QSslSocket::AlertType::RecordOverflow22
QSslSocket::AlertType::DecompressionFailure30
QSslSocket::AlertType::HandshakeFailure40
QSslSocket::AlertType::NoCertificate41
QSslSocket::AlertType::BadCertificate42
QSslSocket::AlertType::UnsupportedCertificate43
QSslSocket::AlertType::CertificateRevoked44
QSslSocket::AlertType::CertificateExpired45
QSslSocket::AlertType::CertificateUnknown46
QSslSocket::AlertType::IllegalParameter47
QSslSocket::AlertType::UnknownCa48
QSslSocket::AlertType::AccessDenied49
QSslSocket::AlertType::DecodeError50
QSslSocket::AlertType::DecryptError51
QSslSocket::AlertType::ExportRestriction60
QSslSocket::AlertType::ProtocolVersion70
QSslSocket::AlertType::InsufficientSecurity71
QSslSocket::AlertType::InternalError80
QSslSocket::AlertType::InappropriateFallback86
QSslSocket::AlertType::UserCancelled90
QSslSocket::AlertType::NoRenegotiation100
QSslSocket::AlertType::MissingExtension109
QSslSocket::AlertType::UnsupportedExtension110
QSslSocket::AlertType::CertificateUnobtainable111
QSslSocket::AlertType::UnrecognizedName112
QSslSocket::AlertType::BadCertificateStatusResponse113
QSslSocket::AlertType::BadCertificateHashValue114
QSslSocket::AlertType::UnknownPskIdentity115
QSslSocket::AlertType::CertificateRequired116
QSslSocket::AlertType::NoApplicationProtocol120
QSslSocket::AlertType::UnknownAlertMessage255

Cette énumération a été introduite dans Qt 6.0.

enum QSsl::AlternativeNameEntryType

Décrit les types de clés pour les entrées de noms alternatifs dans QSslCertificate.

ConstanteValeurDescription
QSsl::EmailEntry0Une entrée de courrier électronique ; l'entrée contient une adresse de courrier électronique pour laquelle le certificat est valide.
QSsl::DnsEntry1Une entrée de nom d'hôte DNS ; l'entrée contient une entrée de nom d'hôte pour laquelle le certificat est valide. L'entrée peut contenir des caractères génériques.
QSsl::IpAddressEntry2Une entrée d'adresse IP ; l'entrée contient une entrée d'adresse IP pour laquelle le certificat est valide, introduite dans Qt 5.13.

Voir aussi QSslCertificate::subjectAlternativeNames().

enum QSsl::EncodingFormat

Décrit les formats d'encodage pris en charge pour les certificats et les clés.

ConstanteValeurDescription du format
QSsl::Pem0Le format PEM.
QSsl::Der1Le format DER.

[since 6.1] enum class ImplementedClass

Énumère les classes qu'un backend TLS implémente

Dans QtNetwork, certaines classes ont une implémentation spécifique au backend et peuvent donc ne pas être implémentées. Les énumérateurs de cette énumération indiquent quelle classe a une implémentation fonctionnelle dans le backend.

ConstanteValeurDescription de la classe
QSslSocket::ImplementedClass::Key0Classe QSslKey.
QSslSocket::ImplementedClass::Certificate1Classe QSslCertificate.
QSslSocket::ImplementedClass::Socket2Classe QSslSocket.
QSslSocket::ImplementedClass::DiffieHellman3Classe QSslDiffieHellmanParameters.
QSslSocket::ImplementedClass::EllipticCurve4Classe QSslEllipticCurve.
QSslSocket::ImplementedClass::Dtls5Classe QDtls.
QSslSocket::ImplementedClass::DtlsCookie6Classe QDtlsClientVerifier.

Cette énumération a été introduite dans Qt 6.1.

enum QSsl::KeyAlgorithm

Décrit les différents algorithmes de clés pris en charge par QSslKey.

ConstanteValeurDescription de l'algorithme
QSsl::MlDsa5L'algorithme ML-DSA.
QSsl::Rsa1L'algorithme RSA.
QSsl::Dsa2L'algorithme DSA.
QSsl::Ec3L'algorithme de la courbe elliptique.
QSsl::Dh4L'algorithme Diffie-Hellman.
QSsl::Opaque0Une clé qui doit être traitée comme une "boîte noire" par QSslKey.

La fonction de clé opaque permet aux applications d'ajouter la prise en charge de fonctions telles que PKCS#11 que Qt n'offre pas actuellement de manière native.

enum QSsl::KeyType

Décrit les deux types de clés prises en charge par QSslKey.

ConstanteValeurDescription de la clé
QSsl::PrivateKey0Une clé privée.
QSsl::PublicKey1Une clé publique.

enum QSsl::SSLOption
flags QSsl::SSLOptions

Décrit les options qui peuvent être utilisées pour contrôler les détails du comportement de SSL. Ces options sont généralement utilisées pour désactiver des fonctionnalités afin de contourner des serveurs bogués.

ConstanteValeurDescription
QSsl::SslOptionDisableEmptyFragments0x01Désactive l'insertion de fragments vides dans les données lors de l'utilisation d'algorithmes de chiffrement par blocs. Lorsque cette option est activée, elle permet d'éviter certaines attaques (telles que l'attaque BEAST), mais elle est incompatible avec certains serveurs.
QSsl::SslOptionDisableSessionTickets0x02Désactive l'extension du ticket de session SSL. Cela peut ralentir l'établissement de la connexion, mais certains serveurs ne sont pas compatibles avec cette extension.
QSsl::SslOptionDisableCompression0x04Désactive l'extension de compression SSL. Lorsqu'elle est activée, cette extension permet de compresser les données transmises par SSL, mais certains serveurs ne sont pas compatibles avec cette extension.
QSsl::SslOptionDisableServerNameIndication0x08Désactive l'extension d'indication du nom du serveur SSL. Lorsqu'elle est activée, cette extension indique au serveur l'hôte virtuel auquel on accède, ce qui lui permet de répondre avec le bon certificat.
QSsl::SslOptionDisableLegacyRenegotiation0x10Désactive l'ancien mécanisme non sécurisé de renégociation des paramètres de connexion. Lorsqu'elle est activée, cette option peut permettre des connexions pour les anciens serveurs, mais elle introduit la possibilité qu'un attaquant puisse injecter du texte en clair dans la session SSL.
QSsl::SslOptionDisableSessionSharing0x20Désactive le partage de la session SSL via l'attribut d'échange d'ID de session.
QSsl::SslOptionDisableSessionPersistence0x40Désactive le stockage de la session SSL au format ASN.1, tel qu'il est renvoyé par QSslConfiguration::sessionTicket(). L'activation de cette fonction ajoute une surcharge de mémoire d'environ 1K par ticket de session utilisé.
QSsl::SslOptionDisableServerCipherPreference0x80Désactive la sélection du code choisi en fonction des préférences du serveur plutôt que de l'ordre dans lequel les codes ont été envoyés par le client. Cette option ne concerne que les sockets du serveur et n'est honorée que par le backend OpenSSL.

Par défaut, l'option SslOptionDisableEmptyFragments est activée car elle pose des problèmes avec un grand nombre de serveurs. L'option SslOptionDisableLegacyRenegotiation est également activée, car elle présente un risque pour la sécurité. L'option SslOptionDisableCompression est activée pour éviter l'attaque rendue publique par CRIME. L'option SSLDisableSessionPersistence est activée pour optimiser l'utilisation de la mémoire. Les autres options sont désactivées.

Remarque : la disponibilité des options ci-dessus dépend de la version du backend SSL utilisé.

Le type SslOptions est un typedef pour QFlags<SslOption>. Il stocke une combinaison OU de valeurs SslOption.

enum QSsl::SslProtocol

Décrit le protocole du cryptogramme.

ConstanteValeurDescription du protocole
QSsl::TlsV1_00TLSv1.0
QSsl::TlsV1_0OrLater5TLSv1.0 et versions ultérieures.
QSsl::TlsV1_11TLSv1.1.
QSsl::TlsV1_1OrLater6TLSv1.1 et versions ultérieures.
QSsl::TlsV1_22TLSv1.2.
QSsl::TlsV1_2OrLater7TLSv1.2 et versions ultérieures.
QSsl::DtlsV1_08DTLSv1.0
QSsl::DtlsV1_0OrLater9DTLSv1.0 et versions ultérieures.
QSsl::DtlsV1_210DTLSv1.2
QSsl::DtlsV1_2OrLater11DTLSv1.2 et versions ultérieures.
QSsl::TlsV1_3 (since Qt 5.12)12TLSv1.3.
QSsl::TlsV1_3OrLater (since Qt 5.12)13TLSv1.3 et versions ultérieures.
QSsl::UnknownProtocol-1Le protocole de chiffrement ne peut être déterminé.
QSsl::AnyProtocol3Tout protocole pris en charge. Cette valeur est utilisée uniquement par QSslSocket.
QSsl::SecureProtocols4L'option par défaut, qui utilise des protocoles réputés sûrs.

[since 6.1] enum class SupportedFeature

Énumère les caractéristiques possibles qu'un backend TLS prend en charge.

Sur QtNetwork, les classes liées à TLS ont une API publique qui peut ne pas être implémentée par certains backend. Par exemple, notre backend SecureTransport ne prend pas en charge l'ALPN côté serveur. Les énumérateurs de l'énumération SupportedFeature indiquent qu'une fonctionnalité particulière est prise en charge.

ConstanteValeurDescription
QSslSocket::SupportedFeature::CertificateVerification0Indique que QSslCertificate::verify() est implémenté par le backend.
QSslSocket::SupportedFeature::ClientSideAlpn1ALPN (Application Layer Protocol Negotiation) côté client.
QSslSocket::SupportedFeature::ServerSideAlpn2ALPN côté serveur.
QSslSocket::SupportedFeature::Ocsp3Agrafage OCSP (Online Certificate Status Protocol).
QSslSocket::SupportedFeature::Psk4Clés pré-partagées.
QSslSocket::SupportedFeature::SessionTicket5Tickets de session.
QSslSocket::SupportedFeature::Alerts6Informations sur les messages d'alerte envoyés et reçus.

Cette liste a été introduite dans 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.