The simple password manager for geeks, built with Rust.

Overview

Rooster

Rooster is a simple password manager for geeks (it works in the terminal).

CI

asciicast

Rooster is made available free of charge. You can support its development through Liberapay 💪

Features

Rooster has some unique goals:

  • it is easy to maintain so that it never becomes unmaintained
  • it works completely offline by saving your password in a single local file
  • it stores username/password combinations, nothing more, nothing less
  • it can import/export passwords from and to 1Password/JSON/CSV

Rooster protects your passwords with state-of-the-art cryptography algorithms:

  • scrypt for key derivation (n = 2^12, r = 8, p = 1 by default, customizable)
  • aes-256-cbc for encryption
  • hmac-sha512 for authentication

Supported operating systems include Linux, BSD and OSX. Windows is not supported at this time.

Installation

To install Rooster, run the following commands as root.

On Arch Linux, install Rooster from AUR.

On Void Linux, install Rooster from XBPS.

On Fedora:

dnf update -y
dnf install -y curl gcc unzip pkgconfig libX11-devel libXmu-devel python3 openssl-devel libsodium-devel
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
cargo install --root /usr rooster

On CentOS: instructions should be similar to Fedora, but it seems like libsodium is not available on CentOS and I haven't been able to figure out how to install it. If you know, please let me know.

On Debian:

apt-get update -y
apt-get install -y curl gcc unzip pkg-config libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libx11-dev libxmu-dev python3 libssl-dev libsodium-dev xsel
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
cargo install --root /usr rooster

On Ubuntu 16.04/18.04:

apt update -y
apt install -y curl unzip pkg-config libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libx11-dev libxmu-dev python3 libssl-dev libsodium-dev xsel
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
cargo install --root /usr rooster

On OSX:

brew install curl libsodium openssl
curl https://sh.rustup.rs -sSf | sh -s -- -y
cargo install --root /usr rooster

If you use Wayland instead of X11, install wl-clipboard and make sure you have the following environment variable set: XDG_SESSION_TYPE=wayland.

For other distributions, the various Docker files can help you find which dependencies you need.

Once you have installed Rooster (see instructions below), you can view documentation with:

rooster --help

Contributors

We welcome contribution from everyone. Feel free to open an issue or a pull request at any time.

Here's a list of existing Rooster contributors:

Thank you very much for your help! 😃 ❤️

License

The source code is released under the Apache 2.0 license.

