| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/policy/user_cloud_policy_store_chromeos.h" | 5 #include "chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 NotifyStoreError(); | 236 NotifyStoreError(); |
| 237 return; | 237 return; |
| 238 } | 238 } |
| 239 | 239 |
| 240 policy_key_path_ = user_policy_key_dir_.Append( | 240 policy_key_path_ = user_policy_key_dir_.Append( |
| 241 base::StringPrintf(kPolicyKeyFile, sanitized_username.c_str())); | 241 base::StringPrintf(kPolicyKeyFile, sanitized_username.c_str())); |
| 242 LoadPolicyKey(policy_key_path_, &policy_key_); | 242 LoadPolicyKey(policy_key_path_, &policy_key_); |
| 243 policy_key_loaded_ = true; | 243 policy_key_loaded_ = true; |
| 244 | 244 |
| 245 scoped_ptr<UserCloudPolicyValidator> validator = | 245 scoped_ptr<UserCloudPolicyValidator> validator = |
| 246 CreateValidator(policy.Pass()); | 246 CreateValidator(policy.Pass(), |
| 247 CloudPolicyValidatorBase::TIMESTAMP_REQUIRED); |
| 247 validator->ValidateUsername(username_); | 248 validator->ValidateUsername(username_); |
| 248 const bool allow_rotation = false; | 249 const bool allow_rotation = false; |
| 249 validator->ValidateSignature(policy_key_, allow_rotation); | 250 validator->ValidateSignature(policy_key_, allow_rotation); |
| 250 validator->RunValidation(); | 251 validator->RunValidation(); |
| 251 OnRetrievedPolicyValidated(validator.get()); | 252 OnRetrievedPolicyValidated(validator.get()); |
| 252 } | 253 } |
| 253 | 254 |
| 254 void UserCloudPolicyStoreChromeOS::ValidatePolicyForStore( | 255 void UserCloudPolicyStoreChromeOS::ValidatePolicyForStore( |
| 255 scoped_ptr<em::PolicyFetchResponse> policy) { | 256 scoped_ptr<em::PolicyFetchResponse> policy) { |
| 256 // Create and configure a validator. | 257 // Create and configure a validator. |
| 257 scoped_ptr<UserCloudPolicyValidator> validator = | 258 scoped_ptr<UserCloudPolicyValidator> validator = |
| 258 CreateValidator(policy.Pass()); | 259 CreateValidator(policy.Pass(), |
| 260 CloudPolicyValidatorBase::TIMESTAMP_REQUIRED); |
| 259 validator->ValidateUsername(username_); | 261 validator->ValidateUsername(username_); |
| 260 if (policy_key_.empty()) { | 262 if (policy_key_.empty()) { |
| 261 validator->ValidateInitialKey(); | 263 validator->ValidateInitialKey(); |
| 262 } else { | 264 } else { |
| 263 const bool allow_rotation = true; | 265 const bool allow_rotation = true; |
| 264 validator->ValidateSignature(policy_key_, allow_rotation); | 266 validator->ValidateSignature(policy_key_, allow_rotation); |
| 265 } | 267 } |
| 266 | 268 |
| 267 // Start validation. The Validator will delete itself once validation is | 269 // Start validation. The Validator will delete itself once validation is |
| 268 // complete. | 270 // complete. |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 EnsurePolicyKeyLoaded( | 348 EnsurePolicyKeyLoaded( |
| 347 base::Bind(&UserCloudPolicyStoreChromeOS::ValidateRetrievedPolicy, | 349 base::Bind(&UserCloudPolicyStoreChromeOS::ValidateRetrievedPolicy, |
| 348 weak_factory_.GetWeakPtr(), | 350 weak_factory_.GetWeakPtr(), |
| 349 base::Passed(&policy))); | 351 base::Passed(&policy))); |
| 350 } | 352 } |
| 351 | 353 |
| 352 void UserCloudPolicyStoreChromeOS::ValidateRetrievedPolicy( | 354 void UserCloudPolicyStoreChromeOS::ValidateRetrievedPolicy( |
| 353 scoped_ptr<em::PolicyFetchResponse> policy) { | 355 scoped_ptr<em::PolicyFetchResponse> policy) { |
| 354 // Create and configure a validator for the loaded policy. | 356 // Create and configure a validator for the loaded policy. |
| 355 scoped_ptr<UserCloudPolicyValidator> validator = | 357 scoped_ptr<UserCloudPolicyValidator> validator = |
| 356 CreateValidator(policy.Pass()); | 358 CreateValidator(policy.Pass(), |
| 359 CloudPolicyValidatorBase::TIMESTAMP_REQUIRED); |
| 357 validator->ValidateUsername(username_); | 360 validator->ValidateUsername(username_); |
| 358 const bool allow_rotation = false; | 361 const bool allow_rotation = false; |
| 359 validator->ValidateSignature(policy_key_, allow_rotation); | 362 validator->ValidateSignature(policy_key_, allow_rotation); |
| 360 // Start validation. The Validator will delete itself once validation is | 363 // Start validation. The Validator will delete itself once validation is |
| 361 // complete. | 364 // complete. |
| 362 validator.release()->StartValidation( | 365 validator.release()->StartValidation( |
| 363 base::Bind(&UserCloudPolicyStoreChromeOS::OnRetrievedPolicyValidated, | 366 base::Bind(&UserCloudPolicyStoreChromeOS::OnRetrievedPolicyValidated, |
| 364 weak_factory_.GetWeakPtr())); | 367 weak_factory_.GetWeakPtr())); |
| 365 } | 368 } |
| 366 | 369 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 397 void UserCloudPolicyStoreChromeOS::OnLegacyLoadFinished( | 400 void UserCloudPolicyStoreChromeOS::OnLegacyLoadFinished( |
| 398 const std::string& dm_token, | 401 const std::string& dm_token, |
| 399 const std::string& device_id, | 402 const std::string& device_id, |
| 400 Status status, | 403 Status status, |
| 401 scoped_ptr<em::PolicyFetchResponse> policy) { | 404 scoped_ptr<em::PolicyFetchResponse> policy) { |
| 402 status_ = status; | 405 status_ = status; |
| 403 if (policy.get()) { | 406 if (policy.get()) { |
| 404 // Create and configure a validator for the loaded legacy policy. Note that | 407 // Create and configure a validator for the loaded legacy policy. Note that |
| 405 // the signature on this policy is not verified. | 408 // the signature on this policy is not verified. |
| 406 scoped_ptr<UserCloudPolicyValidator> validator = | 409 scoped_ptr<UserCloudPolicyValidator> validator = |
| 407 CreateValidator(policy.Pass()); | 410 CreateValidator(policy.Pass(), |
| 411 CloudPolicyValidatorBase::TIMESTAMP_REQUIRED); |
| 408 validator->ValidateUsername(username_); | 412 validator->ValidateUsername(username_); |
| 409 validator.release()->StartValidation( | 413 validator.release()->StartValidation( |
| 410 base::Bind(&UserCloudPolicyStoreChromeOS::OnLegacyPolicyValidated, | 414 base::Bind(&UserCloudPolicyStoreChromeOS::OnLegacyPolicyValidated, |
| 411 weak_factory_.GetWeakPtr(), | 415 weak_factory_.GetWeakPtr(), |
| 412 dm_token, | 416 dm_token, |
| 413 device_id)); | 417 device_id)); |
| 414 } else { | 418 } else { |
| 415 InstallLegacyTokens(dm_token, device_id); | 419 InstallLegacyTokens(dm_token, device_id); |
| 416 } | 420 } |
| 417 } | 421 } |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 !sanitized_username.empty()) { | 540 !sanitized_username.empty()) { |
| 537 policy_key_path_ = user_policy_key_dir_.Append( | 541 policy_key_path_ = user_policy_key_dir_.Append( |
| 538 base::StringPrintf(kPolicyKeyFile, sanitized_username.c_str())); | 542 base::StringPrintf(kPolicyKeyFile, sanitized_username.c_str())); |
| 539 } else { | 543 } else { |
| 540 SampleValidationFailure(VALIDATION_FAILURE_DBUS); | 544 SampleValidationFailure(VALIDATION_FAILURE_DBUS); |
| 541 } | 545 } |
| 542 ReloadPolicyKey(callback); | 546 ReloadPolicyKey(callback); |
| 543 } | 547 } |
| 544 | 548 |
| 545 } // namespace policy | 549 } // namespace policy |
| OLD | NEW |