1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.common.crypto.ssl;
21
22 import org.waarp.common.exception.CryptoException;
23
24 import javax.net.ssl.ManagerFactoryParameters;
25 import javax.net.ssl.TrustManager;
26 import javax.net.ssl.TrustManagerFactory;
27 import javax.net.ssl.TrustManagerFactorySpi;
28 import java.security.KeyStore;
29 import java.security.cert.X509Certificate;
30
31
32
33
34 public class WaarpSecureTrustManagerFactory extends TrustManagerFactorySpi {
35 private final WaarpX509TrustManager ggTrustManager;
36
37 private final TrustManager[] trustManager;
38
39 private final boolean needAuthentication;
40 private final boolean hasTrustStore;
41
42
43
44
45 public WaarpSecureTrustManagerFactory() {
46 ggTrustManager = new WaarpX509TrustManager();
47 trustManager = new TrustManager[] { ggTrustManager };
48 needAuthentication = false;
49 hasTrustStore = false;
50 }
51
52
53
54
55
56
57
58
59 public WaarpSecureTrustManagerFactory(final TrustManagerFactory tmf,
60 final boolean clientAuthent)
61 throws CryptoException {
62 ggTrustManager = new WaarpX509TrustManager(tmf);
63 trustManager = new TrustManager[] { ggTrustManager };
64 needAuthentication = clientAuthent;
65 hasTrustStore = true;
66 }
67
68
69
70
71 public final boolean hasTrustStore() {
72 return hasTrustStore;
73 }
74
75
76
77
78 public final boolean needAuthentication() {
79 return needAuthentication;
80 }
81
82
83
84
85 public final X509Certificate[] getX509Certificates() {
86 return ((WaarpX509TrustManager) trustManager[0]).getAcceptedIssuers();
87 }
88
89
90
91
92 public final TrustManager[] getTrustManagers() {
93 return trustManager.clone();
94 }
95
96 @Override
97 protected final TrustManager[] engineGetTrustManagers() {
98 return getTrustManagers();
99 }
100
101 @Override
102 protected final void engineInit(final KeyStore arg0) {
103
104 }
105
106 @Override
107 protected final void engineInit(final ManagerFactoryParameters arg0) {
108
109 }
110
111 }