diff options
author | Rubin Xu <rubinxu@google.com> | 2016-06-16 15:50:39 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-16 15:50:39 +0000 |
commit | 701ddfd2b91b15873d6ff39218718ac08558b3c6 (patch) | |
tree | c9eb2ae6a30adc6e534cc8d1e3dd7a74d1fa0b93 | |
parent | 7fa8cea599a15df2bb0a3c361e6fed048979f47e (diff) | |
parent | 89703ddeb050ce3f7163948574e1152fbd949ff7 (diff) | |
download | android_packages_apps_CertInstaller-701ddfd2b91b15873d6ff39218718ac08558b3c6.tar.gz android_packages_apps_CertInstaller-701ddfd2b91b15873d6ff39218718ac08558b3c6.tar.bz2 android_packages_apps_CertInstaller-701ddfd2b91b15873d6ff39218718ac08558b3c6.zip |
Skip non KeyEntry from PKCS12 file during extraction.
am: 89703ddeb0
Change-Id: I818dfc7242e1042991e56c1bd0cb34d157f1682d
-rw-r--r-- | src/com/android/certinstaller/CredentialHelper.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/certinstaller/CredentialHelper.java b/src/com/android/certinstaller/CredentialHelper.java index 3285a36..6c1efba 100644 --- a/src/com/android/certinstaller/CredentialHelper.java +++ b/src/com/android/certinstaller/CredentialHelper.java @@ -370,14 +370,21 @@ class CredentialHelper { while (aliases.hasMoreElements()) { String alias = aliases.nextElement(); - KeyStore.Entry entry = keystore.getEntry(alias, password); - Log.d(TAG, "extracted alias = " + alias + ", entry=" + entry.getClass()); - - if (entry instanceof PrivateKeyEntry) { - if (TextUtils.isEmpty(mName)) { - mName = alias; + if (keystore.isKeyEntry(alias)) { + KeyStore.Entry entry = keystore.getEntry(alias, password); + Log.d(TAG, "extracted alias = " + alias + ", entry=" + entry.getClass()); + + if (entry instanceof PrivateKeyEntry) { + if (TextUtils.isEmpty(mName)) { + mName = alias; + } + return installFrom((PrivateKeyEntry) entry); } - return installFrom((PrivateKeyEntry) entry); + } else { + // KeyStore.getEntry with non-null ProtectionParameter can only be invoked on + // PrivateKeyEntry or SecretKeyEntry. + // See https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html + Log.d(TAG, "Skip non-key entry, alias = " + alias); } } return true; |