Skip to content

Commit b69435a

Browse files
committed
Show warning when card requires activation
WE2-1114 Signed-off-by: Raul Metsma <[email protected]>
1 parent 6f6b023 commit b69435a

File tree

16 files changed

+146
-30
lines changed

16 files changed

+146
-30
lines changed

src/controller/certandpininfo.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ struct PinInfo
4040
using PinMinMaxLength = std::pair<uint8_t, uint8_t>;
4141
using PinRetriesCount = std::pair<int8_t, int8_t>;
4242

43-
PinMinMaxLength pinMinMaxLength = {0, 0};
44-
PinRetriesCount pinRetriesCount = {0, -1};
43+
PinMinMaxLength pinMinMaxLength {0, 0};
44+
PinRetriesCount pinRetriesCount {0, -1};
4545
bool readerHasPinPad = false;
46-
bool pinIsBlocked = false;
46+
constexpr bool pinIsBlocked() const { return pinRetriesCount.first == 0; }
4747

4848
static constexpr int PIN_PAD_PIN_ENTRY_TIMEOUT = pcsc_cpp::PIN_PAD_PIN_ENTRY_TIMEOUT;
4949
};
@@ -55,6 +55,7 @@ struct EidCertificateAndPinInfo
5555
QSslCertificate certificate {};
5656
CertificateInfo certInfo;
5757
PinInfo pinInfo;
58+
bool cardActive = true;
5859
};
5960

6061
Q_DECLARE_METATYPE(EidCertificateAndPinInfo)

src/controller/command-handlers/certificatereader.cpp

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,29 @@ EidCertificateAndPinInfo getCertificateWithStatusAndInfo(const ElectronicID::ptr
6161
CertificateInfo certInfo {
6262
certificateType, certificate.expiryDate() < QDateTime::currentDateTimeUtc(),
6363
certificate.effectiveDate() > QDateTime::currentDateTimeUtc(), std::move(subject)};
64-
PinInfo pinInfo {certificateType.isAuthentication() ? eid->authPinMinMaxLength()
65-
: eid->signingPinMinMaxLength(),
66-
certificateType.isAuthentication() ? eid->authPinRetriesLeft()
67-
: eid->signingPinRetriesLeft(),
68-
eid->smartcard().readerHasPinPad()};
69-
if (pinInfo.pinRetriesCount.first == 0) {
70-
pinInfo.pinIsBlocked = true;
64+
auto info = certificateType.isAuthentication() ? eid->authPinInfo() : eid->signingPinInfo();
65+
PinInfo pinInfo {.pinMinMaxLength = certificateType.isAuthentication()
66+
? eid->authPinMinMaxLength()
67+
: eid->signingPinMinMaxLength(),
68+
.pinRetriesCount {
69+
info.retryCount,
70+
info.maxRetry,
71+
},
72+
.readerHasPinPad = eid->smartcard().readerHasPinPad()};
73+
bool cardActive = info.pinActive;
74+
if (certificateType == CertificateType::AUTHENTICATION && eid->type() == ElectronicID::EstEID
75+
&& eid->name() == "EstEIDThales") {
76+
cardActive = eid->signingPinInfo().pinActive;
7177
}
7278

73-
return {eid, std::move(certificateDer), certificate, std::move(certInfo), std::move(pinInfo)};
79+
return {
80+
.eid = eid,
81+
.certificateBytesInDer = std::move(certificateDer),
82+
.certificate = certificate,
83+
.certInfo = std::move(certInfo),
84+
.pinInfo = std::move(pinInfo),
85+
.cardActive = cardActive,
86+
};
7487
}
7588

7689
} // namespace

