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

Commit efb84687 authored by Max Bires's avatar Max Bires Committed by android-build-merger
Browse files

Merge "Fixing engineGetCertificateChain exception" am: 09e3d8c3

am: 53187655

Change-Id: I32f5a32c751647ac9843015bdea9917c9962dffd
parents d9fbd454 53187655
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);