WHAT: A couple of self-contained u2f HID device conformance tests: HIDTest to check compliance at the usb HID communication layer. U2FTest to check compliance at the application layer. DEPENDENCIES: git clone https://github.com/signal11/hidapi git clone -b lollipop-release https://android.googlesource.com/platform/system/core linux: sudo apt-get install libudev-dev BUILD: linux, mac: make windows: nmake -f Makefile.win - if you have an old vc compiler, consider adding http://msinttypes.googlecode.com/svn/trunk/stdint.h or similar to your vc include directory. RUN: ./list to find path of device to test (e.g. /dev/hidraw3) ./HIDTest $PATH [args]? to test low level communications with device. On windows? - Make sure to keep the quotes around the path. - Try https://github.com/adoxa/ansicon to get ANSI colors. On linux? - Make sure path is rw for your uid. Typically, a udev rule that adds rw for group plugdev goes a long way. ./U2FTest $PATH [args]? to test u2f application layer functionality of device. Additional commandline arguments: Add -a to continue execution after an error. Add -p to pause after each error. Add -v and -V to get more verbose output, down to the usb frames with -V. Add -b to U2FTest in case fob under test is of the insert / remove class and does not have a user-presence button.