CLI tool for managing your 2FA authentication codes written in pure Rust.

Overview

(O)TP (VA)ULT - ova. clipboard

ova is a simple CLI tool which lets you manage your TOTPs, or basically lets you get your two-way authentication code straight to your clipboard.

  • Project is in active development state, if something's not working the way it should work, you're more than welcome to open an issue.

Available commands

Command Options Description
ova get -n, --name <name of a key>, -c, --copy <true/false> Get 2FA code for specified key, copy to clipboard determined by -c flag
ova add -n, --name <name of a key>, -k, --key <2FA secret> Store your key locally at ~/.config/ova.store or '%USERPROFILE%\AppData\Local'
ova remove -n, --name <name of a key> Remove key from local store file
ova update -n, --name <name of a key>, -k, --key <new secret value> Update key if it exists
ova list no options List all stored keys and their secrets
ova help no options Provide description for all the commands

Note that ova help could be executed per subcommand as well, like ova add help which provides a description for chosen subcommand.

Dependencies

ova depends on xclip or wl-copy to use system-wide clipboard.

  • Linux X11 - xclip should be installed
  • Linux Wayland - wl-copy should be installed

Windows & Mac OS does not require any additional setup as they use powershell 😣 and osascript respectively.

Install

You can install ova via

cargo install ova

Or use precompiled binaries provided as releases.

Currently tested with

  • Bitwarden
  • Facebook
  • Twitter

What's to do

  • Storing keys in a local file πŸŽ‰
  • Fully working get, add, list commands πŸŽ‰
  • Fully working remove and update commands πŸŽ‰
  • Copy to clipboard working on Windows, Mac OS and Linux
  • Pretty print
  • Rewrite windows copy method to winapi and throw away powershell 😣
  • More to come...

Credits

Icon by BomSymbols

You might also like...
End-to-end encryption and mutual authentication for distributed applications.
End-to-end encryption and mutual authentication for distributed applications.

✨ Hands-on Introduction: Build end-to-end encrypted, mutually-authenticated, secure messaging in Rust ✨ Rust and Elixir libraries for end-to-end encry

LibreAuth is a collection of tools for user authentication.

LibreAuth is a collection of tools for user authentication. Features Password / passphrase authentication no character-set limitation reason

A simple self-contained CLI tool that makes it easy to efficiently encrypt/decrypt your files.

cryptic A simple self-contained CLI tool that makes it easy to efficiently encrypt/decrypt your files. Contents Features Building Usage License Featur

Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

Collection of cryptographic hash functions written in pure Rust

RustCrypto: hashes Collection of cryptographic hash functions written in pure Rust. All algorithms reside in the separate crates and implemented using

A prototype implementation of the Host Identity Protocol v2 for bare-metal systems, written in pure-rust.
A prototype implementation of the Host Identity Protocol v2 for bare-metal systems, written in pure-rust.

Host Identity Protocol for bare-metal systems, using Rust I've been evaluating TLS replacements in constrained environments for a while now. Embedded

An encrypted multi client messaging system written in pure Rust

🚩 Preamble This is a pure Rust multi-client encrypted messaging system, also known as Edode's Secured Messaging System. It is an end-to-end(s) commun

Collection of block cipher algorithms written in pure Rust

RustCrypto: block ciphers Collection of block ciphers and block modes written in pure Rust. Warnings Currently only the aes crate provides constant-ti

A challenge agent for Optimism written in pure Rust.
A challenge agent for Optimism written in pure Rust.

op-challenger β€’ Note Work in progress. A set-and-forget challenge agent for the OP Stack written in pure Rust πŸ¦€ Usage op-challenger [OPTIONS] \ --l

