Commit 511484be authored by tbarzic's avatar tbarzic Committed by Commit bot

[Easy signin]Set more permit record data when converting from key device list

Also, fix passing tpm ket to challenge creator-> the key array contains
0x00, so standard conversion const char* -> std::string won't work.

BUG=401634

Review URL: https://codereview.chromium.org/586113003

Cr-Commit-Position: refs/heads/master@{#295867}
parent 9b78e178
...@@ -303,7 +303,7 @@ void EasyUnlockCreateKeysOperation::CreateKeyForDeviceAtIndex(size_t index) { ...@@ -303,7 +303,7 @@ void EasyUnlockCreateKeysOperation::CreateKeyForDeviceAtIndex(size_t index) {
challenge_creator_.reset(new ChallengeCreator( challenge_creator_.reset(new ChallengeCreator(
user_key, user_key,
raw_session_key, raw_session_key,
kTpmPubKey, std::string(kTpmPubKey, arraysize(kTpmPubKey)),
device, device,
base::Bind(&EasyUnlockCreateKeysOperation::OnChallengeCreated, base::Bind(&EasyUnlockCreateKeysOperation::OnChallengeCreated,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
......
...@@ -16,12 +16,17 @@ namespace { ...@@ -16,12 +16,17 @@ namespace {
const char kKeyBluetoothAddress[] = "bluetoothAddress"; const char kKeyBluetoothAddress[] = "bluetoothAddress";
const char kKeyPermitRecord[] = "permitRecord"; const char kKeyPermitRecord[] = "permitRecord";
const char kKeyId[] = "id";
const char kKeyPermitId[] = "permitRecord.id"; const char kKeyPermitId[] = "permitRecord.id";
const char kKeyPermitPermitId[] = "permitRecord.permitId";
const char kKeyPermitData[] = "permitRecord.data";
const char kKeyPermitType[] = "permitRecord.type";
const char kKeyPsk[] = "psk"; const char kKeyPsk[] = "psk";
const char kKeyLabelPrefix[] = "easy-unlock-"; const char kKeyLabelPrefix[] = "easy-unlock-";
const char kPermitPermitIdFormat[] = "permit://google.com/easyunlock/v1/%s";
const char kPermitTypeLicence[] = "licence";
} // namespace } // namespace
EasyUnlockKeyManager::EasyUnlockKeyManager() EasyUnlockKeyManager::EasyUnlockKeyManager()
...@@ -94,13 +99,19 @@ void EasyUnlockKeyManager::GetDeviceDataList( ...@@ -94,13 +99,19 @@ void EasyUnlockKeyManager::GetDeviceDataList(
// static // static
void EasyUnlockKeyManager::DeviceDataToRemoteDeviceDictionary( void EasyUnlockKeyManager::DeviceDataToRemoteDeviceDictionary(
const std::string& user_id,
const EasyUnlockDeviceKeyData& data, const EasyUnlockDeviceKeyData& data,
base::DictionaryValue* dict) { base::DictionaryValue* dict) {
dict->SetString(kKeyBluetoothAddress, data.bluetooth_address); dict->SetString(kKeyBluetoothAddress, data.bluetooth_address);
dict->SetString(kKeyPsk, data.psk); dict->SetString(kKeyPsk, data.psk);
scoped_ptr<base::DictionaryValue> permit_record(new base::DictionaryValue); scoped_ptr<base::DictionaryValue> permit_record(new base::DictionaryValue);
permit_record->SetString(kKeyId, data.public_key);
dict->Set(kKeyPermitRecord, permit_record.release()); dict->Set(kKeyPermitRecord, permit_record.release());
dict->SetString(kKeyPermitId, data.public_key);
dict->SetString(kKeyPermitData, data.public_key);
dict->SetString(kKeyPermitType, kPermitTypeLicence);
dict->SetString(kKeyPermitPermitId,
base::StringPrintf(kPermitPermitIdFormat,
user_id.c_str()));
} }
// static // static
...@@ -125,12 +136,14 @@ bool EasyUnlockKeyManager::RemoteDeviceDictionaryToDeviceData( ...@@ -125,12 +136,14 @@ bool EasyUnlockKeyManager::RemoteDeviceDictionaryToDeviceData(
// static // static
void EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList( void EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList(
const std::string& user_id,
const EasyUnlockDeviceKeyDataList& data_list, const EasyUnlockDeviceKeyDataList& data_list,
base::ListValue* device_list) { base::ListValue* device_list) {
device_list->Clear(); device_list->Clear();
for (size_t i = 0; i < data_list.size(); ++i) { for (size_t i = 0; i < data_list.size(); ++i) {
scoped_ptr<base::DictionaryValue> device_dict(new base::DictionaryValue); scoped_ptr<base::DictionaryValue> device_dict(new base::DictionaryValue);
DeviceDataToRemoteDeviceDictionary(data_list[i], device_dict.get()); DeviceDataToRemoteDeviceDictionary(
user_id, data_list[i], device_dict.get());
device_list->Append(device_dict.release()); device_list->Append(device_dict.release());
} }
} }
......
...@@ -61,6 +61,7 @@ class EasyUnlockKeyManager { ...@@ -61,6 +61,7 @@ class EasyUnlockKeyManager {
// conversion fails (missing required propery). Note that // conversion fails (missing required propery). Note that
// EasyUnlockDeviceKeyData contains a sub set of the remote device dictionary. // EasyUnlockDeviceKeyData contains a sub set of the remote device dictionary.
static void DeviceDataToRemoteDeviceDictionary( static void DeviceDataToRemoteDeviceDictionary(
const std::string& user_id,
const EasyUnlockDeviceKeyData& data, const EasyUnlockDeviceKeyData& data,
base::DictionaryValue* dict); base::DictionaryValue* dict);
static bool RemoteDeviceDictionaryToDeviceData( static bool RemoteDeviceDictionaryToDeviceData(
...@@ -70,6 +71,7 @@ class EasyUnlockKeyManager { ...@@ -70,6 +71,7 @@ class EasyUnlockKeyManager {
// Helpers to convert between EasyUnlockDeviceKeyDataList and remote devices // Helpers to convert between EasyUnlockDeviceKeyDataList and remote devices
// ListValue. // ListValue.
static void DeviceDataListToRemoteDeviceList( static void DeviceDataListToRemoteDeviceList(
const std::string& user_id,
const EasyUnlockDeviceKeyDataList& data_list, const EasyUnlockDeviceKeyDataList& data_list,
base::ListValue* device_list); base::ListValue* device_list);
static bool RemoteDeviceListToDeviceDataList( static bool RemoteDeviceListToDeviceDataList(
......
...@@ -127,7 +127,7 @@ void EasyUnlockServiceSignin::OnCryptohomeKeysFetched( ...@@ -127,7 +127,7 @@ void EasyUnlockServiceSignin::OnCryptohomeKeysFetched(
remote_devices_ = devices; remote_devices_ = devices;
remote_devices_value_.reset(new base::ListValue); remote_devices_value_.reset(new base::ListValue);
chromeos::EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList( chromeos::EasyUnlockKeyManager::DeviceDataListToRemoteDeviceList(
remote_devices_, remote_devices_value_.get()); user_id_, remote_devices_, remote_devices_value_.get());
UpdateAppState(); UpdateAppState();
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment