package eu.nullbyte.android.urllib; import android.content.Context; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import timber.log.Timber; public class CertificateReader { public static Certificate[] getCertificates(Context context, int... rawResCerts) { List<Certificate> certificates = new ArrayList<>(); try { CertificateFactory cf = CertificateFactory.getInstance("X.509"); for (int resId : rawResCerts) { InputStream is = new BufferedInputStream(context.getResources() .openRawResource(resId)); try { X509Certificate cert = (X509Certificate) cf.generateCertificate(is); certificates.add(cert); } finally { try { is.close(); } catch (IOException e) { Timber.w(e, "Failed to close input stream"); } } } } catch (CertificateException e) { Timber.w(e, "Generating certificate failed"); } return certificates.toArray(new Certificate[certificates.size()]); } }