fingerprintd/interfaces
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf c785aad653 An enrolment cannot be ended by a finger release
A three-tap enrolment declared itself complete. The transcript says why:

    frame 2: metric=308  FINGER  ev5 rem=10
    frame 3: metric=187          ev6 rem=0
    samples: 10 of 10 accepted

The release event never enters do_enroll, so its response leaves
samples-remaining untouched at 0 -- which is indistinguishable from "none
remaining, you are finished". The session believed it, stopped after one press,
and called SAVE_DATA on an algorithm holding no template. That answered -1 and
wrote nothing, so the store was undamaged, but only by luck: the guard meant to
prevent a partial save was itself satisfied by the bogus count.

A reading is only meaningful when it came from the event that runs the enrol
path, and nothing about the value says so -- the caller has to. Observe now
takes that as an argument. Two further guards: a FIRST reading of 0 is an
unpopulated field rather than a finished enrolment, and the count only ever
falls, so an increase is noise.

Verified by mutation: trusting the release event's count, and accepting a
leading zero, each fail the suite.
2026-09-02 20:40:16 +02:00
..
Fingerprintd-Engine.cppm An enrolment cannot be ended by a finger release 2026-09-02 20:40:16 +02:00
Fingerprintd-Rpmb.cppm Port the RPMB listener's wire format, guard included 2026-09-02 16:48:57 +02:00
Fingerprintd-Sensor.cppm Own the sensor rail, and run the init chain against it 2026-09-02 18:24:12 +02:00
Fingerprintd-Sfs.cppm Initial commit: the gpfile wire format, pinned by two real containers 2026-09-02 16:02:46 +02:00
Fingerprintd-Store.cppm Drop the gid 60 compatibility path 2026-09-02 17:28:47 +02:00
Fingerprintd-Ta.cppm Add enrolment, and let it choose its own namespace 2026-09-02 20:12:24 +02:00
Fingerprintd-Tee.cppm Reach QTEE: credentials, client env and the app loader, with no QCBOR 2026-09-02 18:02:28 +02:00
Fingerprintd.cppm Own the sensor rail, and run the init chain against it 2026-09-02 18:24:12 +02:00