Comment 0 for bug 1956885

Revision history for this message
Loic Yhuel (lyhuel) wrote : Incorrect verify implementation, unable to verify one one finger

The closed-source library blocks on synchronous USB transfers in its "verify" method (at least, there might be others with the same issue).
The "identify" one is correct (asynchronous).

As a result :
$ fprintd-verify
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
(finger pressed)
Verify started!
Verifying: right-index-finger
(blocked)

"Verify started!" should happen immediately, but the code libfprint code waits for fp_device_verify to return, which only happens when the finger is pressed with this driver.
The verify success message is sent during the call, so it is ignored.

"fprintd-verify -f any" and pam-fprintd use fp_device_identify, so they work correctly.
But with https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/fc65055279 (so I suppose on jammy), the "verify" method will be used instead if only one finger is enrolled.

TL,DR: the fingerprint reader appears to mostly work on focal, but starting with jammy it won't unless at least two fingers are enrolled.