Commit graph

517 commits

Author SHA1 Message Date
Bastien Nocera d15282bff1 lib: Remove minutiae utils from internal header
It's only used by drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera 00637c4f0b lib: Remove fprint_get_drivers() from drivers API
Drivers don't need to get a list of drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera 2e035a7f45 lib: Make fpi_ssm opaque for drivers
We shouldn't access fpi_ssm struct fields directly in drivers, so add
accessor and setter functions for the common uses.
2018-05-29 13:34:18 +02:00
Bastien Nocera 17577175f8 lib: Remove fpi_driver_to_img_driver() from drivers API
It's only used internally to the library.
2018-05-29 13:34:18 +02:00
Bastien Nocera 933fab6ed4 lib: Remove array_n_elements() from internal header
It's unused.
2018-05-29 13:34:18 +02:00
Bastien Nocera 7e5661caff lib: Don't include assembling.h in internal header
It's not needed.
2018-05-29 13:34:18 +02:00
Bastien Nocera 19dfb138a6 drivers: Use new drivers_api.h in drivers 2018-05-29 13:34:18 +02:00
Bastien Nocera 0930f2614c lib: Use public header in helper files
aeslib.h and assembling.h don't need access to internal data structures,
so make them include the public fprint.h rather than the internal header
fp_internal.h.
2018-05-29 13:34:18 +02:00
Bastien Nocera 1b20521e5c lib: Add drivers_api.h file
This will hide library internals, for the purpose of making the drivers
API documentable.
2018-05-29 13:34:18 +02:00
Bastien Nocera 0e351db91a lib: Fix new BUG_ON() implementation again
This time, the macro didn't wrap the condition, resulting in calls
like BUG_ON(size > 100) being expanded to g_assert(!size > 100), when
what we wanted was BUG_ON(!(size > 100)).

See 9cca501650,
ff09456cf5, and egg on my face.
2018-05-25 17:38:40 +02:00
Bastien Nocera 9cca501650 lib: Fix new BUG_ON() implementation
A thinko reversed the meaning of the BUG_ON() condition. This fixes
the inverted implementation in commit
ff09456cf5.
2018-05-25 16:12:29 +02:00
Bastien Nocera 2481cbe4ab poll: Add some details about how mainloop integration works 2018-05-25 15:58:29 +02:00
Bastien Nocera bc3959d1e0 lib: Fix internal deprecation warning
Remove deprecation warning that comes from an internal function, it
serves no purpose, and the function itself is deprecated.

Follow-up from commit 1f0079a274.
2018-05-25 13:45:13 +02:00
Bastien Nocera 55b83062d0 img: Fix fd leaks
Spotted by maddin200@aol.com

https://bugs.freedesktop.org/show_bug.cgi?id=90197
2018-05-25 13:30:35 +02:00
Mark Harfouche 391f77ce5e aes1610: Fix compilation warning in aes1610
Fixes:
drivers/aes1610.c:736:34: warning: ‘stop_reader’ defined but not used [-Wunused-const-variable=]

https://bugs.freedesktop.org/show_bug.cgi?id=105429
2018-05-25 13:21:17 +02:00
Bastien Nocera bc30a3d2e5 aes2501: Fix state machine never using "init_3" state
This fixes this warning by the same token:
drivers/aes2501.c:671:34: warning: ‘init_3’ defined but not used [-Wunused-const-variable=]

https://bugs.freedesktop.org/show_bug.cgi?id=105429
2018-05-25 13:21:17 +02:00
Bastien Nocera ff5de4ff03 lib: Replace open-coded array_n_elements()
Replace it with glib's version, which already exists.

https://bugs.freedesktop.org/show_bug.cgi?id=106280
2018-05-25 13:20:34 +02:00
Bastien Nocera f433a4d67c upekts: Fix compilation warning
libfprint/drivers/upekts.c: In function ‘alloc_send_cmd_transfer’:
libfprint/drivers/upekts.c:161:2: warning: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation]
  strncpy(buf, "Ciao", 4);
  ^~~~~~~~~~~~~~~~~~~~~~~

Replace with memcpy() to only copy the 4 bytes we need.

https://bugs.freedesktop.org/show_bug.cgi?id=106281
2018-05-25 13:19:31 +02:00
Bastien Nocera 994061af44 drivers: Simplify headers
Remove all the headers already included through "fp_internal.h" such as
<libusb.h> and <errno.h>, include "assembling.h" and "driver_ids.h" there
as well to avoid doing it in (almost) every driver.
2018-05-24 17:02:15 +02:00
Bastien Nocera 501020921e vfs301_proto: Use GLib helpers
No need to roll out own min() implementation, or use the bare assert().
2018-05-24 17:00:17 +02:00
Bastien Nocera 53c09405b2 etes603: Use GLib's g_assert()
Instead of requiring assert.h to be included.
2018-05-24 16:57:14 +02:00
Bastien Nocera 1f0079a274 data: Mark all the fp_dscv_print functions as deprecated
As this is pretty much copy/pasted in fprintd, and should instead be
implemented by whatever system actually stores the data, rather than
in a generic but not quite "fits-all-purpose" way.

