|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
#include <Fido2Module.h>
Public Member Functions | |
| const char * | getName () const override |
| core::ServiceState | getState () const override |
| bool | init () override |
| Initializes FIDO2 module resources and slot mapping. | |
| bool | start () override |
| Starts FIDO2 module, USB HID interface, and core stack. | |
| void | stop () override |
| Stops FIDO2 module and unregisters USB interface. | |
| void | setSlotRange (const core::IModule::SlotRange &range) override |
| Stores slot range assignment. | |
| core::IModule::SlotRequest | getSlotRequest () const override |
| Declares slot requirements for FIDO2 module. | |
| uint8_t | getMenuItems (core::ModuleMenuItem *items, uint8_t maxItems) override |
| Provides main-menu entry for FIDO2 credential list. | |
| const char * | getVersion () const override |
| Returns the module version string. | |
| Public Member Functions inherited from cdc::core::IModule | |
| virtual bool | exportBackup (cJSON *out) |
| Exports this module's data as a JSON section for the backup file. | |
| virtual BackupResult | importBackup (const cJSON *in) |
| Restores this module's data from its JSON backup section. | |
| virtual ui::IView * | getEntryView () |
| Returns the module's entry view (main view when selected from menu). | |
| virtual uint8_t | getLockScreenContextItems (LockScreenContextItem *items, uint8_t maxItems) |
| Returns the module's lock screen context menu items. | |
| virtual void | onUnlock () |
| Called when device is unlocked. | |
| virtual void | onLock () |
| Called when device is locked. | |
| virtual void | onUsbConnect () |
| Called when USB is connected. | |
| virtual void | onUsbDisconnect () |
| Called when USB is disconnected. | |
| virtual void | onTick (uint32_t nowMs) |
| Called periodically (optional tick for background work). | |
| Public Member Functions inherited from cdc::core::IService | |
| virtual | ~IService ()=default |
Static Public Member Functions | |
| static Fido2Module & | instance () |
| Returns the singleton instance of the FIDO2 module. | |
Definition at line 7 of file Fido2Module.h.
|
overridevirtual |
Provides main-menu entry for FIDO2 credential list.
| items | Output menu item array. |
| maxItems | Maximum writable entries. |
Reimplemented from cdc::core::IModule.
Definition at line 245 of file Fido2Module.cpp.
References cdc::mod_fido2::fido2_ui_get_label(), cdc::mod_fido2::fido2_ui_get_list_view(), getName(), and cdc::core::MAIN_MENU.
|
inlineoverridevirtual |
Get service name (for logging/debugging)
Implements cdc::core::IService.
Definition at line 9 of file Fido2Module.h.
Referenced by getMenuItems(), getSlotRequest(), init(), start(), and stop().
|
overridevirtual |
Declares slot requirements for FIDO2 module.
Reimplemented from cdc::core::IModule.
Definition at line 231 of file Fido2Module.cpp.
References getName(), cdc::core::IModule::SlotRequest::mapName, cdc::core::IModule::SlotRequest::minEccSlots, and cdc::core::IModule::SlotRequest::minRmemSlots.
|
inlineoverridevirtual |
Get current service state
Implements cdc::core::IService.
Definition at line 10 of file Fido2Module.h.
|
inlineoverridevirtual |
Returns the module version string.
Implements cdc::core::IModule.
Definition at line 18 of file Fido2Module.h.
|
overridevirtual |
Initializes FIDO2 module resources and slot mapping.
Implements cdc::core::IService.
Definition at line 117 of file Fido2Module.cpp.
References cdc::core::ModuleRegistry::clearModuleErrorByName(), cdc::core::ERROR, fido2_storage_set_slot_range(), cdc::mod_fido2::fido2_ui_init(), cdc::mod_fido2::FIDO_QUEUE_SIZE, getName(), cdc::core::INITIALIZED, cdc::core::ModuleRegistry::instance(), LOG_E, LOG_I, cdc::core::ModuleRegistry::registerModule(), cdc::core::ModuleRegistry::reportModuleError(), cdc::mod_fido2::s_rx_queue, and TAG.
|
static |
Returns the singleton instance of the FIDO2 module.
Definition at line 108 of file Fido2Module.cpp.
|
overridevirtual |
Stores slot range assignment.
| range | Slot assignment from registry. |
Reimplemented from cdc::core::IModule.
Definition at line 223 of file Fido2Module.cpp.
|
overridevirtual |
Starts FIDO2 module, USB HID interface, and core stack.
Implements cdc::core::IService.
Definition at line 158 of file Fido2Module.cpp.
References cdc::core::UsbInterfaceSpec::callbacks, cdc::core::UsbInterfaceSpec::cls, CTAPHID_PACKET_SIZE, cdc::core::UsbInterfaceSpec::epInSize, cdc::core::UsbInterfaceSpec::epOutSize, cdc::core::ERROR, cdc::core::EventBus::eventMask(), cdc::core::Fido, fido2_init(), fido2_is_initialized(), fido2_set_user_presence_callback(), cdc::mod_fido2::fido2_ui_abort_prompt(), cdc::mod_fido2::fido2_ui_user_presence_callback(), getName(), cdc::core::UsbInterfaceSpec::hasOut, cdc::core::Hid, cdc::core::INITIALIZED, cdc::core::EventBus::instance(), cdc::core::ModuleRegistry::instance(), cdc::core::UsbManager::instance(), LOG_I, LOG_W, cdc::core::UsbInterfaceSpec::name, cdc::mod_fido2::onFidoGetReport(), cdc::mod_fido2::onFidoReportComplete(), cdc::mod_fido2::onFidoSetReport(), cdc::core::UsbHidCallbacks::onGetReport, cdc::core::UsbHidCallbacks::onReportComplete, cdc::core::UsbHidCallbacks::onSetReport, cdc::core::UsbInterfaceSpec::protocol, cdc::core::UsbInterfaceSpec::reportDesc, cdc::core::UsbInterfaceSpec::reportDescLen, cdc::core::ModuleRegistry::reportModuleError(), cdc::mod_fido2::s_fido_report_desc, cdc::mod_fido2::s_hid_instance, cdc::core::STARTED, cdc::core::STOPPED, cdc::core::SYSTEM_SLEEP_INCOMING, TAG, and cdc::core::UsbManager::unregisterInterface().
|
overridevirtual |
Stops FIDO2 module and unregisters USB interface.
Implements cdc::core::IService.
Definition at line 213 of file Fido2Module.cpp.
References cdc::core::Fido, fido2_storage_counter_flush(), getName(), cdc::core::UsbManager::instance(), cdc::core::STOPPED, and cdc::core::UsbManager::unregisterInterface().