File indexing completed on 2024-12-01 03:41:18

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2007 Andreas Hartmetz <ahartmetz@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "ksslcertificatebox.h"
0009 
0010 #include "ui_certificateparty.h"
0011 
0012 #include <QSslCertificate>
0013 
0014 class KSslCertificateBoxPrivate
0015 {
0016 public:
0017     Ui::CertificateParty ui;
0018 };
0019 
0020 KSslCertificateBox::KSslCertificateBox(QWidget *parent)
0021     : QWidget(parent)
0022     , d(new KSslCertificateBoxPrivate())
0023 {
0024     d->ui.setupUi(this);
0025     // No fooling us with html tags
0026     const QList<QLabel *> labels = findChildren<QLabel *>();
0027     for (QLabel *label : labels) {
0028         label->setTextFormat(Qt::PlainText);
0029     }
0030 }
0031 
0032 KSslCertificateBox::~KSslCertificateBox() = default;
0033 
0034 void KSslCertificateBox::setCertificate(const QSslCertificate &cert, CertificateParty party)
0035 {
0036     if (party == Subject) {
0037         d->ui.commonName->setText(cert.subjectInfo(QSslCertificate::CommonName).join(QLatin1String(", ")));
0038         d->ui.organization->setText(cert.subjectInfo(QSslCertificate::Organization).join(QLatin1String(", ")));
0039         d->ui.organizationalUnit->setText(cert.subjectInfo(QSslCertificate::OrganizationalUnitName).join(QLatin1String(", ")));
0040         d->ui.country->setText(cert.subjectInfo(QSslCertificate::CountryName).join(QLatin1String(", ")));
0041         d->ui.state->setText(cert.subjectInfo(QSslCertificate::StateOrProvinceName).join(QLatin1String(", ")));
0042         d->ui.city->setText(cert.subjectInfo(QSslCertificate::LocalityName).join(QLatin1String(", ")));
0043     } else if (party == Issuer) {
0044         d->ui.commonName->setText(cert.issuerInfo(QSslCertificate::CommonName).join(QLatin1String(", ")));
0045         d->ui.organization->setText(cert.issuerInfo(QSslCertificate::Organization).join(QLatin1String(", ")));
0046         d->ui.organizationalUnit->setText(cert.issuerInfo(QSslCertificate::OrganizationalUnitName).join(QLatin1String(", ")));
0047         d->ui.country->setText(cert.issuerInfo(QSslCertificate::CountryName).join(QLatin1String(", ")));
0048         d->ui.state->setText(cert.issuerInfo(QSslCertificate::StateOrProvinceName).join(QLatin1String(", ")));
0049         d->ui.city->setText(cert.issuerInfo(QSslCertificate::LocalityName).join(QLatin1String(", ")));
0050     }
0051 }
0052 
0053 void KSslCertificateBox::clear()
0054 {
0055     d->ui.commonName->clear();
0056     d->ui.organization->clear();
0057     d->ui.organizationalUnit->clear();
0058     d->ui.country->clear();
0059     d->ui.state->clear();
0060     d->ui.city->clear();
0061 }
0062 
0063 #include "moc_ksslcertificatebox.cpp"