summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Vartanian <flooey@google.com> 2018-07-31 16:51:45 +0100
committer Adam Vartanian <flooey@google.com> 2018-08-02 14:54:59 +0100
commitacca0090fbf1ee95f98c6bdc975a1ffbea2a592d (patch)
tree94a3b4fa2f4dd56ff2d966dea80a5403d47011ce
parent0cbdca3e20fead00f4449b61dad41cfd75a096a1 (diff)
Clarify which methods return connected sockets
Some methods in SSLCertificateSocketFactory return connected sockets and some return unconnected sockets. Be explicit in each method's documentation about whether it returns a connected or unconnected socket. Bug: 37618511 Test: cts -m CtsNetTestCases -t android.net.cts.SSLCertificateSocketFactoryTest Change-Id: Ia9c6c8bec15a2d3fbd0d86f8accff13627c79565
-rw-r--r--core/java/android/net/SSLCertificateSocketFactory.java30
1 files changed, 22 insertions, 8 deletions
diff --git a/core/java/android/net/SSLCertificateSocketFactory.java b/core/java/android/net/SSLCertificateSocketFactory.java
index a7aa380214d5..259eefe815f0 100644
--- a/core/java/android/net/SSLCertificateSocketFactory.java
+++ b/core/java/android/net/SSLCertificateSocketFactory.java
@@ -68,10 +68,14 @@ import javax.net.ssl.X509TrustManager;
* use {@link InetAddress} or which return an unconnected socket, you MUST
* verify the server's identity yourself to ensure a secure connection.</p>
*
- * <p>One way to verify the server's identity is to use
+ * <p>The recommended way to verify the server's identity is to use
* {@link HttpsURLConnection#getDefaultHostnameVerifier()} to get a
* {@link HostnameVerifier} to verify the certificate hostname.
*
+ * <p><b>Warning</b>: Some methods on this class return connected sockets and some return
+ * unconnected sockets. For the methods that return connected sockets, setting
+ * connection- or handshake-related properties on those sockets will have no effect.
+ *
* <p>On development devices, "setprop socket.relaxsslcheck yes" bypasses all
* SSL certificate and hostname checks for testing purposes. This setting
* requires root access.
@@ -437,8 +441,10 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
/**
* {@inheritDoc}
*
- * <p>This method verifies the peer's certificate hostname after connecting
- * (unless created with {@link #getInsecure(int, SSLSessionCache)}).
+ * <p>By default, this method returns a <i>connected</i> socket and verifies the peer's
+ * certificate hostname after connecting; if this instance was created with
+ * {@link #getInsecure(int, SSLSessionCache)}, it returns a socket that is <i>not connected</i>
+ * instead.
*/
@Override
public Socket createSocket(Socket k, String host, int port, boolean close) throws IOException {
@@ -454,7 +460,7 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
}
/**
- * Creates a new socket which is not connected to any remote host.
+ * Creates a new socket which is <i>not connected</i> to any remote host.
* You must use {@link Socket#connect} to connect the socket.
*
* <p class="caution"><b>Warning:</b> Hostname verification is not performed
@@ -474,6 +480,8 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
/**
* {@inheritDoc}
*
+ * <p>This method returns a socket that is <i>not connected</i>.
+ *
* <p class="caution"><b>Warning:</b> Hostname verification is not performed
* with this method. You MUST verify the server's identity after connecting
* the socket to avoid man-in-the-middle attacks.</p>
@@ -493,6 +501,8 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
/**
* {@inheritDoc}
*
+ * <p>This method returns a socket that is <i>not connected</i>.
+ *
* <p class="caution"><b>Warning:</b> Hostname verification is not performed
* with this method. You MUST verify the server's identity after connecting
* the socket to avoid man-in-the-middle attacks.</p>
@@ -510,8 +520,10 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
/**
* {@inheritDoc}
*
- * <p>This method verifies the peer's certificate hostname after connecting
- * (unless created with {@link #getInsecure(int, SSLSessionCache)}).
+ * <p>By default, this method returns a <i>connected</i> socket and verifies the peer's
+ * certificate hostname after connecting; if this instance was created with
+ * {@link #getInsecure(int, SSLSessionCache)}, it returns a socket that is <i>not connected</i>
+ * instead.
*/
@Override
public Socket createSocket(String host, int port, InetAddress localAddr, int localPort)
@@ -531,8 +543,10 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
/**
* {@inheritDoc}
*
- * <p>This method verifies the peer's certificate hostname after connecting
- * (unless created with {@link #getInsecure(int, SSLSessionCache)}).
+ * <p>By default, this method returns a <i>connected</i> socket and verifies the peer's
+ * certificate hostname after connecting; if this instance was created with
+ * {@link #getInsecure(int, SSLSessionCache)}, it returns a socket that is <i>not connected</i>
+ * instead.
*/
@Override
public Socket createSocket(String host, int port) throws IOException {