package org.bouncycastle.est.jcajce; import java.util.Set; import javax.net.ssl.SSLSocketFactory; import org.bouncycastle.est.ESTClient; import org.bouncycastle.est.ESTClientProvider; import org.bouncycastle.est.ESTException; class DefaultESTHttpClientProvider implements ESTClientProvider { private final JsseHostnameAuthorizer hostNameAuthorizer; private final SSLSocketFactoryCreator socketFactoryCreator; private final int timeout; private final ChannelBindingProvider bindingProvider; private final Set<String> cipherSuites; private final Long absoluteLimit; private final boolean filterCipherSuites; public DefaultESTHttpClientProvider( JsseHostnameAuthorizer hostNameAuthorizer, SSLSocketFactoryCreator socketFactoryCreator, int timeout, ChannelBindingProvider bindingProvider, Set<String> cipherSuites, Long absoluteLimit, boolean filterCipherSuites) { this.hostNameAuthorizer = hostNameAuthorizer; this.socketFactoryCreator = socketFactoryCreator; this.timeout = timeout; this.bindingProvider = bindingProvider; this.cipherSuites = cipherSuites; this.absoluteLimit = absoluteLimit; this.filterCipherSuites = filterCipherSuites; } public ESTClient makeClient() throws ESTException { try { SSLSocketFactory socketFactory = socketFactoryCreator.createFactory(); return new DefaultESTClient( new DefaultESTClientSourceProvider(socketFactory, hostNameAuthorizer, timeout, bindingProvider, cipherSuites, absoluteLimit, filterCipherSuites)); } catch (Exception e) { throw new ESTException(e.getMessage(), e.getCause()); } } public boolean isTrusted() { return socketFactoryCreator.isTrusted(); } }