summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Falk <efalk@cyngn.com>2015-09-08 15:48:11 -0700
committerEdward A. Falk <efalk@cyngn.com>2015-09-10 16:17:40 -0700
commit4f814917c8dd3eccbd1588cee8be900cf3fe0d27 (patch)
tree1f06ae9c6dfd4f1aaee66dfd7051e95d176fa415
parent7179f3b01e4f2fb825863bc0d92006fefeba6375 (diff)
downloadandroid_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.java26
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();