src/ui/certificatewidget.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,9 @@ void CertificateWidgetInfo::setCertificateInfo(const EidCertificateAndPinInfo& c
112112
info->setText(CertificateWidget::tr("<b>%1</b><br />Issuer: %2<br />Valid: %3 to %4%5")
113113
.arg(subject, issuer, effectiveDate, expiryDate, warning));
114114
info->parentWidget()->setDisabled(certInfo.notEffective || certInfo.isExpired
115-
|| cardCertPinInfo.pinInfo.pinIsBlocked);
116-
if (warning.isEmpty() && cardCertPinInfo.pinInfo.pinIsBlocked) {
117-
warnIcon->show();
118-
warn->show();
119-
}
115+
|| cardCertPinInfo.pinInfo.pinIsBlocked());
116+
warnIcon->setVisible(warning.isEmpty() && cardCertPinInfo.pinInfo.pinIsBlocked());
117+
warn->setVisible(warning.isEmpty() && cardCertPinInfo.pinInfo.pinIsBlocked());
120118
}
121119

122120
void CertificateWidgetInfo::languageChange()

src/ui/dialog.ui

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,28 @@ height: 24px;
211211
<property name="bottomMargin">
212212
<number>20</number>
213213
</property>
214+
<item>
215+
<widget class="QLabel" name="lockedWarning">
216+
<property name="styleSheet">
217+
<string notr="true">background-color: #FAE7C9;
218+
color: #003168;
219+
font-family: Roboto, Helvetica;
220+
font-size: 14px;
221+
padding: 10px;
222+
border: none;
223+
border-radius: 4px;</string>
224+
</property>
225+
<property name="text">
226+
<string>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</string>
227+
</property>
228+
<property name="wordWrap">
229+
<bool>true</bool>
230+
</property>
231+
<property name="openExternalLinks">
232+
<bool>true</bool>
233+
</property>
234+
</widget>
235+
</item>
214236
<item>
215237
<widget class="QStackedWidget" name="pageStack">
216238
<property name="currentIndex">

src/ui/translations/cs.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@
157157
<source>Operation failed</source>
158158
<translation>Operace se nezdařila</translation>
159159
</message>
160+
<message>
161+
<source>PIN entry disabled</source>
162+
<translation type="unfinished"></translation>
163+
</message>
160164
<message>
161165
<source>Card driver error. Please try again.</source>
162166
<translation>Chyba ovladače karty. Zkuste to prosím znovu.</translation>
@@ -193,6 +197,10 @@
193197
<source>Try again</source>
194198
<translation>Zkuste to znovu</translation>
195199
</message>
200+
<message>
201+
<source>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</source>
202+
<translation type="unfinished"></translation>
203+
</message>
196204
<message>
197205
<source>Cancel</source>
198206
<translation>Zrušit</translation>

src/ui/translations/de.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,17 @@
155155
<source>Operation failed</source>
156156
<translation>Der Vorgang ist fehlgeschlagen</translation>
157157
</message>
158+
<message>
159+
<source>PIN entry disabled</source>
160+
<translation type="unfinished"></translation>
161+
</message>
158162
<message>
159163
<source>Card driver error. Please try again.</source>
160164
<translation>Kartentreiberfehler. Bitte versuche es erneut.</translation>
161165
</message>
162166
<message>
163167
<source>Card driver error</source>
164-
<translation>Kartentreiberfehler.</translation>
168+
<translation>Kartentreiberfehler</translation>
165169
</message>
166170
<message>
167171
<source>An error occurred in the Smart Card service required to use the ID-card. Make sure that the ID-card and the card reader are connected correctly or relaunch the Smart Card service.</source>
@@ -191,6 +195,10 @@
191195
<source>Try again</source>
192196
<translation>Versuch es noch einmal</translation>
193197
</message>
198+
<message>
199+
<source>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</source>
200+
<translation type="unfinished"></translation>
201+
</message>
194202
<message>
195203
<source>Cancel</source>
196204
<translation>Abbrechen</translation>

src/ui/translations/en.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@
155155
<source>Operation failed</source>
156156
<translation>Operation failed</translation>
157157
</message>
158+
<message>
159+
<source>PIN entry disabled</source>
160+
<translation>PIN entry disabled</translation>
161+
</message>
158162
<message>
159163
<source>Card driver error. Please try again.</source>
160164
<translation>Card driver error. Please try again.</translation>
@@ -191,6 +195,10 @@
191195
<source>Try again</source>
192196
<translation>Try again</translation>
193197
</message>
198+
<message>
199+
<source>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</source>
200+
<translation>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</translation>
201+
</message>
194202
<message>
195203
<source>Cancel</source>
196204
<translation>Cancel</translation>

