blob: 1bae701a9e9b53fdaa2eb86fb0a770829e9a5ae7 [file] [log] [blame]
// Signature format: 4.0
package androidx.security.identity {
public class AccessControlProfile {
}
public static final class AccessControlProfile.Builder {
ctor public AccessControlProfile.Builder(androidx.security.identity.AccessControlProfileId);
method public androidx.security.identity.AccessControlProfile build();
method public androidx.security.identity.AccessControlProfile.Builder setReaderCertificate(java.security.cert.X509Certificate);
method public androidx.security.identity.AccessControlProfile.Builder setUserAuthenticationRequired(boolean);
method public androidx.security.identity.AccessControlProfile.Builder setUserAuthenticationTimeout(long);
}
public class AccessControlProfileId {
ctor public AccessControlProfileId(int);
method public int getId();
}
public class AlreadyPersonalizedException extends androidx.security.identity.IdentityCredentialException {
ctor public AlreadyPersonalizedException(String);
ctor public AlreadyPersonalizedException(String, Throwable);
}
public class CipherSuiteNotSupportedException extends androidx.security.identity.IdentityCredentialException {
ctor public CipherSuiteNotSupportedException(String);
ctor public CipherSuiteNotSupportedException(String, Throwable);
}
public class DocTypeNotSupportedException extends androidx.security.identity.IdentityCredentialException {
ctor public DocTypeNotSupportedException(String);
ctor public DocTypeNotSupportedException(String, Throwable);
}
public class EphemeralPublicKeyNotFoundException extends androidx.security.identity.IdentityCredentialException {
ctor public EphemeralPublicKeyNotFoundException(String);
ctor public EphemeralPublicKeyNotFoundException(String, Throwable);
}
public abstract class IdentityCredential {
method public abstract java.security.KeyPair createEphemeralKeyPair();
method public abstract byte[] decryptMessageFromReader(byte[]) throws androidx.security.identity.MessageDecryptionException;
method public byte[] delete(byte[]);
method public abstract byte[] encryptMessageToReader(byte[]);
method public abstract java.util.Collection<java.security.cert.X509Certificate!> getAuthKeysNeedingCertification();
method public abstract int[] getAuthenticationDataUsageCount();
method public abstract java.util.Collection<java.security.cert.X509Certificate!> getCredentialKeyCertificateChain();
method public abstract androidx.biometric.BiometricPrompt.CryptoObject? getCryptoObject();
method public abstract androidx.security.identity.ResultData getEntries(byte[]?, java.util.Map<java.lang.String!,java.util.Collection<java.lang.String!>!>, byte[]?) throws androidx.security.identity.EphemeralPublicKeyNotFoundException, androidx.security.identity.InvalidReaderSignatureException, androidx.security.identity.InvalidRequestMessageException, androidx.security.identity.NoAuthenticationKeyAvailableException;
method public byte[] proveOwnership(byte[]);
method public abstract void setAllowUsingExhaustedKeys(boolean);
method public void setAllowUsingExpiredKeys(boolean);
method public abstract void setAvailableAuthenticationKeys(int, int);
method public abstract void setReaderEphemeralPublicKey(java.security.PublicKey) throws java.security.InvalidKeyException;
method public abstract void setSessionTranscript(byte[]);
method public void storeStaticAuthenticationData(java.security.cert.X509Certificate, android.icu.util.Calendar, byte[]) throws androidx.security.identity.UnknownAuthenticationKeyException;
method @Deprecated public abstract void storeStaticAuthenticationData(java.security.cert.X509Certificate, byte[]) throws androidx.security.identity.UnknownAuthenticationKeyException;
method public byte[] update(androidx.security.identity.PersonalizationData);
}
public class IdentityCredentialException extends java.lang.Exception {
ctor public IdentityCredentialException(String);
ctor public IdentityCredentialException(String, Throwable);
}
public abstract class IdentityCredentialStore {
method public abstract androidx.security.identity.WritableIdentityCredential createCredential(String, String) throws androidx.security.identity.AlreadyPersonalizedException, androidx.security.identity.DocTypeNotSupportedException;
method @Deprecated public abstract byte[]? deleteCredentialByName(String);
method public androidx.security.identity.IdentityCredentialStoreCapabilities getCapabilities();
method public abstract androidx.security.identity.IdentityCredential? getCredentialByName(String, int) throws androidx.security.identity.CipherSuiteNotSupportedException;
method public static androidx.security.identity.IdentityCredentialStore getDirectAccessInstance(android.content.Context);
method public static androidx.security.identity.IdentityCredentialStore? getHardwareInstance(android.content.Context);
method public static androidx.security.identity.IdentityCredentialStore getInstance(android.content.Context);
method public static androidx.security.identity.IdentityCredentialStore getSoftwareInstance(android.content.Context);
method @Deprecated public abstract String![] getSupportedDocTypes();
method public static boolean isDirectAccessSupported(android.content.Context);
field public static final int CIPHERSUITE_ECDHE_HKDF_ECDSA_WITH_AES_256_GCM_SHA256 = 1; // 0x1
}
public class IdentityCredentialStoreCapabilities {
method public int getFeatureVersion();
method public java.util.Set<java.lang.String!> getSupportedDocTypes();
method public boolean isDeleteSupported();
method public boolean isDirectAccess();
method public boolean isHardwareBacked();
method public boolean isProveOwnershipSupported();
method public boolean isStaticAuthenticationDataExpirationSupported();
method public boolean isUpdateSupported();
field public static final int FEATURE_VERSION_202009 = 202009; // 0x31519
field public static final int FEATURE_VERSION_202101 = 202101; // 0x31575
}
public class InvalidReaderSignatureException extends androidx.security.identity.IdentityCredentialException {
ctor public InvalidReaderSignatureException(String);
ctor public InvalidReaderSignatureException(String, Throwable);
}
public class InvalidRequestMessageException extends androidx.security.identity.IdentityCredentialException {
ctor public InvalidRequestMessageException(String);
ctor public InvalidRequestMessageException(String, Throwable);
}
public class MessageDecryptionException extends androidx.security.identity.IdentityCredentialException {
ctor public MessageDecryptionException(String);
ctor public MessageDecryptionException(String, Throwable);
}
public class NoAuthenticationKeyAvailableException extends androidx.security.identity.IdentityCredentialException {
ctor public NoAuthenticationKeyAvailableException(String);
ctor public NoAuthenticationKeyAvailableException(String, Throwable);
}
public class PersonalizationData {
}
public static final class PersonalizationData.Builder {
ctor public PersonalizationData.Builder();
method public androidx.security.identity.PersonalizationData.Builder addAccessControlProfile(androidx.security.identity.AccessControlProfile);
method public androidx.security.identity.PersonalizationData build();
method public androidx.security.identity.PersonalizationData.Builder putEntry(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, byte[]);
method public androidx.security.identity.PersonalizationData.Builder putEntryBoolean(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, boolean);
method public androidx.security.identity.PersonalizationData.Builder putEntryBytestring(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, byte[]);
method public androidx.security.identity.PersonalizationData.Builder putEntryCalendar(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, android.icu.util.Calendar);
method public androidx.security.identity.PersonalizationData.Builder putEntryInteger(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, long);
method public androidx.security.identity.PersonalizationData.Builder putEntryString(String, String, java.util.Collection<androidx.security.identity.AccessControlProfileId!>, String);
}
public abstract class ResultData {
method public abstract byte[] getAuthenticatedData();
method public abstract byte[]? getEcdsaSignature();
method public abstract byte[]? getEntry(String, String);
method public boolean getEntryBoolean(String, String);
method public byte[]? getEntryBytestring(String, String);
method public android.icu.util.Calendar? getEntryCalendar(String, String);
method public long getEntryInteger(String, String);
method public abstract java.util.Collection<java.lang.String!>? getEntryNames(String);
method public String? getEntryString(String, String);
method public abstract byte[]? getMessageAuthenticationCode();
method public abstract java.util.Collection<java.lang.String!> getNamespaces();
method public abstract java.util.Collection<java.lang.String!>? getRetrievedEntryNames(String);
method public abstract byte[] getStaticAuthenticationData();
method public abstract int getStatus(String, String);
field public static final int STATUS_NOT_IN_REQUEST_MESSAGE = 3; // 0x3
field public static final int STATUS_NOT_REQUESTED = 2; // 0x2
field public static final int STATUS_NO_ACCESS_CONTROL_PROFILES = 6; // 0x6
field public static final int STATUS_NO_SUCH_ENTRY = 1; // 0x1
field public static final int STATUS_OK = 0; // 0x0
field public static final int STATUS_READER_AUTHENTICATION_FAILED = 5; // 0x5
field public static final int STATUS_USER_AUTHENTICATION_FAILED = 4; // 0x4
}
public class UnknownAuthenticationKeyException extends androidx.security.identity.IdentityCredentialException {
ctor public UnknownAuthenticationKeyException(String);
ctor public UnknownAuthenticationKeyException(String, Throwable);
}
public abstract class WritableIdentityCredential {
method public abstract java.util.Collection<java.security.cert.X509Certificate!> getCredentialKeyCertificateChain(byte[]);
method public abstract byte[] personalize(androidx.security.identity.PersonalizationData);
}
}