am 72d66afe: am 12742ab5: Merge "Deprecate KeyChain.isBoundKeyAlgorithm." into mnc-dev

* commit '72d66afef2c8fccd5669e5ee0671dfea48d7a921':
  Deprecate KeyChain.isBoundKeyAlgorithm.
This commit is contained in:
Alex Klyubin
2015-06-09 01:15:11 +00:00
committed by Android Git Automerger
4 changed files with 18 additions and 3 deletions

View File

@@ -28395,7 +28395,7 @@ package android.security {
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;
method public static boolean isBoundKeyAlgorithm(java.lang.String); method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
method public static boolean isKeyAlgorithmSupported(java.lang.String); method public static boolean isKeyAlgorithmSupported(java.lang.String);
field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED"; field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
field public static final java.lang.String EXTRA_CERTIFICATE = "CERT"; field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";

View File

@@ -30428,7 +30428,7 @@ package android.security {
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;
method public static boolean isBoundKeyAlgorithm(java.lang.String); method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
method public static boolean isKeyAlgorithmSupported(java.lang.String); method public static boolean isKeyAlgorithmSupported(java.lang.String);
field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED"; field public static final java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
field public static final java.lang.String EXTRA_CERTIFICATE = "CERT"; field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";

View File

@@ -29,11 +29,13 @@ import android.os.Looper;
import android.os.Process; import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.UserHandle; import android.os.UserHandle;
import android.security.keystore.KeyInfo;
import android.security.keystore.KeyProperties; import android.security.keystore.KeyProperties;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.Closeable; import java.io.Closeable;
import java.security.InvalidKeyException; import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.Principal; import java.security.Principal;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.security.cert.Certificate; import java.security.cert.Certificate;
@@ -442,7 +444,20 @@ public final class KeyChain {
* imported or generated. This can be used to tell if there is special * imported or generated. This can be used to tell if there is special
* hardware support that can be used to bind keys to the device in a way * hardware support that can be used to bind keys to the device in a way
* that makes it non-exportable. * that makes it non-exportable.
*
* @deprecated Whether the key is bound to the secure hardware is known only
* once the key has been imported. To find out, use:
* <pre>{@code
* PrivateKey key = ...; // private key from KeyChain
*
* KeyFactory keyFactory =
* KeyFactory.getInstance(key.getAlgorithm(), "AndroidKeyStore");
* KeyInfo keyInfo = keyFactory.getKeySpec(key, KeyInfo.class);
* if (keyInfo.isInsideSecureHardware()) &#123;
* // The key is bound to the secure hardware of this Android
* &#125;}</pre>
*/ */
@Deprecated
public static boolean isBoundKeyAlgorithm( public static boolean isBoundKeyAlgorithm(
@NonNull @KeyProperties.KeyAlgorithmEnum String algorithm) { @NonNull @KeyProperties.KeyAlgorithmEnum String algorithm) {
if (!isKeyAlgorithmSupported(algorithm)) { if (!isKeyAlgorithmSupported(algorithm)) {

View File

@@ -383,7 +383,7 @@ public class KeyStore {
} }
} }
// TODO remove this when it's removed from Settings // TODO: remove this when it's removed from Settings
public boolean isHardwareBacked() { public boolean isHardwareBacked() {
return isHardwareBacked("RSA"); return isHardwareBacked("RSA");
} }