Skip to content

Commit 5b9d027

Browse files
committed
Workaround for Windows NFC issue
1 parent 90ee720 commit 5b9d027

File tree

3 files changed

+24
-31
lines changed

3 files changed

+24
-31
lines changed

helper/helper/device.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -394,20 +394,15 @@ def fido(self):
394394
class _ReaderObserver(CardObserver):
395395
def __init__(self, device):
396396
self.device = device
397-
self.card = None
398397
self.needs_refresh = True
399398

400399
def update(self, observable, actions):
401400
added, removed = actions
402-
for card in added:
401+
402+
for card in added + removed:
403403
if card.reader == self.device.reader.name:
404-
if card != self.card:
405-
self.card = card
404+
self.needs_refresh = True
406405
break
407-
else:
408-
self.card = None
409-
self.needs_refresh = True
410-
logger.debug(f"NFC card: {self.card}")
411406

412407

413408
RESTRICTED_NDEF = bytes.fromhex("001fd1011b5504") + b"yubico.com/getting-started"
@@ -433,9 +428,6 @@ def _read_data(self, conn):
433428
return dict(super()._read_data(conn), present=True)
434429

435430
def _refresh_data(self):
436-
card = self._observer.card
437-
if card is None:
438-
return dict(present=False, status="no-card")
439431
try:
440432
self._close_child()
441433
with self._device.open_connection(SmartCardConnection) as conn:

helper/poetry.lock

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

helper/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencies = [
1010
"mss (>=9.0.1, <10)",
1111
"Pillow (>=10.2.0, <11)",
1212
"zxing-cpp (>=2.2.0, <3)",
13+
"pyscard (==2.2.1)", # 2.2.2 has issues with CardMonitor
1314
]
1415

1516

0 commit comments

Comments
 (0)