https://bugs.freedesktop.org/show_bug.cgi?id=106550
2018-05-24 13:21:40 +02:00
Bastien Nocera eb8f7ba3b2 lib: Mark fp_set_debug() as deprecated
As per the documentation.
2018-05-24 12:42:18 +02:00
Bastien Nocera 901a6f7fed lib: Add macro for deprecated functions 2018-05-24 12:41:35 +02:00
Bastien Nocera fc92f62136 build: Remove the need to modify sources for new drivers
Instead of having to modify both fp_internal.h to list each driver
definition structure, and core.c to add those drivers to arrays we
can loop over, generate both of those using meson.
2018-05-24 12:23:39 +02:00
Bastien Nocera ff09456cf5 lib: Use g_assert* to implement BUG() and BUG_ON() assertions 2018-05-23 19:14:33 +02:00
Bastien Nocera 32fcfde86b lib: Use GLib and libusb directly for debug output
Use GLib internally to output debug information, and tell about
libusb's LIBUSB_DEBUG envvar for libusb debug.

fp_set_debug() is now a no-op.

https://bugs.freedesktop.org/show_bug.cgi?id=106552
2018-05-23 19:13:08 +02:00
Bastien Nocera 363a1b3371 lib: Replace empty fp_dbg() calls
GLib won't like them, so use G_DEBUG_HERE() instead.
2018-05-23 19:11:07 +02:00
Bastien Nocera c376c6fb02 lib: Fix type mismatch warnings in debug output 2018-05-23 19:11:05 +02:00
Bastien Nocera 8e6e23b8d0 build: Always enable debugging logging
We shouldn't need to specifically enable debug logging to get useful
data out of a compiled libfprint either, so always enable debugging
output. It will still be switched off at runtime, by default.
2018-05-23 19:11:02 +02:00
Bastien Nocera 63e5d56441 build: Always allow switching log level at runtime
There are no parts of libfprint that are so resource intensive that we'd
want to disable logging. This avoids (hopefully rare) cases where
compiled versions of libfprint are distributed with logging completely
disabled, and thus can't be debugged.
2018-05-23 19:10:58 +02:00
Bastien Nocera e9bfd943fc docs: Mark a few FP_VERIFY_MATCH as constant
Add "%" prefix to mark it as a constant in the docs.
2018-05-23 15:18:34 +02:00
Bastien Nocera 614e2286c2 docs: Fix typo in fp_enroll_finger_img() API docs
Missing ":" after argument name.
2018-05-23 15:18:34 +02:00
Bastien Nocera 768a74c4bf docs: Remove transfer information from fp_dev_open()
There's no GObject usage in the public API.
2018-05-23 15:18:34 +02:00
Bastien Nocera 612e9e11de docs: Document async function callbacks 2018-05-23 15:18:34 +02:00
Bastien Nocera 06c72d54be poll: Add missing API docs for polling functions 2018-05-23 15:18:34 +02:00
Bastien Nocera be68bacc94 lib: Merge two other async callback types
Merge fp_capture_cb and fp_verify_cb.

https://bugs.freedesktop.org/show_bug.cgi?id=106551
2018-05-23 15:18:34 +02:00
Bastien Nocera 317d7bc988 lib: Simplify fp_*_stop_cb callback definitions
They're all the same, so merge them into a single fp_operation_stop_cb.

https://bugs.freedesktop.org/show_bug.cgi?id=106551
2018-05-23 13:39:10 +02:00
Bastien Nocera b44e417bca docs: Fix '\sa' doxygen references 2018-05-23 13:39:10 +02:00
Bastien Nocera 9d67ce484d lib: Make inline functions real functions
Otherwise they will not be parsed by gtk-doc and documented.
2018-05-23 13:39:10 +02:00
Bastien Nocera 78b8602cf6 lib: Make fp_minutia an opaque structure
Nothing uses the elements of the structure, so make it opaque.
2018-05-23 13:39:10 +02:00
Bastien Nocera 83a0a7681b img: Make fpi_img_detect_minutiae() static
It's unused outside img.c, so mark it as static.
2018-05-23 13:39:10 +02:00
Bastien Nocera c5e0e41ce7 docs: Add documentation for opaque structures 2018-05-23 13:39:00 +02:00
Bastien Nocera b3fe4a1e91 docs: Update API documentation
Fixes to layout, dead links, typography, and more.

Thanks to Benjamin Berg <bberg@redhat.com> for the thorough review
2018-05-18 05:51:58 +02:00
Bastien Nocera 231b8f9f92 doc: Port from Doxygen to gtk-doc
Split the introduction into separate chapters, add filler documentation
for async functions, fix mismatched function arguments.
2018-05-17 17:39:51 +02:00
Bastien Nocera dac153d24a build: Port to meson
And remove the autotools. Faster, cleaner.

https://bugs.freedesktop.org/show_bug.cgi?id=106514
2018-05-15 10:46:54 +02:00
Bastien Nocera 3661d146a7 drivers: Remove UPEKE2 driver
The device is already handled by upektc_img driver, and its sources
still exist in git if needed.

https://bugs.freedesktop.org/show_bug.cgi?id=106514
2018-05-15 10:46:54 +02:00
Mark Harfouche 54deaa1b24 mindtct: Fix compilation warnings
nbis/mindtct/morph.c:152:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
nbis/mindtct/morph.c:176:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
nbis/mindtct/morph.c:200:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
nbis/mindtct/morph.c:222:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]

https://bugs.freedesktop.org/show_bug.cgi?id=105429
2018-03-11 22:43:04 +01:00
Mark Harfouche 58ba9b02ed lib: Fix memory leak patch in device discovery
libusb_free_device_list() needs to be called on the list of USB devices
obtained through libusb_get_device_list() or the list and its elements
will be leaked.

