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

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

Issue 1540803002: Switch to standard integer types in chromeos/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more includes Created 5 years 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
« no previous file with comments | « chromeos/dbus/cryptohome_client.h ('k') | chromeos/dbus/dbus_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h>
8 #include <stdint.h>
9
7 #include "base/bind.h" 10 #include "base/bind.h"
8 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/macros.h"
9 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
10 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
11 #include "chromeos/cryptohome/async_method_caller.h" 15 #include "chromeos/cryptohome/async_method_caller.h"
12 #include "chromeos/dbus/blocking_method_caller.h" 16 #include "chromeos/dbus/blocking_method_caller.h"
13 #include "chromeos/dbus/cryptohome/key.pb.h" 17 #include "chromeos/dbus/cryptohome/key.pb.h"
14 #include "chromeos/dbus/cryptohome/rpc.pb.h" 18 #include "chromeos/dbus/cryptohome/rpc.pb.h"
15 #include "dbus/bus.h" 19 #include "dbus/bus.h"
16 #include "dbus/message.h" 20 #include "dbus/message.h"
17 #include "dbus/object_path.h" 21 #include "dbus/object_path.h"
18 #include "dbus/object_proxy.h" 22 #include "dbus/object_proxy.h"
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 proxy_->CallMethod( 346 proxy_->CallMethod(
343 &method_call, kTpmDBusTimeoutMs , 347 &method_call, kTpmDBusTimeoutMs ,
344 base::Bind( 348 base::Bind(
345 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfoForUser, 349 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfoForUser,
346 weak_ptr_factory_.GetWeakPtr(), 350 weak_ptr_factory_.GetWeakPtr(),
347 callback)); 351 callback));
348 } 352 }
349 353
350 // CryptohomeClient override. 354 // CryptohomeClient override.
351 bool InstallAttributesGet(const std::string& name, 355 bool InstallAttributesGet(const std::string& name,
352 std::vector<uint8>* value, 356 std::vector<uint8_t>* value,
353 bool* successful) override { 357 bool* successful) override {
354 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, 358 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface,
355 cryptohome::kCryptohomeInstallAttributesGet); 359 cryptohome::kCryptohomeInstallAttributesGet);
356 dbus::MessageWriter writer(&method_call); 360 dbus::MessageWriter writer(&method_call);
357 writer.AppendString(name); 361 writer.AppendString(name);
358 scoped_ptr<dbus::Response> response( 362 scoped_ptr<dbus::Response> response(
359 blocking_method_caller_->CallMethodAndBlock(&method_call)); 363 blocking_method_caller_->CallMethodAndBlock(&method_call));
360 if (!response.get()) 364 if (!response.get())
361 return false; 365 return false;
362 dbus::MessageReader reader(response.get()); 366 dbus::MessageReader reader(response.get());
363 const uint8* bytes = NULL; 367 const uint8_t* bytes = NULL;
364 size_t length = 0; 368 size_t length = 0;
365 if (!reader.PopArrayOfBytes(&bytes, &length) || 369 if (!reader.PopArrayOfBytes(&bytes, &length) ||
366 !reader.PopBool(successful)) 370 !reader.PopBool(successful))
367 return false; 371 return false;
368 value->assign(bytes, bytes + length); 372 value->assign(bytes, bytes + length);
369 return true; 373 return true;
370 } 374 }
371 375
372 // CryptohomeClient override. 376 // CryptohomeClient override.
373 bool InstallAttributesSet(const std::string& name, 377 bool InstallAttributesSet(const std::string& name,
374 const std::vector<uint8>& value, 378 const std::vector<uint8_t>& value,
375 bool* successful) override { 379 bool* successful) override {
376 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, 380 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface,
377 cryptohome::kCryptohomeInstallAttributesSet); 381 cryptohome::kCryptohomeInstallAttributesSet);
378 dbus::MessageWriter writer(&method_call); 382 dbus::MessageWriter writer(&method_call);
379 writer.AppendString(name); 383 writer.AppendString(name);
380 writer.AppendArrayOfBytes(value.data(), value.size()); 384 writer.AppendArrayOfBytes(value.data(), value.size());
381 return CallBoolMethodAndBlock(&method_call, successful); 385 return CallBoolMethodAndBlock(&method_call, successful);
382 } 386 }
383 387
384 // CryptohomeClient override. 388 // CryptohomeClient override.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 // CryptohomeClient override. 454 // CryptohomeClient override.
451 void AsyncTpmAttestationEnroll(attestation::PrivacyCAType pca_type, 455 void AsyncTpmAttestationEnroll(attestation::PrivacyCAType pca_type,
452 const std::string& pca_response, 456 const std::string& pca_response,
453 const AsyncMethodCallback& callback) override { 457 const AsyncMethodCallback& callback) override {
454 dbus::MethodCall method_call( 458 dbus::MethodCall method_call(
455 cryptohome::kCryptohomeInterface, 459 cryptohome::kCryptohomeInterface,
456 cryptohome::kCryptohomeAsyncTpmAttestationEnroll); 460 cryptohome::kCryptohomeAsyncTpmAttestationEnroll);
457 dbus::MessageWriter writer(&method_call); 461 dbus::MessageWriter writer(&method_call);
458 writer.AppendInt32(pca_type); 462 writer.AppendInt32(pca_type);
459 writer.AppendArrayOfBytes( 463 writer.AppendArrayOfBytes(
460 reinterpret_cast<const uint8*>(pca_response.data()), 464 reinterpret_cast<const uint8_t*>(pca_response.data()),
461 pca_response.size()); 465 pca_response.size());
462 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , 466 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs ,
463 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 467 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
464 weak_ptr_factory_.GetWeakPtr(), 468 weak_ptr_factory_.GetWeakPtr(),
465 callback)); 469 callback));
466 } 470 }
467 471
468 // CryptohomeClient override. 472 // CryptohomeClient override.
469 void AsyncTpmAttestationCreateCertRequest( 473 void AsyncTpmAttestationCreateCertRequest(
470 attestation::PrivacyCAType pca_type, 474 attestation::PrivacyCAType pca_type,
(...skipping 20 matching lines...) Expand all
491 const std::string& pca_response, 495 const std::string& pca_response,
492 attestation::AttestationKeyType key_type, 496 attestation::AttestationKeyType key_type,
493 const std::string& user_id, 497 const std::string& user_id,
494 const std::string& key_name, 498 const std::string& key_name,
495 const AsyncMethodCallback& callback) override { 499 const AsyncMethodCallback& callback) override {
496 dbus::MethodCall method_call( 500 dbus::MethodCall method_call(
497 cryptohome::kCryptohomeInterface, 501 cryptohome::kCryptohomeInterface,
498 cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequest); 502 cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequest);
499 dbus::MessageWriter writer(&method_call); 503 dbus::MessageWriter writer(&method_call);
500 writer.AppendArrayOfBytes( 504 writer.AppendArrayOfBytes(
501 reinterpret_cast<const uint8*>(pca_response.data()), 505 reinterpret_cast<const uint8_t*>(pca_response.data()),
502 pca_response.size()); 506 pca_response.size());
503 bool is_user_specific = (key_type == attestation::KEY_USER); 507 bool is_user_specific = (key_type == attestation::KEY_USER);
504 writer.AppendBool(is_user_specific); 508 writer.AppendBool(is_user_specific);
505 writer.AppendString(user_id); 509 writer.AppendString(user_id);
506 writer.AppendString(key_name); 510 writer.AppendString(key_name);
507 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , 511 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs ,
508 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 512 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
509 weak_ptr_factory_.GetWeakPtr(), 513 weak_ptr_factory_.GetWeakPtr(),
510 callback)); 514 callback));
511 } 515 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 const AsyncMethodCallback& callback) override { 601 const AsyncMethodCallback& callback) override {
598 dbus::MethodCall method_call( 602 dbus::MethodCall method_call(
599 cryptohome::kCryptohomeInterface, 603 cryptohome::kCryptohomeInterface,
600 cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallenge); 604 cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallenge);
601 dbus::MessageWriter writer(&method_call); 605 dbus::MessageWriter writer(&method_call);
602 bool is_user_specific = (key_type == attestation::KEY_USER); 606 bool is_user_specific = (key_type == attestation::KEY_USER);
603 writer.AppendBool(is_user_specific); 607 writer.AppendBool(is_user_specific);
604 writer.AppendString(user_id); 608 writer.AppendString(user_id);
605 writer.AppendString(key_name); 609 writer.AppendString(key_name);
606 writer.AppendString(domain); 610 writer.AppendString(domain);
607 writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(device_id.data()), 611 writer.AppendArrayOfBytes(
608 device_id.size()); 612 reinterpret_cast<const uint8_t*>(device_id.data()), device_id.size());
609 bool include_signed_public_key = 613 bool include_signed_public_key =
610 (options & attestation::CHALLENGE_INCLUDE_SIGNED_PUBLIC_KEY); 614 (options & attestation::CHALLENGE_INCLUDE_SIGNED_PUBLIC_KEY);
611 writer.AppendBool(include_signed_public_key); 615 writer.AppendBool(include_signed_public_key);
612 writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(challenge.data()), 616 writer.AppendArrayOfBytes(
613 challenge.size()); 617 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size());
614 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , 618 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs ,
615 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 619 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
616 weak_ptr_factory_.GetWeakPtr(), 620 weak_ptr_factory_.GetWeakPtr(),
617 callback)); 621 callback));
618 } 622 }
619 623
620 // CryptohomeClient override. 624 // CryptohomeClient override.
621 void TpmAttestationSignSimpleChallenge( 625 void TpmAttestationSignSimpleChallenge(
622 attestation::AttestationKeyType key_type, 626 attestation::AttestationKeyType key_type,
623 const std::string& user_id, 627 const std::string& user_id,
624 const std::string& key_name, 628 const std::string& key_name,
625 const std::string& challenge, 629 const std::string& challenge,
626 const AsyncMethodCallback& callback) override { 630 const AsyncMethodCallback& callback) override {
627 dbus::MethodCall method_call( 631 dbus::MethodCall method_call(
628 cryptohome::kCryptohomeInterface, 632 cryptohome::kCryptohomeInterface,
629 cryptohome::kCryptohomeTpmAttestationSignSimpleChallenge); 633 cryptohome::kCryptohomeTpmAttestationSignSimpleChallenge);
630 dbus::MessageWriter writer(&method_call); 634 dbus::MessageWriter writer(&method_call);
631 bool is_user_specific = (key_type == attestation::KEY_USER); 635 bool is_user_specific = (key_type == attestation::KEY_USER);
632 writer.AppendBool(is_user_specific); 636 writer.AppendBool(is_user_specific);
633 writer.AppendString(user_id); 637 writer.AppendString(user_id);
634 writer.AppendString(key_name); 638 writer.AppendString(key_name);
635 writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(challenge.data()), 639 writer.AppendArrayOfBytes(
636 challenge.size()); 640 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size());
637 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , 641 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs ,
638 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 642 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
639 weak_ptr_factory_.GetWeakPtr(), 643 weak_ptr_factory_.GetWeakPtr(),
640 callback)); 644 callback));
641 } 645 }
642 646
643 // CryptohomeClient override. 647 // CryptohomeClient override.
644 void TpmAttestationGetKeyPayload( 648 void TpmAttestationGetKeyPayload(
645 attestation::AttestationKeyType key_type, 649 attestation::AttestationKeyType key_type,
646 const std::string& user_id, 650 const std::string& user_id,
(...skipping 21 matching lines...) Expand all
668 const std::string& payload, 672 const std::string& payload,
669 const BoolDBusMethodCallback& callback) override { 673 const BoolDBusMethodCallback& callback) override {
670 dbus::MethodCall method_call( 674 dbus::MethodCall method_call(
671 cryptohome::kCryptohomeInterface, 675 cryptohome::kCryptohomeInterface,
672 cryptohome::kCryptohomeTpmAttestationSetKeyPayload); 676 cryptohome::kCryptohomeTpmAttestationSetKeyPayload);
673 dbus::MessageWriter writer(&method_call); 677 dbus::MessageWriter writer(&method_call);
674 bool is_user_specific = (key_type == attestation::KEY_USER); 678 bool is_user_specific = (key_type == attestation::KEY_USER);
675 writer.AppendBool(is_user_specific); 679 writer.AppendBool(is_user_specific);
676 writer.AppendString(user_id); 680 writer.AppendString(user_id);
677 writer.AppendString(key_name); 681 writer.AppendString(key_name);
678 writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(payload.data()), 682 writer.AppendArrayOfBytes(reinterpret_cast<const uint8_t*>(payload.data()),
679 payload.size()); 683 payload.size());
680 CallBoolMethod(&method_call, callback); 684 CallBoolMethod(&method_call, callback);
681 } 685 }
682 686
683 // CryptohomeClient override. 687 // CryptohomeClient override.
684 void TpmAttestationDeleteKeys( 688 void TpmAttestationDeleteKeys(
685 attestation::AttestationKeyType key_type, 689 attestation::AttestationKeyType key_type,
686 const std::string& user_id, 690 const std::string& user_id,
687 const std::string& key_prefix, 691 const std::string& key_prefix,
688 const BoolDBusMethodCallback& callback) override { 692 const BoolDBusMethodCallback& callback) override {
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 LOG(ERROR) << "Invalid response: " << response->ToString(); 898 LOG(ERROR) << "Invalid response: " << response->ToString();
895 return; 899 return;
896 } 900 }
897 callback.Run(async_id); 901 callback.Run(async_id);
898 } 902 }
899 903
900 // Handles the result of GetSystemSalt(). 904 // Handles the result of GetSystemSalt().
901 void OnGetSystemSalt(const GetSystemSaltCallback& callback, 905 void OnGetSystemSalt(const GetSystemSaltCallback& callback,
902 dbus::Response* response) { 906 dbus::Response* response) {
903 if (!response) { 907 if (!response) {
904 callback.Run(DBUS_METHOD_CALL_FAILURE, std::vector<uint8>()); 908 callback.Run(DBUS_METHOD_CALL_FAILURE, std::vector<uint8_t>());
905 return; 909 return;
906 } 910 }
907 dbus::MessageReader reader(response); 911 dbus::MessageReader reader(response);
908 const uint8* bytes = NULL; 912 const uint8_t* bytes = NULL;
909 size_t length = 0; 913 size_t length = 0;
910 if (!reader.PopArrayOfBytes(&bytes, &length)) { 914 if (!reader.PopArrayOfBytes(&bytes, &length)) {
911 callback.Run(DBUS_METHOD_CALL_FAILURE, std::vector<uint8>()); 915 callback.Run(DBUS_METHOD_CALL_FAILURE, std::vector<uint8_t>());
912 return; 916 return;
913 } 917 }
914 callback.Run(DBUS_METHOD_CALL_SUCCESS, 918 callback.Run(DBUS_METHOD_CALL_SUCCESS,
915 std::vector<uint8>(bytes, bytes + length)); 919 std::vector<uint8_t>(bytes, bytes + length));
916 } 920 }
917 921
918 // Calls a method without result values. 922 // Calls a method without result values.
919 void CallVoidMethod(dbus::MethodCall* method_call, 923 void CallVoidMethod(dbus::MethodCall* method_call,
920 const VoidDBusMethodCallback& callback) { 924 const VoidDBusMethodCallback& callback) {
921 proxy_->CallMethod(method_call, kTpmDBusTimeoutMs , 925 proxy_->CallMethod(method_call, kTpmDBusTimeoutMs ,
922 base::Bind(&CryptohomeClientImpl::OnVoidMethod, 926 base::Bind(&CryptohomeClientImpl::OnVoidMethod,
923 weak_ptr_factory_.GetWeakPtr(), 927 weak_ptr_factory_.GetWeakPtr(),
924 callback)); 928 callback));
925 } 929 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 } 992 }
989 993
990 // Handles responses for methods with a bool result and data. 994 // Handles responses for methods with a bool result and data.
991 void OnDataMethod(const DataMethodCallback& callback, 995 void OnDataMethod(const DataMethodCallback& callback,
992 dbus::Response* response) { 996 dbus::Response* response) {
993 if (!response) { 997 if (!response) {
994 callback.Run(DBUS_METHOD_CALL_FAILURE, false, std::string()); 998 callback.Run(DBUS_METHOD_CALL_FAILURE, false, std::string());
995 return; 999 return;
996 } 1000 }
997 dbus::MessageReader reader(response); 1001 dbus::MessageReader reader(response);
998 const uint8* data_buffer = NULL; 1002 const uint8_t* data_buffer = NULL;
999 size_t data_length = 0; 1003 size_t data_length = 0;
1000 bool result = false; 1004 bool result = false;
1001 if (!reader.PopArrayOfBytes(&data_buffer, &data_length) || 1005 if (!reader.PopArrayOfBytes(&data_buffer, &data_length) ||
1002 !reader.PopBool(&result)) { 1006 !reader.PopBool(&result)) {
1003 callback.Run(DBUS_METHOD_CALL_FAILURE, false, std::string()); 1007 callback.Run(DBUS_METHOD_CALL_FAILURE, false, std::string());
1004 return; 1008 return;
1005 } 1009 }
1006 std::string data(reinterpret_cast<const char*>(data_buffer), data_length); 1010 std::string data(reinterpret_cast<const char*>(data_buffer), data_length);
1007 callback.Run(DBUS_METHOD_CALL_SUCCESS, result, data); 1011 callback.Run(DBUS_METHOD_CALL_SUCCESS, result, data);
1008 } 1012 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 } 1081 }
1078 if (!async_call_status_handler_.is_null()) 1082 if (!async_call_status_handler_.is_null())
1079 async_call_status_handler_.Run(async_id, return_status, return_code); 1083 async_call_status_handler_.Run(async_id, return_status, return_code);
1080 } 1084 }
1081 1085
1082 // Handles AsyncCallStatusWithData signal. 1086 // Handles AsyncCallStatusWithData signal.
1083 void OnAsyncCallStatusWithData(dbus::Signal* signal) { 1087 void OnAsyncCallStatusWithData(dbus::Signal* signal) {
1084 dbus::MessageReader reader(signal); 1088 dbus::MessageReader reader(signal);
1085 int async_id = 0; 1089 int async_id = 0;
1086 bool return_status = false; 1090 bool return_status = false;
1087 const uint8* return_data_buffer = NULL; 1091 const uint8_t* return_data_buffer = NULL;
1088 size_t return_data_length = 0; 1092 size_t return_data_length = 0;
1089 if (!reader.PopInt32(&async_id) || 1093 if (!reader.PopInt32(&async_id) ||
1090 !reader.PopBool(&return_status) || 1094 !reader.PopBool(&return_status) ||
1091 !reader.PopArrayOfBytes(&return_data_buffer, &return_data_length)) { 1095 !reader.PopArrayOfBytes(&return_data_buffer, &return_data_length)) {
1092 LOG(ERROR) << "Invalid signal: " << signal->ToString(); 1096 LOG(ERROR) << "Invalid signal: " << signal->ToString();
1093 return; 1097 return;
1094 } 1098 }
1095 if (!async_call_status_data_handler_.is_null()) { 1099 if (!async_call_status_data_handler_.is_null()) {
1096 std::string return_data(reinterpret_cast<const char*>(return_data_buffer), 1100 std::string return_data(reinterpret_cast<const char*>(return_data_buffer),
1097 return_data_length); 1101 return_data_length);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1133 return new CryptohomeClientImpl(); 1137 return new CryptohomeClientImpl();
1134 } 1138 }
1135 1139
1136 // static 1140 // static
1137 std::string CryptohomeClient::GetStubSanitizedUsername( 1141 std::string CryptohomeClient::GetStubSanitizedUsername(
1138 const std::string& username) { 1142 const std::string& username) {
1139 return username + kUserIdStubHashSuffix; 1143 return username + kUserIdStubHashSuffix;
1140 } 1144 }
1141 1145
1142 } // namespace chromeos 1146 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/cryptohome_client.h ('k') | chromeos/dbus/dbus_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698