libfprint icon indicating copy to clipboard operation
libfprint copied to clipboard

validity-sensors-tools.initializer Fails to run - Exception: Unexpected TLS version 4 0

Open kingrex1997 opened this issue 2 years ago • 6 comments

apologies if this has already been answered I've been banging my head against this sensor for a few hours and need help.

when running the program this is the output I get

jmurphy@jmurphy:/tmp$ sudo validity-sensors-tools.initializer
Found device <DEVICE ID 138a:0097 on Bus 001 Address 004>
Downloading https://download.lenovo.com/pccbbs/mobiles/n1mgf03w.exe to extract 6_07f_lenovo_mis.xpfwext
Extracting "Synaptics Metallica MOC Touch Fingerprint Reader Driver for Windows 8.1 64-bit" - setup data version 5.5.0
 - "app/WBF_Drivers/6_07f_lenovo_mis.xpfwext"
Done.
Found firmware at /tmp/tmpabf89xou/app/WBF_Drivers/6_07f_lenovo_mis.xpfwext
The device will be now reset to factory and associated to the current laptop.
Press Enter to continue (or Ctrl+C to cancel)...
Opening device 0x97
Factory reset...
Sleeping...
Pairing the sensor with device 20JES0S700
Opening device 0x97
Initializing flash...
Detected Flash IC: AT25SF081, 1048576 bytes
Sleeping...
Try 1 failed with error: Failed: 04af
Opening device 0x97
Initializing flash...
Sleeping...
Try 2 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 3 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 4 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 5 failed with error: Unexpected TLS version 4 0
Device didn't reply in time...
Traceback (most recent call last):
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 339, in <module>
    vfs_tools.initialize(fwpath, args.calibration_data)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 249, in initialize
    self.pair(fwpath, calib_data)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 220, in pair
    self.retry_command(init_flash_command, max_retries=5)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 112, in retry_command
    raise(err)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 103, in retry_command
    command()
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 219, in init_flash_command
    init_flash()
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/init_flash.py", line 97, in init_flash
    partition_flash(flash_layout_hardcoded, client_public)
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/init_flash.py", line 70, in partition_flash
    info = get_flash_info()
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/flash.py", line 28, in get_flash_info
    rsp=tls.cmd(unhex('3e'))
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 104, in cmd
    rsp=self.app(cmd)
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 138, in app
    return self.parse_tls_response(self.usb.cmd(self.make_app_data(b)))
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 336, in parse_tls_response
    raise Exception('Unexpected TLS version %d %d' % (mj, mn))
Exception: Unexpected TLS version 4 0
jmurphy@jmurphy:/tmp$ 

here's the usb information, I'm on a Lenovo x1 yoga gen2

jmurphy@jmurphy:/tmp$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 138a:0097 Validity Sensors, Inc. 
Bus 001 Device 003: ID 13d3:5682 IMC Networks SunplusIT Integrated Camera
Bus 001 Device 005: ID 056a:50b8 Wacom Co., Ltd Pen and multitouch sensor
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
jmurphy@jmurphy:/tmp$ 

kingrex1997 avatar May 14 '22 03:05 kingrex1997

I have the same problem on a lenovo T470s running the latest Fedora.

I have the same fingerprint reader.

Were you able to find a fix?

Thanks

Darren.

tenjinsoftware avatar Jun 08 '22 10:06 tenjinsoftware

Yes, I have the same problem on a lenovo T470p with KUbuntu

Bus 001 Device 002: ID 138a:0097 Validity Sensors, Inc. 
Found device <DEVICE ID 138a:0097 on Bus 001 Address 002>
Downloading https://download.lenovo.com/pccbbs/mobiles/n1mgf03w.exe to extract 6_07f_lenovo_mis.xpfwext
Extracting "Synaptics Metallica MOC Touch Fingerprint Reader Driver for Windows 8.1 64-bit" - setup data version 5.5.0
 - "app/WBF_Drivers/6_07f_lenovo_mis.xpfwext"