https://bugs.freedesktop.org/show_bug.cgi?id=105427
2018-03-11 13:43:58 +01:00
Hans de Goede d35da0ce99 fprint-list-udev-rules: Add some unsupported Validity Sensors readers to the whitelist 2017-12-12 10:51:43 +01:00
Hans de Goede 041e6a1078 fprint-list-udev-rules: Add some unsupported Elantech readers to the whitelist 2017-12-12 10:51:43 +01:00
Hans de Goede 1c73c36ed7 fprint-list-udev-rules: Remove white-list entries which have a driver now
Remove 2 entries from the whitelist for finger-print models for which
we have a driver now, so they no longer need to be on the whitelist.
2017-12-12 10:51:43 +01:00
Anton Eliasson 69de32f700 vfs5011: Don't submit an image if there was an error capturing it 2017-12-03 13:12:53 -08:00
Alan Davidson 4bfee76ead Fix security hole: zero out memory when allocated 2017-12-03 13:11:48 -08:00
Vasily Khoruzhick 4d7afd9b4f uru4k: increase threshold to detect encryption
Otherwise we get false positives on devices without encryption
2017-12-03 13:10:13 -08:00
Igor Filatov cfe60c0640 Add Elan driver 2017-12-03 21:17:26 +02:00
Vasily Khoruzhick 5a7e6e07ff etes603: fix compilation error caused by a0bbbd7d3 2016-11-07 08:10:44 -08:00
Vasily Khoruzhick 2162aa9f48 uru4k: decrypt image if necessary
Add naive detection of image encryption: if stddev between two
adjacent rows is higher than threshold assume that image is encrypted
and decrypt it.

Fixes fd.o bug 88945
2016-11-05 20:58:18 -07:00
Vasily Khoruzhick a1f36c71c9 upeksonly: decrease bz3_threshold for 147e:1001
Its width is only 216 pixels, and it appears not to be enough for matching at
default threshold.
2016-11-05 20:58:18 -07:00
Vasily Khoruzhick e4eedef27e upeksonly: use fpi_std_sq_dev() and fpi_mean_sq_diff_norm()
Use fpi_mean_sq_diff_norm() for blank line detection and
fpi_mean_sq_diff_norm() for duplicate line detection.
Fixes finger presence and removal detection.
2016-11-05 20:58:18 -07:00
Vasily Khoruzhick 5e29695969 lib: move some functions from vfs5011.c into img.c 2016-11-05 20:58:18 -07:00
Konstantin Semenov 49a46668ad lib: Add VFS0050 driver
New driver for 138a:0050 device

https://bugs.freedesktop.org/show_bug.cgi?id=91616
2016-11-05 20:58:18 -07:00
Bastien Nocera 76269decdd aes4000: Fix possible crash if USB init fails
The code was indented, but only the first call was actually in the
conditional, which meant that initialisation carried on as normal on top
of a failed USB device. Exit early and remove the conditional to fix
this.

https://bugzilla.gnome.org/show_bug.cgi?id=98594
2016-11-05 00:13:51 +01:00
Bastien Nocera 8454a25ecf aes3500: Fix possible crash if USB init fails
The code was indented, but only the first call was actually in the
conditional, which meant that initialisation carried on as normal on top
of a failed USB device. Exit early and remove the conditional to fix
this.
2016-11-05 00:11:30 +01:00
Bastien Nocera a0bbbd7d32 drivers: Print USB error when libusb_claim_interface() fails
https://bugs.freedesktop.org/show_bug.cgi?id=98594
2016-11-05 00:10:17 +01:00
Bastien Nocera 487dae0d2f Work-around kernel's lack of USB PM
The device is already supported by the vfs5011 driver and non-
blacklisted, so will show up in the udev rules, but for ease of
backporting to older versions, add it to the whitelist anyway.

https://bugzilla.redhat.com/show_bug.cgi?id=1173367
2016-04-12 16:39:39 +02:00
Vasily Khoruzhick d71018bd8f vfs5011: add USB IDs of device found in some Toshiba laptops 2015-12-16 13:24:39 -08:00
Vasily Khoruzhick 61fa57b05d aes1610: decrease bz3_threshold to 20 2015-12-16 13:24:39 -08:00
Volkau Siarhei fc1781e317 vfs101: fix broken enrolling by prev commit to vfs101.c 2015-12-16 13:24:39 -08:00
Vasily Khoruzhick ffef6c2bcc vfs5011: add proper dev_deactivate() support
Driver is not able to cancel imaging process without this change
2015-12-16 13:24:39 -08:00
Vasily Khoruzhick 67d29f7936 aes1610: improve gain settings 2015-12-16 13:24:39 -08:00
Vasily Khoruzhick 9437c98d54 lib: frame assembling: flip image for non-reverse direction
It was here for aes2501 and aes1610 before moving assembling routines
into common code.
2015-12-16 13:24:39 -08:00
Vasily Khoruzhick f7d00a828d lib: use normalized error to make decision about movement direction
Height is not a good determinant in movement direction, normalized
error is much better. Should fix aes1610 and aes2501 driver issues.
2015-12-16 13:24:39 -08:00
Vasily Khoruzhick 0f0a4b2da6 aes2660: set partial flag on an image
Set partial flag to remove false minutiae at the perimeter of a scan
2015-12-16 13:24:39 -08:00
Vasily Khoruzhick c9cdbaf880 aes2550: set partial flag on an image
Set partial flag to remove false minutiae at the perimeter of a scan
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 83f29dad9f aes2501: set partial flag on an image
Set partial flag to remove false minutiae at the perimeter of a scan
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick c2a11c5918 aes1610: set partial flag on an image
Set partial flag to remove false minutiae at the perimeter of a scan
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 3746b2ad5c upeksonly: use line assembling routines to account variable swiping speed 2015-12-16 13:24:38 -08:00
Vasily Khoruzhick b51fa446e3 lib: move line assembling routines out of vfs5011 into common code 2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 6fc5293e83 upeksonly: add support for 147e:1001 device 2015-12-16 13:24:38 -08:00
Vasily Khoruzhick aab3daa28b upeksonly: move regwrite sequences into a header 2015-12-16 13:24:38 -08:00
Vasily Khoruzhick e40f7bd1f7 lib: move frame assembling routines into a separate file and make them usable by non-aes drivers
Frame assembling routines are not aes-specific, so move them into a separate file
and add an accessor for peeking a pixel.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 6664f87d8f aes1610: fix memory corruption introduced by a457658f1b 2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 6e8d5cd6a1 vfs5011: do duplicate line search for 30 lines
It seems that on faster devices, the driver can get more duplicate lines.
Without this change scan looks too stretched.

