miniSSL V1.6


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 the example below. 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 the old minisslV1_3.zip.
To obtain the current version contact me mailto:s.franke@bebbosoft.de

DateDescription
2012-08-20miniSSL V1.6
  • added support for TLS1.2
  • also updates to all special versions are available on request.
2008-04-17miniSSL V1.5
  • added support for TLS1.1
2004-10-01miniSSL V1.4
  • miniSSL V1.4 with further speed enhancements
  • tiniSSL V1.0 a special version for the TINI board is available. Native code gives a performance boost by x20 and more
  • snapSSL V1.0 another special version for the SNAP board with hand optimized Java bytecode to max out what's possible
Contact me or use the general forum.
2001-02-18updated 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.wiki,v $
 * $Revision: 1.15 $
 * $Date: 2012/08/23 05:30:52 $
 * $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.15 $");

    int port = 443;
    switch (args.length) {
      case 2: port = Integer.parseInt(args[1]);
      case 1: break;
      default:
        System.out.println("usage: Client  &91;=80]");
        return;
    }
    String ip = args[0];
    try {

      System.out.println("connecting to: " + ip + ":" + port);

      Socket socket = new Socket(ip, port);
      Ssl3Client ssl = new Ssl3Client(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());
    }
  }
}

/*
 * Revision 1.1  2000/09/25 12:21:10  bebbo
 * @N repackaged
 */

Disclaimer of Warranty


Software is provided "AS IS," without a warranty of any kind. You may use it on your own risk.

Limitation of Liability


I SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY YOU OR ANY THIRD PARTY AS A RESULT OF USING OR DISTRIBUTING SOFTWARE. IN NO EVENT WILL I BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF I HAVE ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Copyright


(c) 1994-2012 by BebboSoft, Stefan "Bebbo" Franke, all rights reserved
rev: 1.15