summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtCertificateViewerDialog.cpp')
-rw-r--r--Swift/QtUI/QtCertificateViewerDialog.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/Swift/QtUI/QtCertificateViewerDialog.cpp b/Swift/QtUI/QtCertificateViewerDialog.cpp
index a99c29a..6454d82 100644
--- a/Swift/QtUI/QtCertificateViewerDialog.cpp
+++ b/Swift/QtUI/QtCertificateViewerDialog.cpp
@@ -1,76 +1,74 @@
/*
* Copyright (c) 2012 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swift/QtUI/QtCertificateViewerDialog.h>
#include <QDateTime>
#include <QLabel>
#include <QString>
#include <QStringList>
#include <QTreeWidgetItem>
-#include <Swiften/Base/foreach.h>
-
#include <Swift/QtUI/ui_QtCertificateViewerDialog.h>
namespace Swift {
QtCertificateViewerDialog::QtCertificateViewerDialog(QWidget* parent) : QDialog(parent), ui(new Ui::QtCertificateViewerDialog) {
ui->setupUi(this);
connect(ui->certChainTreeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), SLOT(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
setAttribute(Qt::WA_DeleteOnClose);
}
QtCertificateViewerDialog::~QtCertificateViewerDialog() {
delete ui;
}
void QtCertificateViewerDialog::setCertificateChain(const std::vector<Certificate::ref>& chain) {
// clean widgets
ui->certChainTreeWidget->clear();
if (chain.empty()) return;
// convert Swift certificate chain to qt certificate chain (root goes first)
currentChain.clear();
- foreach(Certificate::ref cert, chain) {
+ for (auto&& cert : chain) {
ByteArray certAsDer = cert->toDER();
QByteArray dataArray(reinterpret_cast<const char*>(certAsDer.data()), certAsDer.size());
currentChain.push_front(QSslCertificate(dataArray, QSsl::Der));
}
// fill treeWidget
QTreeWidgetItem* root = new QTreeWidgetItem(ui->certChainTreeWidget, QStringList(currentChain.at(0).subjectInfo(QSslCertificate::CommonName)));
root->setData(0, Qt::UserRole, QVariant(0));
root->setExpanded(true);
ui->certChainTreeWidget->addTopLevelItem(root);
if (currentChain.size() > 1) {
QTreeWidgetItem* parent = root;
for (int n = 1; n < currentChain.size(); n++) {
QTreeWidgetItem* link = new QTreeWidgetItem(parent, QStringList(QString("↳ ") + (QStringList(currentChain.at(n).subjectInfo(QSslCertificate::CommonName)).join(", "))));
link->setExpanded(true);
link->setData(0, Qt::UserRole, QVariant(n));
parent = link;
}
ui->certChainTreeWidget->setCurrentItem(parent);
} else {
ui->certChainTreeWidget->setCurrentItem(root);
}
}
void QtCertificateViewerDialog::displayCertificateChainAsSheet(QWidget* parent, const std::vector<Certificate::ref>& chain) {
QtCertificateViewerDialog* dialog = new QtCertificateViewerDialog(parent);
dialog->setCertificateChain(chain);
dialog->show();
}
@@ -98,53 +96,53 @@ void QtCertificateViewerDialog::setCertificateDetails(const QSslCertificate& cer
int rowCount = 0;
ui->certGridLayout->setColumnStretch(2, 1);
QLabel* valueLabel = 0;
ADD_SECTION(tr("General"));
ADD_FIELD(tr("Valid From"), cert.effectiveDate().toString(Qt::TextDate));
ADD_FIELD(tr("Valid To"), cert.expiryDate().toString(Qt::TextDate));
ADD_FIELD(tr("Serial Number"), QString(cert.serialNumber().toHex()));
ADD_FIELD(tr("Version"), QString(cert.version()));
ADD_SECTION(tr("Subject"));
ADD_FIELD(tr("Organization"), cert.subjectInfo(QSslCertificate::Organization));
ADD_FIELD(tr("Common Name"), cert.subjectInfo(QSslCertificate::CommonName));
ADD_FIELD(tr("Locality"), cert.subjectInfo(QSslCertificate::LocalityName));
ADD_FIELD(tr("Organizational Unit"), cert.subjectInfo(QSslCertificate::OrganizationalUnitName));
ADD_FIELD(tr("Country"), cert.subjectInfo(QSslCertificate::CountryName));
ADD_FIELD(tr("State"), cert.subjectInfo(QSslCertificate::StateOrProvinceName));
#if QT_VERSION < 0x050000
QMultiMap<QSsl::AlternateNameEntryType, QString> altNames = cert.alternateSubjectNames();
#define SANTYPE QSsl::AlternateNameEntryType
#else
QMultiMap<QSsl::AlternativeNameEntryType, QString> altNames = cert.subjectAlternativeNames();
#define SANTYPE QSsl::AlternativeNameEntryType
#endif
if (!altNames.empty()) {
ADD_SECTION(tr("Alternate Subject Names"));
- foreach (const SANTYPE &type, altNames.uniqueKeys()) {
- foreach (QString name, altNames.values(type)) {
+ for (const auto& type : altNames.uniqueKeys()) {
+ for (auto&& name : altNames.values(type)) {
if (type == QSsl::EmailEntry) {
ADD_FIELD(tr("E-mail Address"), name);
} else {
ADD_FIELD(tr("DNS Name"), name);
}
}
}
}
ADD_SECTION(tr("Issuer"));
ADD_FIELD(tr("Organization"), cert.issuerInfo(QSslCertificate::Organization));
ADD_FIELD(tr("Common Name"), cert.issuerInfo(QSslCertificate::CommonName));
ADD_FIELD(tr("Locality"), cert.issuerInfo(QSslCertificate::LocalityName));
ADD_FIELD(tr("Organizational Unit"), cert.issuerInfo(QSslCertificate::OrganizationalUnitName));
ADD_FIELD(tr("Country"), cert.issuerInfo(QSslCertificate::CountryName));
ADD_FIELD(tr("State"), cert.issuerInfo(QSslCertificate::StateOrProvinceName));
ui->certGridLayout->setRowStretch(rowCount + 1, 1);
}
}