Suggested by: Thomas Rinsma <thomasrinsma@gmail.com>
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 9f7e1ecf40 vfs5011: make '5 scans per enroll' work with this driver
Restart scan if core did not ask to terminate it explicitly.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick d9567002e4 imgdev: reset action_result after reporting it
Otherwise we end up in reporting the same result on next iteration.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick a656a4a9f3 upektc_img: Handle scan status reported by sensor properly
Sensor can report "short scan" or "finger not centered" instead of image,
so it's necessary to handle them gracefully.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 2944a35e74 imgdev: Add fpi_imgdev_abort_scan() to abort scan gracefully from within the driver.
Smart sensors like Upek TouchChip Coprocessor can provide scan status instead
of image, as result we need to report such status as "short scan" or "finger not centered"
from within the driver, since it's not a session error.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 391373fb0c upektc_img: Fix copy/paste error
Replace upekts_img with upektc_img
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 985e8c4577 aes1660: set partial flag on an image
Sensor width seems to be only 128 pixels and that's not enough
for scanning whole finger surface. Lower bz3_threshold to 25,
since for wrong finger score never goes above 10, but sometimes
for right finger score is below 40.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick bd0d4258e4 upektc_img: set partial flag on an image
Sensor width seems to be only 128 pixels and that's not enough
for scanning whole finger surface. Lower bz3_threshold to 20,
since for wrong fingerprint score never goes above 10, but sometimes
for right finger score is below 40.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 9bbd9b208a lib: add partial image flag
And activate perimeter points removal if this flag is set.
2015-12-16 13:24:38 -08:00
Vasily Khoruzhick 59fe0fb699 nbis: add one more step of false minutia removal
Remove minutiae that are located on scan perimeter
2015-12-16 13:24:38 -08:00
Bastien Nocera f1fdd71613 rules: Add driver name to the USB properties
Makes it easier to see which driver is being used.
2015-03-15 23:13:08 +01:00
Carlos Olmedo Escobar 45fb6d7908 vfs101: Logical conjunction always evaluates to false. 2015-02-09 12:47:22 +01:00
Timo Teräs 9f408bf51b imgdev: fix enum mismatch for dev_change_state() call
This bug has existed long time, but it was uncovered by commit
e215b05094 which enabled multiple enrollment rounds.

In practice this broke (at least) URU4000 driver state machine
causing it to enter indefinite loop - due to the invalid state
change callback.

Patch originally posted at:
http://lists.freedesktop.org/archives/fprint/2014-June/000603.html

Test and verification results:
http://lists.freedesktop.org/archives/fprint/2014-June/000607.html

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2015-02-03 18:26:33 +01:00
Vasily Khoruzhick a3c90f2b24 upektc_img: handle 0x28 message better 2015-01-31 13:19:24 +03:00
Arseniy Lartsev dc537ef2c9 lib: Add VFS5011 driver
New driver for VFS5011 138a:0011 and 138a:0018

https://bugs.freedesktop.org/show_bug.cgi?id=61692

[vasilykh]:
	- use g_get_real_time() instead of non-portable time()
	- use g_free() instead of free()
	- comment out "RECV(VFS5011_IN_ENDPOINT_CTRL2, 8)"
2015-01-31 13:19:11 +03:00
Vasily Khoruzhick 061a457658 aeslib: improve frame-assembling routines
Some scanners provide hardware assistance in frame assemling, i.e.
horizontal and vertical offset to previous frame is provided. This
commit improves code to utilise that assistance. Sensors without
hardware assistance will use software algorithm, which was also
improved to do search in horizontal direction.
2015-01-31 13:18:23 +03:00
Vasily Khoruzhick 82ae7c1c09 aesx660: fix spelling of define name 2015-01-31 13:18:23 +03:00
Rex Dieter 79d79c3c87 lib: Test before applying power saving udev rules
add TEST=="power/control"... to test for the presence of the file
before setting it.

See https://bugzilla.redhat.com/show_bug.cgi?id=950205

