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(), |