Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(710)

Side by Side Diff: components/autofill/core/browser/password_generator.cc

Issue 1495463002: Calling gen_pron_pass() for generating password only once and Force Fixing it if needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/autofill/core/browser/password_generator.h" 5 #include "components/autofill/core/browser/password_generator.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 : password_length_(GetLengthFromHint(max_length, kDefaultPasswordLength)) {} 79 : password_length_(GetLengthFromHint(max_length, kDefaultPasswordLength)) {}
80 PasswordGenerator::~PasswordGenerator() {} 80 PasswordGenerator::~PasswordGenerator() {}
81 81
82 std::string PasswordGenerator::Generate() const { 82 std::string PasswordGenerator::Generate() const {
83 char password[255]; 83 char password[255];
84 char unused_hypenated_password[255]; 84 char unused_hypenated_password[255];
85 // Generate passwords that have numbers and upper and lower case letters. 85 // Generate passwords that have numbers and upper and lower case letters.
86 // No special characters included for now. 86 // No special characters included for now.
87 unsigned int mode = S_NB | S_CL | S_SL; 87 unsigned int mode = S_NB | S_CL | S_SL;
88 88
89 // gen_pron_pass() doesn't guarantee that it includes all of the type given 89 // Generate the password by gen_pron_pass(), if it is not conforming then
90 // in mode, so regenerate a few times if neccessary. 90 // force fix it.
91 // TODO(gcasto): Is it worth regenerating at all? 91 gen_pron_pass(password, unused_hypenated_password, password_length_,
92 for (int i = 0; i < 10; ++i) { 92 password_length_, mode);
93 gen_pron_pass(password, unused_hypenated_password, 93 if (VerifyPassword(password))
94 password_length_, password_length_, mode); 94 return std::string(password);
95 if (VerifyPassword(password))
96 return std::string(password);
97 }
98 95
99 // If the password still isn't conforming after a few iterations, force it
100 // to be so. This may change a syllable in the password.
101 std::string str_password(password); 96 std::string str_password(password);
vabr (Chromium) 2015/12/02 11:43:09 Please move this just above line 93, then you can
Deepak 2015/12/02 12:51:18 Done.
102 if (!VerifyPassword(str_password)) { 97 ForceFixPassword(&str_password);
103 ForceFixPassword(&str_password);
104 }
105 return str_password; 98 return str_password;
106 } 99 }
107 100
108 } // namespace autofill 101 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698