Commit graph

236 commits

Author SHA1 Message Date
Daniel Drake
3915cb2622 Add upeksonly driver for UPEK TouchStrip sensor-only devices
The long awaited 147e:2016 reverse engineering efforts.
Image quality is OK, not brilliant - a little fuzzy, but it works
quite well.
2008-07-09 03:25:09 +01:00
Daniel Drake
59c62c7d74 Update for libusb-0.9.1 2008-07-02 23:27:37 -05:00
Daniel Drake
e1691a29dd update for new libusb_open API 2008-06-15 10:54:07 -05:00
Vasily Khoruzhick
aa7c8ae81e Adapting to latest libusb-1.0 changes
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
[dsd: remove config const qualifier and add freeing of config]
2008-05-13 18:17:37 +01:00
Daniel Drake
63421e3fd6 uru4000: fix compile against latest libusb 2008-05-07 23:46:06 +01:00
Daniel Drake
76cbf21223 uru4000: Add support for Digital Persona U.are.U Fingerprint Keyboard
Reported by Tudor Panaitescu
2008-05-02 11:55:50 +01:00
Daniel Drake
f540ae5d5b Fix memory leak in fpi_print_data_new()
Pointed out by Krystian (yoB) on FS#24
2008-04-19 23:12:42 +01:00
Daniel Drake
ebcabc1ade uru4000: avoid cancelling a completed transfer 2008-04-12 16:58:49 +01:00
Daniel Drake
870ddfb905 some libusb pointers are now const 2008-04-06 23:55:41 +01:00
Vasily Khoruzhick
40e7ac195a Adapting to latest libusb
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
2008-04-06 23:52:04 +01:00
Azzie
1ab52617c7 Update for latest libusb constant names 2008-03-29 18:11:17 +00:00
Daniel Drake
981f2eb0aa vcom5s: implement finger detection
Uses thresholding of average pixel intensity of the center region of
the image.

Also document guessed meanings of magic numbers for registers.
2008-03-20 15:31:03 +00:00
Daniel Drake
d6d4e56ccf uru4000: add fwenc search location for UareU4000
ticket #14 includes a device with a different firmware, this should get
it up and running.
2008-03-20 13:34:48 +00:00
Daniel Drake
d12ad6dea9 Update version number
I'm about to do another 0.0 release, so change the tag in this branch to
avoid confusion
2008-03-20 13:19:44 +00:00
Daniel Drake
c9ff2c5541 Add Veridicom 5th Sense driver
Based on bus traffic analysis of the windows driver. This device is
working well, but finger presence detection is not yet implemented.
2008-03-19 23:52:28 +00:00
Daniel Drake
617ca8cd15 fix imaging action state for repeated enroll attempts
Enroll attempts may retry in some situations, so we need to reset the
state to accept more scans.
2008-03-19 23:28:44 +00:00
Daniel Drake
a11ac7d8f8 uru4000: search for encryption byte
New DigitalPersona devices have a new firmware. We now use a search
scheme to find the encryption byte, by examining known locations
in the firmware until we find something that we recognise.
2008-03-19 17:56:21 +00:00
Daniel Drake
fb49c24ae2 uru4000: Unify register I/O 2008-03-19 17:56:13 +00:00
Daniel Drake
d3d68be490 uru4000: fix register widths
Encryption byte address was being truncated in the sm_fix_fw_read_cb
path
2008-03-19 17:56:08 +00:00
Daniel Drake
156e5e7d7c Update for new libusb_get_pollfds API 2008-03-13 12:54:27 +00:00
Daniel Drake
f546fa2555 Fix synchronous enrollment for multi-stage devices 2008-03-10 13:33:32 +00:00
Daniel Drake
4e884807a7 Update for libusb API rework 2008-03-10 13:33:23 +00:00
Daniel Drake
81a5d6d966 Only use -fgnu89-inline when supported
This only works for GCC 4.3 and newer. GCC 4.2 and older already have
the semantics introduced by using this argument.
2008-03-07 00:11:56 +00:00
Vasily Khoruzhick
647d140834 Fixed fp_identify_finger_img didn't return result of operation
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
2008-03-05 21:45:02 +00:00
Daniel Drake
07a42d5f91 uru4000: Retry initialization 3 times
Sometimes we don't get the powerup interrupt, so retry the whole process
up to 3 times if we time out waiting for the interrupt.
2008-03-03 23:29:03 +00:00
Daniel Drake
2d27df0268 Allow timeouts to be cancelled 2008-03-03 23:28:17 +00:00
Daniel Drake
c29c3fa014 Fix low minutiae handling
Fixes a crash and adds in a missing break statement
2008-03-03 13:48:33 +00:00
Daniel Drake
b167dd02fc Add API to determine next timeout 2008-03-01 13:02:20 +00:00
Daniel Drake
3ea28e334d Provide access to fd set
Includes notifications when the set changes.
2008-03-01 13:02:20 +00:00
Daniel Drake
88e9f4a5f8 Public async API implementation
Involved some internal overhaul/reorganisation. Nice side effect is that
the synchronous API is now expressed purely in terms of the public async
API.
2008-03-01 13:02:17 +00:00
Daniel Drake
83f9da1b87 uru4000: port to asynchronous model 2008-02-18 18:12:52 +00:00
Daniel Drake
754e56aec1 Allow execution of sub-SSMs
A subssm will be executed, and upon completion the parent state machine
will either be advanced to the next state or aborted with error, depending
on the outcome of the subssm.

