libfprint/libfprint/drivers
Leonardo Francisco 0ba7d71d5f validity: Iteration 6 — Enrollment, Verification, and DB Management
Add core fingerprint operations: enrollment, verification, identification,
print listing, print deletion, and storage clearing.

New files:
- validity_db.h/c: On-chip template database operations — command builders
  for all DB commands (0x45-0x4B, 0x47-0x48, 0x51, 0x5E, 0x60, 0x62, 0x63,
  0x64, 0x68, 0x69, 0x6B), response parsers for DB info/user storage/user/
  record value/record children/new record ID, identity builder (UUID→VCSFW
  binary), finger data builder, and db_write_enable blob accessor.
- validity_enroll.c: 31-state enrollment SSM with interrupt-driven finger
  detection (EP 0x83), capture command orchestration via build_cmd_02(),
  enrollment session management (create/update/commit), DB record creation
  (user + finger), and LED glow feedback.
- validity_verify.c: 17-state verify/identify SSM with match command
  dispatching (cmd 0x5E for verify, cmd 0x60 for identify), 6-state list
  SSM for enumerating enrolled prints via GPtrArray, 8-state delete SSM,
  and clear_storage stub.

Modified files:
- validity.h: Added DB header include, 5 new state enums (CalibState,
  EnrollState, VerifyState, ListState, DeleteState), new struct fields
  for enrollment/verification/list/delete state, function declarations.
- validity.c: Replaced all operation stubs with real implementations,
  added cleanup for new fields in dev_close, wired all FpDevice methods.
- meson.build: Added 3 new source files to driver.
- tests/meson.build: Added test-validity-db executable.
- tests/validity/custom.py: Updated feature assertions (STORAGE,
  STORAGE_LIST, STORAGE_CLEAR now enabled).

