Merge "Handle unparsable public keys"

This commit is contained in:
Treehugger Robot
2023-01-03 14:13:02 +00:00
committed by Gerrit Code Review

View File

@@ -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();