Also add some debug messages.
2008-02-18 17:55:35 +00:00
Daniel Drake
b8dc77b56e Fix verify/identify error handling
If verify_start failed, we need to run verify_stop. Same for
identification.
2008-02-18 17:55:35 +00:00
Daniel Drake
866dd941cc Add timing and polling infrastructure
Add timeout mechanism as an asynchronous equivalent of sleeping (uru4000
needs this).

Start implementing polling infrastructure which also accounts for pending
timeouts. We don't expose file descriptors yet, but this is a start.
2008-02-16 12:50:01 +00:00
Daniel Drake
eff26bf0be aes2501: port to asynchronous model 2008-02-16 12:49:58 +00:00
Daniel Drake
0aaffcee33 Allow jumping to arbitrary state in a SSM
This is looking less and less like a simple state machine now, but it's
proving a useful model!
2008-02-16 12:49:37 +00:00
Daniel Drake
77b5dab04b aeslib: introduce user_data for write registers callback
aes2501 needs this for state tracking
2008-02-16 12:49:27 +00:00
Daniel Drake
6f08a3666d aeslib: fix register write boundaries 2008-02-16 12:49:20 +00:00
Daniel Drake
d914712437 aes4000: port to asynchronous model 2008-02-16 12:49:17 +00:00
Daniel Drake
d731d5f3a3 aeslib: port to asynchronous model 2008-02-16 12:49:02 +00:00
Daniel Drake
3048b37176 Port imaging layer to asynchronous model 2008-02-16 12:48:44 +00:00
Daniel Drake
aeeec97fb2 upekts: port to asynchronous model 2008-02-16 12:48:25 +00:00
Daniel Drake
5b1f6a0df7 Port primitive driver layer to asynchronous model 2008-02-16 12:47:56 +00:00
Daniel Drake
69760547df Disable all drivers while internal API is being reworked 2008-01-30 14:17:08 +00:00
Daniel Drake
bf7093d607 Port to libusb-0.9.0 (synchronous I/O)
Straightforward port to libusb-0.9.0 sync I/O functions, to give libusb-1.0
a bit of a test drive and to create a reference point for later.
2008-01-30 14:16:35 +00:00
Gustavo Chain
6f456f399d Add Secugen FDU2000 driver
[dsd@gentoo.org: some trivial changes:
fixed some warnings
fixed fp_img memory leak on error
renamed endpoint constants (calling a bulk endpoint 'ctrl' is confusing,
as a control endpoint is something different)
]
2007-12-27 01:09:32 +00:00
Daniel Drake
659d8346be Compiler flags update
Dropped -Wextra as it is not that useful.
Set compiler flags to be more like the kernel's.
Set std=gnu99
Fixed some warnings.
2007-12-27 01:06:55 +00:00
Daniel Drake
c8aa33da0b v0.0.5 release 2007-12-07 15:07:07 +00:00
Daniel Drake
642010643d uru4000: Add support for Microsoft Fingerprint Reader v2
After lot 713, Microsoft fingerprint readers changed. The new version
comes with a new USB product ID and a challenge-response authentication
scheme where the device challenges the authenticity of the driver.

An independent third party produced documentation on the computations
needed to convert a challenge into the correct response, and I then used
this documentation to produce a clean-room reimplementation of the
authentication scheme.
2007-12-07 15:05:16 +00:00
Daniel Drake
474da5f2c7 Add a disclaimer for the university 2007-12-07 15:05:13 +00:00