Search in sources :

Example 1 with Platform

use of com.squareup.okhttp.internal.Platform in project phonegap-facebook-plugin by Wizcorp.

the class Connection method upgradeToTls.

/**
   * Create an {@code SSLSocket} and perform the TLS handshake and certificate
   * validation.
   */
private void upgradeToTls(TunnelRequest tunnelRequest) throws IOException {
    Platform platform = Platform.get();
    // Make an SSL Tunnel on the first message pair of each SSL + proxy connection.
    if (requiresTunnel()) {
        makeTunnel(tunnelRequest);
    }
    // Create the wrapper over connected socket.
    socket = route.address.sslSocketFactory.createSocket(socket, route.address.uriHost, route.address.uriPort, true);
    SSLSocket sslSocket = (SSLSocket) socket;
    if (route.modernTls) {
        platform.enableTlsExtensions(sslSocket, route.address.uriHost);
    } else {
        platform.supportTlsIntolerantServer(sslSocket);
    }
    if (route.modernTls) {
        platform.setNpnProtocols(sslSocket, NPN_PROTOCOLS);
    }
    // Force handshake. This can throw!
    sslSocket.startHandshake();
    // Verify that the socket's certificates are acceptable for the target host.
    if (!route.address.hostnameVerifier.verify(route.address.uriHost, sslSocket.getSession())) {
        throw new IOException("Hostname '" + route.address.uriHost + "' was not verified");
    }
    out = sslSocket.getOutputStream();
    in = sslSocket.getInputStream();
    byte[] selectedProtocol;
    if (route.modernTls && (selectedProtocol = platform.getNpnSelectedProtocol(sslSocket)) != null) {
        if (Arrays.equals(selectedProtocol, SPDY3)) {
            // SPDY timeouts are set per-stream.
            sslSocket.setSoTimeout(0);
            spdyConnection = new SpdyConnection.Builder(route.address.getUriHost(), true, in, out).build();
        } else if (!Arrays.equals(selectedProtocol, HTTP_11)) {
            throw new IOException("Unexpected NPN transport " + new String(selectedProtocol, "ISO-8859-1"));
        }
    }
}
Also used : Platform(com.squareup.okhttp.internal.Platform) SSLSocket(javax.net.ssl.SSLSocket) IOException(java.io.IOException)

Example 2 with Platform

use of com.squareup.okhttp.internal.Platform in project robovm by robovm.

the class Connection method upgradeToTls.

/**
   * Create an {@code SSLSocket} and perform the TLS handshake and certificate
   * validation.
   */
private void upgradeToTls(TunnelRequest tunnelRequest) throws IOException {
    Platform platform = Platform.get();
    // Make an SSL Tunnel on the first message pair of each SSL + proxy connection.
    if (requiresTunnel()) {
        makeTunnel(tunnelRequest);
    }
    // Create the wrapper over connected socket.
    socket = route.address.sslSocketFactory.createSocket(socket, route.address.uriHost, route.address.uriPort, true);
    SSLSocket sslSocket = (SSLSocket) socket;
    if (route.modernTls) {
        platform.enableTlsExtensions(sslSocket, route.address.uriHost);
    } else {
        platform.supportTlsIntolerantServer(sslSocket);
    }
    boolean useNpn = route.modernTls && route.address.transports.contains("spdy/3");
    if (useNpn) {
        platform.setNpnProtocols(sslSocket, NPN_PROTOCOLS);
    }
    // Force handshake. This can throw!
    sslSocket.startHandshake();
    // Verify that the socket's certificates are acceptable for the target host.
    if (!route.address.hostnameVerifier.verify(route.address.uriHost, sslSocket.getSession())) {
        throw new IOException("Hostname '" + route.address.uriHost + "' was not verified");
    }
    out = sslSocket.getOutputStream();
    in = sslSocket.getInputStream();
    byte[] selectedProtocol;
    if (useNpn && (selectedProtocol = platform.getNpnSelectedProtocol(sslSocket)) != null) {
        if (Arrays.equals(selectedProtocol, SPDY3)) {
            // SPDY timeouts are set per-stream.
            sslSocket.setSoTimeout(0);
            spdyConnection = new SpdyConnection.Builder(route.address.getUriHost(), true, in, out).build();
        } else if (!Arrays.equals(selectedProtocol, HTTP_11)) {
            throw new IOException("Unexpected NPN transport " + new String(selectedProtocol, "ISO-8859-1"));
        }
    }
}
Also used : Platform(com.squareup.okhttp.internal.Platform) SSLSocket(javax.net.ssl.SSLSocket) IOException(java.io.IOException)

Example 3 with Platform

use of com.squareup.okhttp.internal.Platform in project cordova-android-chromeview by thedracle.

the class Connection method upgradeToTls.

/**
   * Create an {@code SSLSocket} and perform the TLS handshake and certificate
   * validation.
   */
private void upgradeToTls(TunnelRequest tunnelRequest) throws IOException {
    Platform platform = Platform.get();
    // Make an SSL Tunnel on the first message pair of each SSL + proxy connection.
    if (requiresTunnel()) {
        makeTunnel(tunnelRequest);
    }
    // Create the wrapper over connected socket.
    socket = route.address.sslSocketFactory.createSocket(socket, route.address.uriHost, route.address.uriPort, true);
    SSLSocket sslSocket = (SSLSocket) socket;
    if (route.modernTls) {
        platform.enableTlsExtensions(sslSocket, route.address.uriHost);
    } else {
        platform.supportTlsIntolerantServer(sslSocket);
    }
    if (route.modernTls) {
        platform.setNpnProtocols(sslSocket, NPN_PROTOCOLS);
    }
    // Force handshake. This can throw!
    sslSocket.startHandshake();
    // Verify that the socket's certificates are acceptable for the target host.
    if (!route.address.hostnameVerifier.verify(route.address.uriHost, sslSocket.getSession())) {
        throw new IOException("Hostname '" + route.address.uriHost + "' was not verified");
    }
    out = sslSocket.getOutputStream();
    in = sslSocket.getInputStream();
    byte[] selectedProtocol;
    if (route.modernTls && (selectedProtocol = platform.getNpnSelectedProtocol(sslSocket)) != null) {
        if (Arrays.equals(selectedProtocol, SPDY3)) {
            // SPDY timeouts are set per-stream.
            sslSocket.setSoTimeout(0);
            spdyConnection = new SpdyConnection.Builder(route.address.getUriHost(), true, in, out).build();
        } else if (!Arrays.equals(selectedProtocol, HTTP_11)) {
            throw new IOException("Unexpected NPN transport " + new String(selectedProtocol, "ISO-8859-1"));
        }
    }
}
Also used : Platform(com.squareup.okhttp.internal.Platform) SSLSocket(javax.net.ssl.SSLSocket) IOException(java.io.IOException)

Aggregations

Platform (com.squareup.okhttp.internal.Platform)3 IOException (java.io.IOException)3 SSLSocket (javax.net.ssl.SSLSocket)3