https://bugs.freedesktop.org/show_bug.cgi?id=87414
2015-01-28 16:28:57 +01:00
Vasily Khoruzhick 948ab02d1a lib: use pixman for imaging utils
pixman is very lightweight library for pixel manipulation, and it
has no dependencies except glibc, so using it instead of gdkpixbuf/imagemagick
makes list for libfprint dependencies a bit shorter.
2013-08-19 11:13:50 +03:00
Patrick Marlier a6101026d2 Add EgisTec ES603 driver
This driver handles EgisTec ES603 device, ID 1c7a:0603
2013-08-19 11:13:50 +03:00
Vasily Khoruzhick e0966cb20f vfs101: drop nr_enroll_stages override
Imaging drivers aren't allowed to change number of enroll stages anymore,
all that imaging driver does is providing image to the upper layer.
Upper layer decides if it needs more scans.
2013-08-19 11:13:49 +03:00
Vasily Khoruzhick e278e8321c vfs301: drop nr_enroll_stages override
Imaging drivers aren't allowed to change number of enroll stages anymore,
all that imaging driver does is providing image to the upper layer.
Upper layer decides if it needs more scans.
2013-08-19 11:13:49 +03:00
Vasily Khoruzhick e1728e7c25 aes1660: remove unneeded lowering of bz3_threshold
Since 5 scans for enroll was introduced it's not necessary to lower
bz3_threshold anymore, there's a good probability that scan to verify matches
with at least one enrolled sample.
2013-08-19 11:13:49 +03:00
Vasily Khoruzhick e215b05094 imgdev: perform 5 scans for enrollment
This feature dramatically improves matching rate on devices with small
sensors.
2013-08-19 11:13:49 +03:00
Vasily Khoruzhick 5ff45658c0 upektc_img: add support for Upek Eikon 2 devices 2013-08-19 11:13:49 +03:00
Vasily Khoruzhick d12b294783 Add upektc_img driver
Imaging driver, handles UPEK 147e:2020 device
2013-08-19 11:13:49 +03:00
Vasily Khoruzhick 2bba4fb073 Implement image capture (both synchronous and asynchronous variants)
fp_dev_img_capture() is not implemented and returns -ENOTSUPP for all devices
since migration to asynchronous model. This commit implement missing functionality
2013-08-12 11:18:18 +03:00
Juvenn Woo aeca32fc12 aes3k: add aes3500 driver
This driver supports AES3500 device (08ff:5731) and utilizes common routines from
AES4000.
2013-08-12 11:18:18 +03:00
Juvenn Woo 12c1088777 aes3k: extract common routines aes3k from aes4000
AES3500 and AES4000 are pretty similar devices, have same
command send, the only difference is in image size and init sequence.
Extract common routines from AES4K to be used later in AES3500 driver

https://bugs.freedesktop.org/show_bug.cgi?id=64351
2013-08-12 11:18:18 +03:00
Bastien Nocera c14ebd8b63 Add MS keyboard to the suspend blacklist
045e:00bb isn't a stand-alone fingerprint reader, but a keyboard
with a reader integrated.

https://bugs.freedesktop.org/show_bug.cgi?id=66659
2013-07-25 12:29:53 +02:00
Bastien Nocera a6339a30ef Fix udev rules printing
The blacklisted devices weren't correctly checked for past the first
item, as we weren't using the right index to get the product ID
from the ID table.
2013-07-25 12:29:29 +02:00
Bastien Nocera f3dd55815e lib: Use g_malloc0 instead of g_malloc+memset 2013-06-26 14:21:33 +02:00
Patrick Marlier 6d65bfcf80 lib: g_malloc never fails
Or rather, it never returns errors and aborts instead if
memory cannot be allocated, so remove code that handled
failures.

https://bugs.freedesktop.org/show_bug.cgi?id=57869
2013-06-26 14:18:40 +02:00
Jeremy Bicha 1acd647b29 build: Fix underlinking against glib
https://bugs.freedesktop.org/show_bug.cgi?id=63755
2013-06-26 14:14:49 +02:00
Vasily Khoruzhick 3b3679c900 upeke2: Add support for 147e:2020 ID
https://bugs.freedesktop.org/show_bug.cgi?id=59320
2013-01-13 19:02:52 +01:00
Timo Teräs 0b2d33c712 imgdev: fix cancelling of enrollment from stage_completed callback
Re-check device state after fpi_drvcb_enroll_stage_completed().
If enrollment was cancelled after non-completing stage, we must
not restart acquire as it would confuse the internal state machine.

https://bugs.freedesktop.org/show_bug.cgi?id=57829
2012-12-14 13:17:30 +01:00
Timo Teräs 8a87ba448c uru4000: fix cancelling of imaging from error callback
Call error callback before resetting img_transfer to NULL. This
variable is internally used to detect if we are still in imaging
loop and the call to execute_state_change() needs to be postponed.
Since this is the final thing imaging_complete() we can't reset
img_transfer until just before this call.

https://bugs.freedesktop.org/show_bug.cgi?id=57829
2012-12-14 13:16:31 +01:00
Timo Teräs 7e1646c382 uru4000: fix race condition on waiting power up irq
It can come before we finish reading the status register on some
cases. Arm the irq handler early, and fix the state machine to
handle early irq properly.

https://bugs.freedesktop.org/show_bug.cgi?id=57834
2012-12-04 11:55:10 +01:00
Vasily Khoruzhick a7d6b7c30a nbis: Fix crash in gen_initial_maps()
If the image is too small some coordinates can become negative.
Handle this to avoid memory corruption.

