nixtropic¶
Open-source firmware that turns the Tropic Square TS1302 USB devkit into a FIDO2 and OpenPGP security key, with keys held in the TROPIC01 secure element.
The TROPIC01 is an open-architecture secure element. nixtropic runs on the board's STM32U535 microcontroller, speaks the two standard security-key protocols over USB, and keeps the keys inside the chip. It is built reproducibly with Nix and tested against a simulated chip, with planted bugs, and on real hardware.
Development release — not a production security key
v0.3 uses Tropic Square's public development pairing key: anyone holding the dongle can make it sign. It fixes the known host-side attack paths of v0.2 and stores no readable secrets on the chip; it does not defend against physical attacks. Read the security model before you rely on it.
-
FIDO2 / WebAuthn
Passkeys and security-key logins. EdDSA and ES256 keys generated and used inside TROPIC01; PIN,
alwaysUv, credential management. -
OpenPGP card
gpgsigning, decryption and SSH throughgpg-agent. Ed25519 keys inside TROPIC01; the X25519 decryption key sealed under your PIN. -
Chip-enforced PIN limits
Every guess consumes MAC-and-Destroy state on the chip that only the right PIN restores. No PIN hash is stored anywhere.
-
Fault-tolerant state
Settings and PINs are mirrored and read back. One power cut, lost reply or damaged slot never grants access or undoes a completed change (limits).
-
User presence
Button SW1 and the LED confirm every FIDO2 registration and login, and by default every OpenPGP signature, decryption and SSH login.
-
Reproducible
Every input pinned.
nix buildproduces the same firmware from the same commit;nix runflashes it.
Get started¶
-
Check the chip firmware, enter DFU mode, flash with or without Nix.
-
pcscd,scdaemon, udev rules and the libccid patch; a NixOS module does it all. -
The OpenPGP card with Gpg4win and Kleopatra; FIDO2 status.
-
PINs, touch policy, key generation, resets.
-
What each kind of reset changes, and how to get back.
Under the hood¶
Architecture · Hardware · Design decisions · Security model · Testing · Status · Roadmap