Comments
  • Build error in Void linux

    Build error in Void linux

    Hi @conradkdotcom

    error: the listed checksum of `/builddir/rooster-2.7.1/vendor/backtrace-sys/src/libbacktrace/config.sub` has changed:
    expected: 3b739084e4b409aacf8531f87b57efa602eccdd17b5cddbc4ae1313a2c866f34
    actual:   82745ce935695e7984a053c155a64b9ad16ece3a07d931cc90ab3fb28b7221af
    

    What's wrong ? Regards.

    opened by ghost 21
  • Retyping master password & GUI

    Retyping master password & GUI

    I like to have a long master password, however without GUI I have to retype it for every operation, which is really bothersome. Is there a solution to this?

    opened by sumproxy 19
  • Check password strength with

    Check password strength with "rooster weak" command

    It would be awesome to have a way to see if we have any weak/hacked passwords in our Rooster file.

    What do you think ? Please post your thoughts here before working on this issue because we have to agree on the solution before we start coding.

    My thoughts:

    • https://crates.io/crates/zxcvbn is a nice crate, but it has a lot of dependencies (ie 3rd party code) and so it's difficult to audit, I don't want us to install crates that have so many dependencies because we lose track of what's inside, which could lead us to install viruses by mistake at some point (we've seen this happen recently with the https://kite.com fiasco and the NPM ecosystem)
    • I think having a way to quickly see which passwords are weak would be a good way to go, for instance rooster weak could show a list of weak passwords
    • I'd like to see if we can find a way to integrate with https://haveibeenpwned.com: this is not easy because it is a online service, and sending any password to it is a no-go. There is an archive of hacked passwords that we could use offline but it is 5Gb so that's a no-go as well. I'm not sure what we can do here. Maybe we could create a command that would fetch the 5Gb file only if the user agrees and then check if any of our passwords have been hacked ? I'd do that for my passwords.
    unassigned feature 
    opened by conradkleinespel 15
  • Analytics and tracking

    Analytics and tracking

    At some point, Rooster will include an "Analytics" module so that we can use data to make Rooster better. Let's see what this whole "Analytics" thing is about.

    Given the nature of Rooster, including some kind of tracking system inside of it could seem crazy. I get that. Matter of fact, when I am not sure what data is collected about me and/or don't understand what's being done with that data, I usually try to opt-out.

    And, just so you know, when Rooster gets analytics, there will be a way to opt-out.

    However, as with a lot of software projects, knowing what users do with the software helps in making it better. Here are some thing that I think Rooster could benefit from knowing:

    • The Rooster commands you use (rooster list, rooster get, etc): this information could be used to removed unused commands or improve heavily used ones,
    • Your locale: this could be used to translate Rooster documentation for heavily used languages,
    • Your operating system: this could be used to focus testing efforts on those systems for every new release, so as to not lose users,
    • Your version of Rooster: this could be used to drop support for older, unused versions, and focus development resources on what matters most.

    These things will help make Rooster better for every user, including you. So yeah, at some point, Rooster will track how you use it. If you don't want to be tracked, you will be able opt-out.

    Any feedback is welcome.

    opened by conradkleinespel 11
  • When I mistype my password, the warning message is scarier than necessary

    When I mistype my password, the warning message is scarier than necessary

    Hello again!

    Currently when I rooster get github, for example, and mistype my master password, the output looks like this:

    I could not upgrade the Rooster file. This could be because:
    - you explicitly told Rooster not to open the file,
    - your version of Rooster is outdated,
    - your Rooster file is corrupted,
    - your master password is wrong.
    Try upgrading to the latest version of Rooster.
    

    IMO rooster should know which scenario has occurred, and print just the most accurate thing.

    opened by maxjacobson 10
  • some ideas

    some ideas

    I hate issues for discussing stuff, but there we go:

    I was trying to build the same thing you've done with rooster, with two big differences

    The library is ultra fast and provides encryption which is going to last. (It's taken from djb's nacl after all), and the main consequence for this one would be having a better key derivation scheme - we definitely don't want to have SHA256 for keys :)

    • using sqlite3 as storage instead of a single flat file

    my reasoning for this one is having a file format which is well documented, stable and with all the bonus points of being almost drop-in compatible with android - which means less hassle for doing the mobile app.

    Thoughts? I'd be more than happy to discuss more on this, since I don't want to duplicate effort :)

    opened by qmx 9
  • build failed: failed to run custom build command for x11 v2.11.0

    build failed: failed to run custom build command for x11 v2.11.0

    Can't seem to get rooster to install on ubuntu. This can be reproduced exactly in a docker container:

    root@dockerhost:/# docker run -it ubuntu bash

    root@6a956b281c:/# apt-get update
     [ ... ]
    root@6a956b281c:/# apt-get install curl gcc make file sudo
     [ ... ]
    
    root@6a956b281c:/# curl -sSf https://static.rust-lang.org/rustup.sh | sh
    rustup: gpg available. signatures will be verified
    rustup: downloading manifest for 'stable'
    rustup: downloading toolchain for 'stable'
    ######################################################################## 100.0%
    gpg: assuming signed data in `/root/.rustup/dl/481cfcf7d473f81de22d/rust-1.12.1-x86_64-unknown-linux-gnu.tar.gz'
    gpg: Signature made Thu Oct 20 20:32:08 2016 UTC using RSA key ID 7B3B09DC
    gpg: Good signature from "Rust Language (Tag and Release Signing Key) <[email protected]>"
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: 108F 6620 5EAE B0AA A8DD  5E1C 85AB 96E6 FA1B E5FE
         Subkey fingerprint: C134 66B7 E169 A085 1886  3216 5CB4 A934 7B3B 09DC
    rustup: installing toolchain for 'stable'
    rustup: extracting installer
    install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
    install: installing component 'rustc'
    install: installing component 'rust-std-x86_64-unknown-linux-gnu'
    install: installing component 'rust-docs'
    install: installing component 'cargo'
    
        Rust is ready to roll.
    
    root@6a956b281c:/# cargo install rooster
     Updating registry `https://github.com/rust-lang/crates.io-index`
     Downloading rooster v2.3.0
     Downloading rpassword v0.2.3
     Downloading rustc-serialize v0.3.19
     Downloading clipboard v0.1.2
     Downloading byteorder v0.5.3
     Downloading rand v0.3.14
     Downloading libc v0.2.17
     Downloading getopts v0.2.14
     Downloading rust-crypto v0.2.36
     Downloading unix-daemonize v0.1.2
     Downloading time v0.1.35
     Downloading winapi v0.2.8
     Downloading kernel32-sys v0.2.2
     Downloading winapi-build v0.1.1
     Downloading gcc v0.3.38
     Downloading termios v0.2.2
     Downloading x11 v2.11.0
     Downloading pkg-config v0.3.8
       Compiling byteorder v0.5.3
       Compiling winapi v0.2.8
       Compiling winapi-build v0.1.1
       Compiling rustc-serialize v0.3.19
       Compiling gcc v0.3.38
       Compiling pkg-config v0.3.8
       Compiling kernel32-sys v0.2.2
       Compiling libc v0.2.17
       Compiling termios v0.2.2
       Compiling unix-daemonize v0.1.2
       Compiling x11 v2.11.0
       Compiling rand v0.3.14
       Compiling time v0.1.35
       Compiling rust-crypto v0.2.36
    Build failed, waiting for other jobs to finish...
    error: failed to compile `rooster v2.3.0`, intermediate artifacts can be found at `/tmp/cargo-install.Q8oAJxea4HXk`
    
    Caused by:
      failed to run custom build command for `x11 v2.11.0`
    process didn't exit successfully: `/tmp/cargo-install.Q8oAJxea4HXk/release/build/x11-0ca340fb7c96474d/build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "Failed to run `\"pkg-config\" \"--libs\" \"--cflags\" \"x11\"`: No such file or directory (os error 2)"', ../src/libcore/result.rs:788
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    opened by dvera 8
  • Add a way to store and retrieve files with Rooster

    Add a way to store and retrieve files with Rooster

    There is a possible use case for Rooster to store private keys, such as SSH or GPG keys, cryptocurrency account keys. But there is currently no convenient UI to do so. One can copy-paste file contents into rooster add input, but that wouldn't work with multiple lines.

    I propose adding a way for users to add passwords from a file path and to get passwords into a file path. This change wouldn't require to create any new entities in the interface or invent new commands. There are at least two ways to do so:

    1. Add an optional command-line flag -p <path> or -f <file> which can be used by different commands as a signal, that they have to interact with a specified file, rather than with stdin or clipboard. Suggested usage:

      • rooster add prod-ssh master -f ./id_rsa
      • rooster get prod-ssh -f ./id_rsa.

      This method has a flaw: -f flag is used sometimes as an input, sometimes as an output, therefore it might not always be clear what is does (as in rooster change someapp -f ./pwd for example).

    2. Add an optional positional argument [path] to the commands that accept it. Suggested usage:

      • rooster add prod-ssh master ./id_rsa
      • rooster get prod-ssh ./id_rsa.

      Every command will have to have an explanation of this argument's function in the help text.

    Same flag or argument could be added to change, generate and regenerate commands as well to ensure that commands act similarly.

    opened by yamnikov-oleg 7
  • Implement fuzzy searching into more subcommands

    Implement fuzzy searching into more subcommands

    Good day! Here is my humble contribution into the project :) Below I describe some of the design decisions I made, which you might want to correct.

    1. 784fd56: Created a function for fuzzy searching named list::search_and_choose_password, which basically combines PasswordStore::search_passwords and list::choose_password_in_list. This function is used throughout all the subcommands.

    2. 784fd56: Changed the behaviour of list::request_password_index_from_stdin (which led to change in behaviour of list::choose_password_in_list): made it return 0-based index of selected password instead of 1-based. I thought it would more intuitive and independent of the UI representation of the passwords list :)

    3. 9075715: Sometimes, when search results only contain one password, rooster asks user to "select password from 1 to 1". This commit makes rooster select the only result quietly without prompting the user.

    4. 4ed9b42: Move help text about fuzzy searching into rooster's usage text.

    5. 6b2efa3: Moved the function you recently created: commands::get::confirm_password_retrieved into the clip module since this code was also repeated in change and regenerate commands. My choice of module might not be the best, but it's the closest one by meaning I could think of :)

    Resolves #27.

    opened by yamnikov-oleg 7
  • Add wayland clipboard support

    Add wayland clipboard support

    • change paste_keys() to return a &'static str instead of a String

    Not sure how reliable cli_clipboard is but it seems to be working as intended. The problem might be that rooster will require wayland protocols to be installed in order to compile now (on Linux)

    Open to feedback

    opened by kamiyaa 6
  • Vendoring

    Vendoring

    All the dependencies are stores in the vendor directory.

    Except xcb. Until the author releases the latest patch (which makes sources generation deterministic to satisfy cargo's checksum test) and until both x11-clipboard and clipboard crates update their dependency version, xcb sources should live in the patch/rust-xcb directory, which is just a clone of v0.7.7 with a patch applied. But when xcb is updated, this directory and the [replace] section in Cargo.toml may be removed.

    A copy of xcb is still present in vendor/xcb because cargo for some reason wants to see it there but doesn't use it.

    You might probably want to leave a note for contributors to run cargo-vendor after updating dependencies :)

    Resolves #36

    opened by yamnikov-oleg 6
