From c36f3b1351088b86845dd8981a7a9b13b971606e Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 11 Jul 2011 10:06:41 +0200 Subject: SSL rewamp, one step to finish! These are last changes to clean up and improve SSL rekonq communications. It is yet missing a proper SSL errors API integration. You just need to wait for the next commit... --- src/sslinfodialog.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/sslinfodialog.cpp') diff --git a/src/sslinfodialog.cpp b/src/sslinfodialog.cpp index cb60cef8..376480af 100644 --- a/src/sslinfodialog.cpp +++ b/src/sslinfodialog.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include @@ -72,12 +73,30 @@ SslInfoDialog::SslInfoDialog(const QString &host, const WebSslInfo &info, QWidge QSslCertificate subjectCert = caList.first(); - showCertificateInfo(subjectCert); + if (subjectCert.isValid()) + showCertificateInfo(subjectCert, i18n("The Certificate is Valid!") ); + else + { + QString errors; + QStringList sl = info.certificateErrors().split("\t", QString::SkipEmptyParts); + Q_FOREACH(const QString &s, sl) + { + bool didConvert; + QSslError::SslError error = static_cast(s.trimmed().toInt(&didConvert)); + if (didConvert) + { + errors += QSslError(error).errorString() + QL1S("\n"); + } + } + showCertificateInfo(subjectCert, i18n("The certificate for this site is NOT valid for the following reasons:\n%1", errors) ); + } } -void SslInfoDialog::showCertificateInfo(QSslCertificate subjectCert) +void SslInfoDialog::showCertificateInfo(QSslCertificate subjectCert, const QString &certErrors) { + ui.certInfoLabel->setText(certErrors); + ui.subjectCN->setText( subjectCert.subjectInfo(QSslCertificate::CommonName) ); ui.subjectO->setText( subjectCert.subjectInfo(QSslCertificate::Organization) ); ui.subjectOU->setText( subjectCert.subjectInfo(QSslCertificate::OrganizationalUnitName) ); @@ -99,7 +118,7 @@ void SslInfoDialog::displayFromChain(int i) { QList caList = m_info.certificateChain(); QSslCertificate cert = caList.at(i); - showCertificateInfo(cert); + showCertificateInfo(cert, QString()); } -- cgit v1.2.1