From bec7dafa91aca0d27149a83afc3f31fc8d2613d1 Mon Sep 17 00:00:00 2001 From: Brandon Atkinson Date: Thu, 25 Feb 2021 20:13:21 -0500 Subject: [PATCH] Exclude additional lookalike characters (6G8B) * Fix #6075 --- src/core/PasswordGenerator.cpp | 4 ++-- src/gui/PasswordGeneratorWidget.ui | 2 +- tests/TestPasswordGenerator.cpp | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/PasswordGenerator.cpp b/src/core/PasswordGenerator.cpp index efe647880..bd9dcc67b 100644 --- a/src/core/PasswordGenerator.cpp +++ b/src/core/PasswordGenerator.cpp @@ -150,7 +150,7 @@ QVector PasswordGenerator::passwordGroups() const for (int i = 65; i <= (65 + 25); i++) { - if ((m_flags & ExcludeLookAlike) && (i == 73 || i == 79)) { // "I" and "O" + if ((m_flags & ExcludeLookAlike) && (i == 66 || i == 71 || i == 73 || i == 79)) { //"B", "G", "I" and "O" continue; } @@ -163,7 +163,7 @@ QVector PasswordGenerator::passwordGroups() const PasswordGroup group; for (int i = 48; i < (48 + 10); i++) { - if ((m_flags & ExcludeLookAlike) && (i == 48 || i == 49)) { // "0" and "1" + if ((m_flags & ExcludeLookAlike) && (i == 48 || i == 49 || i == 54 || i == 56)) { // "0", "1", "6", and "8" continue; } diff --git a/src/gui/PasswordGeneratorWidget.ui b/src/gui/PasswordGeneratorWidget.ui index b4ba97193..d00448096 100644 --- a/src/gui/PasswordGeneratorWidget.ui +++ b/src/gui/PasswordGeneratorWidget.ui @@ -666,7 +666,7 @@ QProgressBar::chunk { - Excluded characters: "0", "1", "l", "I", "O", "|", "﹒" + Excluded characters: "0", "O", "1", "l", "I", "|", "G", "6", "B", "8", "﹒" Exclude look-alike characters diff --git a/tests/TestPasswordGenerator.cpp b/tests/TestPasswordGenerator.cpp index 89e2eb91c..2ed2974a8 100644 --- a/tests/TestPasswordGenerator.cpp +++ b/tests/TestPasswordGenerator.cpp @@ -126,18 +126,18 @@ void TestPasswordGenerator::testLookalikeExclusion() generator.setFlags(PasswordGenerator::GeneratorFlag::ExcludeLookAlike); password = generator.generatePassword(); - QRegularExpression regex("^[^lI0]+$"); + QRegularExpression regex("^[^lBGIO]+$"); QVERIFY(regex.match(password).hasMatch()); generator.setCharClasses(PasswordGenerator::CharClass::LowerLetters | PasswordGenerator::CharClass::UpperLetters | PasswordGenerator::CharClass::Numbers); password = generator.generatePassword(); - regex.setPattern("^[^lI01]+$"); + regex.setPattern("^[^lBGIO0168]+$"); QVERIFY(regex.match(password).hasMatch()); generator.setCharClasses(PasswordGenerator::CharClass::LowerLetters | PasswordGenerator::CharClass::UpperLetters | PasswordGenerator::CharClass::Numbers | PasswordGenerator::CharClass::EASCII); password = generator.generatePassword(); - regex.setPattern("^[^lI01﹒]+$"); + regex.setPattern("^[^lBGIO0168﹒]+$"); QVERIFY(regex.match(password).hasMatch()); }