From 7422474c72b05517287fb0c226d1170cb11a064d Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Thu, 28 Mar 2013 11:05:19 -0700 Subject: [PATCH] Add ability to install credentials as other UID We need the ability to install from the system UID to wifi UID to explicitly bind WiFi credentials to the WiFi profile. This adds the ability for Wifi Settings to invoke installation of a PKCS12 file for the wifi UID. Bug: 8183258 Change-Id: I357c4387baf7e2f6fd6acc9046d9e6b52fdd4bb0 --- src/com/android/settings/CredentialStorage.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java index c737c7d0e9f..1444a73070e 100644 --- a/src/com/android/settings/CredentialStorage.java +++ b/src/com/android/settings/CredentialStorage.java @@ -197,12 +197,14 @@ public final class CredentialStorage extends Activity { Bundle bundle = mInstallBundle; mInstallBundle = null; + final int uid = bundle.getInt(Credentials.EXTRA_INSTALL_AS_UID, -1); + if (bundle.containsKey(Credentials.EXTRA_USER_PRIVATE_KEY_NAME)) { String key = bundle.getString(Credentials.EXTRA_USER_PRIVATE_KEY_NAME); byte[] value = bundle.getByteArray(Credentials.EXTRA_USER_PRIVATE_KEY_DATA); - if (!mKeyStore.importKey(key, value)) { - Log.e(TAG, "Failed to install " + key); + if (!mKeyStore.importKey(key, value, uid)) { + Log.e(TAG, "Failed to install " + key + " as user " + uid); return; } } @@ -211,8 +213,8 @@ public final class CredentialStorage extends Activity { String certName = bundle.getString(Credentials.EXTRA_USER_CERTIFICATE_NAME); byte[] certData = bundle.getByteArray(Credentials.EXTRA_USER_CERTIFICATE_DATA); - if (!mKeyStore.put(certName, certData)) { - Log.e(TAG, "Failed to install " + certName); + if (!mKeyStore.put(certName, certData, uid)) { + Log.e(TAG, "Failed to install " + certName + " as user " + uid); return; } } @@ -221,11 +223,10 @@ public final class CredentialStorage extends Activity { String caListName = bundle.getString(Credentials.EXTRA_CA_CERTIFICATES_NAME); byte[] caListData = bundle.getByteArray(Credentials.EXTRA_CA_CERTIFICATES_DATA); - if (!mKeyStore.put(caListName, caListData)) { - Log.e(TAG, "Failed to install " + caListName); + if (!mKeyStore.put(caListName, caListData, uid)) { + Log.e(TAG, "Failed to install " + caListName + " as user " + uid); return; } - } setResult(RESULT_OK);