7€ USB Password Stick

i just finished the first Version of my USB-Password Stick, based on an CJMCU Leonardo Beetle, that fits my needs. Keep in mind, that this project does not compare to passkeepers as the Mooltipass; neither in safety, nor in amount of features.
I did this project just for my needs, but maybe it could be useful for someone else, too.
All the credits belong to the autors of the libs that i used!

First, i’m sorry for my terrible english!

Hardware needed:
CJMCU Beetle or similar, 32k needed!

.fully controlable with capslock/numlock/scrolllock
.enter password or username and password
.edit passwords in any textfield/notepad
.edit easily by using the serial interface (e.g. termite, chrome serial monitor,…)
.even editable when COM ports are locked by using the keyboard-serial-terminal.exe that uses capslock/numlock/scrollock as simple serial interface!
.generate new passwords by using a Vigenere Cipher (using a magic-word and a seed)
.partly german capable (qwertz, but sadly no öäü…)

.attach the stick to the PC’s USB port
.set the cursor to any textfield (eg. username field of explorer) or where ever you need to enter a username/password (or use the notepad)

.press the CAPSLOCK Button on the keyboard 3 times (swiftly)
.press the CAPSLOCK once to step through the stored passwords (or options)
.press the CAPSLOCK twice to activate the selected password (or option)
.press the CAPSLOCK 3 times to exit the passwordmanager

.press the CAPSLOCK 5 times to get into the options menue
.in the payload editor (password editor):
.press the CAPSLOCK one to get to the next character
.press NUMLOCK to increase the selected character
.press SCROLLOCK to decrease the selected character
.press the CAPSLOCK 5 times to exit the editor
.press the CAPSLOCK 5 times to exit the options menue

The serial-interface:
.connect to the COM port oft the stick with 9600
.login by typing: -login yourpassword
.at the first start, there’s no password set!
.-h to get a list of available commands
.-l to get a list of all stored passwords
.-r id newname to rename the entry (e.g. -r 3 TEST)
.-e id newpayload to set a new payload/password (e.g. -e 3 myusername mypassword)
.-d id to delete an entry
.-n name username password to add a new password (space will be translate to TAB!!)
.-g name username magicword seed to generate a new password. magic word and seed are optional, if not given, the values stored in the stick will be taken
.-i to check the available memory
.-ls to reload the stored setup/passwords
.-ss to save the current setup/passwords to eeprom

The Keyboard-Serial-Interface:
Use this option, if there’s no COM port available (no driver or locked).
The attached Keyboard-Serial-Terminal.exe will send the the commands to your stick by toggling the capslock/numclock/scrollock leds of your keyboard. So don’t be scared, if the keyboard leds will begin to go on /off automatically!
.start the Keyboard-Serial-Terminal.exe
this will set the USB stick to the special mode!
.use the same commands and login as in the normal serial interface
.type -q to exit the Keyboard-Serial-Terminal.exe and bring the USB Stick back to normal mode!!
The response from the sub stick could be disruped.

PasswordStick_Leonardo_V1g-160412a.zip (292 KB)

main.cpp (3.01 KB)

KeyboardLedTerminal.zip (392 KB)