diff options
author | AndrolGenhald <AndrolGenhald@users.noreply.github.com> | 2019-06-20 03:40:41 +0300 |
---|---|---|
committer | Jonathan White <support@dmapps.us> | 2019-06-20 03:40:41 +0300 |
commit | e40f10657d4e59f60cd1cb7d2b8d7d4a67905b01 (patch) | |
tree | 34ec9b3cfc404efda71c372b9a653b109dbb73d6 /src/core | |
parent | 7ceca8ff3c0ce971a3cfa38719b45330c73e55ad (diff) |
Fix keepassxc-browser password entropy display (#3107)
* Pass correct entropy amount to keepassxc-browser instead of amount of bits for both password and passphrase.
* Rename json key from "login" to "entropy" (keeping "login" key for backwards compatibility).
* Also make some changes to entropy calculation methods:
- Rename PassphraseGenerator::calculateEntropy to estimateEntropy
- Rename PasswordGenerator::calculateEntropy to estimateEntropy
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/PassphraseGenerator.cpp | 9 | ||||
-rw-r--r-- | src/core/PassphraseGenerator.h | 2 | ||||
-rw-r--r-- | src/core/PasswordGenerator.cpp | 2 | ||||
-rw-r--r-- | src/core/PasswordGenerator.h | 2 |
4 files changed, 8 insertions, 7 deletions
diff --git a/src/core/PassphraseGenerator.cpp b/src/core/PassphraseGenerator.cpp index a94035e82..b14886a1a 100644 --- a/src/core/PassphraseGenerator.cpp +++ b/src/core/PassphraseGenerator.cpp @@ -35,15 +35,16 @@ PassphraseGenerator::PassphraseGenerator() setDefaultWordList(); } -double PassphraseGenerator::calculateEntropy(const QString& passphrase) +double PassphraseGenerator::estimateEntropy(int wordCount) { - Q_UNUSED(passphrase); - if (m_wordlist.isEmpty()) { return 0.0; } + if (wordCount < 1) { + wordCount = m_wordCount; + } - return std::log2(m_wordlist.size()) * m_wordCount; + return std::log2(m_wordlist.size()) * wordCount; } void PassphraseGenerator::setWordCount(int wordCount) diff --git a/src/core/PassphraseGenerator.h b/src/core/PassphraseGenerator.h index 3cda1b7c3..5868faab4 100644 --- a/src/core/PassphraseGenerator.h +++ b/src/core/PassphraseGenerator.h @@ -35,7 +35,7 @@ public: TITLECASE }; - double calculateEntropy(const QString& passphrase); + double estimateEntropy(int wordCount = 0); void setWordCount(int wordCount); void setWordList(const QString& path); void setWordCase(PassphraseWordCase wordCase); diff --git a/src/core/PasswordGenerator.cpp b/src/core/PasswordGenerator.cpp index 1132582d6..e203af672 100644 --- a/src/core/PasswordGenerator.cpp +++ b/src/core/PasswordGenerator.cpp @@ -31,7 +31,7 @@ PasswordGenerator::PasswordGenerator() { } -double PasswordGenerator::calculateEntropy(const QString& password) +double PasswordGenerator::estimateEntropy(const QString& password) { return ZxcvbnMatch(password.toLatin1(), nullptr, nullptr); } diff --git a/src/core/PasswordGenerator.h b/src/core/PasswordGenerator.h index 7bfdddd69..22627d25b 100644 --- a/src/core/PasswordGenerator.h +++ b/src/core/PasswordGenerator.h @@ -57,7 +57,7 @@ public: public: PasswordGenerator(); - double calculateEntropy(const QString& password); + double estimateEntropy(const QString& password); void setLength(int length); void setCharClasses(const CharClasses& classes); void setFlags(const GeneratorFlags& flags); |