| Index: chromeos/dbus/cryptohome_client.cc
|
| diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc
|
| index 86fe5b7e65ab7ff67ad86c151812aee85abde460..e53a81d5055221e437dc6b9f75a0c1381694c426 100644
|
| --- a/chromeos/dbus/cryptohome_client.cc
|
| +++ b/chromeos/dbus/cryptohome_client.cc
|
| @@ -883,48 +883,36 @@ class CryptohomeClientImpl : public CryptohomeClient {
|
|
|
| void GetBootAttribute(const cryptohome::GetBootAttributeRequest& request,
|
| const ProtobufMethodCallback& callback) override {
|
| - const char* method_name = cryptohome::kCryptohomeGetBootAttribute;
|
| - dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name);
|
| -
|
| - dbus::MessageWriter writer(&method_call);
|
| - writer.AppendProtoAsArrayOfBytes(request);
|
| -
|
| - proxy_->CallMethod(&method_call,
|
| - kTpmDBusTimeoutMs ,
|
| - base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - callback));
|
| + CallCryptohomeMethod(cryptohome::kCryptohomeGetBootAttribute, request,
|
| + callback);
|
| }
|
|
|
| void SetBootAttribute(const cryptohome::SetBootAttributeRequest& request,
|
| const ProtobufMethodCallback& callback) override {
|
| - const char* method_name = cryptohome::kCryptohomeSetBootAttribute;
|
| - dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name);
|
| -
|
| - dbus::MessageWriter writer(&method_call);
|
| - writer.AppendProtoAsArrayOfBytes(request);
|
| -
|
| - proxy_->CallMethod(&method_call,
|
| - kTpmDBusTimeoutMs ,
|
| - base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - callback));
|
| + CallCryptohomeMethod(cryptohome::kCryptohomeSetBootAttribute, request,
|
| + callback);
|
| }
|
|
|
| void FlushAndSignBootAttributes(
|
| const cryptohome::FlushAndSignBootAttributesRequest& request,
|
| const ProtobufMethodCallback& callback) override {
|
| - const char* method_name = cryptohome::kCryptohomeFlushAndSignBootAttributes;
|
| - dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name);
|
| + CallCryptohomeMethod(cryptohome::kCryptohomeFlushAndSignBootAttributes,
|
| + request, callback);
|
| + }
|
|
|
| - dbus::MessageWriter writer(&method_call);
|
| - writer.AppendProtoAsArrayOfBytes(request);
|
| + void RemoveFirmwareManagementParametersFromTpm(
|
| + const cryptohome::RemoveFirmwareManagementParametersRequest& request,
|
| + const ProtobufMethodCallback& callback) override {
|
| + CallCryptohomeMethod(
|
| + cryptohome::kCryptohomeRemoveFirmwareManagementParameters, request,
|
| + callback);
|
| + }
|
|
|
| - proxy_->CallMethod(&method_call,
|
| - kTpmDBusTimeoutMs ,
|
| - base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - callback));
|
| + void SetFirmwareManagementParametersInTpm(
|
| + const cryptohome::SetFirmwareManagementParametersRequest& request,
|
| + const ProtobufMethodCallback& callback) override {
|
| + CallCryptohomeMethod(cryptohome::kCryptohomeSetFirmwareManagementParameters,
|
| + request, callback);
|
| }
|
|
|
| protected:
|
| @@ -1195,6 +1183,23 @@ class CryptohomeClientImpl : public CryptohomeClient {
|
| signal << " failed.";
|
| }
|
|
|
| + // Makes an asynchronous D-Bus call, using cryptohome interface. |method_name|
|
| + // is the name of the method to be called. |request| is the specific request
|
| + // for the method, including the data required to be sent. |callback| is
|
| + // invoked when the response is received.
|
| + void CallCryptohomeMethod(const std::string& method_name,
|
| + const google::protobuf::MessageLite& request,
|
| + const ProtobufMethodCallback& callback) {
|
| + dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name);
|
| +
|
| + dbus::MessageWriter writer(&method_call);
|
| + writer.AppendProtoAsArrayOfBytes(request);
|
| +
|
| + proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs,
|
| + base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod,
|
| + weak_ptr_factory_.GetWeakPtr(), callback));
|
| + }
|
| +
|
| dbus::ObjectProxy* proxy_;
|
| std::unique_ptr<BlockingMethodCaller> blocking_method_caller_;
|
| AsyncCallStatusHandler async_call_status_handler_;
|
|
|