OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/proximity_auth/device_to_device_secure_context.h" | 5 #include "components/proximity_auth/device_to_device_secure_context.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 // Callback saving |result| to |result_out|. | 25 // Callback saving |result| to |result_out|. |
26 void SaveResult(std::string* result_out, const std::string& result) { | 26 void SaveResult(std::string* result_out, const std::string& result) { |
27 *result_out = result; | 27 *result_out = result; |
28 } | 28 } |
29 | 29 |
30 } // namespace | 30 } // namespace |
31 | 31 |
32 class ProximityAuthDeviceToDeviceSecureContextTest : public testing::Test { | 32 class ProximityAuthDeviceToDeviceSecureContextTest : public testing::Test { |
33 protected: | 33 protected: |
34 ProximityAuthDeviceToDeviceSecureContextTest() | 34 ProximityAuthDeviceToDeviceSecureContextTest() |
35 : secure_context_(base::WrapUnique(new FakeSecureMessageDelegate()), | 35 : secure_context_(base::MakeUnique<FakeSecureMessageDelegate>(), |
36 kSymmetricKey, | 36 kSymmetricKey, |
37 kResponderAuthMessage, | 37 kResponderAuthMessage, |
38 kProtocolVersion) {} | 38 kProtocolVersion) {} |
39 | 39 |
40 DeviceToDeviceSecureContext secure_context_; | 40 DeviceToDeviceSecureContext secure_context_; |
41 }; | 41 }; |
42 | 42 |
43 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, GetProperties) { | 43 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, GetProperties) { |
44 EXPECT_EQ(kResponderAuthMessage, secure_context_.GetChannelBindingData()); | 44 EXPECT_EQ(kResponderAuthMessage, secure_context_.GetChannelBindingData()); |
45 EXPECT_EQ(kProtocolVersion, secure_context_.GetProtocolVersion()); | 45 EXPECT_EQ(kProtocolVersion, secure_context_.GetProtocolVersion()); |
(...skipping 21 matching lines...) Expand all Loading... |
67 std::string encoded_message = "invalidly encoded message"; | 67 std::string encoded_message = "invalidly encoded message"; |
68 std::string decoded_message = "not empty"; | 68 std::string decoded_message = "not empty"; |
69 secure_context_.Decode(encoded_message, | 69 secure_context_.Decode(encoded_message, |
70 base::Bind(&SaveResult, &decoded_message)); | 70 base::Bind(&SaveResult, &decoded_message)); |
71 EXPECT_TRUE(decoded_message.empty()); | 71 EXPECT_TRUE(decoded_message.empty()); |
72 } | 72 } |
73 | 73 |
74 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, EncodeAndDecode) { | 74 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, EncodeAndDecode) { |
75 // Initialize second secure channel with the same parameters as the first. | 75 // Initialize second secure channel with the same parameters as the first. |
76 DeviceToDeviceSecureContext secure_context2( | 76 DeviceToDeviceSecureContext secure_context2( |
77 base::WrapUnique(new FakeSecureMessageDelegate()), kSymmetricKey, | 77 base::MakeUnique<FakeSecureMessageDelegate>(), kSymmetricKey, |
78 kResponderAuthMessage, kProtocolVersion); | 78 kResponderAuthMessage, kProtocolVersion); |
79 std::string message = "encrypt this message"; | 79 std::string message = "encrypt this message"; |
80 | 80 |
81 // Pass some messages between the two secure contexts. | 81 // Pass some messages between the two secure contexts. |
82 for (int i = 0; i < 3; ++i) { | 82 for (int i = 0; i < 3; ++i) { |
83 std::string encoded_message; | 83 std::string encoded_message; |
84 secure_context_.Encode(message, base::Bind(&SaveResult, &encoded_message)); | 84 secure_context_.Encode(message, base::Bind(&SaveResult, &encoded_message)); |
85 EXPECT_NE(message, encoded_message); | 85 EXPECT_NE(message, encoded_message); |
86 | 86 |
87 std::string decoded_message; | 87 std::string decoded_message; |
88 secure_context2.Decode(encoded_message, | 88 secure_context2.Decode(encoded_message, |
89 base::Bind(&SaveResult, &decoded_message)); | 89 base::Bind(&SaveResult, &decoded_message)); |
90 EXPECT_EQ(message, decoded_message); | 90 EXPECT_EQ(message, decoded_message); |
91 } | 91 } |
92 } | 92 } |
93 | 93 |
94 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, | 94 TEST_F(ProximityAuthDeviceToDeviceSecureContextTest, |
95 DecodeInvalidSequenceNumber) { | 95 DecodeInvalidSequenceNumber) { |
96 // Initialize second secure channel with the same parameters as the first. | 96 // Initialize second secure channel with the same parameters as the first. |
97 DeviceToDeviceSecureContext secure_context2( | 97 DeviceToDeviceSecureContext secure_context2( |
98 base::WrapUnique(new FakeSecureMessageDelegate()), kSymmetricKey, | 98 base::MakeUnique<FakeSecureMessageDelegate>(), kSymmetricKey, |
99 kResponderAuthMessage, kProtocolVersion); | 99 kResponderAuthMessage, kProtocolVersion); |
100 | 100 |
101 // Send a few messages over the first secure context. | 101 // Send a few messages over the first secure context. |
102 std::string message = "encrypt this message"; | 102 std::string message = "encrypt this message"; |
103 std::string encoded1; | 103 std::string encoded1; |
104 for (int i = 0; i < 3; ++i) { | 104 for (int i = 0; i < 3; ++i) { |
105 secure_context_.Encode(message, base::Bind(&SaveResult, &encoded1)); | 105 secure_context_.Encode(message, base::Bind(&SaveResult, &encoded1)); |
106 } | 106 } |
107 | 107 |
108 // Second secure channel should not decode the message with an invalid | 108 // Second secure channel should not decode the message with an invalid |
109 // sequence number. | 109 // sequence number. |
110 std::string decoded_message = "not empty"; | 110 std::string decoded_message = "not empty"; |
111 secure_context_.Decode(encoded1, base::Bind(&SaveResult, &decoded_message)); | 111 secure_context_.Decode(encoded1, base::Bind(&SaveResult, &decoded_message)); |
112 EXPECT_TRUE(decoded_message.empty()); | 112 EXPECT_TRUE(decoded_message.empty()); |
113 } | 113 } |
114 | 114 |
115 } // proximity_auth | 115 } // proximity_auth |
OLD | NEW |