Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09e3d8c3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fixing engineGetCertificateChain exception"

parents 36459170 beae8c67
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.security.keystore;

import libcore.util.EmptyArray;
import android.security.Credentials;
import android.security.GateKeeper;
import android.security.KeyStore;
@@ -31,6 +30,8 @@ import android.security.keystore.SecureKeyImportUnavailableException;
import android.security.keystore.WrappedKeyEntry;
import android.util.Log;

import libcore.util.EmptyArray;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -123,7 +124,14 @@ public class AndroidKeyStoreSpi extends KeyStoreSpi {

        final Certificate[] caList;

        final byte[] caBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias, mUid);
        // Suppress the key not found warning for this call. It seems that this error is exclusively
        // being thrown when there is a self signed certificate chain, so when the keystore service
        // attempts to query for the CA details, it obviously fails to find them and returns a
        // key not found exception. This is WAI, and throwing a stack trace here can be very
        // misleading since the trace is not clear.
        final byte[] caBytes = mKeyStore.get(Credentials.CA_CERTIFICATE + alias,
                                             mUid,
                                             true /* suppressKeyNotFoundWarning */);
        if (caBytes != null) {
            final Collection<X509Certificate> caChain = toCertificates(caBytes);