Commit graph

1220 commits

Author SHA1 Message Date
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
Daniel Drake
c1f8581ec9 Cleanup discover_device in examples
Andrei Tchijov pointed out that the discover_device() function is written
in a strange way.
2007-12-01 13:00:33 +00:00
Daniel Drake
3479dee0e4 aeslib: image assembly
All 3 authentec drivers now use a shared image assembly function.
2007-11-26 23:28:14 +00:00
Daniel Drake
e228f2c7da Introduce shared functions for authentec drivers
Currently provides register writing functionality only, more common ground
will be moved here soon.
2007-11-26 22:53:41 +00:00
Anthony Bretaudeau
8e0e8e4386 aes1610: imaging improvements
bz threshold is now 10 (instead of 15). I think it is ok for the moment.
If we manage to get higher image quality in the future, we'll change that.

max_frame is set to 350. 150 was too low => incomplete fingerprints

the driver was designed to stop the acquisition as soon as it gets a blank
frame (=> incomplete fingerprints). Now it waits to have at least 50 blank
frames before stopping.
2007-11-26 17:51:31 +00:00
Daniel Drake
4e2be56db7 v0.0.4 release 2007-11-22 18:00:15 +00:00
Daniel Drake
1ee6210be3 Hookup AES1610 driver
An oversight pointed out by Michele B.
2007-11-22 17:25:27 +00:00
Daniel Drake
69700855e2 Implement identification for imaging devices 2007-11-21 00:30:00 +00:00
Daniel Drake
3f70d6f794 Identification infrastructure 2007-11-20 22:12:24 +00:00
Daniel Drake
dbcd293ab3 v0.0.3 release 2007-11-19 18:41:03 +00:00
Anthony Bretaudeau
c5a550e42c Add Authentec AES1610 driver
This is an active capacitance swipe-type device similar to but smaller
than the AES2501.

Image processing performance is good but matching performance is not so
good. The bozorth3 matcher needs tweaking in order to better cope with
small sets of minutiae.

With a lowered threshold, matching performance is good enough for now.
2007-11-19 18:39:03 +00:00
Daniel Drake
6245acea84 Add API to delete enroll data 2007-11-19 18:29:26 +00:00
Daniel Drake
887e0e6acf Add API to access minutiae 2007-11-19 00:27:27 +00:00
Daniel Drake
fa742a2142 Use G_N_ELEMENTS macro 2007-11-17 23:47:06 +00:00
Daniel Drake
af945b2738 Version 0.0.2 2007-11-17 13:17:15 +00:00
Daniel Drake
fa24d51304 Fix variable get_img_width/height return value
Fix the functions to conform to the documentation: -1 means non-imaging
device, 0 means variable. Internally, -1 is used to represent variable
height (to be noticably different from the memset-imposed default of zero).
2007-11-17 13:17:15 +00:00
Daniel Drake
ba24c0884a Rework some image handling; add public binarization API
I want to offer the ability for an application to view a binarized
version of a scanned print. This lead onto a few changes:

 1. Store minutiae and binarized data inside fp_img
 2. Move resize code to the capture path, it previously happened much
    later.
 3. Add fp_img_binarize() to return a new image in binarized form.
 4. Add a BINARIZED_FORM flag to prevent an image being binarized again.

In future, it would be nice to be able to binarize without detecting
minutiae, but this involves some work on the NBIS interaction.
2007-11-17 12:51:28 +00:00