Unhide the new AndroidKeyStore API.
Bug: 18088752 Change-Id: I93f87cbb1cd04a4a2e34f3d544d678c92cf052ee
This commit is contained in:
195
api/current.txt
195
api/current.txt
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -27,8 +27,6 @@ import java.util.Collection;
|
||||
|
||||
/**
|
||||
* Properties of {@code AndroidKeyStore} keys.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public abstract class KeyStoreKeyProperties {
|
||||
private KeyStoreKeyProperties() {}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user