diff options
author | Ed Falk <efalk@cyngn.com> | 2015-09-08 15:48:11 -0700 |
---|---|---|
committer | Edward A. Falk <efalk@cyngn.com> | 2015-09-10 16:17:40 -0700 |
commit | 4f814917c8dd3eccbd1588cee8be900cf3fe0d27 (patch) | |
tree | 1f06ae9c6dfd4f1aaee66dfd7051e95d176fa415 | |
parent | 7179f3b01e4f2fb825863bc0d92006fefeba6375 (diff) | |
download | android_packages_apps_CertInstaller-4f814917c8dd3eccbd1588cee8be900cf3fe0d27.tar.gz android_packages_apps_CertInstaller-4f814917c8dd3eccbd1588cee8be900cf3fe0d27.tar.bz2 android_packages_apps_CertInstaller-4f814917c8dd3eccbd1588cee8be900cf3fe0d27.zip |
Catch corrupt cert error
Wraps cert-reading code in try..catch to deal with corrupted
certs. If a cert is corrupted, prints info message and proceeds as
if cert had been null.
Issue-Id: JALEBI-482
Cherry-picked-from: 1ab416940914dd6cbd0522c3aae811d8868f19ef
Change-Id: I82f8975a80372afcaee257e11043e09a17a1c3a2
-rw-r--r-- | src/com/android/certinstaller/CertInstaller.java | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/com/android/certinstaller/CertInstaller.java b/src/com/android/certinstaller/CertInstaller.java index 907646e..35bdd00 100644 --- a/src/com/android/certinstaller/CertInstaller.java +++ b/src/com/android/certinstaller/CertInstaller.java @@ -228,17 +228,21 @@ public class CertInstaller extends Activity { X509Certificate cert = mCredentials.getUserCertificate(); if (cert != null) { // find matched private key - String key = Util.toMd5(cert.getPublicKey().getEncoded()); - Map<String, byte[]> map = getPkeyMap(); - byte[] privatekey = map.get(key); - if (privatekey != null) { - Log.d(TAG, "found matched key: " + privatekey); - map.remove(key); - savePkeyMap(map); - - mCredentials.setPrivateKey(privatekey); - } else { - Log.d(TAG, "didn't find matched private key: " + key); + try { + String key = Util.toMd5(cert.getPublicKey().getEncoded()); + Map<String, byte[]> map = getPkeyMap(); + byte[] privatekey = map.get(key); + if (privatekey != null) { + Log.d(TAG, "found matched key: " + privatekey); + map.remove(key); + savePkeyMap(map); + + mCredentials.setPrivateKey(privatekey); + } else { + Log.d(TAG, "didn't find matched private key: " + key); + } + } catch (RuntimeException e) { + Log.w(TAG, "Possibly invalid cert " + e); } } nameCredential(); |