am 40c5a7a6: am 5d1a870a: Merge "Add APIs to enable SNI and session tickets on sockets." into jb-mr1-dev

* commit '40c5a7a6e14447bbe66e6daeca7e992bcf200012':
  Add APIs to enable SNI and session tickets on sockets.
This commit is contained in:
Narayan Kamath
2012-09-19 15:19:38 -07:00
committed by Android Git Automerger
2 changed files with 36 additions and 1 deletions

View File

@@ -300,9 +300,10 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
* null if no protocol was negotiated.
*
* @param socket a socket created by this factory.
* @throws IllegalArgumentException if the socket was not created by this factory.
*/
public byte[] getNpnSelectedProtocol(Socket socket) {
return ((OpenSSLSocketImpl) socket).getNpnSelectedProtocol();
return castToOpenSSLSocket(socket).getNpnSelectedProtocol();
}
/**
@@ -316,6 +317,38 @@ public class SSLCertificateSocketFactory extends SSLSocketFactory {
mInsecureFactory = null;
}
/**
* Enables <a href="http://tools.ietf.org/html/rfc5077#section-3.2">session ticket</a>
* support on the given socket.
*
* @param socket a socket created by this factory
* @param useSessionTickets {@code true} to enable session ticket support on this socket.
* @throws IllegalArgumentException if the socket was not created by this factory.
*/
public void setUseSessionTickets(Socket socket, boolean useSessionTickets) {
castToOpenSSLSocket(socket).setUseSessionTickets(useSessionTickets);
}
/**
* Turns on <a href="http://tools.ietf.org/html/rfc6066#section-3">Server
* Name Indication (SNI)</a> on a given socket.
*
* @param socket a socket created by this factory.
* @param hostName the desired SNI hostname, null to disable.
* @throws IllegalArgumentException if the socket was not created by this factory.
*/
public void setHostname(Socket socket, String hostName) {
castToOpenSSLSocket(socket).setHostname(hostName);
}
private static OpenSSLSocketImpl castToOpenSSLSocket(Socket socket) {
if (!(socket instanceof OpenSSLSocketImpl)) {
throw new IllegalArgumentException("Socket not created by this factory: "
+ socket);
}
return (OpenSSLSocketImpl) socket;
}
/**
* {@inheritDoc}