summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-06-24 14:01:35 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-06-25 01:30:47 +0200
commit8b4fa1774e608c36ce118fad8f5a3c6734351c8c (patch)
tree6dbf4e2840439c83ccd42e3021fb865d0848f6b2 /src
parentbb93c641a20ee7585bcf5f3e86d012d1a8f557ff (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.cpp26
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=")))