Index: chromeos/dbus/fake_cryptohome_client.cc |
diff --git a/chromeos/dbus/fake_cryptohome_client.cc b/chromeos/dbus/fake_cryptohome_client.cc |
index 2f80bdd073771098bcf0a3bb907e8afec21049e9..1ec74fdbe3fafc50a73d9552e6ff2d17c978ea9f 100644 |
--- a/chromeos/dbus/fake_cryptohome_client.cc |
+++ b/chromeos/dbus/fake_cryptohome_client.cc |
@@ -15,7 +15,6 @@ |
#include "base/threading/thread_restrictions.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "chromeos/chromeos_paths.h" |
-#include "chromeos/attestation/attestation.pb.h" |
#include "chromeos/dbus/cryptohome/key.pb.h" |
#include "chromeos/dbus/cryptohome/rpc.pb.h" |
#include "third_party/cros_system_api/dbus/service_constants.h" |
@@ -24,13 +23,6 @@ |
#include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h" |
namespace chromeos { |
- |
-namespace { |
-// Signature nonces are twenty bytes. This matches the attestation code. |
-constexpr char kTwentyBytesNonce[] = "+addtwentybytesnonce"; |
-// A symbolic signature. |
-constexpr char kSignature[] = "signed"; |
-} // namespace |
FakeCryptohomeClient::FakeCryptohomeClient() |
: service_is_available_(true), |
@@ -88,7 +80,7 @@ |
const cryptohome::Identification& cryptohome_id, |
const std::string& key, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncMigrateKey( |
@@ -96,13 +88,13 @@ |
const std::string& from_key, |
const std::string& to_key, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncRemove( |
const cryptohome::Identification& cryptohome_id, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::RenameCryptohome( |
@@ -151,7 +143,7 @@ |
const std::string& key, |
int flags, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncAddKey( |
@@ -159,19 +151,19 @@ |
const std::string& key, |
const std::string& new_key, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncMountGuest( |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncMountPublic( |
const cryptohome::Identification& public_mount_id, |
int flags, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::TpmIsReady( |
@@ -374,14 +366,14 @@ |
void FakeCryptohomeClient::AsyncTpmAttestationCreateEnrollRequest( |
chromeos::attestation::PrivacyCAType pca_type, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodData(callback, std::string()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::AsyncTpmAttestationEnroll( |
chromeos::attestation::PrivacyCAType pca_type, |
const std::string& pca_response, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodResult(callback); |
+ ReturnAsyncMethodResult(callback, false); |
} |
void FakeCryptohomeClient::AsyncTpmAttestationCreateCertRequest( |
@@ -390,7 +382,7 @@ |
const cryptohome::Identification& cryptohome_id, |
const std::string& request_origin, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodData(callback, std::string()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::AsyncTpmAttestationFinishCertRequest( |
@@ -399,7 +391,7 @@ |
const cryptohome::Identification& cryptohome_id, |
const std::string& key_name, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodData(callback, std::string()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::TpmAttestationDoesKeyExist( |
@@ -436,7 +428,7 @@ |
const cryptohome::Identification& cryptohome_id, |
const std::string& key_name, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodData(callback, std::string()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::TpmAttestationSignEnterpriseChallenge( |
@@ -448,7 +440,7 @@ |
attestation::AttestationChallengeOptions options, |
const std::string& challenge, |
const AsyncMethodCallback& callback) { |
- ReturnAsyncMethodData(callback, std::string()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::TpmAttestationSignSimpleChallenge( |
@@ -457,10 +449,7 @@ |
const std::string& key_name, |
const std::string& challenge, |
const AsyncMethodCallback& callback) { |
- chromeos::attestation::SignedData signed_data; |
- signed_data.set_data(challenge + kTwentyBytesNonce); |
- signed_data.set_signature(kSignature); |
- ReturnAsyncMethodData(callback, signed_data.SerializeAsString()); |
+ ReturnAsyncMethodResult(callback, true); |
} |
void FakeCryptohomeClient::TpmAttestationGetKeyPayload( |
@@ -599,43 +588,28 @@ |
} |
void FakeCryptohomeClient::ReturnAsyncMethodResult( |
- const AsyncMethodCallback& callback) { |
+ const AsyncMethodCallback& callback, |
+ bool returns_data) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
base::Bind(&FakeCryptohomeClient::ReturnAsyncMethodResultInternal, |
- weak_ptr_factory_.GetWeakPtr(), callback)); |
-} |
- |
-void FakeCryptohomeClient::ReturnAsyncMethodData( |
+ weak_ptr_factory_.GetWeakPtr(), callback, returns_data)); |
+} |
+ |
+void FakeCryptohomeClient::ReturnAsyncMethodResultInternal( |
const AsyncMethodCallback& callback, |
- const std::string& data) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(&FakeCryptohomeClient::ReturnAsyncMethodDataInternal, |
- weak_ptr_factory_.GetWeakPtr(), callback, data)); |
-} |
- |
-void FakeCryptohomeClient::ReturnAsyncMethodResultInternal( |
- const AsyncMethodCallback& callback) { |
+ bool returns_data) { |
callback.Run(async_call_id_); |
- if (!async_call_status_handler_.is_null()) { |
+ if (!returns_data && !async_call_status_handler_.is_null()) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, base::Bind(async_call_status_handler_, async_call_id_, true, |
cryptohome::MOUNT_ERROR_NONE)); |
+ } else if (returns_data && !async_call_status_data_handler_.is_null()) { |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, base::Bind(async_call_status_data_handler_, async_call_id_, |
+ true, std::string())); |
} |
++async_call_id_; |
} |
-void FakeCryptohomeClient::ReturnAsyncMethodDataInternal( |
- const AsyncMethodCallback& callback, |
- const std::string& data) { |
- callback.Run(async_call_id_); |
- if (!async_call_status_data_handler_.is_null()) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(async_call_status_data_handler_, async_call_id_, |
- true, data)); |
- } |
- ++async_call_id_; |
-} |
- |
} // namespace chromeos |