public class I2PSSLSocketFactory extends Object
Modifier and Type | Field and Description |
---|---|
static List<String> |
EXCLUDE_CIPHERS
We exclude everything that Java 8 disables by default, plus some others.
|
static List<String> |
EXCLUDE_PROTOCOLS
Unmodifiable.
|
static List<String> |
INCLUDE_CIPHERS
Nothing for now.
|
static List<String> |
INCLUDE_PROTOCOLS
Java 7 does not enable 1.1 or 1.2 by default on the client side.
|
Constructor and Description |
---|
I2PSSLSocketFactory(I2PAppContext context,
boolean loadSystemCerts,
String relativeCertPath) |
Modifier and Type | Method and Description |
---|---|
Socket |
createSocket(InetAddress host,
int port)
Returns a socket to the host.
|
Socket |
createSocket(String host,
int port)
Returns a socket to the host.
|
static void |
setProtocolsAndCiphers(SSLServerSocket socket)
Select protocols and cipher suites to be used
based on configured inclusion and exclusion lists
as well as enabled and supported protocols and cipher suites.
|
static void |
setProtocolsAndCiphers(SSLSocket socket)
Select protocols and cipher suites to be used
based on configured inclusion and exclusion lists
as well as enabled and supported protocols and cipher suites.
|
static void |
verifyHostname(I2PAppContext ctx,
SSLSocket socket,
String host)
Validate the hostname
ref: https://developer.android.com/training/articles/security-ssl.html
ref: http://op-co.de/blog/posts/java_sslsocket_mitm/
ref: http://kevinlocke.name/bits/2012/10/03/ssl-certificate-verification-in-dispatch-and-asynchttpclient/
|
public static final List<String> EXCLUDE_PROTOCOLS
public static final List<String> INCLUDE_PROTOCOLS
public static final List<String> EXCLUDE_CIPHERS
public I2PSSLSocketFactory(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath) throws GeneralSecurityException
relativeCertPath
- e.g. "certificates/i2cp"GeneralSecurityException
public Socket createSocket(String host, int port) throws IOException
IOException
public Socket createSocket(InetAddress host, int port) throws IOException
IOException
public static void verifyHostname(I2PAppContext ctx, SSLSocket socket, String host) throws SSLException
SSLException
- on hostname verification failurepublic static void setProtocolsAndCiphers(SSLSocket socket)
public static void setProtocolsAndCiphers(SSLServerSocket socket)