Skip to content

Commit ed1a78c

Browse files
metsmamrts
authored andcommitted
Remove fromPunycode
Add ee, fi, lt, lv to allowed IDN parsing list WE2-1173 Signed-off-by: Raul Metsma <raul@metsma.ee>
1 parent b7a4e04 commit ed1a78c

File tree

7 files changed

+25
-53
lines changed

7 files changed

+25
-53
lines changed

src/controller/application.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ Application::Application(int& argc, char** argv, const QString& name) :
6060
installTranslator(translator);
6161
loadTranslations();
6262

63+
auto list = QUrl::idnWhitelist();
64+
list.append({
65+
QStringLiteral("fi"),
66+
QStringLiteral("ee"),
67+
QStringLiteral("lt"),
68+
QStringLiteral("lv"),
69+
});
70+
QUrl::setIdnWhitelist(list);
71+
6372
for (const QString& font : QDir(QStringLiteral(":/fonts")).entryList()) {
6473
QFontDatabase::addApplicationFont(QStringLiteral(":/fonts/%1").arg(font));
6574
}

src/ui/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ add_library(ui STATIC
44
languageselect.cpp
55
languageselect.hpp
66
languageselect.ui
7-
punycode.hpp
87
ui.cpp
98
webeiddialog.cpp
109
webeiddialog.hpp

src/ui/dialog.ui

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,9 @@ border-radius: 4px;</string>
496496
<property name="focusPolicy">
497497
<enum>Qt::TabFocus</enum>
498498
</property>
499+
<property name="textFormat">
500+
<enum>Qt::PlainText</enum>
501+
</property>
499502
</widget>
500503
</item>
501504
</layout>
@@ -569,6 +572,9 @@ border-radius: 4px;</string>
569572
<property name="focusPolicy">
570573
<enum>Qt::TabFocus</enum>
571574
</property>
575+
<property name="textFormat">
576+
<enum>Qt::PlainText</enum>
577+
</property>
572578
</widget>
573579
</item>
574580
</layout>

src/ui/punycode.hpp

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/ui/webeiddialog.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
#include "webeiddialog.hpp"
2424
#include "application.hpp"
2525
#include "languageselect.hpp"
26-
#include "punycode.hpp"
2726

2827
#include "ui_dialog.h"
2928

@@ -280,7 +279,7 @@ void WebEidDialog::onSmartCardStatusUpdate(const RetriableError status)
280279
void WebEidDialog::onMultipleCertificatesReady(
281280
const QUrl& origin, const std::vector<EidCertificateAndPinInfo>& certAndPinInfos)
282281
{
283-
ui->selectCertificateOriginLabel->setText(fromPunycode(origin));
282+
setupOrigin(origin);
284283
setupCertificateAndPinInfo(certAndPinInfos);
285284

286285
switch (currentCommand) {
@@ -334,7 +333,7 @@ void WebEidDialog::onMultipleCertificatesReady(
334333
void WebEidDialog::onSingleCertificateReady(const QUrl& origin,
335334
const EidCertificateAndPinInfo& certAndPinInfo)
336335
{
337-
ui->selectCertificateOriginLabel->setText(fromPunycode(origin));
336+
setupOrigin(origin);
338337
ui->pinInputOriginLabel->setText(ui->selectCertificateOriginLabel->text());
339338
const bool useExternalPinDialog = certAndPinInfo.eid->providesExternalPinDialog();
340339

@@ -552,6 +551,13 @@ void WebEidDialog::setupCertificateAndPinInfo(
552551
}
553552
}
554553

554+
void WebEidDialog::setupOrigin(const QUrl& origin)
555+
{
556+
const auto host = origin.host(QUrl::PrettyDecoded);
557+
ui->selectCertificateOriginLabel->setText(QStringLiteral("%2%3").arg(
558+
host, origin.port() == -1 ? QString() : QStringLiteral(":%1").arg(origin.port())));
559+
}
560+
555561
void WebEidDialog::setupPinPrompt(PinInfo pinInfo, bool cardActive)
556562
{
557563
ui->okButton->setHidden(pinInfo.readerHasPinPad || !cardActive);

src/ui/webeiddialog.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ class WebEidDialog final : public WebEidUI
101101
void setTrText(QWidget* label, Text text) const;
102102
void
103103
setupCertificateAndPinInfo(const std::vector<EidCertificateAndPinInfo>& cardCertAndPinInfos);
104+
void setupOrigin(const QUrl& origin);
104105
void setupPinPrompt(PinInfo pinInfo, bool cardActive);
105106
void setupPinPadProgressBarAndEmitWait(const EidCertificateAndPinInfo& certAndPinInfo);
106107
void setupPinInput(const EidCertificateAndPinInfo& certAndPinInfo);

tests/tests/main.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
#include "controller.hpp"
2727
#include "command-handlers/getcertificate.hpp"
2828

29-
#include "../ui/punycode.hpp"
30-
3129
#include "mock-ui.hpp"
3230
#include "getcommandhandler-mock.hpp"
3331

@@ -72,8 +70,6 @@ private slots:
7270

7371
void authenticate_validArgumentsResultInValidToken();
7472

75-
void fromPunycode_decodesEeDomain();
76-
7773
void quit_exits();
7874

7975
private:
@@ -201,12 +197,6 @@ void WebEidTests::authenticate_validArgumentsResultInValidToken()
201197
QStringLiteral("MIIEAzCCA2WgAwIBAgIQOWkBW"));
202198
}
203199

204-
void WebEidTests::fromPunycode_decodesEeDomain()
205-
{
206-
QCOMPARE(fromPunycode(QUrl(QStringLiteral("https://xn--igusnunik-p7af.ee"))),
207-
QStringLiteral("\u00F5igusn\u00F5unik.ee"));
208-
}
209-
210200
void WebEidTests::quit_exits()
211201
{
212202
try {

0 commit comments

Comments
 (0)