File indexing completed on 2024-12-01 03:41:18
0001 /* 0002 This file is part of the KDE project 0003 SPDX-FileCopyrightText: 2000-2003 George Staikos <staikos@kde.org> 0004 SPDX-FileCopyrightText: 2000 Malte Starostik <malte@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #ifndef _KSSLINFODIALOG_H 0010 #define _KSSLINFODIALOG_H 0011 0012 #include <QDialog> 0013 #include <QSslError> 0014 0015 #include "kiowidgets_export.h" 0016 0017 #include <memory> 0018 0019 /** 0020 * KDE SSL Information Dialog 0021 * 0022 * This class creates a dialog that can be used to display information about 0023 * an SSL session. 0024 * 0025 * There are NO GUARANTEES that KSslInfoDialog will remain binary compatible/ 0026 * Contact staikos@kde.org for details if needed. 0027 * 0028 * @author George Staikos <staikos@kde.org> 0029 * @see KSSL 0030 * @short KDE SSL Information Dialog 0031 */ 0032 class KIOWIDGETS_EXPORT KSslInfoDialog : public QDialog 0033 { 0034 Q_OBJECT 0035 public: 0036 /** 0037 * Construct a KSSL Information Dialog 0038 * 0039 * @param parent the parent widget 0040 */ 0041 explicit KSslInfoDialog(QWidget *parent = nullptr); 0042 0043 /** 0044 * Destroy this dialog 0045 */ 0046 ~KSslInfoDialog() override; 0047 0048 /** 0049 * Set information to display about the SSL connection. 0050 * 0051 * @param certificateChain the certificate chain leading from the certificate 0052 * authority to the peer. 0053 * @param ip the ip of the remote host 0054 * @param host the remote hostname 0055 * @param sslProtocol the version of SSL in use (SSLv2, SSLv3, TLSv1) 0056 * @param cipher the cipher in use 0057 * @param usedBits the used bits of the key 0058 * @param bits the key size of the cipher in use 0059 * @param validationErrors errors validating the certificates, if any 0060 * @since 5.64 0061 */ 0062 void setSslInfo(const QList<QSslCertificate> &certificateChain, 0063 const QString &ip, 0064 const QString &host, 0065 const QString &sslProtocol, 0066 const QString &cipher, 0067 int usedBits, 0068 int bits, 0069 const QList<QList<QSslError::SslError>> &validationErrors); 0070 0071 void setMainPartEncrypted(bool); 0072 void setAuxiliaryPartsEncrypted(bool); 0073 0074 /** 0075 * Converts certificate errors as provided in the "ssl_cert_errors" meta data 0076 * to a list of QSslError::SslError values per certificate in the certificate chain. 0077 * @since 5.65 0078 */ 0079 static QList<QList<QSslError::SslError>> certificateErrorsFromString(const QString &errorsString); 0080 0081 private: 0082 KIOWIDGETS_NO_EXPORT void updateWhichPartsEncrypted(); 0083 0084 class KSslInfoDialogPrivate; 0085 std::unique_ptr<KSslInfoDialogPrivate> const d; 0086 0087 private Q_SLOTS: 0088 KIOWIDGETS_NO_EXPORT void displayFromChain(int); 0089 }; 0090 0091 #endif