Example usage for javax.net.ssl SSLSocket getInputStream

List of usage examples for javax.net.ssl SSLSocket getInputStream

Introduction

In this page you can find the example usage for javax.net.ssl SSLSocket getInputStream.

Prototype

public InputStream getInputStream() throws IOException 

Source Link

Document

Returns an input stream for this socket.

Usage

From source file:SecureClient.java

public static void main(String[] args) throws Exception {
    String host = "127.0.0.1";

    SocketFactory sf = SSLSocketFactory.getDefault();
    SSLSocket sock = (SSLSocket) sf.createSocket(host, PORT);
    System.out.println("Server connected");

    InputStream rawIn = sock.getInputStream();
    BufferedReader in = new BufferedReader(new InputStreamReader(rawIn));
    System.out.println(in.readLine());
    sock.close();/*from ww  w  . java 2  s. c  om*/
}

From source file:clientetcp.ClienteTCP.java

public static void main(String[] args) {

    try {/* ww  w . j av  a  2 s .c  o m*/
        SSLClient client = new SSLClient();
        SSLSocket s = (SSLSocket) client.createSocket("localhost", 7443);
        PrintWriter writer = new PrintWriter(s.getOutputStream());
        InputStream reader = s.getInputStream();
        writer.println("Hola");
    } catch (Exception exception) {

    }

}

From source file:servidor.Servidor.java

public static void main(String[] arstring) {
    try {/*from w w  w  .j  a v a 2  s.  co  m*/
        SSLServer server = new SSLServer();
        // Server needs some key material.  We'll use an OpenSSL/PKCS8 style key (possibly encrypted).
        String certificateChain = "/lib/server.crt";
        String privateKey = "/lib/server.key";
        char[] password = "clave".toCharArray();
        KeyMaterial km = new KeyMaterial(certificateChain, privateKey, password);

        server.setKeyMaterial(km);

        // These settings have to do with how we'll treat client certificates that are presented
        // to us.  If the client doesn't present any client certificate, then these are ignored.
        server.setCheckHostname(false); // default setting is "false" for SSLServer
        server.setCheckExpiry(true); // default setting is "true" for SSLServer
        server.setCheckCRL(true); // default setting is "true" for SSLServer

        // This server trusts all client certificates presented (usually people won't present
        // client certs, but if they do, we'll give them a socket at the very least).
        server.addTrustMaterial(TrustMaterial.TRUST_ALL);
        SSLServerSocket ss = (SSLServerSocket) server.createServerSocket(7443);
        SSLSocket s = (SSLSocket) ss.accept();
        PrintWriter writer = new PrintWriter(s.getOutputStream());
        BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
        System.out.println(reader.readLine());
    } catch (Exception e) {
    }

}

From source file:spade.client.CommandLine.java

public static void main(String args[]) {
    // Set up context for secure connections
    try {/*from w ww.  ja  va2s . c om*/
        setupKeyStores();
        setupClientSSLContext();
    } catch (Exception ex) {
        System.err.println(
                CommandLine.class.getName() + " Error setting up context for secure connection. " + ex);
    }

    try {
        String host = "localhost";
        int port = Integer.parseInt(Settings.getProperty("commandline_query_port"));
        SSLSocket remoteSocket = (SSLSocket) sslSocketFactory.createSocket(host, port);

        OutputStream outStream = remoteSocket.getOutputStream();
        InputStream inStream = remoteSocket.getInputStream();
        clientInputStream = new ObjectInputStream(inStream);
        clientOutputStream = new PrintStream(outStream);
    } catch (NumberFormatException | IOException ex) {
        System.err.println(CommandLine.class.getName() + " Error connecting to SPADE! " + ex);
        System.err.println("Make sure that the CommandLine analyzer is running.");
        System.exit(-1);
    }
    try {
        System.out.println("SPADE 3.0 Query Client");
        // Set up command history and tab completion.
        ConsoleReader commandReader = new ConsoleReader();
        try {
            commandReader.getHistory().setHistoryFile(new File(historyFile));
        } catch (Exception ex) {
            System.err.println(CommandLine.class.getName() + " Command history not set up! " + ex);
        }

        while (true) {
            try {
                System.out.flush();
                System.out.print(COMMAND_PROMPT);
                String line = commandReader.readLine();
                if (StringUtils.isBlank(line)) {
                    continue;
                }
                if (line.equals(QueryCommands.QUERY_EXIT.value)) {
                    clientOutputStream.println(line);
                    break;
                } else if (line.toLowerCase().startsWith("export")) {
                    // save export path for next answer's dot file
                    parseExport(line);
                } else {
                    if (RESULT_EXPORT_PATH != null) {
                        line = "export " + line;
                    }
                    clientOutputStream.println(line);
                    String result = (String) clientInputStream.readObject();
                    if (!StringUtils.isBlank(result)) {
                        if (RESULT_EXPORT_PATH != null) {
                            FileWriter writer = new FileWriter(RESULT_EXPORT_PATH, false);
                            writer.write(result);
                            writer.flush();
                            writer.close();
                            System.out.println("Output exported to file: " + RESULT_EXPORT_PATH);
                            RESULT_EXPORT_PATH = null;
                        } else {
                            System.out.println(result);
                            System.out.println();
                        }
                    } else {
                        System.out.println("No result!");
                    }
                }
            } catch (Exception ex) {
                System.err.println(CommandLine.class.getName() + " Error talking to the client! " + ex);
            }
        }
    } catch (IOException ex) {
        System.err.println(CommandLine.class.getName() + " Error in CommandLine Client! " + ex);
    }
}

