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

Side by Side Diff: chrome/browser/chromeos/login/auth/extended_authenticator.cc

Issue 290483003: Tame the proliferation of UserContext constructors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 7 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/chromeos/login/auth/extended_authenticator.h" 5 #include "chrome/browser/chromeos/login/auth/extended_authenticator.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "chrome/browser/chromeos/boot_times_loader.h" 10 #include "chrome/browser/chromeos/boot_times_loader.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 101
102 RecordStartMarker("MountEx"); 102 RecordStartMarker("MountEx");
103 103
104 std::string canonicalized = gaia::CanonicalizeEmail(user_id); 104 std::string canonicalized = gaia::CanonicalizeEmail(user_id);
105 cryptohome::Identification id(canonicalized); 105 cryptohome::Identification id(canonicalized);
106 cryptohome::Authorization auth(keys.front()); 106 cryptohome::Authorization auth(keys.front());
107 cryptohome::MountParameters mount(false); 107 cryptohome::MountParameters mount(false);
108 for (size_t i = 0; i < keys.size(); i++) { 108 for (size_t i = 0; i < keys.size(); i++) {
109 mount.create_keys.push_back(keys[i]); 109 mount.create_keys.push_back(keys[i]);
110 } 110 }
111 UserContext context(user_id, keys.front().key, std::string()); 111 UserContext context(user_id);
112 context.SetPassword(keys.front().key);
112 context.SetKeyLabel(keys.front().label); 113 context.SetKeyLabel(keys.front().label);
113 114
114 cryptohome::HomedirMethods::GetInstance()->MountEx( 115 cryptohome::HomedirMethods::GetInstance()->MountEx(
115 id, 116 id,
116 auth, 117 auth,
117 mount, 118 mount,
118 base::Bind(&ExtendedAuthenticator::OnMountComplete, 119 base::Bind(&ExtendedAuthenticator::OnMountComplete,
119 this, 120 this,
120 "MountEx", 121 "MountEx",
121 context, 122 context,
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 void ExtendedAuthenticator::OnMountComplete( 283 void ExtendedAuthenticator::OnMountComplete(
283 const std::string& time_marker, 284 const std::string& time_marker,
284 const UserContext& user_context, 285 const UserContext& user_context,
285 const HashSuccessCallback& success_callback, 286 const HashSuccessCallback& success_callback,
286 bool success, 287 bool success,
287 cryptohome::MountError return_code, 288 cryptohome::MountError return_code,
288 const std::string& mount_hash) { 289 const std::string& mount_hash) {
289 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 290 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
290 291
291 RecordEndMarker(time_marker); 292 RecordEndMarker(time_marker);
292 UserContext copy; 293 UserContext copy = user_context;
293 copy.CopyFrom(user_context);
294 copy.SetUserIDHash(mount_hash); 294 copy.SetUserIDHash(mount_hash);
295 if (return_code == cryptohome::MOUNT_ERROR_NONE) { 295 if (return_code == cryptohome::MOUNT_ERROR_NONE) {
296 if (!success_callback.is_null()) 296 if (!success_callback.is_null())
297 success_callback.Run(mount_hash); 297 success_callback.Run(mount_hash);
298 if (old_consumer_) 298 if (old_consumer_)
299 old_consumer_->OnLoginSuccess(copy); 299 old_consumer_->OnLoginSuccess(copy);
300 return; 300 return;
301 } 301 }
302 AuthState state = FAILED_MOUNT; 302 AuthState state = FAILED_MOUNT;
303 if (return_code == cryptohome::MOUNT_ERROR_TPM_COMM_ERROR || 303 if (return_code == cryptohome::MOUNT_ERROR_TPM_COMM_ERROR ||
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 callback), 374 callback),
375 system_salt_); 375 system_salt_);
376 } 376 }
377 } 377 }
378 378
379 void ExtendedAuthenticator::DidTransformContext( 379 void ExtendedAuthenticator::DidTransformContext(
380 const UserContext& user_context, 380 const UserContext& user_context,
381 const ContextCallback& callback, 381 const ContextCallback& callback,
382 const std::string& hashed_password) { 382 const std::string& hashed_password) {
383 DCHECK(user_context.DoesNeedPasswordHashing()); 383 DCHECK(user_context.DoesNeedPasswordHashing());
384 UserContext context; 384 UserContext context = user_context;
385 context.CopyFrom(user_context);
386 context.SetPassword(hashed_password); 385 context.SetPassword(hashed_password);
387 context.SetDoesNeedPasswordHashing(false); 386 context.SetDoesNeedPasswordHashing(false);
388 callback.Run(context); 387 callback.Run(context);
389 } 388 }
390 389
391 void ExtendedAuthenticator::DoHashWithSalt(const std::string& password, 390 void ExtendedAuthenticator::DoHashWithSalt(const std::string& password,
392 const HashSuccessCallback& callback, 391 const HashSuccessCallback& callback,
393 const std::string& system_salt) { 392 const std::string& system_salt) {
394 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 393 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
395 394
396 if (salt_obtained_) { 395 if (salt_obtained_) {
397 std::string hash = 396 std::string hash =
398 ParallelAuthenticator::HashPassword(password, system_salt); 397 ParallelAuthenticator::HashPassword(password, system_salt);
399 callback.Run(hash); 398 callback.Run(hash);
400 return; 399 return;
401 } 400 }
402 hashing_queue_.push_back(base::Bind( 401 hashing_queue_.push_back(base::Bind(
403 &ExtendedAuthenticator::DoHashWithSalt, this, password, callback)); 402 &ExtendedAuthenticator::DoHashWithSalt, this, password, callback));
404 } 403 }
405 404
406 } // namespace chromeos 405 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/auth/auth_attempt_state.cc ('k') | chrome/browser/chromeos/login/auth/login_performer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698