Chromium Code Reviews| Index: chromeos/dbus/cryptohome_client.cc |
| diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc |
| index 78660c7902d287b1afaa408a3bf6442b1fe6b94e..ed9b75821bfb4fed7e1de79f66154bb7b64ce663 100644 |
| --- a/chromeos/dbus/cryptohome_client.cc |
| +++ b/chromeos/dbus/cryptohome_client.cc |
| @@ -26,6 +26,10 @@ namespace { |
| // stub_hash = "[user_id]-hash"; |
| static const char kUserIdStubHashSuffix[] = "-hash"; |
| +// Timeout for TPM operations. On slow machines it should be larger, than |
| +// default DBus timeout. |
| +static const int kTpmDBusTimeoutMs = 60 * 1000; |
|
Darren Krahn
2014/08/20 17:32:05
Where does 1 minute come from, is there data to su
Denis Kuznetsov (DE-MUC)
2014/08/20 18:49:45
https://code.google.com/p/chromium/issues/detail?i
|
| + |
| // The CryptohomeClient implementation. |
| class CryptohomeClientImpl : public CryptohomeClient { |
| public: |
| @@ -74,7 +78,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendString(username); |
| writer.AppendString(key); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -91,7 +95,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendString(username); |
| writer.AppendString(from_key); |
| writer.AppendString(to_key); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -104,7 +108,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| cryptohome::kCryptohomeAsyncRemove); |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendString(username); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -114,7 +118,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| virtual void GetSystemSalt(const GetSystemSaltCallback& callback) OVERRIDE { |
| dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| cryptohome::kCryptohomeGetSystemSalt); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnGetSystemSalt, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -128,7 +132,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| cryptohome::kCryptohomeGetSanitizedUsername); |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendString(username); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnStringMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -168,7 +172,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); |
| // deprecated_tracked_subdirectories |
| writer.AppendArrayOfStrings(std::vector<std::string>()); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -185,7 +189,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendString(username); |
| writer.AppendString(key); |
| writer.AppendString(new_key); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -195,7 +199,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| virtual void AsyncMountGuest(const AsyncMethodCallback& callback) OVERRIDE { |
| dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| cryptohome::kCryptohomeAsyncMountGuest); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -211,7 +215,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendString(public_mount_id); |
| writer.AppendBool(flags & cryptohome::CREATE_IF_MISSING); |
| writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -245,7 +249,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| cryptohome::kCryptohomeTpmGetPassword); |
| proxy_->CallMethod( |
| - &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + &method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnStringMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -322,7 +326,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| cryptohome::kCryptohomePkcs11GetTpmTokenInfo); |
| proxy_->CallMethod( |
| - &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + &method_call, kTpmDBusTimeoutMs , |
| base::Bind( |
| &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfo, |
| weak_ptr_factory_.GetWeakPtr(), |
| @@ -339,7 +343,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendString(user_email); |
| proxy_->CallMethod( |
| - &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + &method_call, kTpmDBusTimeoutMs , |
| base::Bind( |
| &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfoForUser, |
| weak_ptr_factory_.GetWeakPtr(), |
| @@ -441,7 +445,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| cryptohome::kCryptohomeAsyncTpmAttestationCreateEnrollRequest); |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendInt32(pca_type); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -460,7 +464,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendArrayOfBytes( |
| reinterpret_cast<const uint8*>(pca_response.data()), |
| pca_response.size()); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -481,7 +485,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendInt32(certificate_profile); |
| writer.AppendString(user_id); |
| writer.AppendString(request_origin); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -505,7 +509,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(is_user_specific); |
| writer.AppendString(user_id); |
| writer.AppendString(key_name); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -542,7 +546,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(is_user_specific); |
| writer.AppendString(user_id); |
| writer.AppendString(key_name); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -562,7 +566,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(is_user_specific); |
| writer.AppendString(user_id); |
| writer.AppendString(key_name); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -582,7 +586,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(is_user_specific); |
| writer.AppendString(user_id); |
| writer.AppendString(key_name); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -614,7 +618,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(include_signed_public_key); |
| writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(challenge.data()), |
| challenge.size()); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -637,7 +641,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendString(key_name); |
| writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(challenge.data()), |
| challenge.size()); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -657,7 +661,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendBool(is_user_specific); |
| writer.AppendString(user_id); |
| writer.AppendString(key_name); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -714,7 +718,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(auth); |
| writer.AppendProtoAsArrayOfBytes(request); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -734,7 +738,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(auth); |
| writer.AppendProtoAsArrayOfBytes(request); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -754,7 +758,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(auth); |
| writer.AppendProtoAsArrayOfBytes(request); |
| - proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs, |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -775,7 +779,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(request); |
| proxy_->CallMethod(&method_call, |
| - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -794,7 +798,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(request); |
| proxy_->CallMethod(&method_call, |
| - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -810,7 +814,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(request); |
| proxy_->CallMethod(&method_call, |
| - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -826,7 +830,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(request); |
| proxy_->CallMethod(&method_call, |
| - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -842,7 +846,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| writer.AppendProtoAsArrayOfBytes(request); |
| proxy_->CallMethod(&method_call, |
| - dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -907,7 +911,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| // Calls a method without result values. |
| void CallVoidMethod(dbus::MethodCall* method_call, |
| const VoidDBusMethodCallback& callback) { |
| - proxy_->CallMethod(method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(method_call, kTpmDBusTimeoutMs , |
| base::Bind(&CryptohomeClientImpl::OnVoidMethod, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback)); |
| @@ -936,7 +940,7 @@ class CryptohomeClientImpl : public CryptohomeClient { |
| // Calls a method with a bool value result. |
| void CallBoolMethod(dbus::MethodCall* method_call, |
| const BoolDBusMethodCallback& callback) { |
| - proxy_->CallMethod(method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + proxy_->CallMethod(method_call, kTpmDBusTimeoutMs , |
| base::Bind( |
| &CryptohomeClientImpl::OnBoolMethod, |
| weak_ptr_factory_.GetWeakPtr(), |