Releases(v2.10.0)
  • v2.10.0(Nov 26, 2022)

    Changes and new features in this release :tada:

    • Updates dependencies, most notably clap, for improved usability;
    • Fixes usage of Ctrl-U, thanks @LSchallot.
    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Jan 25, 2021)

    Changes and new features in this release :tada:

    • parsing is now done with clap, which vastly improves usability;
    • Wayland clipboard support has been added, see README.md for instructions;
    • export and import in CSV format is now available with rooster export/import csv;
    • export and import in 1Password's CSV format is now available with rooster export/import 1password;
    • export and import in json format has been moved to rooster export/import json;
    • scrypt parameters can now be set to anything, if you have specific security needs;
    • integration tests have been rewritten in pure Rust, making Rooster overall easier to test;

    Thanks @kamiyaa for your help on Wayland support!

    Source code(tar.gz)
    Source code(zip)
  • v2.8.6(Apr 19, 2020)

  • v2.8.5(Dec 5, 2019)

  • v2.8.4(Dec 3, 2019)

  • v2.8.3(Dec 3, 2019)

  • v2.8.2(Jun 23, 2019)

    Known to compile with Rust 1.33.0 and Cargo 1.33.0.

    Displays the username when using rooster get (or any other commands that copy a password to clipboard). This is useful for some websites where the username is complex enough that you can't remember it.

    Source code(tar.gz)
    Source code(zip)
  • v2.8.1(Apr 23, 2019)

  • v2.8.0(Apr 7, 2019)

    Known to compile with Rust 1.33.0 and Cargo 1.33.0.

    This release replaces the rust-crypto crate, which has been unmaintained since September 2016, with a combination of the openssl crate and libsodium, which are actively maintained. You will need openssl and libsodium installed on your system to use Rooster 2.8+.

    A new command has been introduced: rooster set-scrypt-params <log2n> <r> <p>. It can be used to set the parameters used by the scrypt key derivation function. This can be useful if you want to make brute-forcing your password file more difficult. For instance, you can set log2n = 15, which will make your computer take more time to decrypt your password file, the default being log2n = 12.

    Your existing Rooster file should continue working as before. I recommend you keep a backup of it, just in case a bug was inadvertently introduced in Rooster 2.8.

    The install.sh script has been removed in favor of distribution specific installation instructions.

    Source code(tar.gz)
    Source code(zip)
  • v2.7.1(Oct 29, 2017)

    Known to compile with Rust 1.21.0 and Cargo 0.22.0.

    Minor bugfix.


    To update Rooster, follow the installation instructions: https://github.com/conradkdotcom/rooster

    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(Oct 29, 2017)

    Known to compile with Rust 1.21.0 and Cargo 0.22.0.

    New import command

    You can now import passwords into Rooster from a JSON file:

    rooster import dump.json
    

    The import format is the same as the export format from rooster export.

    New weak command

    Rooster can now check if you have any weak passwords:

    Try it:

    rooster weak
    

    Fuzzy search everywhere

    None The add, delete, regenerate, rename and transfer now also support fuzzy search. This makes it easier to use these commands if you make a typo or have a lot of passwords saved with Rooster.

    For instance, try renaming your Google password with:

    rooster rename ggl NewGoogleName
    

    Previously, you had to type rooster rename google NewGoogleName.

    Thanks @yamnikov-oleg for this improvement!

    Code updates

    Thanks to @yamnikov-oleg, all 3rd party dependencies used by Rooster are now in Rooster's Github repository, which will make it easier to them after an update in the future.

    Thanks to @Eternity-Yarr, Rooster now uses serde for JSON serialization instead of the deprecated rustc-serialize.

    Thanks you both ! 👍


    To update Rooster, follow the installation instructions: https://github.com/conradkdotcom/rooster

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Jun 6, 2017)

    Known to compile with Rust 1.17.0 and Cargo 0.18.0.

    New transfer command

    Rooster has a new command: transfer. It allows you to update the username for an app.

    Imagine you had a YouTube password saved:

    rooster generate YouTube [email protected]
    

    Now, you change email addresses. Updating the email in Rooster is now easy:

    rooster transfer YouTube [email protected]
    

    No more double builds for Linux

    Previously, the install.sh script would build Rooster both in release and debug mode. This took a long time but was necessary because of a bug in the clipboard library we used.

    The bug has now been fixed and double builds have been removed.

    Enjoy fast installs ! :smiley:


    To update your rooster installation, you can run this new install script now:

    curl -sSL 'https://raw.githubusercontent.com/conradkdotcom/rooster/master/install.sh' | sh
    

    Feel free to inspect the code changes and let us know if you run into any trouble. Thanks!

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Apr 4, 2017)

    Known to compile with Rust 1.16.0 and Cargo 0.17.0.

    This release comes with a lot of improvements.

    Improved get command

    The new get command is smarter and especially useful if you have multiple passwords for the same site.

    Let's say you have a lot of Twitter accounts, one for each project you're working on. Previously, you'd have to do rooster list | grep -i twitter to see all of your Twitter accounts' exact names. Now, rooster get twitter shows you all passwords and allows you to select the one you want, with 1 command:

    selection_035

    In this example, you can see I typed 1 to select the TwitterFlyingCars password.

    No more grepping! :smiley:

    A few things to note here:

    • with rooster get twitterflyingcars, you'd immediately get the right password, just as before
    • the new get command is capable of "fuzzysearch", meaning rooster get twttr would work
    • rooster list is still here (more on that later!)

    New uninstall command

    With rooster uninstall, you can now get instructions on how to completely remove Rooster from your system.

    selection_034

    Improved list output

    The list command now has a bit cleaner output.

    selection_033

    Help commands and command validation

    You can now run help commands, like rooster get --help without having to type your master password first.

    selection_036

    Also, if you forget an argument for a command, like if you forget the username in rooster generate AppName, then Rooster will tell about that before asking you for your master password.

    selection_037

    Mistyping the master password

    When you mistype your master password, Rooster is now nicer with you and allows you to type it again. The wording has also been improved thanks to @maxjacobson in #12.

    selection_032

    Onboarding

    Onboarding is vastly improved. Dropbox users get special attention. Rooster will now help them setup password-file-sync if they wish to do so.

    selection_031

    Install script and Arch Linux package

    To top it off, we have a new installation script. That means you can install Rooster with just 1 command whatever OS you are using it on. And Arch Linux has its own AUR package.

    To update your rooster installation, you can run this new install script now:

    curl -sSL 'https://raw.githubusercontent.com/conradkdotcom/rooster/master/install.sh' | sh
    

    Feel free to inspect the code changes and let us know if you run into any trouble. Thanks!

    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Nov 20, 2016)

    Known to compile with Rust 1.13.0 and Cargo 0.13.0.

    This release improves info messages when copying a password to the clipboard fails. And it prevents passwords from being displayed to the terminal if copying to clipboard fails.

    Thanks @maxjacobson for the fixes: https://github.com/conradkleinespel/rooster/commit/79246240aa0a825ef61adf64a3ac7a533f8a468e and https://github.com/conradkleinespel/rooster/commit/0440c8e5303b11c7a2377285f98ecc5183975493.

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Nov 11, 2016)

    Known to compile with Rust 1.13.0 and Cargo 0.13.0.

    This release fixes compile time errors with newer Rust versions. It also removes a stub for a formerly planned analytics module within Rooster.

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Sep 25, 2016)

    Known to compile with Rust 1.11.0 and Cargo 0.12.0.

    This release fixes a bug where a password would not be persisted with add or generate if Rooster failed to copy it to the clipboard.

    Thanks a lot to @maxjacobson for the fix: https://github.com/conradkleinespel/rooster/commit/218940daff0fa6c0ea66d490577cafc3394d1b9b :+1:

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Aug 18, 2016)

    Known to compile with Rust 1.10.0 and Cargo 0.11.0.

    This release adds 2 new commands:

    • rename: rename an app name (easier than delete followed by add/generate)
    • change: change a password manually, like add but for an existing password.

    This release also allows deleting multiple apps with a single delete call, ie:

    rooster delete youtube dailymotion
    

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Jul 17, 2016)

    Known to compile with Rust 1.10.0 and Cargo 0.11.0.

    This release allows Rust to copy your passwords to the clipboard (on by default), and show them in the terminal via the -s (or --show) option.

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Mar 25, 2016)

    Known to compile with Rust 1.7.0 and Cargo 0.9.0.

    This is a bugfix release. It updates the project's dependencies and fixes compilation errors. No new features or Rooster file format changes.

    Run cargo install rooster in your terminal to update your version of Rooster.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Jan 11, 2016)

    Known to compile with Rust 1.5.0 and Cargo 0.7.0.

    If you are already using Rooster

    If you are using Rooster v1, make sure you backup your Rooster file before upgrading. We did our best ensuring the upgrade path was simple and reliable, but bugs happen. Better safe than sorry.

    Step by step upgrade instructions:

    • remove your old Rooster binary, most likely /usr/local/bin/rooster,
    • backup your existing Rooster file (seriously!),
    • install Rooster v2 by running the command cargo install rooster in your terminal.

    This should be enough. Now, you should be able to use Rooster as usual.

    If you are new to Rooster

    Step by step installation instructions:

    • install Rust & Cargo,
    • install Rooster v2 by running the command cargo install rooster in your terminal.

    Use rooster --help in your terminal to see what Rooster can do.

    Changelog

    • changes key derivation function from sha256 to scrypt,
    • adds Rooster file signature with HMAC-SHA512,
    • adds Rooster file versioning for easier future updates,
    • makes Rooster available on crates.io and Cargo via cargo install rooster,
    • adds change-master-password command for changing your master password,
    • adds export command for a JSON export of your passwords,
    • makes memory zeoring more consistent with SafeString and SafeVec data structures,
    • adds an .editorconfig file,
    • updates list of ideas to explore for Rooster's future versions.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Dec 2, 2015)

