1616
1717package io .grpc .internal ;
1818
19+ import java .io .ByteArrayInputStream ;
1920import java .io .IOException ;
2021import java .io .InputStream ;
2122import java .security .GeneralSecurityException ;
@@ -36,8 +37,21 @@ public final class CertificateUtils {
3637 /**
3738 * Creates X509TrustManagers using the provided CA certs.
3839 */
39- public static TrustManager [] createTrustManager (InputStream rootCerts )
40+ public static TrustManager [] createTrustManager (byte [] rootCerts )
4041 throws GeneralSecurityException {
42+ InputStream rootCertsStream = new ByteArrayInputStream (rootCerts );
43+ try {
44+ return CertificateUtils .createTrustManager (rootCertsStream );
45+ } finally {
46+ GrpcUtil .closeQuietly (rootCertsStream );
47+ }
48+ }
49+
50+ /**
51+ * Creates X509TrustManagers using the provided input stream of CA certs.
52+ */
53+ public static TrustManager [] createTrustManager (InputStream rootCerts )
54+ throws GeneralSecurityException {
4155 KeyStore ks = KeyStore .getInstance (KeyStore .getDefaultType ());
4256 try {
4357 ks .load (null , null );
@@ -52,13 +66,13 @@ public static TrustManager[] createTrustManager(InputStream rootCerts)
5266 }
5367
5468 TrustManagerFactory trustManagerFactory =
55- TrustManagerFactory .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
69+ TrustManagerFactory .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
5670 trustManagerFactory .init (ks );
5771 return trustManagerFactory .getTrustManagers ();
5872 }
5973
6074 private static X509Certificate [] getX509Certificates (InputStream inputStream )
61- throws CertificateException {
75+ throws CertificateException {
6276 CertificateFactory factory = CertificateFactory .getInstance ("X.509" );
6377 Collection <? extends Certificate > certs = factory .generateCertificates (inputStream );
6478 return certs .toArray (new X509Certificate [0 ]);
0 commit comments