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();
}
}