From source file:MainClass.java

public static void main(String[] args) throws Exception {
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();

    String hostName = "hostName";
    String fileName = "fileName";

    SSLSocket sslsock = (SSLSocket) factory.createSocket(hostName, 443);

    SSLSession session = sslsock.getSession();
    X509Certificate cert;/* ww  w  .j  av  a2s  .co m*/
    try {
        cert = (X509Certificate) session.getPeerCertificates()[0];
    } catch (SSLPeerUnverifiedException e) {
        System.err.println(session.getPeerHost() + " did not present a valid certificate.");
        return;
    }

    System.out.println(session.getPeerHost() + " has presented a certificate belonging to:");
    Principal p = cert.getSubjectDN();
    System.out.println("\t[" + p.getName() + "]");
    System.out.println("The certificate bears the valid signature of:");
    System.out.println("\t[" + cert.getIssuerDN().getName() + "]");

    System.out.print("Do you trust this certificate (y/n)? ");
    System.out.flush();
    BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
    if (Character.toLowerCase(console.readLine().charAt(0)) != 'y')
        return;

    PrintWriter out = new PrintWriter(sslsock.getOutputStream());

    out.print("GET " + fileName + " HTTP/1.0\r\n\r\n");
    out.flush();

    BufferedReader in = new BufferedReader(new InputStreamReader(sslsock.getInputStream()));
    String line;
    while ((line = in.readLine()) != null)
        System.out.println(line);

    sslsock.close();
}

From source file:Test.java

public static void main(String[] arstring) throws Exception {
        SSLServerSocketFactory sslServerSocketFactory = (SSLServerSocketFactory) SSLServerSocketFactory
                .getDefault();//from w ww  . j av a 2s  . c  o  m
        SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(9999);
        System.out.println("Waiting for a client ...");
        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();

        SSLParameters parameters = sslSocket.getSSLParameters();
        parameters.setAlgorithmConstraints(new SimpleConstraints());

        AlgorithmConstraints constraints = parameters.getAlgorithmConstraints();
        System.out.println("Constraint: " + constraints);

        String endPoint = parameters.getEndpointIdentificationAlgorithm();
        System.out.println("End Point: " + endPoint);

        System.out.println("Local Supported Signature Algorithms");
        if (sslSocket.getSession() instanceof ExtendedSSLSession) {
            ExtendedSSLSession extendedSSLSession = (ExtendedSSLSession) sslSocket.getSession();
            String alogrithms[] = extendedSSLSession.getLocalSupportedSignatureAlgorithms();
            for (String algorithm : alogrithms) {
                System.out.println("Algortihm: " + algorithm);
            }
        }

        System.out.println("Peer Supported Signature Algorithms");
        if (sslSocket.getSession() instanceof ExtendedSSLSession) {
            String alogrithms[] = ((ExtendedSSLSession) sslSocket.getSession())
                    .getPeerSupportedSignatureAlgorithms();
            for (String algorithm : alogrithms) {
                System.out.println("Algortihm: " + algorithm);
            }
        }

        InputStream inputstream = sslSocket.getInputStream();
        InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
        BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

        SSLSession session = sslSocket.getHandshakeSession();
        if (session != null) {
            System.out.println("Last accessed: " + new Date(session.getLastAccessedTime()));
        }

        String string = null;
        while ((string = bufferedreader.readLine()) != null) {
            System.out.println(string);
            System.out.flush();
        }

    }

From source file:com.tc.simple.apn.quicktests.Test.java

/**
 * @param args//from   w  w  w  .j  a v a  2  s . co  m
 */

