This repository contains the firmware of Nitrokey 3 USB keys.
The Nitrokey 3 firmware is written in Rust. It uses the Trussed firmware framework and is developed in collaboration with SoloKeys (see the solo2 repository).
Documentation for users is available in the Nitrokey 3 section on docs.nitrokey.com. For developer documentation, see the docs
directory.
To build the firmware from source, you need these dependencies:
- Rust (current stable release for the
thumbv8m.main-none-eabi
target with thellvm-tools-preview
component) - clang with development headers
flip-link
cargo-binutils
To flash the firmware to the device, you need mboot
or lpc55
.
This software is fully open source.
All software, unless otherwise noted, is dual licensed under Apache 2.0 and MIT. You may use the software under the terms of either the Apache 2.0 license or MIT license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310.