public class SSL extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private boolean |
checkCRL |
private boolean |
checkExpiry |
private boolean |
checkHostname |
private int |
connectTimeout |
private java.security.cert.X509Certificate[] |
currentClientChain |
private java.security.cert.X509Certificate[] |
currentServerChain |
private java.lang.String |
defaultProtocol |
private java.util.Map |
dnsOverride |
private java.lang.String[] |
enabledCiphers |
private java.lang.String[] |
enabledProtocols |
private HostnameVerifier |
hostnameVerifier |
private int |
initCount |
private boolean |
isSecure |
private KeyMaterial |
keyMaterial |
private static java.lang.String[] |
KNOWN_PROTOCOLS |
static java.util.SortedSet |
KNOWN_PROTOCOLS_SET |
private boolean |
needClientAuth |
private javax.net.ssl.SSLServerSocketFactory |
serverSocketFactory |
private javax.net.ssl.SSLSocketFactory |
socketFactory |
private int |
soTimeout |
static java.lang.String |
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
static java.lang.String |
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
static java.lang.String |
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
static java.lang.String |
SSL_RSA_WITH_RC4_128_SHA |
private java.lang.Object |
sslContext |
private SSLWrapperFactory |
sslWrapperFactory |
private static java.lang.String[] |
SUPPORTED_CIPHERS |
static java.util.SortedSet |
SUPPORTED_CIPHERS_SET |
static java.lang.String |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
static java.lang.String |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
static java.lang.String |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
static java.lang.String |
TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
static java.lang.String |
TLS_RSA_WITH_AES_128_CBC_SHA |
static java.lang.String |
TLS_RSA_WITH_AES_256_CBC_SHA |
private TrustChain |
trustChain |
private boolean |
useClientMode |
private boolean |
useClientModeDefault |
protected boolean |
usingSystemProperties |
private boolean |
wantClientAuth |
Constructor and Description |
---|
SSL() |
Modifier and Type | Method and Description |
---|---|
private static void |
addCipher(java.util.List l,
java.lang.String c,
boolean printOnStandardOut) |
void |
addTrustMaterial(TrustChain trustChain) |
java.net.ServerSocket |
createServerSocket() |
java.net.ServerSocket |
createServerSocket(int port,
int backlog,
java.net.InetAddress localHost)
Attempts to get a new socket connection to the given host within the
given time limit.
|
java.net.Socket |
createSocket() |
java.net.Socket |
createSocket(java.net.Socket s,
java.lang.String remoteHost,
int remotePort,
boolean autoClose) |
java.net.Socket |
createSocket(java.lang.String remoteHost,
int remotePort,
java.net.InetAddress localHost,
int localPort,
int timeout)
Attempts to get a new socket connection to the given host within the
given time limit.
|
private void |
dirty() |
private void |
dirtyAndReloadIfYoung() |
(package private) java.lang.String |
dnsOverride(java.lang.String host) |
void |
doPostConnectSocketStuff(java.net.Socket s,
java.lang.String host) |
void |
doPreConnectServerSocketStuff(javax.net.ssl.SSLServerSocket s) |
void |
doPreConnectSocketStuff(java.net.Socket s) |
java.security.cert.X509Certificate[] |
getAssociatedCertificateChain() |
boolean |
getCheckCRL() |
boolean |
getCheckExpiry() |
boolean |
getCheckHostname() |
int |
getConnectTimeout() |
java.security.cert.X509Certificate[] |
getCurrentClientChain() |
java.security.cert.X509Certificate[] |
getCurrentServerChain() |
java.lang.String[] |
getDefaultCipherSuites() |
java.lang.String |
getDefaultProtocol() |
java.lang.String[] |
getEnabledCiphers() |
java.lang.String[] |
getEnabledProtocols() |
HostnameVerifier |
getHostnameVerifier() |
boolean |
getNeedClientAuth() |
int |
getSoTimeout() |
javax.net.ssl.SSLContext |
getSSLContext() |
java.lang.Object |
getSSLContextAsObject() |
javax.net.ssl.SSLServerSocketFactory |
getSSLServerSocketFactory() |
javax.net.ssl.SSLSocketFactory |
getSSLSocketFactory() |
SSLWrapperFactory |
getSSLWrapperFactory() |
java.lang.String[] |
getSupportedCipherSuites() |
TrustChain |
getTrustChain() |
boolean |
getUseClientMode() |
boolean |
getUseClientModeDefault() |
boolean |
getWantClientAuth() |
private void |
init() |
private void |
initThrowRuntime() |
boolean |
isSecure() |
static void |
main(java.lang.String[] args) |
void |
setCheckCRL(boolean checkCRL) |
void |
setCheckExpiry(boolean checkExpiry) |
void |
setCheckHostname(boolean checkHostname) |
void |
setConnectTimeout(int connectTimeout) |
void |
setCurrentClientChain(java.security.cert.X509Certificate[] chain) |
void |
setCurrentServerChain(java.security.cert.X509Certificate[] chain) |
void |
setDefaultProtocol(java.lang.String protocol) |
void |
setDnsOverride(java.util.Map m) |
void |
setEnabledCiphers(java.lang.String[] ciphers) |
void |
setEnabledProtocols(java.lang.String[] protocols) |
void |
setHostnameVerifier(HostnameVerifier verifier) |
void |
setIsSecure(boolean b) |
void |
setKeyMaterial(KeyMaterial keyMaterial) |
void |
setNeedClientAuth(boolean needClientAuth) |
void |
setSoTimeout(int soTimeout) |
void |
setSSLWrapperFactory(SSLWrapperFactory wf) |
void |
setTrustMaterial(TrustChain trustChain) |
void |
setUseClientMode(boolean useClientMode) |
void |
setWantClientAuth(boolean wantClientAuth) |
void |
useDefaultJavaCiphers() |
void |
useStrongCiphers() |
private static final java.lang.String[] KNOWN_PROTOCOLS
private static final java.lang.String[] SUPPORTED_CIPHERS
public static final java.util.SortedSet KNOWN_PROTOCOLS_SET
public static final java.util.SortedSet SUPPORTED_CIPHERS_SET
public static final java.lang.String SSL_RSA_WITH_RC4_128_SHA
public static final java.lang.String SSL_RSA_WITH_3DES_EDE_CBC_SHA
public static final java.lang.String SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
public static final java.lang.String SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
public static final java.lang.String TLS_RSA_WITH_AES_128_CBC_SHA
public static final java.lang.String TLS_DHE_RSA_WITH_AES_128_CBC_SHA
public static final java.lang.String TLS_DHE_DSS_WITH_AES_128_CBC_SHA
public static final java.lang.String TLS_RSA_WITH_AES_256_CBC_SHA
public static final java.lang.String TLS_DHE_RSA_WITH_AES_256_CBC_SHA
public static final java.lang.String TLS_DHE_DSS_WITH_AES_256_CBC_SHA
private java.lang.Object sslContext
private int initCount
private javax.net.ssl.SSLSocketFactory socketFactory
private javax.net.ssl.SSLServerSocketFactory serverSocketFactory
private HostnameVerifier hostnameVerifier
private boolean isSecure
private boolean checkHostname
private boolean checkCRL
private boolean checkExpiry
private boolean useClientMode
private boolean useClientModeDefault
private int soTimeout
private int connectTimeout
private TrustChain trustChain
private KeyMaterial keyMaterial
private java.lang.String[] enabledCiphers
private java.lang.String[] enabledProtocols
private java.lang.String defaultProtocol
private java.security.cert.X509Certificate[] currentServerChain
private java.security.cert.X509Certificate[] currentClientChain
private boolean wantClientAuth
private boolean needClientAuth
private SSLWrapperFactory sslWrapperFactory
private java.util.Map dnsOverride
protected final boolean usingSystemProperties
public SSL() throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
private void dirty()
private void dirtyAndReloadIfYoung() throws java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.KeyManagementException, java.io.IOException, java.security.cert.CertificateException
java.security.NoSuchAlgorithmException
java.security.KeyStoreException
java.security.KeyManagementException
java.io.IOException
java.security.cert.CertificateException
java.lang.String dnsOverride(java.lang.String host)
public void setDnsOverride(java.util.Map m)
public void setIsSecure(boolean b)
public boolean isSecure()
public javax.net.ssl.SSLContext getSSLContext() throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
public java.lang.Object getSSLContextAsObject() throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
- problem creating SSLContextjava.io.IOException
- problem creating SSLContextpublic void addTrustMaterial(TrustChain trustChain) throws java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.KeyManagementException, java.io.IOException, java.security.cert.CertificateException
java.security.NoSuchAlgorithmException
java.security.KeyStoreException
java.security.KeyManagementException
java.io.IOException
java.security.cert.CertificateException
public void setTrustMaterial(TrustChain trustChain) throws java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.KeyManagementException, java.io.IOException, java.security.cert.CertificateException
java.security.NoSuchAlgorithmException
java.security.KeyStoreException
java.security.KeyManagementException
java.io.IOException
java.security.cert.CertificateException
public void setKeyMaterial(KeyMaterial keyMaterial) throws java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.KeyManagementException, java.io.IOException, java.security.cert.CertificateException
java.security.NoSuchAlgorithmException
java.security.KeyStoreException
java.security.KeyManagementException
java.io.IOException
java.security.cert.CertificateException
public java.security.cert.X509Certificate[] getAssociatedCertificateChain()
public java.lang.String[] getEnabledCiphers()
public void useDefaultJavaCiphers()
public void useStrongCiphers()
public void setEnabledCiphers(java.lang.String[] ciphers)
public java.lang.String[] getEnabledProtocols()
public void setEnabledProtocols(java.lang.String[] protocols)
public java.lang.String getDefaultProtocol()
public void setDefaultProtocol(java.lang.String protocol)
public boolean getCheckHostname()
public void setCheckHostname(boolean checkHostname)
public void setHostnameVerifier(HostnameVerifier verifier)
public HostnameVerifier getHostnameVerifier()
public boolean getCheckCRL()
public void setCheckCRL(boolean checkCRL)
public boolean getCheckExpiry()
public void setCheckExpiry(boolean checkExpiry)
public void setSoTimeout(int soTimeout)
public int getSoTimeout()
public void setConnectTimeout(int connectTimeout)
public void setUseClientMode(boolean useClientMode)
public boolean getUseClientModeDefault()
public boolean getUseClientMode()
public void setWantClientAuth(boolean wantClientAuth)
public void setNeedClientAuth(boolean needClientAuth)
public boolean getWantClientAuth()
public boolean getNeedClientAuth()
public SSLWrapperFactory getSSLWrapperFactory()
public void setSSLWrapperFactory(SSLWrapperFactory wf)
private void initThrowRuntime()
private void init() throws java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.KeyManagementException, java.io.IOException, java.security.cert.CertificateException
java.security.NoSuchAlgorithmException
java.security.KeyStoreException
java.security.KeyManagementException
java.io.IOException
java.security.cert.CertificateException
public void doPreConnectSocketStuff(java.net.Socket s) throws java.io.IOException
java.io.IOException
public void doPostConnectSocketStuff(java.net.Socket s, java.lang.String host) throws java.io.IOException
java.io.IOException
public java.net.Socket createSocket() throws java.io.IOException
java.io.IOException
public java.net.Socket createSocket(java.lang.String remoteHost, int remotePort, java.net.InetAddress localHost, int localPort, int timeout) throws java.io.IOException
remoteHost
- the host name/IPremotePort
- the port on the hostlocalHost
- the local host name/IP to bind the socket tolocalPort
- the port on the local machinetimeout
- the connection timeout (0==infinite)java.io.IOException
- if an I/O error occurs while creating the socketjava.net.UnknownHostException
- if the IP address of the host cannot be
determinedpublic java.net.Socket createSocket(java.net.Socket s, java.lang.String remoteHost, int remotePort, boolean autoClose) throws java.io.IOException
java.io.IOException
public java.net.ServerSocket createServerSocket() throws java.io.IOException
java.io.IOException
public java.net.ServerSocket createServerSocket(int port, int backlog, java.net.InetAddress localHost) throws java.io.IOException
localHost
- the local host name/IP to bind against (null == ANY)port
- the port to listen onbacklog
- number of connections allowed to queue up for accept().java.io.IOException
- if an I/O error occurs while creating thesocketpublic void doPreConnectServerSocketStuff(javax.net.ssl.SSLServerSocket s) throws java.io.IOException
java.io.IOException
public javax.net.ssl.SSLSocketFactory getSSLSocketFactory()
public javax.net.ssl.SSLServerSocketFactory getSSLServerSocketFactory()
public int getConnectTimeout()
public java.lang.String[] getDefaultCipherSuites()
public java.lang.String[] getSupportedCipherSuites()
public TrustChain getTrustChain()
public void setCurrentServerChain(java.security.cert.X509Certificate[] chain)
public void setCurrentClientChain(java.security.cert.X509Certificate[] chain)
public java.security.cert.X509Certificate[] getCurrentServerChain()
public java.security.cert.X509Certificate[] getCurrentClientChain()
public static void main(java.lang.String[] args)
private static void addCipher(java.util.List l, java.lang.String c, boolean printOnStandardOut)