Merge "Make getKeyStoreForUid convert uid to namespace."

This commit is contained in:
Pavel Grafov
2021-02-09 20:48:04 +00:00
committed by Gerrit Code Review

View File

@@ -434,14 +434,16 @@ public class AndroidKeyStoreProvider extends Provider {
@NonNull @NonNull
public static java.security.KeyStore getKeyStoreForUid(int uid) public static java.security.KeyStore getKeyStoreForUid(int uid)
throws KeyStoreException, NoSuchProviderException { throws KeyStoreException, NoSuchProviderException {
String providerName = PROVIDER_NAME; final java.security.KeyStore.LoadStoreParameter loadParameter;
if (android.security.keystore2.AndroidKeyStoreProvider.isInstalled()) { if (android.security.keystore2.AndroidKeyStoreProvider.isInstalled()) {
providerName = "AndroidKeyStoreLegacy"; loadParameter = new android.security.keystore2.AndroidKeyStoreLoadStoreParameter(
KeyProperties.legacyUidToNamespace(uid));
} else {
loadParameter = new AndroidKeyStoreLoadStoreParameter(uid);
} }
java.security.KeyStore result = java.security.KeyStore result = java.security.KeyStore.getInstance(PROVIDER_NAME);
java.security.KeyStore.getInstance(providerName);
try { try {
result.load(new AndroidKeyStoreLoadStoreParameter(uid)); result.load(loadParameter);
} catch (NoSuchAlgorithmException | CertificateException | IOException e) { } catch (NoSuchAlgorithmException | CertificateException | IOException e) {
throw new KeyStoreException( throw new KeyStoreException(
"Failed to load AndroidKeyStore KeyStore for UID " + uid, e); "Failed to load AndroidKeyStore KeyStore for UID " + uid, e);