diff options
| author | Mårten Nordheim <marten.nordheim@qt.io> | 2021-06-24 14:01:35 +0200 |
|---|---|---|
| committer | Mårten Nordheim <marten.nordheim@qt.io> | 2021-06-25 01:30:47 +0200 |
| commit | 8b4fa1774e608c36ce118fad8f5a3c6734351c8c (patch) | |
| tree | 6dbf4e2840439c83ccd42e3021fb865d0848f6b2 /src | |
| parent | bb93c641a20ee7585bcf5f3e86d012d1a8f557ff (diff) | |
QTlsBackend: Find mismatches faster in ciphersuite-string creation
Change-Id: I5744fc3673e8d318b8dd859a281ed0e766649578
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src')
| -rw-r--r-- | src/network/ssl/qtlsbackend.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/network/ssl/qtlsbackend.cpp b/src/network/ssl/qtlsbackend.cpp index e4b7a718efb..f159c4e2f08 100644 --- a/src/network/ssl/qtlsbackend.cpp +++ b/src/network/ssl/qtlsbackend.cpp @@ -805,19 +805,25 @@ QSslCipher QTlsBackend::createCiphersuite(const QString &descriptionOneLine, int ciph.d->isNull = false; ciph.d->name = descriptionList.at(0).toString(); - QString protoString = descriptionList.at(1).toString(); - ciph.d->protocolString = protoString; + QStringView protoString = descriptionList.at(1); + ciph.d->protocolString = protoString.toString(); ciph.d->protocol = QSsl::UnknownProtocol; QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED - if (protoString == QLatin1String("TLSv1")) - ciph.d->protocol = QSsl::TlsV1_0; - else if (protoString == QLatin1String("TLSv1.1")) - ciph.d->protocol = QSsl::TlsV1_1; - else if (protoString == QLatin1String("TLSv1.2")) - ciph.d->protocol = QSsl::TlsV1_2; - else if (protoString == QLatin1String("TLSv1.3")) - ciph.d->protocol = QSsl::TlsV1_3; + if (protoString.startsWith(u"TLSv1")) { + QStringView tail = protoString.sliced(5); + if (tail.startsWith(u'.')) { + tail = tail.sliced(1); + if (tail == u"3") + ciph.d->protocol = QSsl::TlsV1_3; + else if (tail == u"2") + ciph.d->protocol = QSsl::TlsV1_2; + else if (tail == u"1") + ciph.d->protocol = QSsl::TlsV1_1; + } else if (tail.isEmpty()) { + ciph.d->protocol = QSsl::TlsV1_0; + } + } QT_WARNING_POP if (descriptionList.at(2).startsWith(QLatin1String("Kx="))) |
