Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #6789

Hostname verifier

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.42!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!74.125.46.80.MISMATCH!postnews.google.com!e3g2000vby.googlegroups.com!not-for-mail
From Stone <phracek2@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Hostname verifier
Date Thu, 4 Aug 2011 01:23:37 -0700 (PDT)
Organization http://groups.google.com
Lines 217
Message-ID <29676cfa-4109-4a25-8af8-27cd2fc2e97d@e3g2000vby.googlegroups.com> (permalink)
NNTP-Posting-Host 62.134.46.4
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1
X-Trace posting.google.com 1312446218 7833 127.0.0.1 (4 Aug 2011 08:23:38 GMT)
X-Complaints-To groups-abuse@google.com
NNTP-Posting-Date Thu, 4 Aug 2011 08:23:38 +0000 (UTC)
Complaints-To groups-abuse@google.com
Injection-Info e3g2000vby.googlegroups.com; posting-host=62.134.46.4; posting-account=IOeCfwoAAAA_VejOv6qSgFbw-0eHdS9A
User-Agent G2/1.0
X-Google-Web-Client true
X-Google-Header-Order HUALESRCNK
X-HTTP-UserAgent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0,gzip(gfe)
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:6789

Show key headers only | View raw


Dear java users/developers,

I am trying to validate certificates in JAVA imported from the server
but it seems that my code is wrong.

Could you please let me know where I have made a mistake?

Code is following:

package ssltest;

import java.io.*;
import java.net.*;
import java.util.*;
import javax.net.ssl.*;
import java.security.cert.*;
import java.security.*;
import java.util.regex.*;
/**
 *
 * @author CZ2B10q6
 */
public class SSLTest implements HandshakeCompletedListener{

  private int port = 5000;
  private String ip="192.168.0.5";
  private SSLSocketFactory sslSocketFactory;
  private SSLSocket connection;
  private SSLContext sc;
  private PrintWriter outStream;
  private BufferedReader inStream;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Start");
        SSLTest e = new SSLTest();
    }

    public SSLTest()
    {
        System.out.println("Connecting to "+ip+" to port "+port);
        connectTo();
    }

    public final void disableCertificates() {
        // Create a trust manager that does not validate certificate
chains
        TrustManager[] trustAllCerts = new TrustManager[]{
            new X509TrustManager()     {

                public java.security.cert.X509Certificate[]
getAcceptedIssuers() {
                    return null;
                }

                public void checkClientTrusted(
                        java.security.cert.X509Certificate[] certs,
String authType) {
                }

                public void checkServerTrusted(
                        java.security.cert.X509Certificate[] certs,
String authType) {
                }

                public boolean isClientTrusted(X509Certificate[] arg0)
{
                    return true;
                }

                public boolean isServerTrusted(X509Certificate[] arg0)
{
                    return true;
                }
            }
        };

        // Install the all-trusting trust manager
        try {

            sc = SSLContext.getInstance("TLSv1");
            String help = sc.getProvider().toString();
            System.out.println(sc.getProvider().getName());
            System.out.println(help);
            help = sc.getProvider().getClass().toString();
            System.out.println(help);
            sc.init(null, trustAllCerts, new
java.security.SecureRandom());
 
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        } catch (Exception e) {
            e.printStackTrace();
        }

        HostnameVerifier hv = new HostnameVerifier()   {

            public boolean verify(String string, SSLSession ssls) {
                System.out.println("Warning: URL Host: " + string + "
vs. "
                        + ssls.getPeerHost());
                return true;
            }
        };
        HttpsURLConnection.setDefaultHostnameVerifier(hv);


    }


   private static void printSocketInfo(SSLSocket s) {
      System.out.println("Socket class: "+s.getClass());
      System.out.println("   Remote address = "
         +s.getInetAddress().toString());
      System.out.println("   Remote port = "+s.getPort());
      System.out.println("   Local socket address = "
         +s.getLocalSocketAddress().toString());
      System.out.println("   Local address = "
         +s.getLocalAddress().toString());
      System.out.println("   Local port = "+s.getLocalPort());
      System.out.println("   Need client authentication = "
         +s.getNeedClientAuth());
      SSLSession ss = s.getSession();
      System.out.println("   Cipher suite = "+ss.getCipherSuite());
      System.out.println("   Protocol = "+ss.getProtocol());
   }
    public void connectTo()
    {
        String patternString = "AES.*256";
        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher;
        boolean matchFound;
        try
        {
          System.out.println("Initialization of trust Manager");
          disableCertificates();
            Security.addProvider(new
com.sun.net.ssl.internal.ssl.Provider());
            Provider[] pr = Security.getProviders();
            for(int i=0;i<pr.length;i++)
            {
                System.out.println("Provider:"+pr[i].getName());
            }
            SSLSocketFactory sf = sc.getSocketFactory();
            System.out.println("create socket");
            SSLSocket s = (SSLSocket)sf.createSocket(ip, port);
            s.setEnabledProtocols(new String[]{"SSLv3","TLSv1"});
            String[] prot = s.getEnabledProtocols();
            for(int i=0;i<prot.length;i++)
            {
                System.out.println(prot[i]);
            }
            String[] set = s.getSupportedCipherSuites();
            for(int i=0;i<set.length;i++)
            {
                matcher = pattern.matcher(set[i]);
                matchFound = matcher.find();
                //if(matchFound)
                    System.out.println(set[i]);
            }

            String[] ciphers = s.getEnabledCipherSuites();
            for(int j=0;j<ciphers.length;j++)
            {
                System.out.println("Ciphers:" +ciphers[j]);
            }
            System.out.println("socket created");
            PrintWriter out2 = new PrintWriter(s.getOutputStream());
            BufferedReader in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
            System.out.println("Getting session");
            SSLSession session = ((SSLSocket) s).getSession();
            System.out.println("Getting session was done");


            System.out.println("Peer host is " +
session.getPeerHost());
            System.out.println("Cipher is " +
session.getCipherSuite());
            System.out.println("Protocol is " +
session.getProtocol());

            printSocketInfo((SSLSocket) s);

            String x;

            System.out.println("Retrieving:");
            x = in.readLine();
            System.out.println(x);
            System.out.println("Sending LOGIN");

            out2.println("START:
0;LOGIN;TOKEN;AUKLs_ot0DmEX.Ilv4YcQ04kKHaZJNyG:END");
            out2.flush();
            System.out.println("Reading Welcome message");

            x = in.readLine();
            System.out.println(x);

            out2.println("KITTY");
            out2.flush();

            x = in.readLine();
            System.out.println(x);

            in.close();
            out2.close();
            s.close();


        }
        catch(Exception e)
        {
        }
    }
}

Back to comp.lang.java.programmer | Previous | Next | Find similar | Unroll thread


Thread

Hostname verifier Stone <phracek2@gmail.com> - 2011-08-04 01:23 -0700

csiph-web