| 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 <vector> | 5 #include <vector> | 
| 6 | 6 | 
| 7 #include "base/bind.h" | 7 #include "base/bind.h" | 
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" | 
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" | 
| 10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" | 
|  | 11 #include "base/stl_util.h" | 
| 11 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" | 
| 12 #include "components/policy/core/common/cloud/cloud_policy_constants.h" | 13 #include "components/policy/core/common/cloud/cloud_policy_constants.h" | 
| 13 #include "components/policy/core/common/cloud/cloud_policy_validator.h" | 14 #include "components/policy/core/common/cloud/cloud_policy_validator.h" | 
| 14 #include "components/policy/core/common/cloud/policy_builder.h" | 15 #include "components/policy/core/common/cloud/policy_builder.h" | 
| 15 #include "crypto/rsa_private_key.h" | 16 #include "crypto/rsa_private_key.h" | 
| 16 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" | 
| 17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" | 
| 18 | 19 | 
| 19 namespace em = enterprise_management; | 20 namespace em = enterprise_management; | 
| 20 | 21 | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 50     EXPECT_CALL(*this, ValidationCompletion(validator.get())).WillOnce( | 51     EXPECT_CALL(*this, ValidationCompletion(validator.get())).WillOnce( | 
| 51         check_action); | 52         check_action); | 
| 52     validator.release()->StartValidation( | 53     validator.release()->StartValidation( | 
| 53         base::Bind(&CloudPolicyValidatorTest::ValidationCompletion, | 54         base::Bind(&CloudPolicyValidatorTest::ValidationCompletion, | 
| 54                    base::Unretained(this))); | 55                    base::Unretained(this))); | 
| 55     loop_.RunUntilIdle(); | 56     loop_.RunUntilIdle(); | 
| 56     Mock::VerifyAndClearExpectations(this); | 57     Mock::VerifyAndClearExpectations(this); | 
| 57   } | 58   } | 
| 58 | 59 | 
| 59   scoped_ptr<UserCloudPolicyValidator> CreateValidator() { | 60   scoped_ptr<UserCloudPolicyValidator> CreateValidator() { | 
| 60     std::vector<uint8> public_key; | 61     std::vector<uint8> public_key_bytes; | 
| 61     EXPECT_TRUE( | 62     EXPECT_TRUE( | 
| 62         PolicyBuilder::CreateTestSigningKey()->ExportPublicKey(&public_key)); | 63         PolicyBuilder::CreateTestSigningKey()->ExportPublicKey( | 
|  | 64             &public_key_bytes)); | 
| 63     policy_.Build(); | 65     policy_.Build(); | 
| 64 | 66 | 
|  | 67     // Convert from bytes to string format (which is what ValidateSignature() | 
|  | 68     // takes). | 
|  | 69     std::string public_key = std::string( | 
|  | 70         reinterpret_cast<const char*>(vector_as_array(&public_key_bytes)), | 
|  | 71         public_key_bytes.size()); | 
|  | 72 | 
| 65     UserCloudPolicyValidator* validator = UserCloudPolicyValidator::Create( | 73     UserCloudPolicyValidator* validator = UserCloudPolicyValidator::Create( | 
| 66         policy_.GetCopy(), base::MessageLoopProxy::current()); | 74         policy_.GetCopy(), base::MessageLoopProxy::current()); | 
| 67     validator->ValidateTimestamp(timestamp_, timestamp_, | 75     validator->ValidateTimestamp(timestamp_, timestamp_, | 
| 68                                  timestamp_option_); | 76                                  timestamp_option_); | 
| 69     validator->ValidateUsername(PolicyBuilder::kFakeUsername); | 77     validator->ValidateUsername(PolicyBuilder::kFakeUsername); | 
| 70     validator->ValidateDomain(PolicyBuilder::kFakeDomain); | 78     validator->ValidateDomain(PolicyBuilder::kFakeDomain); | 
| 71     validator->ValidateDMToken(existing_dm_token_, ignore_missing_dm_token_); | 79     validator->ValidateDMToken(existing_dm_token_, ignore_missing_dm_token_); | 
| 72     validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType); | 80     validator->ValidatePolicyType(dm_protocol::kChromeUserPolicyType); | 
| 73     validator->ValidatePayload(); | 81     validator->ValidatePayload(); | 
| 74     validator->ValidateSignature(public_key, allow_key_rotation_); | 82     validator->ValidateSignature(public_key, | 
|  | 83                                  GetPolicyVerificationKey(), | 
|  | 84                                  PolicyBuilder::GetTestSigningKeySignature(), | 
|  | 85                                  allow_key_rotation_); | 
| 75     if (allow_key_rotation_) | 86     if (allow_key_rotation_) | 
| 76       validator->ValidateInitialKey(); | 87       validator->ValidateInitialKey(GetPolicyVerificationKey()); | 
| 77     return make_scoped_ptr(validator); | 88     return make_scoped_ptr(validator); | 
| 78   } | 89   } | 
| 79 | 90 | 
| 80 | 91 | 
| 81   void CheckSuccessfulValidation(UserCloudPolicyValidator* validator) { | 92   void CheckSuccessfulValidation(UserCloudPolicyValidator* validator) { | 
| 82     EXPECT_TRUE(validator->success()); | 93     EXPECT_TRUE(validator->success()); | 
| 83     EXPECT_EQ(policy_.policy().SerializeAsString(), | 94     EXPECT_EQ(policy_.policy().SerializeAsString(), | 
| 84               validator->policy()->SerializeAsString()); | 95               validator->policy()->SerializeAsString()); | 
| 85     EXPECT_EQ(policy_.policy_data().SerializeAsString(), | 96     EXPECT_EQ(policy_.policy_data().SerializeAsString(), | 
| 86               validator->policy_data()->SerializeAsString()); | 97               validator->policy_data()->SerializeAsString()); | 
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 287 | 298 | 
| 288 TEST_F(CloudPolicyValidatorTest, NoRotation) { | 299 TEST_F(CloudPolicyValidatorTest, NoRotation) { | 
| 289   allow_key_rotation_ = false; | 300   allow_key_rotation_ = false; | 
| 290   policy_.UnsetNewSigningKey(); | 301   policy_.UnsetNewSigningKey(); | 
| 291   Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK)); | 302   Validate(CheckStatus(CloudPolicyValidatorBase::VALIDATION_OK)); | 
| 292 } | 303 } | 
| 293 | 304 | 
| 294 }  // namespace | 305 }  // namespace | 
| 295 | 306 | 
| 296 }  // namespace policy | 307 }  // namespace policy | 
| OLD | NEW | 
|---|