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 "remoting/protocol/v1_authenticator.h" | 5 #include "remoting/protocol/v1_authenticator.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 host_cert_, *private_key_, host_secret, kClientJid)); | 80 host_cert_, *private_key_, host_secret, kClientJid)); |
81 client_.reset(new V1ClientAuthenticator(kClientJid, client_secret)); | 81 client_.reset(new V1ClientAuthenticator(kClientJid, client_secret)); |
82 } | 82 } |
83 | 83 |
84 void RunAuthExchange() { | 84 void RunAuthExchange() { |
85 do { | 85 do { |
86 scoped_ptr<buzz::XmlElement> message; | 86 scoped_ptr<buzz::XmlElement> message; |
87 | 87 |
88 // Pass message from client to host. | 88 // Pass message from client to host. |
89 ASSERT_EQ(Authenticator::MESSAGE_READY, client_->state()); | 89 ASSERT_EQ(Authenticator::MESSAGE_READY, client_->state()); |
90 message.reset(client_->GetNextMessage()); | 90 message = client_->GetNextMessage(); |
91 ASSERT_TRUE(message.get()); | 91 ASSERT_TRUE(message.get()); |
92 ASSERT_NE(Authenticator::MESSAGE_READY, client_->state()); | 92 ASSERT_NE(Authenticator::MESSAGE_READY, client_->state()); |
93 | 93 |
94 ASSERT_EQ(Authenticator::WAITING_MESSAGE, host_->state()); | 94 ASSERT_EQ(Authenticator::WAITING_MESSAGE, host_->state()); |
95 host_->ProcessMessage(message.get()); | 95 host_->ProcessMessage(message.get()); |
96 ASSERT_NE(Authenticator::WAITING_MESSAGE, host_->state()); | 96 ASSERT_NE(Authenticator::WAITING_MESSAGE, host_->state()); |
97 | 97 |
98 // Are we done yet? | 98 // Are we done yet? |
99 if (host_->state() == Authenticator::ACCEPTED || | 99 if (host_->state() == Authenticator::ACCEPTED || |
100 host_->state() == Authenticator::REJECTED) { | 100 host_->state() == Authenticator::REJECTED) { |
101 break; | 101 break; |
102 } | 102 } |
103 | 103 |
104 // Pass message from host to client. | 104 // Pass message from host to client. |
105 ASSERT_EQ(Authenticator::MESSAGE_READY, host_->state()); | 105 ASSERT_EQ(Authenticator::MESSAGE_READY, host_->state()); |
106 message.reset(host_->GetNextMessage()); | 106 message = host_->GetNextMessage(); |
107 ASSERT_TRUE(message.get()); | 107 ASSERT_TRUE(message.get()); |
108 ASSERT_NE(Authenticator::MESSAGE_READY, host_->state()); | 108 ASSERT_NE(Authenticator::MESSAGE_READY, host_->state()); |
109 | 109 |
110 ASSERT_EQ(Authenticator::WAITING_MESSAGE, client_->state()); | 110 ASSERT_EQ(Authenticator::WAITING_MESSAGE, client_->state()); |
111 client_->ProcessMessage(message.get()); | 111 client_->ProcessMessage(message.get()); |
112 ASSERT_NE(Authenticator::WAITING_MESSAGE, client_->state()); | 112 ASSERT_NE(Authenticator::WAITING_MESSAGE, client_->state()); |
113 } while (host_->state() != Authenticator::ACCEPTED && | 113 } while (host_->state() != Authenticator::ACCEPTED && |
114 host_->state() != Authenticator::REJECTED); | 114 host_->state() != Authenticator::REJECTED); |
115 } | 115 } |
116 | 116 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 170 |
171 TEST_F(V1AuthenticatorTest, SuccessfulAuth) { | 171 TEST_F(V1AuthenticatorTest, SuccessfulAuth) { |
172 { | 172 { |
173 SCOPED_TRACE("RunAuthExchange"); | 173 SCOPED_TRACE("RunAuthExchange"); |
174 InitAuthenticators(kTestSharedSecret, kTestSharedSecret); | 174 InitAuthenticators(kTestSharedSecret, kTestSharedSecret); |
175 RunAuthExchange(); | 175 RunAuthExchange(); |
176 } | 176 } |
177 ASSERT_EQ(Authenticator::ACCEPTED, host_->state()); | 177 ASSERT_EQ(Authenticator::ACCEPTED, host_->state()); |
178 ASSERT_EQ(Authenticator::ACCEPTED, client_->state()); | 178 ASSERT_EQ(Authenticator::ACCEPTED, client_->state()); |
179 | 179 |
180 client_auth_.reset(client_->CreateChannelAuthenticator()); | 180 client_auth_ = client_->CreateChannelAuthenticator(); |
181 host_auth_.reset(host_->CreateChannelAuthenticator()); | 181 host_auth_ = host_->CreateChannelAuthenticator(); |
182 RunChannelAuth(false); | 182 RunChannelAuth(false); |
183 | 183 |
184 EXPECT_TRUE(client_socket_.get() != NULL); | 184 EXPECT_TRUE(client_socket_.get() != NULL); |
185 EXPECT_TRUE(host_socket_.get() != NULL); | 185 EXPECT_TRUE(host_socket_.get() != NULL); |
186 | 186 |
187 StreamConnectionTester tester(host_socket_.get(), client_socket_.get(), | 187 StreamConnectionTester tester(host_socket_.get(), client_socket_.get(), |
188 kMessageSize, kMessages); | 188 kMessageSize, kMessages); |
189 | 189 |
190 tester.Start(); | 190 tester.Start(); |
191 message_loop_.Run(); | 191 message_loop_.Run(); |
192 tester.CheckResults(); | 192 tester.CheckResults(); |
193 } | 193 } |
194 | 194 |
195 // Verify that connection is rejected when secrets don't match. | 195 // Verify that connection is rejected when secrets don't match. |
196 TEST_F(V1AuthenticatorTest, InvalidSecret) { | 196 TEST_F(V1AuthenticatorTest, InvalidSecret) { |
197 { | 197 { |
198 SCOPED_TRACE("RunAuthExchange"); | 198 SCOPED_TRACE("RunAuthExchange"); |
199 InitAuthenticators(kTestSharedSecretBad, kTestSharedSecret); | 199 InitAuthenticators(kTestSharedSecretBad, kTestSharedSecret); |
200 RunAuthExchange(); | 200 RunAuthExchange(); |
201 } | 201 } |
202 ASSERT_EQ(Authenticator::REJECTED, host_->state()); | 202 ASSERT_EQ(Authenticator::REJECTED, host_->state()); |
203 } | 203 } |
204 | 204 |
205 } // namespace protocol | 205 } // namespace protocol |
206 } // namespace remoting | 206 } // namespace remoting |
OLD | NEW |