Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Side by Side Diff: chromeos/dbus/cryptohome_client.cc

Issue 10703162: chromeos: Remove CryptohomeLibrary::TpmGetPassword and TpmIsReady (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add cryptohome_web_ui_handler.cc/h Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/cryptohome_client.h" 5 #include "chromeos/dbus/cryptohome_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chromeos/dbus/blocking_method_caller.h" 9 #include "chromeos/dbus/blocking_method_caller.h"
10 #include "dbus/bus.h" 10 #include "dbus/bus.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 // CryptohomeClient override. 144 // CryptohomeClient override.
145 virtual void AsyncMountGuest(const AsyncMethodCallback& callback) OVERRIDE { 145 virtual void AsyncMountGuest(const AsyncMethodCallback& callback) OVERRIDE {
146 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeAsyncMountGuest); 146 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeAsyncMountGuest);
147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
148 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 148 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
149 weak_ptr_factory_.GetWeakPtr(), 149 weak_ptr_factory_.GetWeakPtr(),
150 callback)); 150 callback));
151 } 151 }
152 152
153 // CryptohomeClient override. 153 // CryptohomeClient override.
154 virtual bool TpmIsReady(bool* ready) OVERRIDE { 154 virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE {
155 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady); 155 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady);
156 return CallBoolMethodAndBlock(&method_call, ready); 156 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
157 base::Bind(
158 &CryptohomeClientImpl::OnBoolMethod,
159 weak_ptr_factory_.GetWeakPtr(),
160 callback));
157 } 161 }
158 162
159 // CryptohomeClient override. 163 // CryptohomeClient override.
160 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE { 164 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE {
161 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled); 165 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled);
162 proxy_->CallMethod( 166 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
163 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 167 base::Bind(
164 base::Bind( 168 &CryptohomeClientImpl::OnBoolMethod,
165 &CryptohomeClientImpl::OnBoolMethod, 169 weak_ptr_factory_.GetWeakPtr(),
166 weak_ptr_factory_.GetWeakPtr(), 170 callback));
167 callback));
168 } 171 }
169 172
170 // CryptohomeClient override. 173 // CryptohomeClient override.
171 // TODO(hashimoto): Remove this method. crosbug.com/28500 174 // TODO(hashimoto): Remove this method. crosbug.com/28500
172 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE { 175 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE {
173 // We don't use INITIALIZE_METHOD_CALL here because the C++ method name is 176 // We don't use INITIALIZE_METHOD_CALL here because the C++ method name is
174 // different from the D-Bus method name (TpmIsEnabled). 177 // different from the D-Bus method name (TpmIsEnabled).
175 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, 178 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface,
176 cryptohome::kCryptohomeTpmIsEnabled); 179 cryptohome::kCryptohomeTpmIsEnabled);
177 return CallBoolMethodAndBlock(&method_call, enabled); 180 return CallBoolMethodAndBlock(&method_call, enabled);
178 } 181 }
179 182
180 // CryptohomeClient override. 183 // CryptohomeClient override.
181 virtual bool TpmGetPassword(std::string* password) OVERRIDE { 184 virtual void TpmGetPassword(const StringMethodCallback& callback) OVERRIDE {
182 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmGetPassword); 185 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmGetPassword);
183 scoped_ptr<dbus::Response> response( 186 proxy_->CallMethod(
184 blocking_method_caller_.CallMethodAndBlock(&method_call)); 187 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
185 if (!response.get()) 188 base::Bind(&CryptohomeClientImpl::OnStringMethod,
186 return false; 189 weak_ptr_factory_.GetWeakPtr(),
187 dbus::MessageReader reader(response.get()); 190 callback));
188 return reader.PopString(password);
189 } 191 }
190 192
191 // CryptohomeClient override. 193 // CryptohomeClient override.
192 virtual bool TpmIsOwned(bool* owned) OVERRIDE { 194 virtual bool TpmIsOwned(bool* owned) OVERRIDE {
193 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned); 195 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned);
194 return CallBoolMethodAndBlock(&method_call, owned); 196 return CallBoolMethodAndBlock(&method_call, owned);
195 } 197 }
196 198
197 // CryptohomeClient override. 199 // CryptohomeClient override.
198 virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE { 200 virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 } 344 }
343 dbus::MessageReader reader(response); 345 dbus::MessageReader reader(response);
344 bool result = false; 346 bool result = false;
345 if (!reader.PopBool(&result)) { 347 if (!reader.PopBool(&result)) {
346 callback.Run(DBUS_METHOD_CALL_FAILURE, false); 348 callback.Run(DBUS_METHOD_CALL_FAILURE, false);
347 return; 349 return;
348 } 350 }
349 callback.Run(DBUS_METHOD_CALL_SUCCESS, result); 351 callback.Run(DBUS_METHOD_CALL_SUCCESS, result);
350 } 352 }
351 353
354 // Handles responses for methods with a string value result.
355 void OnStringMethod(const StringMethodCallback& callback,
356 dbus::Response* response) {
357 if (!response) {
358 callback.Run(DBUS_METHOD_CALL_FAILURE, std::string());
359 return;
360 }
361 dbus::MessageReader reader(response);
362 std::string result;
363 if (!reader.PopString(&result)) {
364 callback.Run(DBUS_METHOD_CALL_FAILURE, std::string());
365 return;
366 }
367 callback.Run(DBUS_METHOD_CALL_SUCCESS, result);
368 }
369
352 // Handles responses for Pkcs11GetTpmtTokenInfo. 370 // Handles responses for Pkcs11GetTpmtTokenInfo.
353 void OnPkcs11GetTpmTokenInfo(const Pkcs11GetTpmTokenInfoCallback& callback, 371 void OnPkcs11GetTpmTokenInfo(const Pkcs11GetTpmTokenInfoCallback& callback,
354 dbus::Response* response) { 372 dbus::Response* response) {
355 if (!response) { 373 if (!response) {
356 callback.Run(DBUS_METHOD_CALL_FAILURE, std::string(), std::string()); 374 callback.Run(DBUS_METHOD_CALL_FAILURE, std::string(), std::string());
357 return; 375 return;
358 } 376 }
359 dbus::MessageReader reader(response); 377 dbus::MessageReader reader(response);
360 std::string label; 378 std::string label;
361 std::string user_pin; 379 std::string user_pin;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 const AsyncMethodCallback& callback) OVERRIDE { 487 const AsyncMethodCallback& callback) OVERRIDE {
470 ReturnAsyncMethodResult(callback); 488 ReturnAsyncMethodResult(callback);
471 } 489 }
472 490
473 // CryptohomeClient override. 491 // CryptohomeClient override.
474 virtual void AsyncMountGuest(const AsyncMethodCallback& callback) OVERRIDE { 492 virtual void AsyncMountGuest(const AsyncMethodCallback& callback) OVERRIDE {
475 ReturnAsyncMethodResult(callback); 493 ReturnAsyncMethodResult(callback);
476 } 494 }
477 495
478 // CryptohomeClient override. 496 // CryptohomeClient override.
479 virtual bool TpmIsReady(bool* ready) OVERRIDE { 497 virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE {
480 *ready = (tpm_is_ready_counter_++ > 20); 498 MessageLoop::current()->PostTask(
481 return true; 499 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
482 } 500 }
483 501
484 // CryptohomeClient override. 502 // CryptohomeClient override.
485 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE { 503 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE {
486 MessageLoop::current()->PostTask( 504 MessageLoop::current()->PostTask(
487 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); 505 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
488 } 506 }
489 507
490 // CryptohomeClient override. 508 // CryptohomeClient override.
491 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE { 509 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE {
492 *enabled = true; 510 *enabled = true;
493 return true; 511 return true;
494 } 512 }
495 513
496 // CryptohomeClient override. 514 // CryptohomeClient override.
497 virtual bool TpmGetPassword(std::string* password) OVERRIDE { 515 virtual void TpmGetPassword(const StringMethodCallback& callback) OVERRIDE {
498 const char kStubTpmPassword[] = "Stub-TPM-password"; 516 const char kStubTpmPassword[] = "Stub-TPM-password";
499 *password = kStubTpmPassword; 517 MessageLoop::current()->PostTask(
500 return true; 518 FROM_HERE,
519 base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, kStubTpmPassword));
501 } 520 }
502 521
503 // CryptohomeClient override. 522 // CryptohomeClient override.
504 virtual bool TpmIsOwned(bool* owned) OVERRIDE { 523 virtual bool TpmIsOwned(bool* owned) OVERRIDE {
505 *owned = true; 524 *owned = true;
506 return true; 525 return true;
507 } 526 }
508 527
509 // CryptohomeClient override. 528 // CryptohomeClient override.
510 virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE { 529 virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE {
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 // static 649 // static
631 CryptohomeClient* CryptohomeClient::Create(DBusClientImplementationType type, 650 CryptohomeClient* CryptohomeClient::Create(DBusClientImplementationType type,
632 dbus::Bus* bus) { 651 dbus::Bus* bus) {
633 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 652 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
634 return new CryptohomeClientImpl(bus); 653 return new CryptohomeClientImpl(bus);
635 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 654 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
636 return new CryptohomeClientStubImpl(); 655 return new CryptohomeClientStubImpl();
637 } 656 }
638 657
639 } // namespace chromeos 658 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698