Skip to content

Picofido 7.6 support#94

Open
kralonur wants to merge 7 commits into
librekeys:mainfrom
kralonur:feat/picofido-7.6-support
Open

Picofido 7.6 support#94
kralonur wants to merge 7 commits into
librekeys:mainfrom
kralonur:feat/picofido-7.6-support

Conversation

@kralonur
Copy link
Copy Markdown

@kralonur kralonur commented May 14, 2026

Checklist

  • Code compiles without errors
  • Code is formatted using cargo fmt
  • All tests are passing
  • Extended the documentation with the changes made in the code
  • Added myself to the CREDITS.md file
  • Requested review from one of the maintainers

Description

This PR updates PicoForge’s FIDO compatibility for newer Pico-FIDO firmware, especially 7.6, while preserving the legacy FIDO hardware config path for firmware 7.0 and 7.2.

Pico-FIDO 7.6 changed/removed parts of the vendor-facing FIDO configuration surface that PicoForge previously assumed were always available. This caused PicoForge to parse GetInfo incorrectly and attempt unsupported vendor reads/writes in FIDO mode.

Proposed changes

  • Split raw HID response handling from CTAP CBOR response handling so PicoForge can read Pico-FIDO 7.6 management data from HID command 0xC2.
  • Parse Pico-FIDO 7.6 GetInfo vendor config commands from key 0x15, while still supporting older shapes.
  • Stop using removed legacy memory/physical vendor reads for newer firmware.
  • Preserve FIDO hardware configuration for Pico-FIDO 7.0 and 7.2.
  • Require rescue mode for unsupported hardware configuration on newer FIDO firmware.
  • Update the configuration UI so FIDO hardware controls are enabled only when the connected firmware supports them.
  • Add parser and validation tests for the new firmware handling.

This should be accepted because it fixes PicoForge compatibility with current Pico-FIDO firmware without breaking existing supported 7.0/7.2 behavior.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring / Code style change
  • Add packaging for a new platform

UI Changes (Optional)

  • Screenshots / Videos: N/A

@lockedmutex lockedmutex self-requested a review May 16, 2026 16:04
@lockedmutex lockedmutex added the enhancement New feature or request label May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants