Sur cette page

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

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 }

Description détaillée

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.

ConstanteValeurDescription
QSslSocket::AlertLevel::Warning0Message d'alerte non critique
QSslSocket::AlertLevel::Fatal1Message d'alerte critique : le backend sous-jacent gérera correctement ce type d'alerte et fermera la connexion.
QSslSocket::AlertLevel::Unknown2Alerte 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.

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 utilisés pour les entrées de noms alternatifs dans QSslCertificate.

ConstanteValeurDescription
QSsl::EmailEntry0Une entrée de messagerie ; l'entrée contient une adresse e-mail pour laquelle le certificat est valide.
QSsl::DnsEntry1Une 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::IpAddressEntry2Une 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.

ConstanteValeurDescription
QSsl::Pem0Le format PEM.
QSsl::Der1Le 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.

ConstanteValeurDescription
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 chiffrement pris en charge par QSslKey.

ConstanteValeurDescription
QSsl::MlDsa5L'algorithme ML-DSA.
QSsl::Rsa1L'algorithme RSA.
QSsl::Dsa2L'algorithme DSA.
QSsl::Ec3L'algorithme à courbe elliptique.
QSsl::Dh4L'algorithme de Diffie-Hellman.
QSsl::Opaque0Une 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 ».

ConstanteValeurDescription
QSsl::PrivateKey0Une clé privée.
QSsl::PublicKey1Une 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.

ConstanteValeurDescription
QSsl::SslOptionDisableEmptyFragments0x01Dé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::SslOptionDisableSessionTickets0x02Dé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::SslOptionDisableCompression0x04Dé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::SslOptionDisableServerNameIndication0x08Dé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::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 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::SslOptionDisableSessionSharing0x20Désactive le partage de session SSL via l’attribut de négociation d’identifiant de session.
QSsl::SslOptionDisableSessionPersistence0x40Dé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::SslOptionDisableServerCipherPreference0x80Dé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.

ConstanteValeurDescription
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 du chiffrement ne peut pas être déterminé.
QSsl::AnyProtocol3Tout protocole pris en charge. Cette valeur est utilisée uniquement par QSslSocket.
QSsl::SecureProtocols4Option 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.

ConstanteValeurDescription
QSslSocket::SupportedFeature::CertificateVerification0Indique que la méthode ` QSslCertificate::verify()` est implémentée par le backend.
QSslSocket::SupportedFeature::ClientSideAlpn1ALPN côté client (négociation du protocole au niveau de la couche application).
QSslSocket::SupportedFeature::ServerSideAlpn2ALPN côté serveur.
QSslSocket::SupportedFeature::Ocsp3OCSP stapling (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 é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.