passrs

A Rust implementation of zx2c4's pass password manager.

How it works

This is written to solve the issue of easy sharing of passwords with non-technical users.

It stores XChaCha20Poly1305 keys per directory, and stores the XNonce on line 1 of the password file, and the encrypted password on line 2.

passrs aims to be as close to compatible with pass, with few exceptions.

Usage

passrs init [subfolder] Initialize a new password store with a new key. passrs [ls] [subfolder] List passwords. passrs find pass-names... List passwords that match pass-names. passrs [show] [--qrcode,-q] [--clip,-c] pass-name Show existing password. Optionally, show password as a QR code. Optionally, copy password to clipboard. passrs grep [GREPOPTIONS] search-string Search for password files containing search-string when decrypted. passrs insert [--echo,-e] [--force,-f] pass-name Insert new password. Optionally, echo the password back to the console during entry. Prompt before overwriting existing password unless forced. passrs edit pass-name [--echo,-e] Insert a new password or edit an existing password. passrs generate [--echo,-e] [--no-symbols,-n] [--force,-f] pass-name [pass-length] Generate a new password of pass-length (or 32 if unspecified) with optionally no symbols. Prompt before overwriting existing password unless forced. Optionally, echo the password back to the console. passrs rm [--recursive,-r] [--force,-f] pass-name Remove existing password or directory, optionally forcefully passrs mv [--force,-f] old-path new-path Renames or moves old-path to new-path, optionally forcefully, re-encrypting as it goes. passrs cp [--force,-f] old-path new-path Copies old-path to new-path, optionally forcefully, re-encrypting as it goes. passrs git git-command-args... If the password store is a git repository, execute a git command specified by git-command-args. passrs help Show this help text. passrs version Show version information.

TODO

Commands

Refactoring