summaryrefslogtreecommitdiffstats
path: root/chromeos/dbus/cryptohome_client.cc
diff options
context:
space:
mode:
authordkrahn@chromium.org <dkrahn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-21 19:57:24 +0000
committerdkrahn@chromium.org <dkrahn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-21 19:57:24 +0000
commit1260076a7a6991acfead415cc53e86c5e45c04be (patch)
treeb400f75810929de8bf32db228699d17f34e9e0cd /chromeos/dbus/cryptohome_client.cc
parent903a1f44903ea145b9698f26cac6fe0999fa7a6a (diff)
downloadchromium_src-1260076a7a6991acfead415cc53e86c5e45c04be.zip
chromium_src-1260076a7a6991acfead415cc53e86c5e45c04be.tar.gz
chromium_src-1260076a7a6991acfead415cc53e86c5e45c04be.tar.bz2
Added multi-profile support for attestation on chromeos.
All certified keys and certificates will be associated with the correct profile when multiple profiles are used. BUG=chromium:205206 TEST=unit, manual Review URL: https://codereview.chromium.org/27044004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229891 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/dbus/cryptohome_client.cc')
-rw-r--r--chromeos/dbus/cryptohome_client.cc40
1 files changed, 29 insertions, 11 deletions
diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc
index e862ffb..79a6561 100644
--- a/chromeos/dbus/cryptohome_client.cc
+++ b/chromeos/dbus/cryptohome_client.cc
@@ -464,7 +464,7 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void AsyncTpmAttestationCreateCertRequest(
attestation::AttestationCertificateProfile certificate_profile,
- const std::string& user_email,
+ const std::string& user_id,
const std::string& request_origin,
const AsyncMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
@@ -472,7 +472,7 @@ class CryptohomeClientImpl : public CryptohomeClient {
cryptohome::kCryptohomeAsyncTpmAttestationCreateCertRequestByProfile);
dbus::MessageWriter writer(&method_call);
writer.AppendInt32(certificate_profile);
- writer.AppendString(user_email);
+ writer.AppendString(user_id);
writer.AppendString(request_origin);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
@@ -484,17 +484,19 @@ class CryptohomeClientImpl : public CryptohomeClient {
virtual void AsyncTpmAttestationFinishCertRequest(
const std::string& pca_response,
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const AsyncMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequestOld);
+ cryptohome::kCryptohomeAsyncTpmAttestationFinishCertRequest);
dbus::MessageWriter writer(&method_call);
writer.AppendArrayOfBytes(
reinterpret_cast<const uint8*>(pca_response.data()),
pca_response.size());
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
@@ -505,14 +507,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationDoesKeyExist(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const BoolDBusMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationDoesKeyExistOld);
+ cryptohome::kCryptohomeTpmAttestationDoesKeyExist);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
CallBoolMethod(&method_call, callback);
}
@@ -520,14 +524,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationGetCertificate(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationGetCertificateOld);
+ cryptohome::kCryptohomeTpmAttestationGetCertificate);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnDataMethod,
@@ -538,14 +544,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationGetPublicKey(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationGetPublicKeyOld);
+ cryptohome::kCryptohomeTpmAttestationGetPublicKey);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnDataMethod,
@@ -556,14 +564,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationRegisterKey(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const AsyncMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationRegisterKeyOld);
+ cryptohome::kCryptohomeTpmAttestationRegisterKey);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
@@ -574,6 +584,7 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationSignEnterpriseChallenge(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const std::string& domain,
const std::string& device_id,
@@ -582,10 +593,11 @@ class CryptohomeClientImpl : public CryptohomeClient {
const AsyncMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallengeOld);
+ cryptohome::kCryptohomeTpmAttestationSignEnterpriseChallenge);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
writer.AppendString(domain);
writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(device_id.data()),
@@ -604,15 +616,17 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationSignSimpleChallenge(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const std::string& challenge,
const AsyncMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationSignSimpleChallengeOld);
+ cryptohome::kCryptohomeTpmAttestationSignSimpleChallenge);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(challenge.data()),
challenge.size());
@@ -625,14 +639,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationGetKeyPayload(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationGetKeyPayloadOld);
+ cryptohome::kCryptohomeTpmAttestationGetKeyPayload);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&CryptohomeClientImpl::OnDataMethod,
@@ -643,15 +659,17 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override.
virtual void TpmAttestationSetKeyPayload(
attestation::AttestationKeyType key_type,
+ const std::string& user_id,
const std::string& key_name,
const std::string& payload,
const BoolDBusMethodCallback& callback) OVERRIDE {
dbus::MethodCall method_call(
cryptohome::kCryptohomeInterface,
- cryptohome::kCryptohomeTpmAttestationSetKeyPayloadOld);
+ cryptohome::kCryptohomeTpmAttestationSetKeyPayload);
dbus::MessageWriter writer(&method_call);
bool is_user_specific = (key_type == attestation::KEY_USER);
writer.AppendBool(is_user_specific);
+ writer.AppendString(user_id);
writer.AppendString(key_name);
writer.AppendArrayOfBytes(reinterpret_cast<const uint8*>(payload.data()),
payload.size());