CopperSpice Overview
OpenSSL

If the CsNetwork library is built with the OpenSSL library then support will be available for the Secure Socket Layer (SSL) and the Transport Layer Security (TLS) network protocols.

The supported versions of OpenSSL are 1.0.1g or later and the 1.1.x and 3.x series.

Installing OpenSSL on Unix

Use your vendor package management command to download and install the OpenSSL development package.

# for Debian or Ubuntu
apt-get install libssl-dev
# for Fedora
dnf install openssl-devel

Building OpenSSL on Windows

The OpenSSL project does not provide pre-built binary files. Their library must be built from source using the same tool chain you will be using to build your CopperSpice application.

MSVC

Download the OpenSSL source code.

The following commands were provided by the OpenSSL documentation. For additional information about building the library using Visual Studio, consult their documentation.

perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }
nmake
nmake test
nmake install

MinGW

1   Download the OpenSSL source code.

2   Download the perl-5.24.0-mingw32.zip file from our CopperSpice website. Unzip to install Perl on your development system.

3   Build OpenSSL using the following bash commands.

# add the path to perl.exe
export PATH=/c/perl/bin:$PATH
# prefix: install to this location
# openssldir: folder for ssl certificates
./Configure mingw64 --prefix=c:\OpenSSL\deploy --openssldir=c:\OpenSSL\deploy\ssl
# double the backslashes in the call to perl.exe
sed -e '/^PERL=/s/\\/\\\\/g' -i Makefile
# install OpenSLL to the prefix location
make install

Mac OS X

On Mac OS X support for SSL and TLS is provided by the SecureTransport Framework. This framework is part of the operating system and does not need to be distributed as part of your CopperSpice application.

Enabling SSL Support

When building CopperSpice from source CMake will check if the OpenSSL development libraries and headers are available. If everything is found then CsNetwork will be built with OpenSSL support. At runtime, CsNetwork will dynamically load the OpenSSL libraries as required.

Distributing OpenSSL

Due to import and export restrictions we are unable to supply the OpenSSL Toolkit with the CopperSpice prebuilt packages. Developers who want to build CopperSpice or use SSL communication in their deployed applications should ensure their users have the appropriate libraries installed.