|
26 | 26 | import android.os.RemoteException; |
27 | 27 | import java.io.ByteArrayInputStream; |
28 | 28 | import java.io.Closeable; |
29 | | -import java.io.IOException; |
30 | 29 | import java.security.InvalidKeyException; |
31 | | -import java.security.KeyPair; |
32 | 30 | import java.security.Principal; |
33 | 31 | import java.security.PrivateKey; |
34 | 32 | import java.security.cert.Certificate; |
35 | 33 | import java.security.cert.CertificateException; |
36 | 34 | import java.security.cert.CertificateFactory; |
37 | 35 | import java.security.cert.X509Certificate; |
38 | | -import java.util.ArrayList; |
39 | 36 | import java.util.List; |
40 | 37 | import java.util.concurrent.BlockingQueue; |
41 | 38 | import java.util.concurrent.LinkedBlockingQueue; |
42 | | -import libcore.util.Objects; |
43 | 39 |
|
44 | 40 | import org.apache.harmony.xnet.provider.jsse.OpenSSLEngine; |
45 | 41 | import org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore; |
@@ -341,20 +337,9 @@ public static X509Certificate[] getCertificateChain(Context context, String alia |
341 | 337 | try { |
342 | 338 | IKeyChainService keyChainService = keyChainConnection.getService(); |
343 | 339 | byte[] certificateBytes = keyChainService.getCertificate(alias); |
344 | | - List<X509Certificate> chain = new ArrayList<X509Certificate>(); |
345 | | - chain.add(toCertificate(certificateBytes)); |
346 | 340 | TrustedCertificateStore store = new TrustedCertificateStore(); |
347 | | - for (int i = 0; true; i++) { |
348 | | - X509Certificate cert = chain.get(i); |
349 | | - if (Objects.equal(cert.getSubjectX500Principal(), cert.getIssuerX500Principal())) { |
350 | | - break; |
351 | | - } |
352 | | - X509Certificate issuer = store.findIssuer(cert); |
353 | | - if (issuer == null) { |
354 | | - break; |
355 | | - } |
356 | | - chain.add(issuer); |
357 | | - } |
| 341 | + List<X509Certificate> chain = store |
| 342 | + .getCertificateChain(toCertificate(certificateBytes)); |
358 | 343 | return chain.toArray(new X509Certificate[chain.size()]); |
359 | 344 | } catch (RemoteException e) { |
360 | 345 | throw new KeyChainException(e); |
|
0 commit comments