TLS encryption for Client/Server IPv6/IPv4 communication

What is ucspi-ssl?

sslserver, sslclient, and sslhandle are command-line tools for building SSL client-server applications. They conform to the UNIX Client-Server Program Interface, UCSPI.

sslserver listens for IPv6 and/or IPv4 connections, and runs a program for each connection it accepts. The program environment includes variables that hold the local and remote host names, IP addresses, and port numbers. sslserver offers a concurrency limit on acceptance of new connections, and selective handling of connections based on client identity supporting CIDR IP address notation. sslserver supports STARTTLS and STLS.

sslclient requests a connection to either a IPv6 or IPv4 TCP sockets, and runs a program. The program environment includes the same variables as for sslserver.



ucspi-ssl 0.96 is a fork of Superscript's ucspi-ssl 0.70 version, including

ucspi-ssl 0.96 provides a high-level programming interface for OpenSSL which is mandatory to achieve TLS support for

This is facilited by means the lib ucspissl.a (after compilation; located in ./compile) and the header file ucspissl.h.

How to install ucspi-ssl

ucspi-ssl uses D.J. Bernstein's /package conventions for installation. Typically, un-tar the archive under /package, change to host/<version> and call package/install would be enough.
ucspi-ssl is pre-packaged to suite the AMD64 environment.
Depending on your Perl settings, you rather succeed with package/install base and package/man for the additional man-pages.

Note: The additional Perl module and the available tests package/rts may not succeed on every Unix plattform.

Description of the programs

Client and Servers:


In oder to build the cdb to control incoming connetions for sslserver, the program tcprules is required which comes with the ucspi-tcp6 package. Older versions of ucspi-tcp can be used as well, but don't provide neither IPv4 CIDR nor IPv6 capabilities. The generated cdb however, is binary compatible among all versions.

General information


Note: These sites may refer outdated versions of ucspi-ssl.

Security information

Since ucspi-ssl depends on OpenSSL, it is inherently affected by bugs and flaws in here. Thus, please check for CVEs. In case you need to upgrade the OpenSSL libs, proceed as follows:

Note: Though ucspi-ssl did suffer from the Heartbleed bug in OpenSSL it is very unlikely that this could have exploited for security relevant information. sslserver in particular raises a new address space (and containing the vulnerable SSL context) for each new connection and IP. In this sense, sslserver mitigates your risks.

Note for MacOS X User

ucspi-ssl currently does not compile on MacOS X 'El Capitan' out-of-the-box due to missing POSIX compatibility even if xcode is installed.
Dependencies are not fulfilled and needed to be investigated for future versions. However, they may be solved on individual basis.