* commit 'f8bb8595f8c653e3e9b693f9d6c35bc4f5be6cd6': Replace String host:port/url args with Uri arg
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user