-
Notifications
You must be signed in to change notification settings - Fork 6
/
certificateinfo.cpp
87 lines (72 loc) · 3.76 KB
/
certificateinfo.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "certificateinfo.h"
#include "ui_certificateinfo.h"
CertificateInfo::CertificateInfo(QString type, QSslCertificate certificate, QWidget *parent) :
QDialog(parent),
ui(new Ui::CertificateInfo)
{
ui->setupUi(this);
this->certificate = certificate;
/*if (securityMetadata.at(0) == "certerr") {
ui->securityFrame->setStyleSheet("background-color: #640000; color: white;");
ui->securityPadlock->setPixmap(QIcon(":/icons/badsecure").pixmap(16, 16));
} else {
ui->securityPadlock->setPixmap(QIcon::fromTheme("text-html").pixmap(16, 16));
ui->securityFrame->setStyleSheet("");
}*/
if (type == "ev") {
ui->verifiedFrame->setStyleSheet("background-color: #006400; color: white;");
ui->verifiedFrame->setVisible(true);
ui->verifiedTick->setPixmap(QIcon::fromTheme("dialog-ok").pixmap(16, 16));
ui->securitySummary->setStyleSheet("background-color: #006400; color: white;");
ui->securityPadlock->setPixmap(QIcon(":/icons/lock-d").pixmap(16, 16));
ui->securityDescription->setText("Your connection to <b>" + certificate.subjectInfo(QSslCertificate::Organization).join(", ") + "</b> was encrypted, and the company has been verified by <b>" + certificate.issuerInfo(QSslCertificate::CommonName).join(", ") + "</b>.");
} else if (type == "secure") {
QColor panelColor = ui->securitySummary->palette().color(QPalette::Window);
if (((qreal) panelColor.red() + (qreal) panelColor.green() + (qreal) panelColor.red()) / (qreal) 3 < 127) {
ui->securityPadlock->setPixmap(QIcon(":/icons/lock-d").pixmap(16, 16));
} else {
ui->securityPadlock->setPixmap(QIcon(":/icons/lock-l").pixmap(16, 16));
}
ui->securityDescription->setText("Your connection was encrypted.");
ui->verifiedFrame->setVisible(false);
} else {
ui->verifiedFrame->setVisible(false);
}
//Fill Subject Info fields
ui->subjectCommonName->setText(certificate.subjectInfo(QSslCertificate::CommonName).join(", "));
ui->subjectOrganisation->setText(certificate.subjectInfo(QSslCertificate::Organization).join(", "));
ui->subjectOrganisationalUnit->setText(certificate.subjectInfo(QSslCertificate::OrganizationalUnitName).join(", "));
ui->issuerCommonName->setText(certificate.issuerInfo(QSslCertificate::CommonName).join(", "));
ui->issuerOrganisation->setText(certificate.issuerInfo(QSslCertificate::Organization).join(", "));
ui->issuerOrganisationalUnit->setText(certificate.issuerInfo(QSslCertificate::OrganizationalUnitName).join(", "));
ui->expiryStart->setText(certificate.effectiveDate().toString("dddd, d MMMM yyyy, hh:mm:ss"));
ui->expiryEnd->setText(certificate.expiryDate().toString("dddd, d MMMM yyyy, hh:mm:ss"));
ui->sha256->setText(certificate.digest(QCryptographicHash::Sha256).toHex().toUpper());
ui->sha1->setText(certificate.digest(QCryptographicHash::Sha1).toHex().toUpper());
}
CertificateInfo::CertificateInfo(QString type, QWidget *parent) :
QDialog(parent),
ui(new Ui::CertificateInfo)
{
ui->setupUi(this);
ui->certInfoFrame->setVisible(false);
if (type == "theweb") {
ui->summary->setText("This page is generated by theWeb.");
} else if (type == "secure") {
ui->summary->setText("This site is secure.");
} else if (type == "unsecure") {
ui->summary->setText("This site has no special security. Anyone can read what you send this website.");
} else if (type == "ev") {
ui->summary->setText("This site uses an extended validation certificate.");
} else {
ui->summary->setText("Missing description: " + type);
}
}
CertificateInfo::~CertificateInfo()
{
delete ui;
}
void CertificateInfo::on_pushButton_clicked()
{
this->close();
}