An hardware password wallet. https://www.autistici.org/interzona/ardubroke.html

cage e36ead9307 Delete 'README' 2 months ago
lib c2203086af - fixed aux button test again (i will not pass the fixxbuzz test! ;-)); 6 years ago
COPYING 91bcbc0401 - initial commit. 6 years ago
COPYING.lesser 91bcbc0401 - initial commit. 6 years ago
ChangeLog 91bcbc0401 - initial commit. 6 years ago
README.org f5ab8be4ff Added link to new repository. 2 months ago
ardubroke.ino f7fa04f7fb - moved delay before getting joystick's value. 6 years ago
db.h cc8c41e5ca - fixed a bug that prevent displaying data when browsing backwards. 6 years ago
ditaa-usage-button-diagram.png 5cc4f2e3a4 - changed email; 5 years ago
ditaa-usage-diagram.png 5cc4f2e3a4 - changed email; 5 years ago
joystick.h 91bcbc0401 - initial commit. 6 years ago
screen.h c2203086af - fixed aux button test again (i will not pass the fixxbuzz test! ;-)); 6 years ago

README.org

moved to: https://codeberg.org/cage/ardubroke/

IMPORTANT NOTE

This software is not for serious and safe password storage.

I am not a cryptographic expert, not a C programmer and not a good programmer at all, i just checked a couple of documents to modify the AES library that make the crypto works. This could bring bugs that *could make the security of the device, with this software running, inexistent*.

Do not use this software for anything except education purposes. Remember that there is no warranty.

Overview

Ardubroke is an hardware password wallet.

This document only explains how to use the software, for the hardware setup please go here.

Dependency

Libraries

  • SD library (Standard library in Arduino IDE);
  • custom AES library (in /lib/AES/);
  • custom OLED library (in /lib/OzOLED/).

Program

  • arduino IDE (gcc-avr etc...);

Hardware required

  • arduino uno board;
  • analog joystick module;
  • 0.96' I2C 128x64 OLED screen (1306 model)
  • [[https://oscarliang.com/arduino-oled-display-library/][Useful reference from the original author of the library]];
  • microsd (or sd) reader module (SPI interface);
  • button module;
  • a (micro)sd (formatted with a FAT32 filesystem).

Installation

  1. install the libraries in /lib/ subdirectory using the arduino IDE
  2. if you want to contribute to the project i think it is better to
  3. make a link of the libraries mentioned above to the same directory
  4. compile the software and load to the arduino board.
  5. format the SD with a FAT32 filesystem;
  6. generate a IV file
  7. #+BEGIN_SRC sh cat /dev/random > iv.dat #+END_SRC
  • press C^c after some seconds to stop the generation of the file, but
  • check that its size was at least 8 octects.
  1. copy "iv.dat" into the sd (the root of the sd);
  1. insert the sd into the slot of the card reader;
  1. power the device;
  1. A prompt asking for password will appear, write a password moving
  2. the joystick;
  1. press the joystick button.

Usage

Because of my poor english the usage is summarized in the diagram below:

---------+ | ask | |password | +----+----+ | | press joystick | V press joystick +--------- left --------- right --------- press joystick --------------- add <-------- browse -------> delete ----------------+ | for more than | entry | | entries | | entry | for more than | | 0.8 ms +----+---- ----+---- ----+---- 0.8 ms | | | ^ | | | | | | | | press | joystick | press | joystick | | | | | | | | | | | | | | | | | | | | | | | | | | | v -+- v | --------------------+----------------> <---------------+---------------------+ new entry added | | entry deleted +=--

The auxiliary button can be user for a faster editing:

------------ uppercase letter? -----------+ | press +------------------------> lowercase | | aux button | -----------+ +----+--+----+ | | lovercase letter? +-----------+ | +-----------------------------> uppercase | | -----------+ | | space? +-----------+ +--+-----------------------------> letter 'A'| -----------

  • If the button is keep pressed the character under the cursor will be
  • deleted (acually replaced with a space) and the cursor will go one character back.
  • If the button is keep pressed while browsing entries this will slow
  • down the browsing process.

Contributing

Any help is appreciated. If you intend to contribute please send a message to: cage-dev at twistfold dot it.

Bugs

Please send bug reports to: cage-dev at twistfold dot it, or open an issue on the website where the original repository is.

NO WARRANTY

This works is © 2017 cage

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Thanks

  • All friends and collegues for the support and all the good ideas! :)
  • All the original libraries'authors.