https://bugs.freedesktop.org/show_bug.cgi?id=57730
2012-12-03 15:36:25 +01:00
Vasily Khoruzhick 31cf7a9383 build: Add common routines to the dist
Fixes dist when aesX660 drivers are disabled from the build.

https://bugs.freedesktop.org/show_bug.cgi?id=57724
2012-12-01 15:04:47 +01:00
Vasily Khoruzhick c02cb3083d AES-drivers: drop redudant type cast in g_slist_free_full call
https://bugs.freedesktop.org/show_bug.cgi?id=57688
2012-11-29 15:32:14 +01:00
Vasily Khoruzhick 2084724115 upektc: add support for Eikon Touch 300
https://bugs.freedesktop.org/show_bug.cgi?id=45197
2012-11-29 12:35:05 +01:00
Vasily Khoruzhick 118c610e29 lib: add AES2660 driver
https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:52 +01:00
Vasily Khoruzhick 313bfede77 lib: add AES1660 driver
https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:52 +01:00
Vasily Khoruzhick c1da647aed lib: add AES1660/AES2660 common routines
https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:52 +01:00
Vasily Khoruzhick 22d204cc68 lib: Split fpi_im_resize factor into width/height
https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:27 +01:00
Vasily Khoruzhick bc497f1b26 aeslib: prevent integer overflow
AuthenTec devices send 4bpp images, but current code assumes 3bpp for
some reason.

https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:27 +01:00
Vasily Khoruzhick 8c5f2e6434 aes: unify image processing code for AuthenTec devices
Move overlap detection and assembling code into aeslib to prevent
code duplication

https://bugs.freedesktop.org/show_bug.cgi?id=57426
2012-11-29 09:59:22 +01:00
Timo Teräs 45ac0eefb0 uru4000: Fix image capture error on ARM
http://www.mail-archive.com/fprint@lists.freedesktop.org/msg00294.html
2012-11-16 18:38:52 +01:00
Vasily Khoruzhick ea6d5ba6d6 lib: Fix mess with driver IDs
ID is just a some magic number to make fingerprint from one scanner model
incompatible with another scanner model. Get rid of "magic", declare enum
and use it.

https://bugs.freedesktop.org/show_bug.cgi?id=56956
2012-11-16 17:57:47 +01:00
Vasily Khoruzhick ed2c75842a upektc: Port to asynchronous model
https://bugs.freedesktop.org/show_bug.cgi?id=56955
2012-11-16 17:56:51 +01:00
Vasily Khoruzhick b307dd1a6a aes2550: fix bug introduced by last commit
ssm->priv is not aesdev, but fp_img_dev

https://bugs.freedesktop.org/show_bug.cgi?id=56782
2012-11-16 17:46:27 +01:00
Vasily Khoruzhick 39902374ce aes2550: Harden against low finger pressure
Stop scan only after 3rd heartbeat message

https://bugs.freedesktop.org/show_bug.cgi?id=56782
2012-11-06 09:32:07 +01:00
Vasily Khoruzhick 6b84c6664f AES1610: driver cleanup, part #2
Remove dead code

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-06 09:26:17 +01:00
Vasily Khoruzhick f569d0bf44 AES1610: driver cleanup, part #1
Fix warnings reported by gcc

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-06 09:26:17 +01:00
Vasily Khoruzhick 1cfd14b7fe nbis: fix rest of warnings reported by gcc
https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-06 09:26:17 +01:00
Vasily Khoruzhick 5d32102efe nbis: prefix global variables with "g_"
It fixes a lot of warnings about shadowing global variable

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-06 09:26:17 +01:00
Bastien Nocera 9e10edd422 aes2501: Add year 2008 to the copyright.
https://bugs.freedesktop.org/show_bug.cgi?id=56715#c7
2012-11-05 19:52:46 +01:00
Vasily Khoruzhick fecf6d6fe5 aes2501: Update copyright line
https://bugs.freedesktop.org/show_bug.cgi?id=56715
2012-11-05 19:51:19 +01:00
Vasily Khoruzhick e32fa8cc38 aes2501: Improve image contrast
When scanning, check the histogram sum, and increase the
ADREFHI register value if the sum is too low, or decrease
it if it's too high.

https://bugs.freedesktop.org/show_bug.cgi?id=56715
2012-11-05 19:49:54 +01:00
Vasily Khoruzhick d8aae30a67 aes2501: Harden against low finger pressure
Wait for 3 empty frames before stopping the scan

The driver used to stop the scan immediately after an empty frame
(by checking for hist sum == 0), but it is possible to get empty
frames in the middle of the scan due to low finger pressure.
Waiting for 3 empty frames stop the driver wrongly aborting the scan
too early.

https://bugs.freedesktop.org/show_bug.cgi?id=56715
2012-11-05 19:47:32 +01:00
Vasily Khoruzhick 84b97ea15b lib: Fix warning when debug logs are disabled
Fix warning in sync.c when debug logs are not enabled

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-05 19:24:55 +01:00
Vasily Khoruzhick 8f98743857 upeksonly: Fix build-time warnings
Fix warnings reported by gcc

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-05 19:24:44 +01:00
Vasily Khoruzhick be29f27e25 upeke2: Fix build-time warnings
Fix warnings reported by gcc

