public class AndroidKeyStoreProvider extends Provider
Provider.Service
Modifier and Type | Field and Description |
---|---|
static String |
PROVIDER_NAME |
defaults
Constructor and Description |
---|
AndroidKeyStoreProvider() |
Modifier and Type | Method and Description |
---|---|
static AndroidKeyStorePrivateKey |
getAndroidKeyStorePrivateKey(AndroidKeyStorePublicKey publicKey) |
static AndroidKeyStorePublicKey |
getAndroidKeyStorePublicKey(String alias,
int uid,
String keyAlgorithm,
byte[] x509EncodedForm) |
static KeyStore |
getKeyStoreForUid(int uid)
Returns an
AndroidKeyStore KeyStore } of the specified UID. |
static long |
getKeyStoreOperationHandle(Object cryptoPrimitive)
Gets the
KeyStore operation handle corresponding to the provided JCA crypto
primitive. |
static void |
install()
Installs a new instance of this provider (and the
AndroidKeyStoreBCWorkaroundProvider ). |
static KeyPair |
loadAndroidKeyStoreKeyPairFromKeystore(KeyStore keyStore,
String privateKeyAlias,
int uid) |
static AndroidKeyStorePrivateKey |
loadAndroidKeyStorePrivateKeyFromKeystore(KeyStore keyStore,
String privateKeyAlias,
int uid) |
static AndroidKeyStorePublicKey |
loadAndroidKeyStorePublicKeyFromKeystore(KeyStore keyStore,
String privateKeyAlias,
int uid) |
static AndroidKeyStoreSecretKey |
loadAndroidKeyStoreSecretKeyFromKeystore(KeyStore keyStore,
String secretKeyAlias,
int uid) |
clear, elements, entrySet, forEach, get, getInfo, getName, getProperty, getService, getServices, getVersion, isRegistered, keys, keySet, load, put, putAll, putService, remove, removeService, setRegistered, setUnregistered, toString, values, warmUpServiceProvision
getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
clone, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, rehash, remove, replace, replace, replaceAll, size
public static final String PROVIDER_NAME
public static void install()
AndroidKeyStoreBCWorkaroundProvider
).public static long getKeyStoreOperationHandle(Object cryptoPrimitive)
KeyStore
operation handle corresponding to the provided JCA crypto
primitive.
0
if the provided primitive's KeyStore operation
is not in progress.IllegalArgumentException
- if the provided primitive is not supported or is not backed
by AndroidKeyStore provider.IllegalStateException
- if the provided primitive is not initialized.public static AndroidKeyStorePublicKey getAndroidKeyStorePublicKey(String alias, int uid, String keyAlgorithm, byte[] x509EncodedForm)
public static AndroidKeyStorePrivateKey getAndroidKeyStorePrivateKey(AndroidKeyStorePublicKey publicKey)
public static AndroidKeyStorePublicKey loadAndroidKeyStorePublicKeyFromKeystore(KeyStore keyStore, String privateKeyAlias, int uid) throws UnrecoverableKeyException
UnrecoverableKeyException
public static KeyPair loadAndroidKeyStoreKeyPairFromKeystore(KeyStore keyStore, String privateKeyAlias, int uid) throws UnrecoverableKeyException
UnrecoverableKeyException
public static AndroidKeyStorePrivateKey loadAndroidKeyStorePrivateKeyFromKeystore(KeyStore keyStore, String privateKeyAlias, int uid) throws UnrecoverableKeyException
UnrecoverableKeyException
public static AndroidKeyStoreSecretKey loadAndroidKeyStoreSecretKeyFromKeystore(KeyStore keyStore, String secretKeyAlias, int uid) throws UnrecoverableKeyException
UnrecoverableKeyException
public static KeyStore getKeyStoreForUid(int uid) throws KeyStoreException, NoSuchProviderException
AndroidKeyStore
KeyStore
} of the specified UID.
The KeyStore
contains keys and certificates owned by that UID. Such cross-UID
access is permitted to a few system UIDs and only to a few other UIDs (e.g., Wi-Fi, VPN)
all of which are system.
Note: the returned KeyStore
is already initialized/loaded. Thus, there is
no need to invoke load
on it.