miniSSL V1.3

MiniSSL is a Java implementation for client side SSL with this features:

When the SslClient has established a connection, it also supplies you an InputStream and OutputStream, which must be used for further communication. You can also query the servers certificate(s) and the selected encryption mode. It is the responsibility of the application to decide whether connection may be used (safe enough? trusted server?).

Also have a look to the API documentation or to an example

All software is published under our NON COMMERCIAL LICENSE. If you plan to use any of this software in a commercial product, contact the author for conditions and permissions.

Read, understand and accept the disclaimer before to download minisslV1_3.zip .

DateDescription
2001-02-18 updated miniSSL V1.3:
  • objects are now reusable.
  • SSL2 did not connect properly.
  • 2000-11-15updated miniSSL V1.2: improved handling of closure alerts.
    2000-11-13released miniSSL V1.1 (bugfix)
    2000-09-05first public release of miniSSL 1.0

    Example

    /******************************************************************************
     * $Source: /export/CVS/bebbo/www.bebbosoft.de/tools/minissl/index.html,v $
     * $Revision: 1.1.1.1 $
     * $Date: 2005/04/30 12:05:22 $
     * $Author: bebbo $
     * $Locker:  $
     * $State: Exp $
     *
     * Copyright (c) by Stefan Bebbo Franke 1999-2000.
     * All rights reserved
     *
     * test for SslClient
     *
     * Based on http://home.netscape.com/eng/ssl3/draft302.txt
     *****************************************************************************/
    
    import de.bb.minissl.*;
    import java.net.*;
    import java.io.*;
    
    public class Client {
    /**
     * create a client connection to some server
     */
      public static void main(String args[]) {
        System.out.println("SSL Client Demo $Revision: 1.1.1.1 $");
    
        int port = 443;
        switch (args.length) {
          case 2: port = Integer.parseInt(args[1]);
          case 1: break;
          default:
            System.out.println("usage: Client  [=80]");
            return;
        }
        String ip = args[0];
        try {
    
          System.out.println("connecting to: " + ip + ":" + port);
    
          Socket socket = new Socket(ip, port);
          SslClient ssl = new SslClient(socket.getInputStream(), socket.getOutputStream());
    
          System.out.println("using ciphertype " + ssl.getCipherType());
    
          InputStream is  = ssl.getInputStream();
          OutputStream os = ssl.getOutputStream();
    
    // now use the streams ...
          os.write("GET / HTTP/1.0\r\n\r\n".getBytes() );
          ByteArrayOutputStream bos = new ByteArrayOutputStream();
          for (int i = is.read(); i >= 0; i = is.read())
            bos.write(i);
    
          System.out.println(bos.toString());
    
        } catch (IOException e) {
          System.out.println(e.toString());
        }
      }
    }
    
    /*
     * $Log: index.html,v $
     * Revision 1.1.1.1  2005/04/30 12:05:22  bebbo
     *
     *
     * Revision 1.1  2000/09/25 12:21:10  bebbo
     * @N repackaged
     */
    

    Disclaimer of Warranty

    Limitation of Liability

    Copyright