import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLContext;
import javax.net.SocketFactory;
import javax.net.ssl.SSLSocketFactory;
import java.security.NoSuchAlgorithmException;

public class ProtocolTest {
  public static void main(String[] args) throws Exception {
    SSLContext context = SSLContext.getInstance("TLS"); 
    context.init(null,null,null);
    SSLSocketFactory factory = (SSLSocketFactory)context.getSocketFactory();
    SSLSocket socket = (SSLSocket)factory.createSocket();
    String[] protocols = socket.getSupportedProtocols();
    System.out.println("Supported Protocols: " + protocols.length);
    for(int i = 0; i < protocols.length; i++) {
      System.out.println(" " + protocols[i]);
    }
    protocols = socket.getEnabledProtocols(); 
    System.out.println("\nEnabled Protocols: " + protocols.length); 
    for(int i = 0; i < protocols.length; i++) { 
      System.out.println(" " + protocols[i]); 
    }
    System.out.println("\nSupported Cipher Suites: ");
    try {
      String[] ciphers = SSLContext.getDefault().getSocketFactory().getSupportedCipherSuites();
      for (int i = 1; i < ciphers.length; i++) {
        System.out.println(" " + i + ". " + ciphers[i]);
      }
    } catch (NoSuchAlgorithmException e) {
      System.out.println("Failed to get default SSL context.");
    }
  }
}
