Skip to content

Commit

Permalink
Cleanup and bump version
Browse files Browse the repository at this point in the history
  • Loading branch information
ollej committed Sep 21, 2022
1 parent 836c7bb commit 706db7b
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 18 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "rustgenpass"
authors = ["Olle Wreede <[email protected]>"]
description = "Generate a hashed password similar to SuperGenPass."
version = "0.1.0"
version = "0.2.0"
edition = "2021"

[dependencies]
Expand All @@ -12,7 +12,7 @@ lazy_static = "1.4"
md-5 = "0.10"
regex = "1.6"
rpassword = "7.0.0"
sha2 = "0.10.6"
sha2 = "0.10"

[[bin]]
name = "rgp"
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,23 @@ Usage
-----

```
rustgenpass 0.1.0
rustgenpass 0.2.0
Generate a hashed password similar to SuperGenPass.
USAGE:
rgp [OPTIONS] --domain <DOMAIN>
OPTIONS:
-d, --domain <DOMAIN> Domain / URL
-d, --domain <DOMAIN> Domain / URL to generate password for
-h, --help Print help information
-H, --hash <HASH> Hashing method to use [default: md5] [possible values: md5, sha512]
-k, --keep-subdomains Don't remove subdomains from domain
-l, --length <LENGTH> Length of password, min: 4, max: 24 [default: 10]
-l, --length <LENGTH> Length of generated password, min: 4, max: 24 [default: 10]
-p, --password <PASSWORD> Master password, if not given, reads from stdin
-P, --passthrough Passthrough domain unmodified to hash function
-r, --rounds <ROUNDS> Number of hash rounds [default: 10]
-s, --secret <SECRET> Secret added to the master password
-V, --version Print version information
-V, --version Print version informationrustgenpass 0.2.0
```

License
Expand Down
14 changes: 7 additions & 7 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,21 +131,21 @@ fn validate_password<S: AsRef<str>>(password: S) -> bool {
&& RE_CONTAINS_UPPERCASE_LETTER.is_match(password.as_ref())
}

fn b64_md5<S: AsRef<str>>(hash: S) -> String {
fn base64_md5<S: AsRef<str>>(hash: S) -> String {
let mut hasher = Md5::new();
hasher.update(hash.as_ref());
let digest = hasher.finalize();
base64encode(&digest)
base64_encode(&digest)
}

fn b64_sha512<S: AsRef<str>>(hash: S) -> String {
fn base64_sha512<S: AsRef<str>>(hash: S) -> String {
let mut hasher = Sha512::new();
hasher.update(hash.as_ref());
let digest = hasher.finalize();
base64encode(&digest)
base64_encode(&digest)
}

fn base64encode(digest: &[u8]) -> String {
fn base64_encode(digest: &[u8]) -> String {
let b64_md5 = base64::encode(digest);
b64_md5
.chars()
Expand Down Expand Up @@ -215,8 +215,8 @@ pub fn generate_with_config<S: AsRef<str>>(
let mut i = 0;
while i < hash_rounds || !validate_password(&hash[..length]) {
hash = match hash_algorithm {
HashAlgorithm::MD5 => b64_md5(hash),
HashAlgorithm::SHA512 => b64_sha512(hash),
HashAlgorithm::MD5 => base64_md5(hash),
HashAlgorithm::SHA512 => base64_sha512(hash),
};
i += 1;
}
Expand Down
4 changes: 0 additions & 4 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ use clap::Parser;
use rustgenpass::{generate_with_config, get_hostname, Cli};

fn main() -> Result<(), String> {
/* TODO:
* Support sha512 hashing
* Builder interface for library
*/
let cli = Cli::parse();
let password = cli.password.unwrap_or_else(|| {
rpassword::prompt_password("Enter master password: ").expect("You must enter a password.")
Expand Down

0 comments on commit 706db7b

Please sign in to comment.