File indexing completed on 2024-04-21 03:55:10
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2007, 2008 Andreas Hartmetz <ahartmetz@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "ksslerroruidata.h" 0009 #include "ksslerroruidata_p.h" 0010 0011 #include <QHostAddress> 0012 #include <QNetworkReply> 0013 #include <QSslCipher> 0014 0015 KSslErrorUiData::KSslErrorUiData() 0016 : d(new Private()) 0017 { 0018 d->usedBits = 0; 0019 d->bits = 0; 0020 } 0021 0022 KSslErrorUiData::KSslErrorUiData(const QSslSocket *socket) 0023 : d(new Private()) 0024 { 0025 d->certificateChain = socket->peerCertificateChain(); 0026 d->sslErrors = socket->sslHandshakeErrors(); 0027 d->ip = socket->peerAddress().toString(); 0028 d->host = socket->peerName(); 0029 if (socket->isEncrypted()) { 0030 d->sslProtocol = socket->sessionCipher().protocolString(); 0031 } 0032 d->cipher = socket->sessionCipher().name(); 0033 d->usedBits = socket->sessionCipher().usedBits(); 0034 d->bits = socket->sessionCipher().supportedBits(); 0035 } 0036 0037 KSslErrorUiData::KSslErrorUiData(const QNetworkReply *reply, const QList<QSslError> &sslErrors) 0038 : d(new Private()) 0039 { 0040 const auto sslConfig = reply->sslConfiguration(); 0041 d->certificateChain = sslConfig.peerCertificateChain(); 0042 d->sslErrors = sslErrors; 0043 d->host = reply->request().url().host(); 0044 d->sslProtocol = sslConfig.sessionCipher().protocolString(); 0045 d->cipher = sslConfig.sessionCipher().name(); 0046 d->usedBits = sslConfig.sessionCipher().usedBits(); 0047 d->bits = sslConfig.sessionCipher().supportedBits(); 0048 } 0049 0050 KSslErrorUiData::KSslErrorUiData(const KSslErrorUiData &other) 0051 : d(new Private(*other.d)) 0052 { 0053 } 0054 0055 KSslErrorUiData::~KSslErrorUiData() = default; 0056 0057 KSslErrorUiData &KSslErrorUiData::operator=(const KSslErrorUiData &other) 0058 { 0059 *d = *other.d; 0060 return *this; 0061 }