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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
/* vi: set sw=4 ts=4:
*
* Copyright (C) 2001 - 2014 Christian Hohnstaedt.
*
* All rights reserved.
*/
#include "CertExtend.h"
#include "lib/base.h"
#include "lib/func.h"
#include "widgets/validity.h"
#include "widgets/XcaWarning.h"
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QCheckBox>
#include <QMessageBox>
CertExtend::CertExtend(QWidget *parent, pki_x509 *s)
:QDialog(parent)
{
setupUi(this);
setWindowTitle(XCA_TITLE);
image->setPixmap(QPixmap(":certImg"));
validNumber->setText("1");
validRange->setCurrentIndex(2);
on_applyTime_clicked();
signer = s;
notAfter->setEndDate(true);
}
void CertExtend::on_applyTime_clicked()
{
notAfter->setDiff(notBefore, validNumber->text().toInt(),
validRange->currentIndex());
}
void CertExtend::on_keepSerial_toggled(bool checked)
{
if (checked) {
old_revoke = revoke->isChecked();
revoke->setEnabled(false);
revoke->setChecked(false);
old_replace = replace->isChecked();
replace->setEnabled(false);
replace->setChecked(true);
} else {
revoke->setEnabled(true);
revoke->setChecked(old_revoke);
replace->setEnabled(true);
replace->setChecked(old_replace);
}
}
void CertExtend::accept()
{
if (signer && notBefore->getDate() < signer->getNotBefore()) {
QString text = tr("The certificate will be earlier valid than the signer. This is probably not what you want.");
xcaWarningBox msg(this, text);
msg.addButton(QMessageBox::Ok, tr("Edit dates"));
msg.addButton(QMessageBox::Close, tr("Abort rollout"));
msg.addButton(QMessageBox::Apply, tr("Continue rollout"));
msg.addButton(QMessageBox::Yes, tr("Adjust date and continue"));
switch (msg.exec())
{
case QMessageBox::Ok:
case QMessageBox::Cancel:
return;
case QMessageBox::Close:
reject();
return;
case QMessageBox::Apply:
break;
case QMessageBox::Yes:
notBefore->setDate(signer->getNotBefore());
}
}
if (signer && notAfter->getDate() > signer->getNotAfter() &&
!noWellDefinedExpDate->isChecked()) {
QString text = tr("The certificate will be longer valid than the signer. This is probably not what you want.");
xcaWarningBox msg(this, text);
msg.addButton(QMessageBox::Ok, tr("Edit dates"));
msg.addButton(QMessageBox::Close, tr("Abort rollout"));
msg.addButton(QMessageBox::Apply, tr("Continue rollout"));
msg.addButton(QMessageBox::Yes, tr("Adjust date and continue"));
switch (msg.exec())
{
case QMessageBox::Ok:
case QMessageBox::Cancel:
return;
case QMessageBox::Close:
reject();
return;
case QMessageBox::Apply:
break;
case QMessageBox::Yes:
notAfter->setDate(signer->getNotAfter());
}
}
QDialog::accept();
}
|