Skip to content

Commit 623ba4a

Browse files
committed
Merge PR #1720
2 parents f2477b1 + 86957cb commit 623ba4a

File tree

16 files changed

+1245
-306
lines changed

16 files changed

+1245
-306
lines changed

NEWS

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* Version 7.1.1 (released 2024-10-30) Desktop-only release
2+
** Fix: Entering the wrong PIV PIN/PUK when attempting to change PIN/PUK was not handled correctly, causing extra PIN/PUK attempts to be wasted.
3+
** Fix: Add explicit screen reader announcement for "Touch your YubiKey" which wasn't being read on Windows.
4+
15
* Version 7.1.0 (released 2024-09-25)
26
** Improved support for YubiKey Bio - Multi-protocol Edition.
37
** Improved support for YubiKey 5.7 FIPS:
@@ -12,7 +16,7 @@
1216
** UI: Add grid views for OATH and Passkey credential lists.
1317
** UI: Add toggling of visibility to the right sidebar menu.
1418

15-
* Version 7.0.1 (released 2024-05-30) Android only release
19+
* Version 7.0.1 (released 2024-05-30) Android-only release
1620
** Fix: Opening the app by NFC tap needs another tap to reveal accounts.
1721
** Fix: NFC devices attached to mobile phone prevent usage of USB YubiKeys.
1822
** Fix: Invalid colors shown in customization views for Android Dynamic color.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8'?>
22
<resources>
3-
<string name="p_ndef_set_otp">OTP-Code wurde erfolgreich von Ihrem YubiKey in die Zwischenablage kopiert.</string>
4-
<string name="p_ndef_set_password">Passwort wurde erfolgreich von Ihrem YubiKey in die Zwischenablage kopiert.</string>
5-
<string name="p_ndef_parse_failure">Beim Parsen des OTP-Codes von Ihrem YubiKey ist ein Fehler aufgetreten.</string>
6-
<string name="p_ndef_set_clip_failure">Konnte während dem Versuch den OTP-Code von Ihrem YubiKey zu kopieren nicht auf die Zwischenablage zugreifen.</string>
3+
<string name="p_ndef_set_otp">OTP Code wurde erfolgreich in die Zwischenablage kopiert.</string>
4+
<string name="p_ndef_set_password">Passwort wurde erfolgreich in die Zwischenablage kopiert.</string>
5+
<string name="p_ndef_parse_failure">Beim Auslesen des OTP Codes von deinem YubiKey ist ein Fehler aufgetreten.</string>
6+
<string name="p_ndef_set_clip_failure">Fehler beim Zugriff auf die Zwischenablage als der OTP Code kopiert wurde.</string>
77
</resources>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version='1.0' encoding='utf-8'?>
2+
<resources>
3+
<string name="p_ndef_set_otp">OTP kód sa úspešne skopíroval z YubiKey do schránky.</string>
4+
<string name="p_ndef_set_password">Heslo bolo úspešne skopírované z YubiKey do schránky.</string>
5+
<string name="p_ndef_parse_failure">Nepodarilo sa spracovať OTP kód z YubiKey.</string>
6+
<string name="p_ndef_set_clip_failure">Nepodarilo sa získať prístup k schránke pri pokuse o skopírovanie OTP kódu z YubiKey.</string>
7+
</resources>

helper/helper/fido.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ def set_pin(self, params, event, signal):
242242
self._info = self.ctap.get_info()
243243
return RpcResponse(dict(), ["device_info"])
244244
except CtapError as e:
245+
self._token = None
245246
return _handle_pin_error(e, self.client_pin)
246247

247248
@action(condition=lambda self: Config.is_supported(self._info))

helper/poetry.lock

Lines changed: 17 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

helper/version_info.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ VSVersionInfo(
66
ffi=FixedFileInfo(
77
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
88
# Set not needed items to zero 0.
9-
filevers=(7, 1, 1, 0),
10-
prodvers=(7, 1, 1, 0),
9+
filevers=(7, 1, 2, 0),
10+
prodvers=(7, 1, 2, 0),
1111
# Contains a bitmask that specifies the valid bits 'flags'r
1212
mask=0x3f,
1313
# Contains a bitmask that specifies the Boolean attributes of the file.
@@ -31,11 +31,11 @@ VSVersionInfo(
3131
'040904b0',
3232
[StringStruct('CompanyName', 'Yubico'),
3333
StringStruct('FileDescription', 'Yubico Authenticator Helper'),
34-
StringStruct('FileVersion', '7.1.1-dev.0'),
34+
StringStruct('FileVersion', '7.1.2-dev.0'),
3535
StringStruct('LegalCopyright', 'Copyright (c) Yubico'),
3636
StringStruct('OriginalFilename', 'authenticator-helper.exe'),
3737
StringStruct('ProductName', 'Yubico Authenticator'),
38-
StringStruct('ProductVersion', '7.1.1-dev.0')])
38+
StringStruct('ProductVersion', '7.1.2-dev.0')])
3939
]),
4040
VarFileInfo([VarStruct('Translation', [1033, 1200])])
4141
]

lib/desktop/fido/state.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,12 @@ class _DesktopFidoStateNotifier extends FidoStateNotifier {
9999
_session.setErrorHandler('state-reset', (_) async {
100100
ref.invalidate(_sessionProvider(devicePath));
101101
});
102-
_session.setErrorHandler('auth-required', (_) async {
102+
_session.setErrorHandler('auth-required', (e) async {
103103
final pin = ref.read(_pinProvider(devicePath));
104104
if (pin != null) {
105105
await unlock(pin);
106+
} else {
107+
throw e;
106108
}
107109
});
108110
ref.onDispose(() {
@@ -153,6 +155,7 @@ class _DesktopFidoStateNotifier extends FidoStateNotifier {
153155
return unlock(newPin);
154156
} on RpcError catch (e) {
155157
if (e.status == 'pin-validation') {
158+
ref.invalidate(_pinProvider);
156159
ref.invalidateSelf();
157160
return PinResult.failed(FidoPinFailureReason.invalidPin(
158161
e.body['retries'], e.body['auth_blocked']));

lib/fido/views/pin_dialog.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,10 @@ class _FidoPinDialogState extends ConsumerState<FidoPinDialog> {
8585
final currentPinLenOk =
8686
_currentPinController.text.length >= currentMinPinLen;
8787
final newPinLenOk = _newPinController.text.length >= minPinLength;
88-
final isValid =
89-
currentPinLenOk && newPinLenOk && _newPinController.text == _confirmPin;
88+
final isValid = currentPinLenOk &&
89+
newPinLenOk &&
90+
_newPinController.text == _confirmPin &&
91+
!_currentIsWrong;
9092

9193
final newPinEnabled = !_isBlocked && currentPinLenOk;
9294
final confirmPinEnabled = !_isBlocked && currentPinLenOk && newPinLenOk;

0 commit comments

Comments
 (0)