Password manager with Arduino-based encryption with hardware USB
Used components
- Arduino Pro Micro
- Buttons
- Display on the SSD1306 controller with a resolution of 128x32
Connecting the display
- SDA - D2
- SCL - D3
Connecting buttons
- Up - D6
- Down - D7
- Left - D8
- Right - D9
- Common Ground
This manager uses a set of characters A-Z uppercase and lowercase, a space character and the end of the line. Such a set is described by 6 bits, which allows you to store four characters in three EEPROM cells. When reading, passwords from cells are unpacked and decrypted, when writing, they are packed and decrypted. A randomly generated key encrypted with a master password is used for encryption. This algorithm allows you to have a complex sequence at the output if the master password is entered incorrectly.
The device types the password by emulating the keyboard. Four buttons are used to control the device. To enter into the fields, you can use both a set from the buttons of the device and via the serial port. Description fields are not encrypted, and their contents do not depend on the master password.
Used libraries
- Arduino Pro Micro - Keyboard
- GyverOLED
- GyverButton
- Arduino Cryptography Library