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 |
- QSsl fait partie de l'API de programmation réseau.
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 } |
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.
| Constante | Valeur | Description du message |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | Message d'alerte non fatal |
QSslSocket::AlertLevel::Fatal | 1 | Message d'alerte fatale, le backend sous-jacent traitera cette alerte correctement et fermera la connexion. |
QSslSocket::AlertLevel::Unknown | 2 | Une 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.
| Constante | Valeur | Description |
|---|---|---|
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 |
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.
| Constante | Valeur | Description |
|---|---|---|
QSsl::EmailEntry | 0 | Une entrée de courrier électronique ; l'entrée contient une adresse de courrier électronique pour laquelle le certificat est valide. |
QSsl::DnsEntry | 1 | Une 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::IpAddressEntry | 2 | Une 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.
| Constante | Valeur | Description du format |
|---|---|---|
QSsl::Pem | 0 | Le format PEM. |
QSsl::Der | 1 | Le 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.
| Constante | Valeur | Description de la classe |
|---|---|---|
QSslSocket::ImplementedClass::Key | 0 | Classe QSslKey. |
QSslSocket::ImplementedClass::Certificate | 1 | Classe QSslCertificate. |
QSslSocket::ImplementedClass::Socket | 2 | Classe QSslSocket. |
QSslSocket::ImplementedClass::DiffieHellman | 3 | Classe QSslDiffieHellmanParameters. |
QSslSocket::ImplementedClass::EllipticCurve | 4 | Classe QSslEllipticCurve. |
QSslSocket::ImplementedClass::Dtls | 5 | Classe QDtls. |
QSslSocket::ImplementedClass::DtlsCookie | 6 | Classe 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.
| Constante | Valeur | Description de l'algorithme |
|---|---|---|
QSsl::MlDsa | 5 | L'algorithme ML-DSA. |
QSsl::Rsa | 1 | L'algorithme RSA. |
QSsl::Dsa | 2 | L'algorithme DSA. |
QSsl::Ec | 3 | L'algorithme de la courbe elliptique. |
QSsl::Dh | 4 | L'algorithme Diffie-Hellman. |
QSsl::Opaque | 0 | Une 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.
| Constante | Valeur | Description de la clé |
|---|---|---|
QSsl::PrivateKey | 0 | Une clé privée. |
QSsl::PublicKey | 1 | Une 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.
| Constante | Valeur | Description |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | Dé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::SslOptionDisableSessionTickets | 0x02 | Dé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::SslOptionDisableCompression | 0x04 | Dé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::SslOptionDisableServerNameIndication | 0x08 | Dé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::SslOptionDisableLegacyRenegotiation | 0x10 | Dé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::SslOptionDisableSessionSharing | 0x20 | Désactive le partage de la session SSL via l'attribut d'échange d'ID de session. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | Dé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::SslOptionDisableServerCipherPreference | 0x80 | Dé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.
| Constante | Valeur | Description du protocole |
|---|---|---|
QSsl::TlsV1_0 | 0 | TLSv1.0 |
QSsl::TlsV1_0OrLater | 5 | TLSv1.0 et versions ultérieures. |
QSsl::TlsV1_1 | 1 | TLSv1.1. |
QSsl::TlsV1_1OrLater | 6 | TLSv1.1 et versions ultérieures. |
QSsl::TlsV1_2 | 2 | TLSv1.2. |
QSsl::TlsV1_2OrLater | 7 | TLSv1.2 et versions ultérieures. |
QSsl::DtlsV1_0 | 8 | DTLSv1.0 |
QSsl::DtlsV1_0OrLater | 9 | DTLSv1.0 et versions ultérieures. |
QSsl::DtlsV1_2 | 10 | DTLSv1.2 |
QSsl::DtlsV1_2OrLater | 11 | DTLSv1.2 et versions ultérieures. |
QSsl::TlsV1_3 (since Qt 5.12) | 12 | TLSv1.3. |
QSsl::TlsV1_3OrLater (since Qt 5.12) | 13 | TLSv1.3 et versions ultérieures. |
QSsl::UnknownProtocol | -1 | Le protocole de chiffrement ne peut être déterminé. |
QSsl::AnyProtocol | 3 | Tout protocole pris en charge. Cette valeur est utilisée uniquement par QSslSocket. |
QSsl::SecureProtocols | 4 | L'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.
| Constante | Valeur | Description |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | Indique que QSslCertificate::verify() est implémenté par le backend. |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | ALPN (Application Layer Protocol Negotiation) côté client. |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | ALPN côté serveur. |
QSslSocket::SupportedFeature::Ocsp | 3 | Agrafage OCSP (Online Certificate Status Protocol). |
QSslSocket::SupportedFeature::Psk | 4 | Clés pré-partagées. |
QSslSocket::SupportedFeature::SessionTicket | 5 | Tickets de session. |
QSslSocket::SupportedFeature::Alerts | 6 | Informations 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.