This is a major release that brings multiple improvements. Support for OTP for RP2350 and ESP32-S3 MCUs is added, which is used to store the MKEK for further security. It also enables Secure Boot and Secure Lock optionally. It also brings the new Pico Commissioner to initialize and configure the Pico HSM without external tools, just directly through the browser.
New
- Add PICO_PRODUCT.
- Add sdkdefaults for esp32.
- Add error if a non-supported key is attempted to be imported.
- Add management support for YKMAN.
- Add bullseye dockerfile.
- Add support to ESP32.
- Add macro to make checks.
- Add product and mcu to info in rescue mode.
- Add DEV key to OTP.
- Add command to enable secure boot and secure lock via rescue.
- Add function to enable secure boot and secure lock.
- Add macro to parse version file and set pico_binary_version accordingly.
- Add new led module to use colors whenever possible.
- Add partitions to RP2350.
- Add support to RP2350.
- Add sha256_alt to use sha256 hardware in RP2350.
- Add LED compatibility for other boards.
- Add json file to enable Secure Boot in RP2350.
- Add signature and copy_to_ram if supported.
- Add OTP read raw.
- Add parse phy byte string.
- Add OTP read raw.
- Add tinycbor to ESP32 build.
- Add usb.h declarations.
- Add compile flags for optimization build in ESP32.
- Add cmake scripts.
Enhancements
- Upgrade pico keys sdk.
- Upgrade Pico Keys SDK to add support for OTP.
- Upgrade to v3.6.2.
- Upgrade Pico Keys SDK to v7.0.
- Add LED compatibility for other boards.
- Add flags to enable secure boot and secure boot lock via firmware on boot.
- Fix emulation build.
- Improve multicore synchronization.
- Increase vStack depending on the number of interfaces.
- Increase vStack of core0 of ESP32.
- Increase vStack in core1 of ESP32.
- Fix partition 0 boot.
- Upgrade to MbedTLS 3.6.1.
- Specify led driver for each board.
- Merge pull request #5 from benallard/led.
- Add brightness to the LED mode.
Changes
- Update autobuild for local and esp32.
- Fix ESP32 support.
- Fix build.
- Fix TLV when returning the public key in get metadata.
- Fix return error when missing metadata.
- Fix returning error code when no object is found on GET DATA.
- Fix GET METADATA when ref is CARDMGM.
- Remove Secure boot build flags, since they are added to rescue.
- Fix secure otp build for non rp2350.
- No options on secure boot and lock in PHY.
- Fix write offset.
- Free x509 cert on finish.
- Use bullseye for tests.
- WCID interface is always enabled.
- Fix version header.
- Rename CCID_ codes to PICOKEY_.
- Add rescue app to communicate via webUSB.
- Increase number of hosted apps to 8.
- Fix HID report descriptors.
- Fix usb initialization for emulation.
- Fix PHY for led neopixel.
- Fix flash initialization for RP2350.
- Fix vendord usb tx buffer size.
- Fix long writes.
- Fix emulation write offset.
- Fix ccid write with offset.
- Fix emulation build without HID.
- Init low flash in core1 in emulation mode.
- Fix emulation build.
- Fix warnings.
- Fix windows build.
- Major refactor of USB CCID and USB HID interfaces.
- Fix when receiving a packet in the middle of a transmission.
- Fix when a keepalive packet collides with an ongoing transmission.
- select_app now invokes U2F or FIDO depending on the message.
- keepalive should be sent without conditions and without resetting any buffer.
- Fix thread cancel in ESP32.
- Rewritten continuous flow for HID.
- TinyUSB uses interface argument for that driver.
- Add usb.h declarations.
- thread management is now in usb stuff.
- driver_exec_finished_cont_hid() now accepts an itf argument.
- Fix LED blink when ON/OFF.
- Fix ESP32 GPIO led no.
- Fix BOOT press with RP2350.
- Fix USB descriptor in case only HID is enabled.
- Fix emulation build.
Bugfixes
- Fix macos alignment.
- Fix uninitialized var.
- Fix select aid to new callback.
- Fix write offset.
- Fix PHY missing headers.
- Fix uninitialized var.
- Fix secure otp build for non-rp2350.
- Fix maxPower and dwProtocols (recover T=0).
- In Windows, report ID shall start from 1.
- Fix float casting, otherwise, it is always 0.
- Fix ESP32 build with wcid.
- Fix ESP32 build with wcid.
- Fix PHY missing headers.
- Fix version header.
- Fix flash initialization for RP2350.
- Fix secure otp build for non-rp2350.
- Fix emulation build for ESP32.
- Fix uninitialized var.
- Fix write offset.
- Fix build.
- Fix long writes.
- Fix emulation write offset.
Full Changelog: v2.2...v3.0