6 releases
0.6.3 | Sep 30, 2024 |
---|---|
0.6.2 | Sep 30, 2024 |
0.6.1 | Aug 1, 2024 |
0.6.0 | Jul 31, 2024 |
0.5.4 | Dec 8, 2021 |
#157 in Authentication
367 downloads per month
84KB
2K
SLoC
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 vault 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
- Create vault (
init [subfolder] [name]
) - Show passwords (
[ls] [subfolder]
) - Find matching names (
find pass-names...
)- Cleanup printing to account for no further entries that match
- Show password (
[show] pass-name
)- Clipboard support (
[--clip,-c]
) - QRCode generation (
[--qrcode,-q]
)
- Clipboard support (
- Grep all plaintext passwords (
grep [GREPOPTIONS] search-string
) - Insert password (
insert pass-name
)- Show password (
[--echo,-e]
) - Force overwrite (
[--force,-f]
) - Multiline support (
[--echo,-e | --multiline,-m]
)- Clip line numbers (
--clip[=line-number],-c[=line-number]
)
- Clip line numbers (
- Show password (
- Edit password (
edit pass-name
) - Generate password (
generate,gen
)- Insert into storage (
[pass-name]
) - No special characters (
[--no-symbols,-n]
) - Clipboard support (
[--clip,-c]
) - Inline support? (
[--in-place,-i]
) - Force overwrite (
[--force,-f]
) - Custom length (
[--length,-l]
)
- Insert into storage (
- Delete password/path (
rm pass-name
)- Recursive (
[--recursive,-r]
) - Force overwrite (
[--force,-f]
)
- Recursive (
- Move password (
mv [--force,-f] old-path new-path
) - Copy password (
cp [--force,-f] old-path new-path
) - Git support (
git git-command-args...
) - Show help (
help
) - Show version (
version
) - Multi-vault management (
vault
)- List vaults (
list
) - Select default vault (
set vault-name
) - Rename vaults (
rename old-name new-name
) - Delete vaults (
delete vault-name
) - Move vaults (
mv vault-name new-path
)
- List vaults (
Refactoring
- Cleaner argument parsing
- Better usage on command parse error
- Unit tests
- Smarter configuration storage
- Libify
passrs
with separatebin
compilation
Dependencies
~6–21MB
~241K SLoC