| Index: chrome/browser/chromeos/login/managed/supervised_user_authentication.cc
|
| diff --git a/chrome/browser/chromeos/login/managed/supervised_user_authentication.cc b/chrome/browser/chromeos/login/managed/supervised_user_authentication.cc
|
| index a9b92cbd1a4e935f71ec850ad88c62432e12a55f..cbfba6f2be35f157a4366564ae367755711846b5 100644
|
| --- a/chrome/browser/chromeos/login/managed/supervised_user_authentication.cc
|
| +++ b/chrome/browser/chromeos/login/managed/supervised_user_authentication.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/base64.h"
|
| #include "base/command_line.h"
|
| #include "base/json/json_file_value_serializer.h"
|
| +#include "base/macros.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_util.h"
|
| @@ -102,17 +103,20 @@ std::string BuildPasswordSignature(const std::string& password,
|
| base::DictionaryValue* LoadPasswordData(base::FilePath profile_dir) {
|
| JSONFileValueSerializer serializer(profile_dir.Append(kPasswordUpdateFile));
|
| std::string error_message;
|
| - int error_code;
|
| + int error_code = JSONFileValueSerializer::JSON_NO_ERROR;
|
| scoped_ptr<base::Value> value(
|
| serializer.Deserialize(&error_code, &error_message));
|
| if (JSONFileValueSerializer::JSON_NO_ERROR != error_code) {
|
| + LOG(ERROR) << "Could not deserialize password data, error = " << error_code
|
| + << " / " << error_message;
|
| return NULL;
|
| }
|
| base::DictionaryValue* result;
|
| if (!value->GetAsDictionary(&result)) {
|
| + LOG(ERROR) << "Stored password data is not a dictionary";
|
| return NULL;
|
| }
|
| - value.Pass();
|
| + ignore_result(value.release());
|
| return result;
|
| }
|
|
|
| @@ -213,6 +217,8 @@ bool SupervisedUserAuthentication::FillDataForNewUser(
|
| BuildPasswordSignature(salted_password, revision, base64_signature_key);
|
| password_data->SetStringWithoutPathExpansion(kEncryptedPassword,
|
| salted_password);
|
| + password_data->SetStringWithoutPathExpansion(kPasswordSignature,
|
| + base64_signature);
|
|
|
| extra_data->SetStringWithoutPathExpansion(kPasswordEncryptionKey,
|
| BuildRawHMACKey());
|
| @@ -266,7 +272,6 @@ SupervisedUserAuthentication::GetPasswordSchema(
|
| bool SupervisedUserAuthentication::NeedPasswordChange(
|
| const std::string& user_id,
|
| const base::DictionaryValue* password_data) {
|
| -
|
| base::DictionaryValue local;
|
| owner_->GetPasswordInformation(user_id, &local);
|
| int local_schema = SCHEMA_PLAIN;
|
| @@ -333,11 +338,11 @@ bool SupervisedUserAuthentication::HasIncompleteKey(
|
| return incomplete_key;
|
| }
|
|
|
| -void SupervisedUserAuthentication::MarkKeyIncomplete(
|
| - const std::string& user_id) {
|
| +void SupervisedUserAuthentication::MarkKeyIncomplete(const std::string& user_id,
|
| + bool incomplete) {
|
| base::DictionaryValue holder;
|
| owner_->GetPasswordInformation(user_id, &holder);
|
| - holder.SetBoolean(kHasIncompleteKey, true);
|
| + holder.SetBoolean(kHasIncompleteKey, incomplete);
|
| owner_->SetPasswordInformation(user_id, &holder);
|
| }
|
|
|
|
|