am f8bb8595: am 39087b1c: Replace String host:port/url args with Uri arg

* commit 'f8bb8595f8c653e3e9b693f9d6c35bc4f5be6cd6':
  Replace String host:port/url args with Uri arg
This commit is contained in:
Robin Lee
2015-05-14 06:51:55 +00:00
committed by Android Git Automerger
6 changed files with 28 additions and 50 deletions

View File

@@ -5633,7 +5633,7 @@ package android.app.admin {
ctor public DeviceAdminReceiver(); ctor public DeviceAdminReceiver();
method public android.app.admin.DevicePolicyManager getManager(android.content.Context); method public android.app.admin.DevicePolicyManager getManager(android.content.Context);
method public android.content.ComponentName getWho(android.content.Context); method public android.content.ComponentName getWho(android.content.Context);
method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, java.lang.String, int, java.lang.String, java.lang.String); method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, java.lang.String);
method public java.lang.CharSequence onDisableRequested(android.content.Context, android.content.Intent); method public java.lang.CharSequence onDisableRequested(android.content.Context, android.content.Intent);
method public void onDisabled(android.content.Context, android.content.Intent); method public void onDisabled(android.content.Context, android.content.Intent);
method public void onEnabled(android.content.Context, android.content.Intent); method public void onEnabled(android.content.Context, android.content.Intent);
@@ -28337,7 +28337,7 @@ package android.security {
public final class KeyChain { public final class KeyChain {
ctor public KeyChain(); ctor public KeyChain();
method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String);
method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String, java.lang.String); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], android.net.Uri, java.lang.String);
method public static android.content.Intent createInstallIntent(); method public static android.content.Intent createInstallIntent();
method public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException; method public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException; method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;

View File

@@ -5731,7 +5731,7 @@ package android.app.admin {
ctor public DeviceAdminReceiver(); ctor public DeviceAdminReceiver();
method public android.app.admin.DevicePolicyManager getManager(android.content.Context); method public android.app.admin.DevicePolicyManager getManager(android.content.Context);
method public android.content.ComponentName getWho(android.content.Context); method public android.content.ComponentName getWho(android.content.Context);
method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, java.lang.String, int, java.lang.String, java.lang.String); method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, java.lang.String);
method public java.lang.CharSequence onDisableRequested(android.content.Context, android.content.Intent); method public java.lang.CharSequence onDisableRequested(android.content.Context, android.content.Intent);
method public void onDisabled(android.content.Context, android.content.Intent); method public void onDisabled(android.content.Context, android.content.Intent);
method public void onEnabled(android.content.Context, android.content.Intent); method public void onEnabled(android.content.Context, android.content.Intent);
@@ -30365,7 +30365,7 @@ package android.security {
public final class KeyChain { public final class KeyChain {
ctor public KeyChain(); ctor public KeyChain();
method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String);
method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String, java.lang.String); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], android.net.Uri, java.lang.String);
method public static android.content.Intent createInstallIntent(); method public static android.content.Intent createInstallIntent();
method public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException; method public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException; method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;

View File

