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

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

Issue 1547093002: Switch to standard integer types in chrome/browser/chromeos/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
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/chrome_cryptohome_authenticator.h" 5 #include "chrome/browser/chromeos/login/auth/chrome_cryptohome_authenticator.h"
6 6
7 #include <stdint.h>
8
7 #include <string> 9 #include <string>
8 #include <vector> 10 #include <vector>
9 11
10 #include "base/basictypes.h"
11 #include "base/command_line.h" 12 #include "base/command_line.h"
12 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
13 #include "base/files/file_util.h" 14 #include "base/files/file_util.h"
15 #include "base/macros.h"
14 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
15 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
16 #include "base/run_loop.h" 18 #include "base/run_loop.h"
17 #include "base/strings/string_util.h" 19 #include "base/strings/string_util.h"
18 #include "base/strings/stringprintf.h" 20 #include "base/strings/stringprintf.h"
19 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 21 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
20 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h" 22 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h"
21 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact ory.h" 23 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact ory.h"
22 #include "chrome/browser/chromeos/profiles/profile_helper.h" 24 #include "chrome/browser/chromeos/profiles/profile_helper.h"
23 #include "chrome/browser/chromeos/settings/cros_settings.h" 25 #include "chrome/browser/chromeos/settings/cros_settings.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 67
66 namespace { 68 namespace {
67 69
68 // Label under which the user's key is stored. 70 // Label under which the user's key is stored.
69 const char kCryptohomeGAIAKeyLabel[] = "gaia"; 71 const char kCryptohomeGAIAKeyLabel[] = "gaia";
70 72
71 // Salt used by pre-hashed key. 73 // Salt used by pre-hashed key.
72 const char kSalt[] = "SALT $$"; 74 const char kSalt[] = "SALT $$";
73 75
74 // An owner key in PKCS#8 PrivateKeyInfo for testing owner checks. 76 // An owner key in PKCS#8 PrivateKeyInfo for testing owner checks.
75 const uint8 kOwnerPrivateKey[] = { 77 const uint8_t kOwnerPrivateKey[] = {
76 0x30, 0x82, 0x01, 0x53, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 78 0x30, 0x82, 0x01, 0x53, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a,
77 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 79 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82,
78 0x01, 0x3d, 0x30, 0x82, 0x01, 0x39, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, 80 0x01, 0x3d, 0x30, 0x82, 0x01, 0x39, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00,
79 0xb4, 0xf5, 0xab, 0xfe, 0xd8, 0xf1, 0xcb, 0x5f, 0x8f, 0x48, 0x3e, 0xdf, 81 0xb4, 0xf5, 0xab, 0xfe, 0xd8, 0xf1, 0xcb, 0x5f, 0x8f, 0x48, 0x3e, 0xdf,
80 0x40, 0x8e, 0x2b, 0x15, 0x43, 0x6c, 0x67, 0x74, 0xa2, 0xcb, 0xe4, 0xf3, 82 0x40, 0x8e, 0x2b, 0x15, 0x43, 0x6c, 0x67, 0x74, 0xa2, 0xcb, 0xe4, 0xf3,
81 0xec, 0xab, 0x41, 0x57, 0x1d, 0x5f, 0xed, 0xcf, 0x09, 0xf4, 0xcc, 0xbb, 83 0xec, 0xab, 0x41, 0x57, 0x1d, 0x5f, 0xed, 0xcf, 0x09, 0xf4, 0xcc, 0xbb,
82 0x52, 0x52, 0xe8, 0x46, 0xf5, 0xc5, 0x01, 0xa3, 0xd8, 0x24, 0xc0, 0x15, 84 0x52, 0x52, 0xe8, 0x46, 0xf5, 0xc5, 0x01, 0xa3, 0xd8, 0x24, 0xc0, 0x15,
83 0xc5, 0x65, 0x50, 0x7d, 0xbd, 0x4e, 0x81, 0xb2, 0x28, 0x38, 0xf9, 0x3d, 85 0xc5, 0x65, 0x50, 0x7d, 0xbd, 0x4e, 0x81, 0xb2, 0x28, 0x38, 0xf9, 0x3d,
84 0x3e, 0x2a, 0x68, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x40, 0x40, 86 0x3e, 0x2a, 0x68, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x40, 0x40,
85 0xc7, 0xb5, 0xb3, 0xbc, 0xac, 0x0a, 0x77, 0x02, 0x0f, 0x05, 0xda, 0xdb, 87 0xc7, 0xb5, 0xb3, 0xbc, 0xac, 0x0a, 0x77, 0x02, 0x0f, 0x05, 0xda, 0xdb,
(...skipping 11 matching lines...) Expand all
97 0x72, 0xcc, 0xd4, 0xf3, 0x97, 0xc6, 0x44, 0x55, 0xf2, 0xe0, 0x94, 0x9c, 99 0x72, 0xcc, 0xd4, 0xf3, 0x97, 0xc6, 0x44, 0x55, 0xf2, 0xe0, 0x94, 0x9c,
98 0x97, 0x75, 0x64, 0x34, 0x52, 0x4b, 0xc1, 0x53, 0xdd, 0x8f, 0x21, 0x02, 100 0x97, 0x75, 0x64, 0x34, 0x52, 0x4b, 0xc1, 0x53, 0xdd, 0x8f, 0x21, 0x02,
99 0x20, 0x0e, 0xef, 0x48, 0x92, 0x2d, 0x9c, 0xe8, 0xd3, 0x7e, 0x1e, 0x55, 101 0x20, 0x0e, 0xef, 0x48, 0x92, 0x2d, 0x9c, 0xe8, 0xd3, 0x7e, 0x1e, 0x55,
100 0x0f, 0x23, 0x74, 0x76, 0x07, 0xec, 0x2c, 0x9e, 0xe4, 0x0e, 0xc0, 0x72, 102 0x0f, 0x23, 0x74, 0x76, 0x07, 0xec, 0x2c, 0x9e, 0xe4, 0x0e, 0xc0, 0x72,
101 0xeb, 0x70, 0xcb, 0x74, 0xef, 0xcc, 0x26, 0x50, 0xff, 0x02, 0x20, 0x29, 103 0xeb, 0x70, 0xcb, 0x74, 0xef, 0xcc, 0x26, 0x50, 0xff, 0x02, 0x20, 0x29,
102 0x32, 0xd0, 0xbf, 0x11, 0xf2, 0xbf, 0x54, 0xfd, 0x6d, 0xf2, 0x1c, 0xbe, 104 0x32, 0xd0, 0xbf, 0x11, 0xf2, 0xbf, 0x54, 0xfd, 0x6d, 0xf2, 0x1c, 0xbe,
103 0x50, 0x18, 0x62, 0x6d, 0x23, 0xe4, 0x26, 0x03, 0x8b, 0xb3, 0x42, 0x24, 105 0x50, 0x18, 0x62, 0x6d, 0x23, 0xe4, 0x26, 0x03, 0x8b, 0xb3, 0x42, 0x24,
104 0x7e, 0x68, 0x37, 0x26, 0xda, 0xb9, 0x87}; 106 0x7e, 0x68, 0x37, 0x26, 0xda, 0xb9, 0x87};
105 107
106 // The public key alone matcing kOwnerPrivateKey. 108 // The public key alone matcing kOwnerPrivateKey.
107 const uint8 kOwnerPublicKey[] = { 109 const uint8_t kOwnerPublicKey[] = {
108 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 110 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
109 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, 0x30, 0x48, 0x02, 0x41, 111 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b, 0x00, 0x30, 0x48, 0x02, 0x41,
110 0x00, 0xb4, 0xf5, 0xab, 0xfe, 0xd8, 0xf1, 0xcb, 0x5f, 0x8f, 0x48, 0x3e, 112 0x00, 0xb4, 0xf5, 0xab, 0xfe, 0xd8, 0xf1, 0xcb, 0x5f, 0x8f, 0x48, 0x3e,
111 0xdf, 0x40, 0x8e, 0x2b, 0x15, 0x43, 0x6c, 0x67, 0x74, 0xa2, 0xcb, 0xe4, 113 0xdf, 0x40, 0x8e, 0x2b, 0x15, 0x43, 0x6c, 0x67, 0x74, 0xa2, 0xcb, 0xe4,
112 0xf3, 0xec, 0xab, 0x41, 0x57, 0x1d, 0x5f, 0xed, 0xcf, 0x09, 0xf4, 0xcc, 114 0xf3, 0xec, 0xab, 0x41, 0x57, 0x1d, 0x5f, 0xed, 0xcf, 0x09, 0xf4, 0xcc,
113 0xbb, 0x52, 0x52, 0xe8, 0x46, 0xf5, 0xc5, 0x01, 0xa3, 0xd8, 0x24, 0xc0, 115 0xbb, 0x52, 0x52, 0xe8, 0x46, 0xf5, 0xc5, 0x01, 0xa3, 0xd8, 0x24, 0xc0,
114 0x15, 0xc5, 0x65, 0x50, 0x7d, 0xbd, 0x4e, 0x81, 0xb2, 0x28, 0x38, 0xf9, 116 0x15, 0xc5, 0x65, 0x50, 0x7d, 0xbd, 0x4e, 0x81, 0xb2, 0x28, 0x38, 0xf9,
115 0x3d, 0x3e, 0x2a, 0x68, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01}; 117 0x3d, 0x3e, 0x2a, 0x68, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01};
116 118
117 std::vector<uint8> GetOwnerPublicKey() { 119 std::vector<uint8_t> GetOwnerPublicKey() {
118 return std::vector<uint8>(kOwnerPublicKey, 120 return std::vector<uint8_t>(kOwnerPublicKey,
119 kOwnerPublicKey + arraysize(kOwnerPublicKey)); 121 kOwnerPublicKey + arraysize(kOwnerPublicKey));
120 } 122 }
121 123
122 bool CreateOwnerKeyInSlot(PK11SlotInfo* slot) { 124 bool CreateOwnerKeyInSlot(PK11SlotInfo* slot) {
123 const std::vector<uint8> key(kOwnerPrivateKey, 125 const std::vector<uint8_t> key(
124 kOwnerPrivateKey + arraysize(kOwnerPrivateKey)); 126 kOwnerPrivateKey, kOwnerPrivateKey + arraysize(kOwnerPrivateKey));
125 return crypto::ImportNSSKeyFromPrivateKeyInfo(slot, key, 127 return crypto::ImportNSSKeyFromPrivateKeyInfo(slot, key,
126 true /* permanent */); 128 true /* permanent */);
127 } 129 }
128 130
129 } // namespace 131 } // namespace
130 132
131 class CryptohomeAuthenticatorTest : public testing::Test { 133 class CryptohomeAuthenticatorTest : public testing::Test {
132 public: 134 public:
133 CryptohomeAuthenticatorTest() 135 CryptohomeAuthenticatorTest()
134 : user_context_(AccountId::FromUserEmail("me@nowhere.org")), 136 : user_context_(AccountId::FromUserEmail("me@nowhere.org")),
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 .WillOnce(Invoke(MockAuthStatusConsumer::OnGuestSuccessQuit)) 240 .WillOnce(Invoke(MockAuthStatusConsumer::OnGuestSuccessQuit))
239 .RetiresOnSaturation(); 241 .RetiresOnSaturation();
240 } 242 }
241 243
242 void ExpectPasswordChange() { 244 void ExpectPasswordChange() {
243 EXPECT_CALL(consumer_, OnPasswordChangeDetected()) 245 EXPECT_CALL(consumer_, OnPasswordChangeDetected())
244 .WillOnce(Invoke(MockAuthStatusConsumer::OnMigrateQuit)) 246 .WillOnce(Invoke(MockAuthStatusConsumer::OnMigrateQuit))
245 .RetiresOnSaturation(); 247 .RetiresOnSaturation();
246 } 248 }
247 249
248 void ExpectGetKeyDataExCall(scoped_ptr<int64> key_type, 250 void ExpectGetKeyDataExCall(scoped_ptr<int64_t> key_type,
249 scoped_ptr<std::string> salt) { 251 scoped_ptr<std::string> salt) {
250 key_definitions_.clear(); 252 key_definitions_.clear();
251 key_definitions_.push_back(cryptohome::KeyDefinition( 253 key_definitions_.push_back(cryptohome::KeyDefinition(
252 std::string() /* secret */, 254 std::string() /* secret */,
253 kCryptohomeGAIAKeyLabel, 255 kCryptohomeGAIAKeyLabel,
254 cryptohome::PRIV_DEFAULT)); 256 cryptohome::PRIV_DEFAULT));
255 cryptohome::KeyDefinition& key_definition = key_definitions_.back(); 257 cryptohome::KeyDefinition& key_definition = key_definitions_.back();
256 key_definition.revision = 1; 258 key_definition.revision = 1;
257 if (key_type) { 259 if (key_type) {
258 key_definition.provider_data.push_back( 260 key_definition.provider_data.push_back(
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 // Set up mock async method caller to respond successfully to a cryptohome 562 // Set up mock async method caller to respond successfully to a cryptohome
561 // remove attempt. 563 // remove attempt.
562 mock_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE); 564 mock_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
563 EXPECT_CALL(*mock_caller_, 565 EXPECT_CALL(*mock_caller_,
564 AsyncRemove(user_context_.GetAccountId().GetUserEmail(), _)) 566 AsyncRemove(user_context_.GetAccountId().GetUserEmail(), _))
565 .Times(1) 567 .Times(1)
566 .RetiresOnSaturation(); 568 .RetiresOnSaturation();
567 569
568 // Set up mock homedir methods to respond successfully to a cryptohome create 570 // Set up mock homedir methods to respond successfully to a cryptohome create
569 // attempt. 571 // attempt.
570 ExpectGetKeyDataExCall(scoped_ptr<int64>(), scoped_ptr<std::string>()); 572 ExpectGetKeyDataExCall(scoped_ptr<int64_t>(), scoped_ptr<std::string>());
571 ExpectMountExCall(true /* expect_create_attempt */); 573 ExpectMountExCall(true /* expect_create_attempt */);
572 574
573 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone()); 575 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone());
574 SetAttemptState(auth_.get(), state_.release()); 576 SetAttemptState(auth_.get(), state_.release());
575 577
576 auth_->ResyncEncryptedData(); 578 auth_->ResyncEncryptedData();
577 base::MessageLoop::current()->Run(); 579 base::MessageLoop::current()->Run();
578 } 580 }
579 581
580 TEST_F(CryptohomeAuthenticatorTest, DriveResyncFail) { 582 TEST_F(CryptohomeAuthenticatorTest, DriveResyncFail) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 // Set up mock async method caller to respond successfully to a key migration. 617 // Set up mock async method caller to respond successfully to a key migration.
616 mock_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE); 618 mock_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
617 EXPECT_CALL(*mock_caller_, 619 EXPECT_CALL(*mock_caller_,
618 AsyncMigrateKey(user_context_.GetAccountId().GetUserEmail(), _, 620 AsyncMigrateKey(user_context_.GetAccountId().GetUserEmail(), _,
619 transformed_key_.GetSecret(), _)) 621 transformed_key_.GetSecret(), _))
620 .Times(1) 622 .Times(1)
621 .RetiresOnSaturation(); 623 .RetiresOnSaturation();
622 624
623 // Set up mock homedir methods to respond successfully to a cryptohome mount 625 // Set up mock homedir methods to respond successfully to a cryptohome mount
624 // attempt. 626 // attempt.
625 ExpectGetKeyDataExCall(scoped_ptr<int64>(), scoped_ptr<std::string>()); 627 ExpectGetKeyDataExCall(scoped_ptr<int64_t>(), scoped_ptr<std::string>());
626 ExpectMountExCall(false /* expect_create_attempt */); 628 ExpectMountExCall(false /* expect_create_attempt */);
627 629
628 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone()); 630 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone());
629 SetAttemptState(auth_.get(), state_.release()); 631 SetAttemptState(auth_.get(), state_.release());
630 632
631 auth_->RecoverEncryptedData(std::string()); 633 auth_->RecoverEncryptedData(std::string());
632 base::MessageLoop::current()->Run(); 634 base::MessageLoop::current()->Run();
633 } 635 }
634 636
635 TEST_F(CryptohomeAuthenticatorTest, DriveDataRecoverButFail) { 637 TEST_F(CryptohomeAuthenticatorTest, DriveDataRecoverButFail) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 679
678 TEST_F(CryptohomeAuthenticatorTest, DriveCreateForNewUser) { 680 TEST_F(CryptohomeAuthenticatorTest, DriveCreateForNewUser) {
679 UserContext expected_user_context(user_context_with_transformed_key_); 681 UserContext expected_user_context(user_context_with_transformed_key_);
680 expected_user_context.SetUserIDHash( 682 expected_user_context.SetUserIDHash(
681 cryptohome::MockAsyncMethodCaller::kFakeSanitizedUsername); 683 cryptohome::MockAsyncMethodCaller::kFakeSanitizedUsername);
682 ExpectLoginSuccess(expected_user_context); 684 ExpectLoginSuccess(expected_user_context);
683 FailOnLoginFailure(); 685 FailOnLoginFailure();
684 686
685 // Set up mock homedir methods to respond successfully to a cryptohome create 687 // Set up mock homedir methods to respond successfully to a cryptohome create
686 // attempt. 688 // attempt.
687 ExpectGetKeyDataExCall(scoped_ptr<int64>(), scoped_ptr<std::string>()); 689 ExpectGetKeyDataExCall(scoped_ptr<int64_t>(), scoped_ptr<std::string>());
688 ExpectMountExCall(true /* expect_create_attempt */); 690 ExpectMountExCall(true /* expect_create_attempt */);
689 691
690 // Set up state as though a cryptohome mount attempt has occurred 692 // Set up state as though a cryptohome mount attempt has occurred
691 // and been rejected because the user doesn't exist; additionally, 693 // and been rejected because the user doesn't exist; additionally,
692 // an online auth attempt has completed successfully. 694 // an online auth attempt has completed successfully.
693 state_->PresetCryptohomeStatus(false, 695 state_->PresetCryptohomeStatus(false,
694 cryptohome::MOUNT_ERROR_USER_DOES_NOT_EXIST); 696 cryptohome::MOUNT_ERROR_USER_DOES_NOT_EXIST);
695 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone()); 697 state_->PresetOnlineLoginStatus(AuthFailure::AuthFailureNone());
696 SetAttemptState(auth_.get(), state_.release()); 698 SetAttemptState(auth_.get(), state_.release());
697 699
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 expected_user_context.SetUserIDHash( 748 expected_user_context.SetUserIDHash(
747 cryptohome::MockAsyncMethodCaller::kFakeSanitizedUsername); 749 cryptohome::MockAsyncMethodCaller::kFakeSanitizedUsername);
748 ExpectLoginSuccess(expected_user_context); 750 ExpectLoginSuccess(expected_user_context);
749 FailOnLoginFailure(); 751 FailOnLoginFailure();
750 752
751 // Set up mock homedir methods to respond with key metadata indicating that a 753 // Set up mock homedir methods to respond with key metadata indicating that a
752 // pre-hashed key was used to create the cryptohome and allow a successful 754 // pre-hashed key was used to create the cryptohome and allow a successful
753 // mount when this pre-hashed key is used. 755 // mount when this pre-hashed key is used.
754 756
755 ExpectGetKeyDataExCall( 757 ExpectGetKeyDataExCall(
756 make_scoped_ptr(new int64(Key::KEY_TYPE_SALTED_SHA256)), 758 make_scoped_ptr(new int64_t(Key::KEY_TYPE_SALTED_SHA256)),
757 make_scoped_ptr(new std::string(kSalt))); 759 make_scoped_ptr(new std::string(kSalt)));
758 ExpectMountExCall(false /* expect_create_attempt */); 760 ExpectMountExCall(false /* expect_create_attempt */);
759 761
760 auth_->AuthenticateToLogin(NULL, user_context_); 762 auth_->AuthenticateToLogin(NULL, user_context_);
761 base::RunLoop().Run(); 763 base::RunLoop().Run();
762 } 764 }
763 765
764 TEST_F(CryptohomeAuthenticatorTest, FailLoginWithMissingSalt) { 766 TEST_F(CryptohomeAuthenticatorTest, FailLoginWithMissingSalt) {
765 CreateTransformedKey(Key::KEY_TYPE_SALTED_SHA256, kSalt); 767 CreateTransformedKey(Key::KEY_TYPE_SALTED_SHA256, kSalt);
766 768
767 FailOnLoginSuccess(); 769 FailOnLoginSuccess();
768 ExpectLoginFailure(AuthFailure(AuthFailure::COULD_NOT_MOUNT_CRYPTOHOME)); 770 ExpectLoginFailure(AuthFailure(AuthFailure::COULD_NOT_MOUNT_CRYPTOHOME));
769 771
770 // Set up mock homedir methods to respond with key metadata indicating that a 772 // Set up mock homedir methods to respond with key metadata indicating that a
771 // pre-hashed key was used to create the cryptohome but without the required 773 // pre-hashed key was used to create the cryptohome but without the required
772 // salt. 774 // salt.
773 ExpectGetKeyDataExCall( 775 ExpectGetKeyDataExCall(
774 make_scoped_ptr(new int64(Key::KEY_TYPE_SALTED_SHA256)), 776 make_scoped_ptr(new int64_t(Key::KEY_TYPE_SALTED_SHA256)),
775 scoped_ptr<std::string>()); 777 scoped_ptr<std::string>());
776 778
777 auth_->AuthenticateToLogin(NULL, user_context_); 779 auth_->AuthenticateToLogin(NULL, user_context_);
778 base::RunLoop().Run(); 780 base::RunLoop().Run();
779 } 781 }
780 782
781 } // namespace chromeos 783 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/auth/chrome_login_performer.h ('k') | chrome/browser/chromeos/login/auth/mount_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698