Skip to content

KC-706: Updated master password grading to use zxcvbn#2018

Open
sshrushanth-ks wants to merge 1 commit intoreleasefrom
update-master-password-zxcvbn
Open

KC-706: Updated master password grading to use zxcvbn#2018
sshrushanth-ks wants to merge 1 commit intoreleasefrom
update-master-password-zxcvbn

Conversation

@sshrushanth-ks
Copy link
Copy Markdown
Contributor

Summary

  • Added master_password_score() using zxcvbn, scoped exclusively to master password strength evaluation. The existing password_score() heuristic is preserved unchanged for vault record passwords.
  • Updated reset-password to always show both the zxcvbn strength grade and the BreachWatch scan result independently — previously only one would run depending on whether BreachWatch was enabled.

Changes

  • requirements.txt — Added zxcvbn dependency.
  • setup.cfg — Added zxcvbn to install_requires so it is installed correctly in CI and pip environments.
  • keepercommander/utils.py — Added master_password_score() with try/except and .get() for safe access, falling back to 25 (Weak) on any failure.
  • keepercommander/commands/utils.py — reset-password now always calls master_password_score() for zxcvbn strength logging, and BreachWatch scan runs alongside it independently instead of as a mutually exclusive alternative.
  • unit-tests/test_crypto.py — Added test_master_password_score().

* Updated master password grading to use zxcvbn

* Added zxcvbn to install_requires

* Added zxcvbn-based master password strength grading alongside BreachWatch score.

* Addressed PR review comments on master_password_score
@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedzxcvbn@​4.5.0100100100100100

View full report

@sshrushanth-ks sshrushanth-ks self-assigned this May 6, 2026
@sshrushanth-ks sshrushanth-ks marked this pull request as ready for review May 6, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant