QSsl Namespace
QSsl 名前空間は Qt Network の全ての SSL クラスに共通する列挙型を宣言します。さらに...
Header: | #include <QSsl> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
- QSsl はNetwork Programming 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 { 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 QSsl::AlertLevel
アラートメッセージのレベルを表す
この列挙型は、送信または受信されたアラート・メッセージのレベルを記述します。
定数 | 値 | 説明 |
---|---|---|
QSsl::AlertLevel::Warning | 0 | 致命的でない警告メッセージ |
QSsl::AlertLevel::Fatal | 1 | 致命的なアラートメッセージ。基盤となるバックエンドはこのようなアラートを適切に処理し、接続を閉じます。 |
QSsl::AlertLevel::Unknown | 2 | 不明な深刻度のアラート。 |
この列挙型は Qt 6.0 で導入されました。
[since 6.0]
enum class QSsl::AlertType
アラートメッセージが持ちうるコードを列挙します。
可能な値とその意味についてはRFC 8446 のセクション 6 を参照してください。
定数 | 値 | 説明 |
---|---|---|
QSsl::AlertType::CloseNotify | 0 | , |
QSsl::AlertType::UnexpectedMessage | 10 | |
QSsl::AlertType::BadRecordMac | 20 | |
QSsl::AlertType::RecordOverflow | 22 | |
QSsl::AlertType::DecompressionFailure | 30 | |
QSsl::AlertType::HandshakeFailure | 40 | |
QSsl::AlertType::NoCertificate | 41 | |
QSsl::AlertType::BadCertificate | 42 | |
QSsl::AlertType::UnsupportedCertificate | 43 | |
QSsl::AlertType::CertificateRevoked | 44 | |
QSsl::AlertType::CertificateExpired | 45 | |
QSsl::AlertType::CertificateUnknown | 46 | |
QSsl::AlertType::IllegalParameter | 47 | |
QSsl::AlertType::UnknownCa | 48 | |
QSsl::AlertType::AccessDenied | 49 | |
QSsl::AlertType::DecodeError | 50 | |
QSsl::AlertType::DecryptError | 51 | |
QSsl::AlertType::ExportRestriction | 60 | |
QSsl::AlertType::ProtocolVersion | 70 | |
QSsl::AlertType::InsufficientSecurity | 71 | |
QSsl::AlertType::InternalError | 80 | |
QSsl::AlertType::InappropriateFallback | 86 | |
QSsl::AlertType::UserCancelled | 90 | |
QSsl::AlertType::NoRenegotiation | 100 | |
QSsl::AlertType::MissingExtension | 109 | |
QSsl::AlertType::UnsupportedExtension | 110 | |
QSsl::AlertType::CertificateUnobtainable | 111 | |
QSsl::AlertType::UnrecognizedName | 112 | |
QSsl::AlertType::BadCertificateStatusResponse | 113 | |
QSsl::AlertType::BadCertificateHashValue | 114 | |
QSsl::AlertType::UnknownPskIdentity | 115 | |
QSsl::AlertType::CertificateRequired | 116 | |
QSsl::AlertType::NoApplicationProtocol | 120 | |
QSsl::AlertType::UnknownAlertMessage | 255 |
この列挙型はQt 6.0で導入されました。
enum QSsl::AlternativeNameEntryType
QSslCertificate の代替名エントリのキータイプを記述します。
定数 | 値 | 説明 |
---|---|---|
QSsl::EmailEntry | 0 | 証明書が有効な電子メールアドレス。 |
QSsl::DnsEntry | 1 | DNS ホスト名エントリ。エントリには、証明書が有効なホスト名エントリが含まれる。エントリには、ワイルドカードを含めることができる。 |
QSsl::IpAddressEntry | 2 | エントリは、証明書が有効な IP アドレスエントリを含みます。 |
QSslCertificate::subjectAlternativeNames()も参照してください 。
enum QSsl::EncodingFormat
証明書と鍵でサポートされているエンコード形式について説明します。
定数 | 値 | 説明 |
---|---|---|
QSsl::Pem | 0 | PEM 形式。 |
QSsl::Der | 1 | DER 形式。 |
[since 6.1]
enum class QSsl::ImplementedClass
TLS バックエンドが実装するクラスを列挙する。
QtNetwork では、バックエンド固有の実装を持つクラスもあり、未実装のままにしておくこともできる。この列挙型の列挙子は、バックエンドに実装されているクラスを示す。
定数 | 値 | 説明 |
---|---|---|
QSsl::ImplementedClass::Key | 0 | クラスQSslKey. |
QSsl::ImplementedClass::Certificate | 1 | クラスQSslCertificate. |
QSsl::ImplementedClass::Socket | 2 | クラスQSslSocket. |
QSsl::ImplementedClass::DiffieHellman | 3 | クラスQSslDiffieHellmanParameters. |
QSsl::ImplementedClass::EllipticCurve | 4 | クラスQSslEllipticCurve. |
QSsl::ImplementedClass::Dtls | 5 | クラスQDtls. |
QSsl::ImplementedClass::DtlsCookie | 6 | クラスQDtlsClientVerifier. |
この enum は Qt 6.1 で導入されました。
enum QSsl::KeyAlgorithm
QSslKey でサポートされる異なるキーアルゴリズムを記述します。
定数 | 値 | 説明 |
---|---|---|
QSsl::Rsa | 1 | RSA アルゴリズム。 |
QSsl::Dsa | 2 | DSA アルゴリズム。 |
QSsl::Ec | 3 | 楕円曲線アルゴリズム。 |
QSsl::Dh | 4 | Diffie-Hellmanアルゴリズム。 |
QSsl::Opaque | 0 | QSslKey によって「ブラックボックス」として扱われるべき鍵。 |
不透明鍵機能は、PKCS#11 のような Qt が現在ネイティブで提供していない機能のサポートを、アプリケーションに追加することを可能にします。
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 セッションの保存を無効にする。この機能を有効にすると、使用されるセッションチケットごとに約1Kのメモリオーバーヘッドが追加されます。 |
QSsl::SslOptionDisableServerCipherPreference | 0x80 | クライアントから送られた暗号の順番ではなく、サーバーの設定に基づいて選択された暗号を無効にする。このオプションはサーバソケットにのみ関係し、OpenSSL バックエンドによってのみ尊重される。 |
デフォルトでは SslOptionDisableEmptyFragments がオンになっていますが、これは多数のサーバーで問題が発生するためです。SslOptionDisableLegacyRenegotiation もセキュリティリスクをもたらすのでオンになっている。SslOptionDisableCompression は、CRIME によって公表された攻撃を防ぐためにオンになっている。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 | 12 | TLSv1.3 (Qt 5.12 以降) |
QSsl::TlsV1_3OrLater | 13 | TLSv1.3 以降のバージョン。(Qt 5.12 以降) |
QSsl::UnknownProtocol | -1 | 暗号のプロトコルを特定できない。 |
QSsl::AnyProtocol | 3 | サポートされているプロトコル。この値はQSslSocket でのみ使用されます。 |
QSsl::SecureProtocols | 4 | デフォルトのオプションで、安全であることが知られているプロトコルを使用します。 |
[since 6.1]
enum class QSsl::SupportedFeature
TLS バックエンドがサポートする可能性のある機能を列挙します。
QtNetwork たとえば、SecureTransport バックエンドはサーバサイド ALPN をサポートしていない。SupportedFeature 列挙型の列挙子は、特定の機能がサポートされていることを示します。
定数 | 値 | 説明 |
---|---|---|
QSsl::SupportedFeature::CertificateVerification | 0 | バックエンドがQSslCertificate::verify() を実装していることを示す。 |
QSsl::SupportedFeature::ClientSideAlpn | 1 | クライアント側の ALPN (Application Layer Protocol Negotiation)。 |
QSsl::SupportedFeature::ServerSideAlpn | 2 | サーバー側の ALPN。 |
QSsl::SupportedFeature::Ocsp | 3 | OCSP ステープリング(オンライン証明書ステータス・プロトコル)。 |
QSsl::SupportedFeature::Psk | 4 | 事前共有鍵。 |
QSsl::SupportedFeature::SessionTicket | 5 | セッション・チケット。 |
QSsl::SupportedFeature::Alerts | 6 | 送受信されたアラートメッセージに関する情報。 |
この列挙は Qt 6.1 で導入されました。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。