| Index: chrome/browser/managed_mode/chromeos/manager_password_service.cc
|
| diff --git a/chrome/browser/managed_mode/chromeos/manager_password_service.cc b/chrome/browser/managed_mode/chromeos/manager_password_service.cc
|
| index 6a1c909140df24bae54c2ae29f64d341c314dea2..0548b12cb58765d324338a1c1fffb71b4057ff02 100644
|
| --- a/chrome/browser/managed_mode/chromeos/manager_password_service.cc
|
| +++ b/chrome/browser/managed_mode/chromeos/manager_password_service.cc
|
| @@ -5,8 +5,10 @@
|
| #include "chrome/browser/managed_mode/chromeos/manager_password_service.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/logging.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/values.h"
|
| +#include "chrome/browser/chromeos/login/auth/key.h"
|
| #include "chrome/browser/chromeos/login/auth/user_context.h"
|
| #include "chrome/browser/chromeos/login/managed/locally_managed_user_constants.h"
|
| #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h"
|
| @@ -130,7 +132,7 @@ void ManagerPasswordService::GetManagedUsersCallback(
|
| }
|
|
|
| UserContext manager_key(user_id);
|
| - manager_key.SetPassword(master_key);
|
| + manager_key.SetKey(Key(master_key));
|
| manager_key.SetIsUsingOAuth(false);
|
|
|
| // As master key can have old label, leave label field empty - it will work
|
| @@ -205,22 +207,23 @@ void ManagerPasswordService::OnAddKeySuccess(
|
| // 1) Add new manager key (using old key).
|
| // 2) Remove old supervised user key.
|
| // 3) Remove old manager key.
|
| - authenticator_->TransformContext(
|
| + authenticator_->TransformKeyIfNeeded(
|
| master_key_context,
|
| - base::Bind(&ManagerPasswordService::OnContextTransformed,
|
| + base::Bind(&ManagerPasswordService::OnKeyTransformedIfNeeded,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| }
|
| }
|
|
|
| -void ManagerPasswordService::OnContextTransformed(
|
| +void ManagerPasswordService::OnKeyTransformedIfNeeded(
|
| const UserContext& master_key_context) {
|
| - DCHECK(!master_key_context.DoesNeedPasswordHashing());
|
| - cryptohome::KeyDefinition new_master_key(master_key_context.GetPassword(),
|
| + const Key* const key = master_key_context.GetKey();
|
| + DCHECK_NE(Key::KEY_TYPE_PASSWORD_PLAIN, key->GetKeyType());
|
| + cryptohome::KeyDefinition new_master_key(key->GetSecret(),
|
| kCryptohomeMasterKeyLabel,
|
| cryptohome::PRIV_DEFAULT);
|
| // Use new master key for further actions.
|
| UserContext new_master_key_context = master_key_context;
|
| - new_master_key_context.SetKeyLabel(kCryptohomeMasterKeyLabel);
|
| + new_master_key_context.GetKey()->SetLabel(kCryptohomeMasterKeyLabel);
|
| authenticator_->AddKey(
|
| master_key_context,
|
| new_master_key,
|
|
|