10 #include <QStringList>
12 #include <QTreeWidgetItem>
20 const auto item =
new QTreeWidgetItem { {
"Error:", error.errorString () } };
22 const auto& cer = error.certificate ();
28 { QObject::tr (
"Certificate"), QObject::tr (
"(No certificate available for this error)") }
37 QObject::tr (
"Valid:"),
38 !cer.isBlacklisted () ? QObject::tr (
"yes") : QObject::tr (
"no")
41 new QTreeWidgetItem { item, { QObject::tr (
"Effective date:"), cer.effectiveDate ().toString () } };
42 new QTreeWidgetItem { item, { QObject::tr (
"Expiry date:"), cer.expiryDate ().toString () } };
43 new QTreeWidgetItem { item, { QObject::tr (
"Version:"), cer.version () } };
44 new QTreeWidgetItem { item, { QObject::tr (
"Serial number:"), cer.serialNumber () } };
45 new QTreeWidgetItem { item, { QObject::tr (
"MD5 digest:"), cer.digest ().toHex () } };
46 new QTreeWidgetItem { item, { QObject::tr (
"SHA1 digest:"), cer.digest (QCryptographicHash::Sha1).toHex () } };
48 auto cvt = [] (
const QStringList& list) {
return list.join (
"; "_ql); };
50 const auto issuer =
new QTreeWidgetItem { item, { QObject::tr (
"Issuer info") } };
51 auto mkIssuerItem = [&cvt, &cer, issuer] (
const QString& name,
52 QSslCertificate::SubjectInfo field)
54 const auto& value = cvt (cer.issuerInfo (field));
55 if (!value.isEmpty ())
56 new QTreeWidgetItem { issuer, { name, value } };
59 mkIssuerItem (QObject::tr (
"Organization:"), QSslCertificate::Organization);
60 mkIssuerItem (QObject::tr (
"Common name:"), QSslCertificate::CommonName);
61 mkIssuerItem (QObject::tr (
"Locality:"), QSslCertificate::LocalityName);
62 mkIssuerItem (QObject::tr (
"Organizational unit name:"), QSslCertificate::OrganizationalUnitName);
63 mkIssuerItem (QObject::tr (
"Country name:"), QSslCertificate::CountryName);
64 mkIssuerItem (QObject::tr (
"State or province name:"), QSslCertificate::StateOrProvinceName);
66 const auto subject =
new QTreeWidgetItem { item, { QObject::tr (
"Subject info") } };
67 auto mkSubjectItem = [&cvt, &cer, subject] (
const QString& name,
68 QSslCertificate::SubjectInfo field)
70 const auto& value = cvt (cer.subjectInfo (field));
71 if (!value.isEmpty ())
72 new QTreeWidgetItem { subject, { name, value } };
75 mkSubjectItem (QObject::tr (
"Organization:"), QSslCertificate::Organization);
76 mkSubjectItem (QObject::tr (
"Common name:"), QSslCertificate::CommonName);
77 mkSubjectItem (QObject::tr (
"Locality:"), QSslCertificate::LocalityName);
78 mkSubjectItem (QObject::tr (
"Organizational unit name:"), QSslCertificate::OrganizationalUnitName);
79 mkSubjectItem (QObject::tr (
"Country name:"), QSslCertificate::CountryName);
80 mkSubjectItem (QObject::tr (
"State or province name:"), QSslCertificate::StateOrProvinceName);