From 0150e48200a967aead3c2ac6f1283ae2df54c305 Mon Sep 17 00:00:00 2001 From: Kenny Root <kroot@google.com> Date: Wed, 13 Feb 2013 15:22:50 -0800 Subject: KeyChain: return null instead of throw The API documentation says it will return null if the key isn't found. We get null back from the keystore daemon when it can't retrieve the data, so just return null back to the API caller. Change-Id: I42248bd50cbc5f76864bd762aae3faab1c50529d --- keystore/java/android/security/KeyChain.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/keystore/java/android/security/KeyChain.java b/keystore/java/android/security/KeyChain.java index 31c38d5..d7119fff 100644 --- a/keystore/java/android/security/KeyChain.java +++ b/keystore/java/android/security/KeyChain.java @@ -336,7 +336,12 @@ public final class KeyChain { KeyChainConnection keyChainConnection = bind(context); try { IKeyChainService keyChainService = keyChainConnection.getService(); - byte[] certificateBytes = keyChainService.getCertificate(alias); + + final byte[] certificateBytes = keyChainService.getCertificate(alias); + if (certificateBytes == null) { + return null; + } + TrustedCertificateStore store = new TrustedCertificateStore(); List<X509Certificate> chain = store .getCertificateChain(toCertificate(certificateBytes)); -- cgit v1.1