Skip to content

Add Kensington VeriMark (06cb:0088) driver - #9

Open
visorcraft wants to merge 1 commit into
archeYR:cs9711-rebasefrom
visorcraft:add-validity-0088
Open

Add Kensington VeriMark (06cb:0088) driver#9
visorcraft wants to merge 1 commit into
archeYR:cs9711-rebasefrom
visorcraft:add-validity-0088

Conversation

@visorcraft

Copy link
Copy Markdown

Summary

  • Bundles a working libfprint driver for the Kensington VeriMark (06cb:0088) — a pre-Prometheus Synaptics/Validity chip — alongside this fork's existing CS9711 driver.
  • New source at libfprint/drivers/validity-0088/ (12 files, ~12k lines).
  • Meson wiring: driver entry added to libfprint/meson.build, openssl helper mapping added to root meson.build.
  • README updated to document the additional driver and the build flag.

Why this fork

This driver also sits outside mainline libfprint (not yet upstreamed), so it fits the same posture as CS9711 in this fork. Users who already build from this fork to get CS9711 support can now also get VeriMark support from one tree without juggling multiple branches.

What the driver does

  • Modified TLS 1.2 over USB bulk transfers (Synaptics protocol variant for the pre-Prometheus chip).
  • Auto-pairs with the device on first plug-in — no Windows extraction or external tooling required. Generates a fresh EC P-256 host keypair, signs a CSR with the family-wide hs_key, sends it via the device's pre-TLS opcode 0x4f, persists the device-signed cert + keypair + device ECDH pubkey to ~/.local/share/libfprint/verimark-06cb-0088/ (or $STATE_DIRECTORY/validity-0088-pairing/ under fprintd).
  • Covers enroll, verify, and PAM / login integration end-to-end on Linux.

Driver source is maintained at Kensington_VeriMark_06cb-0088; this PR mirrors it into the fork.

Build

meson setup builddir -Ddrivers=cs9711,validity_0088 -Ddoc=false
meson compile -C builddir

The meson key MUST be validity_0088 (underscore) — upstream libfprint's meson pastes the key directly into a generated C identifier and a hyphen produces invalid C. File paths use validity-0088.

Test plan

  • Configure + compile clean against this fork's cs9711-rebase branch with both drivers enabled
  • nm libfprint-2.so.2.0.0 | grep fpi_device_validity_0088_get_type returns the driver entrypoint
  • nm libfprint-2.so.2.0.0 | grep fpi_device_cs9711_get_type still present (no regression to CS9711)
  • End-to-end live-tested against a real Kensington VeriMark (fprintd-enrollsudo with fingerprint → root) on the upstream driver repo's identical source.

Doesn't close any open issue in this fork specifically; opens the door for VeriMark users to land here for the same reason CS9711 users do.

Bundles the FLOSS libfprint driver for the Kensington VeriMark
(06cb:0088) - a pre-Prometheus Synaptics/Validity chip - alongside
the existing CS9711 driver in this fork. Covers enroll, verify, and
PAM/login integration. Auto-pairs with the device on first plug-in
(no Windows extraction required).

Driver source mirrored from
https://github.com/visorcraft/Kensington_VeriMark_06cb-0088 at
libfprint/drivers/validity-0088/.

Build: -Ddrivers=cs9711,validity_0088

Closes no upstream issue but adds a second non-mainline-yet driver
to this fork in the same spirit as CS9711.
@archeYR

archeYR commented May 26, 2026

Copy link
Copy Markdown
Owner

This driver also sits outside mainline libfprint (not yet upstreamed), so it fits the same posture as CS9711 in this fork. Users who already build from this fork to get CS9711 support can now also get VeriMark support from one tree without juggling multiple branches.

The reason for CS9711 driver being out of tree is its reliance on the not yet merged sigfm algorithm. This fork is specifically for Chipsailing devices that share the protocol, not for all devices that are not supported upstream. From what I can tell this driver doesn't use sigfm, and is completely unrelated to Chipsailing either way. I suggest to maintain this driver in its own fork and prepare it for upstream instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants