diff options
author | Shawn Willden <swillden@google.com> | 2016-02-02 08:27:39 -0700 |
---|---|---|
committer | Shawn Willden <swillden@google.com> | 2016-02-08 19:29:54 +0000 |
commit | 8d8c7477746c357d54f586fc92e8d422a4fc6441 (patch) | |
tree | 4f045715493d846d7b08b393c13fee3c312fa689 /keystore/java/android/security/Credentials.java | |
parent | d1bbdeb86e5b6b83465440947dffc89de46a3f93 (diff) |
Add attestation API to Android KeyStore.
Bug: 22914603
Change-Id: I7c6162dc7a390aa48a2542494780959b01c23bd4
Diffstat (limited to 'keystore/java/android/security/Credentials.java')
-rw-r--r-- | keystore/java/android/security/Credentials.java | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java index c8333c87c69c..302b0bd73065 100644 --- a/keystore/java/android/security/Credentials.java +++ b/keystore/java/android/security/Credentials.java @@ -20,9 +20,11 @@ import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.util.Log; + import com.android.org.bouncycastle.util.io.pem.PemObject; import com.android.org.bouncycastle.util.io.pem.PemReader; import com.android.org.bouncycastle.util.io.pem.PemWriter; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -147,20 +149,23 @@ public class Credentials { Reader reader = new InputStreamReader(bai, StandardCharsets.US_ASCII); PemReader pr = new PemReader(reader); - CertificateFactory cf = CertificateFactory.getInstance("X509"); - - List<X509Certificate> result = new ArrayList<X509Certificate>(); - PemObject o; - while ((o = pr.readPemObject()) != null) { - if (o.getType().equals("CERTIFICATE")) { - Certificate c = cf.generateCertificate(new ByteArrayInputStream(o.getContent())); - result.add((X509Certificate) c); - } else { - throw new IllegalArgumentException("Unknown type " + o.getType()); + try { + CertificateFactory cf = CertificateFactory.getInstance("X509"); + + List<X509Certificate> result = new ArrayList<X509Certificate>(); + PemObject o; + while ((o = pr.readPemObject()) != null) { + if (o.getType().equals("CERTIFICATE")) { + Certificate c = cf.generateCertificate(new ByteArrayInputStream(o.getContent())); + result.add((X509Certificate) c); + } else { + throw new IllegalArgumentException("Unknown type " + o.getType()); + } } + return result; + } finally { + pr.close(); } - pr.close(); - return result; } private static Credentials singleton; |