Skip to content
MOAC v2.0.0

This is a major release with many breaking changes to the library, but
hardly any visible changes to the CLI programs.

Changes common to both the CLI and library:

- Entropy estimates are slightly more accurage
- While normal non-CGO performance is about the same, perf with msan or
  race-detectors enabled is much slower. This should only be visible
  when generating/analyzing hundreds/thousands of passwords.

Changes to the "moac" and "moac-pwgen" CLI programs:

- Input validation: impossible physical values (including temperatures
  above the Planck Temperature) are forbidden.

Changes to the library:

v2.0.0 is close to a full re-write. So many APIs have changed for v2 that listing all the changes would be only slightly shorter and harder to follow than just reading the updated docs.

- A new "charsets" subpackage defines a Charset interface, CustomCharset
  and DefaultCharset implementations, and a CharsetCollection. The
  CharsetCollection's Add() method now handles all redundancies.
- Input validation
- Replace exported functions accepting a "quantum" bool with quantum and
  non-quantum variants of those functions.
- Password reqs are passed as a struct to GenPW
- pwgen.BuildCharsets is now charsets.ParseCharsets
- Parameters and returns for almost every function have changed

Rohan Kumar (28):
      Doc: mention that work happening on v2 branch
      Feat!: validate: avoid impossible temperatures
      Refactor!: make moac funcs arg-less Givens methods
      Test: test quantum/non-quantum variants equally
      Test: style fixes for pwgen tests
      Test: test new temperature bounds enforcement
      Refactor!: change import paths to /v2 for v2.0.0
      Chore(CI): install golangci from master branch
      Refactor! adopt Charsets interface/subpkg (1/3)
      Refactor! adopt Charsets interface/subpkg (2/3)
      Refactor! adopt Charsets interface/subpkg (3/3)
      Refactor!: remove entropy.Entropy error return
      Fix: order charsets.Symbols correctly
      Refactor!: remove Name() from Charset
      Fix: reduce unnecessary alloc for charset-building
      Chore(style): improve string formatting
      Chore: Makefile: add profiling, test-quick
      Fix: improve minimization of charset redundancy
      Test: refactor: break out some nested code
      Feat: validate given values to be non-negative
      Chore(CI): speed up Fedora build a bit
      Build: fix Makefile portability/conventions
      Chore(style): tiny style fixes from go-consistent
      Chore(lint): moar linters/formatters
      Chore(dep): rebuild go.mod, go.sum
      Doc: add clarifications to README
      Refactor!: pass password requirements as a struct
      Doc: update README for v2, add project status