| OLD | NEW |
| 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> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/location.h" | 11 #include "base/location.h" |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" |
| 14 #include "base/message_loop/message_loop.h" | 14 #include "base/message_loop/message_loop.h" |
| 15 #include "chromeos/cryptohome/async_method_caller.h" | 15 #include "chromeos/cryptohome/async_method_caller.h" |
| 16 #include "chromeos/cryptohome/cryptohome_parameters.h" |
| 16 #include "chromeos/dbus/blocking_method_caller.h" | 17 #include "chromeos/dbus/blocking_method_caller.h" |
| 17 #include "chromeos/dbus/cryptohome/key.pb.h" | 18 #include "chromeos/dbus/cryptohome/key.pb.h" |
| 18 #include "chromeos/dbus/cryptohome/rpc.pb.h" | 19 #include "chromeos/dbus/cryptohome/rpc.pb.h" |
| 20 #include "chromeos/dbus/utils.h" |
| 19 #include "dbus/bus.h" | 21 #include "dbus/bus.h" |
| 20 #include "dbus/message.h" | 22 #include "dbus/message.h" |
| 21 #include "dbus/object_path.h" | 23 #include "dbus/object_path.h" |
| 22 #include "dbus/object_proxy.h" | 24 #include "dbus/object_proxy.h" |
| 23 #include "third_party/cros_system_api/dbus/service_constants.h" | 25 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 24 | 26 |
| 25 namespace chromeos { | 27 namespace chromeos { |
| 26 | 28 |
| 27 const int CryptohomeClient::kNotReadyAsyncId = -1; | 29 const int CryptohomeClient::kNotReadyAsyncId = -1; |
| 28 | 30 |
| 29 namespace { | 31 namespace { |
| 30 | 32 |
| 31 // This suffix is appended to user_id to get hash in stub implementation: | 33 // This suffix is appended to cryptohome_id to get hash in stub implementation: |
| 32 // stub_hash = "[user_id]-hash"; | 34 // stub_hash = "[cryptohome_id]-hash"; |
| 33 static const char kUserIdStubHashSuffix[] = "-hash"; | 35 static const char kUserIdStubHashSuffix[] = "-hash"; |
| 34 | 36 |
| 35 // Timeout for TPM operations. On slow machines it should be larger, than | 37 // Timeout for TPM operations. On slow machines it should be larger, than |
| 36 // default DBus timeout. TPM operations can take up to 80 seconds, so limit | 38 // default DBus timeout. TPM operations can take up to 80 seconds, so limit |
| 37 // is 2 minutes. | 39 // is 2 minutes. |
| 38 const int kTpmDBusTimeoutMs = 2 * 60 * 1000; | 40 const int kTpmDBusTimeoutMs = 2 * 60 * 1000; |
| 39 | 41 |
| 40 // The CryptohomeClient implementation. | 42 // The CryptohomeClient implementation. |
| 41 class CryptohomeClientImpl : public CryptohomeClient { | 43 class CryptohomeClientImpl : public CryptohomeClient { |
| 42 public: | 44 public: |
| (...skipping 27 matching lines...) Expand all Loading... |
| 70 } | 72 } |
| 71 | 73 |
| 72 // CryptohomeClient override. | 74 // CryptohomeClient override. |
| 73 bool Unmount(bool* success) override { | 75 bool Unmount(bool* success) override { |
| 74 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 76 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 75 cryptohome::kCryptohomeUnmount); | 77 cryptohome::kCryptohomeUnmount); |
| 76 return CallBoolMethodAndBlock(&method_call, success); | 78 return CallBoolMethodAndBlock(&method_call, success); |
| 77 } | 79 } |
| 78 | 80 |
| 79 // CryptohomeClient override. | 81 // CryptohomeClient override. |
| 80 void AsyncCheckKey(const std::string& username, | 82 void AsyncCheckKey(const cryptohome::Identification& cryptohome_id, |
| 81 const std::string& key, | 83 const std::string& key, |
| 82 const AsyncMethodCallback& callback) override { | 84 const AsyncMethodCallback& callback) override { |
| 83 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 85 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 84 cryptohome::kCryptohomeAsyncCheckKey); | 86 cryptohome::kCryptohomeAsyncCheckKey); |
| 85 dbus::MessageWriter writer(&method_call); | 87 dbus::MessageWriter writer(&method_call); |
| 86 writer.AppendString(username); | 88 writer.AppendString(cryptohome_id.id()); |
| 87 writer.AppendString(key); | 89 writer.AppendString(key); |
| 88 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 90 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 89 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 91 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 90 weak_ptr_factory_.GetWeakPtr(), | 92 weak_ptr_factory_.GetWeakPtr(), |
| 91 callback)); | 93 callback)); |
| 92 } | 94 } |
| 93 | 95 |
| 94 // CryptohomeClient override. | 96 // CryptohomeClient override. |
| 95 void AsyncMigrateKey(const std::string& username, | 97 void AsyncMigrateKey(const cryptohome::Identification& cryptohome_id, |
| 96 const std::string& from_key, | 98 const std::string& from_key, |
| 97 const std::string& to_key, | 99 const std::string& to_key, |
| 98 const AsyncMethodCallback& callback) override { | 100 const AsyncMethodCallback& callback) override { |
| 99 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 101 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 100 cryptohome::kCryptohomeAsyncMigrateKey); | 102 cryptohome::kCryptohomeAsyncMigrateKey); |
| 101 dbus::MessageWriter writer(&method_call); | 103 dbus::MessageWriter writer(&method_call); |
| 102 writer.AppendString(username); | 104 writer.AppendString(cryptohome_id.id()); |
| 103 writer.AppendString(from_key); | 105 writer.AppendString(from_key); |
| 104 writer.AppendString(to_key); | 106 writer.AppendString(to_key); |
| 105 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 107 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 106 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 108 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 107 weak_ptr_factory_.GetWeakPtr(), | 109 weak_ptr_factory_.GetWeakPtr(), |
| 108 callback)); | 110 callback)); |
| 109 } | 111 } |
| 110 | 112 |
| 111 // CryptohomeClient override. | 113 // CryptohomeClient override. |
| 112 void AsyncRemove(const std::string& username, | 114 void AsyncRemove(const cryptohome::Identification& cryptohome_id, |
| 113 const AsyncMethodCallback& callback) override { | 115 const AsyncMethodCallback& callback) override { |
| 114 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 116 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 115 cryptohome::kCryptohomeAsyncRemove); | 117 cryptohome::kCryptohomeAsyncRemove); |
| 116 dbus::MessageWriter writer(&method_call); | 118 dbus::MessageWriter writer(&method_call); |
| 117 writer.AppendString(username); | 119 writer.AppendString(cryptohome_id.id()); |
| 118 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 120 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 119 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 121 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 120 weak_ptr_factory_.GetWeakPtr(), | 122 weak_ptr_factory_.GetWeakPtr(), |
| 121 callback)); | 123 callback)); |
| 122 } | 124 } |
| 123 | 125 |
| 124 // CryptohomeClient override. | 126 // CryptohomeClient override. |
| 127 void RenameCryptohome(const cryptohome::Identification& cryptohome_id_from, |
| 128 const cryptohome::Identification& cryptohome_id_to, |
| 129 const ProtobufMethodCallback& callback) override { |
| 130 const char* method_name = cryptohome::kCryptohomeRenameCryptohome; |
| 131 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name); |
| 132 |
| 133 cryptohome::AccountIdentifier id_from_proto; |
| 134 cryptohome::AccountIdentifier id_to_proto; |
| 135 FillIdentificationProtobuf(cryptohome_id_from, &id_from_proto); |
| 136 FillIdentificationProtobuf(cryptohome_id_to, &id_to_proto); |
| 137 |
| 138 dbus::MessageWriter writer(&method_call); |
| 139 writer.AppendProtoAsArrayOfBytes(id_from_proto); |
| 140 writer.AppendProtoAsArrayOfBytes(id_to_proto); |
| 141 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs, |
| 142 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 143 weak_ptr_factory_.GetWeakPtr(), callback)); |
| 144 } |
| 145 |
| 146 // CryptohomeClient override. |
| 125 void GetSystemSalt(const GetSystemSaltCallback& callback) override { | 147 void GetSystemSalt(const GetSystemSaltCallback& callback) override { |
| 126 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 148 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 127 cryptohome::kCryptohomeGetSystemSalt); | 149 cryptohome::kCryptohomeGetSystemSalt); |
| 128 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 150 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 129 base::Bind(&CryptohomeClientImpl::OnGetSystemSalt, | 151 base::Bind(&CryptohomeClientImpl::OnGetSystemSalt, |
| 130 weak_ptr_factory_.GetWeakPtr(), | 152 weak_ptr_factory_.GetWeakPtr(), |
| 131 callback)); | 153 callback)); |
| 132 } | 154 } |
| 133 | 155 |
| 134 // CryptohomeClient override, | 156 // CryptohomeClient override, |
| 135 void GetSanitizedUsername(const std::string& username, | 157 void GetSanitizedUsername(const cryptohome::Identification& cryptohome_id, |
| 136 const StringDBusMethodCallback& callback) override { | 158 const StringDBusMethodCallback& callback) override { |
| 137 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 159 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 138 cryptohome::kCryptohomeGetSanitizedUsername); | 160 cryptohome::kCryptohomeGetSanitizedUsername); |
| 139 dbus::MessageWriter writer(&method_call); | 161 dbus::MessageWriter writer(&method_call); |
| 140 writer.AppendString(username); | 162 writer.AppendString(cryptohome_id.id()); |
| 141 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 163 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 142 base::Bind(&CryptohomeClientImpl::OnStringMethod, | 164 base::Bind(&CryptohomeClientImpl::OnStringMethod, |
| 143 weak_ptr_factory_.GetWeakPtr(), | 165 weak_ptr_factory_.GetWeakPtr(), |
| 144 callback)); | 166 callback)); |
| 145 } | 167 } |
| 146 | 168 |
| 147 // CryptohomeClient override. | 169 // CryptohomeClient override. |
| 148 std::string BlockingGetSanitizedUsername( | 170 std::string BlockingGetSanitizedUsername( |
| 149 const std::string& username) override { | 171 const cryptohome::Identification& cryptohome_id) override { |
| 150 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 172 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 151 cryptohome::kCryptohomeGetSanitizedUsername); | 173 cryptohome::kCryptohomeGetSanitizedUsername); |
| 152 dbus::MessageWriter writer(&method_call); | 174 dbus::MessageWriter writer(&method_call); |
| 153 writer.AppendString(username); | 175 writer.AppendString(cryptohome_id.id()); |
| 154 | 176 |
| 155 scoped_ptr<dbus::Response> response = | 177 scoped_ptr<dbus::Response> response = |
| 156 blocking_method_caller_->CallMethodAndBlock(&method_call); | 178 blocking_method_caller_->CallMethodAndBlock(&method_call); |
| 157 | 179 |
| 158 std::string sanitized_username; | 180 std::string sanitized_username; |
| 159 if (response) { | 181 if (response) { |
| 160 dbus::MessageReader reader(response.get()); | 182 dbus::MessageReader reader(response.get()); |
| 161 reader.PopString(&sanitized_username); | 183 reader.PopString(&sanitized_username); |
| 162 } | 184 } |
| 163 | 185 |
| 164 return sanitized_username; | 186 return sanitized_username; |
| 165 } | 187 } |
| 166 | 188 |
| 167 // CryptohomeClient override. | 189 // CryptohomeClient override. |
| 168 void AsyncMount(const std::string& username, | 190 void AsyncMount(const cryptohome::Identification& cryptohome_id, |
| 169 const std::string& key, | 191 const std::string& key, |
| 170 int flags, | 192 int flags, |
| 171 const AsyncMethodCallback& callback) override { | 193 const AsyncMethodCallback& callback) override { |
| 172 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 194 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 173 cryptohome::kCryptohomeAsyncMount); | 195 cryptohome::kCryptohomeAsyncMount); |
| 174 dbus::MessageWriter writer(&method_call); | 196 dbus::MessageWriter writer(&method_call); |
| 175 writer.AppendString(username); | 197 writer.AppendString(cryptohome_id.id()); |
| 176 writer.AppendString(key); | 198 writer.AppendString(key); |
| 177 writer.AppendBool(flags & cryptohome::CREATE_IF_MISSING); | 199 writer.AppendBool(flags & cryptohome::CREATE_IF_MISSING); |
| 178 writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); | 200 writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); |
| 179 // deprecated_tracked_subdirectories | 201 // deprecated_tracked_subdirectories |
| 180 writer.AppendArrayOfStrings(std::vector<std::string>()); | 202 writer.AppendArrayOfStrings(std::vector<std::string>()); |
| 181 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 203 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 182 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 204 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 183 weak_ptr_factory_.GetWeakPtr(), | 205 weak_ptr_factory_.GetWeakPtr(), |
| 184 callback)); | 206 callback)); |
| 185 } | 207 } |
| 186 | 208 |
| 187 // CryptohomeClient override. | 209 // CryptohomeClient override. |
| 188 void AsyncAddKey(const std::string& username, | 210 void AsyncAddKey(const cryptohome::Identification& cryptohome_id, |
| 189 const std::string& key, | 211 const std::string& key, |
| 190 const std::string& new_key, | 212 const std::string& new_key, |
| 191 const AsyncMethodCallback& callback) override { | 213 const AsyncMethodCallback& callback) override { |
| 192 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 214 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 193 cryptohome::kCryptohomeAsyncAddKey); | 215 cryptohome::kCryptohomeAsyncAddKey); |
| 194 dbus::MessageWriter writer(&method_call); | 216 dbus::MessageWriter writer(&method_call); |
| 195 writer.AppendString(username); | 217 writer.AppendString(cryptohome_id.id()); |
| 196 writer.AppendString(key); | 218 writer.AppendString(key); |
| 197 writer.AppendString(new_key); | 219 writer.AppendString(new_key); |
| 198 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 220 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 199 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 221 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 200 weak_ptr_factory_.GetWeakPtr(), | 222 weak_ptr_factory_.GetWeakPtr(), |
| 201 callback)); | 223 callback)); |
| 202 } | 224 } |
| 203 | 225 |
| 204 // CryptohomeClient override. | 226 // CryptohomeClient override. |
| 205 void AsyncMountGuest(const AsyncMethodCallback& callback) override { | 227 void AsyncMountGuest(const AsyncMethodCallback& callback) override { |
| 206 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 228 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 207 cryptohome::kCryptohomeAsyncMountGuest); | 229 cryptohome::kCryptohomeAsyncMountGuest); |
| 208 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 230 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 209 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 231 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 210 weak_ptr_factory_.GetWeakPtr(), | 232 weak_ptr_factory_.GetWeakPtr(), |
| 211 callback)); | 233 callback)); |
| 212 } | 234 } |
| 213 | 235 |
| 214 // CryptohomeClient override. | 236 // CryptohomeClient override. |
| 215 void AsyncMountPublic(const std::string& public_mount_id, | 237 void AsyncMountPublic(const cryptohome::Identification& public_mount_id, |
| 216 int flags, | 238 int flags, |
| 217 const AsyncMethodCallback& callback) override { | 239 const AsyncMethodCallback& callback) override { |
| 218 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 240 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 219 cryptohome::kCryptohomeAsyncMountPublic); | 241 cryptohome::kCryptohomeAsyncMountPublic); |
| 220 dbus::MessageWriter writer(&method_call); | 242 dbus::MessageWriter writer(&method_call); |
| 221 writer.AppendString(public_mount_id); | 243 writer.AppendString(public_mount_id.id()); |
| 222 writer.AppendBool(flags & cryptohome::CREATE_IF_MISSING); | 244 writer.AppendBool(flags & cryptohome::CREATE_IF_MISSING); |
| 223 writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); | 245 writer.AppendBool(flags & cryptohome::ENSURE_EPHEMERAL); |
| 224 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 246 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 225 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 247 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 226 weak_ptr_factory_.GetWeakPtr(), | 248 weak_ptr_factory_.GetWeakPtr(), |
| 227 callback)); | 249 callback)); |
| 228 } | 250 } |
| 229 | 251 |
| 230 // CryptohomeClient override. | 252 // CryptohomeClient override. |
| 231 void TpmIsReady(const BoolDBusMethodCallback& callback) override { | 253 void TpmIsReady(const BoolDBusMethodCallback& callback) override { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 proxy_->CallMethod( | 351 proxy_->CallMethod( |
| 330 &method_call, kTpmDBusTimeoutMs , | 352 &method_call, kTpmDBusTimeoutMs , |
| 331 base::Bind( | 353 base::Bind( |
| 332 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfo, | 354 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfo, |
| 333 weak_ptr_factory_.GetWeakPtr(), | 355 weak_ptr_factory_.GetWeakPtr(), |
| 334 callback)); | 356 callback)); |
| 335 } | 357 } |
| 336 | 358 |
| 337 // CryptohomeClient override. | 359 // CryptohomeClient override. |
| 338 void Pkcs11GetTpmTokenInfoForUser( | 360 void Pkcs11GetTpmTokenInfoForUser( |
| 339 const std::string& user_email, | 361 const cryptohome::Identification& cryptohome_id, |
| 340 const Pkcs11GetTpmTokenInfoCallback& callback) override { | 362 const Pkcs11GetTpmTokenInfoCallback& callback) override { |
| 341 dbus::MethodCall method_call( | 363 dbus::MethodCall method_call( |
| 342 cryptohome::kCryptohomeInterface, | 364 cryptohome::kCryptohomeInterface, |
| 343 cryptohome::kCryptohomePkcs11GetTpmTokenInfoForUser); | 365 cryptohome::kCryptohomePkcs11GetTpmTokenInfoForUser); |
| 344 dbus::MessageWriter writer(&method_call); | 366 dbus::MessageWriter writer(&method_call); |
| 345 writer.AppendString(user_email); | 367 writer.AppendString(cryptohome_id.id()); |
| 346 proxy_->CallMethod( | 368 proxy_->CallMethod( |
| 347 &method_call, kTpmDBusTimeoutMs , | 369 &method_call, kTpmDBusTimeoutMs , |
| 348 base::Bind( | 370 base::Bind( |
| 349 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfoForUser, | 371 &CryptohomeClientImpl::OnPkcs11GetTpmTokenInfoForUser, |
| 350 weak_ptr_factory_.GetWeakPtr(), | 372 weak_ptr_factory_.GetWeakPtr(), |
| 351 callback)); | 373 callback)); |
| 352 } | 374 } |
| 353 | 375 |
| 354 // CryptohomeClient override. | 376 // CryptohomeClient override. |
| 355 bool InstallAttributesGet(const std::string& name, | 377 bool InstallAttributesGet(const std::string& name, |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 488 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 467 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 489 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 468 weak_ptr_factory_.GetWeakPtr(), | 490 weak_ptr_factory_.GetWeakPtr(), |
| 469 callback)); | 491 callback)); |
| 470 } | 492 } |
| 471 | 493 |
| 472 // CryptohomeClient override. | 494 // CryptohomeClient override. |
| 473 void AsyncTpmAttestationCreateCertRequest( | 495 void AsyncTpmAttestationCreateCertRequest( |
| 474 attestation::PrivacyCAType pca_type, | 496 attestation::PrivacyCAType pca_type, |
| 475 attestation::AttestationCertificateProfile certificate_profile, | 497 attestation::AttestationCertificateProfile certificate_profile, |
| 476 const std::string& user_id, | 498 const cryptohome::Identification& cryptohome_id, |
| 477 const std::string& request_origin, | 499 const std::string& request_origin, |
| 478 const AsyncMethodCallback& callback) override { | 500 const AsyncMethodCallback& callback) override { |
| 479 dbus::MethodCall method_call( | 501 dbus::MethodCall method_call( |
| 480 cryptohome::kCryptohomeInterface, | 502 cryptohome::kCryptohomeInterface, |
| 481 cryptohome::kCryptohomeAsyncTpmAttestationCreateCertRequest); | 503 cryptohome::kCryptohomeAsyncTpmAttestationCreateCertRequest); |
| 482 dbus::MessageWriter writer(&method_call); | 504 dbus::MessageWriter writer(&method_call); |
| 483 writer.AppendInt32(pca_type); | 505 writer.AppendInt32(pca_type); |
| 484 writer.AppendInt32(certificate_profile); | 506 writer.AppendInt32(certificate_profile); |
| 485 writer.AppendString(user_id); | 507 writer.AppendString(cryptohome_id.id()); |
| 486 writer.AppendString(request_origin); | 508 writer.AppendString(request_origin); |
| 487 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 509 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 488 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 510 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 489 weak_ptr_factory_.GetWeakPtr(), | 511 weak_ptr_factory_.GetWeakPtr(), |
| 490 callback)); | 512 callback)); |
| 491 } | 513 } |
| 492 | 514 |
| 493 // CryptohomeClient override. | 515 // CryptohomeClient override. |
| 494 void AsyncTpmAttestationFinishCertRequest( | 516 void AsyncTpmAttestationFinishCertRequest( |
| 495 const std::string& pca_response, | 517 const std::string& pca_response, |
| 496 attestation::AttestationKeyType key_type, | 518 attestation::AttestationKeyType key_type, |
| 497 const std::string& user_id, | 519 const cryptohome::Identification& cryptohome_id, |
| 498 const std::string& key_name, | 520 const std::string& key_name, |
| 499 const AsyncMethodCallback& callback) override { | 521 const AsyncMethodCallback& callback) override { |
| 500 dbus::MethodCall method_call( | 522 dbus::MethodCall method_call( |
| 501 cryptohome::kCryptohomeInterface, | 523 cryptohome::kCryptohomeInterface, |
| 502 cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequest); | 524 cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequest); |
| 503 dbus::MessageWriter writer(&method_call); | 525 dbus::MessageWriter writer(&method_call); |
| 504 writer.AppendArrayOfBytes( | 526 writer.AppendArrayOfBytes( |
| 505 reinterpret_cast<const uint8_t*>(pca_response.data()), | 527 reinterpret_cast<const uint8_t*>(pca_response.data()), |
| 506 pca_response.size()); | 528 pca_response.size()); |
| 507 bool is_user_specific = (key_type == attestation::KEY_USER); | 529 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 508 writer.AppendBool(is_user_specific); | 530 writer.AppendBool(is_user_specific); |
| 509 writer.AppendString(user_id); | 531 writer.AppendString(cryptohome_id.id()); |
| 510 writer.AppendString(key_name); | 532 writer.AppendString(key_name); |
| 511 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 533 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 512 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 534 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 513 weak_ptr_factory_.GetWeakPtr(), | 535 weak_ptr_factory_.GetWeakPtr(), |
| 514 callback)); | 536 callback)); |
| 515 } | 537 } |
| 516 | 538 |
| 517 // CryptohomeClient override. | 539 // CryptohomeClient override. |
| 518 void TpmAttestationDoesKeyExist( | 540 void TpmAttestationDoesKeyExist( |
| 519 attestation::AttestationKeyType key_type, | 541 attestation::AttestationKeyType key_type, |
| 520 const std::string& user_id, | 542 const cryptohome::Identification& cryptohome_id, |
| 521 const std::string& key_name, | 543 const std::string& key_name, |
| 522 const BoolDBusMethodCallback& callback) override { | 544 const BoolDBusMethodCallback& callback) override { |
| 523 dbus::MethodCall method_call( | 545 dbus::MethodCall method_call( |
| 524 cryptohome::kCryptohomeInterface, | 546 cryptohome::kCryptohomeInterface, |
| 525 cryptohome::kCryptohomeTpmAttestationDoesKeyExist); | 547 cryptohome::kCryptohomeTpmAttestationDoesKeyExist); |
| 526 dbus::MessageWriter writer(&method_call); | 548 dbus::MessageWriter writer(&method_call); |
| 527 bool is_user_specific = (key_type == attestation::KEY_USER); | 549 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 528 writer.AppendBool(is_user_specific); | 550 writer.AppendBool(is_user_specific); |
| 529 writer.AppendString(user_id); | 551 writer.AppendString(cryptohome_id.id()); |
| 530 writer.AppendString(key_name); | 552 writer.AppendString(key_name); |
| 531 CallBoolMethod(&method_call, callback); | 553 CallBoolMethod(&method_call, callback); |
| 532 } | 554 } |
| 533 | 555 |
| 534 // CryptohomeClient override. | 556 // CryptohomeClient override. |
| 535 void TpmAttestationGetCertificate( | 557 void TpmAttestationGetCertificate( |
| 536 attestation::AttestationKeyType key_type, | 558 attestation::AttestationKeyType key_type, |
| 537 const std::string& user_id, | 559 const cryptohome::Identification& cryptohome_id, |
| 538 const std::string& key_name, | 560 const std::string& key_name, |
| 539 const DataMethodCallback& callback) override { | 561 const DataMethodCallback& callback) override { |
| 540 dbus::MethodCall method_call( | 562 dbus::MethodCall method_call( |
| 541 cryptohome::kCryptohomeInterface, | 563 cryptohome::kCryptohomeInterface, |
| 542 cryptohome::kCryptohomeTpmAttestationGetCertificate); | 564 cryptohome::kCryptohomeTpmAttestationGetCertificate); |
| 543 dbus::MessageWriter writer(&method_call); | 565 dbus::MessageWriter writer(&method_call); |
| 544 bool is_user_specific = (key_type == attestation::KEY_USER); | 566 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 545 writer.AppendBool(is_user_specific); | 567 writer.AppendBool(is_user_specific); |
| 546 writer.AppendString(user_id); | 568 writer.AppendString(cryptohome_id.id()); |
| 547 writer.AppendString(key_name); | 569 writer.AppendString(key_name); |
| 548 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 570 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 549 base::Bind(&CryptohomeClientImpl::OnDataMethod, | 571 base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| 550 weak_ptr_factory_.GetWeakPtr(), | 572 weak_ptr_factory_.GetWeakPtr(), |
| 551 callback)); | 573 callback)); |
| 552 } | 574 } |
| 553 | 575 |
| 554 // CryptohomeClient override. | 576 // CryptohomeClient override. |
| 555 void TpmAttestationGetPublicKey(attestation::AttestationKeyType key_type, | 577 void TpmAttestationGetPublicKey( |
| 556 const std::string& user_id, | 578 attestation::AttestationKeyType key_type, |
| 557 const std::string& key_name, | 579 const cryptohome::Identification& cryptohome_id, |
| 558 const DataMethodCallback& callback) override { | 580 const std::string& key_name, |
| 581 const DataMethodCallback& callback) override { |
| 559 dbus::MethodCall method_call( | 582 dbus::MethodCall method_call( |
| 560 cryptohome::kCryptohomeInterface, | 583 cryptohome::kCryptohomeInterface, |
| 561 cryptohome::kCryptohomeTpmAttestationGetPublicKey); | 584 cryptohome::kCryptohomeTpmAttestationGetPublicKey); |
| 562 dbus::MessageWriter writer(&method_call); | 585 dbus::MessageWriter writer(&method_call); |
| 563 bool is_user_specific = (key_type == attestation::KEY_USER); | 586 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 564 writer.AppendBool(is_user_specific); | 587 writer.AppendBool(is_user_specific); |
| 565 writer.AppendString(user_id); | 588 writer.AppendString(cryptohome_id.id()); |
| 566 writer.AppendString(key_name); | 589 writer.AppendString(key_name); |
| 567 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 590 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 568 base::Bind(&CryptohomeClientImpl::OnDataMethod, | 591 base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| 569 weak_ptr_factory_.GetWeakPtr(), | 592 weak_ptr_factory_.GetWeakPtr(), |
| 570 callback)); | 593 callback)); |
| 571 } | 594 } |
| 572 | 595 |
| 573 // CryptohomeClient override. | 596 // CryptohomeClient override. |
| 574 void TpmAttestationRegisterKey(attestation::AttestationKeyType key_type, | 597 void TpmAttestationRegisterKey( |
| 575 const std::string& user_id, | 598 attestation::AttestationKeyType key_type, |
| 576 const std::string& key_name, | 599 const cryptohome::Identification& cryptohome_id, |
| 577 const AsyncMethodCallback& callback) override { | 600 const std::string& key_name, |
| 601 const AsyncMethodCallback& callback) override { |
| 578 dbus::MethodCall method_call( | 602 dbus::MethodCall method_call( |
| 579 cryptohome::kCryptohomeInterface, | 603 cryptohome::kCryptohomeInterface, |
| 580 cryptohome::kCryptohomeTpmAttestationRegisterKey); | 604 cryptohome::kCryptohomeTpmAttestationRegisterKey); |
| 581 dbus::MessageWriter writer(&method_call); | 605 dbus::MessageWriter writer(&method_call); |
| 582 bool is_user_specific = (key_type == attestation::KEY_USER); | 606 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 583 writer.AppendBool(is_user_specific); | 607 writer.AppendBool(is_user_specific); |
| 584 writer.AppendString(user_id); | 608 writer.AppendString(cryptohome_id.id()); |
| 585 writer.AppendString(key_name); | 609 writer.AppendString(key_name); |
| 586 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 610 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 587 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 611 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 588 weak_ptr_factory_.GetWeakPtr(), | 612 weak_ptr_factory_.GetWeakPtr(), |
| 589 callback)); | 613 callback)); |
| 590 } | 614 } |
| 591 | 615 |
| 592 // CryptohomeClient override. | 616 // CryptohomeClient override. |
| 593 void TpmAttestationSignEnterpriseChallenge( | 617 void TpmAttestationSignEnterpriseChallenge( |
| 594 attestation::AttestationKeyType key_type, | 618 attestation::AttestationKeyType key_type, |
| 595 const std::string& user_id, | 619 const cryptohome::Identification& cryptohome_id, |
| 596 const std::string& key_name, | 620 const std::string& key_name, |
| 597 const std::string& domain, | 621 const std::string& domain, |
| 598 const std::string& device_id, | 622 const std::string& device_id, |
| 599 attestation::AttestationChallengeOptions options, | 623 attestation::AttestationChallengeOptions options, |
| 600 const std::string& challenge, | 624 const std::string& challenge, |
| 601 const AsyncMethodCallback& callback) override { | 625 const AsyncMethodCallback& callback) override { |
| 602 dbus::MethodCall method_call( | 626 dbus::MethodCall method_call( |
| 603 cryptohome::kCryptohomeInterface, | 627 cryptohome::kCryptohomeInterface, |
| 604 cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallenge); | 628 cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallenge); |
| 605 dbus::MessageWriter writer(&method_call); | 629 dbus::MessageWriter writer(&method_call); |
| 606 bool is_user_specific = (key_type == attestation::KEY_USER); | 630 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 607 writer.AppendBool(is_user_specific); | 631 writer.AppendBool(is_user_specific); |
| 608 writer.AppendString(user_id); | 632 writer.AppendString(cryptohome_id.id()); |
| 609 writer.AppendString(key_name); | 633 writer.AppendString(key_name); |
| 610 writer.AppendString(domain); | 634 writer.AppendString(domain); |
| 611 writer.AppendArrayOfBytes( | 635 writer.AppendArrayOfBytes( |
| 612 reinterpret_cast<const uint8_t*>(device_id.data()), device_id.size()); | 636 reinterpret_cast<const uint8_t*>(device_id.data()), device_id.size()); |
| 613 bool include_signed_public_key = | 637 bool include_signed_public_key = |
| 614 (options & attestation::CHALLENGE_INCLUDE_SIGNED_PUBLIC_KEY); | 638 (options & attestation::CHALLENGE_INCLUDE_SIGNED_PUBLIC_KEY); |
| 615 writer.AppendBool(include_signed_public_key); | 639 writer.AppendBool(include_signed_public_key); |
| 616 writer.AppendArrayOfBytes( | 640 writer.AppendArrayOfBytes( |
| 617 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size()); | 641 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size()); |
| 618 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 642 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 619 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 643 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 620 weak_ptr_factory_.GetWeakPtr(), | 644 weak_ptr_factory_.GetWeakPtr(), |
| 621 callback)); | 645 callback)); |
| 622 } | 646 } |
| 623 | 647 |
| 624 // CryptohomeClient override. | 648 // CryptohomeClient override. |
| 625 void TpmAttestationSignSimpleChallenge( | 649 void TpmAttestationSignSimpleChallenge( |
| 626 attestation::AttestationKeyType key_type, | 650 attestation::AttestationKeyType key_type, |
| 627 const std::string& user_id, | 651 const cryptohome::Identification& cryptohome_id, |
| 628 const std::string& key_name, | 652 const std::string& key_name, |
| 629 const std::string& challenge, | 653 const std::string& challenge, |
| 630 const AsyncMethodCallback& callback) override { | 654 const AsyncMethodCallback& callback) override { |
| 631 dbus::MethodCall method_call( | 655 dbus::MethodCall method_call( |
| 632 cryptohome::kCryptohomeInterface, | 656 cryptohome::kCryptohomeInterface, |
| 633 cryptohome::kCryptohomeTpmAttestationSignSimpleChallenge); | 657 cryptohome::kCryptohomeTpmAttestationSignSimpleChallenge); |
| 634 dbus::MessageWriter writer(&method_call); | 658 dbus::MessageWriter writer(&method_call); |
| 635 bool is_user_specific = (key_type == attestation::KEY_USER); | 659 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 636 writer.AppendBool(is_user_specific); | 660 writer.AppendBool(is_user_specific); |
| 637 writer.AppendString(user_id); | 661 writer.AppendString(cryptohome_id.id()); |
| 638 writer.AppendString(key_name); | 662 writer.AppendString(key_name); |
| 639 writer.AppendArrayOfBytes( | 663 writer.AppendArrayOfBytes( |
| 640 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size()); | 664 reinterpret_cast<const uint8_t*>(challenge.data()), challenge.size()); |
| 641 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 665 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 642 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, | 666 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, |
| 643 weak_ptr_factory_.GetWeakPtr(), | 667 weak_ptr_factory_.GetWeakPtr(), |
| 644 callback)); | 668 callback)); |
| 645 } | 669 } |
| 646 | 670 |
| 647 // CryptohomeClient override. | 671 // CryptohomeClient override. |
| 648 void TpmAttestationGetKeyPayload( | 672 void TpmAttestationGetKeyPayload( |
| 649 attestation::AttestationKeyType key_type, | 673 attestation::AttestationKeyType key_type, |
| 650 const std::string& user_id, | 674 const cryptohome::Identification& cryptohome_id, |
| 651 const std::string& key_name, | 675 const std::string& key_name, |
| 652 const DataMethodCallback& callback) override { | 676 const DataMethodCallback& callback) override { |
| 653 dbus::MethodCall method_call( | 677 dbus::MethodCall method_call( |
| 654 cryptohome::kCryptohomeInterface, | 678 cryptohome::kCryptohomeInterface, |
| 655 cryptohome::kCryptohomeTpmAttestationGetKeyPayload); | 679 cryptohome::kCryptohomeTpmAttestationGetKeyPayload); |
| 656 dbus::MessageWriter writer(&method_call); | 680 dbus::MessageWriter writer(&method_call); |
| 657 bool is_user_specific = (key_type == attestation::KEY_USER); | 681 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 658 writer.AppendBool(is_user_specific); | 682 writer.AppendBool(is_user_specific); |
| 659 writer.AppendString(user_id); | 683 writer.AppendString(cryptohome_id.id()); |
| 660 writer.AppendString(key_name); | 684 writer.AppendString(key_name); |
| 661 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 685 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 662 base::Bind(&CryptohomeClientImpl::OnDataMethod, | 686 base::Bind(&CryptohomeClientImpl::OnDataMethod, |
| 663 weak_ptr_factory_.GetWeakPtr(), | 687 weak_ptr_factory_.GetWeakPtr(), |
| 664 callback)); | 688 callback)); |
| 665 } | 689 } |
| 666 | 690 |
| 667 // CryptohomeClient override. | 691 // CryptohomeClient override. |
| 668 void TpmAttestationSetKeyPayload( | 692 void TpmAttestationSetKeyPayload( |
| 669 attestation::AttestationKeyType key_type, | 693 attestation::AttestationKeyType key_type, |
| 670 const std::string& user_id, | 694 const cryptohome::Identification& cryptohome_id, |
| 671 const std::string& key_name, | 695 const std::string& key_name, |
| 672 const std::string& payload, | 696 const std::string& payload, |
| 673 const BoolDBusMethodCallback& callback) override { | 697 const BoolDBusMethodCallback& callback) override { |
| 674 dbus::MethodCall method_call( | 698 dbus::MethodCall method_call( |
| 675 cryptohome::kCryptohomeInterface, | 699 cryptohome::kCryptohomeInterface, |
| 676 cryptohome::kCryptohomeTpmAttestationSetKeyPayload); | 700 cryptohome::kCryptohomeTpmAttestationSetKeyPayload); |
| 677 dbus::MessageWriter writer(&method_call); | 701 dbus::MessageWriter writer(&method_call); |
| 678 bool is_user_specific = (key_type == attestation::KEY_USER); | 702 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 679 writer.AppendBool(is_user_specific); | 703 writer.AppendBool(is_user_specific); |
| 680 writer.AppendString(user_id); | 704 writer.AppendString(cryptohome_id.id()); |
| 681 writer.AppendString(key_name); | 705 writer.AppendString(key_name); |
| 682 writer.AppendArrayOfBytes(reinterpret_cast<const uint8_t*>(payload.data()), | 706 writer.AppendArrayOfBytes(reinterpret_cast<const uint8_t*>(payload.data()), |
| 683 payload.size()); | 707 payload.size()); |
| 684 CallBoolMethod(&method_call, callback); | 708 CallBoolMethod(&method_call, callback); |
| 685 } | 709 } |
| 686 | 710 |
| 687 // CryptohomeClient override. | 711 // CryptohomeClient override. |
| 688 void TpmAttestationDeleteKeys( | 712 void TpmAttestationDeleteKeys( |
| 689 attestation::AttestationKeyType key_type, | 713 attestation::AttestationKeyType key_type, |
| 690 const std::string& user_id, | 714 const cryptohome::Identification& cryptohome_id, |
| 691 const std::string& key_prefix, | 715 const std::string& key_prefix, |
| 692 const BoolDBusMethodCallback& callback) override { | 716 const BoolDBusMethodCallback& callback) override { |
| 693 dbus::MethodCall method_call( | 717 dbus::MethodCall method_call( |
| 694 cryptohome::kCryptohomeInterface, | 718 cryptohome::kCryptohomeInterface, |
| 695 cryptohome::kCryptohomeTpmAttestationDeleteKeys); | 719 cryptohome::kCryptohomeTpmAttestationDeleteKeys); |
| 696 dbus::MessageWriter writer(&method_call); | 720 dbus::MessageWriter writer(&method_call); |
| 697 bool is_user_specific = (key_type == attestation::KEY_USER); | 721 bool is_user_specific = (key_type == attestation::KEY_USER); |
| 698 writer.AppendBool(is_user_specific); | 722 writer.AppendBool(is_user_specific); |
| 699 writer.AppendString(user_id); | 723 writer.AppendString(cryptohome_id.id()); |
| 700 writer.AppendString(key_prefix); | 724 writer.AppendString(key_prefix); |
| 701 CallBoolMethod(&method_call, callback); | 725 CallBoolMethod(&method_call, callback); |
| 702 } | 726 } |
| 703 | 727 |
| 704 void GetKeyDataEx(const cryptohome::AccountIdentifier& id, | 728 void GetKeyDataEx(const cryptohome::Identification& id, |
| 705 const cryptohome::AuthorizationRequest& auth, | 729 const cryptohome::AuthorizationRequest& auth, |
| 706 const cryptohome::GetKeyDataRequest& request, | 730 const cryptohome::GetKeyDataRequest& request, |
| 707 const ProtobufMethodCallback& callback) override { | 731 const ProtobufMethodCallback& callback) override { |
| 732 cryptohome::AccountIdentifier id_proto; |
| 733 FillIdentificationProtobuf(id, &id_proto); |
| 734 |
| 708 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 735 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 709 cryptohome::kCryptohomeGetKeyDataEx); | 736 cryptohome::kCryptohomeGetKeyDataEx); |
| 710 dbus::MessageWriter writer(&method_call); | 737 dbus::MessageWriter writer(&method_call); |
| 711 writer.AppendProtoAsArrayOfBytes(id); | 738 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 712 writer.AppendProtoAsArrayOfBytes(auth); | 739 writer.AppendProtoAsArrayOfBytes(auth); |
| 713 writer.AppendProtoAsArrayOfBytes(request); | 740 writer.AppendProtoAsArrayOfBytes(request); |
| 714 | 741 |
| 715 proxy_->CallMethod(&method_call, | 742 proxy_->CallMethod(&method_call, |
| 716 kTpmDBusTimeoutMs, | 743 kTpmDBusTimeoutMs, |
| 717 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 744 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 718 weak_ptr_factory_.GetWeakPtr(), | 745 weak_ptr_factory_.GetWeakPtr(), |
| 719 callback)); | 746 callback)); |
| 720 } | 747 } |
| 721 | 748 |
| 722 void CheckKeyEx(const cryptohome::AccountIdentifier& id, | 749 void CheckKeyEx(const cryptohome::Identification& id, |
| 723 const cryptohome::AuthorizationRequest& auth, | 750 const cryptohome::AuthorizationRequest& auth, |
| 724 const cryptohome::CheckKeyRequest& request, | 751 const cryptohome::CheckKeyRequest& request, |
| 725 const ProtobufMethodCallback& callback) override { | 752 const ProtobufMethodCallback& callback) override { |
| 726 const char* method_name = cryptohome::kCryptohomeCheckKeyEx; | 753 const char* method_name = cryptohome::kCryptohomeCheckKeyEx; |
| 727 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 754 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 728 method_name); | 755 method_name); |
| 729 | 756 |
| 757 cryptohome::AccountIdentifier id_proto; |
| 758 FillIdentificationProtobuf(id, &id_proto); |
| 759 |
| 730 dbus::MessageWriter writer(&method_call); | 760 dbus::MessageWriter writer(&method_call); |
| 731 writer.AppendProtoAsArrayOfBytes(id); | 761 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 732 writer.AppendProtoAsArrayOfBytes(auth); | 762 writer.AppendProtoAsArrayOfBytes(auth); |
| 733 writer.AppendProtoAsArrayOfBytes(request); | 763 writer.AppendProtoAsArrayOfBytes(request); |
| 734 | 764 |
| 735 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 765 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 736 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 766 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 737 weak_ptr_factory_.GetWeakPtr(), | 767 weak_ptr_factory_.GetWeakPtr(), |
| 738 callback)); | 768 callback)); |
| 739 } | 769 } |
| 740 | 770 |
| 741 void MountEx(const cryptohome::AccountIdentifier& id, | 771 void MountEx(const cryptohome::Identification& id, |
| 742 const cryptohome::AuthorizationRequest& auth, | 772 const cryptohome::AuthorizationRequest& auth, |
| 743 const cryptohome::MountRequest& request, | 773 const cryptohome::MountRequest& request, |
| 744 const ProtobufMethodCallback& callback) override { | 774 const ProtobufMethodCallback& callback) override { |
| 745 const char* method_name = cryptohome::kCryptohomeMountEx; | 775 const char* method_name = cryptohome::kCryptohomeMountEx; |
| 746 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 776 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 747 method_name); | 777 method_name); |
| 748 | 778 |
| 779 cryptohome::AccountIdentifier id_proto; |
| 780 FillIdentificationProtobuf(id, &id_proto); |
| 781 |
| 749 dbus::MessageWriter writer(&method_call); | 782 dbus::MessageWriter writer(&method_call); |
| 750 writer.AppendProtoAsArrayOfBytes(id); | 783 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 751 writer.AppendProtoAsArrayOfBytes(auth); | 784 writer.AppendProtoAsArrayOfBytes(auth); |
| 752 writer.AppendProtoAsArrayOfBytes(request); | 785 writer.AppendProtoAsArrayOfBytes(request); |
| 753 | 786 |
| 754 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , | 787 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs , |
| 755 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 788 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 756 weak_ptr_factory_.GetWeakPtr(), | 789 weak_ptr_factory_.GetWeakPtr(), |
| 757 callback)); | 790 callback)); |
| 758 } | 791 } |
| 759 | 792 |
| 760 void AddKeyEx(const cryptohome::AccountIdentifier& id, | 793 void AddKeyEx(const cryptohome::Identification& id, |
| 761 const cryptohome::AuthorizationRequest& auth, | 794 const cryptohome::AuthorizationRequest& auth, |
| 762 const cryptohome::AddKeyRequest& request, | 795 const cryptohome::AddKeyRequest& request, |
| 763 const ProtobufMethodCallback& callback) override { | 796 const ProtobufMethodCallback& callback) override { |
| 764 const char* method_name = cryptohome::kCryptohomeAddKeyEx; | 797 const char* method_name = cryptohome::kCryptohomeAddKeyEx; |
| 765 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 798 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 766 method_name); | 799 method_name); |
| 767 | 800 |
| 801 cryptohome::AccountIdentifier id_proto; |
| 802 FillIdentificationProtobuf(id, &id_proto); |
| 803 |
| 768 dbus::MessageWriter writer(&method_call); | 804 dbus::MessageWriter writer(&method_call); |
| 769 writer.AppendProtoAsArrayOfBytes(id); | 805 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 770 writer.AppendProtoAsArrayOfBytes(auth); | 806 writer.AppendProtoAsArrayOfBytes(auth); |
| 771 writer.AppendProtoAsArrayOfBytes(request); | 807 writer.AppendProtoAsArrayOfBytes(request); |
| 772 | 808 |
| 773 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs, | 809 proxy_->CallMethod(&method_call, kTpmDBusTimeoutMs, |
| 774 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 810 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 775 weak_ptr_factory_.GetWeakPtr(), | 811 weak_ptr_factory_.GetWeakPtr(), |
| 776 callback)); | 812 callback)); |
| 777 } | 813 } |
| 778 | 814 |
| 779 void UpdateKeyEx(const cryptohome::AccountIdentifier& id, | 815 void UpdateKeyEx(const cryptohome::Identification& id, |
| 780 const cryptohome::AuthorizationRequest& auth, | 816 const cryptohome::AuthorizationRequest& auth, |
| 781 const cryptohome::UpdateKeyRequest& request, | 817 const cryptohome::UpdateKeyRequest& request, |
| 782 const ProtobufMethodCallback& callback) override { | 818 const ProtobufMethodCallback& callback) override { |
| 783 const char* method_name = cryptohome::kCryptohomeUpdateKeyEx; | 819 const char* method_name = cryptohome::kCryptohomeUpdateKeyEx; |
| 784 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, | 820 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, |
| 785 method_name); | 821 method_name); |
| 786 | 822 |
| 823 cryptohome::AccountIdentifier id_proto; |
| 824 FillIdentificationProtobuf(id, &id_proto); |
| 825 |
| 787 dbus::MessageWriter writer(&method_call); | 826 dbus::MessageWriter writer(&method_call); |
| 788 writer.AppendProtoAsArrayOfBytes(id); | 827 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 789 writer.AppendProtoAsArrayOfBytes(auth); | 828 writer.AppendProtoAsArrayOfBytes(auth); |
| 790 writer.AppendProtoAsArrayOfBytes(request); | 829 writer.AppendProtoAsArrayOfBytes(request); |
| 791 | 830 |
| 792 proxy_->CallMethod(&method_call, | 831 proxy_->CallMethod(&method_call, |
| 793 kTpmDBusTimeoutMs , | 832 kTpmDBusTimeoutMs , |
| 794 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 833 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 795 weak_ptr_factory_.GetWeakPtr(), | 834 weak_ptr_factory_.GetWeakPtr(), |
| 796 callback)); | 835 callback)); |
| 797 } | 836 } |
| 798 | 837 |
| 799 void RemoveKeyEx(const cryptohome::AccountIdentifier& id, | 838 void RemoveKeyEx(const cryptohome::Identification& id, |
| 800 const cryptohome::AuthorizationRequest& auth, | 839 const cryptohome::AuthorizationRequest& auth, |
| 801 const cryptohome::RemoveKeyRequest& request, | 840 const cryptohome::RemoveKeyRequest& request, |
| 802 const ProtobufMethodCallback& callback) override { | 841 const ProtobufMethodCallback& callback) override { |
| 803 const char* method_name = cryptohome::kCryptohomeRemoveKeyEx; | 842 const char* method_name = cryptohome::kCryptohomeRemoveKeyEx; |
| 804 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name); | 843 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, method_name); |
| 805 | 844 |
| 845 cryptohome::AccountIdentifier id_proto; |
| 846 FillIdentificationProtobuf(id, &id_proto); |
| 847 |
| 806 dbus::MessageWriter writer(&method_call); | 848 dbus::MessageWriter writer(&method_call); |
| 807 writer.AppendProtoAsArrayOfBytes(id); | 849 writer.AppendProtoAsArrayOfBytes(id_proto); |
| 808 writer.AppendProtoAsArrayOfBytes(auth); | 850 writer.AppendProtoAsArrayOfBytes(auth); |
| 809 writer.AppendProtoAsArrayOfBytes(request); | 851 writer.AppendProtoAsArrayOfBytes(request); |
| 810 | 852 |
| 811 proxy_->CallMethod(&method_call, | 853 proxy_->CallMethod(&method_call, |
| 812 kTpmDBusTimeoutMs , | 854 kTpmDBusTimeoutMs , |
| 813 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, | 855 base::Bind(&CryptohomeClientImpl::OnBaseReplyMethod, |
| 814 weak_ptr_factory_.GetWeakPtr(), | 856 weak_ptr_factory_.GetWeakPtr(), |
| 815 callback)); | 857 callback)); |
| 816 } | 858 } |
| 817 | 859 |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1132 | 1174 |
| 1133 CryptohomeClient::~CryptohomeClient() {} | 1175 CryptohomeClient::~CryptohomeClient() {} |
| 1134 | 1176 |
| 1135 // static | 1177 // static |
| 1136 CryptohomeClient* CryptohomeClient::Create() { | 1178 CryptohomeClient* CryptohomeClient::Create() { |
| 1137 return new CryptohomeClientImpl(); | 1179 return new CryptohomeClientImpl(); |
| 1138 } | 1180 } |
| 1139 | 1181 |
| 1140 // static | 1182 // static |
| 1141 std::string CryptohomeClient::GetStubSanitizedUsername( | 1183 std::string CryptohomeClient::GetStubSanitizedUsername( |
| 1142 const std::string& username) { | 1184 const cryptohome::Identification& cryptohome_id) { |
| 1143 return username + kUserIdStubHashSuffix; | 1185 return cryptohome_id.id() + kUserIdStubHashSuffix; |
| 1144 } | 1186 } |
| 1145 | 1187 |
| 1146 } // namespace chromeos | 1188 } // namespace chromeos |
| OLD | NEW |