src/ui/translations/et.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@
107107
<source>PIN entry cancelled.</source>
108108
<translation>PIN-koodi sisestamine katkestati.</translation>
109109
</message>
110+
<message>
111+
<source>PIN entry disabled</source>
112+
<translation type="unfinished"></translation>
113+
</message>
110114
<message>
111115
<source>Launch the Smart Card service</source>
112116
<translation>Käivita Kiipkaardi teenus</translation>
@@ -191,6 +195,10 @@
191195
<source>Try again</source>
192196
<translation>Proovi uuesti</translation>
193197
</message>
198+
<message>
199+
<source>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</source>
200+
<translation>ID-kaardiga allkirjastamine blokeeritud, allkirjastamiseks tuleb DigiDoc4 rakenduses PIN2-koodi muuta. &lt;a href=&quot;https://www.id.ee/artikkel/id-kaardi-pin-ja-puk-koodide-muutmine/&quot;&gt;Lisainfo&lt;/a&gt;</translation>
201+
</message>
194202
<message>
195203
<source>Cancel</source>
196204
<translation>Katkesta</translation>

src/ui/translations/fi.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@
135135
<source>Operation failed</source>
136136
<translation>Toiminto epäonnistui</translation>
137137
</message>
138+
<message>
139+
<source>PIN entry disabled</source>
140+
<translation type="unfinished"></translation>
141+
</message>
138142
<message>
139143
<source>Card driver error. Please try again.</source>
140144
<translation>Kortinlukijan virhe. Yritä uudelleen.</translation>
@@ -163,6 +167,10 @@
163167
<source>Try again</source>
164168
<translation>Yritä uudelleen</translation>
165169
</message>
170+
<message>
171+
<source>Signing with ID-card is blocked, PIN2 code must be changed in DigiDoc4 application in order to sign. &lt;a href=&quot;https://www.id.ee/en/article/changing-id-card-pin-codes-and-puk-code/&quot;&gt;Additional information&lt;/a&gt;</source>
172+
<translation type="unfinished"></translation>
173+
</message>
166174
<message>
167175
<source>Cancel</source>
168176
<translation>Peruuta</translation>
@@ -177,7 +185,7 @@
177185
</message>
178186
<message>
179187
<source>https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</source>
180-
<translation type="unfinished">https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</translation>
188+
<translation>https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</translation>
181189
</message>
182190
<message>
183191
<source>By signing, I agree to the transfer of my name and personal identification code to the service provider.</source>
@@ -257,15 +265,15 @@
257265
</message>
258266
<message>
259267
<source>The inserted ID-card does not contain a certificate for the requested operation. Please insert an ID-card that supports the requested operation.</source>
260-
<translation type="unfinished">Asennettu henkilökortti ei sisällä varmennetta pyydettyä toimintoa varten. Aseta sisään henkilökortti, joka tukee pyydettyä toimintoa.</translation>
268+
<translation>Asennettu henkilökortti ei sisällä varmennetta pyydettyä toimintoa varten. Aseta sisään henkilökortti, joka tukee pyydettyä toimintoa.</translation>
261269
</message>
262270
<message>
263271
<source>Please enter PIN for authentication in the PIN dialog window that opens.</source>
264-
<translation type="unfinished">Syötä PIN todennusta varten avautuvaan PIN-valintaikkunaan.</translation>
272+
<translation>Syötä PIN todennusta varten avautuvaan PIN-valintaikkunaan.</translation>
265273
</message>
266274
<message>
267275
<source>Please enter PIN for signing in the PIN dialog window that opens.</source>
268-
<translation type="unfinished">Syötä PIN kirjautumista varten avautuvaan PIN-valintaikkunaan.</translation>
276+
<translation>Syötä PIN kirjautumista varten avautuvaan PIN-valintaikkunaan.</translation>
269277
</message>
270278
<message>
271279
<source>EN</source>

0 commit comments

Comments
 (0)