summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRubin Xu <rubinxu@google.com>2016-06-16 15:50:39 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-06-16 15:50:39 +0000
commit701ddfd2b91b15873d6ff39218718ac08558b3c6 (patch)
treec9eb2ae6a30adc6e534cc8d1e3dd7a74d1fa0b93
parent7fa8cea599a15df2bb0a3c361e6fed048979f47e (diff)
parent89703ddeb050ce3f7163948574e1152fbd949ff7 (diff)
downloadandroid_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.java21
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;