QSsl Namespace
L'espace de noms QSsl définit des énumérations communes à toutes les classes SSL de Qt Network. En savoir 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
(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 sur le type
[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 qui a été envoyé ou reçu.
| Constante | Valeur | Description |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | Message d'alerte non critique |
QSslSocket::AlertLevel::Fatal | 1 | Message d'alerte critique : le backend sous-jacent gérera correctement ce type d'alerte et fermera la connexion. |
QSslSocket::AlertLevel::Unknown | 2 | Alerte dont le niveau de gravité est inconnu. |
Cette énumération a été introduite dans Qt 6.0.
[since 6.0] enum class AlertType
Énumère les codes possibles d'un message d'alerte
Voir la RFC 8446, section 6, pour connaître 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 utilisés pour les entrées de noms alternatifs dans QSslCertificate.
| Constante | Valeur | Description |
|---|---|---|
QSsl::EmailEntry | 0 | Une entrée de messagerie ; l'entrée contient une adresse e-mail pour laquelle le certificat est valide. |
QSsl::DnsEntry | 1 | Une entrée de nom d'hôte DNS ; l'entrée contient un nom d'hôte pour lequel le certificat est valide. L'entrée peut contenir des caractères génériques. |
QSsl::IpAddressEntry | 2 | Une entrée d'adresse IP ; cette entrée contient une adresse IP pour laquelle le certificat est valide, introduite dans Qt 5.13. |
Voir également QSslCertificate::subjectAlternativeNames().
enum QSsl::EncodingFormat
Décrit les formats d'encodage pris en charge pour les certificats et les clés.
| Constante | Valeur | Description |
|---|---|---|
QSsl::Pem | 0 | Le format PEM. |
QSsl::Der | 1 | Le format DER. |
[since 6.1] enum class ImplementedClass
Énumère les classes implémentées par un backend TLS
Dans QtNetwork, certaines classes ont une implémentation spécifique au backend et peuvent donc rester non implémentées. Les éléments de cette énumération indiquent quelles classes disposent d'une implémentation fonctionnelle dans le backend.
| Constante | Valeur | Description |
|---|---|---|
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 chiffrement pris en charge par QSslKey.
| Constante | Valeur | Description |
|---|---|---|
QSsl::MlDsa | 5 | L'algorithme ML-DSA. |
QSsl::Rsa | 1 | L'algorithme RSA. |
QSsl::Dsa | 2 | L'algorithme DSA. |
QSsl::Ec | 3 | L'algorithme à courbe elliptique. |
QSsl::Dh | 4 | L'algorithme de Diffie-Hellman. |
QSsl::Opaque | 0 | Une clé qui doit être traitée comme une « boîte noire » par l'QSslKey. |
La fonctionnalité de clé opaque permet aux applications d'ajouter la prise en charge de fonctionnalités telles que PKCS#11, que Qt ne propose pas actuellement en natif.
enum QSsl::KeyType
Décrit les deux types de clés pris en charge par « QSslKey ».
| Constante | Valeur | Description |
|---|---|---|
QSsl::PrivateKey | 0 | Une clé privée. |
QSsl::PublicKey | 1 | Une clé publique. |
enum QSsl::SslOption
flags QSsl::SslOptions
Décrit les options permettant de contrôler les détails du comportement SSL. Ces options sont généralement utilisées pour désactiver certaines fonctionnalités afin de contourner les problèmes liés à des serveurs présentant des bogues.
| Constante | Valeur | Description |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | Désactive l'insertion de fragments vides dans les données lors de l'utilisation de chiffrements par blocs. Lorsqu'elle est activée, cette option empêche certaines attaques (telles que l'attaque BEAST), mais elle est incompatible avec certains serveurs. |
QSsl::SslOptionDisableSessionTickets | 0x02 | Désactive l'extension de 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, elle permet de compresser les données transmises via SSL ; cependant, certains serveurs ne sont pas compatibles avec cette extension. |
QSsl::SslOptionDisableServerNameIndication | 0x08 | Désactive l'extension « SSL Server Name Indication ». Lorsqu'elle est activée, cette option indique au serveur l'hôte virtuel auquel on accède, ce qui lui permet de répondre avec le certificat approprié. |
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 vers des serveurs hérités, mais elle introduit le risque qu’un attaquant puisse injecter du texte en clair dans la session SSL. |
QSsl::SslOptionDisableSessionSharing | 0x20 | Désactive le partage de session SSL via l’attribut de négociation d’identifiant de session. |
QSsl::SslOptionDisableSessionPersistence | 0x40 | Désactive le stockage de la session SSL au format ASN.1 tel que renvoyé par la fonction ` QSslConfiguration::sessionTicket()`. L’activation de cette fonctionnalité entraîne une surcharge mémoire d’environ 1 Ko par ticket de session utilisé. |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | Désactive la sélection du chiffrement en fonction des préférences du serveur plutôt que de l’ordre dans lequel les chiffrement ont été envoyés par le client. Cette option ne concerne que les sockets serveur et n’est prise en compte que par le backend OpenSSL. |
Par défaut, l’option `SslOptionDisableEmptyFragments` est activée, car son activation pose des problèmes avec un grand nombre de serveurs. L’option `SslOptionDisableLegacyRenegotiation` est également activée, car elle présente un risque de sécurité. L’option SslOptionDisableCompression est activée pour prévenir l’attaque rendue publique par CRIME. L’option SslOptionDisableSessionPersistence 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ée.
Le type SslOptions est un typedef pour QFlags<SslOption>. Il stocke une combinaison OR de valeurs SslOption.
enum QSsl::SslProtocol
Décrit le protocole du chiffrement.
| Constante | Valeur | Description |
|---|---|---|
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 du chiffrement ne peut pas être déterminé. |
QSsl::AnyProtocol | 3 | Tout protocole pris en charge. Cette valeur est utilisée uniquement par QSslSocket. |
QSsl::SecureProtocols | 4 | Option par défaut, utilisant des protocoles reconnus comme sécurisés. |
[since 6.1] enum class SupportedFeature
Énumère les fonctionnalités possibles prises en charge par un backend TLS
Dans QtNetwork, les classes liées au protocole TLS disposent d’une API publique qui peut ne pas être implémentée par certains backends. Par exemple, notre backend SecureTransport ne prend pas en charge l’ALPN côté serveur. Les éléments de l’énumération `SupportedFeature` indiquent qu’une fonctionnalité particulière est prise en charge.
| Constante | Valeur | Description |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | Indique que la méthode ` QSslCertificate::verify()` est implémentée par le backend. |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | ALPN côté client (négociation du protocole au niveau de la couche application). |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | ALPN côté serveur. |
QSslSocket::SupportedFeature::Ocsp | 3 | OCSP stapling (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 énumération 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.