libfprint/libfprint/drivers
Leonardo Francisco 3e86894c81 validity: Add TLS session management (Iteration 2)
Implement the TLS handshake and encrypted channel for VCSFW sensors:

- validity_tls.c/h: TLS PRF (P_SHA256), AES-256-CBC encrypt/decrypt,
  PSK derivation from DMI (machine binding), flash partition parsing
  (cert/privkey/ECDH blocks with SHA-256 integrity), ClientHello/
  ServerHello builders, full TLS handshake state machine
- validity.c: Integrate TLS into open sequence — check fwext status,
  read flash partition 1, perform TLS handshake when keys available,
  graceful skip when fwext not loaded
- validity.h: Add ValidityTlsState, fwext_loaded flag, TLS fields
- OpenSSL dependency for ECDH, AES-256-CBC, HMAC-SHA256

Tests (18 total in test-validity-tls):
  - 13 unit tests: init/free, ClientHello format, PRF determinism/
    length/short, encrypt roundtrip/alignment, decrypt invalid,
    PSK derivation/determinism, flash parse empty/truncated,
    unwrap invalid
  - 5 regression tests for bugs found during hardware testing:
    - flash parse ordering (PSK must precede parse)
    - READ_FLASH command format (13-byte layout)
    - flash response 6-byte header unwrap
    - ServerHello expects raw TLS (no VCSFW prefix)
    - ClientHello TLS record prefix (0x44000000)
  - Hardware integration test script (test_tls_hardware.py)

All 33 project tests pass (0 fail, 2 skipped).
2026-04-04 22:58:51 -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: Add TLS session management (Iteration 2) 2026-04-04 22:58:51 -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