QSsl Namespace
「QSsl」ネームスペースは、Qt Network 内のすべての SSL クラスに共通する列挙型を宣言しています。詳細...
| ヘッダー: | #include <QSsl> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- QSslはネットワークプログラミング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 } |
型のドキュメント
[since 6.0] enum class AlertLevel
アラートメッセージのレベルを記述します
この列挙型は、送信または受信されたアラートメッセージのレベルを表します。
| 定数 | 値 | 説明 |
|---|---|---|
QSslSocket::AlertLevel::Warning | 0 | 致命的ではないアラートメッセージ |
QSslSocket::AlertLevel::Fatal | 1 | 致命的なアラートメッセージ。基盤となるバックエンドは、このようなアラートを適切に処理し、接続を閉じます。 |
QSslSocket::AlertLevel::Unknown | 2 | 深刻度のレベルが不明なアラート。 |
この列挙型は Qt 6.0 で導入されました。
[since 6.0] enum class AlertType
アラートメッセージに設定可能なコードを列挙する
取り得る値とその意味については、RFC 8446の第6節を参照のこと。
| 定数 | 値 | 説明 |
|---|---|---|
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 |
この列挙型は Qt 6.0 で導入されました。
enum QSsl::AlternativeNameEntryType
QSslCertificate における別名エントリのキータイプについて説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::EmailEntry | 0 | 電子メールエントリ。このエントリには、証明書が有効である電子メールアドレスが含まれます。 |
QSsl::DnsEntry | 1 | DNS ホスト名エントリ。このエントリには、証明書が有効であるホスト名が含まれます。このエントリにはワイルドカードを含めることができます。 |
QSsl::IpAddressEntry | 2 | IP アドレスエントリ。このエントリには、証明書が有効である IP アドレスが含まれます。Qt 5.13 で導入されました。 |
QSslCertificate::subjectAlternativeNames()も参照してください 。
enum QSsl::EncodingFormat
証明書および鍵でサポートされているエンコード形式について説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::Pem | 0 | PEM 形式。 |
QSsl::Der | 1 | DER 形式。 |
[since 6.1] enum class ImplementedClass
TLSバックエンドが実装するクラスを列挙します
QtNetwork では、一部のクラスはバックエンド固有の実装を持つため、未実装のままにしておくことができます。この列挙型の要素は、どのクラスがバックエンドで正常に動作する実装を持っているかを示します。
| 定数 | 値 | 説明 |
|---|---|---|
QSslSocket::ImplementedClass::Key | 0 | クラス `QSslKey`。 |
QSslSocket::ImplementedClass::Certificate | 1 | QSslCertificate クラス。 クラス。 |
QSslSocket::ImplementedClass::Socket | 2 | QSslSocket クラス。 クラス。 |
QSslSocket::ImplementedClass::DiffieHellman | 3 | QSslDiffieHellmanParameters クラス。 |
QSslSocket::ImplementedClass::EllipticCurve | 4 | QSslEllipticCurve クラス。 |
QSslSocket::ImplementedClass::Dtls | 5 | クラスQDtls 。 |
QSslSocket::ImplementedClass::DtlsCookie | 6 | クラス `QDtlsClientVerifier`。 |
この列挙型は Qt 6.1 で導入されました。
enum QSsl::KeyAlgorithm
QSslKey がサポートするさまざまな暗号アルゴリズムについて説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::MlDsa | 5 | ML-DSA アルゴリズム。 |
QSsl::Rsa | 1 | RSA アルゴリズム。 |
QSsl::Dsa | 2 | DSA アルゴリズム。 |
QSsl::Ec | 3 | 楕円曲線アルゴリズム。 |
QSsl::Dh | 4 | ディフィー・ヘルマンアルゴリズム。 |
QSsl::Opaque | 0 | QSslKey によって「ブラックボックス」として扱われるべき鍵。 |
不透明鍵機能により、アプリケーションは、Qt が現在ネイティブでは提供していない PKCS#11 などの機能へのサポートを追加することができます。
enum QSsl::KeyType
QSslKey がサポートする2種類のキーについて説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::PrivateKey | 0 | 秘密鍵。 |
QSsl::PublicKey | 1 | 公開鍵。 |
enum QSsl::SslOption
flags QSsl::SslOptions
SSLの動作の詳細を制御するために使用できるオプションについて説明します。これらのオプションは、一般的に、不具合のあるサーバーを回避するために機能を無効にするために使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::SslOptionDisableEmptyFragments | 0x01 | ブロック暗号を使用する際、データへの空のフラグメントの挿入を無効にします。有効にすると、BEAST攻撃などの一部の攻撃を防ぐことができますが、一部のサーバーとは互換性がありません。 |
QSsl::SslOptionDisableSessionTickets | 0x02 | SSL セッションチケット拡張機能を無効にします。これにより、接続の確立に時間がかかる場合がありますが、一部のサーバーはこの拡張機能に対応していません。 |
QSsl::SslOptionDisableCompression | 0x04 | SSL圧縮拡張機能を無効にします。有効にすると、SSL経由で送信されるデータを圧縮できるようになりますが、一部のサーバーはこの拡張機能に対応していません。 |
QSsl::SslOptionDisableServerNameIndication | 0x08 | SSL サーバー名指示拡張機能を無効にします。有効にすると、アクセスされている仮想ホストがサーバーに通知され、サーバーは正しい証明書で応答できるようになります。 |
QSsl::SslOptionDisableLegacyRenegotiation | 0x10 | 接続パラメータを再ネゴシエートするための、古い不安全なメカニズムを無効にします。有効にすると、レガシーサーバーとの接続が可能になりますが、攻撃者がSSLセッションに平文を注入する可能性が生じます。 |
QSsl::SslOptionDisableSessionSharing | 0x20 | セッション ID ハンドシェイク属性による SSL セッション共有を無効にします。 |
QSsl::SslOptionDisableSessionPersistence | 0x40 | QSslConfiguration::sessionTicket() によって返される ASN.1 形式での SSL セッションの保存を無効にします。この機能を有効にすると、使用中のセッションチケット 1 つにつき約 1K のメモリオーバーヘッドが発生します。 |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | クライアントから送信された暗号スイートの順序ではなく、サーバーの優先順位に基づいて暗号スイートを選択する機能を無効にします。このオプションはサーバーソケットにのみ関連し、OpenSSLバックエンドでのみ有効です。 |
デフォルトでは、多数のサーバーで問題を引き起こすため、SslOptionDisableEmptyFragmentsが有効になっています。また、セキュリティリスクをもたらすため、SslOptionDisableLegacyRenegotiationも有効になっています。 CRIMEによって公表された攻撃を防ぐため、SslOptionDisableCompressionが有効になっています。メモリ使用量を最適化するため、SslOptionDisableSessionPersistenceが有効になっています。その他のオプションは無効になっています。
注: 上記のオプションの利用可否は 、使用しているSSLバックエンドのバージョンによって異なります。
SslOptions 型は、QFlags<SslOption> の typedef です。SslOption 値の OR 組み合わせを格納します。
enum QSsl::SslProtocol
この暗号方式のプロトコルについて説明します。
| 定数 | 値 | 説明 |
|---|---|---|
QSsl::TlsV1_0 | 0 | TLSv1.0 |
QSsl::TlsV1_0OrLater | 5 | TLSv1.0 およびそれ以降のバージョン。 |
QSsl::TlsV1_1 | 1 | TLSv1.1。 |
QSsl::TlsV1_1OrLater | 6 | TLSv1.1 およびそれ以降のバージョン。 |
QSsl::TlsV1_2 | 2 | TLSv1.2 |
QSsl::TlsV1_2OrLater | 7 | TLSv1.2 およびそれ以降のバージョン。 |
QSsl::DtlsV1_0 | 8 | DTLSv1.0 |
QSsl::DtlsV1_0OrLater | 9 | DTLSv1.0 およびそれ以降のバージョン。 |
QSsl::DtlsV1_2 | 10 | DTLSv1.2 |
QSsl::DtlsV1_2OrLater | 11 | DTLSv1.2 およびそれ以降のバージョン。 |
QSsl::TlsV1_3 (since Qt 5.12) | 12 | TLSv1.3。 |
QSsl::TlsV1_3OrLater (since Qt 5.12) | 13 | TLSv1.3 およびそれ以降のバージョン。 |
QSsl::UnknownProtocol | -1 | 暗号のプロトコルを判別できません。 |
QSsl::AnyProtocol | 3 | サポートされている任意のプロトコル。この値は、QSslSocket でのみ使用されます。 |
QSsl::SecureProtocols | 4 | デフォルトのオプション。安全であることが確認されているプロトコルを使用します。 |
[since 6.1] enum class SupportedFeature
TLSバックエンドがサポートする可能性のある機能を列挙します
QtNetwork では、TLS 関連のクラスにはパブリック API が用意されていますが、一部のバックエンドでは実装されていない場合があります。例えば、当社の SecureTransport バックエンドはサーバー側の ALPN をサポートしていません。SupportedFeature 列挙型の列挙子を使用することで、特定の機能がサポートされていることを示します。
| 定数 | 値 | 説明 |
|---|---|---|
QSslSocket::SupportedFeature::CertificateVerification | 0 | バックエンドによってQSslCertificate::verify() が実装されていることを示します。 |
QSslSocket::SupportedFeature::ClientSideAlpn | 1 | クライアント側の ALPN (アプリケーション層プロトコルネゴシエーション)。 |
QSslSocket::SupportedFeature::ServerSideAlpn | 2 | サーバー側の ALPN。 |
QSslSocket::SupportedFeature::Ocsp | 3 | OCSP ステープリング (Online Certificate Status Protocol)。 |
QSslSocket::SupportedFeature::Psk | 4 | 事前共有鍵。 |
QSslSocket::SupportedFeature::SessionTicket | 5 | セッションチケット。 |
QSslSocket::SupportedFeature::Alerts | 6 | 送受信されたアラートメッセージに関する情報。 |
この列挙型は 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.