Skip to content

Commit 5c01948

Browse files
committed
Enc SSL cert
Signed-off-by: Raul Metsma <[email protected]>
1 parent ef37cc8 commit 5c01948

File tree

6 files changed

+590
-500
lines changed

6 files changed

+590
-500
lines changed

client/dialogs/SettingsDialog.cpp

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
6767
w->setAttribute(Qt::WA_MacShowFocusRect, false);
6868
for(QCheckBox *w: findChildren<QCheckBox*>())
6969
w->setAttribute(Qt::WA_MacShowFocusRect, false);
70+
for(QToolButton *b: findChildren<QToolButton*>())
71+
b->setCursor(Qt::PointingHandCursor);
72+
for(QPushButton *b: findChildren<QPushButton*>())
73+
b->setCursor(Qt::PointingHandCursor);
7074

7175
// pageGeneral
7276
selectLanguage();
@@ -151,7 +155,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
151155
ui->txtMIDUUID->setReadOnly(Settings::MID_UUID.isLocked());
152156
ui->txtMIDUUID->setVisible(ui->rdMIDUUIDCustom->isChecked());
153157
ui->txtMIDUUID->setText(Settings::MID_UUID);
154-
connect(ui->rdMIDUUIDCustom, &QRadioButton::toggled, ui->txtMIDUUID, [=](bool checked) {
158+
connect(ui->rdMIDUUIDCustom, &QRadioButton::toggled, ui->txtMIDUUID, [this](bool checked) {
155159
ui->txtMIDUUID->setVisible(checked);
156160
Settings::MID_UUID_CUSTOM = checked;
157161
Settings::SID_UUID_CUSTOM = checked;
@@ -221,10 +225,11 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
221225
ui->txtCdoc2UUID->setReadOnly(disabled);
222226
ui->txtCdoc2Fetch->setReadOnly(disabled);
223227
ui->txtCdoc2Post->setReadOnly(disabled);
228+
ui->wgtCDoc2Cert->setHidden(disabled);
224229
};
225230
for(QJsonObject::const_iterator i = list.constBegin(); i != list.constEnd(); ++i)
226231
ui->cmbCdoc2Name->addItem(i.value().toObject().value(QLatin1String("NAME")).toString(), i.key());
227-
ui->cmbCdoc2Name->addItem(tr("Custom"), Settings::CDOC2_UUID);
232+
ui->cmbCdoc2Name->addItem(tr("Use a manually specified key transfer server for encryption"), Settings::CDOC2_UUID);
228233
QString cdoc2Service = Settings::CDOC2_DEFAULT_KEYSERVER;
229234
ui->cmbCdoc2Name->setCurrentIndex(ui->cmbCdoc2Name->findData(cdoc2Service));
230235
connect(ui->cmbCdoc2Name, qOverload<int>(&QComboBox::currentIndexChanged), this, [this, setCDoc2Values] (int index) {
@@ -234,14 +239,40 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
234239
});
235240
setCDoc2Values(cdoc2Service);
236241
connect(ui->txtCdoc2UUID, &QLineEdit::textEdited, this, Settings::CDOC2_UUID);
237-
connect(ui->txtCdoc2Fetch, &QLineEdit::textEdited, this, Settings::CDOC2_GET);
238-
connect(ui->txtCdoc2Post, &QLineEdit::textEdited, this, Settings::CDOC2_POST);
242+
connect(ui->txtCdoc2Fetch, &QLineEdit::textEdited, this, [this](const QString &url) {
243+
Settings::CDOC2_GET = url;
244+
if(url.isEmpty())
245+
{
246+
Settings::CDOC2_GET_CERT.clear();
247+
Settings::CDOC2_POST_CERT.clear();
248+
updateCDoc2Cert(QSslCertificate());
249+
}
250+
});
251+
connect(ui->txtCdoc2Post, &QLineEdit::textEdited, this, [this](const QString &url) {
252+
Settings::CDOC2_POST = url;
253+
if(url.isEmpty())
254+
{
255+
Settings::CDOC2_GET_CERT.clear();
256+
Settings::CDOC2_POST_CERT.clear();
257+
updateCDoc2Cert(QSslCertificate());
258+
}
259+
});
239260
#else
240261
ui->cmbCdoc2Name->addItem(QStringLiteral("Default"));
241262
ui->txtCdoc2UUID->setText(QStringLiteral("00000000-0000-0000-0000-000000000000"));
242263
ui->txtCdoc2Fetch->setText(QStringLiteral(CDOC2_GET_URL));
243264
ui->txtCdoc2Post->setText(QStringLiteral(CDOC2_POST_URL));
244265
#endif
266+
connect(ui->btInstallCDoc2Cert, &QPushButton::clicked, this, [this] {
267+
QSslCertificate cert = selectCert(tr("Select a key transfer server certificate"),
268+
tr("Key transfer server SSL certificate"));
269+
if(cert.isNull())
270+
return;
271+
Settings::CDOC2_GET_CERT = cert.toDer().toBase64();
272+
Settings::CDOC2_POST_CERT = cert.toDer().toBase64();
273+
updateCDoc2Cert(cert);
274+
});
275+
updateCDoc2Cert(QSslCertificate(QByteArray::fromBase64(Settings::CDOC2_GET_CERT), QSsl::Der));
245276

246277
// pageProxy
247278
connect(this, &SettingsDialog::finished, this, &SettingsDialog::saveProxy);
@@ -313,7 +344,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
313344
dlg->open();
314345
});
315346
#ifdef CONFIG_URL
316-
connect(qApp->conf(), &Configuration::finished, this, [=](bool /*update*/, const QString &error){
347+
connect(qApp->conf(), &Configuration::finished, this, [this](bool /*update*/, const QString &error){
317348
if(!error.isEmpty()) {
318349
WarningDialog::show(this, tr("Checking updates has failed.") + "<br />" + tr("Please try again."), error);
319350
return;
@@ -334,10 +365,10 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
334365
Application::updateTSLCache({});
335366
});
336367
connect(ui->btnNavUseByDefault, &QPushButton::clicked, this, &SettingsDialog::useDefaultSettings);
337-
connect(ui->btnNavSaveReport, &QPushButton::clicked, this, [=]{
368+
connect(ui->btnNavSaveReport, &QPushButton::clicked, this, [this]{
338369
saveFile(QStringLiteral("diagnostics.txt"), ui->txtDiagnostics->toPlainText().toUtf8());
339370
});
340-
connect(ui->btnNavSaveLibdigidocpp, &QPushButton::clicked, this, [=]{
371+
connect(ui->btnNavSaveLibdigidocpp, &QPushButton::clicked, this, [this]{
341372
Settings::LIBDIGIDOCPP_DEBUG = false;
342373
QString log = QStringLiteral("%1/libdigidocpp.log").arg(QDir::tempPath());
343374
saveFile(QStringLiteral("libdigidocpp.txt"), log);
@@ -439,6 +470,11 @@ void SettingsDialog::updateCert(const QSslCertificate &c, QPushButton *btn, Cert
439470
});
440471
}
441472

473+
void SettingsDialog::updateCDoc2Cert(const QSslCertificate &c)
474+
{
475+
updateCert(c, ui->btShowCDoc2Cert, ui->txtCDoc2Cert);
476+
}
477+
442478
void SettingsDialog::updateSiVaCert(const QSslCertificate &c)
443479
{
444480
updateCert(c, ui->btShowSiVaCert, ui->txtSiVaCert);
@@ -469,8 +505,8 @@ void SettingsDialog::selectLanguage()
469505

470506
void SettingsDialog::updateVersion()
471507
{
472-
ui->txtNavVersion->setText(tr("%1 version %2, released %3")
473-
.arg(tr("DigiDoc4 Client"), QApplication::applicationVersion(), QStringLiteral(BUILD_DATE)));
508+
ui->txtNavVersion->setText(tr("DigiDoc4 version %1, released %2")
509+
.arg(QApplication::applicationVersion(), QStringLiteral(BUILD_DATE)));
474510
}
475511

476512
void SettingsDialog::saveProxy()
@@ -519,7 +555,7 @@ void SettingsDialog::updateDiagnostics()
519555
QApplication::setOverrideCursor( Qt::WaitCursor );
520556
auto *worker = new Diagnostics();
521557
connect(worker, &Diagnostics::update, ui->txtDiagnostics, &QTextBrowser::insertHtml, Qt::QueuedConnection);
522-
connect(worker, &Diagnostics::destroyed, this, [=]{
558+
connect(worker, &Diagnostics::destroyed, this, [this]{
523559
ui->txtDiagnostics->setEnabled(true);
524560
ui->txtDiagnostics->moveCursor(QTextCursor::Start);
525561
ui->txtDiagnostics->ensureCursorVisible();

client/dialogs/SettingsDialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class SettingsDialog final: public QDialog
7171
QSslCertificate selectCert(const QString &label, const QString &format);
7272
void selectLanguage();
7373
void updateCert(const QSslCertificate &c, QPushButton *btn, CertLabel *lbl);
74+
void updateCDoc2Cert(const QSslCertificate &c);
7475
void updateSiVaCert(const QSslCertificate &c);
7576
void updateTSACert(const QSslCertificate &c);
7677
void updateVersion();

0 commit comments

Comments
 (0)