public class I2PSSLSocketFactory extends Object
| Modifier and Type | Field | 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 | Description |
|---|---|
I2PSSLSocketFactory(I2PAppContext context,
boolean loadSystemCerts,
String relativeCertPath) |
| Modifier and Type | Method | Description |
|---|---|---|
Socket |
createSocket(String host,
int port) |
Returns a socket to the host.
|
Socket |
createSocket(InetAddress 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"GeneralSecurityExceptionpublic Socket createSocket(String host, int port) throws IOException
IOExceptionpublic Socket createSocket(InetAddress host, int port) throws IOException
IOExceptionpublic 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)