From 68ebc129797e612806abb637dbe56250a86cc189 Mon Sep 17 00:00:00 2001 From: Max Bires Date: Tue, 23 Mar 2021 09:15:31 -0700 Subject: Fixing array cast. This fix properly casts the Certificate[] returned by KeyStore to an X509Certificate. Bug: 182825370 Test: atest GtsGmscoreHostTestCases Change-Id: If1e7cbbe612217b92067f76f8d13d1a0002e1579 --- keystore/java/android/security/keystore/AttestationUtils.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keystore/java/android/security/keystore/AttestationUtils.java b/keystore/java/android/security/keystore/AttestationUtils.java index 11c36893d984..6f8a278345ee 100644 --- a/keystore/java/android/security/keystore/AttestationUtils.java +++ b/keystore/java/android/security/keystore/AttestationUtils.java @@ -36,9 +36,11 @@ import java.nio.charset.StandardCharsets; import java.security.KeyPairGenerator; import java.security.KeyStore; import java.security.SecureRandom; +import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.security.spec.ECGenParameterSpec; +import java.util.Arrays; import java.util.Collection; import java.util.Random; import java.util.Set; @@ -281,8 +283,9 @@ public abstract class AttestationUtils { KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore"); keyStore.load(null); + Certificate[] certs = keyStore.getCertificateChain(keystoreAlias); X509Certificate[] certificateChain = - (X509Certificate[]) keyStore.getCertificateChain(keystoreAlias); + Arrays.copyOf(certs, certs.length, X509Certificate[].class); keyStore.deleteEntry(keystoreAlias); -- cgit v1.2.3-59-g8ed1b