Zodiac

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.

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 requests are working on Pharo 1.3 and 1.4 using Zn+Zdc. Please refer to the Pharo dev mailing list for related discussions.

Development

The source code for Zodiac lives on Zodiac

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.

License

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