udev: Add id program and rule for FIDO security tokens

Add a fido_id program meant to be run for devices in the hidraw
subsystem via an IMPORT directive. The program parses the HID report
descriptor and assigns the ID_SECURITY_TOKEN environment variable if a
declared usage matches the FIDO_CTAPHID_USAGE declared in the FIDO CTAP
specification. This replaces the previous approach of whitelisting all
known security token models manually.

This commit is accompanied by a test suite and a fuzzer target for the
descriptor parsing routine.

Fixes: #11996.
This commit is contained in:
Fabian Henneke
2019-09-07 02:23:58 +09:00
committed by Yu Watanabe
parent 1e19f5ac0d
commit d45ee2f31a
15 changed files with 333 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
# do not edit this file, it will be overwritten on update
ACTION=="remove", GOTO="fido_id_end"
SUBSYSTEM=="hidraw", IMPORT{program}="fido_id"
LABEL="fido_id_end"
+1
View File
@@ -5,6 +5,7 @@ rules = files('''
60-cdrom_id.rules
60-drm.rules
60-evdev.rules
60-fido-id.rules
60-input-id.rules
60-persistent-alsa.rules
60-persistent-input.rules