| Index: chromeos/dbus/cryptohome_client.cc
|
| diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc
|
| index 78660c7902d287b1afaa408a3bf6442b1fe6b94e..c3af9d8609314eacef6208c57eca0441d1b28d24 100644
|
| --- a/chromeos/dbus/cryptohome_client.cc
|
| +++ b/chromeos/dbus/cryptohome_client.cc
|
| @@ -26,6 +26,11 @@ 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. TPM operations can take up to 80 seconds, so limit
|
| +// is 2 minutes.
|
| +const int kTpmDBusTimeoutMs = 2 * 60 * 1000;
|
| +
|
| // The CryptohomeClient implementation.
|
| class CryptohomeClientImpl : public CryptohomeClient {
|
| public:
|
| @@ -74,7 +79,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 +96,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 +109,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 +119,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 +133,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 +173,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 +190,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 +200,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 +216,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 +250,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 +327,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 +344,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 +446,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 +465,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 +486,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 +510,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 +547,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 +567,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 +587,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 +619,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 +642,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 +662,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 +719,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 +739,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 +759,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 +780,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 +799,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 +815,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 +831,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 +847,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 +912,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 +941,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(),
|
|
|