@@ -24,6 +24,7 @@ import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.security.KeyChain; import android.security.KeyChain;
@@ -249,13 +250,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver {
public static final String EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID = "android.app.extra.CHOOSE_PRIVATE_KEY_SENDER_UID"; public static final String EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID = "android.app.extra.CHOOSE_PRIVATE_KEY_SENDER_UID";
/** @hide */ /** @hide */
public static final String EXTRA_CHOOSE_PRIVATE_KEY_HOST = "android.app.extra.CHOOSE_PRIVATE_KEY_HOST"; public static final String EXTRA_CHOOSE_PRIVATE_KEY_URI = "android.app.extra.CHOOSE_PRIVATE_KEY_URI";
/** @hide */
public static final String EXTRA_CHOOSE_PRIVATE_KEY_PORT = "android.app.extra.CHOOSE_PRIVATE_KEY_PORT";
/** @hide */
public static final String EXTRA_CHOOSE_PRIVATE_KEY_URL = "android.app.extra.CHOOSE_PRIVATE_KEY_URL";
/** @hide */ /** @hide */
public static final String EXTRA_CHOOSE_PRIVATE_KEY_ALIAS = "android.app.extra.CHOOSE_PRIVATE_KEY_ALIAS"; public static final String EXTRA_CHOOSE_PRIVATE_KEY_ALIAS = "android.app.extra.CHOOSE_PRIVATE_KEY_ALIAS";
@@ -487,15 +482,13 @@ public class DeviceAdminReceiver extends BroadcastReceiver {
* @param context The running context as per {@link #onReceive}. * @param context The running context as per {@link #onReceive}.
* @param intent The received intent as per {@link #onReceive}. * @param intent The received intent as per {@link #onReceive}.
* @param uid The uid asking for the private key and certificate pair. * @param uid The uid asking for the private key and certificate pair.
* @param host The authentication host, may be null. * @param uri The URI to authenticate, may be null.
* @param port The authentication port, or -1.
* @param url The URL to authenticate, may be null.
* @param alias The alias preselected by the client, or null. * @param alias The alias preselected by the client, or null.
* @return The private key alias to return and grant access to. * @return The private key alias to return and grant access to.
* @see KeyChain#choosePrivateKeyAlias * @see KeyChain#choosePrivateKeyAlias
*/ */
public String onChoosePrivateKeyAlias(Context context, Intent intent, int uid, String host, public String onChoosePrivateKeyAlias(Context context, Intent intent, int uid, Uri uri,
int port, String url, String alias) { String alias) {
return null; return null;
} }
@@ -546,12 +539,9 @@ public class DeviceAdminReceiver extends BroadcastReceiver {
onProfileProvisioningComplete(context, intent); onProfileProvisioningComplete(context, intent);
} else if (ACTION_CHOOSE_PRIVATE_KEY_ALIAS.equals(action)) { } else if (ACTION_CHOOSE_PRIVATE_KEY_ALIAS.equals(action)) {
int uid = intent.getIntExtra(EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, -1); int uid = intent.getIntExtra(EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, -1);
String host = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_HOST); Uri uri = intent.getParcelableExtra(EXTRA_CHOOSE_PRIVATE_KEY_URI);
int port = intent.getIntExtra(EXTRA_CHOOSE_PRIVATE_KEY_PORT, -1);
String url = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_URL);
String alias = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_ALIAS); String alias = intent.getStringExtra(EXTRA_CHOOSE_PRIVATE_KEY_ALIAS);
String chosenAlias = onChoosePrivateKeyAlias(context, intent, uid, host, port, url, String chosenAlias = onChoosePrivateKeyAlias(context, intent, uid, uri, alias);
alias);
setResultData(chosenAlias); setResultData(chosenAlias);
} else if (ACTION_LOCK_TASK_ENTERING.equals(action)) { } else if (ACTION_LOCK_TASK_ENTERING.equals(action)) {
String pkg = intent.getStringExtra(EXTRA_LOCK_TASK_PACKAGE); String pkg = intent.getStringExtra(EXTRA_LOCK_TASK_PACKAGE);

View File

@@ -23,6 +23,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.ProxyInfo; import android.net.ProxyInfo;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.os.RemoteCallback; import android.os.RemoteCallback;
@@ -131,7 +132,7 @@ interface IDevicePolicyManager {
void enforceCanManageCaCerts(in ComponentName admin); void enforceCanManageCaCerts(in ComponentName admin);
boolean installKeyPair(in ComponentName who, in byte[] privKeyBuffer, in byte[] certBuffer, String alias); boolean installKeyPair(in ComponentName who, in byte[] privKeyBuffer, in byte[] certBuffer, String alias);
void choosePrivateKeyAlias(int uid, in String host, int port, in String url, in String alias, IBinder aliasCallback); void choosePrivateKeyAlias(int uid, in Uri uri, in String alias, IBinder aliasCallback);
void setCertInstallerPackage(in ComponentName who, String installerPackage); void setCertInstallerPackage(in ComponentName who, String installerPackage);
String getCertInstallerPackage(in ComponentName who); String getCertInstallerPackage(in ComponentName who);

View File

@@ -23,6 +23,7 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.ServiceConnection; import android.content.ServiceConnection;
import android.net.Uri;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.Process; import android.os.Process;
@@ -119,19 +120,7 @@ public final class KeyChain {
* Extra for use with {@link #ACTION_CHOOSER} * Extra for use with {@link #ACTION_CHOOSER}
* @hide Also used by KeyChainActivity implementation * @hide Also used by KeyChainActivity implementation
*/ */
public static final String EXTRA_HOST = "host"; public static final String EXTRA_URI = "uri";
/**
* Extra for use with {@link #ACTION_CHOOSER}
* @hide Also used by KeyChainActivity implementation
*/
public static final String EXTRA_PORT = "port";
/**
* Extra for use with {@link #ACTION_CHOOSER}
* @hide Also used by KeyChainActivity implementation
*/
public static final String EXTRA_URL = "url";
/** /**
* Extra for use with {@link #ACTION_CHOOSER} * Extra for use with {@link #ACTION_CHOOSER}
@@ -270,7 +259,13 @@ public final class KeyChain {
@NonNull KeyChainAliasCallback response, @NonNull KeyChainAliasCallback response,
@KeyProperties.KeyAlgorithmEnum String[] keyTypes, Principal[] issuers, @KeyProperties.KeyAlgorithmEnum String[] keyTypes, Principal[] issuers,
@Nullable String host, int port, @Nullable String alias) { @Nullable String host, int port, @Nullable String alias) {
choosePrivateKeyAlias(activity, response, keyTypes, issuers, host, port, null, alias); Uri uri = null;
if (host != null) {
uri = new Uri.Builder()
.authority(host + (port != -1 ? ":" + port : ""))
.build();
}
choosePrivateKeyAlias(activity, response, keyTypes, issuers, uri, alias);
} }
/** /**
@@ -303,11 +298,7 @@ public final class KeyChain {
* "EC" or "RSA", or a null array. * "EC" or "RSA", or a null array.
* @param issuers The acceptable certificate issuers for the * @param issuers The acceptable certificate issuers for the
* certificate matching the private key, or null. * certificate matching the private key, or null.
* @param host The host name of the server requesting the * @param uri The full URI the server is requesting the certificate
* certificate, or null if unavailable.
* @param port The port number of the server requesting the
* certificate, or -1 if unavailable.
* @param url The full url the server is requesting the certificate
* for, or null if unavailable. * for, or null if unavailable.
* @param alias The alias to preselect if available, or null if * @param alias The alias to preselect if available, or null if
* unavailable. * unavailable.
@@ -315,7 +306,7 @@ public final class KeyChain {
public static void choosePrivateKeyAlias(@NonNull Activity activity, public static void choosePrivateKeyAlias(@NonNull Activity activity,
@NonNull KeyChainAliasCallback response, @NonNull KeyChainAliasCallback response,
@KeyProperties.KeyAlgorithmEnum String[] keyTypes, Principal[] issuers, @KeyProperties.KeyAlgorithmEnum String[] keyTypes, Principal[] issuers,
@Nullable String host, int port, @Nullable String url, @Nullable String alias) { @Nullable Uri uri, @Nullable String alias) {
/* /*
* TODO currently keyTypes, issuers are unused. They are meant * TODO currently keyTypes, issuers are unused. They are meant
* to follow the semantics and purpose of X509KeyManager * to follow the semantics and purpose of X509KeyManager
@@ -341,9 +332,7 @@ public final class KeyChain {
Intent intent = new Intent(ACTION_CHOOSER); Intent intent = new Intent(ACTION_CHOOSER);
intent.setPackage(KEYCHAIN_PACKAGE); intent.setPackage(KEYCHAIN_PACKAGE);
intent.putExtra(EXTRA_RESPONSE, new AliasResponse(response)); intent.putExtra(EXTRA_RESPONSE, new AliasResponse(response));
intent.putExtra(EXTRA_HOST, host); intent.putExtra(EXTRA_URI, uri);
intent.putExtra(EXTRA_PORT, port);
intent.putExtra(EXTRA_URL, url);
intent.putExtra(EXTRA_ALIAS, alias); intent.putExtra(EXTRA_ALIAS, alias);
// the PendingIntent is used to get calling package name // the PendingIntent is used to get calling package name
intent.putExtra(EXTRA_SENDER, PendingIntent.getActivity(activity, 0, new Intent(), 0)); intent.putExtra(EXTRA_SENDER, PendingIntent.getActivity(activity, 0, new Intent(), 0));

View File

@@ -3198,8 +3198,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
} }
@Override @Override
public void choosePrivateKeyAlias(final int uid, final String host, int port, final String url, public void choosePrivateKeyAlias(final int uid, final Uri uri, final String alias,
final String alias, final IBinder response) { final IBinder response) {
// Caller UID needs to be trusted, so we restrict this method to SYSTEM_UID callers. // Caller UID needs to be trusted, so we restrict this method to SYSTEM_UID callers.
if (UserHandle.getAppId(Binder.getCallingUid()) != Process.SYSTEM_UID) { if (UserHandle.getAppId(Binder.getCallingUid()) != Process.SYSTEM_UID) {
return; return;
@@ -3216,9 +3216,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
Intent intent = new Intent(DeviceAdminReceiver.ACTION_CHOOSE_PRIVATE_KEY_ALIAS); Intent intent = new Intent(DeviceAdminReceiver.ACTION_CHOOSE_PRIVATE_KEY_ALIAS);
intent.setComponent(profileOwner); intent.setComponent(profileOwner);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, uid); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, uid);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_HOST, host); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_URI, uri);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_PORT, port);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_URL, url);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_ALIAS, alias); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_ALIAS, alias);
intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_RESPONSE, response); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_RESPONSE, response);