7€ USB Password Stick

Hi,
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!

Features:
.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 öäü…)

User-Manual:
.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)