https://bugs.freedesktop.org/show_bug.cgi?id=56439
2012-11-05 19:24:23 +01:00
Timo Teräs d003f08855 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
2012-11-05 18:39:16 +01:00
Vasily Khoruzhick 83333bce3f lib: Add AES2550/AES2810 driver
Initial implementation of AES2550/AES2810 driver.
Does not support AES2810 crypto engine and external flash.

https://bugs.freedesktop.org/show_bug.cgi?id=50859
2012-10-11 15:24:14 +02:00
Bastien Nocera 132b178304 lib: Add driver names to the udev rules 2012-08-28 20:02:17 +01:00
Andrej Krutak c3689665db lib: Add VFS300/VFS301 driver
https://bugs.freedesktop.org/show_bug.cgi?id=37574
2012-08-28 19:51:59 +01:00
Bastien Nocera 3d222ddda7 lib: Fix whitespace errors 2012-08-28 19:45:08 +01:00
Vasily Khoruzhick ff02115b0f lib: Fix global variables collision with libusb 2012-08-14 15:25:44 +01:00
Bastien Nocera 3b409c767c build: Allow disabling the update of udev rules
We can only create the udev rules file when we're not cross-compiling,
so allow people to disable updating the file when building from
tarballs.

If you run with --enable-udev-rules=no and the
60-fprint-autosuspend.rules doesn't exist, you're on your own.
2012-08-14 15:19:35 +01:00
Bastien Nocera 2d09b10a27 build: Include udev rules in tarball 2012-08-14 14:52:58 +01:00
Benedikt Morbach 0f4a75ff61 update udev rules dir location again
Instead of hardcoding whatever the new fashion is every few months, which might
even differ between distributions, just put the rules where udev says we should.

https://bugs.freedesktop.org/show_bug.cgi?id=50426
2012-05-28 14:12:55 +01:00
Bastien Nocera dfff16f3e3 Don't print duplicate udev rules
https://bugs.freedesktop.org/show_bug.cgi?id=45513
2012-02-02 05:28:17 +00:00
Patrick Marlier 3d2e545264 Fix possible crash without a deactivate callback
We were checking for ->activate existing instead of ->deactivate.
2012-01-20 12:57:27 +00:00
Benedikt Morbach c96fa32da4 Move udev rules to libdir
This moves the dir from /etc/udev/rules.d to /lib/udev/rules.d,
which is encouraged by upstream, as /etc is for user overrides only

https://bugs.freedesktop.org/show_bug.cgi?id=44507
2012-01-06 12:13:29 +00:00
Matthew Garrett 48ec64f683 Fix udev control path
Newer kernels uses power/control for USB suspend setup, not power/level.
Fix the udev rules generation.
2011-10-04 15:11:08 +01:00
Sergio Cerlesi d2e957683f Added support for Validity VFS101
USB ID 138a:0001
2011-04-08 15:37:03 +01:00
Sergio Cerlesi a3ae96c214 Fix function fpi_im_resize on create new image
The function fpi_im_resize copy the new resized image into old fp_img
instead of newimg so, new image is empty and often it generated a
segmentation fault error.
2011-02-22 19:14:02 +00:00
Sergio Cerlesi 3dd905d4e9 Fix return timeout of fp_get_next_timeout
On function fp_get_next_timeout if exist fprint timeout or libusb
timeout the function return the smaller of they.

But if one of that not exist and have a smaller value the function
return a timeout that not exist.
2011-02-18 13:59:28 +00:00
Kunal Gangakhedkar ff842125c5 Add C++ guards to take care of C++ name-mangling.
The libfprint library is generally built with C calling conventions.
Which makes it difficult to link to C++ programs as it is.

This patch adds the support for linking with C++ code - by telling the C++
compiler to use C calling conventions for libfprint functions.

Reported-by: Guus Ellenkamp <guus@activediscovery.net>
Signed-off-by: Kunal Gangakhedkar <kunal.gangakhedkar@gmail.com>
2010-09-08 11:02:25 +01:00
Hugo Grostabussiat 712ebb6d44 Namespace functions and structs for 147e:2016
Inserted "_2016" in structures, enums and functions names
that are related with device 147e:2016.
2010-08-31 17:51:21 +01:00
Hugo Grostabussiat a18f318446 Added support for UPEK TCS4C (USB ID 147e:1000)
https://bugs.freedesktop.org/show_bug.cgi?id=29719
2010-08-31 17:49:45 +01:00
Bastien Nocera 15b8e8f376 Remove HAL fdi generation
HAL is deprecated, and the rules are broken when multiple
drivers use the same USB IDs.
2010-08-25 11:20:55 +01:00
Bastien Nocera 9f8dd29a55 Make sure all sources are dist'ed
So that you can compile against ImageMagick even if the
distter doesn't.
2010-08-25 11:17:42 +01:00
Bastien Nocera 375575b701 Port OpenSSL using code to NSS
As OpenSSL cannot really be used in an LGPLv2+ piece of software
without an exception.

Adapted from the example code at:
http://www.mozilla.org/projects/security/pki/nss/sample-code/sample2.html
and:
http://github.com/bagder/curl/commit/f3b77e5
2010-08-25 10:34:30 +01:00
Alexia Death 25161286f5 Only complete scan with MIN_ROWS in print
Don't consider the scan complete unless theres at least
MIN_ROWS recorded or very long blank read occurred.

Typical problem spot: one brief touch before starting the
actual scan. Happens most commonly if scan is started from
before the first joint resulting in a gap after the inital touch.

