Skip to content

Releases: sts10/phraze

v0.3.4

03 Dec 16:46
Compare
Choose a tag to compare

Release Notes

  • Re-organizes README
  • Clarifies README section about the PRNG method Phraze uses
  • Adds some module-level documentation comments.
  • Uses cargo-dist v0.5.0 to create releases, including this one.

Download phraze 0.3.4

File Platform Checksum
phraze-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
phraze-x86_64-apple-darwin.tar.xz macOS Intel checksum
phraze-x86_64-pc-windows-msvc.zip Windows x64 checksum
phraze-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum

v0.3.3

01 Nov 18:35
Compare
Choose a tag to compare

Release Notes

Big thanks to @westonal for some nice code improvements in this release!

  • Unify the types of built-in and custom word lists; by @westonal #16
  • Use include_lines! macro rather than code generation; by @westonal #17
  • First release to use cargo-dist.
  • Adds some more metadata to Cargo.toml 3bbeee6

Download phraze 0.3.3

File Platform Checksum
phraze-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
phraze-x86_64-apple-darwin.tar.xz macOS Intel checksum
phraze-x86_64-pc-windows-msvc.zip Windows x64 checksum
phraze-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum

v0.3.1

29 Oct 15:18
Compare
Choose a tag to compare

New in this release: Mostly small stuff I wanted to improve after the large changes in the v0.3.0 release.

  • b87cd56 - make verbose flag a bit more verbose
  • 4e8710a - make word all lowercase before making it title case, in case word is all uppercase or similar
  • 2ad1a62 - uses an enum for separator types
  • Various tweaks to README

Full Changelog: v0.3.0...v0.3.1

v0.3.0

27 Oct 21:50
Compare
Choose a tag to compare

What's Changed

  • Adds option for user to use their own, "custom" word list in #14
  • Add option to set the number of passphrases to generate in #12
  • Make list in main function, simplifying generate_passphrase in #13

Full Changelog: v0.2.0...v0.3.0

v0.2.0

25 Oct 18:22
Compare
Choose a tag to compare

What's Changed

  • Adds a "strong count" setting by @sts10 in #11
  • b98c7c9 - switches in new Orchard Street Medium List, which has 8,192 words rather than 7,776
  • Improves README, highlighting features (with emoji!)
  • 5e21159 - fixes --minimum-entropy flag to have a hyphen rather than a _
  • General code clean-up.

Full Changelog: v0.1.8...v0.2.0

v0.1.8

25 Oct 00:18
Compare
Choose a tag to compare

What's Changed

  • Use a build script to improve performance #2
  • Simplify build.rs with write macro by @wezm in #10
  • Add Criterion benchmarking 1f2e3af
  • Adds a test for reading in proper length 6d3ec59

New Contributors

  • @wezm made their first contribution in #10

v0.1.6

23 Oct 18:46
Compare
Choose a tag to compare
  • Removes KeePassXC word list (for now) due to licensing concerns (see #5)
  • Adds Mnemonicode word list
  • Adds some notes on word list licensing to the README.

v0.1.5

23 Oct 00:58
Compare
Choose a tag to compare

Phraze v0.1.5

Empty word bug fix

This release fixes what could be considered a bug that negatively affected security present in earlier versions/releases of this tool.

Previously, the make_list function used .split('\n') to read in lines of the word lists. This caused Phraze to read in a blank or empty line at the end of each file, such that one word on every word list was "". This meant that a, say, 7-word passphrase could contain a "blank" word, dropping entropy down to that of a 6-word passphrase. Not good!

Now, we use the smarter lines() method:

/// Read in the appropriate word list, give the desired list enum
fn make_list(list_to_use: List) -> Vec<&'static str> {
    match list_to_use {
        List::Medium => include_str!("../word-lists/orchard-street-medium.txt")
            .lines()
            .collect(),
        List::Long => include_str!("../word-lists/orchard-street-long.txt")
            .lines()
            .collect(),
        List::Qwerty => include_str!("../word-lists/orchard-street-qwerty.txt")
            .lines()
            .collect(),
        List::Alpha => include_str!("../word-lists/orchard-street-alpha.txt")
            .lines()
            .collect(),
        List::Eff => include_str!("../word-lists/eff-long.txt").lines().collect(),
    }
}

This seems to solve the issue, however I'll keep it in mind going forward.

Other recent changes in v0.1.5

  • Adds option to add random separators of numbers, symbols, or both between words, thanks to @jc00ke's PR: #3 !
  • Ensures that random number function can return a 9 by using an inclusive gen_range()
  • Includes EFF long list as a list option, the first list that is not an Orchard Street Wordlist. Note that the EFF long list is free of prefix words, and thus uniquely decodable and therefore safe to generate passphrases without a separator between words.
  • Makes list parsing error handling slightly more graceful