This is an implementation of CanoKey for Raspberry Pi Pico 2.
Warning:
This CanoKey port for Raspberry Pi Pico 2 is in early development stages and under active development. The code has not been thoroughly tested and may function incorrectly or fail to function. Use at your own discretion.
CanoKey is an open-source USB security token implementing multiple authentication standards and protocols. This port enables running CanoKey firmware on the Raspberry Pi Pico 2 microcontroller board.
- OpenPGP Card V3.4 with support for:
- RSA
- ECDSA
- ED25519
- PIV Card
- Time-based and HMAC-based One-Time Passwords:
- TOTP (RFC6238)
- HOTP (RFC4226)
- U2F authentication
- FIDO2 (WebAuthn)
The software is compatible with modern operating systems including Linux, Windows, and macOS without requiring additional drivers. Please note that NFC functionality is not currently supported.
Important security notice:
This Raspberry Pi Pico 2 version comes with significant security limitations:
- No security guarantees or warranties are provided
- Physical access to the device enables extraction of all data, including secret keys
- The implementation is vulnerable to side-channel attacks
- Usage is entirely at your own risk
For a security-hardened version, please visit canokeys.org
To build and use canokey-pico2, you'll need:
- C/C++ development environment (GCC 9.0+ recommended)
- CMake (version 3.12 or higher)
- Raspberry Pi Pico SDK (1.5.0+)
- Micro USB cable for flashing
- Optional: Picoprobe or other SWD debugger for development
Detailed installation instructions coming soon. The process will involve:
- Setting up the build environment
- Installing required packages
- Configuring Pico SDK
- Compiling the firmware
- Getting source code
- Building with CMake
- Flashing to Raspberry Pi Pico 2
- Using bootloader mode
- Using SWD debugger
- Initial device configuration
- Setting up security parameters
- Testing basic functionality
TBD
TBD
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests
- Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/WorkingWarrior/canokey-pico2
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is licensed under the Apache 2.0 License.