| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/dbus/fake_cryptohome_client.h" | 5 #include "chromeos/dbus/fake_cryptohome_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "crypto/nss_util.h" | 10 #include "crypto/nss_util.h" |
| 11 #include "third_party/cros_system_api/dbus/service_constants.h" | 11 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 12 | 12 |
| 13 namespace chromeos { | 13 namespace chromeos { |
| 14 | 14 |
| 15 FakeCryptohomeClient::FakeCryptohomeClient() | 15 FakeCryptohomeClient::FakeCryptohomeClient() |
| 16 : async_call_id_(1), | 16 : service_is_available_(true), |
| 17 async_call_id_(1), |
| 17 tpm_is_ready_counter_(0), | 18 tpm_is_ready_counter_(0), |
| 18 unmount_result_(true), | 19 unmount_result_(true), |
| 19 locked_(false), | 20 locked_(false), |
| 20 weak_ptr_factory_(this) {} | 21 weak_ptr_factory_(this) {} |
| 21 | 22 |
| 22 FakeCryptohomeClient::~FakeCryptohomeClient() {} | 23 FakeCryptohomeClient::~FakeCryptohomeClient() {} |
| 23 | 24 |
| 24 void FakeCryptohomeClient::Init(dbus::Bus* bus) { | 25 void FakeCryptohomeClient::Init(dbus::Bus* bus) { |
| 25 } | 26 } |
| 26 | 27 |
| 27 void FakeCryptohomeClient::SetAsyncCallStatusHandlers( | 28 void FakeCryptohomeClient::SetAsyncCallStatusHandlers( |
| 28 const AsyncCallStatusHandler& handler, | 29 const AsyncCallStatusHandler& handler, |
| 29 const AsyncCallStatusWithDataHandler& data_handler) { | 30 const AsyncCallStatusWithDataHandler& data_handler) { |
| 30 async_call_status_handler_ = handler; | 31 async_call_status_handler_ = handler; |
| 31 async_call_status_data_handler_ = data_handler; | 32 async_call_status_data_handler_ = data_handler; |
| 32 } | 33 } |
| 33 | 34 |
| 34 void FakeCryptohomeClient::ResetAsyncCallStatusHandlers() { | 35 void FakeCryptohomeClient::ResetAsyncCallStatusHandlers() { |
| 35 async_call_status_handler_.Reset(); | 36 async_call_status_handler_.Reset(); |
| 36 async_call_status_data_handler_.Reset(); | 37 async_call_status_data_handler_.Reset(); |
| 37 } | 38 } |
| 38 | 39 |
| 40 void FakeCryptohomeClient::WaitForServiceToBeAvailable( |
| 41 const WaitForServiceToBeAvailableCallback& callback) { |
| 42 if (service_is_available_) { |
| 43 base::MessageLoop::current()->PostTask(FROM_HERE, |
| 44 base::Bind(callback, true)); |
| 45 } else { |
| 46 pending_wait_for_service_to_be_available_callbacks_.push_back(callback); |
| 47 } |
| 48 } |
| 49 |
| 39 void FakeCryptohomeClient::IsMounted( | 50 void FakeCryptohomeClient::IsMounted( |
| 40 const BoolDBusMethodCallback& callback) { | 51 const BoolDBusMethodCallback& callback) { |
| 41 base::MessageLoop::current()->PostTask( | 52 base::MessageLoop::current()->PostTask( |
| 42 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); | 53 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); |
| 43 } | 54 } |
| 44 | 55 |
| 45 bool FakeCryptohomeClient::Unmount(bool* success) { | 56 bool FakeCryptohomeClient::Unmount(bool* success) { |
| 46 *success = unmount_result_; | 57 *success = unmount_result_; |
| 47 return true; | 58 return true; |
| 48 } | 59 } |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 void FakeCryptohomeClient::TpmAttestationSetKeyPayload( | 372 void FakeCryptohomeClient::TpmAttestationSetKeyPayload( |
| 362 attestation::AttestationKeyType key_type, | 373 attestation::AttestationKeyType key_type, |
| 363 const std::string& user_id, | 374 const std::string& user_id, |
| 364 const std::string& key_name, | 375 const std::string& key_name, |
| 365 const std::string& payload, | 376 const std::string& payload, |
| 366 const BoolDBusMethodCallback& callback) { | 377 const BoolDBusMethodCallback& callback) { |
| 367 base::MessageLoop::current()->PostTask( | 378 base::MessageLoop::current()->PostTask( |
| 368 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, false)); | 379 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, false)); |
| 369 } | 380 } |
| 370 | 381 |
| 382 void FakeCryptohomeClient::SetServiceIsAvailable(bool is_available) { |
| 383 service_is_available_ = is_available; |
| 384 if (is_available) { |
| 385 std::vector<WaitForServiceToBeAvailableCallback> callbacks; |
| 386 callbacks.swap(pending_wait_for_service_to_be_available_callbacks_); |
| 387 for (size_t i = 0; i < callbacks.size(); ++i) |
| 388 callbacks[i].Run(is_available); |
| 389 } |
| 390 } |
| 391 |
| 371 // static | 392 // static |
| 372 std::vector<uint8> FakeCryptohomeClient::GetStubSystemSalt() { | 393 std::vector<uint8> FakeCryptohomeClient::GetStubSystemSalt() { |
| 373 const char kStubSystemSalt[] = "stub_system_salt"; | 394 const char kStubSystemSalt[] = "stub_system_salt"; |
| 374 return std::vector<uint8>(kStubSystemSalt, | 395 return std::vector<uint8>(kStubSystemSalt, |
| 375 kStubSystemSalt + arraysize(kStubSystemSalt) - 1); | 396 kStubSystemSalt + arraysize(kStubSystemSalt) - 1); |
| 376 } | 397 } |
| 377 | 398 |
| 378 void FakeCryptohomeClient::ReturnAsyncMethodResult( | 399 void FakeCryptohomeClient::ReturnAsyncMethodResult( |
| 379 const AsyncMethodCallback& callback, | 400 const AsyncMethodCallback& callback, |
| 380 bool returns_data) { | 401 bool returns_data) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 402 FROM_HERE, | 423 FROM_HERE, |
| 403 base::Bind(async_call_status_data_handler_, | 424 base::Bind(async_call_status_data_handler_, |
| 404 async_call_id_, | 425 async_call_id_, |
| 405 true, | 426 true, |
| 406 std::string())); | 427 std::string())); |
| 407 } | 428 } |
| 408 ++async_call_id_; | 429 ++async_call_id_; |
| 409 } | 430 } |
| 410 | 431 |
| 411 } // namespace chromeos | 432 } // namespace chromeos |
| OLD | NEW |