[systemd-devel] Supporting U2F over HID on Linux?

Jiri Kosina jkosina at suse.cz
Sun Nov 2 13:33:05 PST 2014


On Sun, 2 Nov 2014, Andy Lutomirski wrote:

> > Hmmm ... please keep in mind that report_descriptor is actually in 
> > debugfs, so it's a bit questionable whether you can rely on it being 
> > present on well-defined location on all systems.
> 
> Huh?  I have 
> /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:1050:0120.0013/report_descriptor 
> on my system.

Brainfart on my side. We have 'rdesc' and 'events' in debugfs sice a long 
time, but then 'report_descriptor' has been added as a proper sysfs 
attribute some time around 3.0.

> >> - HID core code in the kernel to add
> >> HID_USAGES=f1d00001:lots:of:other:things to the uevent (or udev code
> >> to do the same).  This might end up producing a rather long string or
> >> some devices.
> >
> > We have been thinking about this quite a lot in the past, and decided to
> > postpone this until there is a very good reason for it to happen.
> 
> I'm not sure that U2F counts as a very good reason.

It might well be the justifying reason. I'd first like to see what other 
options we have though.

> >>  - An actual kernel driver for U2F devices using the hid group
> >> mechanism for enumeration.  This seems overcomplicated.
> >
> > Hmmm ... why do you think so? I believe it actually should be really
> > super-trivial.
> 
> The HID group part is trivial, but what interface would the driver
> expose?  I don't think that a udev rule for hidraw matching the
> modalias makes any sense, and, if it were a real driver, what
> interface would it expose?  Most cross-platform userspace code for U2F
> is likely to use HIDAPI.
> 
> Admittedly, a U2F driver in the kernel would be slightly nicer from a
> multiplexing standpoint than hidraw.

Alternatively, you can just write udev rule which triggers on HID devices, 
issues HIDIOCGRDESC ioctl() on the just-created hidraw node, and decides 
afterwards whether node permissions need to be altered ... right?

Thanks,

-- 
Jiri Kosina
SUSE Labs


More information about the systemd-devel mailing list