//device/fido contains abstractions for FIDO security keys across multiple platforms.
Support for U2F (FIDO 1.2) security keys is present for both USB Human Interface Devices (USB HID) and Bluetooth Low Energy (BLE) devices. Clients can perform U2F operations using the
U2fSign classes. These abstractions automatically perform device discovery and handle communication with the underlying devices. Talking to HID devices is done using the HID Mojo service, while communication with BLE devices is done using abstractions found in
//device/bluetooth. HID is supported on all desktop platforms, while BLE lacks some support on Windows (see
//device/bluetooth/README.md for details).
Support for CTAP2 (FIDO 2.0) security keys is in active development and aims to unify the implementations for both U2F and CTAP keys.
Standard use of
*_unittest.cc files for must code coverage. Files prefixed with
mock_ provide GoogleMock based fake objects for easy mocking of dependencies during testing.
libFuzzer tests are in
*_fuzzer.cc files. They test for bad input from devices, e.g. when parsing responses to register or sign operations.