Comments
  • chore(deps): bump coverallsapp/github-action from 1 to 2

    chore(deps): bump coverallsapp/github-action from 1 to 2

    Bumps coverallsapp/github-action from 1 to 2.

    Release notes

    Sourced from coverallsapp/github-action's releases.

    v2

    Notable changes:

    Upgrading (v1 -> v2)

    • Option path-to-lcov is now deprecated, use file instead.

    • You can also skip using the file option and coveralls will try to find all supported coverage files and combine their data.

    • If coveralls fails to determine your coverage report format, use explicit format option to specify it. See supported values.

    v2.0.0-rc3

    No release notes provided.

    v2.0.0-rc2

    No release notes provided.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • feat: allow user to encrypt keys stored in a store file

    feat: allow user to encrypt keys stored in a store file

    Purpose of this issue

    Currently, software only stores raw string data provided by user without any encryption of it, which is a security problem in my opinion. Users should be able to encrypt their keys, but this won't be forced.

    What should be addressed

    • Determine suitable encryption algorithm
    • Implement encryption without forcing it
    • Implement decryption for encrypted keys
    • Cover with proper tests
    enhancement 
    opened by gpskwlkr 0
  • feat: Using all possible algorithms

    feat: Using all possible algorithms

    Purpose of this issue

    Currently only SHA1 algorithm is being used, if the key inserted by user uses different algorithm, there will be an error.

    What should be addressed

    • Falling back to SHA256 or SHA512 algorithms if first attemp fails.
    • Proper tests coverage for get_2fa_code function
    enhancement 
    opened by gpskwlkr 0
Releases(0.1.6)
Owner
Giorgi Anakidze
.NET Developer with 4 years of experience. | stuck in vim. | in love with Rust πŸ¦€. | based in Tbilisi, Georgia πŸ‡¬πŸ‡ͺ.
Giorgi Anakidze
πŸ—‚οΈ A simple, opinionated, tool, written in Rust, for declaratively managing Git repos on your machine.

gitrs ??️ A simple, opinionated, tool, written in Rust, for declaretively managing Git repos on your machine. "simple" - limited in what it supports.

Colton J. McCurdy 14 May 30, 2023
A command line tool for managing financial investment portfolios written in Rust.

A command line tool for managing financial investment portfolios written in Rust. This project is the modern successor of finance. Installation You ca

Markus Zoppelt 15 Dec 21, 2022
Lockbox is a command-line tool for generating and managing passwords

Lockbox is a command-line tool for generating and managing passwords. It uses strong encryption algorithms to securely store your passwords, so you can be sure that your data is safe.

Sonu Bardai 15 Oct 9, 2023
The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Knowledge (ZK) proofs.

zk_whitelist: A Zero Knowledge Whitelist Tool The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Kno

Nikos Koumbakis 4 Nov 21, 2023
Ethereum key tool - Lightweight CLI tool to deal with ETH keys written in rust

ekt - Etherum Key Tool ekt is a lightweight tool to generate ethereum keys and addresses. Installation Either clone it and run it with cargo or instal

null 5 May 8, 2023
Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format.

What is it? Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format. Security Dexios-Core uses

brxken 3 Jul 4, 2022
Elegant and simple software for managing personal finance.

kash Elegant and simple software for managing personal finance. ⚠️ This project is still a work-in-progress. Author Kees van Voorthuizen License Licen

Kees van Voorthuizen 4 Oct 17, 2022
gRPC client/server for zero-knowledge proof authentication Chaum Pederson Zero-Knowledge Proof in Rust

gRPC client/server for zero-knowledge proof authentication Chaum Pederson Zero-Knowledge Proof in Rust. Chaum Pederson is a zero-knowledge proof proto

Advaita Saha 4 Jun 12, 2023
A safe implementation of the secure remote password authentication and key-exchange protocol (SRP), SRP6a and legacy are as features available.

Secure Remote Password (SRP 6 / 6a) A safe implementation of the secure remote password authentication and key-exchange protocol (SRP version 6a). Ver

Sven Assmann 10 Nov 3, 2022
Use Touch ID / Secure Enclave for SSH Authentication!

SeKey About SeKey is a SSH Agent that allow users to authenticate to UNIX/Linux SSH servers using the Secure Enclave How it Works? The Secure Enclave

SeKey 2.3k Jan 5, 2023