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_authenticator.h" | 5 #include "components/proximity_auth/device_to_device_authenticator.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/time/time.h" | 9 #include "base/time/time.h" |
8 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
9 #include "components/proximity_auth/connection.h" | 11 #include "components/proximity_auth/connection.h" |
10 #include "components/proximity_auth/cryptauth/secure_message_delegate.h" | 12 #include "components/proximity_auth/cryptauth/secure_message_delegate.h" |
11 #include "components/proximity_auth/device_to_device_initiator_operations.h" | 13 #include "components/proximity_auth/device_to_device_initiator_operations.h" |
12 #include "components/proximity_auth/device_to_device_secure_context.h" | 14 #include "components/proximity_auth/device_to_device_secure_context.h" |
13 #include "components/proximity_auth/logging/logging.h" | 15 #include "components/proximity_auth/logging/logging.h" |
14 #include "components/proximity_auth/secure_context.h" | 16 #include "components/proximity_auth/secure_context.h" |
15 #include "components/proximity_auth/wire_message.h" | 17 #include "components/proximity_auth/wire_message.h" |
16 | 18 |
(...skipping 11 matching lines...) Expand all Loading... |
28 const char kPermitIdPrefix[] = "permit://google.com/easyunlock/v1/"; | 30 const char kPermitIdPrefix[] = "permit://google.com/easyunlock/v1/"; |
29 | 31 |
30 } // namespace | 32 } // namespace |
31 | 33 |
32 DeviceToDeviceAuthenticator::DeviceToDeviceAuthenticator( | 34 DeviceToDeviceAuthenticator::DeviceToDeviceAuthenticator( |
33 Connection* connection, | 35 Connection* connection, |
34 const std::string& account_id, | 36 const std::string& account_id, |
35 scoped_ptr<SecureMessageDelegate> secure_message_delegate) | 37 scoped_ptr<SecureMessageDelegate> secure_message_delegate) |
36 : connection_(connection), | 38 : connection_(connection), |
37 account_id_(account_id), | 39 account_id_(account_id), |
38 secure_message_delegate_(secure_message_delegate.Pass()), | 40 secure_message_delegate_(std::move(secure_message_delegate)), |
39 state_(State::NOT_STARTED), | 41 state_(State::NOT_STARTED), |
40 weak_ptr_factory_(this) { | 42 weak_ptr_factory_(this) { |
41 DCHECK(connection_); | 43 DCHECK(connection_); |
42 } | 44 } |
43 | 45 |
44 DeviceToDeviceAuthenticator::~DeviceToDeviceAuthenticator() { | 46 DeviceToDeviceAuthenticator::~DeviceToDeviceAuthenticator() { |
45 connection_->RemoveObserver(this); | 47 connection_->RemoveObserver(this); |
46 } | 48 } |
47 | 49 |
48 void DeviceToDeviceAuthenticator::Authenticate( | 50 void DeviceToDeviceAuthenticator::Authenticate( |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 void DeviceToDeviceAuthenticator::Succeed() { | 174 void DeviceToDeviceAuthenticator::Succeed() { |
173 DCHECK(state_ == State::SENT_INITIATOR_AUTH); | 175 DCHECK(state_ == State::SENT_INITIATOR_AUTH); |
174 DCHECK(!session_symmetric_key_.empty()); | 176 DCHECK(!session_symmetric_key_.empty()); |
175 PA_LOG(INFO) << "Authentication succeeded!"; | 177 PA_LOG(INFO) << "Authentication succeeded!"; |
176 | 178 |
177 state_ = State::AUTHENTICATION_SUCCESS; | 179 state_ = State::AUTHENTICATION_SUCCESS; |
178 connection_->RemoveObserver(this); | 180 connection_->RemoveObserver(this); |
179 callback_.Run( | 181 callback_.Run( |
180 Result::SUCCESS, | 182 Result::SUCCESS, |
181 make_scoped_ptr(new DeviceToDeviceSecureContext( | 183 make_scoped_ptr(new DeviceToDeviceSecureContext( |
182 secure_message_delegate_.Pass(), session_symmetric_key_, | 184 std::move(secure_message_delegate_), session_symmetric_key_, |
183 responder_auth_message_, SecureContext::PROTOCOL_VERSION_THREE_ONE))); | 185 responder_auth_message_, SecureContext::PROTOCOL_VERSION_THREE_ONE))); |
184 } | 186 } |
185 | 187 |
186 void DeviceToDeviceAuthenticator::OnConnectionStatusChanged( | 188 void DeviceToDeviceAuthenticator::OnConnectionStatusChanged( |
187 Connection* connection, | 189 Connection* connection, |
188 Connection::Status old_status, | 190 Connection::Status old_status, |
189 Connection::Status new_status) { | 191 Connection::Status new_status) { |
190 // We do not expect the connection to drop during authentication. | 192 // We do not expect the connection to drop during authentication. |
191 if (new_status == Connection::DISCONNECTED) { | 193 if (new_status == Connection::DISCONNECTED) { |
192 Fail("Disconnected while authentication is in progress", | 194 Fail("Disconnected while authentication is in progress", |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 Succeed(); | 229 Succeed(); |
228 else | 230 else |
229 Fail("Failed to send [Initiator Auth]"); | 231 Fail("Failed to send [Initiator Auth]"); |
230 } else if (!success && state_ == State::SENT_HELLO) { | 232 } else if (!success && state_ == State::SENT_HELLO) { |
231 DCHECK(message.payload() == hello_message_); | 233 DCHECK(message.payload() == hello_message_); |
232 Fail("Failed to send [Hello]"); | 234 Fail("Failed to send [Hello]"); |
233 } | 235 } |
234 } | 236 } |
235 | 237 |
236 } // namespace proximity_auth | 238 } // namespace proximity_auth |
OLD | NEW |