1package eu.siacs.conversations.crypto;
2
3import androidx.annotation.Nullable;
4
5import com.google.common.collect.Iterables;
6
7import java.security.KeyStore;
8import java.security.KeyStoreException;
9import java.security.NoSuchAlgorithmException;
10import java.util.Arrays;
11
12import javax.net.ssl.TrustManagerFactory;
13import javax.net.ssl.X509TrustManager;
14
15public final class TrustManagers {
16
17 private TrustManagers() {
18 throw new IllegalStateException("Do not instantiate me");
19 }
20
21 public static X509TrustManager createTrustManager(@Nullable final KeyStore keyStore)
22 throws NoSuchAlgorithmException, KeyStoreException {
23 final TrustManagerFactory trustManagerFactory =
24 TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
25 trustManagerFactory.init(keyStore);
26 return Iterables.getOnlyElement(
27 Iterables.filter(
28 Arrays.asList(trustManagerFactory.getTrustManagers()),
29 X509TrustManager.class));
30 }
31
32 public static X509TrustManager createDefaultTrustManager()
33 throws NoSuchAlgorithmException, KeyStoreException {
34 return createTrustManager(null);
35 }
36
37
38}