Tests: 29 new unit tests in test-validity-db.c covering all command
builders, response parsers, identity/finger data builders, and blob
accessor. All 37 tests pass (0 fail, 2 skip).
2026-04-06 00:51:35 -04:00
..
egismoc egismoc: support ETU905A88-E device (1c7a:0584) 2025-12-06 01:26:29 +00:00
elanmoc Add support for 04f3:0ca7 Elan Microelectronics Corp. ELAN:ARM-M4 2025-12-18 10:59:29 -08:00
focaltech_moc focaltech_moc: add new pid:0x077A pid:0x079A 2026-02-12 17:09:41 +08:00
fpcmoc fpcmoc: Do not leak the interrupt cancellable 2025-12-09 20:37:34 +01:00
goodixmoc goodixmoc: Wait for finger removal before completing verify 2026-03-17 17:55:38 +00:00
realtek Realtek: Add new ID 2541:fa03 2025-12-06 01:33:10 +00:00
synaptics synaptics: Add 06cb:00e9 2026-02-10 02:01:08 +00:00
validity validity: Iteration 6 — Enrollment, Verification, and DB Management 2026-04-06 00:51:35 -04:00
aes3k.c aes3k: Re-send some commands for each capture 2020-10-07 11:34:12 +02:00
aes3k.h aes3k: Re-send some commands for each capture 2020-10-07 11:34:12 +02:00
aes1610.c aes1610: Use convenience API to allocate USB receive buffer 2020-10-07 13:38:59 +02:00
aes1660.c Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
aes1660.h drivers: Disable reindent and disable uncrustify for large headers 2021-01-18 16:25:25 +01:00
aes2501.c lib: re-add partial image flag 2020-06-04 09:34:31 -07:00
aes2501.h cleanup: Use #pragma once everywhere 2019-12-17 14:38:19 +01:00
aes2550.c Remove trailing \n where they are not necessary 2020-09-29 10:42:03 +02:00
aes2550.h cleanup: Use #pragma once everywhere 2019-12-17 14:38:19 +01:00
aes2660.c Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
aes2660.h drivers: Disable reindent and disable uncrustify for large headers 2021-01-18 16:25:25 +01:00
aes3500.c aes3k: Re-send some commands for each capture 2020-10-07 11:34:12 +02:00
aes4000.c Fix AES4000 wrong IDs (swapped pid/vid) 2023-01-27 18:23:55 -05:00
aeslib.c cleanup: Remove fp_internal.h and update drivers_api.h 2019-12-17 14:38:19 +01:00
aeslib.h cleanup: Use #pragma once everywhere 2019-12-17 14:38:19 +01:00
aesx660.c aesx660: Fix format strings 2021-07-06 20:56:16 +00:00
aesx660.h Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
egis0570.c egis0570: Cleanup the received image that is going to be resized 2022-10-13 05:04:02 +02:00
egis0570.h egistec: Add new driver 2021-07-08 13:42:22 +02:00
elan.c libfprint: Use g_memdup2 everywhere 2022-09-27 17:10:33 +02:00
elan.h elan: add PID 0x0c4b 2022-04-14 17:21:52 +08:00
elanspi.c elanspi: Try to avoid cancellation problems 2021-12-23 05:35:38 +00:00
elanspi.h elanspi: Add elanspi PID 0x2766 2025-02-14 00:29:17 +01:00
etes603.c etes603: Return TOO_SHORT retry error for small images 2020-04-24 20:03:51 +02:00
nb1010.c ssm: Remove delayed action GCancellable integration 2021-04-28 22:16:37 +02:00
upek_proto.c drivers: Fix upekts/upek_proto license 2021-06-17 13:08:19 +00:00
upek_proto.h drivers: Fix upekts/upek_proto license 2021-06-17 13:08:19 +00:00
upeksonly.c Fix indentation issues with uncrustify-0.76.0 2023-01-08 23:36:18 -08:00
upeksonly.h Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
upektc.c upek: add PID 0x2017 2022-09-27 09:01:58 +00:00
upektc.h drivers: Disable reindent and disable uncrustify for large headers 2021-01-18 16:25:25 +01:00
upektc_img.c Abort initialization if unknown sensor dimensions are reported 2023-01-17 19:50:21 +00:00
upektc_img.h upektc_img: Fix protocol for area sensors 2023-01-17 19:50:21 +00:00
upekts.c scripts/uncrustify: Use 2-spaces indentation for defines too 2025-02-20 15:50:46 +00:00
uru4000.c uru4000: Fix shifting using unsigned types 2025-02-13 23:51:52 +00:00
vcom5s.c drivers: Use more fpi_ssm_usb_transfer_cb when possible 2019-11-27 21:02:20 +01:00
vfs0050.c vfs0050: Initialize the usb transfer buffer when allocating it 2022-10-13 05:04:03 +02:00
vfs0050.h Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
vfs101.c scripts/uncrustify: Use 2-spaces indentation for defines too 2025-02-20 15:50:46 +00:00
vfs301.c ssm: Remove delayed action GCancellable integration 2021-04-28 22:16:37 +02:00
vfs301.h Uncrustify everything except for nbis 2019-11-20 20:38:06 +01:00
vfs301_proto.c scripts/uncrustify: Use 2-spaces indentation for defines too 2025-02-20 15:50:46 +00:00
vfs301_proto_fragments.h drivers: Disable reindent and disable uncrustify for large headers 2021-01-18 16:25:25 +01:00
vfs5011.c scripts/uncrustify: Use 2-spaces indentation for defines too 2025-02-20 15:50:46 +00:00
vfs5011_proto.h drivers: Disable reindent and disable uncrustify for large headers 2021-01-18 16:25:25 +01:00
vfs7552.c scripts/uncrustify: Use 2-spaces indentation for defines too 2025-02-20 15:50:46 +00:00
vfs7552_proto.h Added driver for validity vfs7552 2021-03-12 11:29:43 +01:00
virtual-device-listener.c virtual-device-listener: Always return task even if we got zero bytes 2023-03-15 15:26:37 +00:00
virtual-device-private.h virtual-device: Refactor command handling and add CONT command 2021-05-14 15:28:54 +00:00
virtual-device-storage.c virtual-device: Return empty no-match if unknown SCAN id is passed 2021-08-19 18:59:38 +02:00
virtual-device.c virtual-{image, device}: Make hot seconds value to be configurable 2025-02-13 18:46:15 +01:00
virtual-image.c virtual-{image, device}: Make hot seconds value to be configurable 2025-02-13 18:46:15 +01:00