Owner
Conrad Kleinespel
Building a brand-new bank for SMBs @memobank, hacking on Rust-related stuff on the side
Conrad Kleinespel
A simple password manager written in Rust

ripasso A simple password manager written in Rust. The root crate ripasso is a library for accessing and decrypting passwords stored in pass format (G

Joakim Lundborg 550 Dec 30, 2022
A password manager coded in rust

pasman A password manager coded in rust Install Dependency rust Shell git clone https://github.com/AMTitan/pasman.git cd pasman cargo build --release

Arthur Melton 4 Nov 8, 2021
A lightning-fast password generator and manager written in Rust

Passlane A lightning-fast password manager for the command line Features Generate passwords Place the generated password into the clipboard Save previ

Anssi Piirainen 4 Dec 15, 2022
🐴 RusTOTPony — CLI manager of one-time password generators aka Google Authenticator

?? RusTOTPony CLI manager of time-based one-time password generators. It is a desktop alternative for Google Authenticator. Installation Arch Linux Pa

German Lashevich 23 Jan 5, 2023
The free password manager for power users

The free password manager for power users

null 312 Oct 22, 2022
A terminal-based password manager, generator, and importer/exporter (Firefox, Chrome) backed with a concurrent hashmap

rucksack A terminal-based password manager, generator, and importer/exporter (Firefox, Chrome) backed with a concurrent hashmap Features Password gene

null 6 Jan 18, 2023
CLI password manager with encryption: AES256, Salsa20 and Chacha20, with cross platform and exclusive features

Keep My House (CLI) CLI password manager with encryption: AES256, Salsa20 and Chacha20, with cross platform and exclusive features Features AES256 GCM

null 4 Sep 7, 2023
A Password Manager Using age for Encryption

A Password Manager Using age for Encryption Contents Features Usage Install Import from pass How It Works Features It is inspired by pass. senior's fe

Retirement Home 3 Nov 2, 2023
A pretty simple tool for password generation, written in Rust.

passwdgen A pretty simple tool for password generation, written in Rust. Usage: passwdgen - a pretty simple tool for password generation Usage: passw

Kirill Belolipetsky 9 Feb 19, 2023
Built for Perpetual Protocol v2 Curie on Optimism chain. This CLI tool was built with Rust.

Perpetual Protocol CLI for Perp v2 Curie This tool is to provide a simple, fast and efficient way to interact Perpetual Protocol contracts from your t

Brendan Wenzel 4 Jan 11, 2023
Master Password in Pure Rust

Master Password •••| This is the Rust version of the original found here. This can be used as a drop-in replacement for the reference C version, offer

Rust India 34 Apr 13, 2022
A Rust port of the password primitives used in Django Project.

Rust DjangoHashers A Rust port of the password primitives used in Django Project. Django's django.contrib.auth.models.User class has a few methods to

Ronaldo Ferreira 52 Nov 17, 2022
Ruo is a dictionary-based password cracker written in rust 🦀 .

Ruo is a dictionary-based password cracker written in rust ?? . The primary purpose is to crack weak hashes/commonly used passwords.

Asjid Kalam 10 Mar 6, 2022
A Rust port of the password primitives used in Django Project.

Rust DjangoHashers A Rust port of the password primitives used in Django Project. Django's django.contrib.auth.models.User class has a few methods to

Ronaldo Ferreira 52 Nov 17, 2022
Rust-based password mutator for brute force attacks

PWFuzz-RS A Rust-based password mutator for brute force attacks Disclaimer This tool works, but was mainly an experiment. Please do not expect frequen

Michael Taggart 6 Oct 31, 2022
Tool written in Rust to perform Password Spraying attacks against Azure/Office 365 accounts

AzurePasswordSprayer Tool written in Rust to perform Password Spraying attacks against Azure/Office 365 accounts. It is multi threaded and makes no co

Pierre 7 Feb 27, 2024
A very fast Rust tool to crack a password protected PDF (Dangerous ☠️)

DOCBOT A PDF password cracking tool with multi-threading capabilities, featuring password format generators for commonly used patterns and dictionary

Akhil Sharma 3 Mar 22, 2024
An implementation of the OPAQUE password-authenticated key exchange protocol

The OPAQUE key exchange protocol OPAQUE is an asymmetric password-authenticated key exchange protocol. It allows a client to authenticate to a server

Novi 178 Jan 9, 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