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

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

Merge "Handle unparsable public keys"

parents d469322a 10770c15
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import java.security.PublicKey;
import java.security.Security;
import java.security.Signature;
import java.security.UnrecoverableKeyException;
import java.security.cert.X509Certificate;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey;

@@ -221,7 +222,14 @@ public class AndroidKeyStoreProvider extends Provider {
        }
        final byte[] x509PublicCert = metadata.certificate;

        PublicKey publicKey = AndroidKeyStoreSpi.toCertificate(x509PublicCert).getPublicKey();
        final X509Certificate parsedX509Certificate =
                AndroidKeyStoreSpi.toCertificate(x509PublicCert);
        if (parsedX509Certificate == null) {
            throw new UnrecoverableKeyException("Failed to parse the X.509 certificate containing"
                   + " the public key. This likely indicates a hardware problem.");
        }

        PublicKey publicKey = parsedX509Certificate.getPublicKey();

        String jcaKeyAlgorithm = publicKey.getAlgorithm();