http://lists.reactivated.net/pipermail/fprint/2009-December/001406.html
2010-08-19 20:36:16 +01:00
Alexia Death c575afba9a Make the +2 right shift happen on image handoff.
Rather than when reading the rows. Doing it there seems a lot
more sensible and does not get in the way of minimizing the
impact of lost USB packets.

http://lists.reactivated.net/pipermail/fprint/2009-December/001404.html
2010-08-19 20:29:45 +01:00
Alexia Death 8cd31f6ad8 Try to correct missing packets in image stream
If a packet goes missing, use the data from previous row
to minimize distortion, or use some neutral dummy data.

http://lists.reactivated.net/pipermail/fprint/2009-December/001404.html
2010-08-19 20:27:09 +01:00
Alexia Death 4b518bd230 Fix a segfault if a scan was shorter than 8 lines.
This segfault was caused by proceeding to free the conversion result
without checking for an error condition in image to print
data conversion.

http://lists.reactivated.net/pipermail/fprint/2009-December/001405.html
2010-08-19 20:21:51 +01:00
Bastien Nocera 9608ab3707 Don't crash when no devices are present 2010-08-18 11:17:20 +01:00
Bastien Nocera 73561989dd Implement discover() methods for upeke2 and upeksonly
upeksonly handles revision 1 devices, upeke2 revision 2 devices.

https://bugzilla.redhat.com/show_bug.cgi?id=504399
2010-08-17 23:41:23 +01:00
Bastien Nocera df4a6f53d2 Rework "discover" code for drivers
Check all the drivers for one that'll drive our device in
question, and prefer ones that have a discover() method that runs
successfully to a driver without such a method.

This allow drivers to both reject devices (if 2 drivers handle
the same USB IDs), or a single driver to handle variants of the
same device (through the devtype out value of the discover method).
2010-08-17 23:14:18 +01:00
Jorge Suarez de Lis 48af46a2c5 upeke2: Add support for 0x2e status code
As reported working in:
http://www.mail-archive.com/fprint@reactivated.net/msg01426.html
2010-08-17 19:55:48 +01:00
Jorge Suarez de Lis 5a1926bb41 Add (disabled) UPEK EikonII (TCRD4C) driver
The device driver is always disabled as it uses the same Device ID
as another working reader:
https://bugzilla.redhat.com/show_bug.cgi?id=504399#c38
2010-08-17 19:36:56 +01:00
Guido Grazioli 7c7402a697 Finish implementation of AES1610 driver
Ported to the new internal libfprint API.

https://bugzilla.redhat.com/show_bug.cgi?id=499732
2010-08-17 11:36:34 +01:00
Matthew Garrett a99e813bbf Add udev rules to set devices to autosuspend
Most fingerprint readers can be suspended safely, so use
the udev rules to autosuspend them when they appear.

The script itself contains whitelists and blacklists.
2010-08-17 11:35:26 +01:00
Bastien Nocera 014b933b2b Add gdk-pixbuf support
When imaging support is required, we prefer to use gdk-pixbuf,
as it's already on things like Live CDs.
Also fix the examples building against the system libfprint.
2010-08-17 11:35:06 +01:00
Bastien Nocera e5da34e80a Fix fp_get_pollfds()
It was increasing i too early, and writing past the allocated
structures.
2008-11-25 16:08:59 +00:00
Bastien Nocera d816fed5c3 Disable finger_num_to_str when debugging is disabled
One less warning.
2008-11-25 16:08:58 +00:00
Bastien Nocera 749bb3e30e Export scan type through HAL
Also export the scan type through HAL.
2008-11-24 17:19:36 +00:00
Daniel Drake d482228325 upekts: Don't choke on non-zero bytes in command response
Alon Bar-Lev's device behaves differently, but seems to work fine with
upekts even if we ignore the difference.
2008-11-20 19:59:43 +00:00
Daniel Drake 7c44c86d4c Logging control
Don't log anything by default, and let the applications change the log
level.
2008-11-20 17:23:04 +00:00
Bastien Nocera 29044d9ca9 Export scan type for each driver
For each driver, export the scan type supported by the devices it
handles. This allows front-ends to direct the user better.
2008-11-20 14:53:01 +00:00
Daniel Drake b93f038dbc distcheck fix for fdi file 2008-11-18 17:18:21 +00:00
Daniel Drake 2d30e40ed7 aes2501: Add AES2500 ID
Reported to work with Motion Computing M1400 tablet by Daniel Hazelbaker
and Alex Van Deusen.
2008-11-02 14:49:39 +00:00
Bastien Nocera 7c83b6d825 Tag fingerprint devices in HAL
Tag all the fprint supported devices in HAL. Patch from
myself and Timo Hoenig <thoenig@suse.de>.
2008-11-02 11:06:22 +00:00
Daniel Drake 7672c43cea distcheck "" fix
Pointed out by Bastien Nocera
2008-11-02 11:03:32 +00:00
Gordon Stratton d94ffa22d5 Missing parameter in fp_err call 2008-10-31 23:36:55 +00:00
Daniel Drake 6b8b17f575 Split imagemagick hack from main library
Cleans up the conditional compilation system
2008-08-10 14:41:13 -05:00
Pavel Herrman bba1c1085f Allow drivers to be included/excluded at compile time 2008-08-10 14:41:10 -05:00
Daniel Drake b6dabaacc8 Enable libusb debug messages
While we're a noisy library we might as well ask libusb to be as well
2008-07-09 03:25:23 +01:00
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 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
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 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 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 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
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