Index: chrome/browser/policy/cloud/cloud_policy_validator.cc |
diff --git a/chrome/browser/policy/cloud/cloud_policy_validator.cc b/chrome/browser/policy/cloud/cloud_policy_validator.cc |
index c6e6dedc9fcbdbe62ac82129f0573f51a6c7b29a..585c182ab95c0cd33eb387dd6238026656fa475e 100644 |
--- a/chrome/browser/policy/cloud/cloud_policy_validator.cc |
+++ b/chrome/browser/policy/cloud/cloud_policy_validator.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/policy/cloud/cloud_policy_validator.h" |
#include "base/bind_helpers.h" |
+#include "base/hash.h" |
#include "base/message_loop/message_loop.h" |
#include "base/stl_util.h" |
#include "chrome/browser/policy/cloud/cloud_policy_constants.h" |
@@ -95,6 +96,10 @@ void CloudPolicyValidatorBase::ValidateInitialKey() { |
validation_flags_ |= VALIDATE_INITIAL_KEY; |
} |
+void CloudPolicyValidatorBase::ValidateHashValue() { |
+ validation_flags_ |= VALIDATE_HASH_VALUE; |
+} |
+ |
void CloudPolicyValidatorBase::ValidateAgainstCurrentPolicy( |
const em::PolicyData* policy_data, |
ValidateTimestampOption timestamp_option, |
@@ -118,6 +123,7 @@ CloudPolicyValidatorBase::CloudPolicyValidatorBase( |
: status_(VALIDATION_OK), |
policy_(policy_response.Pass()), |
payload_(payload), |
+ hash_value_(0), |
validation_flags_(0), |
timestamp_not_before_(0), |
timestamp_not_after_(0), |
@@ -197,6 +203,7 @@ void CloudPolicyValidatorBase::RunChecks() { |
{ VALIDATE_DOMAIN, &CloudPolicyValidatorBase::CheckDomain }, |
{ VALIDATE_TIMESTAMP, &CloudPolicyValidatorBase::CheckTimestamp }, |
{ VALIDATE_PAYLOAD, &CloudPolicyValidatorBase::CheckPayload }, |
+ { VALIDATE_HASH_VALUE, &CloudPolicyValidatorBase::CheckHashValue }, |
}; |
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kCheckFunctions); ++i) { |
@@ -352,6 +359,11 @@ CloudPolicyValidatorBase::Status CloudPolicyValidatorBase::CheckPayload() { |
return VALIDATION_OK; |
} |
+CloudPolicyValidatorBase::Status CloudPolicyValidatorBase::CheckHashValue() { |
+ hash_value_ = base::Hash(policy_data_->policy_value()); |
Joao da Silva
2013/07/23 20:44:47
This isn't a validation of the policy (it can't fa
Steve Condie
2013/07/24 01:42:04
I agree the way you suggested is cleaner. The only
|
+ return VALIDATION_OK; |
+} |
+ |
// static |
bool CloudPolicyValidatorBase::VerifySignature(const std::string& data, |
const std::string& key, |