Unhide the new AndroidKeyStore API.

Bug: 18088752
Change-Id: I93f87cbb1cd04a4a2e34f3d544d678c92cf052ee
This commit is contained in:
Alex Klyubin
2015-04-13 11:12:57 -07:00
parent fbf1472d61
commit 9b3e005a4e
15 changed files with 414 additions and 136 deletions

View File

@@ -28040,6 +28040,43 @@ package android.sax {
package android.security {
public class CryptoOperationException extends java.lang.RuntimeException {
ctor public CryptoOperationException();
ctor public CryptoOperationException(java.lang.String);
ctor public CryptoOperationException(java.lang.String, java.lang.Throwable);
ctor public CryptoOperationException(java.lang.Throwable);
}
public class EcIesParameterSpec implements java.security.spec.AlgorithmParameterSpec {
method public int getDemCipherKeySize();
method public java.lang.String getDemCipherTransformation();
method public java.lang.String getDemMacAlgorithm();
method public int getDemMacKeySize();
method public java.lang.String getKemKdfAlgorithm();
method public int getKemPointFormat();
field public static final android.security.EcIesParameterSpec DEFAULT;
}
public static class EcIesParameterSpec.Builder {
ctor public EcIesParameterSpec.Builder();
method public android.security.EcIesParameterSpec build();
method public android.security.EcIesParameterSpec.Builder setDemCipherKeySize(int);
method public android.security.EcIesParameterSpec.Builder setDemCipherTransformation(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setDemMacAlgorithm(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setDemMacKeySize(int);
method public android.security.EcIesParameterSpec.Builder setKemKdfAlgorithm(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setKemPointFormat(int);
}
public static abstract class EcIesParameterSpec.PointFormat {
field public static final int COMPRESSED = 1; // 0x1
field public static final int UNCOMPRESSED = 0; // 0x0
field public static final int UNSPECIFIED = -1; // 0xffffffff
}
public static abstract class EcIesParameterSpec.PointFormatEnum implements java.lang.annotation.Annotation {
}
public final class 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);
@@ -28066,17 +28103,77 @@ package android.security {
ctor public KeyChainException(java.lang.Throwable);
}
public class KeyExpiredException extends android.security.CryptoOperationException {
ctor public KeyExpiredException();
ctor public KeyExpiredException(java.lang.String);
ctor public KeyExpiredException(java.lang.String, java.lang.Throwable);
}
public class KeyGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
method public java.lang.String[] getBlockModes();
method public android.content.Context getContext();
method public java.lang.String[] getEncryptionPaddings();
method public int getKeySize();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getPurposes();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static class KeyGeneratorSpec.Builder {
ctor public KeyGeneratorSpec.Builder(android.content.Context);
method public android.security.KeyGeneratorSpec build();
method public android.security.KeyGeneratorSpec.Builder setAlias(java.lang.String);
method public android.security.KeyGeneratorSpec.Builder setBlockModes(java.lang.String...);
method public android.security.KeyGeneratorSpec.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyGeneratorSpec.Builder setEncryptionRequired(boolean);
method public android.security.KeyGeneratorSpec.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyGeneratorSpec.Builder setKeySize(int);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setPurposes(int);
method public android.security.KeyGeneratorSpec.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyGeneratorSpec.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyGeneratorSpec.Builder setUserAuthenticators(int);
}
public class KeyNotYetValidException extends android.security.CryptoOperationException {
ctor public KeyNotYetValidException();
ctor public KeyNotYetValidException(java.lang.String);
ctor public KeyNotYetValidException(java.lang.String, java.lang.Throwable);
}
public final class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
method public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
method public java.lang.String[] getBlockModes();
method public android.content.Context getContext();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public java.util.Date getEndDate();
method public int getKeySize();
method public java.lang.String getKeyType();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getPurposes();
method public java.math.BigInteger getSerialNumber();
method public java.lang.String[] getSignaturePaddings();
method public java.util.Date getStartDate();
method public javax.security.auth.x500.X500Principal getSubjectDN();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static final class KeyPairGeneratorSpec.Builder {
@@ -28084,23 +28181,110 @@ package android.security {
method public android.security.KeyPairGeneratorSpec build();
method public android.security.KeyPairGeneratorSpec.Builder setAlgorithmParameterSpec(java.security.spec.AlgorithmParameterSpec);
method public android.security.KeyPairGeneratorSpec.Builder setAlias(java.lang.String);
method public android.security.KeyPairGeneratorSpec.Builder setBlockModes(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setDigests(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired();
method public android.security.KeyPairGeneratorSpec.Builder setEndDate(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyPairGeneratorSpec.Builder setKeySize(int);
method public android.security.KeyPairGeneratorSpec.Builder setKeyType(java.lang.String) throws java.security.NoSuchAlgorithmException;
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setPurposes(int);
method public android.security.KeyPairGeneratorSpec.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger);
method public android.security.KeyPairGeneratorSpec.Builder setSignaturePaddings(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setStartDate(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal);
method public android.security.KeyPairGeneratorSpec.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyPairGeneratorSpec.Builder setUserAuthenticators(int);
}
public abstract class KeyStoreKeyProperties {
}
public static abstract class KeyStoreKeyProperties.Origin {
field public static final int GENERATED = 1; // 0x1
field public static final int IMPORTED = 2; // 0x2
}
public static abstract class KeyStoreKeyProperties.OriginEnum implements java.lang.annotation.Annotation {
}
public static abstract class KeyStoreKeyProperties.Purpose {
field public static final int DECRYPT = 2; // 0x2
field public static final int ENCRYPT = 1; // 0x1
field public static final int SIGN = 4; // 0x4
field public static final int VERIFY = 8; // 0x8
}
public static abstract class KeyStoreKeyProperties.PurposeEnum implements java.lang.annotation.Annotation {
}
public static abstract class KeyStoreKeyProperties.UserAuthenticator {
field public static final int FINGERPRINT_READER = 2; // 0x2
field public static final int LOCK_SCREEN = 1; // 0x1
}
public static abstract class KeyStoreKeyProperties.UserAuthenticatorEnum implements java.lang.annotation.Annotation {
}
public class KeyStoreKeySpec implements java.security.spec.KeySpec {
method public java.lang.String[] getBlockModes();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public int getKeySize();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getOrigin();
method public int getPurposes();
method public java.lang.String[] getSignaturePaddings();
method public int getTeeEnforcedUserAuthenticators();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isTeeBacked();
}
public final class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter {
method public java.lang.String[] getBlockModes();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public int getPurposes();
method public java.lang.String[] getSignaturePaddings();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isDigestsSpecified();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static final class KeyStoreParameter.Builder {
ctor public KeyStoreParameter.Builder(android.content.Context);
method public android.security.KeyStoreParameter build();
method public android.security.KeyStoreParameter.Builder setBlockModes(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setDigests(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean);
method public android.security.KeyStoreParameter.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyStoreParameter.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyStoreParameter.Builder setPurposes(int);
method public android.security.KeyStoreParameter.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyStoreParameter.Builder setSignaturePaddings(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyStoreParameter.Builder setUserAuthenticators(int);
}
public class NetworkSecurityPolicy {
@@ -28108,6 +28292,17 @@ package android.security {
method public boolean isCleartextTrafficPermitted();
}
public class NewFingerprintEnrolledException extends android.security.CryptoOperationException {
ctor public NewFingerprintEnrolledException();
ctor public NewFingerprintEnrolledException(java.lang.String);
}
public class UserNotAuthenticatedException extends android.security.CryptoOperationException {
ctor public UserNotAuthenticatedException();
ctor public UserNotAuthenticatedException(java.lang.String);
ctor public UserNotAuthenticatedException(java.lang.String, java.lang.Throwable);
}
}
package android.service.carrier {

View File

@@ -30040,6 +30040,43 @@ package android.sax {
package android.security {
public class CryptoOperationException extends java.lang.RuntimeException {
ctor public CryptoOperationException();
ctor public CryptoOperationException(java.lang.String);
ctor public CryptoOperationException(java.lang.String, java.lang.Throwable);
ctor public CryptoOperationException(java.lang.Throwable);
}
public class EcIesParameterSpec implements java.security.spec.AlgorithmParameterSpec {
method public int getDemCipherKeySize();
method public java.lang.String getDemCipherTransformation();
method public java.lang.String getDemMacAlgorithm();
method public int getDemMacKeySize();
method public java.lang.String getKemKdfAlgorithm();
method public int getKemPointFormat();
field public static final android.security.EcIesParameterSpec DEFAULT;
}
public static class EcIesParameterSpec.Builder {
ctor public EcIesParameterSpec.Builder();
method public android.security.EcIesParameterSpec build();
method public android.security.EcIesParameterSpec.Builder setDemCipherKeySize(int);
method public android.security.EcIesParameterSpec.Builder setDemCipherTransformation(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setDemMacAlgorithm(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setDemMacKeySize(int);
method public android.security.EcIesParameterSpec.Builder setKemKdfAlgorithm(java.lang.String);
method public android.security.EcIesParameterSpec.Builder setKemPointFormat(int);
}
public static abstract class EcIesParameterSpec.PointFormat {
field public static final int COMPRESSED = 1; // 0x1
field public static final int UNCOMPRESSED = 0; // 0x0
field public static final int UNSPECIFIED = -1; // 0xffffffff
}
public static abstract class EcIesParameterSpec.PointFormatEnum implements java.lang.annotation.Annotation {
}
public final class 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);
@@ -30066,17 +30103,77 @@ package android.security {
ctor public KeyChainException(java.lang.Throwable);
}
public class KeyExpiredException extends android.security.CryptoOperationException {
ctor public KeyExpiredException();
ctor public KeyExpiredException(java.lang.String);
ctor public KeyExpiredException(java.lang.String, java.lang.Throwable);
}
public class KeyGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
method public java.lang.String[] getBlockModes();
method public android.content.Context getContext();
method public java.lang.String[] getEncryptionPaddings();
method public int getKeySize();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getPurposes();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static class KeyGeneratorSpec.Builder {
ctor public KeyGeneratorSpec.Builder(android.content.Context);
method public android.security.KeyGeneratorSpec build();
method public android.security.KeyGeneratorSpec.Builder setAlias(java.lang.String);
method public android.security.KeyGeneratorSpec.Builder setBlockModes(java.lang.String...);
method public android.security.KeyGeneratorSpec.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyGeneratorSpec.Builder setEncryptionRequired(boolean);
method public android.security.KeyGeneratorSpec.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyGeneratorSpec.Builder setKeySize(int);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyGeneratorSpec.Builder setPurposes(int);
method public android.security.KeyGeneratorSpec.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyGeneratorSpec.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyGeneratorSpec.Builder setUserAuthenticators(int);
}
public class KeyNotYetValidException extends android.security.CryptoOperationException {
ctor public KeyNotYetValidException();
ctor public KeyNotYetValidException(java.lang.String);
ctor public KeyNotYetValidException(java.lang.String, java.lang.Throwable);
}
public final class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
method public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
method public java.lang.String[] getBlockModes();
method public android.content.Context getContext();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public java.util.Date getEndDate();
method public int getKeySize();
method public java.lang.String getKeyType();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getPurposes();
method public java.math.BigInteger getSerialNumber();
method public java.lang.String[] getSignaturePaddings();
method public java.util.Date getStartDate();
method public javax.security.auth.x500.X500Principal getSubjectDN();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static final class KeyPairGeneratorSpec.Builder {
@@ -30084,23 +30181,110 @@ package android.security {
method public android.security.KeyPairGeneratorSpec build();
method public android.security.KeyPairGeneratorSpec.Builder setAlgorithmParameterSpec(java.security.spec.AlgorithmParameterSpec);
method public android.security.KeyPairGeneratorSpec.Builder setAlias(java.lang.String);
method public android.security.KeyPairGeneratorSpec.Builder setBlockModes(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setDigests(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired();
method public android.security.KeyPairGeneratorSpec.Builder setEndDate(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyPairGeneratorSpec.Builder setKeySize(int);
method public android.security.KeyPairGeneratorSpec.Builder setKeyType(java.lang.String) throws java.security.NoSuchAlgorithmException;
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setPurposes(int);
method public android.security.KeyPairGeneratorSpec.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger);
method public android.security.KeyPairGeneratorSpec.Builder setSignaturePaddings(java.lang.String...);
method public android.security.KeyPairGeneratorSpec.Builder setStartDate(java.util.Date);
method public android.security.KeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal);
method public android.security.KeyPairGeneratorSpec.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyPairGeneratorSpec.Builder setUserAuthenticators(int);
}
public abstract class KeyStoreKeyProperties {
}
public static abstract class KeyStoreKeyProperties.Origin {
field public static final int GENERATED = 1; // 0x1
field public static final int IMPORTED = 2; // 0x2
}
public static abstract class KeyStoreKeyProperties.OriginEnum implements java.lang.annotation.Annotation {
}
public static abstract class KeyStoreKeyProperties.Purpose {
field public static final int DECRYPT = 2; // 0x2
field public static final int ENCRYPT = 1; // 0x1
field public static final int SIGN = 4; // 0x4
field public static final int VERIFY = 8; // 0x8
}
public static abstract class KeyStoreKeyProperties.PurposeEnum implements java.lang.annotation.Annotation {
}
public static abstract class KeyStoreKeyProperties.UserAuthenticator {
field public static final int FINGERPRINT_READER = 2; // 0x2
field public static final int LOCK_SCREEN = 1; // 0x1
}
public static abstract class KeyStoreKeyProperties.UserAuthenticatorEnum implements java.lang.annotation.Annotation {
}
public class KeyStoreKeySpec implements java.security.spec.KeySpec {
method public java.lang.String[] getBlockModes();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public int getKeySize();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public java.lang.String getKeystoreAlias();
method public int getOrigin();
method public int getPurposes();
method public java.lang.String[] getSignaturePaddings();
method public int getTeeEnforcedUserAuthenticators();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isTeeBacked();
}
public final class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter {
method public java.lang.String[] getBlockModes();
method public java.lang.String[] getDigests();
method public java.lang.String[] getEncryptionPaddings();
method public java.util.Date getKeyValidityForConsumptionEnd();
method public java.util.Date getKeyValidityForOriginationEnd();
method public java.util.Date getKeyValidityStart();
method public int getPurposes();
method public java.lang.String[] getSignaturePaddings();
method public int getUserAuthenticationValidityDurationSeconds();
method public int getUserAuthenticators();
method public boolean isDigestsSpecified();
method public boolean isEncryptionRequired();
method public boolean isInvalidatedOnNewFingerprintEnrolled();
method public boolean isRandomizedEncryptionRequired();
}
public static final class KeyStoreParameter.Builder {
ctor public KeyStoreParameter.Builder(android.content.Context);
method public android.security.KeyStoreParameter build();
method public android.security.KeyStoreParameter.Builder setBlockModes(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setDigests(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setEncryptionPaddings(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean);
method public android.security.KeyStoreParameter.Builder setInvalidatedOnNewFingerprintEnrolled(boolean);
method public android.security.KeyStoreParameter.Builder setKeyValidityEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityForConsumptionEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityForOriginationEnd(java.util.Date);
method public android.security.KeyStoreParameter.Builder setKeyValidityStart(java.util.Date);
method public android.security.KeyStoreParameter.Builder setPurposes(int);
method public android.security.KeyStoreParameter.Builder setRandomizedEncryptionRequired(boolean);
method public android.security.KeyStoreParameter.Builder setSignaturePaddings(java.lang.String...);
method public android.security.KeyStoreParameter.Builder setUserAuthenticationValidityDurationSeconds(int);
method public android.security.KeyStoreParameter.Builder setUserAuthenticators(int);
}
public class NetworkSecurityPolicy {
@@ -30108,6 +30292,17 @@ package android.security {
method public boolean isCleartextTrafficPermitted();
}
public class NewFingerprintEnrolledException extends android.security.CryptoOperationException {
ctor public NewFingerprintEnrolledException();
ctor public NewFingerprintEnrolledException(java.lang.String);
}
public class UserNotAuthenticatedException extends android.security.CryptoOperationException {
ctor public UserNotAuthenticatedException();
ctor public UserNotAuthenticatedException(java.lang.String);
ctor public UserNotAuthenticatedException(java.lang.String, java.lang.Throwable);
}
}
package android.service.carrier {

View File

@@ -26,11 +26,10 @@ page.title=Android Keystore System
</div>
</div>
<p>The Android Keystore system lets you store private keys
in a container to make it more difficult to extract from the
device. Once keys are in the keystore, they can be used for
cryptographic operations with the private key material remaining
non-exportable.</p>
<p>The Android Keystore system lets you store cryptographic keys in a container
to make it more difficult to extract from the device. Once keys are in the
keystore, they can be used for cryptographic operations with the key material
remaining non-exportable.</p>
<p>The Keystore system is used by the {@link
android.security.KeyChain} API as well as the Android
@@ -59,7 +58,8 @@ Android Keystore Provider</h2>
<p>
To use this feature, you use the standard {@link java.security.KeyStore}
and {@link java.security.KeyPairGenerator} classes along with the
and {@link java.security.KeyPairGenerator} or
{@link javax.crypto.KeyGenerator} classes along with the
{@code AndroidKeyStore} provider introduced in Android 4.3 (API level 18).</p>
<p>{@code AndroidKeyStore} is registered as a {@link
@@ -67,7 +67,9 @@ and {@link java.security.KeyPairGenerator} classes along with the
java.security.KeyStore#getInstance(String) KeyStore.getInstance(type)}
method and as a provider for use with the {@link
java.security.KeyPairGenerator#getInstance(String, String)
KeyPairGenerator.getInstance(algorithm, provider)} method.</p>
KeyPairGenerator.getInstance(algorithm, provider)} and {@link
javax.crypto.KeyGenerator#getInstance(String, String)
KeyGenerator.getInstance(algorithm, provider)} methods.</p>
<h3 id="GeneratingANewPrivateKey">Generating a New Private Key</h3>
@@ -81,6 +83,11 @@ and {@link java.security.KeyPairGenerator} classes along with the
{@sample development/samples/ApiDemos/src/com/example/android/apis/security/KeyStoreUsage.java generate}
<h3 id="GeneratingANewSecretKey">Generating a New Secret Key</h3>
<p>To generate the key, use a {@link javax.crypto.KeyGenerator} with
{@link android.security.KeyGeneratorSpec}.
<h3 id="WorkingWithKeyStoreEntries">Working with Keystore Entries</h3>
<p>Using the {@code AndroidKeyStore} provider takes place through

View File

@@ -25,8 +25,6 @@ package android.security;
* permitted to throw a checked exception during operation. Because crypto operations can fail
* for a variety of reasons after initialization, this base class provides type-safety for unchecked
* exceptions that may be thrown in those cases.
*
* @hide
*/
public class CryptoOperationException extends RuntimeException {

View File

@@ -46,8 +46,6 @@ import javax.crypto.Mac;
* MAC algorithm specified by {@link #getDemMacAlgorithm()} (e.g., {@code HmacSHA1} for standard
* DEM1).</li>
* </ul>
*
* @hide
*/
public class EcIesParameterSpec implements AlgorithmParameterSpec {
@@ -124,6 +122,8 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
/**
* Returns KEM EC curve name (e.g., {@code secp256r1}) or {@code null} if not specified.
*
* @hide
*/
public String getKemCurveName() {
return mKemCurveName;
@@ -200,6 +200,8 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
* Sets KEM EC curve name. For example, {@code P-256} or {@code secp256r1}.
*
* <p>NOTE: Only curves with cofactor of {@code 1} are supported.
*
* @hide
*/
public Builder setKemCurveName(String name) {
mKemCurveName = name;

View File

@@ -19,8 +19,6 @@ package android.security;
/**
* Indicates that a cryptographic operation failed because the employed key's validity end date
* is in the past.
*
* @hide
*/
public class KeyExpiredException extends CryptoOperationException {

View File

@@ -37,15 +37,13 @@ import javax.crypto.SecretKey;
* <p>After generation, the {@code keyStoreAlias} is used with the
* {@link java.security.KeyStore#getEntry(String, java.security.KeyStore.ProtectionParameter)}
* interface to retrieve the {@link SecretKey}.
*
* @hide
*/
public class KeyGeneratorSpec implements AlgorithmParameterSpec {
private final Context mContext;
private final String mKeystoreAlias;
private final int mFlags;
private final Integer mKeySize;
private final int mKeySize;
private final Date mKeyValidityStart;
private final Date mKeyValidityForOriginationEnd;
private final Date mKeyValidityForConsumptionEnd;
@@ -61,7 +59,7 @@ public class KeyGeneratorSpec implements AlgorithmParameterSpec {
Context context,
String keyStoreAlias,
int flags,
Integer keySize,
int keySize,
Date keyValidityStart,
Date keyValidityForOriginationEnd,
Date keyValidityForConsumptionEnd,
@@ -122,9 +120,9 @@ public class KeyGeneratorSpec implements AlgorithmParameterSpec {
}
/**
* Gets the requested key size or {@code null} if the default size should be used.
* Returns the requested key size or {@code -1} if default size should be used.
*/
public Integer getKeySize() {
public int getKeySize() {
return mKeySize;
}
@@ -216,8 +214,6 @@ public class KeyGeneratorSpec implements AlgorithmParameterSpec {
* authenticators protecting access to this key.
*
* @see #getUserAuthenticators()
*
* @hide
*/
public boolean isInvalidatedOnNewFingerprintEnrolled() {
return mInvalidatedOnNewFingerprintEnrolled;
@@ -234,7 +230,7 @@ public class KeyGeneratorSpec implements AlgorithmParameterSpec {
private final Context mContext;
private String mKeystoreAlias;
private int mFlags;
private Integer mKeySize;
private int mKeySize = -1;
private Date mKeyValidityStart;
private Date mKeyValidityForOriginationEnd;
private Date mKeyValidityForConsumptionEnd;
@@ -460,8 +456,6 @@ public class KeyGeneratorSpec implements AlgorithmParameterSpec {
* <p>By default, enrolling a new fingerprint does not invalidate the key.
*
* @see #setUserAuthenticators(Set)
*
* @hide
*/
public Builder setInvalidatedOnNewFingerprintEnrolled(boolean invalidated) {
mInvalidatedOnNewFingerprintEnrolled = invalidated;

View File

@@ -19,8 +19,6 @@ package android.security;
/**
* Indicates that a cryptographic operation failed because the employed key's validity start date
* is in the future.
*
* @hide
*/
public class KeyNotYetValidException extends CryptoOperationException {

View File

@@ -311,8 +311,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* Gets the time instant before which the key pair is not yet valid.
*
* @return instant or {@code null} if not restricted.
*
* @hide
*/
public Date getKeyValidityStart() {
return mKeyValidityStart;
@@ -323,8 +321,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* verification.
*
* @return instant or {@code null} if not restricted.
*
* @hide
*/
public Date getKeyValidityForConsumptionEnd() {
return mKeyValidityForConsumptionEnd;
@@ -334,8 +330,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* Gets the time instant after which the key pair is no longer valid for encryption and signing.
*
* @return instant or {@code null} if not restricted.
*
* @hide
*/
public Date getKeyValidityForOriginationEnd() {
return mKeyValidityForOriginationEnd;
@@ -343,8 +337,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
/**
* Gets the set of purposes for which the key can be used.
*
* @hide
*/
public @KeyStoreKeyProperties.PurposeEnum int getPurposes() {
return mPurposes;
@@ -352,8 +344,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
/**
* Gets the set of digest algorithms with which the key can be used.
*
* @hide
*/
public String[] getDigests() {
return ArrayUtils.cloneIfNotEmpty(mDigests);
@@ -361,8 +351,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
/**
* Gets the set of padding schemes with which the key can be used when encrypting/decrypting.
*
* @hide
*/
public String[] getEncryptionPaddings() {
return ArrayUtils.cloneIfNotEmpty(mEncryptionPaddings);
@@ -370,8 +358,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
/**
* Gets the set of padding schemes with which the key can be used when signing/verifying.
*
* @hide
*/
public String[] getSignaturePaddings() {
return ArrayUtils.cloneIfNotEmpty(mSignaturePaddings);
@@ -379,8 +365,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
/**
* Gets the set of block modes with which the key can be used.
*
* @hide
*/
public String[] getBlockModes() {
return ArrayUtils.cloneIfNotEmpty(mBlockModes);
@@ -394,8 +378,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* weaknesses due to which ciphertext may leak information about plaintext. For example, if a
* given plaintext always produces the same ciphertext, an attacker may see the repeated
* ciphertexts and be able to deduce something about the plaintext.
*
* @hide
*/
public boolean isRandomizedEncryptionRequired() {
return mRandomizedEncryptionRequired;
@@ -409,8 +391,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* restricted.
*
* @return user authenticators or {@code 0} if the key can be used without user authentication.
*
* @hide
*/
public @KeyStoreKeyProperties.UserAuthenticatorEnum int getUserAuthenticators() {
return mUserAuthenticators;
@@ -425,8 +405,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
*
* @return duration in seconds or {@code -1} if not restricted. {@code 0} means authentication
* is required for every use of the key.
*
* @hide
*/
public int getUserAuthenticationValidityDurationSeconds() {
return mUserAuthenticationValidityDurationSeconds;
@@ -438,8 +416,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* authenticators protecting access to this key.
*
* @see #getUserAuthenticators()
*
* @hide
*/
public boolean isInvalidatedOnNewFingerprintEnrolled() {
return mInvalidatedOnNewFingerprintEnrolled;
@@ -642,8 +618,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityEnd(Date)
*
* @hide
*/
public Builder setKeyValidityStart(Date startDate) {
mKeyValidityStart = startDate;
@@ -658,8 +632,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* @see #setKeyValidityStart(Date)
* @see #setKeyValidityForConsumptionEnd(Date)
* @see #setKeyValidityForOriginationEnd(Date)
*
* @hide
*/
public Builder setKeyValidityEnd(Date endDate) {
setKeyValidityForOriginationEnd(endDate);
@@ -673,8 +645,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityForConsumptionEnd(Date)
*
* @hide
*/
public Builder setKeyValidityForOriginationEnd(Date endDate) {
mKeyValidityForOriginationEnd = endDate;
@@ -688,8 +658,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityForOriginationEnd(Date)
*
* @hide
*/
public Builder setKeyValidityForConsumptionEnd(Date endDate) {
mKeyValidityForConsumptionEnd = endDate;
@@ -700,8 +668,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* Sets the set of purposes for which the key can be used.
*
* <p>This must be specified for all keys. There is no default.
*
* @hide
*/
public Builder setPurposes(@KeyStoreKeyProperties.PurposeEnum int purposes) {
mPurposes = purposes;
@@ -713,8 +679,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* to use the key with any other digest will be rejected.
*
* <p>This must be specified for keys which are used for signing/verification.
*
* @hide
*/
public Builder setDigests(String... digests) {
mDigests = ArrayUtils.cloneIfNotEmpty(digests);
@@ -727,8 +691,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* rejected.
*
* <p>This must be specified for keys which are used for encryption/decryption.
*
* @hide
*/
public Builder setEncryptionPaddings(String... paddings) {
mEncryptionPaddings = ArrayUtils.cloneIfNotEmpty(paddings);
@@ -741,8 +703,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* rejected.
*
* <p>This must be specified for RSA keys which are used for signing/verification.
*
* @hide
*/
public Builder setSignaturePaddings(String... paddings) {
mSignaturePaddings = ArrayUtils.cloneIfNotEmpty(paddings);
@@ -754,8 +714,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* Attempts to use the key with any other block modes will be rejected.
*
* <p>This must be specified for encryption/decryption keys.
*
* @hide
*/
public Builder setBlockModes(String... blockModes) {
mBlockModes = ArrayUtils.cloneIfNotEmpty(blockModes);
@@ -781,8 +739,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* <li>If you are using RSA encryption without padding, consider switching to padding
* schemes which offer {@code IND-CPA}, such as PKCS#1 or OAEP.</li>
* </ul>
*
* @hide
*/
public Builder setRandomizedEncryptionRequired(boolean required) {
mRandomizedEncryptionRequired = required;
@@ -802,8 +758,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* without user authentication.
*
* @see #setUserAuthenticationValidityDurationSeconds(int)
*
* @hide
*/
public Builder setUserAuthenticators(
@KeyStoreKeyProperties.UserAuthenticatorEnum int userAuthenticators) {
@@ -824,8 +778,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* every use of the key.
*
* @see #setUserAuthenticators(int)
*
* @hide
*/
public Builder setUserAuthenticationValidityDurationSeconds(int seconds) {
mUserAuthenticationValidityDurationSeconds = seconds;
@@ -840,8 +792,6 @@ public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec {
* <p>By default, enrolling a new fingerprint does not invalidate the key.
*
* @see #setUserAuthenticators(Set)
*
* @hide
*/
public Builder setInvalidatedOnNewFingerprintEnrolled(boolean invalidated) {
mInvalidatedOnNewFingerprintEnrolled = invalidated;

View File

@@ -133,7 +133,7 @@ public abstract class KeyStoreKeyGeneratorSpi extends KeyGeneratorSpi {
throw new IllegalStateException("Digest algorithm must be specified for HMAC key");
}
}
int keySizeBits = (spec.getKeySize() != null) ? spec.getKeySize() : mDefaultKeySizeBits;
int keySizeBits = (spec.getKeySize() != -1) ? spec.getKeySize() : mDefaultKeySizeBits;
args.addInt(KeymasterDefs.KM_TAG_KEY_SIZE, keySizeBits);
@KeyStoreKeyProperties.PurposeEnum int purposes = spec.getPurposes();
int[] keymasterBlockModes = KeymasterUtils.getKeymasterBlockModesFromJcaBlockModes(

View File

@@ -27,8 +27,6 @@ import java.util.Collection;
/**
* Properties of {@code AndroidKeyStore} keys.
*
* @hide
*/
public abstract class KeyStoreKeyProperties {
private KeyStoreKeyProperties() {}

View File

@@ -22,8 +22,6 @@ import java.util.Date;
/**
* Information about a key from the <a href="{@docRoot}training/articles/keystore.html">Android
* KeyStore</a>.
*
* @hide
*/
public class KeyStoreKeySpec implements KeySpec {
private final String mKeystoreAlias;

View File

@@ -108,7 +108,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* Gets the time instant before which the key is not yet valid.
*
* @return instant or {@code null} if not restricted.
* @hide
*/
public Date getKeyValidityStart() {
return mKeyValidityStart;
@@ -118,8 +117,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* Gets the time instant after which the key is no long valid for decryption and verification.
*
* @return instant or {@code null} if not restricted.
*
* @hide
*/
public Date getKeyValidityForConsumptionEnd() {
return mKeyValidityForConsumptionEnd;
@@ -129,8 +126,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* Gets the time instant after which the key is no long valid for encryption and signing.
*
* @return instant or {@code null} if not restricted.
*
* @hide
*/
public Date getKeyValidityForOriginationEnd() {
return mKeyValidityForOriginationEnd;
@@ -138,8 +133,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
/**
* Gets the set of purposes for which the key can be used.
*
* @hide
*/
public @KeyStoreKeyProperties.PurposeEnum int getPurposes() {
return mPurposes;
@@ -147,8 +140,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
/**
* Gets the set of padding schemes with which the key can be used when encrypting/decrypting.
*
* @hide
*/
public String[] getEncryptionPaddings() {
return ArrayUtils.cloneIfNotEmpty(mEncryptionPaddings);
@@ -157,8 +148,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
/**
* Gets the set of padding schemes with which the key can be used when signing or verifying
* signatures.
*
* @hide
*/
public String[] getSignaturePaddings() {
return ArrayUtils.cloneIfNotEmpty(mSignaturePaddings);
@@ -170,8 +159,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* @throws IllegalStateException if this set has not been specified.
*
* @see #isDigestsSpecified()
*
* @hide
*/
public String[] getDigests() {
if (mDigests == null) {
@@ -185,8 +172,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* specified.
*
* @see #getDigests()
*
* @hide
*/
public boolean isDigestsSpecified() {
return mDigests != null;
@@ -194,8 +179,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
/**
* Gets the set of block modes with which the key can be used.
*
* @hide
*/
public String[] getBlockModes() {
return ArrayUtils.cloneIfNotEmpty(mBlockModes);
@@ -209,8 +192,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* weaknesses due to which ciphertext may leak information about plaintext. For example, if a
* given plaintext always produces the same ciphertext, an attacker may see the repeated
* ciphertexts and be able to deduce something about the plaintext.
*
* @hide
*/
public boolean isRandomizedEncryptionRequired() {
return mRandomizedEncryptionRequired;
@@ -221,8 +202,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* used iff the user has authenticated to at least one of these user authenticators.
*
* @return user authenticators or {@code 0} if the key can be used without user authentication.
*
* @hide
*/
public @KeyStoreKeyProperties.UserAuthenticatorEnum int getUserAuthenticators() {
return mUserAuthenticators;
@@ -234,8 +213,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
*
* @return duration in seconds or {@code -1} if not restricted. {@code 0} means authentication
* is required for every use of the key.
*
* @hide
*/
public int getUserAuthenticationValidityDurationSeconds() {
return mUserAuthenticationValidityDurationSeconds;
@@ -247,8 +224,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* authenticators protecting access to this key.
*
* @see #getUserAuthenticators()
*
* @hide
*/
public boolean isInvalidatedOnNewFingerprintEnrolled() {
return mInvalidatedOnNewFingerprintEnrolled;
@@ -321,8 +296,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityEnd(Date)
*
* @hide
*/
public Builder setKeyValidityStart(Date startDate) {
mKeyValidityStart = startDate;
@@ -337,8 +310,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* @see #setKeyValidityStart(Date)
* @see #setKeyValidityForConsumptionEnd(Date)
* @see #setKeyValidityForOriginationEnd(Date)
*
* @hide
*/
public Builder setKeyValidityEnd(Date endDate) {
setKeyValidityForOriginationEnd(endDate);
@@ -352,8 +323,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityForConsumptionEnd(Date)
*
* @hide
*/
public Builder setKeyValidityForOriginationEnd(Date endDate) {
mKeyValidityForOriginationEnd = endDate;
@@ -367,8 +336,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* <p>By default, the key is valid at any instant.
*
* @see #setKeyValidityForOriginationEnd(Date)
*
* @hide
*/
public Builder setKeyValidityForConsumptionEnd(Date endDate) {
mKeyValidityForConsumptionEnd = endDate;
@@ -379,8 +346,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* Sets the set of purposes for which the key can be used.
*
* <p>This must be specified for all keys. There is no default.
*
* @hide
*/
public Builder setPurposes(@KeyStoreKeyProperties.PurposeEnum int purposes) {
mPurposes = purposes;
@@ -393,8 +358,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* rejected.
*
* <p>This must be specified for keys which are used for encryption/decryption.
*
* @hide
*/
public Builder setEncryptionPaddings(String... paddings) {
mEncryptionPaddings = ArrayUtils.cloneIfNotEmpty(paddings);
@@ -407,8 +370,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* rejected.
*
* <p>This must be specified for RSA keys which are used for signing/verification.
*
* @hide
*/
public Builder setSignaturePaddings(String... paddings) {
mSignaturePaddings = ArrayUtils.cloneIfNotEmpty(paddings);
@@ -422,8 +383,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
*
* <p>For HMAC keys, the default is the digest specified in {@link Key#getAlgorithm()}. For
* asymmetric signing keys this constraint must be specified.
*
* @hide
*/
public Builder setDigests(String... digests) {
mDigests = ArrayUtils.cloneIfNotEmpty(digests);
@@ -435,8 +394,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* Attempts to use the key with any other block modes will be rejected.
*
* <p>This must be specified for encryption/decryption keys.
*
* @hide
*/
public Builder setBlockModes(String... blockModes) {
mBlockModes = ArrayUtils.cloneIfNotEmpty(blockModes);
@@ -476,8 +433,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* <li>If you are using RSA encryption without padding, consider switching to padding
* schemes which offer {@code IND-CPA}, such as PKCS#1 or OAEP.</li>
* </ul>
*
* @hide
*/
public Builder setRandomizedEncryptionRequired(boolean required) {
mRandomizedEncryptionRequired = required;
@@ -494,8 +449,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* without user authentication.
*
* @see #setUserAuthenticationValidityDurationSeconds(int)
*
* @hide
*/
public Builder setUserAuthenticators(
@KeyStoreKeyProperties.UserAuthenticatorEnum int userAuthenticators) {
@@ -513,8 +466,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* every use of the key.
*
* @see #setUserAuthenticators(int)
*
* @hide
*/
public Builder setUserAuthenticationValidityDurationSeconds(int seconds) {
mUserAuthenticationValidityDurationSeconds = seconds;
@@ -529,8 +480,6 @@ public final class KeyStoreParameter implements ProtectionParameter {
* <p>By default, enrolling a new fingerprint does not invalidate the key.
*
* @see #setUserAuthenticators(Set)
*
* @hide
*/
public Builder setInvalidatedOnNewFingerprintEnrolled(boolean invalidated) {
mInvalidatedOnNewFingerprintEnrolled = invalidated;

View File

@@ -19,8 +19,6 @@ package android.security;
/**
* Indicates that a cryptographic operation could not be performed because the key used by the
* operation is permanently invalid because a new fingerprint was enrolled.
*
* @hide
*/
public class NewFingerprintEnrolledException extends CryptoOperationException {

View File

@@ -19,8 +19,6 @@ package android.security;
/**
* Indicates that a cryptographic operation could not be performed because the user has not been
* authenticated recently enough.
*
* @hide
*/
public class UserNotAuthenticatedException extends CryptoOperationException {