diff options
author | Rubin Xu <rubinxu@google.com> | 2016-06-14 15:58:25 +0100 |
---|---|---|
committer | Rubin Xu <rubinxu@google.com> | 2016-06-16 14:14:24 +0100 |
commit | 89703ddeb050ce3f7163948574e1152fbd949ff7 (patch) | |
tree | 57d542a0595868c76e034c9ae02c26000841c438 | |
parent | e1ab94c0a5d45b6016127ac9edf53bfcb39b6dd2 (diff) | |
download | CertInstaller-nougat-bugfix-release.tar.gz |
Skip non KeyEntry from PKCS12 file during extraction.android-cts-7.0_r9android-cts-7.0_r8android-cts-7.0_r7android-cts-7.0_r6android-cts-7.0_r5android-cts-7.0_r4android-cts-7.0_r33android-cts-7.0_r32android-cts-7.0_r31android-cts-7.0_r30android-cts-7.0_r3android-cts-7.0_r29android-cts-7.0_r28android-cts-7.0_r27android-cts-7.0_r26android-cts-7.0_r25android-cts-7.0_r24android-cts-7.0_r23android-cts-7.0_r22android-cts-7.0_r21android-cts-7.0_r20android-cts-7.0_r2android-cts-7.0_r19android-cts-7.0_r18android-cts-7.0_r17android-cts-7.0_r16android-cts-7.0_r15android-cts-7.0_r14android-cts-7.0_r13android-cts-7.0_r12android-cts-7.0_r11android-cts-7.0_r10android-cts-7.0_r1android-7.0.0_r9android-7.0.0_r8android-7.0.0_r7android-7.0.0_r6android-7.0.0_r5android-7.0.0_r4android-7.0.0_r3android-7.0.0_r29android-7.0.0_r28android-7.0.0_r27android-7.0.0_r24android-7.0.0_r21android-7.0.0_r19android-7.0.0_r17android-7.0.0_r15android-7.0.0_r14android-7.0.0_r13android-7.0.0_r12android-7.0.0_r11android-7.0.0_r10android-7.0.0_r1nougat-releasenougat-devnougat-cts-releasenougat-bugfix-release
Change-Id: I76880fc3a39c092cfc007450f59c477a2bdaf48e
Fix: 29315994
-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; |