🐴 RusTOTPony

crates.io build

CLI manager of time-based one-time password generators. It is a desktop alternative to Google Authenticator.

Installation

Arch Linux

Packages, available in AUR:

Other

Grab an appropriate binary from the latest release and put it in a place of your choice. If you're on the *nix system, don't forget to set proper permissions: chmod +x totp.

Build manually

From crates.io

Make sure you have $HOME/.cargo/bin in your $PATH.

shell cargo install rustotpony

From source

  1. Clone this repo
  2. Run cargo install from the inside of the repo directory
  3. Keep calm and wait for the compilation

Probably, you will need gcc (Linux) or clang (Mac OS) to compile dependencies.

Usage

```text $ totp help 🐴 RusTOTPony 0.3.2

Manager of one-time password generators

Usage: totp [COMMAND] Commands: dash Show realtime dashboard with all generators list List all generators add Add a new generator delete Delete a generator rename Rename a generator eradicate Delete all generators help Print this message or the help of the given subcommand(s)

Options: -h, --help Print help information -V, --version Print version information ```

Choose your password wisely

At the very first run, totp asks for a password for a new database. It's located at $HOME/.rustotpony/db.json (don't be confused by json extension it's a binary file in fact). If you forget the password or want to change it, you have to remove $HOME/.rustotpony directory. It's not convenient, but I'm going to improve usability and add a command for changing the password.

Basic scenario

  1. Retrieve a secret key from your TOTP provider (it must be encoded with base32, for example, GEZDGMZSGE2TKCQ=)

    shell $ # Creating a fake secret key for demo purposes $ echo 123321555 | base32 GEZDGMZSGE2TKNIK

  2. Add new generator with totp add <NAME> (you will be asked for a secret and a password)

    shell $ # Adding a new TOTP generator $ totp add demo Enter your secret code: Enter your database pass: New application created: demo

    If it's not the first run, you'll be asked for a password twice: for opening the database and for saving it.

  3. Use totp list to check your secrets

    shell $ # Listing all secrets in the database $ totp list Enter your database pass: +------+------------------+----------+ | name | key | username | +------+------------------+----------+ | demo | GEZDGMZSGE2TKNIK | | +------+------------------+----------+

  4. Use totp dash or just totp for real-time dashboard

    shell $ # Display real-time dashboard with all generators $ totp Enter your database pass: Welcome to RusTOTPony realtime dashboard! Press ^C to quit. [============================================= ] 009216 demo

  5. After hitting ^C it'll clean up the dashboard

    shell $ totp Enter your database pass: I won't tell anyone about this 🤫

TODO

License

Licensed under the MIT License.