53 |
53 |
54 #include <QNetworkProxy> |
54 #include <QNetworkProxy> |
55 #include <QAuthenticator> |
55 #include <QAuthenticator> |
56 |
56 |
57 #include "private/qhostinfo_p.h" |
57 #include "private/qhostinfo_p.h" |
|
58 #include "private/qsslsocket_openssl_p.h" |
58 |
59 |
59 #include "../network-settings.h" |
60 #include "../network-settings.h" |
60 |
61 |
61 Q_DECLARE_METATYPE(QAbstractSocket::SocketState) |
62 Q_DECLARE_METATYPE(QAbstractSocket::SocketState) |
62 Q_DECLARE_METATYPE(QAbstractSocket::SocketError) |
63 Q_DECLARE_METATYPE(QAbstractSocket::SocketError) |
161 void resetDefaultCiphers(); |
162 void resetDefaultCiphers(); |
162 void setDefaultCaCertificates(); |
163 void setDefaultCaCertificates(); |
163 void setDefaultCiphers(); |
164 void setDefaultCiphers(); |
164 void supportedCiphers(); |
165 void supportedCiphers(); |
165 void systemCaCertificates(); |
166 void systemCaCertificates(); |
|
167 void wildcardCertificateNames(); |
166 void wildcard(); |
168 void wildcard(); |
167 void setEmptyKey(); |
169 void setEmptyKey(); |
168 void spontaneousWrite(); |
170 void spontaneousWrite(); |
169 void setReadBufferSize(); |
171 void setReadBufferSize(); |
170 void setReadBufferSize_task_250027(); |
172 void setReadBufferSize_task_250027(); |
1061 QList<QSslCertificate> certs = QSslSocket::systemCaCertificates(); |
1063 QList<QSslCertificate> certs = QSslSocket::systemCaCertificates(); |
1062 QVERIFY(certs.size() > 1); |
1064 QVERIFY(certs.size() > 1); |
1063 QCOMPARE(certs, QSslSocket::defaultCaCertificates()); |
1065 QCOMPARE(certs, QSslSocket::defaultCaCertificates()); |
1064 } |
1066 } |
1065 |
1067 |
|
1068 void tst_QSslSocket::wildcardCertificateNames() |
|
1069 { |
|
1070 // Passing CN matches |
|
1071 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("www.example.com"), QString("www.example.com")), true ); |
|
1072 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true ); |
|
1073 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true ); |
|
1074 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true ); |
|
1075 |
|
1076 // Failing CN matches |
|
1077 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false ); |
|
1078 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www.example.com")), false ); |
|
1079 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.*.com"), QString("www.example.com")), false ); |
|
1080 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("baa.foo.example.com")), false ); |
|
1081 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("baa.example.com")), false ); |
|
1082 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.com"), QString("example.com")), false ); |
|
1083 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*fail.com"), QString("example.com")), false ); |
|
1084 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example.")), false ); |
|
1085 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false ); |
|
1086 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false ); |
|
1087 QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false ); |
|
1088 } |
|
1089 |
1066 void tst_QSslSocket::wildcard() |
1090 void tst_QSslSocket::wildcard() |
1067 { |
1091 { |
1068 QSKIP("TODO: solve wildcard problem", SkipAll); |
1092 QSKIP("TODO: solve wildcard problem", SkipAll); |
1069 |
1093 |
1070 if (!QSslSocket::supportsSsl()) |
1094 if (!QSslSocket::supportsSsl()) |