public static void main(String[] args) {
    SSLSocket socket = null;

    try {
        String host = "gateway.sandbox.push.apple.com";
        int port = 2195;

        String token = "de7f197546e41a76684f8e2d89f397ed165298d7772f4bd9b0f39c674b185b0f";
        System.out.println(token.toCharArray().length);

        //String token = "8cebc7c08f79fa62f0994eb4298387ff930857ff8d14a50de431559cf476b223";

        KeyStore keyStore = KeyStore.getInstance("PKCS12");

        keyStore.load(Test.class.getResourceAsStream("egram-dev-apn.p12"), "xxxxxxxxx".toCharArray());
        KeyManagerFactory keyMgrFactory = KeyManagerFactory
                .getInstance(KeyManagerFactory.getDefaultAlgorithm());
        keyMgrFactory.init(keyStore, "xxxxxxxxx".toCharArray());

        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(keyMgrFactory.getKeyManagers(), null, null);
        SSLSocketFactory socketFactory = sslContext.getSocketFactory();

        socket = (SSLSocket) socketFactory.createSocket(host, port);
        String[] cipherSuites = socket.getSupportedCipherSuites();
        socket.setEnabledCipherSuites(cipherSuites);
        socket.startHandshake();

        char[] t = token.toCharArray();
        byte[] b = Hex.decodeHex(t);

        OutputStream outputstream = socket.getOutputStream();

        String payload = "{\"aps\":{\"alert\":\"yabadabadooo\"}}";

        int expiry = (int) ((System.currentTimeMillis() / 1000L) + 7200);

        ByteArrayOutputStream bout = new ByteArrayOutputStream();

        DataOutputStream dos = new DataOutputStream(bout);

        //command
        dos.writeByte(1);

        //id
        dos.writeInt(900);

        //expiry
        dos.writeInt(expiry);

        //token length.
        dos.writeShort(b.length);

        //token
        dos.write(b);

        //payload length
        dos.writeShort(payload.length());

        //payload.
        dos.write(payload.getBytes());

        byte[] byteMe = bout.toByteArray();

        socket.getOutputStream().write(byteMe);

        socket.setSoTimeout(900);
        InputStream in = socket.getInputStream();

        System.out.println(APNErrors.getError(in.read()));

        in.close();

        outputstream.close();

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            socket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

From source file:Messenger.TorLib.java

public static void postToURL(String hostname, int port, String postKey, String data) throws IOException {
    Socket socket = TorSocket(hostname, port);
    SSLSocketFactory sslSf = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket sslSocket = (SSLSocket) sslSf.createSocket(socket, null, socket.getPort(), false);
    sslSocket.setUseClientMode(true);// w  ww .  j a v a  2 s  .  c o  m
    sslSocket.startHandshake();
    String path = "/" + postKey;
    BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sslSocket.getOutputStream(), "UTF8"));
    wr.write("POST " + path + " HTTP/1.0\r\n");
    wr.write("Content-Length: " + data.length() + "\r\n");
    wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
    wr.write("\r\n");

    wr.write(data);
    wr.flush();

    BufferedReader rd = new BufferedReader(new InputStreamReader(sslSocket.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        System.out.println(line);
    }
    wr.close();
    rd.close();
    sslSocket.close();
}

From source file:Messenger.TorLib.java

/**
 * This method makes a http GET request for the specified resource to the specified hostname.
 * It uses the SOCKS proxy to a connection over Tor.
 * The DNS lookup is also done over Tor.
 * This method only uses port 443 for SSL.
 *
 * @param hostname hostname for target server.
 * @param port port to connect to./*from ww w  .  j  ava  2s. c  om*/
 * @param resource resource to lookup with GET request.
 * @return returns a JSON object.
 * @throws IOException
 * @throws JSONException
 */
public static JSONObject getJSON(String hostname, int port, String resource)
        throws IOException, JSONException, HttpException {
    //Create a SSL socket using Tor
    Socket socket = TorSocket(hostname, port);
    SSLSocketFactory sslSf = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket sslSocket = (SSLSocket) sslSf.createSocket(socket, null, socket.getPort(), false);
    sslSocket.setUseClientMode(true);
    sslSocket.startHandshake();
    openSockets.add(sslSocket);

    //Create the HTTP GET request and push it over the outputstream
    BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sslSocket.getOutputStream(), "UTF8"));
    wr.write("GET /" + resource + " HTTP/1.0\r\n");
    wr.write("Host: " + hostname + "\r\n");
    wr.write("\r\n");
    wr.flush();

    //Listen for a response on the inputstream
    BufferedReader br = new BufferedReader(new InputStreamReader(sslSocket.getInputStream()));
    String t;
    boolean start = false;
    String output = "";
    while ((t = br.readLine()) != null) {
        if (t.equals("")) {
            start = true;
        }
        if (start) {
            output = output + t;
        }
    }
    br.close();
    wr.close();
    sslSocket.close();
    System.out.println(output);
    openSockets.remove(sslSocket);
    return new JSONObject(output);
}

From source file:LoginClient.java

private void runServer() {
    while (true) {
        try {//  ww w.j  a v a2s.  c  om
            System.err.println("Waiting for connection...");
            SSLSocket socket = (SSLSocket) serverSocket.accept();
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
            String userName = input.readLine();
            String password = input.readLine();

            if (userName.equals(CORRECT_USER_NAME) && password.equals(CORRECT_PASSWORD)) {
                output.println("Welcome, " + userName);
            } else {
                output.println("Login Failed.");
            }
            output.close();
            input.close();
            socket.close();

        } catch (IOException ioException) {
            ioException.printStackTrace();
        }
    }
}