Bug 55351

Summary: DigitalPersona UareU 4500 support
Product: libfprint Reporter: Timo Teräs <timo.teras>
Component: libfprintAssignee: libfprint-bugs
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: patch adding the above mentioned support
patch

Description Timo Teräs 2012-09-26 10:52:01 UTC
Created attachment 67713 [details] [review]
patch adding the above mentioned support

Patch adding support for DigitalPersona UareU 4000B and 4500 devices using the image encryption.

Tested currently with:
USB ID 05ba:000a, hardware/firmware versions 0010 and 0115.

Should be tested with older devices to see I did not break anything - the whole "firmware patching" part is now removed as obsolete.

Other changes:
- deinit changed to just use proper off mode
- the state changing logic is now improved to be properly asynchronous (even on device stop)
- print device hardware/firmware versions during initialization
- image height increased with one - this is what the binary driver does; the image header contains meta-info which scan line is skipped, and it's now taken into account

Not implemented:
- AES based retrieval of the encryption key (seems to be unneeded; or could be oem specific thing)
- taking additional image in the "aux" mode (apparently to enhance the capture quality - not sure how to modify the image with it)
Comment 1 Bastien Nocera 2012-09-26 11:09:27 UTC
Comment on attachment 67713 [details] [review]
patch adding the above mentioned support

Review of attachment 67713 [details] [review]:
-----------------------------------------------------------------

No S-O-B in our commit messages.

The code looks fine, will have to test it out.

::: libfprint/fp_internal.h
@@ +28,4 @@
>  
>  #include <fprint.h>
>  
> +#define array_size(array) (sizeof(array) / sizeof(array[0]))

I would prefer array_n_elements() here
Comment 2 Bastien Nocera 2012-09-28 12:05:55 UTC
Seems to not break my URU4000. Is your patch missing the addition of new USB IDs?
Comment 3 Bastien Nocera 2012-09-28 12:06:55 UTC
Created attachment 67818 [details] [review]
patch
Comment 4 Timo Teräs 2012-09-28 13:12:19 UTC
(In reply to comment #2)
> Seems to not break my URU4000. Is your patch missing the addition of new USB
> IDs?

Possibly. However, I have a device sold as URU4500 for me, and it shows up with the old USB ID of 05ba:000a. I think the 4000B/4500 share the IDs and can be distinguished only by using the firmware/hardware versions numbers. Sounds to me the only real change in 4500 is that they made the firmware modification not doable.
Comment 5 Bastien Nocera 2012-11-05 17:40:20 UTC
commit d003f08855ba34be88775e4281e7f686b00f6d2f
Author: Timo Teräs <timo.teras@iki.fi>
Date:   Wed Sep 26 13:41:13 2012 +0300

    lib: Add support for DigitalPersona URU4500
    
    By adding native encryption support, rather than poking at
    the firmware to disable it.
    
    This also makes the URU4000B use native encryption.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=55351

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.