OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.h" | 5 #include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 const UserContext& user_context, | 100 const UserContext& user_context, |
101 const GetDeviceDataListCallback& callback) { | 101 const GetDeviceDataListCallback& callback) { |
102 read_operation_queue_.push_back(new EasyUnlockGetKeysOperation( | 102 read_operation_queue_.push_back(new EasyUnlockGetKeysOperation( |
103 user_context, base::Bind(&EasyUnlockKeyManager::OnKeysFetched, | 103 user_context, base::Bind(&EasyUnlockKeyManager::OnKeysFetched, |
104 weak_ptr_factory_.GetWeakPtr(), callback))); | 104 weak_ptr_factory_.GetWeakPtr(), callback))); |
105 RunNextOperation(); | 105 RunNextOperation(); |
106 } | 106 } |
107 | 107 |
108 // static | 108 // static |
109 void EasyUnlockKeyManager::DeviceDataToRemoteDeviceDictionary( | 109 void EasyUnlockKeyManager::DeviceDataToRemoteDeviceDictionary( |
110 const std::string& user_id, | 110 const user_manager::UserID& user_id, |
111 const EasyUnlockDeviceKeyData& data, | 111 const EasyUnlockDeviceKeyData& data, |
112 base::DictionaryValue* dict) { | 112 base::DictionaryValue* dict) { |
113 dict->SetString(kKeyBluetoothAddress, data.bluetooth_address); | 113 dict->SetString(kKeyBluetoothAddress, data.bluetooth_address); |
114 dict->SetString(kKeyPsk, data.psk); | 114 dict->SetString(kKeyPsk, data.psk); |
115 scoped_ptr<base::DictionaryValue> permit_record(new base::DictionaryValue); | 115 scoped_ptr<base::DictionaryValue> permit_record(new base::DictionaryValue); |
116 dict->Set(kKeyPermitRecord, permit_record.release()); | 116 dict->Set(kKeyPermitRecord, permit_record.release()); |
117 dict->SetString(kKeyPermitId, data.public_key); | 117 dict->SetString(kKeyPermitId, data.public_key); |
118 dict->SetString(kKeyPermitData, data.public_key); | 118 dict->SetString(kKeyPermitData, data.public_key); |
119 dict->SetString(kKeyPermitType, kPermitTypeLicence); | 119 dict->SetString(kKeyPermitType, kPermitTypeLicence); |
120 dict->SetString(kKeyPermitPermitId, | 120 dict->SetString(kKeyPermitPermitId, |
121 base::StringPrintf(kPermitPermitIdFormat, | 121 base::StringPrintf(kPermitPermitIdFormat, |
122 user_id.c_str())); | 122 user_id.GetUserEmail().c_str())); |
123 } | 123 } |
124 | 124 |
125 // static | 125 // static |
126 bool EasyUnlockKeyManager::RemoteDeviceDictionaryToDeviceData( | 126 bool EasyUnlockKeyManager::RemoteDeviceDictionaryToDeviceData( |
127 const base::DictionaryValue& dict, | 127 const base::DictionaryValue& dict, |
128 EasyUnlockDeviceKeyData* data) { | 128 EasyUnlockDeviceKeyData* data) { |
129 std::string bluetooth_address; | 129 std::string bluetooth_address; |
130 std::string public_key; | 130 std::string public_key; |
131 std::string psk; | 131 std::string psk; |
132 | 132 |
133 if (!dict.GetString(kKeyBluetoothAddress, &bluetooth_address) || | 133 if (!dict.GetString(kKeyBluetoothAddress, &bluetooth_address) || |
134 !dict.GetString(kKeyPermitId, &public_key) || | 134 !dict.GetString(kKeyPermitId, &public_key) || |
135 !dict.GetString(kKeyPsk, &psk)) { | 135 !dict.GetString(kKeyPsk, &psk)) { |
136 return false; | 136 return false; |
137 } | 137 } |
138 | 138 |
139 data->bluetooth_address.swap(bluetooth_address); | 139 data->bluetooth_address.swap(bluetooth_address); |
140 data->public_key.swap(public_key); | 140 data->public_key.swap(public_key); |
141 data->psk.swap(psk); | 141 data->psk.swap(psk); |
142 return true; | 142 return true; |
143 } | 143 } |
144 | 144 |
145 // static | 145 // static |
146 void EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList( | 146 void EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList( |
147 const std::string& user_id, | 147 const user_manager::UserID& user_id, |
148 const EasyUnlockDeviceKeyDataList& data_list, | 148 const EasyUnlockDeviceKeyDataList& data_list, |
149 base::ListValue* device_list) { | 149 base::ListValue* device_list) { |
150 device_list->Clear(); | 150 device_list->Clear(); |
151 for (size_t i = 0; i < data_list.size(); ++i) { | 151 for (size_t i = 0; i < data_list.size(); ++i) { |
152 scoped_ptr<base::DictionaryValue> device_dict(new base::DictionaryValue); | 152 scoped_ptr<base::DictionaryValue> device_dict(new base::DictionaryValue); |
153 DeviceDataToRemoteDeviceDictionary( | 153 DeviceDataToRemoteDeviceDictionary( |
154 user_id, data_list[i], device_dict.get()); | 154 user_id, data_list[i], device_dict.get()); |
155 device_list->Append(device_dict.release()); | 155 device_list->Append(device_dict.release()); |
156 } | 156 } |
157 } | 157 } |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 const EasyUnlockDeviceKeyDataList& fetched_data) { | 215 const EasyUnlockDeviceKeyDataList& fetched_data) { |
216 if (!callback.is_null()) | 216 if (!callback.is_null()) |
217 callback.Run(fetch_success, fetched_data); | 217 callback.Run(fetch_success, fetched_data); |
218 | 218 |
219 DCHECK(pending_read_operation_); | 219 DCHECK(pending_read_operation_); |
220 pending_read_operation_.reset(); | 220 pending_read_operation_.reset(); |
221 RunNextOperation(); | 221 RunNextOperation(); |
222 } | 222 } |
223 | 223 |
224 } // namespace chromeos | 224 } // namespace chromeos |
OLD | NEW |