Merge "Handle unparsable public keys" am: b43409fbfc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2373248 Change-Id: If56db24abfac9de40cdfe251a5070a5821aa4037 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -38,6 +38,7 @@ import java.security.PublicKey;
|
|||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.security.Signature;
|
import java.security.Signature;
|
||||||
import java.security.UnrecoverableKeyException;
|
import java.security.UnrecoverableKeyException;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
import java.security.interfaces.ECPublicKey;
|
import java.security.interfaces.ECPublicKey;
|
||||||
import java.security.interfaces.RSAPublicKey;
|
import java.security.interfaces.RSAPublicKey;
|
||||||
|
|
||||||
@@ -221,7 +222,14 @@ public class AndroidKeyStoreProvider extends Provider {
|
|||||||
}
|
}
|
||||||
final byte[] x509PublicCert = metadata.certificate;
|
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();
|
String jcaKeyAlgorithm = publicKey.getAlgorithm();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user