+
+
+// ========================================
+// SslCertDisplayDialog
+// ========================================
+#ifdef HAVE_SSL
+SslCertDisplayDialog::SslCertDisplayDialog(const QString &host, const QSslCertificate &cert, QWidget *parent)
+ : QDialog(parent)
+{
+ setWindowTitle(tr("SSL Certificate used by %1").arg(host));
+
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+
+ QGroupBox *issuerBox = new QGroupBox(tr("Issuer Info"), this);
+ QFormLayout *issuerLayout = new QFormLayout(issuerBox);
+ issuerLayout->addRow(tr("Organization:"), new QLabel(cert.issuerInfo(QSslCertificate::Organization), this));
+ issuerLayout->addRow(tr("Locality Name:"), new QLabel(cert.issuerInfo(QSslCertificate::LocalityName), this));
+ issuerLayout->addRow(tr("Organizational Unit Name:"), new QLabel(cert.issuerInfo(QSslCertificate::OrganizationalUnitName), this));
+ issuerLayout->addRow(tr("Country Name:"), new QLabel(cert.issuerInfo(QSslCertificate::CountryName), this));
+ issuerLayout->addRow(tr("State or Province Name:"), new QLabel(cert.issuerInfo(QSslCertificate::StateOrProvinceName), this));
+ mainLayout->addWidget(issuerBox);
+
+ QGroupBox *subjectBox = new QGroupBox(tr("Subject Info"), this);
+ QFormLayout *subjectLayout = new QFormLayout(subjectBox);
+ subjectLayout->addRow(tr("Organization:"), new QLabel(cert.subjectInfo(QSslCertificate::Organization), this));
+ subjectLayout->addRow(tr("Locality Name:"), new QLabel(cert.subjectInfo(QSslCertificate::LocalityName), this));
+ subjectLayout->addRow(tr("Organizational Unit Name:"), new QLabel(cert.subjectInfo(QSslCertificate::OrganizationalUnitName), this));
+ subjectLayout->addRow(tr("Country Name:"), new QLabel(cert.subjectInfo(QSslCertificate::CountryName), this));
+ subjectLayout->addRow(tr("State or Province Name:"), new QLabel(cert.subjectInfo(QSslCertificate::StateOrProvinceName), this));
+ mainLayout->addWidget(subjectBox);
+
+ QGroupBox *additionalBox = new QGroupBox(tr("Additional Info"), this);
+ QFormLayout *additionalLayout = new QFormLayout(additionalBox);
+ additionalLayout->addRow(tr("Valid From:"), new QLabel(cert.effectiveDate().toString(), this));
+ additionalLayout->addRow(tr("Valid To:"), new QLabel(cert.expiryDate().toString(), this));
+ QStringList hostnames = cert.alternateSubjectNames().values(QSsl::DnsEntry);
+ for(int i = 0; i < hostnames.count(); i++) {
+ additionalLayout->addRow(tr("Hostname %1:").arg(i + 1), new QLabel(hostnames[i], this));
+ }
+ QStringList mailaddresses = cert.alternateSubjectNames().values(QSsl::EmailEntry);
+ for(int i = 0; i < mailaddresses.count(); i++) {
+ additionalLayout->addRow(tr("E-Mail Address %1:").arg(i + 1), new QLabel(mailaddresses[i], this));
+ }
+ additionalLayout->addRow(tr("Digest:"), new QLabel(QString(prettyDigest(cert.digest()))));
+ mainLayout->addWidget(additionalBox);
+
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, this);
+ mainLayout->addWidget(buttonBox);
+
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));