[Pkg-auth-maintainers] Bug#1081222: yubikey-manager: python3-pyscard 2.1.0 seems to break yubikey-manager

Raphaël Hertzog hertzog at debian.org
Mon Sep 9 16:26:32 BST 2024


Package: yubikey-manager
Version: 5.4.0-1
Severity: grave
X-Debbugs-Cc: hertzog at debian.org
Control: forwarded -1 https://github.com/Yubico/yubikey-manager/issues/634

Hello, I am unable to use yubikey-manager in unstable right now...

$ ykman info
WARNING: Failed opening device
ERROR: Failed to connect to YubiKey.

The debug output is at the end. But the relevant bit of the log seems to
be:
DEBUG 17:00:47.882 [ykman.device.add:165] Add device for <class 'yubikit.core.smartcard.SmartCardConnection'>: ScardYubiKeyDevice(pid=0404, fingerprint='Yubico YubiKey CCID 00 00')
WARNING 17:00:47.900 [ykman.device.add:179] Failed opening device
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/device.py", line 171, in add
    with dev.open_connection(conn_type) as conn:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/pcsc/__init__.py", line 88, in open_connection
    return self._open_smartcard_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/pcsc/__init__.py", line 96, in _open_smartcard_connection
    return ScardSmartCardConnection(self.reader.createConnection())
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/smartcard/pcsc/PCSCReader.py", line 101, in createConnection
    return CardConnectionDecorator(PCSCCardConnection(self.name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Can't instantiate abstract class CardConnectionDecorator without an implementation for abstract methods 'doControl', 'doGetAttrib', 'doTransmit'


Once I downgrade to python3-pyscard 2.0.10 (from Debian Testing), then the
package works fine.

I also note that there's an new upstream version of the package that
is available:
https://developers.yubico.com/yubikey-manager/Releases/yubikey_manager-5.5.1.tar.gz

I haven't checked whether that version works any better. But judging from
the release notes, there's no mention of fixes related to newer versions
of pyscard:
https://developers.yubico.com/yubikey-manager/Release_Notes.html

Thus I directly opened an upstream issue:
https://github.com/Yubico/yubikey-manager/issues/634

Have a good day!

Full debug output:
------------------

$ ykman -l DEBUG info
INFO 17:00:47.849 [ykman.logging.set_log_level:60] Logging at level: DEBUG
WARNING 17:00:47.849 [ykman.logging.set_log_level:64]
#############################################################################
#                                                                           #
# WARNING: Sensitive data may be logged!                                    #
# Some personally identifying information may be logged, such as usernames! #
#                                                                           #
#############################################################################
INFO 17:00:47.849 [ykman._cli.__main__.cli:276] System info:
  ykman:            5.4.0
  Python:           3.12.6 (main, Sep  7 2024, 14:20:15) [GCC 14.2.0]
  Platform:         linux
  Arch:             x86_64
  System date:      2024-09-09
  Running as admin: False

DEBUG 17:00:47.876 [ykman.hid.linux.list_devices:123] Couldn't read HID descriptor for /dev/hidraw3
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/hid/linux.py", line 115, in list_devices
    with open(hidraw, "rb") as f:
         ^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw3'
DEBUG 17:00:47.877 [ykman.hid.linux.list_devices:123] Couldn't read HID descriptor for /dev/hidraw4
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/hid/linux.py", line 115, in list_devices
    with open(hidraw, "rb") as f:
         ^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw4'
DEBUG 17:00:47.878 [ykman.hid.linux.list_devices:123] Couldn't read HID descriptor for /dev/hidraw0
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/hid/linux.py", line 115, in list_devices
    with open(hidraw, "rb") as f:
         ^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw0'
DEBUG 17:00:47.879 [fido2.hid.linux.list_descriptors:103] Failed opening device /dev/hidraw3
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
         ^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw3'
DEBUG 17:00:47.880 [fido2.hid.linux.list_descriptors:103] Failed opening device /dev/hidraw4
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
         ^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw4'
DEBUG 17:00:47.881 [fido2.hid.linux.list_descriptors:103] Failed opening device /dev/hidraw0
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
         ^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/dev/hidraw0'
DEBUG 17:00:47.882 [ykman.device.add:165] Add device for <class 'yubikit.core.smartcard.SmartCardConnection'>: ScardYubiKeyDevice(pid=0404, fingerprint='Yubico YubiKey CCID 00 00')
WARNING 17:00:47.900 [ykman.device.add:179] Failed opening device
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/device.py", line 171, in add
    with dev.open_connection(conn_type) as conn:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/pcsc/__init__.py", line 88, in open_connection
    return self._open_smartcard_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/pcsc/__init__.py", line 96, in _open_smartcard_connection
    return ScardSmartCardConnection(self.reader.createConnection())
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/smartcard/pcsc/PCSCReader.py", line 101, in createConnection
    return CardConnectionDecorator(PCSCCardConnection(self.name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Can't instantiate abstract class CardConnectionDecorator without an implementation for abstract methods 'doControl', 'doGetAttrib', 'doTransmit'
ERROR 17:00:47.903 [ykman._cli.__main__.main:437] Failed to connect to YubiKey.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/ykman/_cli/__main__.py", line 421, in main
    cli(obj={})
  File "/usr/lib/python3/dist-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/_cli/info.py", line 154, in info
    info = ctx.obj["info"]
           ~~~~~~~^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/_cli/util.py", line 197, in __getitem__
    self.resolve()
  File "/usr/lib/python3/dist-packages/ykman/_cli/util.py", line 194, in resolve
    self._objects[k] = f()
                       ^^^
  File "/usr/lib/python3/dist-packages/ykman/_cli/__main__.py", line 314, in <lambda>
    ctx.obj.add_resolver("device", lambda: resolve()[0])
                                           ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/_cli/__main__.py", line 310, in resolve
    items = require_device(connections, device)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/ykman/_cli/__main__.py", line 170, in require_device
    raise CliFail("Failed to connect to YubiKey.")
ykman._cli.util.CliFail: Failed to connect to YubiKey.



-- System Information:
Debian Release: trixie/sid
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.10.7-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages yubikey-manager depends on:
ii  pcscd                 2.3.0-1
ii  python3               3.12.5-1
ii  python3-click         8.1.7-2
ii  python3-cryptography  42.0.5-2+b1
ii  python3-fido2         1.1.3-1
ii  python3-ykman         5.4.0-1

Versions of packages yubikey-manager recommends:
ii  libyubikey-udev  1.20.0-4

yubikey-manager suggests no packages.

-- no debconf information



More information about the Pkg-auth-maintainers mailing list