From e57a2e0fa943c161841141467715cb9b8bd5cbce Mon Sep 17 00:00:00 2001 From: thez3ro Date: Mon, 22 Jan 2018 13:47:20 +0100 Subject: [PATCH] add default charset when not specified explicitly state the wordcount default value --- src/cli/Add.cpp | 3 +-- src/cli/Edit.cpp | 3 +-- src/cli/PassGen.cpp | 7 +------ src/core/PassphraseGenerator.cpp | 2 +- src/core/PassphraseGenerator.h | 2 ++ src/core/PasswordGenerator.cpp | 8 ++++++++ src/core/PasswordGenerator.h | 3 ++- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/cli/Add.cpp b/src/cli/Add.cpp index 13023b5bb..6954532cd 100644 --- a/src/cli/Add.cpp +++ b/src/cli/Add.cpp @@ -133,8 +133,7 @@ int Add::execute(QStringList arguments) passwordGenerator.setLength(passwordLength.toInt()); } - passwordGenerator.setCharClasses(PasswordGenerator::LowerLetters | PasswordGenerator::UpperLetters | - PasswordGenerator::Numbers); + passwordGenerator.setCharClasses(PasswordGenerator::DefaultCharset); QString password = passwordGenerator.generatePassword(); entry->setPassword(password); } diff --git a/src/cli/Edit.cpp b/src/cli/Edit.cpp index 25d2fd456..675ec7def 100644 --- a/src/cli/Edit.cpp +++ b/src/cli/Edit.cpp @@ -149,8 +149,7 @@ int Edit::execute(QStringList arguments) passwordGenerator.setLength(passwordLength.toInt()); } - passwordGenerator.setCharClasses(PasswordGenerator::LowerLetters | PasswordGenerator::UpperLetters | - PasswordGenerator::Numbers); + passwordGenerator.setCharClasses(PasswordGenerator::DefaultCharset); QString password = passwordGenerator.generatePassword(); entry->setPassword(password); } diff --git a/src/cli/PassGen.cpp b/src/cli/PassGen.cpp index 428554dc6..900909559 100644 --- a/src/cli/PassGen.cpp +++ b/src/cli/PassGen.cpp @@ -96,12 +96,7 @@ int PassGen::execute(QStringList arguments) classes |= PasswordGenerator::EASCII; } - if (classes == 0x0) { - passwordGenerator.setCharClasses(PasswordGenerator::LowerLetters | PasswordGenerator::UpperLetters | - PasswordGenerator::Numbers); - } else { - passwordGenerator.setCharClasses(classes); - } + passwordGenerator.setCharClasses(classes); if (!passwordGenerator.isValid()) { outputTextStream << parser.helpText().replace("keepassxc-cli", "keepassxc-cli passgen"); diff --git a/src/core/PassphraseGenerator.cpp b/src/core/PassphraseGenerator.cpp index 115c70d6d..941ba5f38 100644 --- a/src/core/PassphraseGenerator.cpp +++ b/src/core/PassphraseGenerator.cpp @@ -48,7 +48,7 @@ void PassphraseGenerator::setWordCount(int wordCount) m_wordCount = wordCount; } else { // safe default if something goes wrong - m_wordCount = 7; + m_wordCount = DefaultWordCount; } } diff --git a/src/core/PassphraseGenerator.h b/src/core/PassphraseGenerator.h index 20845ff21..7df4b4a74 100644 --- a/src/core/PassphraseGenerator.h +++ b/src/core/PassphraseGenerator.h @@ -36,6 +36,8 @@ public: QString generatePassphrase() const; + static const int DefaultWordCount = 7; + private: int m_wordCount; QString m_separator; diff --git a/src/core/PasswordGenerator.cpp b/src/core/PasswordGenerator.cpp index 21aa590e0..740fb5467 100644 --- a/src/core/PasswordGenerator.cpp +++ b/src/core/PasswordGenerator.cpp @@ -35,11 +35,19 @@ double PasswordGenerator::calculateEntropy(QString password) void PasswordGenerator::setLength(int length) { + if (length <= 0) { + m_length = DefaultLength; + return; + } m_length = length; } void PasswordGenerator::setCharClasses(const CharClasses& classes) { + if (classes == 0) { + m_classes = DefaultCharset; + return; + } m_classes = classes; } diff --git a/src/core/PasswordGenerator.h b/src/core/PasswordGenerator.h index 98bb58b6a..0c13bac05 100644 --- a/src/core/PasswordGenerator.h +++ b/src/core/PasswordGenerator.h @@ -34,7 +34,8 @@ public: UpperLetters = 0x2, Numbers = 0x4, SpecialCharacters = 0x8, - EASCII = 0x10 + EASCII = 0x10, + DefaultCharset = LowerLetters | UpperLetters | Numbers }; Q_DECLARE_FLAGS(CharClasses, CharClass)