Done.
Found firmware at /tmp/tmprrcgoxdz/app/WBF_Drivers/6_07f_lenovo_mis.xpfwext
The device will be now reset to factory and associated to the current laptop.
Press Enter to continue (or Ctrl+C to cancel)...
Opening device 0x97
Factory reset...
Sleeping...
Pairing the sensor with device 20J6003GRT
Opening device 0x97
Initializing flash...
Detected Flash IC: W25Q80B, 1048576 bytes
Sleeping...
Try 1 failed with error: Failed: 04af
Opening device 0x97
Initializing flash...
Sleeping...
Try 2 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 3 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 4 failed with error: Unexpected TLS version 4 0
Opening device 0x97
Initializing flash...
Sleeping...
Try 5 failed with error: Unexpected TLS version 4 0
Device didn't reply in time...
Traceback (most recent call last):
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 339, in <module>
    vfs_tools.initialize(fwpath, args.calibration_data)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 249, in initialize
    self.pair(fwpath, calib_data)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 220, in pair
    self.retry_command(init_flash_command, max_retries=5)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 112, in retry_command
    raise(err)
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 103, in retry_command
    command()
  File "/snap/validity-sensors-tools/65/vfs-tools/validity-sensors-tools.py", line 219, in init_flash_command
    init_flash()
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/init_flash.py", line 97, in init_flash
    partition_flash(flash_layout_hardcoded, client_public)
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/init_flash.py", line 70, in partition_flash
    info = get_flash_info()
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/flash.py", line 28, in get_flash_info
    rsp=tls.cmd(unhex('3e'))
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 104, in cmd
    rsp=self.app(cmd)
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 138, in app
    return self.parse_tls_response(self.usb.cmd(self.make_app_data(b)))
  File "/snap/validity-sensors-tools/65/vfs-tools/proto9x/tls.py", line 336, in parse_tls_response
    raise Exception('Unexpected TLS version %d %d' % (mj, mn))
Exception: Unexpected TLS version 4 0

deripas avatar Jul 29 '22 23:07 deripas

As workaround, I'm use https://github.com/uunicorn/python-validity with custom driver url:

$ sudo systemctl stop python3-validity
$ sudo validity-sensors-firmware --driver-uri https://download.lenovo.com/pccbbs/mobiles/n1mgf03w.exe
$ sudo python3 /usr/share/python-validity/playground/factory-reset.py

deripas avatar Jul 30 '22 08:07 deripas

$ sudo validity-sensors-firmware --driver-uri https://download.lenovo.com/pccbbs/mobiles/n1mgf03w.exe

This returns me with the following error:

Downloading https://download.lenovo.com/pccbbs/mobiles/n1mgf03w.exe to extract 6_07f_lenovo_mis_qm.xpfwext Traceback (most recent call last): File "/usr/bin/validity-sensors-firmware", line 101, in fwpath = download_and_extract_fw(dev_type, fwdir, fwuri=args.driver_uri) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/bin/validity-sensors-firmware", line 59, in download_and_extract_fw raise Exception('Hash mismatch for driver download! Expected {}, got {}'.format( Exception: Hash mismatch for driver download! Expected a4a4e6058b1ea8ab721953d2cfd775a1e7bc589863d160e5ebbb90344858f147d695103677a8df0b2de0c95345df108bda97196245b067f45630038fb7c807cd, got 53e6d9e72b79c6b7a10521508a1601c4decec7f642447736b9c5f08b8c3dafae8817caf0909598ed34c51c805bb698df6e4435e63c352e8002076becdd1b6c30

hatwearingdumb avatar Sep 24 '23 14:09 hatwearingdumb

@HatWearingMann the uunicorn/python-validity repo works since it uses open-fprintd instead of fprind, you don't need to install the firmware Just install the packages and you can do an enroll, however there is a warning for open-fprind on the readme https://github.com/uunicorn/open-fprintd#warning

markododa avatar Dec 22 '23 18:12 markododa

@markododa

sudo dnf install open-fprintd fprintd-clients fprintd-clients-pam python3-validity
Last metadata expiration check: 1:11:28 ago on Sub 20 Jan 2024 18:22:57.
Package fprintd-clients-1:1.94.2-2.fc39.x86_64 is already installed.
Package fprintd-clients-pam-1:1.94.2-2.fc39.x86_64 is already installed.
Error: 
 Problem 1: conflicting requests
  - nothing provides python(abi) = 3.11 needed by open-fprintd-0.6-7.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
 Problem 2: conflicting requests
  - nothing provides python(abi) = 3.11 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  - nothing provides python3.11dist(cryptography) >= 2.1.4 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  - nothing provides python3.11dist(pyusb) >= 1 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  - nothing provides python3.11dist(pyyaml) >= 3.12 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
(try to add '--skip-broken' to skip uninstallable packages)

PerpetualWar avatar Jan 20 '24 18:01 PerpetualWar