Index: chrome/browser/chromeos/cros/login_library.cc |
diff --git a/chrome/browser/chromeos/cros/login_library.cc b/chrome/browser/chromeos/cros/login_library.cc |
index 73ae346fcba1dc95879a4cbbeb2643879d88f344..5af80e9025119196ddcc930a5da37a3af5d2e3b9 100644 |
--- a/chrome/browser/chromeos/cros/login_library.cc |
+++ b/chrome/browser/chromeos/cros/login_library.cc |
@@ -31,13 +31,27 @@ class LoginLibraryImpl : public LoginLibrary { |
bool CheckWhitelist(const std::string& email, |
std::vector<uint8>* OUT_signature) { |
- return chromeos::CheckWhitelist(email.c_str(), OUT_signature); |
+ CryptoBlob* sig = NULL; |
+ if (chromeos::CheckWhitelistSafe(email.c_str(), &sig)) { |
+ OUT_signature->assign(sig->data, sig->data + sig->length); |
+ chromeos::FreeCryptoBlob(sig); |
+ return true; |
+ } |
+ return false; |
} |
bool RetrieveProperty(const std::string& name, |
std::string* OUT_value, |
std::vector<uint8>* OUT_signature) { |
- return chromeos::RetrieveProperty(name.c_str(), OUT_value, OUT_signature); |
+ Property* prop = NULL; |
+ if (chromeos::RetrievePropertySafe(name.c_str(), &prop)) { |
+ OUT_value->assign(prop->value); |
+ CryptoBlob* sig = prop->signature; |
+ OUT_signature->assign(sig->data, sig->data + sig->length); |
+ chromeos::FreeProperty(prop); |
+ return true; |
+ } |
+ return false; |
} |
bool SetOwnerKeyAsync(const std::vector<uint8>& public_key_der, |
@@ -46,7 +60,11 @@ class LoginLibraryImpl : public LoginLibrary { |
if (set_owner_key_callback_) |
return false; |
set_owner_key_callback_ = callback; |
- return chromeos::SetOwnerKey(public_key_der); |
+ CryptoBlob* key = chromeos::CreateCryptoBlob(&public_key_der[0], |
+ public_key_der.size()); |
+ bool rv = chromeos::SetOwnerKeySafe(key); |
+ chromeos::FreeCryptoBlob(key); |
+ return rv; |
} |
bool StorePropertyAsync(const std::string& name, |
@@ -57,7 +75,13 @@ class LoginLibraryImpl : public LoginLibrary { |
if (property_op_callback_) |
return false; |
property_op_callback_ = callback; |
- return chromeos::StoreProperty(name.c_str(), value.c_str(), signature); |
+ Property* prop = chromeos::CreateProperty(name.c_str(), |
+ value.c_str(), |
+ &signature[0], |
+ signature.size()); |
+ bool rv = chromeos::StorePropertySafe(prop); |
+ chromeos::FreeProperty(prop); |
+ return rv; |
} |
bool UnwhitelistAsync(const std::string& email, |
@@ -67,7 +91,11 @@ class LoginLibraryImpl : public LoginLibrary { |
if (whitelist_op_callback_) |
return false; |
whitelist_op_callback_ = callback; |
- return chromeos::Unwhitelist(email.c_str(), signature); |
+ CryptoBlob* sig = chromeos::CreateCryptoBlob(&signature[0], |
+ signature.size()); |
+ bool rv = chromeos::UnwhitelistSafe(email.c_str(), sig); |
+ chromeos::FreeCryptoBlob(sig); |
+ return rv; |
} |
bool WhitelistAsync(const std::string& email, |
@@ -77,11 +105,22 @@ class LoginLibraryImpl : public LoginLibrary { |
if (whitelist_op_callback_) |
return false; |
whitelist_op_callback_ = callback; |
- return chromeos::Whitelist(email.c_str(), signature); |
+ CryptoBlob* sig = chromeos::CreateCryptoBlob(&signature[0], |
+ signature.size()); |
+ bool rv = chromeos::WhitelistSafe(email.c_str(), sig); |
+ chromeos::FreeCryptoBlob(sig); |
+ return rv; |
} |
bool EnumerateWhitelisted(std::vector<std::string>* whitelisted) { |
- return chromeos::EnumerateWhitelisted(whitelisted); |
+ UserList* list = NULL; |
+ if (chromeos::EnumerateWhitelistedSafe(&list)) { |
+ for (int i = 0; i < list->num_users; i++) |
+ whitelisted->push_back(std::string(list->users[i])); |
+ chromeos::FreeUserList(list); |
+ return true; |
+ } |
+ return false; |
} |
bool StartSession(const std::string& user_email, |