Here you will find the source code running on the Mooltipass Mini BLE auxiliary and main microcontrollers.
The Mooltipass project is a complete ecosystem aimed at providing authentication solutions. It is composed of:
All Mooltipass devices (Mooltipass Standard, Mooltipass Mini, Mooltipass Mini BLE) are based on the same principle: each device contains one (or more) user database(s) AES-256 encrypted with a key stored on a PIN-locked smartcard. This not only allows multiple users to share one device but also one user to use multiple devices, as the user database can be safely exported and the smartcard securely cloned.
The firmwares in this repository are made for the device architecture shown above.
The Mooltipass Mini BLE is composed of two microcontrollers: an auxiliary one dedicated to USB and Bluetooth communications and a secure microcontroller dedicated to running all security features. You may read about the rationale behind this choice here. The device microcontrollers communicate with each other using a high speed serial link.
The auxiliary microcontroller mostly provides communication features.
Our USB interface provides three communication channels:
The Mooltipass Mini BLE uses the ATBTLC1000 to provide Bluetooth Low Energy connectivity. It currently provides two communication channels:
It is in our plans to provide two additional communication channels for Bluetooth:
Our user interface is the fruit of several years of work. It includes:
Our database model is documented here. Its main characteristics are:
At the time of writing, the Mini BLE can handle logins & passwords up to 64 unicode characters long.
Mooltipass devices can simulate key presses in order to type logins & passwords onto the computer they're connected to. As the "byte sent on the wire" to "actual character typed on the computer" conversion is handled by the computer itself, that meant the Mooltipass devices need to handle multiple keyboard layouts.
For the Mooltipass Mini BLE, we are parsing the CLDR to make sure we can type text on any device.
The Mooltipass team selected BearSSL for cryptographic routines. The remaining code was made from the ground up. The Mooltipass Mini BLE includes the following authentication features:
Creating these firmwares from the ground up allowed us to create a smooth user-experience, tailored to privacy-minded indviduals. Here are some things that are worth mentioning:
Device emulators are available for Windows and Ubuntu. Together with Moolticute, you will be able to test our complete ecosystem without a physical device.
The Mooltipass team welcomes contributions from open source enthusiasts!
Features requested by Mooltipass users can easily be seen by clicking on this link.
If you have even more spare time to contribute, the Mooltipass team is actively looking for contributors to:
Depending on the task, we could ship you one of our developpement boards (shown above), or you could also develop using our device emulator. Do not forget to review our contributing guidelines!
The following languages are currently supported:
If your language is not listed, get in touch with us to then be able to follow these instructions.
Get in touch with the development team and other Mooltipass enthuasiasts on our Mooltipass IRC channel: #mooltipass on irc.libera.chat