Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: chromeos/cryptohome/homedir_methods.cc

Issue 554043003: cros: Create cryptohome keys for Easy sign-in. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for #6 Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/cryptohome/homedir_methods.cc
diff --git a/chromeos/cryptohome/homedir_methods.cc b/chromeos/cryptohome/homedir_methods.cc
index 73a741b51c111289c845252eba7f96420a89beff..3f80453a40206fd190210ef25de1cc42cf67f654 100644
--- a/chromeos/cryptohome/homedir_methods.cc
+++ b/chromeos/cryptohome/homedir_methods.cc
@@ -44,20 +44,36 @@ void FillKeyProtobuf(const KeyDefinition& key_def, Key* key) {
PRIV_AUTHORIZED_UPDATE);
}
- if (key_def.encryption_key.empty() && key_def.signature_key.empty())
- return;
-
- KeyAuthorizationData* auth_data = data->add_authorization_data();
- auth_data->set_type(KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_HMACSHA256);
- if (!key_def.encryption_key.empty()) {
- KeyAuthorizationSecret* secret = auth_data->add_secrets();
- secret->mutable_usage()->set_encrypt(true);
- secret->set_symmetric_key(key_def.encryption_key);
+ const bool has_auth_data =
+ !key_def.encryption_key.empty() || !key_def.signature_key.empty();
+ if (has_auth_data) {
+ KeyAuthorizationData* auth_data = data->add_authorization_data();
+ auth_data->set_type(
+ KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_HMACSHA256);
+ if (!key_def.encryption_key.empty()) {
+ KeyAuthorizationSecret* secret = auth_data->add_secrets();
+ secret->mutable_usage()->set_encrypt(true);
+ secret->set_symmetric_key(key_def.encryption_key);
+ }
+ if (!key_def.signature_key.empty()) {
+ KeyAuthorizationSecret* secret = auth_data->add_secrets();
+ secret->mutable_usage()->set_sign(true);
+ secret->set_symmetric_key(key_def.signature_key);
+ }
}
Darren Krahn 2014/09/12 16:35:17 Also collides with https://codereview.chromium.org
xiyuan 2014/09/12 19:10:12 Rebased.
- if (!key_def.signature_key.empty()) {
- KeyAuthorizationSecret* secret = auth_data->add_secrets();
- secret->mutable_usage()->set_sign(true);
- secret->set_symmetric_key(key_def.signature_key);
+
+ if (!key_def.provider_data.empty()) {
+ KeyProviderData* provider_data = data->mutable_provider_data();
+ for (size_t i = 0; i < key_def.provider_data.size(); ++i) {
+ const ProviderDataEntry& entry_data = key_def.provider_data[i];
+
+ KeyProviderData_Entry* entry = provider_data->add_entry();
+ entry->set_name(entry_data.name);
+ if (entry_data.has_number)
+ entry->set_number(entry_data.number);
+ if (entry_data.has_bytes)
+ entry->set_bytes(entry_data.bytes);
+ }
}
}
@@ -329,22 +345,20 @@ class HomedirMethodsImpl : public HomedirMethods {
++provider_data_it) {
// Extract |name|.
key_data->provider_data.push_back(
- new RetrievedKeyData::ProviderData(provider_data_it->name()));
- RetrievedKeyData::ProviderData* provider_data =
- key_data->provider_data.back();
+ ProviderDataEntry(provider_data_it->name()));
+ ProviderDataEntry* provider_data = &key_data->provider_data.back();
int data_items = 0;
// Extract |number|.
if (provider_data_it->has_number()) {
- provider_data->number.reset(new int64(provider_data_it->number()));
+ provider_data->SetNumber(provider_data_it->number());
++data_items;
}
// Extract |bytes|.
if (provider_data_it->has_bytes()) {
- provider_data->bytes.reset(
- new std::string(provider_data_it->bytes()));
+ provider_data->SetBytes(provider_data_it->bytes());
++data_items;
}

Powered by Google App Engine
This is Rietveld 408576698