Changeset View
Changeset View
Standalone View
Standalone View
src/core/tcpslavebase.cpp
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Line(s) | 90 | const QString sslCipher = | |||
---|---|---|---|---|---|
93 | cipher.keyExchangeMethod() + QLatin1Char('\n') + | 93 | cipher.keyExchangeMethod() + QLatin1Char('\n') + | ||
94 | cipher.digestMethod(); | 94 | cipher.digestMethod(); | ||
95 | sslMetaData.insert(QStringLiteral("ssl_cipher"), sslCipher); | 95 | sslMetaData.insert(QStringLiteral("ssl_cipher"), sslCipher); | ||
96 | sslMetaData.insert(QStringLiteral("ssl_cipher_name"), cipher.name()); | 96 | sslMetaData.insert(QStringLiteral("ssl_cipher_name"), cipher.name()); | ||
97 | sslMetaData.insert(QStringLiteral("ssl_cipher_used_bits"), QString::number(cipher.usedBits())); | 97 | sslMetaData.insert(QStringLiteral("ssl_cipher_used_bits"), QString::number(cipher.usedBits())); | ||
98 | sslMetaData.insert(QStringLiteral("ssl_cipher_bits"), QString::number(cipher.supportedBits())); | 98 | sslMetaData.insert(QStringLiteral("ssl_cipher_bits"), QString::number(cipher.supportedBits())); | ||
99 | sslMetaData.insert(QStringLiteral("ssl_peer_ip"), ip); | 99 | sslMetaData.insert(QStringLiteral("ssl_peer_ip"), ip); | ||
100 | 100 | | |||
101 | const QList<QSslCertificate> peerCertificateChain = socket.peerCertificateChain(); | ||||
101 | // try to fill in the blanks, i.e. missing certificates, and just assume that | 102 | // try to fill in the blanks, i.e. missing certificates, and just assume that | ||
102 | // those belong to the peer (==website or similar) certificate. | 103 | // those belong to the peer (==website or similar) certificate. | ||
103 | for (int i = 0; i < sslErrors.count(); i++) { | 104 | for (int i = 0; i < sslErrors.count(); i++) { | ||
104 | if (sslErrors[i].certificate().isNull()) { | 105 | if (sslErrors[i].certificate().isNull()) { | ||
105 | const QList<QSslCertificate> peerCertificateChain = socket.peerCertificateChain(); | | |||
106 | sslErrors[i] = QSslError(sslErrors[i].sslError().error(), peerCertificateChain[0]); | 106 | sslErrors[i] = QSslError(sslErrors[i].sslError().error(), peerCertificateChain[0]); | ||
107 | } | 107 | } | ||
108 | } | 108 | } | ||
109 | 109 | | |||
110 | QString errorStr; | 110 | QString errorStr; | ||
111 | // encode the two-dimensional numeric error list using '\n' and '\t' as outer and inner separators | 111 | // encode the two-dimensional numeric error list using '\n' and '\t' as outer and inner separators | ||
112 | Q_FOREACH (const QSslCertificate &cert, socket.peerCertificateChain()) { | 112 | for (const QSslCertificate &cert : peerCertificateChain ) { | ||
113 | Q_FOREACH (const KSslError &error, sslErrors) { | 113 | for (const KSslError &error : qAsConst(sslErrors)) { | ||
114 | if (error.certificate() == cert) { | 114 | if (error.certificate() == cert) { | ||
115 | errorStr += QString::number(static_cast<int>(error.error())) + QLatin1Char('\t'); | 115 | errorStr += QString::number(static_cast<int>(error.error())) + QLatin1Char('\t'); | ||
116 | } | 116 | } | ||
117 | } | 117 | } | ||
118 | if (errorStr.endsWith(QLatin1Char('\t'))) { | 118 | if (errorStr.endsWith(QLatin1Char('\t'))) { | ||
119 | errorStr.chop(1); | 119 | errorStr.chop(1); | ||
120 | } | 120 | } | ||
121 | errorStr += QLatin1Char('\n'); | 121 | errorStr += QLatin1Char('\n'); | ||
122 | } | 122 | } | ||
123 | errorStr.chop(1); | 123 | errorStr.chop(1); | ||
124 | sslMetaData.insert(QStringLiteral("ssl_cert_errors"), errorStr); | 124 | sslMetaData.insert(QStringLiteral("ssl_cert_errors"), errorStr); | ||
125 | 125 | | |||
126 | QString peerCertChain; | 126 | QString peerCertChain; | ||
127 | Q_FOREACH (const QSslCertificate &cert, socket.peerCertificateChain()) { | 127 | for (const QSslCertificate &cert : peerCertificateChain) { | ||
128 | peerCertChain += QString::fromUtf8(cert.toPem()) + QLatin1Char('\x01'); | 128 | peerCertChain += QString::fromUtf8(cert.toPem()) + QLatin1Char('\x01'); | ||
129 | } | 129 | } | ||
130 | peerCertChain.chop(1); | 130 | peerCertChain.chop(1); | ||
131 | sslMetaData.insert(QStringLiteral("ssl_peer_chain"), peerCertChain); | 131 | sslMetaData.insert(QStringLiteral("ssl_peer_chain"), peerCertChain); | ||
132 | sendSslMetaData(); | 132 | sendSslMetaData(); | ||
133 | } | 133 | } | ||
134 | 134 | | |||
135 | void clearSslMetaData() | 135 | void clearSslMetaData() | ||
▲ Show 20 Lines • Show All 801 Lines • Show Last 20 Lines |