Yubikey - cont'd

Jeremy Faulkner gldisater at gmail.com
Tue Jun 9 02:21:14 UTC 2009


Hans Petter Selasky wrote:
> On Monday 08 June 2009 02:07:32 Jeremy Faulkner wrote:
>> Thanks for the reply Hans. I can't reply to the original thread as I
>> wasn't subscribed to usb@ and didn't mention that in my previous
>> email. I'm subscribed now.
>>
>> I assume you meant 'cat /dev/usb/5.5.1 | hexdump -C' as 'hexdump C'
>> expects C to be a file. I've attached the output of hexdump when the
>> Yubikey is triggered.
> 
> Your Yubikey input looks like the input of a keyboard. I'm a little bit 
> busy at the moment. What needs to be done is to search for Yubikey in the 
> NetBSD ukbd.c driver (sys/dev/usb) and port those changes to the FreeBSD 
> ukbd.c driver (sys/dev/usb/input). Is that something you can do?
> 
> You might find the following link useful:
> 
> http://fxr.watson.org
> 
> --HPS

There were no occurances of Yubikey in fxr.watson.org so I checked the 
FreeBSD ukbd.c to see if it was rejecting the Yubikey for some reason. I 
found in ukbd_probe() that it required that the keyboard have 
InterfaceSubClass == UISUBCLASS_BOOT and InterfaceProtocol == 
UPROTO_BOOT_KEYBOARD in order to attach.

I don't know what they're for but the Yubikey has no subclass or 
interface protocol set. To test this I hacked it to return 0 if the 
idVendor is that of Yubico (0x1050) and it attached as ukbd0 (kbd2) and 
worked. Perhaps it would be better to create a USB Quirk for forced ukbd 
attach than to have the Yubico vendor id in ukbd_probe()

Also, I don't know what the difference between UPROTO_BOOT_KEYBOARD 
(defined in ukbd.c) and UIPROTO_BOOT_KEYBOARD (defined in usb.h)

--
Jeremy Faulkner


More information about the freebsd-usb mailing list