Index: chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc |
diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc |
index 3b86f22906b6cf065d70d95817f9d646ab8f8acf..59c84d0a8c78353757b79fb5faf79473126101f0 100644 |
--- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc |
+++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.cc |
@@ -270,10 +270,16 @@ void SupervisedUserCreationControllerNew::OnMountSuccess( |
creation_context_->salted_password, |
kCryptohomeSupervisedUserKeyLabel, |
kCryptohomeSupervisedUserKeyPrivileges); |
- base::Base64Decode(creation_context_->encryption_key, |
- &password_key.encryption_key); |
- base::Base64Decode(creation_context_->signature_key, |
- &password_key.signature_key); |
+ std::string encryption_key; |
+ base::Base64Decode(creation_context_->encryption_key, &encryption_key); |
+ password_key.AddSymmetricKey(true /* encrypt */, |
dzhioev (left Google)
2014/09/03 17:42:46
Nit: Is situation when (encrypt == sign) possible?
bartfab (slow)
2014/09/04 10:14:18
Depending on the HMAC used, it may or may not be s
|
+ false /* sign */, |
+ encryption_key); |
+ std::string signature_key; |
+ base::Base64Decode(creation_context_->signature_key, &signature_key); |
+ password_key.AddSymmetricKey(false /* encrypt */, |
+ true /* sign */, |
+ signature_key); |
Key key(Key::KEY_TYPE_SALTED_PBKDF2_AES256_1234, |
std::string(), // The salt is stored elsewhere. |