📄 ksslinfodlg.cc
字号:
update(); layout->addWidget(new QLabel(i18n("Valid from:"), this), 3, 0); layout->addWidget(d->_validFrom = new QLabel("", this), 3, 1); layout->addWidget(new QLabel(i18n("Valid until:"), this), 4, 0); layout->addWidget(d->_validUntil = new QLabel("", this), 4, 1); layout->addWidget(new QLabel(i18n("Serial number:"), this), 5, 0); layout->addWidget(d->_serialNum = new QLabel("", this), 5, 1); layout->addWidget(new QLabel(i18n("MD5 digest:"), this), 6, 0); layout->addWidget(d->_digest = new QLabel("", this), 6, 1); layout->addWidget(new QLabel(i18n("Cipher in use:"), this), 7, 0); layout->addWidget(new QLabel(cipher, this), 7, 1); layout->addWidget(new QLabel(i18n("Details:"), this), 8, 0); layout->addWidget(new QLabel(cipherdesc.simplifyWhiteSpace(), this), 8, 1); layout->addWidget(new QLabel(i18n("SSL version:"), this), 9, 0); layout->addWidget(new QLabel(sslversion, this), 9, 1); layout->addWidget(new QLabel(i18n("Cipher strength:"), this), 10, 0); layout->addWidget(new QLabel(i18n("%1 bits used of a %2 bit cipher").arg(usedbits).arg(bits), this), 10, 1); d->m_layout->addMultiCell(layout, 2, 2, 0, 2); displayCert(cert);}void KSSLInfoDlg::setCertState(const QString &errorNrs){ d->_cert_ksvl.clear(); QStringList errors = QStringList::split(':', errorNrs); for(QStringList::ConstIterator it = errors.begin(); it != errors.end(); ++it) { d->_cert_ksvl << (KSSLCertificate::KSSLValidation) (*it).toInt(); }}void KSSLInfoDlg::displayCert(KSSLCertificate *x) { QPalette cspl; d->_serialNum->setText(x->getSerialNumber()); cspl = d->_validFrom->palette(); if (x->getQDTNotBefore() > QDateTime::currentDateTime(Qt::UTC)) cspl.setColor(QColorGroup::Foreground, QColor(196,33,21)); else cspl.setColor(QColorGroup::Foreground, QColor(42,153,59)); d->_validFrom->setPalette(cspl); d->_validFrom->setText(x->getNotBefore()); cspl = d->_validUntil->palette(); if (x->getQDTNotAfter() < QDateTime::currentDateTime(Qt::UTC)) cspl.setColor(QColorGroup::Foreground, QColor(196,33,21)); else cspl.setColor(QColorGroup::Foreground, QColor(42,153,59)); d->_validUntil->setPalette(cspl); d->_validUntil->setText(x->getNotAfter()); cspl = palette(); KSSLCertificate::KSSLValidation ksv; KSSLCertificate::KSSLValidationList ksvl; if ((x == d->_cert) && !d->_cert_ksvl.isEmpty()) { ksvl = d->_cert_ksvl; ksv = ksvl.first(); } else { if (x == d->_cert) ksvl = d->_cert->validateVerbose(KSSLCertificate::SSLServer); else ksvl = d->_cert->validateVerbose(KSSLCertificate::SSLServer, x); if (ksvl.isEmpty()) ksvl << KSSLCertificate::Ok; ksv = ksvl.first(); if (ksv == KSSLCertificate::SelfSigned) { if (x->getQDTNotAfter() > QDateTime::currentDateTime(Qt::UTC) && x->getQDTNotBefore() < QDateTime::currentDateTime(Qt::UTC)) { if (KSSLSigners().useForSSL(*x)) ksv = KSSLCertificate::Ok; } else { ksv = KSSLCertificate::Expired; } } } if (ksv == KSSLCertificate::Ok) { cspl.setColor(QColorGroup::Foreground, QColor(42,153,59)); } else if (ksv != KSSLCertificate::Irrelevant) { cspl.setColor(QColorGroup::Foreground, QColor(196,33,21)); } d->_csl->setPalette(cspl); QString errorStr; for(KSSLCertificate::KSSLValidationList::ConstIterator it = ksvl.begin(); it != ksvl.end(); ++it) { if (!errorStr.isEmpty()) errorStr.append('\n'); errorStr += KSSLCertificate::verifyText(*it); } d->_csl->setText(errorStr); d->_csl->setMinimumSize(d->_csl->sizeHint()); d->_subject->setValues(x->getSubject()); d->_issuer->setValues(x->getIssuer()); d->_digest->setText(x->getMD5DigestText());}void KSSLInfoDlg::slotChain(int x) { if (x == 0) { displayCert(d->_cert); } else { QPtrList<KSSLCertificate> cl = d->_cert->chain().getChain(); cl.setAutoDelete(true); for (int i = 0; i < x-1; i++) cl.remove((unsigned int)0); KSSLCertificate thisCert = *(cl.at(0)); cl.remove((unsigned int)0); thisCert.chain().setChain(cl); displayCert(&thisCert); }}KSSLCertBox *KSSLInfoDlg::certInfoWidget(QWidget *parent, const QString &certName, QWidget *mailCatcher) { KSSLCertBox *result = new KSSLCertBox(parent); if (!certName.isEmpty()) { result->setValues(certName, mailCatcher); } return result;}KSSLCertBox::KSSLCertBox(QWidget *parent, const char *name, WFlags f): QScrollView(parent, name, f){ _frame = 0L; setBackgroundMode(QWidget::PaletteButton); setValues(QString::null, 0L);}void KSSLCertBox::setValues(QString certName, QWidget *mailCatcher) { if (_frame) { removeChild(_frame); delete _frame; } if (certName.isEmpty()) { _frame = new QFrame(this); addChild(_frame); viewport()->setBackgroundMode(_frame->backgroundMode()); _frame->show(); updateScrollBars(); show(); return; } KSSLX509Map cert(certName); QString tmp; viewport()->setBackgroundMode(QWidget::PaletteButton); _frame = new QFrame(this); QGridLayout *grid = new QGridLayout(_frame, 1, 2, KDialog::marginHint(), KDialog::spacingHint()); grid->setAutoAdd(true); QLabel *label = 0L; if (!(tmp = cert.getValue("O")).isEmpty()) { label = new QLabel(i18n("Organization:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("OU")).isEmpty()) { label = new QLabel(i18n("Organizational unit:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("L")).isEmpty()) { label = new QLabel(i18n("Locality:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("ST")).isEmpty()) { label = new QLabel(i18n("Federal State","State:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("C")).isEmpty()) { label = new QLabel(i18n("Country:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("CN")).isEmpty()) { label = new QLabel(i18n("Common name:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); new QLabel(tmp, _frame); } if (!(tmp = cert.getValue("Email")).isEmpty()) { label = new QLabel(i18n("Email:"), _frame); label->setAlignment(Qt::AlignLeft | Qt::AlignTop); if (mailCatcher) { KURLLabel *mail = new KURLLabel(tmp, tmp, _frame); connect(mail, SIGNAL(leftClickedURL(const QString &)), mailCatcher, SLOT(mailClicked(const QString &))); } else { new QLabel(tmp, _frame); } } if (label && viewport()) { viewport()->setBackgroundMode(label->backgroundMode()); } addChild(_frame); updateScrollBars(); _frame->show(); show();}QScrollView *KSSLInfoDlg::buildCertInfo(const QString &certName) { return KSSLInfoDlg::certInfoWidget(this, certName, this);}void KSSLInfoDlg::urlClicked(const QString &url) { kapp->invokeBrowser(url);}void KSSLInfoDlg::mailClicked(const QString &url) { kapp->invokeMailer(url, QString::null);}#include "ksslinfodlg.moc"// vim: ts=4 sw=4 et
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -