Zodiac TLS/SSL Streams

Zodiac is an open-source, cross-smalltalk implementation of regular and secure socket streams. The primary goal of the project is to offer TLS/SSL streams that can then be used to implement for example HTTPS when combined with a suitable client such as Zinc HTTP Components.

The current implementation of ZdcSecureSocketStream is combining the socket stream implementation offered by the ZdcSocketStream hierarchy with a ZdcPluginSSLSession object. This object handles connection setup handshaking as well as the encryption and decryption of data travelling between two parties through the SqueakSSL virtual machine plugin, which is an interface to the native TLS/SSL facilities on the operating system.

For the time being, Pharo is our development platform, although general Smalltalk portability is an explicit goal.

Documentation

The main documentation for Zodiac is the paper and draft chapter for the Pharo By Example 2 book. This is an HTML version based on a Markdown source, styled for readability. Here is a version not using fancy syntax highlighting.

At the Pharo Conference in May 2012, I presented both Zn and Zdc. Here are the slides of the Zodiac presentation. This is a 400Kb PDF.

Installation

To get a working ZdcSocketStream you have to do two things:

  1. Load the Zodiac Smalltalk code
  2. Install the SqueakSSL plug

To load the Zdc framework as an addon in your image, execute the following script:

Gofer it
  squeaksource: 'Zodiac';
  package: 'Zodiac-Core';
  package: 'Zodiac-Tests';
  load.

To install the plugin, download it from SqueakSSL and place the plugin itself in the place where your virtual machine expects it. You will find other plugins somewhere inside the directory where your vm is installed.

Status

Currently, HTTPS client functionality is working on Pharo 1.3, 1.4 and 2.0 using Zn+Zdc. Secure versions of SMTP and POP3 are also available. HTTPS server functionality works on Linux and Windows, but not on Mac OS X.

Development

The source code for Zodiac lives in different places, including here

Hosting of this website is provided by the stfx - Smalltalk is the Red Pill website.

Authors

Acknowledgement

This project would not have been possible without the work done by Andreas Raab for the SqueakSSL plugin project.

Some ESUG sponsoring helped to advance this project to where it is today.

License

Zodiac is open-source software licensed under the MIT License. All contributions should be licensed under the same terms.