enigmastick

Project & source

Open by intention.
Built out of curiosity.

Enigma Stick is a homebrew hardware security module and a set of tools for exploring hardware-backed cryptography.

Coming soon - pending hardware validation

Where things stand

The next step
is a real board.

The firmware and host software are in development. Core cryptographic operations have been exercised on development hardware, including host-side interoperability checks for P-256 ECDSA and ECDH/HKDF, plus RSA-2048 signing and OAEP decryption.

The custom PCB is awaiting hardware validation. Supported operations in the implementation should not be read as validation of every key size, curve, or error path.

This is an open-source project, with no hardware sale planned at this time. The firmware and host library repositories are public and linked below. Hardware designs and companion application repositories are coming soon.

The project directory

One place to find the pieces.

Documentation lives here. Hardware project files, firmware, and application source will live with their repositories and releases.

Hardware

Board designs, schematics, and fabrication files for building a stick.

Coming soon

Firmware

ESP32-C3 firmware, the USB command interface, and SE051 integration.

View repository

Host library

The Rust library and C interface for talking to Enigma Stick.

View repository

CLI

Command-line access to device status, keys, and cryptographic operations.

Coming soon

Seal

File encryption with an Enigma-protected encryption key.

Coming soon

Keyring

A local secret store with encryption backed by Enigma.

Coming soon

A homebrew HSM, for fun

Explore the ideas.
Understand the boundaries.

The project is for learning, experimentation, and building interesting things with a secure element. It has not been independently security-audited.

Customer private and symmetric keys stay in the SE051. Applications still handle plaintext and PIN input, and the firmware manages authentication. Those boundaries matter when deciding how to use the stick.

The documentation covers keys and sessions, implemented mechanisms, and the USB interface.