CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
Fido2Module.cpp File Reference
#include "mod_fido2/Fido2Module.h"
#include "cdc_core/ModuleRegistry.h"
#include "cdc_core/UsbManager.h"
#include "cdc_core/EventBus.h"
#include "cdc_log.h"
#include "mod_fido2/Fido2Ui.h"
#include "mod_fido2/fido2.h"
#include "mod_fido2/fido2_storage.h"
#include "mod_fido2/ctaphid.h"
#include "usb_badge/usb_hid.h"
#include <freertos/FreeRTOS.h>
#include <freertos/queue.h>
#include <string.h>

Go to the source code of this file.

Classes

struct  cdc::mod_fido2::FidoPacket

Namespaces

namespace  cdc
namespace  cdc::mod_fido2

Functions

static uint16_t cdc::mod_fido2::onFidoGetReport (uint8_t report_id, uint8_t report_type, uint8_t *buffer, uint16_t reqlen)
 USB HID callbacks for FIDO transport.
static void cdc::mod_fido2::onFidoSetReport (uint8_t report_id, uint8_t report_type, uint8_t const *buffer, uint16_t bufsize)
 HID SET_REPORT callback queuing incoming CTAPHID packets.
static void cdc::mod_fido2::onFidoReportComplete (uint8_t const *report, uint16_t len)
 HID transfer-complete callback (currently unused).
bool cdc::mod_fido2::fido2_usb_available ()
 Indicates whether at least one USB HID packet is queued for FIDO2.
bool cdc::mod_fido2::fido2_usb_ready ()
 Reports whether USB HID endpoint is ready for transmission.
uint16_t cdc::mod_fido2::fido2_usb_read (uint8_t *buffer)
 Reads one queued CTAPHID packet from USB RX queue.
bool cdc::mod_fido2::fido2_usb_write (const uint8_t *buffer)
 Sends one CTAPHID packet over USB HID.
void mod_fido2_register ()
 Registers FIDO2 module initializer.

Variables

static const char * TAG = "FIDO2"
static const uint8_t cdc::mod_fido2::s_fido_report_desc []
 FIDO U2F HID report descriptor (CTAPHID standard).
static constexpr size_t cdc::mod_fido2::FIDO_QUEUE_SIZE = 8
 Queue for incoming HID reports.
static QueueHandle_t cdc::mod_fido2::s_rx_queue = nullptr
static uint8_t cdc::mod_fido2::s_hid_instance = 0
 HID interface instance index assigned at registration time.

Function Documentation

◆ mod_fido2_register()

void mod_fido2_register ( )

Registers FIDO2 module initializer.

Definition at line 303 of file Fido2Module.cpp.

References cdc::core::ModuleRegistry::instance(), and cdc::core::ModuleRegistry::registerInitializer().

Variable Documentation

◆ TAG

const char* TAG = "FIDO2"
static

Definition at line 16 of file Fido2Module.cpp.