solokeys / solo1-cli

Solo 1 library and CLI in Python
https://pypi.org/project/solo-python
Apache License 2.0
185 stars 69 forks source link

Catch missing /sys/class/hidraw #23

Open nickray opened 5 years ago

nickray commented 5 years ago

If you had not hidraw devices attached sinced boot, the directory /sys/class/hidraw may be missing. The fido2 library complains with

  File "/home/nicolas/.local/lib/python3.7/site-packages/solo/cli/__init__.py", line 129, in ls
    solos = solo.client.find_all()
  File "/home/nicolas/.local/lib/python3.7/site-packages/solo/client.py", line 52, in find_all
    hid_devices = list(CtapHidDevice.list_devices())
  File "/usr/lib/python3.7/site-packages/fido2/hid.py", line 136, in list_devices
    for d in hidtransport.hid.Enumerate():
  File "/usr/lib/python3.7/site-packages/fido2/_pyu2f/linux.py", line 183, in Enumerate
    for hidraw in os.listdir('/sys/class/hidraw'):
FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/hidraw

We should catch this.

197788 commented 2 years ago

Happened to me too.

If you had not hidraw devices attached sinced boot, the directory /sys/class/hidraw may be missing. The fido2 library complains with

  File "/home/nicolas/.local/lib/python3.7/site-packages/solo/cli/__init__.py", line 129, in ls
    solos = solo.client.find_all()
  File "/home/nicolas/.local/lib/python3.7/site-packages/solo/client.py", line 52, in find_all
    hid_devices = list(CtapHidDevice.list_devices())
  File "/usr/lib/python3.7/site-packages/fido2/hid.py", line 136, in list_devices
    for d in hidtransport.hid.Enumerate():
  File "/usr/lib/python3.7/site-packages/fido2/_pyu2f/linux.py", line 183, in Enumerate
    for hidraw in os.listdir('/sys/class/hidraw'):
FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/hidraw

We should catch this.